From 1ed8c80fc1ce1feb6766ad121d064b1965783b16 Mon Sep 17 00:00:00 2001 From: "Michael.Wang" <85395001+Michael-OvO@users.noreply.github.com> Date: Wed, 24 Aug 2022 21:56:22 +0800 Subject: [PATCH] Flask app --- README.md | 336 ++++ __pycache__/app.cpython-38.pyc | Bin 0 -> 1488 bytes app.py | 51 + figures/Flask_webapp_view2.png | Bin 0 -> 103109 bytes figures/Flask_webapp_view3.png | Bin 0 -> 428735 bytes figures/prediction.png | Bin 0 -> 218438 bytes figures/setup.png | Bin 0 -> 9615 bytes static/assets/pytorch.png | Bin 0 -> 11416 bytes static/image0.jpg | Bin 0 -> 222917 bytes static/style.css | 164 ++ templates/index.html | 61 + templates/result.html | 44 + utils/__init__.py | 1 + utils/__pycache__/__init__.cpython-38.pyc | Bin 0 -> 165 bytes utils/__pycache__/autoanchor.cpython-38.pyc | Bin 0 -> 6210 bytes utils/__pycache__/datasets.cpython-38.pyc | Bin 0 -> 40969 bytes utils/__pycache__/general.cpython-38.pyc | Bin 0 -> 27611 bytes utils/__pycache__/google_utils.cpython-38.pyc | Bin 0 -> 3318 bytes utils/__pycache__/loss.cpython-38.pyc | Bin 0 -> 38812 bytes utils/__pycache__/metrics.cpython-38.pyc | Bin 0 -> 7625 bytes utils/__pycache__/plots.cpython-38.pyc | Bin 0 -> 17879 bytes utils/__pycache__/torch_utils.cpython-38.pyc | Bin 0 -> 13381 bytes utils/activations.py | 72 + utils/add_nms.py | 155 ++ utils/autoanchor.py | 160 ++ utils/aws/__init__.py | 1 + utils/aws/mime.sh | 26 + utils/aws/resume.py | 37 + utils/aws/userdata.sh | 27 + utils/datasets.py | 1320 +++++++++++++ utils/general.py | 891 +++++++++ utils/google_app_engine/Dockerfile | 25 + .../additional_requirements.txt | 4 + utils/google_app_engine/app.yaml | 14 + utils/google_utils.py | 123 ++ utils/loss.py | 1697 +++++++++++++++++ utils/metrics.py | 223 +++ utils/plots.py | 489 +++++ utils/torch_utils.py | 374 ++++ utils/wandb_logging/__init__.py | 1 + .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 171 bytes .../__pycache__/wandb_utils.cpython-38.pyc | Bin 0 -> 11378 bytes utils/wandb_logging/log_dataset.py | 24 + utils/wandb_logging/wandb_utils.py | 306 +++ 44 files changed, 6626 insertions(+) create mode 100644 __pycache__/app.cpython-38.pyc create mode 100644 app.py create mode 100644 figures/Flask_webapp_view2.png create mode 100644 figures/Flask_webapp_view3.png create mode 100644 figures/prediction.png create mode 100644 figures/setup.png create mode 100644 static/assets/pytorch.png create mode 100644 static/image0.jpg create mode 100644 static/style.css create mode 100644 templates/index.html create mode 100644 templates/result.html create mode 100644 utils/__init__.py create mode 100644 utils/__pycache__/__init__.cpython-38.pyc create mode 100644 utils/__pycache__/autoanchor.cpython-38.pyc create mode 100644 utils/__pycache__/datasets.cpython-38.pyc create mode 100644 utils/__pycache__/general.cpython-38.pyc create mode 100644 utils/__pycache__/google_utils.cpython-38.pyc create mode 100644 utils/__pycache__/loss.cpython-38.pyc create mode 100644 utils/__pycache__/metrics.cpython-38.pyc create mode 100644 utils/__pycache__/plots.cpython-38.pyc create mode 100644 utils/__pycache__/torch_utils.cpython-38.pyc create mode 100644 utils/activations.py create mode 100644 utils/add_nms.py create mode 100644 utils/autoanchor.py create mode 100644 utils/aws/__init__.py create mode 100644 utils/aws/mime.sh create mode 100644 utils/aws/resume.py create mode 100644 utils/aws/userdata.sh create mode 100644 utils/datasets.py create mode 100644 utils/general.py create mode 100644 utils/google_app_engine/Dockerfile create mode 100644 utils/google_app_engine/additional_requirements.txt create mode 100644 utils/google_app_engine/app.yaml create mode 100644 utils/google_utils.py create mode 100644 utils/loss.py create mode 100644 utils/metrics.py create mode 100644 utils/plots.py create mode 100644 utils/torch_utils.py create mode 100644 utils/wandb_logging/__init__.py create mode 100644 utils/wandb_logging/__pycache__/__init__.cpython-38.pyc create mode 100644 utils/wandb_logging/__pycache__/wandb_utils.cpython-38.pyc create mode 100644 utils/wandb_logging/log_dataset.py create mode 100644 utils/wandb_logging/wandb_utils.py diff --git a/README.md b/README.md index 0d7adb2..b57642d 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,342 @@ A Beautiful Flask Framework for Implementing the Latest Yolov7 Model
+I developed this API for the purpose of deploying my own Yolov7 model, which is a very accurate skin burn detector. For more information about that project please check out [this repo](https://github.com/Michael-OvO/Burn-Detection-Classification). + +## Installation & Usage: + +![](./figures/Flask_webapp_view2.png) + +![](./figures/Flask_webapp_view3.png) + +To run this, please make sure you follow the following steps: + +a trained Yolov7 model (or you can also use the official pretrained yolov7 models), they can be downloaded [here](https://github.com/WongKinYiu/yolov7/releases). + +Once you have downloaded files, proceed to the next step. The feature of this web app is that it does not require a specific model name, as I have written code to directly search for the model file that is inside this directory (so you do not need to modify anything and just run it). **But do note that please just put one model file into your directory a single time, or else the code will not run properly.** + +Make sure you have met the following requirements: + +\- PyTorch >= 1.6 + +\- flask + +\- and dependencies required by Yolov7 (if you git cloned the original yolov7 repo then simply run ``` pip install -r requirements.txt``` inside the yolov7 repo) + +then, to launch the app, run the following command: + +```bash +$ FLASK_ENV=development FLASK_APP=app.py flask run +``` + +then, visit http://localhost:5000/ in your browser. + +choose some pictures that the model has been trained on and test it out! + +## Demonstration: + +I will be using ```yolov7-e6e.pt``` for this demo and I am currently working with a RTX 3070Ti. + +My directory setup is like this: + +![](./figures/setup.png) + +Then running the ```app.py``` yields the following output: + +(if it is first time running, it may take a while to download the original repo + +```bash +Using cache found in C:[PATH/To/Your/Cache].cache\torch\hub\WongKinYiu_yolov7_main + + from n params module arguments + 0 -1 1 0 models.common.ReOrg [] + 1 -1 1 8800 models.common.Conv [12, 80, 3, 1] + 2 -1 1 70880 models.common.DownC [80, 160, 1] + 3 -1 1 10368 models.common.Conv [160, 64, 1, 1] + 4 -2 1 10368 models.common.Conv [160, 64, 1, 1] + 5 -1 1 36992 models.common.Conv [64, 64, 3, 1] + 6 -1 1 36992 models.common.Conv [64, 64, 3, 1] + 7 -1 1 36992 models.common.Conv [64, 64, 3, 1] + 8 -1 1 36992 models.common.Conv [64, 64, 3, 1] + 9 -1 1 36992 models.common.Conv [64, 64, 3, 1] + 10 -1 1 36992 models.common.Conv [64, 64, 3, 1] + 11[-1, -3, -5, -7, -8] 1 0 models.common.Concat [1] + 12 -1 1 51520 models.common.Conv [320, 160, 1, 1] + 13 -11 1 10368 models.common.Conv [160, 64, 1, 1] + 14 -12 1 10368 models.common.Conv [160, 64, 1, 1] + 15 -1 1 36992 models.common.Conv [64, 64, 3, 1] + 16 -1 1 36992 models.common.Conv [64, 64, 3, 1] + 17 -1 1 36992 models.common.Conv [64, 64, 3, 1] + 18 -1 1 36992 models.common.Conv [64, 64, 3, 1] + 19 -1 1 36992 models.common.Conv [64, 64, 3, 1] + 20 -1 1 36992 models.common.Conv [64, 64, 3, 1] + 21[-1, -3, -5, -7, -8] 1 0 models.common.Concat [1] + 22 -1 1 51520 models.common.Conv [320, 160, 1, 1] + 23 [-1, -11] 1 0 models.common.Shortcut [1] + 24 -1 1 282560 models.common.DownC [160, 320, 1] + 25 -1 1 41216 models.common.Conv [320, 128, 1, 1] + 26 -2 1 41216 models.common.Conv [320, 128, 1, 1] + 27 -1 1 147712 models.common.Conv [128, 128, 3, 1] + 28 -1 1 147712 models.common.Conv [128, 128, 3, 1] + 29 -1 1 147712 models.common.Conv [128, 128, 3, 1] + 30 -1 1 147712 models.common.Conv [128, 128, 3, 1] + 31 -1 1 147712 models.common.Conv [128, 128, 3, 1] + 32 -1 1 147712 models.common.Conv [128, 128, 3, 1] + 33[-1, -3, -5, -7, -8] 1 0 models.common.Concat [1] + 34 -1 1 205440 models.common.Conv [640, 320, 1, 1] + 35 -11 1 41216 models.common.Conv [320, 128, 1, 1] + 36 -12 1 41216 models.common.Conv [320, 128, 1, 1] + 37 -1 1 147712 models.common.Conv [128, 128, 3, 1] + 38 -1 1 147712 models.common.Conv [128, 128, 3, 1] + 39 -1 1 147712 models.common.Conv [128, 128, 3, 1] + 40 -1 1 147712 models.common.Conv [128, 128, 3, 1] + 41 -1 1 147712 models.common.Conv [128, 128, 3, 1] + 42 -1 1 147712 models.common.Conv [128, 128, 3, 1] + 43[-1, -3, -5, -7, -8] 1 0 models.common.Concat [1] + 44 -1 1 205440 models.common.Conv [640, 320, 1, 1] + 45 [-1, -11] 1 0 models.common.Shortcut [1] + 46 -1 1 1128320 models.common.DownC [320, 640, 1] + 47 -1 1 164352 models.common.Conv [640, 256, 1, 1] + 48 -2 1 164352 models.common.Conv [640, 256, 1, 1] + 49 -1 1 590336 models.common.Conv [256, 256, 3, 1] + 50 -1 1 590336 models.common.Conv [256, 256, 3, 1] + 51 -1 1 590336 models.common.Conv [256, 256, 3, 1] + 52 -1 1 590336 models.common.Conv [256, 256, 3, 1] + 53 -1 1 590336 models.common.Conv [256, 256, 3, 1] + 54 -1 1 590336 models.common.Conv [256, 256, 3, 1] + 55[-1, -3, -5, -7, -8] 1 0 models.common.Concat [1] + 56 -1 1 820480 models.common.Conv [1280, 640, 1, 1] + 57 -11 1 164352 models.common.Conv [640, 256, 1, 1] + 58 -12 1 164352 models.common.Conv [640, 256, 1, 1] + 59 -1 1 590336 models.common.Conv [256, 256, 3, 1] + 60 -1 1 590336 models.common.Conv [256, 256, 3, 1] + 61 -1 1 590336 models.common.Conv [256, 256, 3, 1] + 62 -1 1 590336 models.common.Conv [256, 256, 3, 1] + 63 -1 1 590336 models.common.Conv [256, 256, 3, 1] + 64 -1 1 590336 models.common.Conv [256, 256, 3, 1] + 65[-1, -3, -5, -7, -8] 1 0 models.common.Concat [1] + 66 -1 1 820480 models.common.Conv [1280, 640, 1, 1] + 67 [-1, -11] 1 0 models.common.Shortcut [1] + 68 -1 1 3484800 models.common.DownC [640, 960, 1] + 69 -1 1 369408 models.common.Conv [960, 384, 1, 1] + 70 -2 1 369408 models.common.Conv [960, 384, 1, 1] + 71 -1 1 1327872 models.common.Conv [384, 384, 3, 1] + 72 -1 1 1327872 models.common.Conv [384, 384, 3, 1] + 73 -1 1 1327872 models.common.Conv [384, 384, 3, 1] + 74 -1 1 1327872 models.common.Conv [384, 384, 3, 1] + 75 -1 1 1327872 models.common.Conv [384, 384, 3, 1] + 76 -1 1 1327872 models.common.Conv [384, 384, 3, 1] + 77[-1, -3, -5, -7, -8] 1 0 models.common.Concat [1] + 78 -1 1 1845120 models.common.Conv [1920, 960, 1, 1] + 79 -11 1 369408 models.common.Conv [960, 384, 1, 1] + 80 -12 1 369408 models.common.Conv [960, 384, 1, 1] + 81 -1 1 1327872 models.common.Conv [384, 384, 3, 1] + 82 -1 1 1327872 models.common.Conv [384, 384, 3, 1] + 83 -1 1 1327872 models.common.Conv [384, 384, 3, 1] + 84 -1 1 1327872 models.common.Conv [384, 384, 3, 1] + 85 -1 1 1327872 models.common.Conv [384, 384, 3, 1] + 86 -1 1 1327872 models.common.Conv [384, 384, 3, 1] + 87[-1, -3, -5, -7, -8] 1 0 models.common.Concat [1] + 88 -1 1 1845120 models.common.Conv [1920, 960, 1, 1] + 89 [-1, -11] 1 0 models.common.Shortcut [1] + 90 -1 1 7070080 models.common.DownC [960, 1280, 1] + 91 -1 1 656384 models.common.Conv [1280, 512, 1, 1] + 92 -2 1 656384 models.common.Conv [1280, 512, 1, 1] + 93 -1 1 2360320 models.common.Conv [512, 512, 3, 1] + 94 -1 1 2360320 models.common.Conv [512, 512, 3, 1] + 95 -1 1 2360320 models.common.Conv [512, 512, 3, 1] + 96 -1 1 2360320 models.common.Conv [512, 512, 3, 1] + 97 -1 1 2360320 models.common.Conv [512, 512, 3, 1] + 98 -1 1 2360320 models.common.Conv [512, 512, 3, 1] + 99[-1, -3, -5, -7, -8] 1 0 models.common.Concat [1] +100 -1 1 3279360 models.common.Conv [2560, 1280, 1, 1] +101 -11 1 656384 models.common.Conv [1280, 512, 1, 1] +102 -12 1 656384 models.common.Conv [1280, 512, 1, 1] +103 -1 1 2360320 models.common.Conv [512, 512, 3, 1] +104 -1 1 2360320 models.common.Conv [512, 512, 3, 1] +105 -1 1 2360320 models.common.Conv [512, 512, 3, 1] +106 -1 1 2360320 models.common.Conv [512, 512, 3, 1] +107 -1 1 2360320 models.common.Conv [512, 512, 3, 1] +108 -1 1 2360320 models.common.Conv [512, 512, 3, 1] +109[-1, -3, -5, -7, -8] 1 0 models.common.Concat [1] +110 -1 1 3279360 models.common.Conv [2560, 1280, 1, 1] +111 [-1, -11] 1 0 models.common.Shortcut [1] +112 -1 1 11887360 models.common.SPPCSPC [1280, 640, 1] +113 -1 1 308160 models.common.Conv [640, 480, 1, 1] +114 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] +115 89 1 461760 models.common.Conv [960, 480, 1, 1] +116 [-1, -2] 1 0 models.common.Concat [1] +117 -1 1 369408 models.common.Conv [960, 384, 1, 1] +118 -2 1 369408 models.common.Conv [960, 384, 1, 1] +119 -1 1 663936 models.common.Conv [384, 192, 3, 1] +120 -1 1 332160 models.common.Conv [192, 192, 3, 1] +121 -1 1 332160 models.common.Conv [192, 192, 3, 1] +122 -1 1 332160 models.common.Conv [192, 192, 3, 1] +123 -1 1 332160 models.common.Conv [192, 192, 3, 1] +124 -1 1 332160 models.common.Conv [192, 192, 3, 1] +125[-1, -2, -3, -4, -5, -6, -7, -8] 1 0 models.common.Concat [1] +126 -1 1 922560 models.common.Conv [1920, 480, 1, 1] +127 -11 1 369408 models.common.Conv [960, 384, 1, 1] +128 -12 1 369408 models.common.Conv [960, 384, 1, 1] +129 -1 1 663936 models.common.Conv [384, 192, 3, 1] +130 -1 1 332160 models.common.Conv [192, 192, 3, 1] +131 -1 1 332160 models.common.Conv [192, 192, 3, 1] +132 -1 1 332160 models.common.Conv [192, 192, 3, 1] +133 -1 1 332160 models.common.Conv [192, 192, 3, 1] +134 -1 1 332160 models.common.Conv [192, 192, 3, 1] +135[-1, -2, -3, -4, -5, -6, -7, -8] 1 0 models.common.Concat [1] +136 -1 1 922560 models.common.Conv [1920, 480, 1, 1] +137 [-1, -11] 1 0 models.common.Shortcut [1] +138 -1 1 154240 models.common.Conv [480, 320, 1, 1] +139 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] +140 67 1 205440 models.common.Conv [640, 320, 1, 1] +141 [-1, -2] 1 0 models.common.Concat [1] +142 -1 1 164352 models.common.Conv [640, 256, 1, 1] +143 -2 1 164352 models.common.Conv [640, 256, 1, 1] +144 -1 1 295168 models.common.Conv [256, 128, 3, 1] +145 -1 1 147712 models.common.Conv [128, 128, 3, 1] +146 -1 1 147712 models.common.Conv [128, 128, 3, 1] +147 -1 1 147712 models.common.Conv [128, 128, 3, 1] +148 -1 1 147712 models.common.Conv [128, 128, 3, 1] +149 -1 1 147712 models.common.Conv [128, 128, 3, 1] +150[-1, -2, -3, -4, -5, -6, -7, -8] 1 0 models.common.Concat [1] +151 -1 1 410240 models.common.Conv [1280, 320, 1, 1] +152 -11 1 164352 models.common.Conv [640, 256, 1, 1] +153 -12 1 164352 models.common.Conv [640, 256, 1, 1] +154 -1 1 295168 models.common.Conv [256, 128, 3, 1] +155 -1 1 147712 models.common.Conv [128, 128, 3, 1] +156 -1 1 147712 models.common.Conv [128, 128, 3, 1] +157 -1 1 147712 models.common.Conv [128, 128, 3, 1] +158 -1 1 147712 models.common.Conv [128, 128, 3, 1] +159 -1 1 147712 models.common.Conv [128, 128, 3, 1] +160[-1, -2, -3, -4, -5, -6, -7, -8] 1 0 models.common.Concat [1] +161 -1 1 410240 models.common.Conv [1280, 320, 1, 1] +162 [-1, -11] 1 0 models.common.Shortcut [1] +163 -1 1 51520 models.common.Conv [320, 160, 1, 1] +164 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] +165 45 1 51520 models.common.Conv [320, 160, 1, 1] +166 [-1, -2] 1 0 models.common.Concat [1] +167 -1 1 41216 models.common.Conv [320, 128, 1, 1] +168 -2 1 41216 models.common.Conv [320, 128, 1, 1] +169 -1 1 73856 models.common.Conv [128, 64, 3, 1] +170 -1 1 36992 models.common.Conv [64, 64, 3, 1] +171 -1 1 36992 models.common.Conv [64, 64, 3, 1] +172 -1 1 36992 models.common.Conv [64, 64, 3, 1] +173 -1 1 36992 models.common.Conv [64, 64, 3, 1] +174 -1 1 36992 models.common.Conv [64, 64, 3, 1] +175[-1, -2, -3, -4, -5, -6, -7, -8] 1 0 models.common.Concat [1] +176 -1 1 102720 models.common.Conv [640, 160, 1, 1] +177 -11 1 41216 models.common.Conv [320, 128, 1, 1] +178 -12 1 41216 models.common.Conv [320, 128, 1, 1] +179 -1 1 73856 models.common.Conv [128, 64, 3, 1] +180 -1 1 36992 models.common.Conv [64, 64, 3, 1] +181 -1 1 36992 models.common.Conv [64, 64, 3, 1] +182 -1 1 36992 models.common.Conv [64, 64, 3, 1] +183 -1 1 36992 models.common.Conv [64, 64, 3, 1] +184 -1 1 36992 models.common.Conv [64, 64, 3, 1] +185[-1, -2, -3, -4, -5, -6, -7, -8] 1 0 models.common.Concat [1] +186 -1 1 102720 models.common.Conv [640, 160, 1, 1] +187 [-1, -11] 1 0 models.common.Shortcut [1] +188 -1 1 282560 models.common.DownC [160, 320, 1] +189 [-1, 162] 1 0 models.common.Concat [1] +190 -1 1 164352 models.common.Conv [640, 256, 1, 1] +191 -2 1 164352 models.common.Conv [640, 256, 1, 1] +192 -1 1 295168 models.common.Conv [256, 128, 3, 1] +193 -1 1 147712 models.common.Conv [128, 128, 3, 1] +194 -1 1 147712 models.common.Conv [128, 128, 3, 1] +195 -1 1 147712 models.common.Conv [128, 128, 3, 1] +196 -1 1 147712 models.common.Conv [128, 128, 3, 1] +197 -1 1 147712 models.common.Conv [128, 128, 3, 1] +198[-1, -2, -3, -4, -5, -6, -7, -8] 1 0 models.common.Concat [1] +199 -1 1 410240 models.common.Conv [1280, 320, 1, 1] +200 -11 1 164352 models.common.Conv [640, 256, 1, 1] +201 -12 1 164352 models.common.Conv [640, 256, 1, 1] +202 -1 1 295168 models.common.Conv [256, 128, 3, 1] +203 -1 1 147712 models.common.Conv [128, 128, 3, 1] +204 -1 1 147712 models.common.Conv [128, 128, 3, 1] +205 -1 1 147712 models.common.Conv [128, 128, 3, 1] +206 -1 1 147712 models.common.Conv [128, 128, 3, 1] +207 -1 1 147712 models.common.Conv [128, 128, 3, 1] +208[-1, -2, -3, -4, -5, -6, -7, -8] 1 0 models.common.Concat [1] +209 -1 1 410240 models.common.Conv [1280, 320, 1, 1] +210 [-1, -11] 1 0 models.common.Shortcut [1] +211 -1 1 872000 models.common.DownC [320, 480, 1] +212 [-1, 137] 1 0 models.common.Concat [1] +213 -1 1 369408 models.common.Conv [960, 384, 1, 1] +214 -2 1 369408 models.common.Conv [960, 384, 1, 1] +215 -1 1 663936 models.common.Conv [384, 192, 3, 1] +216 -1 1 332160 models.common.Conv [192, 192, 3, 1] +217 -1 1 332160 models.common.Conv [192, 192, 3, 1] +218 -1 1 332160 models.common.Conv [192, 192, 3, 1] +219 -1 1 332160 models.common.Conv [192, 192, 3, 1] +220 -1 1 332160 models.common.Conv [192, 192, 3, 1] +221[-1, -2, -3, -4, -5, -6, -7, -8] 1 0 models.common.Concat [1] +222 -1 1 922560 models.common.Conv [1920, 480, 1, 1] +223 -11 1 369408 models.common.Conv [960, 384, 1, 1] +224 -12 1 369408 models.common.Conv [960, 384, 1, 1] +225 -1 1 663936 models.common.Conv [384, 192, 3, 1] +226 -1 1 332160 models.common.Conv [192, 192, 3, 1] +227 -1 1 332160 models.common.Conv [192, 192, 3, 1] +228 -1 1 332160 models.common.Conv [192, 192, 3, 1] +229 -1 1 332160 models.common.Conv [192, 192, 3, 1] +230 -1 1 332160 models.common.Conv [192, 192, 3, 1] +231[-1, -2, -3, -4, -5, -6, -7, -8] 1 0 models.common.Concat [1] +232 -1 1 922560 models.common.Conv [1920, 480, 1, 1] +233 [-1, -11] 1 0 models.common.Shortcut [1] +234 -1 1 1768640 models.common.DownC [480, 640, 1] +235 [-1, 112] 1 0 models.common.Concat [1] +236 -1 1 656384 models.common.Conv [1280, 512, 1, 1] +237 -2 1 656384 models.common.Conv [1280, 512, 1, 1] +238 -1 1 1180160 models.common.Conv [512, 256, 3, 1] +239 -1 1 590336 models.common.Conv [256, 256, 3, 1] +240 -1 1 590336 models.common.Conv [256, 256, 3, 1] +241 -1 1 590336 models.common.Conv [256, 256, 3, 1] +242 -1 1 590336 models.common.Conv [256, 256, 3, 1] +243 -1 1 590336 models.common.Conv [256, 256, 3, 1] +244[-1, -2, -3, -4, -5, -6, -7, -8] 1 0 models.common.Concat [1] +245 -1 1 1639680 models.common.Conv [2560, 640, 1, 1] +246 -11 1 656384 models.common.Conv [1280, 512, 1, 1] +247 -12 1 656384 models.common.Conv [1280, 512, 1, 1] +248 -1 1 1180160 models.common.Conv [512, 256, 3, 1] +249 -1 1 590336 models.common.Conv [256, 256, 3, 1] +250 -1 1 590336 models.common.Conv [256, 256, 3, 1] +251 -1 1 590336 models.common.Conv [256, 256, 3, 1] +252 -1 1 590336 models.common.Conv [256, 256, 3, 1] +253 -1 1 590336 models.common.Conv [256, 256, 3, 1] +254[-1, -2, -3, -4, -5, -6, -7, -8] 1 0 models.common.Concat [1] +255 -1 1 1639680 models.common.Conv [2560, 640, 1, 1] +256 [-1, -11] 1 0 models.common.Shortcut [1] +257 187 1 461440 models.common.Conv [160, 320, 3, 1] +258 210 1 1844480 models.common.Conv [320, 640, 3, 1] +259 233 1 4149120 models.common.Conv [480, 960, 3, 1] +260 256 1 7375360 models.common.Conv [640, 1280, 3, 1] +261[257, 258, 259, 260] 1 817020 models.yolo.Detect [80, [[19, 27, 44, 40, 38, 94], [96, 68, 86, 152, 180, 137], [140, 301, 303, 264, 238, 542], [436, 615, 739, 380, 925, 792]], [320, 640, 960, 1280]] +C:PATH\TO\YOUR\anaconda3\lib\site-packages\torch\functional.py:445: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ..\aten\src\ATen\native\TensorShape.cpp:2157.) + return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined] +Model Summary: 1032 layers, 151757244 parameters, 151757244 gradients, 211.6 GFLOPS + +Adding autoShape... +YOLOR 2022-8-24 torch 1.10.2 CUDA:0 (NVIDIA GeForce RTX 3070 Ti, 8191.375MB) + + * Debug mode: off +WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. + * Running on http://YOUR_IP_ADDRESS:5000 +Press CTRL+C to quit +``` + +Then, simply control + click on the address will bring you to the flask app. + +The original yolov7 pretrained weights was trained on MS COCO dataset, so it could recognize a dog: + +![](./figures/prediction.png) + +Have fun using this framework! + +## Acknowledgment: + +This framework was rewritten from this repo: + +https://github.com/robmarkcole/yolov5-flask diff --git a/__pycache__/app.cpython-38.pyc b/__pycache__/app.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7217d9e54f007c3897b5a9a8362769eeab468843 GIT binary patch literal 1488 zcmZ8hTW=dh6rRi8?AVEu(9pC{xjZ0@+7uxnBvc_pla`2(R81n(kzuvj8QbgZtuwQM zShj?ezDD9F*pK`Te#X4=#9!zWXVz&|G1i_rbLMuwZ@%NxcDsq7{rS*~KX(!O#}3|a z5JTU=r~U@R5yvTFwkIjh2qSnIqm0&b4s)QVshfGsyP5Nu4>2bVvIc8pP1ej-*hEJ?tT^xMb9(t(=<}&#viL9PX?F9uVfky3Tf7)$hnZA7Fn4_S{Pr7SCvrO1QHIB zBG$%JI?_pO+AsEwPY+JQr$-07doN;p-`j@4ao~FbpLzgBqd8unUG&S=3{BCTaJ;}W zm?8p*j?t??Q%dAvL6_FBM$RrlssGAjBq}@T1if)p3^(ax@WlDv- zyx(&SDU|WkL}`ec0D!3957ObgRsW|X9z`PU?-p^D ziCnAxvqb+;o%LT9X>sxO!`ALbp~KQXb*z&jzYDP&lpXAm7M3>h20t?N+1`n9o*x~bSczpqj|#40n0(hP z#&;SRz(Auh=J=e*UpWDvocr>grrA}{Dgl(@Ezk^We~Pbwk0}`k zoO0*dD#e{q-QeDoa{rpZ{ss^1IlacAya%@##|lN-s_$VIsOUn3po>W}u{H3;&bS;- zR+cR6jC7X5qSkU4)+=BkRKoAexu&#FZM-E;rEY^k#0skk0&}oK0vuS6wut-;=6d(!7IY?n zx0jJFqy%9g*|IUm)-|Kg_YZ1)Fc+p{D1?EndTAd;TJ=fK8k=PeZ;2-eLz`R}8Vag6 zP8mT7IpZS9mZWLV1`{^M*()*BcdRcFRY3*f*eZya$ErAsh($ literal 0 HcmV?d00001 diff --git a/app.py b/app.py new file mode 100644 index 0000000..3983e87 --- /dev/null +++ b/app.py @@ -0,0 +1,51 @@ +import io +from operator import truediv +import os +import json +from PIL import Image + +import torch +from flask import Flask, jsonify, url_for, render_template, request, redirect + +app = Flask(__name__) + +RESULT_FOLDER = os.path.join('static') +app.config['RESULT_FOLDER'] = RESULT_FOLDER + +def find_model(): + for f in os.listdir(): + if f.endswith(".pt"): + return f + print("please place a model file in this directory!") + +model_name = find_model() +model =torch.hub.load("WongKinYiu/yolov7", 'custom',model_name) + +model.eval() + +def get_prediction(img_bytes): + img = Image.open(io.BytesIO(img_bytes)) + imgs = [img] # batched list of images +# Inference + results = model(imgs, size=640) # includes NMS + return results + +@app.route('/', methods=['GET', 'POST']) +def predict(): + if request.method == 'POST': + if 'file' not in request.files: + return redirect(request.url) + file = request.files.get('file') + if not file: + return + + img_bytes = file.read() + results = get_prediction(img_bytes) + results.save(save_dir='static') + filename = 'image0.jpg' + + #return redirect('static/image0.jpg') + return render_template('result.html',result_image = filename) + + return render_template('index.html') + diff --git a/figures/Flask_webapp_view2.png b/figures/Flask_webapp_view2.png new file mode 100644 index 0000000000000000000000000000000000000000..f04bc5426608826c395ef02d523d175efd1a506a GIT binary patch literal 103109 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 J^yRjH{4bvdNaz3n literal 0 HcmV?d00001 diff --git a/figures/Flask_webapp_view3.png b/figures/Flask_webapp_view3.png new file mode 100644 index 0000000000000000000000000000000000000000..c2f360b1161214243626ce8bb8e4a36b75909f31 GIT binary patch literal 428735 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

pS4%;f81?~30+rXA3_AhF1YM$mt} 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

  • I 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
    ?_zq1 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

    gt-n23zo2U?~fEIo#13 zN|nOhVe$B$D**E)ldUd)W@F5ZE}i8XHoXdHFvVv`^H5@}Wo*z{6z}RTz~MW-jggWa z9N1K-@mS{3ci1zoqRFQzx~f-W<;TW|5Y07=Jk;33I)!~~*ue?ct{x>%5vMUAQVG5N z*Wi0Qkv|`p`uRosDU!JamrkRh|eqSkasW3#Asfo}I3)obJj`pnqC7H=K_? z*q`>z0erq;)Y~menW%p?*yNW@1MXPaTwFJsG!<}Qeg}rW#ovEG)-tD1$Ht@~@$5C0 zK+Dtt9XO@9xAV%qPuB!yV$dxd;52B0qvgPgluA{kE4nA&7h&|AdZar@OIGakL9FPM{qFOm|#$XpkhQ-Ou6 zdUl5K_QB^~AkZ8$y-#X9g6bFl_BjGR1}?4b=ZpXE-wu2=)` z5*GEtVp}1$fF<9i7RUj6=-^RlJ?a<{Q}^(>d}FcWHY1SOTVwu2UQ@o;T>U6l)5fT$ zpr*7?mj}xho7^ag@x#aqXW(Bq~IG+g40G%P!r9#;B0# zwmf*cv^tyoGMz<*QcdYtyc*8yV*lB$WDU0HlG5*la0q- z)HA--9&3Fgyw)~hIfB$JXeV-GiJ=xcAWs85L%uCkLGTnM6NJMF_o9Uh?&jmE;(RLE z^9T?dok=fU_`=ER<1|5xTU#;#o>@6yW+~iL`!G3=AgOh3hLB(uT&g$W@3#$D66^1) zA_Y*3!n;2HTJ4(bUGIn@IXaR64j~>5_E}7$z!#3TwI1co^k)G9^uP)_585&!OS`V; zwofO{KJ}m7@BbXl^78UTE)D2VQbIqx(OHr7=V)>9vEQgC4e+Ziz|{47 z#~8N7d-ti-msIqA?c$k3JyILrjr5{=Aq4+)q2? z)q&rve~aL80&@}2TjdLheNXU<{)e~fjWN=kXMzSmJi ztv_GCT0jMK_&Tx=nlTpRy^$ z48w>N)XZZllbjm%9?0sg*@s9yqhjLiWPwCS0xx9WnU;=VD*C3+Y|@I-SJEGHbh`b8 z%KfFN@@4y6GijxXj!f13P_Wk7^CV~Sy^k<;ZTB|;PV191=!g{;phfXwx8@ZT?~`?{ z#Y~_7%$R-o?jLlZ?YcDtFeD$D-1W4#cyAh#s<&QtXex{-bJXq!syWCkQoIaQ43OjrO29N{Vh__p4=3dVl}rb~U~TKDZctPa}uUjNnjNK13|lg|$m z{q#Hs0}yX?{qqBLAo_%YXsvnhv*}C#PUkLMcm8CB>kq8NHh?XQUxb82c7SB=7B;`Jp+ z%fc0MiR+(g=vs=VmS627hRdrc6r^A05X_}C*Ssas>4lMzw$w75LgmLS8tRDhm0(UB z%XF?5ytU%k~0QBXlToLaVlS|)KxN3)!>`eOZ^7(E^<3VH6msHpXo2;G6 ziM2wvZI@(xLNGW!8PX#MvGkF8pLJ;L1-09?qmltMBac)?+l)G*WWxd@At5X9tfJ!% zQycUL-+L?+5{ZRblQ8y<+yyn20XrmoCx zaWb$UYy%RX*c`em>@$3sm-7-NyG+1P;bwx%vaTd))wMKlwH9puXd%{OkCVCH^{y3T zP_&%>haGLrha=O!>VAM(ClK!B|F>_#8<_8j5HGT9o_fB&@r7`m^7Yl5XKg{J8)qk^ zAkVGQ#-Q!`=87hT{nhfMgd0tQ{7Xmc@2jVnSf%Uh>U=@r>3I5Vk7@pbiCUSj+DMwn zzvt)|(*NyJZ{V~iLlmkn+L=;Fz)>S8_vlsu2(WqhE|nL8ua(Lrz%_VZj45$QB&6nU zSXt{RBET2n*=Dc-(}PX8BP=dXF(LO#S(d8*(UQ1gPxX|KxaY+5p?HvT!CiVG38`@v zc3~t3O=>6>W=m~PZA)-LsIURy*NPN60YqbdN?~Id=29=-ZOJx*NfeS; zQldThQ_&~~KQ5!MO-PP>rz_kKLc<l-Zq^h6mrz3 zzHvxx+L+xs_VCY0&x7gHrTw6THjaeL#stDcS{CdN3KP#hDgDIM0x@9bAy@O+(H6)L zJU_kotw1E~e|JJ~L!68G$7Z+>SQ~u$a^Gj25=K#N+ptGgKDhaE$7~cT%__O66P|{c ze@{MTjqlBC$=R z{RPKsT8Z|o)QFL1UV&2u+NXO;h0%pM)ELAE3cW}XZ1C6boS{+n3&N-o(8Me8vHUT6 z4fQkgZfby+BHp%8H|Kuu1R<7+oSYBAPl=HDyX^tlD!bzE@D)Ii89%VCBVZ^g!alrv zrgoFjap#(uWl{V6x6JQz?rP?saA_B2^OX3g(=I`;vBl)Ykvtjq*Y_eavh9W0hUsAb zufm{N%`aw}ij&}QCP1qB9E@v$R!|@{gyj|mhRlS2q*6&l!bbl0M71jo2VaO7A;e}7`;htyTu;3a^D&nySfnq9L!uSKk`k!cQ*WDqk2oC9sEPS5g4=12 z?Fjb~EPBYuf$L(xU}6cjdl=C6lv4*~onUstm|srM4=(KZMk<^mkFm;N|Dm%|NumWs zoP*Npg_ZirvK3S`4NY|$rqOEO(oCnRX=*JtktIZcnT|+JwB1w%g8^s+sx;K^{I*)v z<=Z;l1WJO9Hb|q?Y$@x(PcF@c{zZMerzO?PTprF_P*>6nRvq(Fwy3`&idrc$xCFPp zxKyDlH>Yr&9kO~PY;@Yd>abLOBv!lEz1xOG0UDo{Wtv@FCwr|^f-Zpl z;IW5WmF0WXG9Tn?2N)SMuP3#r-SIvZ%1fi9`;c$R%M0sZIWBuGxfj4~TB&xBXROAB{etat!IO znruFmKVJkb{f9HJ163aP6()4~;7;Fz^P_0To!hrR~r%=u0V zDZl#U8L}(p1{Z9y!67)Dldc=*J?Mx;Aa})%n2UaVEL#bGC{$3q?AypB3>wgQXjgWX z!qiRpw!P{nds4(-cY#sHWc^bt zPhPM#h2Cl}7XXL=U-j-WhsDI*&NV>y;TE zGL#0p&`RfJ+{9^Jm{ixav$hT7*b*0?u-afcqM-x0zA0*PjMF#7{ZbWTgV?LdZX*M* zOPI428^YP}oWJw84i((VD1S)k3hX1uTffYcb6*MQMW7uWgrBlW-k1{qWG~}`u3E^j zZg`Ok533n}jG8`d=Z5uSQ%&p#Q%`=B!9g&Vj|N4h&9an1)?&$hIRrw6G_GTM14z(5 zeu&O-u@p|2=X`UowNUETI@#7h0gEQWcI7B82`zw-3B4ZjHfb)yj*B|18+a}z0^HI! za_zjy*A<7*%h$8REW#G&9_q9i4qzn;)U|e0AHX!0>%>T)UTKJ+(1Xh1@5YKMLlN8&b%t9KAZ}}@*?tF8Q zPyBkf%csWGL_dDBu+JG7WAk%naMLEF$d4@WL)bKf-|@aQTK$?_XSOz=m<; zn0V;)x{z-+ah0RZ&>){xHRxzJ`)s%WCD&QRG*~b>$k<#TyH{#`Vov>Q|Mak%i+Xi{rg8dosY5mJ4k9g|u3&7@9ZHfT$fwiBbS7 z1;aS84wMDWH|JY1^;B+UM1oEe2ZJa`*g#=2 zWH;yA&ejhXXHP_Vpg$C1BAm0pPSY-D7HQe^qSGN#zgV9bAQ1)x*Urz4pp7JrZ1?) zJ!WQ*ebeu7)koN&V*H0ii)e?*C;YO?)%ltST@3XegNlzR?pDBptuNm(+WJVN1+@3%`B>75Tb6<>O45OF=y=zT&k!7CserF6RPtazia zw1cja!}M$8CG7F3YWUZXfGe%=3@rA1q><0&L+$D4>+|mS;(>=zL5Jn%rxVrv(|*Ti zYG-Rf6x!TDCtK{+{_!Jciz&_iC#&WhI|e~V%GKiHWnJ6bE3Qfwo{sD{ce65IT|GeZ z-@9>lca9vP0Z&G;b=z+_=cd~d&7^=DVccCWX7Nhvd6@UD)<4^`dpi)v&i^N2-86t8+cwCbftbf=C_~s_{43RYf*-*mB17 z3X^QQcCx(N8bl@Wo3-lQ2vnh)lIrR5&dG?K(pC8Ke$eLRW2o^0^E-jUjq>Vx6y~GE*vn-L3u- z>N2;55Xx9$n(+GfmgUm&*Sw%$Jf4$-teDEHgp&-OQ$*=0{3k&%91G0bxxFt6aY>6= zq$7wF=nc&;>j;}88!u>~U(dN+DnjW9bE3h!RV*feA169zkEE92ajR^9Sg{NPU9!8r z6;`{N(;ha)JHJa59aBl#&%NuFF8j*RuU}gprF2aEx@)y(r_?t$qtMsEa2x=32Tw77 zS9x_uk6aQTGj|UG{#V0=K0i11^z@>2a6m}yMM z^o>g*;Xe&L#ymmR-SKIlcfk9?r<5WET(MLz&EGp0E2WYrqeh-+Pj+0Kdu#u)4=~no zTN*pfq2%oK6!EIO_;IBcAoL37O8@_dFdP;~k* zhQ0r4(8>IQ{G7aSVOM|8+|7;Vy4n|{w^58u$A4$c(tF-Z+yqOwdAj{pDjqg6d<~q! zeg$cO$-z*2`+FnJz4dq;oJRY5`4wOT5RtYl*%H1m!=#}?zqyc(dJseRP&++ z!pd3u8(kixPe&zG~+}?sc1jrP=^vH&q0Q-u+!d8 zM+$WfjG(O`0~XD09^T^_)o5S`!9{uQ zFo7xTY=6p{TTpf-IaLy_BkYOoLAOK7Hz+-Blfk8ochfi|@?c4D+2=StL2s+SsHSdx3JgOvuW}<@4N7ajrZRl ziBXnmaW0C5X+M{^SZKj;osNho3?3-Z=8_0gzFhxvFc4=@w&gN)(&}0{{nm{k>4X592czGEZ zPKtCPry``brVCGdsH=FkoYnFpu5wT8VU4PMt8NH9WA6}pDuULMVxmq zHtkPtH28rfGv!_j<>$+0&YuNnRd-Eg#WPi3>C|%aKilqe_LMol zKWf-4(&8|ZCYbPL6+^Tpg3OTIxa7%RRX(@}z7*qqh%KfRnQbo2t0QI&4tE`q#YGi6 z=|St8+Jq5OumqJbh5Q=x_wuE?g%>TSVJLRKkjO?RN-~egNE)%xfRym22MY-x6}(m> ziMfoa;m7MvCoIy-qmOIp*{>&KZQv=*y*GCcBivy!qH85lfY1w8Sa8m`R*9lh92nTw z)T!?R(tVSXj(lLyIU2_H_2R}C0N{?Dgc#hN>K$@9PU>bUCgbYN6?9X>6Dmuc<={4zEQ*6h; z`fA^mj-8@#p{F_!0L{;DuL(7_r$lQ|s#8ZwysO_8uDBRH*^NS&w&lP@atbMy_B+{2 z2@;b3A6tJO59Qnb@#EJZTV%#gVrJ|jGj`b~h9t6+Lbk?|UG{B6jHN8eHi~3dgiyws zJzKV;p}gX!oV7V-rLP zHJWtYv>a|EC+DL_YLtNK`qujonvMcEgJ9pfi~s*-GWU~aqEOubFBAj5?WPm_4FlMy zeDGHjuL~^Kwxyl_EC z$vn|LJ7zj1h9BNl`xtiGFHf42Aan(}}Un6ldSQ}AItH1>ujZ0Np#Gz%NR z%El(Bj>#?(?ZmWW>7%sU+rvD(uYlA8`0UvE#ZM{vpG@O31C0z#OM&B6wpMokn?0Ir zSi$s12Im{;4EwO7R@_K+>_}=wxqDNnBS{aF6}(8mQoN~C;1Gujx@ z9`8~&Fkn2+QU%_AQsc1W(*Tq6Wl!q_7j~8v2ITEu`fvC5gCcLor8*-W($uXuaEfG{ zP_l9~3RWsuQf-R#ZBek3UQ6`l5QR=QDbr+zP9)56YIrWu&`{$AoEv!ojOn6sV?f}^ z@kGCHj_TE0T?Y{_XX<27#xDva-B7VGeXQwOtWPHPWX6npf*+^Yh5TLe0 zN!tpvINctvstA%+>8Rqu6Fz)}BMD|iWm?7`o(it=7nPnD1dEd&$O`!CEsNfvhxKe% zdOEKMZf-5eJQXcin~>|kn%*mUA~SuD`O(d2Pi0;YcX#)hrvCU;X7vyLd%SQHs~Bxl z#?@4f$MGNAC9K1ArTGgFxdDK-FQzRbGZ~73Og!d8s^<}sGyD6z*^|eEzWw~W=Jome zmU(@+!$GuyZ=Ms(qRF~NSFRaiv7okDEvV zP4<{oJ$JlcJk|99J5PCc3wI&0-bllH{PC4mbD>gj-~2aeK-VPRC9}{z^Xbgllfk3KGAQ@=(eAJf*xevzfcb|h)qREry8*qo72K??z1J6 zUNl%1sj_R~i%SWM@jMX>KWC2{K+I17Pm%L?_d0|Y%vQ*kYw%+4y^4z#Skg03DFzja zD5zyfRmbDm3Qt9ed@2AP9lz~U_apnl?FC(V3w(*orjQ@ySpBfqPzYen<|`i8UFN9P zZlJNKjP;vrdsKI$c8YOetLM#Oo@vdn^^sl4 zoi{bdZ~j{w{JU87w1JyQYMG-^NV)uHoU@s#yu~##el1l~lV?<_4|ZOjmwZ8ug-gk5 z!W|frwxetUv#ga5aQ-{9TXu~zYo{H}$L3VOkJL^#myajKb7A}$V+!K(`T5@tsJ_lT zOV*?UlD@2bUAfK0_=U3RQDS0iLQ)9*hVOw|tl%jf zWK;$`IC6A*rCvxP#VF85HZmVV!>&cm1+1D~M#}XYd7F80=*~i8uppfn@jZ#3y17#r%Yj6B+xMNB<92cr{z$*Vp^x?MGJmctc*8T>j(N!Y&FCFq09A9 zkxnQDzi0%kZ6c_ee2IQD-V3X@@#ad^xA->OFWya7j9ouL26CH=??&rgXHJS1(#**z z-^p?H+4jsCUvt@+qUB2vuXv^iMZBHJ?Ruk=9f!L&i2&ch7c%lnfJbq>dq@1cTCFDC zjC_F5okbUk<(O9+!IUD3YGKD8Qiqu+r5R6>jJ9rz2vA5HdLbZmrX8b3x@ETaWeap# zkG_?yl?3UPm*1mmGlBBgB-x$;kA@Bh_L_MnbUvs$#4z6AhdUx8Cc%GdYX6!Kcn>{Xp_)+utw z#YsfmG0pySb+2W6^H2Zln3<3rPZICxeqz|^@1-2ym9dSp>F~O%O6L6F2nYV?W;F#G zjN)FVY3b)e%o|yX;_(QooU$yJ7pNSElyi5G@1T{3+PPm9P)DQRMpoR(H!P*Gf#Q*ZwdSmdq7n-s{$-@1T$!pq-IDnZO>`J6ofl)MlGW~Qf1>OZI zmS2i54dan0DCV+|z(HkE{RQ*cQxUIlARv?0#!Nte$#F%g&cn^(%80waG=s(rlXgh97FS|Qb>i>LNct>wJqAj+5NN1+3^mS2 zL@6wsD9k7~ixqHw+q?}eiMuVd(HMHR<*MgUz)Gb<(2Og&=!%VVO4?ND%=o$@D;>>h zNBBOpkZrzV%HS*>YgIT1npVr<+bFzz z!w!*7LG7{(xf@Vr^pTBj6GUOu)N4g$TEQajJHt(u7%~uW8oA;f-lEjYvOb2xBV||z zkSya*;+$)&TL-HNlFzSvE#?$NJ&zO4#+?u0ueV?^6;PQ9=8qcKTI?oEXe<(JTng#w z3*c1`6n$Qz9g*OW_8M07QFl>S8oLKO07c~u4NG|kp-x)=P`+e-Zz*h9PCov4r2uZr zu&K5dT>gJuyG^D?|9k44zT79U!qQUg^S&RuU5U)_*c94=Un*Jq{0_U*ASMRjqDLlu zVp|b*L&tx6<|_C?0|P5hzLJ?P%-Jd^fd;UUzd!EI47fx&xd^jGG>niIS#7716MvlW ztk!qsk@hc+-!nr{RNRfxd>$xUL|vC?LkoGIWjLAu(_{n2`r1gqyM5~2=BXmLQX?f^ ze9|#^tH4E9%6MLnyT6$M8NqhGKf73g^!^Qk&96A-jM5K3X3L2SrC{Jv7_aY%_^1hn%N7TDPq;@mC>71SQ5vj-Q2xN zi_XYOLg)MQOs-XqAn9@wJ-Si<#Q|DW5pg z6z+J*)1NcZCvXqUBJa=Tgl#TxjEM6nJzd^D_~svNpp#kHqfV7sQC_Zg@^?f(?9>r4 zxY6VziQb)bt0Q+M^2M}oOg8Q8u2uKmb=;c?EL*v1I+Zm~(J_!{`y1@p(@a3tq;b={&Vj}P#iuIomOgM9O(TJcR~e}G%6b|D{-a&d zVo&})8`=6?4JqK=(_c2z+NaKN(}AP3H9&bcbYnTU7*2tPz&W$Tt}w|`uuA~k8Zy-> z@oE-x0SyyYH$mm@M&nLPI#m2-*=dy+6k^IpXUldi31FZ#oMbWPTjHKttSucGc@nKI zp<4FOr-%D@p1DRhzt%Y8;FjNCSb3Jo9HnPX3ed1@Xf7V*U^Bg4=>*hxVNDI+YG-a8 z&u@;$q)Wt?Ixg62r3F{W|W3(^|RNX0NOYF8Qplercr_D<=*2HF#F9@U#$2D0JNz2sk7Zu zYyw{nB|&3FIv&=lkX_}iU%^00qWp*q{q5!nYrdzNjIEr-ZM0}dp@RLb4>O5AX!}K| z1sh2c=Hpe+3b7bi-&7y=cYZU$xFp1~_&fVz4*kDa!^$JDZY$kJPqykyS6(OiFTnee!z zUrzYuj{MAOc_Ql8-DhOSlegrRJ+#`(=x0oOfnMT6DH#7d%0(2rBWG6JZ=~pQi=_hdiI5*(DvWe)_w&>|nc|xd z3VHKY$W(MfouPEhCW_Flor~Z7?U*wizH+*|$^c-iK~B-|u%bF)`OXVOMtTX*qC5yD z@P>nG|f6_51(rx`Y2Yx({RUhUH>Q#WhBv#h#z9e zzFk1(f-M&8-h+tG^gZU>m+DN?HBk@BVf~k&Ix&&qc+>AB{e-$~g3@ zs+m8Hc6GjZcQ%#ujrZa8qRk&O$AA5=;H@BxLSV$FnMX|< zBzLt6$Hk_NK5=3v=a{Rmy=z`ohbCEG!o#Skb9>EkJQ#^YQg(qGdF?~!(V<|0SE$d)?#_yQ z*-`UpwTJuZNseXqrSOfFoKTMgRBfZ);5lYqKEARN2hsA&fPPbzXvOD^5+&b|sjP^s zpAJwj!_BEXQj`Gtz8zIJvd@8f{h7B)N)jN%!MaWy5w`75Ah3l@WI%M-VTMqof%5#=CcB4sfDrD*PE?8 zzJIexpy=##TE6-vRogtl0JkB$^IS3;3`5AOmi?p0vHcfl4ApTdZ@G|4_VNM^ZK0W% z7GM)MwRz?#du{avvw>ZZWgk@HEdVGMm=C^uwRrZY`Iyu_>E~9L9e#48b~oD^KvQN~ zfa_wb0p_A7!@v(Kp{A1%9%&ewOPVF3G?@!o%uPYTAK?En?iCCvErAR9kiFm)>fe0V z!$@wRG>ZDy6w{*Hh!_;4=VYgZUqNp?Fs8*oL)jb7ibCCbnyy0%o1#i`c!4jYI)l*= z1Z3I8w`)b|l3DFXsYaO5)qo7v)`X&RI)G9`nr$rmaVx7PqX}DNV%)WBH?`R9*r~cL zp2MDUto{Bu8^4_hVsxfEt2Ot2?MDgT%{B9r@-!&&{EOx$Bd1L{p=BQbThSnSnkEkzf%E!3)H5-|yhGAMw-8 z=ONsvj%vYX``{L#>b=!72h$uR5;5IHVSN~NCr!vGp*7K=(VA(GT>INDp)$5T)u(yN zeZ$OOgZFUmH5f^FJ@>4?7*QMf3vLsMsvD0C+0Fq;ZHa2%U1Q3KOq2t-$|Rk8b8+HsOiov(I<03jY6L$LZ%<8z$o+P zm8Zi0(on!Mow-+5@*{0NHrTAU0+(0lr`XUp_>aRxpH_Hc0UIQ0&e@AOSUWx4=R#G=rDzc8(BAp9yy*Z<%p9e(wQVby>a8HKK=7e8J^gn+cm`x1{>n62~sM? z8&wc3{Lif!cE0bOz~2wf8a>_eu_PSo+LBRki z{`f*+sd0MDf!Xo!>6_1e_yQqv#dT+SbPaQuY1Yb6Tu?qhuSIR~CoI1o9!lOpl#g&f z#JHXqtxJQSmM&cc*9hvV7<;`x$4teUiNZC!9cqL0`u<)=$I$Dx(}!FXoW#6tviYE) z564BEyJBZrZJmEgN=bcT4cVPSnm^Xb^`a?@Af7@37eLRhj19iKudvhx#DsX6 zspEg#9LR|;1f4!sy!=R8Lntf`W%lrVq5pj)pw^s`QG}JQb@IKTxB#`g@1xoCn<*E? zP1gznC}CsmJ`=}2Gh<)z9M6)}-WnV#wv2nwCTGUj)^RADyoMR*oqRN712P_RQQ2j` z(K-D_k`#L~*K1w@;4{aG{otjs?g#2#dKZS7h$=zu!z}#?Jw$T9^g`Iln#UH|e9Ep? z`KqO*a@M6Bo=cY^xTJE!>A2F25T%$zMEU`4^`xu9B9^i{r!oXC7)S>w~!Bk>peYv0946dqMH8%!rZgqsHp0y@6 zowhQCKRo_53CEWgj8O&AajypWy@7G#~4k3cC@`Byf=|bXdGp>=f4Y zfR`{qQXPHYS5lIS!Iv=Qx6Zu_$<@WTP-D`*WX!sOap(qzGjZ|HpC79ZVeehpU8`=kck8Z@#uir611I~xyMG-p(Zqh; z^G^dQ5qTSH`fXp@6~O*ug5C)8wSj}6nxM_a{=Ewq25#xEo7bVYCL(E?gS-yP!q2+C zU7-TiLKoVAN#2()d3kx`9FrjUdzZ%wos(Wea6MF=wARxXSTWmn(`w2}QhDOGb$2av zwuN{vT_NJ8cS4bD!F#0{(!>YKFB9f_QH)6IrM)Dv`w|+u9a~Q5gW(j z*&Q;mU&xUTk4IQ|m88mcmnCum~-Z00B1b0dE)aw{IKbFB@aMzDOiF2DkV4|1XFT_{UxMeM z87hr53=D?7+8hFoh6sNlxM-<-2-J}4V*KRPR6+3C5w6xEw4NnBBCzLyJd`}iGeRa_?se1g)>KqnGsxB4{8f-|3XX#@wrVBQE zo=ri6HF*y;s7@fgEvzI;{ez3vOTBd9;kN^%ty;)zcCBN3q{!X{VD*SB3*!= zJhB%Pgb-2LK0mbC59Mmzl%CQJzq9thK@vfTNg7BGn()3BLAf2DULjBN(zfHQ)v)II z%h<9B{tOMd)R>Kcww*seBg1zG!@u(Is)lc_E-Z{q1+}qeS>$wj@odfh_%l0~$ft7p z>(@MpB6h934SkmGjW6TW9F*GnBZ(YaWn8e+OacIowG4}PWs3pQERoYK=&3Fh)HGiq z#za##`rW@CNXP|QxtJ=Q+!`1JDs4o;ng zvs?ee_wW_=xfH2v0Ae?M2J}Yc^kmxYh(Pw?U zo~`!yXD!gooSoj<3PGP8$4e$CT+UO#8OO%JBQ4F-&Q z1p)#vozoHhEn|ME6OpLFBC_CBJyE>45xQ|1Z8bIJ_Lbb>ihjzE^kz}4Ek)&f$q_rC zNu0tJZB1=07svV;zBDYi)NmoGH0_3eKWvcxKH8$&*8-2G1zfUxs0D@2V{i21RS&kx z-jftng0XJ)2q&&^Vz?#Ul}9NyR0ISS5-Eh+TBeu9L`mJI0l*K3+n3m-nGiaHzH{sM z;qvkyo9SA&c>-;U{jIsRsi~8oDQfF0>2752HtkfS@9VV)IX&0O*e`?Wq&FUBZDpom zHA9Xb;}sS1n6;iw29g|=s_NCBxM)OHW?bi&eI0stDk<4q#C>T&;F%0Vn;*%o{)!ZD zUl7~JyKa#n4)xbzp|d(@>9g|+fMy95h)1W7*U<=fVIYc6MOkcT_D)>=d`LQTBFO5d zvo`Q0CE0x1SSN3;!F(ety1mk(Vq7HX^w06}kmmTHI?GYv948Ex1YiU%Ck2{t19`eP zyU%E%1aR7{8gSfTojMZ61uFHxXmFtS7qTQ^5{k~?ih;KDn`v(UDG47!>2w7gz$j$& z>~Stv3%s7MKO`FcGi_*Lrg$HxMWwDSN;=oB7RtHN zSS12K+KX)-v(}dw7794dE(+z+HGlKpjcT4$IJfr&Fi z?AG_#xQtl3T0JThmV&ZId?Ld_rl^5LY79JD?te|Q)YkfQVj@$M8p)6O6y5L?k~^yY z`p%}sen7o~VT;Z{lDT*QdlF8F8hdG*q_PJnU%CizQbhlmlAmb^-C2|m-|pQB`VUNL z-Br$haZvSW_0J!?MzsQ%x)7Xv!j*And3W5Fp7AmtJ%NW3m=~wU;}BF>6GMzW5+krx z76laekl)P5b7f^VHr5Ai&&RI&xsgx*#HcA)Ua6;v(TlH>_unhCb>yaFKl|I)~km z7jb&s>L-nHRc9eLDXA(ky0O?n-x;n2HTIY4&rBX4u7x*o?ewp$T`4M>QMtGga~<4R z3i*5cTZa8iKQT;8x9?4Kbhh`fsB8b@mu7-dPAPiB3Qwyo)YNg$p%44!K78D;qkZ-B zTilR)_jN}%@=o;u0|TQ|4HxTc&YbM*8{E`}5PGYeYcRT$^%Tz;%ZJ+|G>$!}A_1iC zTcQLM-QGR@XP^%OO-7zm=MbWe&9G913)BS#s9WTsb^cBc zbyt!C?gej`3-DMi8p|4ci0(C|V3a%Z5QxaS0{u&>W-^qT0)qr;6x)usFMz`I%sTs+ zn6#C!(muD*X`+Oh`k)yp-1bp3Xg6@rdL=ghh6mc(&dNXmgK&xjdMR14_fYB{m zr)Bj&XISyOWJWv?vJ%9V`MqhzqQ4>0Vq@H2j2kKKlVHmeLtg1kAH1i0wVA*gwo`V` z%Gx??YhlTeNs{obsD9%k+DWZkR$9^&JYp1=ym)S&VJGT6oIp;g4N|n=MC5DT{1NL| zUs8#4)}Y!E598Om^fjyCP=E5nlb(s+A%P0{4P;kP%|-k+4}ycyMLbg~s5LF~vFz=s zDG(;8Hv+%_0j5uRCB2s-l8?K4zulQcz#2p~HC;=)g^;#+2f7;jJMkRVO-hO?cf=j* z6fr-*rQ3&l45%Yxy}LA|8C_z&$AQ9{%0)>LX38Pj&V&Z-;78koy3xiFYdCwIA!SuTo)zw;Rw zrbC@m-(OaDz`f+vHBW#Vn!M}QdY>+>88;fYaH((wCxp9wMIm75@T|?F?w>;EZ17(% z%DPWwL%r~ClL81$UWkDqfRYiAGQ^yZ@VS+qZjOW6JCO)fw6#-i<&rZ^fd?Uz7ii)o zr<t7q2S}vqJaq&Idn^C@|?*6Fw5|4N*JQ_+Yk7Wcv@St;| z+FOtDnUL-N3@zkSJ!M5jMOD?GFJme9EgPr;8-2ar)80@4V;4skG;cr5JPjkLC5KV!s!5)V4P47@L8@0yw^#2ivaHs0lW3X1Hiw z4}PF1Ca0$xLxU&ehA88quuRPRjl-smOmnUM#pSL2eLTfQ3KW9n9B=gBqVS!v@V%uO z<AY>S+GT~6%y;!Utye#8dP16aB^$3|tvdhBr8PRzQ@ z%+xq1l-pO2drh22fw!EcfBo#aabeRsRqyvAu6p`y`Fhjw&-Cqus^9g6ZWR?C$dS40 zOd8~ix0&y1glz9FMyG$dbuyJ0URI{PM=_3}M=T}n)cDF$OPc(Pq zxP~<^l_#4PZHe1me~XXnI5VSO@+26~`C6%J`9l&_1$RatxVX`8agM{=TX%GJEdO{v@4tH@C! zyNx?8F*OBmhfMID{t#BvVpwx^=A@&5c5;R)DZNccx6_ zd;?butL;FlmoiVM+pU%UAl;yc4XfYfq$r;`Oe{)JX$kaa4gcwXCOmVtOw+Z*ak2%c zTV<}XN?$h*-<&_Vce1sSdBe^B;X}`dqaYdP7Z}}Oy2AT1`z6SMeYKNNIIIv+oEI?~ zkEZPwyz;~a7wXjKkb3Ev>QzhY>CJ2i1T65*=BCDcHI!EtEtt|zvLQC<9&+;Gfk!L8 zB$nivnd_P^#G$ zbTom`r@FDU`jYmVln$D>xMrpvkf7w1SBP3Xc3ZHq-En>f(EoKt#9Yg!tMz z);%1?)(qe@_r+iQzTM=}VlY<7S-Bx(-Svo;DXe|qlQM-n**Y-3VSjOME>U%sv&(JT zJ$j)^7^j~++tODc2NZQe#EotLzFhO-)NGG@HJ!M!sW!7C!B2&gc!gQ?nfT4Iy1UB` zT?9LVj#vWTh236Azz&($*2Y35g$IXaa#ITnf?zhatFKQS34m%a1hlgBRc;LQdE;OF z%ZUP^(yE#B9)h-SMh8ZMY0jQH`!{gGBeJq?_XKQ7oGLu#$jobX|HjCi7BK;;x9|cf z_6bOfa~XhU@JTSN1n7ElZ*5gon>Xj!n6Jm zxtsXrzylnqshMm0XPbV#=8WIAJpb15uQL7StIA3ni#JWb6;wKBVV>M|tZ%VSvJSc$ z=d|d?wXC^vf4#yi;d-9?2C(@(Sh@yE$+_RZ8LaeJ`+0zvaRtjY+_c*D;E|5gjV6YM zhwVjY?iug=wfM8Qs=u@lM3!{5(4L=59*|bY*;|yzQ^t=9RPvQ|P|nKj?Yez346loB z2M+Z%{k{YWQxq)mIu=)1wdO?5Aq1dZ_H=VKUhm(M(K7T$rS!p*e0KLZ2{ zDn>ig8%W@Qho+)1Z`oX@-}9b=+Jyh<%wcEQ|4F`%&2|4(Qsd+qs+;ygH%A6_M--ll zGBW|#28#;GifM5s_TG*yn~zu<%J^4q=y^FNlC4kk;d+n!jLN~{&q$gw(%A3c6QCnz z9lXt!2nb5TJQYS)RhN1r7ybuHgJs|$1o9Yvo+xx%Mu{@2s+|K25dz!Pk3}E!j?#eaTQr?ea0)`Qp2`8uOjF|)S0HVKNPcR_=@HXxC=`3MBEk{#oS#NRQX9bz z*(s!AQ$r_iZr%7Z`V0u}?`b(={vt~$of!Hluapx=EqBFHYZ^-wNd9<9VTZ#!f&%#1 zsL@2_9@MIzJo)XKnV)~CpZELkZz|oShepOd7OjGVLZpcOeV$7BscyBmn?BUv>ejbz zIt?ObMVcwn|8aTXQM*;Gc3juIS8bIr)b%%1p5Np7bwf63X@+hGLd1kelwk=oR}A{* zQ*;WMD=C9>sKul@KfAuAuO0u;+Z%OnQso1HLVjZ)5lLi$pUaDjTR|rl)DsM&f8|M_ z?NfI6Ug+M|{Qm0xdm^|Dve`4|E;lE{4K>6_YZ#y$=qEEu7(!xUeQ=dLG>6<0~lLcswRQ=(I zB<3q`*YEuPy_Hl}r4EI(UbGzrZ*9tyyEpn+=`?5&ow@JGYsxn-%MG1l$0TLb_3Xsj zVZ3@k*3U=wDvy27o-ZAj9vN-_yx!4=ZCyx1KPl!0hjE;*`NsU}l&ZkAXvI7pHQxqp`~ zhfRzTjPL@lYKxhfirAzi8Alzv^^Kx1y zzL69LnM_J$XgBDqrJ*t~erGY0XumbM(2X^@YFzlzB|$tz@O*%Z2CZ(s9!MymNTT3& zlDiW8M^THqrB9kY5>e0}R6X&wmJ5dU&&sj7x99fE^Ik?vP1FCi~y%)B@6vn%>?bY3eVrW|rP!;~v z7Ly|tQ|L@8UpsRD>d$jW&Vj;4O5+^H1Sx~+u#+WdX=7=%XbCASfRsA5G)h+Oj*-OG zsM3gtxK%lFV;eu?+_HNI)@uCH3!c4DeZ0(0SlO@OCg@JbZFhP$k2vAmAFr5S?GjFA znwmEGnt(IR*15$RCny>}IWxs~=@QINj!sup@LW7AMA`0w4pB#RRzy9o!oifNbK^_z zElcF5;e|Ob(`D1keGH{|kSn~UjShZOlS~Tt z{bqg5OKE7{-!S}_$r#_@Zw8%(_);huaqB{9xKmx}|DA#+r~ej@+d|<>@9(@Vuc#P% z<3?;!bF!QJsEn>U&nQ)+RVD^QcD5u?$?uiPOWs?4rEi%+L`8(X%dd8mx~*`jGFUh+@5IS zMlGrFo^9hq6qGtS(Z`*$gJuIxdrE93I$MV90Ewq%aTJU z)%NfxDyLE{ma?&1(DQ|AAka&rGZ<-7+#h?r=>NOg6s8{H5`Z5Nz%5CT4==^N1vWwZqI0ECIefx&Yy&F4Tv@{3H!XTK1vfH;d!&Xlxt z#s^L#08)`3GxDCB!V%J`uylZ21rD!iIB7a`TQI(*8~&7M z<@ZER;&d&?dR@1oLNcf6W6)-=N6TOTu>I!-{{D4JSFeI*?Y$LH>@LYMWtsN3qv)Yu zm{(Ak-{$`7gOKTHvn>o(k^P{^(1t~ujo3;gMdp zZ;@M3pueWC-(U&8 zHP-sGYJ&qU1AC3gf>Wa}oO-3jA3VxG792(` zq#z`J_kHMfEDr^I8XODA5nsQan*al>%7mn(nqL~XOI0VMx299?K~;nX`axvvqLu2j zt2@yBUOra@p&b~rYvrTl&_kMXZ=8DQ7I*#nkE~~95AUdsvW||LHi{3o|4PJ%vohZ> z)9}osf~idRStgIpj^X`l*}pYg_J2tr5a{}h25f%tiZNw@b55jscmu>F|5*5y!wv=e zIGZWfG~QZ4)BXTv7Z|oS1z|n-pYRI!pARM^qtGoeF|p{-N#sD*21pW&EGb@9>a$Wz z%GSIuJE?NEOYAk5R118#xjAtFwh9Y97Gti@l6G2ypZC9Ea8O~Vfs7`!%!RVHz#|Dk z9}k& zSUr+@VhSTSKkpUObx(~&u0Is!;)X+B7##f)$DM4ySIYLJYesNNKL*SeX&h2KkW zIek+UpBRw|1@Blapxw@W%Ub?Kj6N9+;0X?16IzU;n2!enYTajBGpCoIDZ7GTkL{oR z{c$j+L%->Pi}9PPyb~O9@|Hgi7q>KnG~%Nbc%l|4KeR;LFDi_V(q@E}=xpBm#u^~U zHs0po_UC+k1=~zT0rK3(?@Y6j*0x3BAnD21ld|*;em0+6K#fQtjN4PJn!||u!|iC!5sQsLlfMz zibgv_aM_4J#J-iEPi#DUJ44|}MQ-VZwl8u|)WqL0eOC`T{7aG%!ntG>uGN=sOy$hi zVYX7|?^72P^Dj9+S$m>KD9%HPvcKa%KwBg%uby}=!$oO+ddFLs(Ooeuh2tS{A}sv2 zWEsKcn`18o%Yn?UnM~a!s#DZ#6FSW0mE-{P&Ih!o?-N39{*39r8qfcVj7f;lM+I6l zrky&O8dAoyb{m+onP@7jbz#1i5#=kaEt|u%G=^=3UDdVw#f7QfGhp&_lW8-xVUu{f zJZu8*#i&j!KEubk6n8;x=N*Yj1M8Xf5R`yTdk}Zi`0w0clEQuWXKRRG&lGt<|D$GD z;mH=;&0)hE#(B;RZ%4|YLnfRNnG`HA2=!hXfG?G+eA4O@fd!6Z!k!B;X-}juEvJ*R z&jX$<$V-R-vK(z{+IjVU=jCgLwYig%*%xT!d8ip|1izpEM7mMURCx{p&?dF!m3&VZ zjwUD;fQc=xfs1j_9+j(11Nv%L507_<oxHy6h1!^n=|0Q;@xWZ=+7;lo4jsf>M^q4} zF2J%A={3@P6E+T@wY>iB%l#_aT?wtZrq5ZXzo8xf$=5-$_C%|I5(m|GP&b${(zbVl_3n zFC=}*m^=Cs_d~038NC73Yg(W((p>Uo7zY<+^|{ca-7UZBgT|RN$I2H4`8E?2C4oD# z+;`A+_(1OqEHRw#Xi*}!cVAKBZ-t%DcIgxBRXykm@A>Q*>cW_r7ZI1RX?;7XvBK?x z7sQ5HeL9w9B%$`UmQJo&?7=HeH*y`#RNjRGVD3M zf5?UnD?>6Ub?s~Lk4R`4^&YU%rR6WE>+<%cSQSKW`0Dc~J6F;dXZqK(r0B6-AUGA) z)sdR63g?M3X{T%fs04e0eKRSHJga(WN+vD(=PQJHMli7T2auvO%H z$pE;m{mL7cMW6Y>Y;n@tr7#!-rLJy7sfl5+r-jq!k!(A7)M;Hf?On-fc2KGcafFCD zeZnzqzKCBOwt9jB=FR>|%41L81ZL;=0#DnI!Fo)WaFq7!6Fh8ckF)9@Tf*ZoS1+mShlI<%rqRF{qqD%4$xXX)aFb zOc$LwcX=LO9vQtzm)u1zAJL^9oR6O$dq#YTgHF8km}SZ&#j97naX5E-?^Zo5V4L#A zrg;&<+S0bL8)%`W@beHs4&o&YUa~m-L%Y+QK(|xa51}m$y>_a! z$%x>l{(GY&W*H7h;ae9L3W~+qrE%;-Q|_zvwQk>cf-c!vUSYRxh5%F!t0xG-=vcz2 z4v?H#THK|-#uD5&YQ?3@Xfy^=moWW=5BUs@k_7;Kr0MFp2Krzly-5Y;gQ@dB8ws!S zT#647!Tqsk_bZzAb0F#i6X6Ys((1_Y>#}2S=C#<7EVdUcSdc<&JW+HXoU^_JxpS)1 ziBgX9b=NILf}CHHoI`Y>bvrW|I{4J*Rw*@pPJy}r`flwLxZ(NPi9X4&@rt!cEAS*s zNCpihZJaYR=gx=1(B6@!q*Y zG72A1_fujJjHAYF1YnguCg?F8K*g6{7Q4{bXOqdqQt9HjcCK187vPlSh)1|1>f;Rj-|Y0jzI zG4q>$+G^wK|7xo(j(~3Pt$8}Qlzkc+W3c&y-<4SS#OtGFsgnjmMuDMiA>O%R zjl05$@kn(5eGY)&e`7~eh4`uRWc8rWQ>6fubnabx=#<#@t&D3pGwJ86e75bU%sKa- z$v-Vd0{jpWW+`ut1Oh?}DZaKz3&_Z3w#~a=6KH8cu^AS-q$Lpa$Zqjp$ zeFk32Yudfqrz3o)EqqpTZcmQY)YQagi%MGPM~i~n?#7|qO`N(Ncl0$0mXGmNkPk9$ z@C*n#qJD*v@aUqbP9ZbK=z(fchyXHFW_jWOv zft4Ab`xuj~j;i+J+1S`H)=`HlB+O-ufun5=T8zN79_XsPAqA%>mSoeS9zqMIzwV=I ze9$hv00m`eGh^awetRoBGba<07k;bk%(^uOH13GA zU+ILySz<*GMN85;Uh5>dk)eiUt?+D9x8Y0i#m=}Z@J{W5yDws6Ogw;lT{kr~1^u6Cy&WI8j0eQ*@`yV)xg1~g{D078e@PonQ;ej8kkd6V&v*D+7#w?% zCq6L{peQ(;O}Jf^OdtD!zzReWbkSJZwW9$&HbqAPW;U$dqW=j4?Gdf`j>H_HQ0ulX zZ`0b88xkDK|5>L>M`lduiGg1GbK;BmQ1(Qka)<$G=83y|(4Ucv;W!)mD`ILH3H;Or zp_VEa<7pLxCKN0(mkxFLrpd4k;aS?XmL>(Q_2d~yjf2YQRT!YpqCh~meA0Ob&OI3 z_t57$bE^>xoktYBhdNu%NtnOUeNLbNMa7(bCRn|jAF_@V`Yv3!KpgoMVHis0#@y;* zq+b|dwfzkK-{~|muv@BpGWu?va2>e)x&757RfVpwTK^sc=16IQW9CZ(^JK=Aw5hT( zwA}G-KapHlQC=~9ym_|UMI!DL-3!}^C&Wk@G8AUnn;%tiV%9J0TiSQNRZHjfDn=1O9*)r zyuaW2zmIRN_vx)SA2O4fbLQ-`_dfgVa^`H+Yjr1VO>$+kSih}`k1C(O3SV3Kq@F~n zft*rQ=n*bS{i?3t>tTD8UV3lAMU<&77`M@=d~pbnZEj^^?M}Szb4GtZ%K4}|yd(~+ zwGTKU5uRzi%)-HGZ!u?KK8F+EwmJq<-O+Dk*{yt7sb3j83)YE{Ny!4b& zFCH#_c4sKG zgCbbb_HOTOrpJ%i+^4ypzsblX>-v$lvUieQszNXBlkkJ4(m<&uI*7J=j#r^R-B4lI z;;t3p#G6k1#-nq?^K)1dGbK`}-QT1Si@W<;D;EEn>h0F2c~Xfnl{Rq*c(f@m==$3_ z=)T&I_fg_8f00iHWJG<`jMW_d=hi>b8VVX@(NBj;@0i^IeSP1D9P6gJCI9p#vm?rX zKq8avsa0|1Bff-nZCPN`iq}WRpw{;`hL?N4%yjlgq!c@Sby1Ir@on7@Ph>;+F;lga z{xc@COXsG?!Ma0z`6=CfHa)Vh?UnVDZ`2RW`AFFA+hmNtxnJ-xD;{ zP z-M7_lrE=@itM?^QeaufvLrcavJ1En#UOR%4>!O>pmHtvl)s>VCd22s6w$&bTk{*UX zJ6V%EO%HoXSXtc+#2?22c}{+p&v@J|s}UltyK?=rv(9xBjW)wM1R0x%kl&#{?OW1U zux{H}`XD*_LFh(~iXI)`36tS}zT{y2ADPQ2#u{Av31U|Ev^tMiPpOmtx!>6|g9Lip zs1;iH5y~R#e>U2yD&pa2ulAv|AiVF@waD=BSADOpe{uV9&;I!q?|lW`N6?AOPw%C$ zTYanNM>_j)hmZtSE2yQ7HWR+VLE4#ev42^?co-#wF8g;<;m89|J0@Fa?vzzZ%^wjE z=*o|wmp`@&M}ARd%*wqX+s|-an7%1~n5=J!w3+-Schcnnm7+%vmfte){G*UrlSWS+ z{6IoTaJYyIrEz*sL%|gM7iG+B-^AsPJGO5_?lg(Tgls;hkcpuNvK0Rl6Az5p)MA9$Wz zopm?&Ue=SvVTqmOM>@J>)S?4zR2~Jv zlb3TR|2_mGy)dTOXA}ZkA@5fg6jMj81xmr&hLsl$?zR@a?sjPH2RkpdIl3bE(9=ny zIlRRfXJGH8PDfcMESx`5+ph>@WIEEsE zXTjDkf@P7jMK@y4`Ah3$3RN6VWFJ=Bz3Me=CfSPmE7Y^r9io zV#A{o2%gIGj);w||c7 z8(M>g_?NN7%!?CRW?N2@z0eamgO;XqibaFQ;tnl_GooPVKfeW5fZonuJ4(*mx^ zRbIlUzV&D{vtKQmB;Jq>J#8zF1V?5}3PoG2*6$hAF6BL5)m_Y{+5wk0>5KGm!#m4v zJQz$f91eh`?efx$h8rmBX!6;a_cx16htWjjZ?4wI*JtR8FiGj^&@6jO+!&`AjyoDC z&F*imM8(Pb6!fixFCeBQ|96(rv0~UoaIAe_NZMm_Tcb($n{pQlSMkJ3Ec@p+Sz0rEdKNHKW3#1*!hnoN(o61@`YN;@EoOd=}1Z zZ^{_8n!SD}6le2xt+l9*ZML6v!wHbxApK#bJEWz;&BNm)mg3-C`AEtgUx}L+3@dGN zT$+B;=8kVCKnPt>guuDVV6`7d)zXfKL)&R~j5jSaGhF~uFMf+&wf1(Q z8q7GthZmM=Q~+~HRr9w5wo~wfc>7Orjk{a|fk0ktG{EW82FGf+;bO?$-c{wP6q9fA zV(w=R*nv+7IrIctcDFAIhr{I@4Gq4V_&&b!;^yMwq$Gbq{jj2acPwq8O=13wLEqEP zU`p0Z`WSU@Zz@0%spUIqIgX~T*OwRF&=tAQmLqs?IOvHE**#s^gU?#2;_M+wz-N>- zKB9?*+`4Smyl;-E-q9Tz7joasD^It5*cu&eC>hJ9Gf*@X-02m*7^(d-Nk2B)Z}?*^ zmMjjCA`SI92&_jW=05hhCZrL#*JHiH!0CLcTUk;Uq73Hx{4{{Ty`{)5qEw)Q%HRL^@K|K^ zTij0{%?EE@7LH2lKj`+zHW260!SGNn<)o;n>8dX+)d(+{TMQ!naI=ew%`J@B`qAde zo|9nN)JkIqgujkcGR;TZ`ca64v-|-RE$JXr=J(Hk)&j%}_XLQ^%CgK%N@Q8+tIpC& zB4eV#mXdIvySL4HkdwOo5a(21i{)JjYDKmJ4I0^-0#2ZU{V&B0nt|#8)L?2B_C$*Vw97Fm7?4|b!Zyiw55wTpnGZ%H3>eGd~~Wa z)-hsKoXB2}Yz;djaDYQv>E!gw>&qi|8Vcoc53$*r(C;OtZB&~@X}SZjx^_51l9~KI zTfWM(r2SbAwj?zS_1E6XNG6>OR|4IIWHPBpzD8-TzN;sfPAq zw**HG*#XIeE_wXcnYF5hbvG)CZsPmlfq8ixJ^f9eMKG*pr?lN-S3(%V18dV&a)Nas zPxoI_xz-=aif~p~+j@JuczZiKI(mESJC(u9;BfdjCm7Z0;wPuS=+D}s!~q{xu-i#C zDo7Je@<4NHG$1`OQ#-<{fo^4w8E6FCfkhZ-u%~OO3sS=~Bh80n&*`Y4J{BDDjH-$~ z-m@RO2h-&_l&!bZgD69!u*kg{|H1?VC9E@@oPLMf>Mmh_^Z1*he0)IuLr- zJc=3!ta-RNu5>1ND)};}&hB^2#Q1k{9Z>;A9ZlE`Ju2fe_P&_TYF2o6x$SxUkp&Xr zaq6oNMg_<{8jm81M7`Uw!0(U4Y_H+Sxfe{POuZb~S$O_h*fHMpg!|}lD^yNY8e)bt zc1Aer$lK`cbg`bk)XV^< zD)~lOQB+!nW5sftzaRwmK$3ku)0vi2L>!x(r_u(y=#JehK2n;ovo z=j2P(P=&a`^wS~+1$JoGnVc2lT;(eE5kY=|&8!VeM$|7*58%=;q{J!!vP+{&Gk3GNNv^YO`W;2zT+<#Q|J5| zc!OS-YBgrhsZdCDQEV&3EVkDz@s!-o17UVYlpze0&23fv0*bm3Ra_|D2WC) z7a>wd>}TSl>2tg@^e_^97>V>jEYn`VnoG2LDz~e;;d%0kwe{<0e|Ljq%VEi2QQ3Tzo|z7g8c7PL=Bpg4BDB*IrcJHH(y8>6SQS^hq5a5jvZ=H zH43E2L~Y1$3SAABEqb+pXXO2djaq`9kJ8oKJOtl+zAq;;yE|D6wJax0+H4{B5(mZ; zLC_9E;}JNDf6F zSdNz@($>z-nke_~UdX+dL9)RjvuZqvZKQ?w^f3x=Lhwd{mQEHZ{fDC6HLV_abl7UR@a+G#V;^5X4K=D=DmG5`<^UfawW&#Q^5_&) zcr|}hRgHVgxJ$<XN2 zn1aIylLfW2Ys=b37hjSs#jvJytIBax2=|v8ro+j%jOnWs*fUrt8|HGTxoW~agr~l3 z)%*S(0bPl^DRsIa9dS+Bn%>lINsB$BlTB3#Hs;Qr<(n%lZ}=@g8FEdP6IODhUr>LD zS$+J-YxtCXNylX3A>2oWvG(tW{nn9lA!&!-Q3ItaNFz<2G+$F)+16V{&i-98(-3j&X7NwV{P+Np^JZuakF%hwRI|_ou12Flx5(q7azOXLh*# z`}ZM~&ohJ!XMu?nECAgP*Ss4YeWdA3+Zq4TnemE0Hu$dTR<>wMaj{{9N}rnlj3lL< zxpB6iYW;h&GYFTLa(3gQck&saTX|7ILK$p2M`2i*W}&VdBGb`Su(U=@oaOiG(wfQR zQD}&FaPaJmaa>}JF>|G0$2M8Hw0+|12OgY5hD%hA@e=RJEXRZ{ID^qVKY z*}7!^!)__o>9~kN*|=7Ki(WNT{*heIvs~nvY>?=IW|Z-2AmJ07NeoBucMWbz9b~{R zK||{8`WJhi<@W^H2hN$bPw^n)ku>T_h>1v{;Y7dkTJbJ9X9JrvX~3)MZg+l91+-WKvA|@pfu- zx{z?^9sYjh4Rgn*Kaq{Y0hB44@axJs>=Jefaj7WTb@`II<*_7+`>xs;i8M_Oo&Mvf zqEX}HdtrBb(bFzv`ScRWJ0&}hO+5?Y+$6PYHm>~N-2o4FrIy`E4xm>TS{#$@EL=4ZJD46t-iSP zaIv-4$@Prew;5pu=sVyTM_AngYw~c^4UWH+vPy4r(8uVar7U9;guzbmF9BE%hT6p( zinh*L29|-fb&*Ei3|p334s3Ag&P^>w&o7T7so|+UqTknSYxJ51(sWPEEMj(txwpWu zowvrb$N)Va13hlw>@`}T$jVCxM|qU7gUwrg;myqwOjT5pk*X+B4L;a2`RbQHhap>O zx|P9*`Vqi7{S^G~j8_0?-%Jz___FJ+gy7pca3SXT_Dekpz&7rQZO$i?AE6Bmru{8*yn-}Cu|OF`d5+bK1@B){xIZd&mHRCe&yd@_Rl+v zIdG@_O{CbI{^d4$E{nLPw?5*6m=~}`e>0x6!R1b_ofOL&ftjmlC8o5mOj^Z$;Rzew z`jK?YD0^k9Ys&uEZ0hv=OQdT9Hx-ax=pbrE^z?QC$6j6|eFKAhj$73LBhs;9t zbSj90GoAFotU>L}W_BHC{0&MRJwbkPPu~2Mx}OvP1Q%`y`%*<4e|&afDJL@jnHLHPn3u$ z=nHU&uSExJDbyo894(6xzUau&HON|KCL?9d@RYb_Ej9L8ngXMtghN-wZm_tnGyF(4 zmGNf*H@kt3fG#8=e+RtAoqc_)tKUZ!z4|l#_QLn?X!!ADp_<%&(!zrE+H9>I#d3k! zbkf6wZ>e?&%@{Fe*0JvP!r!Sy=Rv5q#Wx{FKV4HyWl-VjpG zooeX_OYKK-(gM6``z@}iBE ziHTMa;#`$xs56utoNxr@bJeKSW>rjz{o0hU_v8dHXYb@_6^PJ!ipU7xR{U}*?tLev zKC-9z=ku4tk=DwTZ_t3oB}5U<28gdF85sNHP}DROns9K~z85u*cl*^dw2-tAEZb33 zRuj5Y0F^uUHxJ2CK^>?#Q!C2OKIB`!5w9yZRe{hod1(%$`@UZMutH*v+w% zh5Jl5W)=$A)g7^{oMzS2C1BsG^ZZDixyaOhD#O^Scjc7gig|`Co zSg4PE_IZ4aXHtSIU3xeb^;U=r+-sN@n@z?+vrynM%(K&@pgI?`hl#q*p4t~4z-GZj zt(b%mwPjkc;t0Qsu^al<+0`OWw*$#~NCqB=&n7MWA@BP4Zmfwr{E1FcTO2(4xL)|Z zF2EWp&o*JH1K7PMh$m!mbWX4WGh6srzgm$z|~Zfu1uSUr!dB~B1d88Wr8r~1Z6CJ+$(F| zw|d(B@!OBongaE}e^*^PCn&#NXITCw}En^eC2%N!h~z|U@~v}QXU zAeqO`AXw#HYX}D%3R~(l%k=_3_e2wW)s`%Hs2Qrv`WzMN4F{ZI36=cc>25{<%zxWa z)vzP29pAO~)~s^s``h|Yd^ZN!!x7Z3{lp1y>R&(1fdIA{RZK7t))p$`DV_WL9*GsCiKeO8J^?U zU|YzYYNb1wdiFb)-oO|u+Kas9|}RKb2z2YW@^I}d9BOm?i8l{ z_+m#QIcnYC?0q>vH-VD8_f8?A!TM0?7u#}*1jYRzFu9ybLoRoC#xG;qm2kD`;=yvE zzhxd;II9NfM*QN4|8RscW%AvYzYRk@Dh$yz`+?L-VRA*Se+fV9ZP6xAetd~kYRkI0 zeLUmZRv`TwG%Dsz&25{!_-WV{uQ>~+Cnl%Vm+-WGCR9YI27?mkU zCi;QMdUB|csHmujWCa4!vY)?wY+amKClD9$tW8rOy$)PSVZr)qi|-c2cmFlD2PfHv z7VIe9M#oWk=+8KcZb>eIfJ-6bS^1zZt=gwaKZTvRgjrvI*grN1e9znFZ+2{uVt9{- zHZ%W({pBt9Mi)>FebQu5iGsSPeVVS0fCJkjmR^XnoxZ0*&~lo;pr`;3Q+kh@g~FPd zN^Y>@6C+VwKw@}8QjM`3u5ajI2T#E{7sM-x3nj`*w%%`NvhN!L(+DgcXKC>% zFRN*OTU9e4ceo=L@N2wk>s;3GP^t#t=*x(5WQMyqlnuQb%GgjX{b4G1()7S#DKJL^bw)<+=ukt}qP8|IN ze?beL6m>EqSyelQ3LPce=O3blIT^lIayCqKty7K`Jb))RFUzW0b{hJh)|}Q)KA6H& z#5_Z@IX%B7Z``0e@XMQNlB=!ySwKwqvl|;@j!Ftag6Pwtd81Q(lLv+Bh8vWkxSTyO z2ja5DiFPriZ=Qi<{FkZQ^(u_x>?TR{F>oJr#Q14dN;-~M&dt>K-1T9 zmReTiOM}(}L6>cD)wh(40TI!|cc?LsdbqLrki7*3q$oros4CkJquO+sEXhwPX#Ezd z#cN6At(p6OysZp2;H5%*NJs|`nrk{yH8DP(aEl@#K0f4EAygU}98epy`9-P(h-&~7 z8t*lvmnKSL=0R82l`B`s$jA@~1SUv_iXp|PtDo^8nx1R%xpVw+H3NS^T1>o$z*i&k zjzxs1z^%+f3qD~8EH8k*FkwQqi#IJn*N8XOj+?{!!FWIkhtmR$q!RN!s+b6;$SiV(0UK#WSNcU@QH0kb!VwmQ78qIynic_=xkz#r{7 z>e5T2c3DXfp=2lk=<&d(pa zqn@Il>w3 z`>+38>tB6F`JZcT+W(g;-2b=_m`9*jM+|VEeCvP1Stbok+QzT1Yxrg zK3ey3$>srztE%=P#3o6uU%cz>H;ABlOFa+;K#^YBOi+xYQ`GU^ zn0`V;5D}-+xBulk>D%$b6mn-mG1q0SUN}3mh8|nnsKe<0l=;J4qYy#UhKG40MCjYn zN3iMqro~SP8x+86{;;URI{|Yr+iQwyz*6vDMS-h`wM(Th*i^r@xR|rWe&I?L083d} z82~kK@Wx;8vjIFm-x@HN(=4u5-=^b-eE;@Md)0tgAWh*SZu^^7kuonw*}&<=i`W8U zkBN07FY1n$8$aZQ@wVNxTHuDoc0Y$15l4&ut&8q|)OU4t4G9SWZa%C(Jq?Wf1w8xk z;zG6f0OmKTEdqug@0&PQ;I={BpZApl0BUpV2hu*Zqq%uCmKX@p&bh#Vb^<^w-nPF! zB>R&R-y`|wJ--!n^o@*+0D#kgGrgkD9}pfs{?l=0D$1w+4~XS?|1Dolf9twCk#+Pr z{uH5yKY4(@M9D*Q6S8M{1At%K{8-G2Sb(02@?O^ru}9Va$@{>|h7mUVE@ZyKty17E-gMK`C)G`w&{1D`d=aV zZNaKy!KJBHtkVQ(+auZG*Jb+`eKB^_`6KNfmYN9|jbf`znm4}Xb15iX3-#G=&NDN{ zEjt_r*Xk(Pt`0CJRsSRFQ5fC#dzp>R^B_Vd%h&I4U?3srh!xWI?EKh%qJx|~whx7f z%9W$p^gNx}Fs}`n-!nCgoHvtPlN2~Z;_IVTw!FA3Lk=IAz9^nsSfAf=o1C< z;E&ag`Syb#2gP?)=U?CP=g|b<5)!x8SC6rYZ{)&uGRPVwP*Syc=cr`)%+t00&+Q@k zOTUsF{FnoFeyo+`o$ND92jfPxSc3x{YR-xqTM}6^PKMubNm0Z_t4xrVRBgJNN~}g1 zwVwNqI1qS3o*2gV^^NBtSl?;{=+R46)%Fv`RAN2JZPw-eN;gI4liS`8!ssL0>T%4w_J>otNR5bRpEoBkM4jFCca*XXCV&bob{uzPl@`V}9yjgI}uT3zwGL{CRohm9Y7mI_Cj2 zA-r79Y38)8u67}VJ}mTQP|IYw9N{!KXJaJv{L{20-U^qk9H=acUp~h(*`KQhR^yIB zR_dVVJ`;6Zg3^1dGt42+vBQGMz%!NJ8laVikLyhqvVmp|E&;pytLY`P9gS-d$|IRw|Vit07gJ`j2m^p zN!vVLIL)GSjv>v0(xiD;z$T&}dN2?t_bY9~a=Oud#y2UkP*BTxaesGOW@IZh#S(uC zwcn)XC@hg`4>7aFj?!~dQBsPh{)s zuc=BKHq>Fv_#Po=T5i61OH~3t(ko~S-5scrr=MUsUVJz0LMAf05S7DQaqDyKc4d7ieyI*l&)U6x*y@pKGmdb!<15il zkm@awGjKoZIEd|w?ODA_TkG8oraYM%4@iqWa~X;4uj>^Hafl3(Y4vDW-Kk>1pD%RH z%LQ8|~6LR2NLaXLn&6o;%-aY^Q-8CAjj|%qhM?&q@hKR@=JS4Px z!TYlGHvM+?N8|dT3bq?#xQ4L3@+iw+frtG$ibf2BM-mD<13BmXN%r-6lTdZeVy(7XY!6y!ftoZTst}5w?2He!)$c9P4!g#I6{GP|b zBvex2XEQ%yByDbbCg8NQ5v{4FXuBacO@ZInBRN0)F}!&t<=sxwI2)Tg#jRL%{-LJB zLj%eH&x4y8QNSkszqI_)S$|J$4QoFX!F@P*Q+4VfY9WQ69W%|tFXpCI<%O<{?F~HV zd^p#R+j{30TvfN0Wr{wpEtH>5lxY)T_RnLG!H>z)D+mNH>l~!jWas59yT+LqOpBbqpSISZ=N{L1zE0g5XngzdkAdg04fz2ZUzf3uo$0bID~Ff zm?{jnpRO?bj<$HW>=pGjgaGqHDt_y{Bt0GRHuL#LdzfTX&Czyln7_w|vlT6uX)ZRo z^4XwQ|B27Qlo1%-h+?iP5`FHt_GX6}52hfXN z{eBLA(gSE2ehWjD^tNN^h9!0kg>4;7K-PDuGqF=rId?h!S^`tlp`3({j&RG$MpuV) zcKzGTL%t_K(uQMJi`o60t_@bfRzy?V2CEpr8^^hVGNxxIpEsO9o(EWx!!YdYihz|V zsV&=s+=>@c$53YT`C#99ipGx9gjHHWujy+1r%VS5>98NayO&3@F|r|?{XhDLyVy+6 z*FL`qGw{_;k9B}%Z=6o8mIuuky3K^WG{qT(HH3}$#VU8yg#`HOg8f3INxwi$|3ipB z8Wc>QcX{swT(u}#nS1tmp^m!=qpOX_cIT!>9)7r|VPp$p?sYJp-kO-#%F9F^ z8ZyH?Zeu1s7x1_3{5vjAJJu&*?I9g^WzX7{N;=x?BGsS15Di`0e$*=_ZvX2Nhu=d3&o zbtP|x$eTwrf2M*#+;jTlPOaQlp`E$mLdzF3#%678dq2h>2Am- zU!wa-dX66rU4+LP;V|9QzErr`yJ9K2FH^>}c-YP4q|DWMd6`t%vb{QN2x8K*{DTm( zP$#$c>v(jO-cojsul9`E)Hl?1zOrMsE(rBF)kOpu9evitd7;!=-RHTsb_w)~SC|mC zk+GAj=k|~wiVJKIEI#u}bPwChnwQ?~d$1?VIh!y&Jq@fQH3+2rbY)@AZ=RWfp=_U5 z_6H_#4G!q+lsaG@Sgl}juuN})pT}ToN!Cc?lpOZ_`M|_jN6u0Y!w?~ti0QvBf*9K7 zJv}{uj{f8C&;Og++%3_oBy^9>#>NJa5*LPvvGzr{qg1l1s|&EkwF8hub6Pv%kE-u8 zNqQ|@jA+1o{C76jyxZ$SQaC_HLDB1B_QyIQP58s`ztC_~;ww~sb^{OJK$@KWh5fl#1|KK~y>pbQ8C=jZ1G02(_2Mqp|T@a#Y4 zN+20IdEgcw(a`bVA|W9Gu82>c|ADt{QGAnV{PDhu7@MDG?e+NI?VxG6X`>qkX#xO2 zy09{o)#x_&ai15c{|bDu^6)8QZEMTn%VpVZ0O-;J40|s-Q0tN1Lr%$#FlfI0Xlv0o3yuHVC{ARDZgBG5-KtAET%JFac4rkmFYj z3=BX@8@~!fng!7lvic%WGg4Gp5H zf3-;sgF8Pz2m11-kxy?TE-3K+H$VX(Z$tOrqZ%w*zqpVqLt_cSA41f@BkcuDGXTXzkmNG z7BmDn1wb4dInf?lQ6dr&G^-S?RKWca@DY@k7ry+9BC)2XW`THEXW9{q?frdG?5o<{ zUNN`XCXb~^bc;6k&%G0(3u8H67~))9yA-;Ik-}CWF1{B@09;=Q2@+V|HUXge4}ADV z2b&%ZH)~7ju0{a&K%mX|$_tOk#UBveL0a*C4TnGVUDu+-F!rW6uKtB(r-~fve|rX z#K-q;K*;vF+^Bi$46VSr-54JAaKxtrL-U9y?9uSA++2hS1p@$8lX3xAkO&>CZAcZX z)GlNSz4sALlKY};)^oEwmpbLB%(M});a~r}+~khlNEMCP76y@D^L*{IbOiMTGIRpN z6+0F>=~aN&_giXdYn^y(WaR|B?h{_|LjK}hp8FxN3b?Wd8jm)+G!K8Fui)%k@B?M? zTz0+faQKmxNjF*RjOgr}-V9r|>&>3Ozx5|ldtup*c3<+AwD^u}4ch53Bq*+Kt_D4y zZf^Aq&?OsiaVL8Fe&Ay+^ig9W{;Ual-04<VpeNlle$_!<%Rv0yf*g(v=%dy`r4)gcrQ!5q}pNj5AnvWr1_B4AxzGB+Q2$w)k# z+4J`o4kwEa=dF)r&RH;8)X#(THn)XKN1{1eI7@`OxvgiA$6iCPTTrzZw|mVKr=&;O zsjGvzp#_8CYqnY0;!`QK6{&J_MdbFxzT|GHy{qv#_^CWlS*gnWX&{s%GP--=aiy4<1=jt{#a{hfe0@wGIRt@TE5q6^B2bG2#4p8hPCBD@LyzxGQ zHL3?ZdY6Y#RebiyGPW)kKV{)X#J}vt%=GCQK(sHgcg(oWUHM;dEd;Y;TY0D+07mxR zS!AoLd|~u{w!c%46j|;n5@};OLw;kXy<`|Zoi^Kn*C(8sljL%PYrFVrUs!0(%*$~P zb+0JL!99N`@S!r-!4$rJ6rzm{!M|gkVx~DzmJZ_p!39%?MqD^_ZdI2zsex%0NdRX;gzLv62a*rqmUBC;o!nz}>8->rCceooLQ`fKGaFFe~!q!X(Lv4~x{kt~g4nWin8+Ud{86M1W;g+E>AMBcxz*8X~QSp;;SP zc5}*rN12XMuR&%;@=WJNC^_1FEznyp()J!<l9PsBmO)9X$w^h$Fz>=L_8$<6VnpV8l;zH(R zrj!q19&;=Gtuv1*17cUW8tj9H;BbDCZxfb>uU7ME#atYd)U4ktjATq)<6<#^_^w-s zP4vB8KWp&2`x`kacF=1l=x;OlTWNKRi6#SAbSrmF+E;17BDOi4UgDR;UZxA?-O8l| zXVDVouPv5R^NlZ@-;veJBAmS%2(mACzQSs++E)GiWYs~#s<~-6yZya>is=gdh#BuY zxjBq$3cd8+Ak*up^&<7NU*v)fiz{=h61=VYnR&(&k}sR3_(gwj=HfIac8@>q4i;k* z)E-%8FO)b~FuBY%ICrU6^*>Bsba4oKH$l``nh2#A(aaD-v`q;PmMEV?Dw~cQ^~qv_ z<~VM>Z~L6u_vP@29glxA1n1wgbUo@%l$N878%>rQ-~Tkg78H zX5#HLh-F976SAT1e!h%=p|P|^p-lY&p@U0`3bt0&mJrbqVb;*t848Ht)_fYv;5ygx zP)hHq?K!>byNd8MU~Kqi^AJvWDH+z+QqW{|3J~CZYoKWX5JJ|CX zGyGa}4zBP?)Dv17vvDxhul(nQ8KHPW_x-jC!cZj4A^SPo(F&)@hDBk8AxK;M?~7 zK9IZ@Qrq8uG!NTEO*>=&Vw;tG9g+OPVJt}LE|mVUL6yR6D}6x z9(e-8QzPfWwU3GNtNlX=F&e~M;{LK=2K98lept=##dgj=F;yipW`l_#u0bV_i!!77 zkMho|_jG2f^MS2&l&=M1QcavmGc$`T;ajNX_MVmER{u`*J3Jn}ts^q-W<0pfO|2m- zzay)?Q}eo^`uD3vG)C?-2%GVu-Pb2C9*Sz11Z2dJ+q0zzr1h+<)Q0Mf(TJ_PNmaWR zoQ$)lgw<5J%aVPF9U9W3(>uKG7gXcpchvW>my^-Be|huL>gJ}CYge6<26rFMVWz|#ft zTD?sMa1S(Ovsbv#2=Z*XWU?xjrsKGYYo=nzMy)Zez}SHHK4;OY{d`R#sg2V}GpC8&?nJo;VSqt; z?+o^qRI6#CHz)PIV(Il9$AIARGU_VC`lJ!M+4=WE{rY6%0igfLr*}f* zviur{4*KyYaDvyGAggMR3-A<;l7SwY0La;Ro9O+s>r8W~f&zhfB2%z(U@9h-JHW_2 z6ru~sn?^KmO~xE1qFr5~en*cRhb7iSR?^}srUUOGUqRhusyDvp?=zS-ZcNV_VfviY zy;%k;Q7Z?nhq2Kr1m~%rP=;1djq~mvpP)v>-3%?i+Wt67r>PqEguWaL7k(+xeP> zH(0K6#Q>^`Jvl#UwP&r7J$WihGm`C`>nscQpXBo0NV8d8W*=JfbA7*e4&?JNvAoa& zLiI2>a1}7;Sl$0hune+CVpEw0JBHeGH{y5**-JC?XDeb*zzKnb-k|*kXjeCyvv#Qb z@Now2+h$mvsfM+-6?xJh7b;=#vF&FvGiemC<@n}NSDfM1|5M+@1w~(-tOeNU<`rB$ zR=m~z2zT!t$w1L(7TR&YRZnyY(Kq;1;*aaZ_X<5%WN;rKL-ghn)tGc+&^F5uz9d|Z*fPTf?;I957;(J~VSZUn^Rew4j1Ej{khU+Ji zn+w2~yq{eD_$5I8uV&{ee1I*AL9b5!T_N$~JP;al^&euXwu|q5fy#DoiLU>LLjQtC zNB%d^%G0ZVd=o@)|7#fozJwQ4z<=C@#r>n*#+?-C;9Q3s$5|3!=^OmyB}FA)(J9-&u3?&nz=E^3!RuW_gJ{}5XN zT_VcRPjgly*Fi5!R*q+cm!O;86@8b_To*?GJo|V2am;|M^5=YR0)W3ddQEg8{Ahbl zK?)LzI>P0}9N|uZmIwYt!uI(mM^L{{6AG z47^JSV?y}W_FSX;y3O)7z4}4fxaH~l)iucvkKymWsq?D4&xf{<63(&an`$JW57dBl z>k_rf`${w?J3Bo6Yv$SOJF_KUCT@bB=3R8s{_%U=ed@U6dw+pmsa$|+tm2z&edGf; zEQy4Dk^#H?!F_w?KEjxNR?aLkd0>J8^s<8Zi0{$PU*A%<^Y9YwG{K|58WSp@v4;zG z&wg)cfikH~9#U;;FEf2Hq5^#r0WkNpc$rWp2($Wa%qoN}meol{`BzBq!gFjRC358V~hA+P!X# zOlsse>k?Y70?=#_eLP?JoGO3s@9V>^e;V~4Y95SJWYc^5-tzHD`6W=|d!QYwPnXB! z-$>2o=H->sToPw&o!i{s?;y<0LHRV#=bZ^fLy98Lq229sAdsjUpfy$B-<^s<(el$1F;&?<4# zuBm}QiBO=}huZDjmIa2I!9le&HjwfXus#Q-Yx{DeqHQ=Ls3gi=-2dYM=QaowMYPL> z(&Ojc?LaV3%l{ys>A8+RT=A9}jKdU)8-Lw%{bcxGlM zT_mZot&Hu=HWkoc`kIQVy;*IlgTwPXa)ZQ^orvKP?c_|z9q27l|=Ale|2nm zd3k6^)LmNHz8GCKPEX(Vs6^#b5OG$6{GcW)&T`x71K2Q!WC zT3T9OvNWIr85x-npo@!(Y{lyAQuJjAZD6k-kRwrSJAMx~jkJ~Pnpv%bvdR$=xi(Q% zCksp!_;cKrgM)*h9h*&apRoXKAK*GJ`)A{*PhozZW@X4;-obu&+>wDM{^9f)nnUDNG3c+`G1G~QGsOSfQKwpRh z@gaLPJaAI(dZuGO0I-h!w=rTZipg90dazGT;iZ5wG|A7>J#yW!|3Ft=} zad7GX9#~&+1qMb=P7Z#}k{~G~)7IYJuqF9P>FjuC>Gbpz7;jxs6kC|KwME}um76MT zSKI&Q6r;gHQDP?_H0?7bNlrA{t@5TGe690w)*%4NXu z$jrpVM4C&%+TgN{ogL>)WzWd?_;`A;N(MoXwYr6@g!+VH}7lnf;-_A3XZ?ryq$k`MAua^gJWe0RCO+0IykJ(yEe zQc|+0s0iHScsaFhV*+r3^7a{#(CX=1HRU^7h#d{p|AY;-MuzK5_~6=u>zCH{;a7h6KZ)bUy_ydlpBM&bzJpsGu1JP# z%meG~X}Sc_z|nQ9T*6NvNZ^a1-f4@e zte=vkiumKMx7i>XOnvS)w@UEDL!b6=pqwXL22$wm<3Psx$}E5#zQ&V7Fa^pDfWGO#INofEdOJK|l&8jT74*Ksk!|bQTK+q*P*!f5GGmj1C z5nfnf&m^Oa{F>3jQDOI(0*;4R0mQ8*3y4_xRD0VLic4h#fC$)1)xhhm+PbEITWeCB z-qz!Wtj*L-^Ubl66z@A8lHd=LFm-hozPx9tMh&>B`={CJM*|&&J$t`;+wRV4_I63c zsi&*vkO*tpT;k`=k@{>DC?#}sbLDZ3Bf&b@jeR_j|gVAtN08qT#jHq&0_u$fXd9sZ0Fb3WTe!V#~oU>S#ujwjcR9Xd@Io-D*x{Nwby<3xJ*%F zCw|41_uA}2gE~rXm&m#fVVUJ_-x5!_qwcl~0g3HB&^JB(p@dGC3?|m~F-bC|1lZWD zw0A-7w&ULJC4%Kn!8tE-1OuX9XN@o#!nfS0r-&OS`w%tdAIPBP>9C*V5+};s>0yCgA;bF5bQDMatkK<3TiGb#`_~C;eIXjF8(_9bM>_022|x~( zFoOLI-#(&QZ_(mWuGaahbb9UEVYYW#bHk^{xda2y>0wI9#~L|p=D$#lBMpRVaJG1l zy=ZVI(2Bu6fmqZg=^!vT)y4&|$0YgTeueU-<^I+6jCf^oMOC)txQET12Vvp(@FVW$ zGI@rsQW5IvP9ob}B$EE<5p-iU-b|DKv-IT2l#M-$D*}+Z)6Te(FUBqoG~2maJh0eE zvk<4+?Bh3=6xixu-EAFKynxGa@{n_VkE8OOr3OdwF+}CkZd{j{LjmHPw^ryCSns-OUcW=`RvNE&Bj;6%y` zPHx->8v%6?M5&FW5_62(MS>oXah?Tr-(K0X*eC2V3h7EzE>9MXfP<49_^JB>0>?Sf zoI;L8;J>|TRT4N{N1Ssgz|5&OuZ{abv|}0^r&cs=3|aJ(jT-s(`g?{|Y4!47lZ5jG zRX7zZS8`S_zgB`Dwis+132#w5uodHE%(5SSSOj5VO6YbZMj$IR4J0Cl9L5dy8~$HM zZ3|6^#dj4{f#WJ=BQbeLxKY~s4qIcNk9v2t2qm0vN?WAIM$;7NV(ns$(~;Hqpy-D1 z5=H~*v1JxQ@!eg|$@(b-u?NVAmp)(}G%BQWK{!ZY*Yz&&Dpc z;~JHZt}PD8OWv4z!X0$eP&!(V9qJVYiAMdl1rxUr3%uEWdI3SRNV+y(&ufLbNh;@BkP#ams5M`U5c*p{!z{%HYB0BEG7qk!pNz@bX8wwT%=dO>U82)@u7iJTtVwH;{uP997f@^z%hY6I zQffGHN|q`feSpI1o1XE6bYK7diZCMU;|uZo0kpZ_B)IdRBq0aPj<~WYz~N~(C|%)9 z#$4k0H^^f{R$YgLd3%C>Pl`m!&MW`0GC#5;weWHq+o2wie>MaPZGvO6H=TMi9D3W7N2eVg?zDBjyFRZ8i#O)U8#1~R2!Or92tj&qaT$h}TFVun@Zl{+le!7%~vfmRj zBcPWpV-0G@yJ=mH-5z^Y@Jqg5S zX-rSlP>a>rfp9YiZNtxt^ChPZ_4d7~w6w*0JQfH+?{HQIEURk)cmN+0)7t_|Ki8kj zFEJgwcQq4pCYNXfmS25NdgljmEj0pb@>#HG0?DV49Oxy@#K&kZ(ieb1)==~KvOeqd zi1~cHZCF)4p}~#LI-h5f{Oa4>p#@(o+PlbqY{vCouR zcX}W@e;p~X5DV^73we9P5)j>m!iIq&zWH-KO&R&e`;U2WFuMLpRc_}Sm5r^9EG`Wh zBs!1xQ2}tpU@hTIF#AP*nP7w`N1dp&Gh}*2S>v<(MXs2OKGE?lG-)jFNSGiz=}%N%LWUkaFI6PqkhC9E8B zb|8yh;bmg!TXcF%65sJXmSO%AzKa2ArwbMJo$Oq1(!5BsCcVHScI}J+%P3MOq9mpM(;EBCARbt+B8L+SAM+3vEcx~UyyG*dw zS*ety2%(Dir-h95&ML7(Rulj$sfGf9&Ajzn77D9}iguNF2zl$g@99Jrh~J;GwA+QX zmof8K{0j*LPqXns4xx&(`etH)I^8~qd^~gFd*;3N0hg0Os@f*jZ*)+l?Lnz*Pyy`m z$gZB%Ee>~rCJa3K44NX#cI$;r;M&G64!NT`LXuf2E!w|rd7)wvV{g-f zTG1U{T&zP3a zchKE{b4;YChs*Y-u78`}nTs6Vb{uvlu~WY2XuZ=t>9n5?2b$K9tr^ z{PmQ%4zktw?C_s^Lk|oTi5jkb$vgSuC1}GOZo|*(lZ`Us`!D)a+GFezo~(Jp!?YI~itU z(}8x01pgrach~pucI`X={<_Alv~@r`mtfkp>i^27GRa+UQ<)X1;0t`(M>tL>a7e>g z4GuYdj{twBUt)xmfZWoFWQ4M7Ru}X zh(ZA+Cc>IbucUPL>r1dXgsbx7yv8x0;yL3r4b}{Xq1uO@0%Qm;1wp(?XTh`;4orn! zE#u=vB~rudPakLjF5-CO`$cLiejA6q>PH~@1D-*U zAUu=2v=XGw2|8$W0v6v~pUpdL#XJMncQtL-K@~o?K1rnBbm50MlnonfJw?Tb)0?>A z$OYvZ!>wu&vRIINLO!uT-{H((9WB=hC4`;=E8Is*IyE63-S|zYQg?v`D%OIjE3w4BtPm}=uKptG|aBrWi4ov}snI^sN;!r3;ZXIIXps+*gQUE4UPTB(7 zf$?@(sNNB_jJ-|oBW2c{j#R%}|UV zQOEtZW=8;k4xk|YLDMViXvJ4o!@7g>l+&)AQT9!gK1ji#`?>HhuQYA$ev!<@5NT`4 z=^SxB0|$59Y23KR%lGac2UVdPCDRBJ5N4BZOVOCbv;;5J%$N`~N)0%i#v>yl#h;&C zUQ3RnV9((EFbJx$*pdzD`GfSn3uQd<0k564!8{>)dYxaIn!+3glJB>ur;Mbny$8RWOeUe2?Es`$R z>x&zcK7G~b61~LRsr=Av;(ivj2>0jTbEsUp>*uZx(`X;cHWP2#B7krA)N?T|XBW4$ zZqD*1vc@a4eRS~YP9ps_KH(+gxrTi7mIeUG0u#?P6=S$~^wGIC?wdEev6B*`5~s%? zowrpC>(~A~xH==x`5uu7$pc8km;38;)y+F*_(DHMPK{do(5smnSOt{(Jx-@-t!ykZ z<;TesaH8E&h8Yob3{9&;t13u?Wcta0w%52>f1c({3p zZBb?P>2S1_xY9NS+nKA`>38oVE}dpq7k@!c2Sj~=Rq7iLMI9WjhRN{Y0_SnX^e+`? z1C7jvdN2=mz+m+6b4#r=rTcc)M z(jqWpuX#`*eCu`?F)u#yM!QsLQFP?WKF!V2J2kZ|S-rZGB2VYXoNH%~xj9*2L))DW z0vjEmQT(;C#W64J>+o;3l-gXfr%%L>XtjI{^`n(Jy{6!SKLYEXsgBS%T@Sz#?G9XB zA&qugPBj^t?PiFnmwNY(hNma!>mgdyt`9nl0DLmQ=@q7ECQ&=$w$uIk=*u%F)2TmN z@r}n`14w!n#L(ky*xLQki9coEgW|OP?4IK~PK>U09!Jix??>x;1L?Zt2D@U}%g?cm z7tQQC1(ctK>-7P`ia?u7_k#+0PP0QRDZ(`o{2_SX(+u54zbXUZer<*{MT{{eK4gR? zY;tP%!Ncl^uW_|`3sF>jX`-hUI{!Eb51h;O)NkeEo?7xbJ@UcZfO1mydwK&?o3hG; zYS*fY!4LeHt>)bw!^>K~*hnV>TC(9}*qJ2X&V~hQT3f6lJ0C48y;QU5zh<}Pd6BoP zzBQYU!cFNfygt|U+dCiWah(a*Y+$ z(l#MJ|AA&)j^W4Fd6lap-CweZ$D0`C+o_vOCwu66Y)bb80{)yAK<87p45S7=MFTsg zx`xfCY}z{D#j4BXznn;+@f6o2=lBi?>d0Z!PYjpAg{tb|kOHi_7@!?#qs)NU={#&{ zRfE9<x4QJBwbSrE(G)fG#eJ5WpWv zHG(<=7Q~RDaoH@h5Wa{z_ymx4aoq$YB++4-2nA%FhoIF~c6IDD_|DZ4inD7`i93*C zbGChoC|jKT7SzBp@ry?({@It99Pzx{P3(aX5uKia;`W&n2kdbY8fan~^j(HB73IQS ztvTR@0@LfR%4si-u|3cL-6Vd?O9W1P#}GK(nEzn^0#LNKJn)W3Gn>}~J!CzYaG+-$ zJ#X5}@jY^g=s5XY`?5cgHsE%nvx?Oy_R`5evP<v6o!fCxAZOFtm*zS+_{@e^ZQX3b#Kcff?878Lb4wU;N%N55!S9e zLa(mt-EHq;`dGrTA9n@odswV~J*@ZTGgqDq zEVI9GHa3fM5beECz`iCoz)j$I_@6G1JOjH%)zzeG`rdEISC(__keKeYKptmv?e) z*=V&R;JRZvX?Vm2s6I32d(_Wkz4Y!qKd)I-yUlA4WP~)gK zbft-HWU%zSiP8j+xbZUc{G&;YES42~^rSq1sz}1P>g$1PBqwU<7y5?A1VntWT2+uA z{gzQ2rt9$G+v}$Y`(ww z;ZSU{5{tm&*-@yGZvuzm<;hup@35e=pF&JHit5C)uZ=D@^*BhTh+;Tius0C$PVmXwRdD6 z9e5k)SxMU1*8G&c8+Q9kXZ}*uX!B-Mz>C~TO3K{U>GH<%P&DTFyW&%)$reHScA3Jz zhco7|CRSM3srC~AzkpI?Ffk9EjcqJ3tYAp^-|jyDm5FNdBI^O7I`fL&P=4wZE(#+m z5pNI@81at?FK~{R8$y%1VsAgoX})-Tr##HciW}IoCA0M*oY%ghHDy06q0PVx?tgDG zM18`~AaRF7R8RFa+bqLZy!Ga2yqpIELdizoPKG4KR?A8+ zbWyu-d>(rxsz-cZ-~I1!liz9-Fa6-fZ1CMyfjr8F;oD-6p9EM!KL9f-)Gh7s{}$)X zVhXQDb!MKu-#0oe|E$_Zu<~?$6{G(+_r4FB0?J>v39LKPTq(j94U5sRzpiJ^gV)*n zR3!{}8z4!=7l+r3Ye3u|%2|upG;un^#bIL(POEu@0#H5Ru;I61m4u!mQHw{5ijpCK zw6be^Ib<14{<%m$qO!^nB|sY3JG7VTnY2W}y4pY4htFc#ZK#X0PnEqm?Qxi(LBLo? zP-qq0pJixXyKHz5E5_oK>Tgpe++R*Pm-Wx;mjqF3x|BHs9HM3~I(o)C ztYhscxVq6&*10?}Q^yu;->VH`;oJ$Wt>pl}>DK!Jg$oRgP`?#*io}<7;i)Ekg;cVF zIi^o0pK}b4`MZO9+B@s?n%J6(V2e@i2bPeUo4&BH?jYD3{@t+9!nh{zZWH@{TGb0|#{M5T!t)Urv=#$>g^Va;Bf;qLD91-{K|A5X~_m$hJ&tSD+Q z{?d-?V`9Rn4TqFcx@&Xw>Vrcz4Jp%(T}vZhs!QJbZj`docLp*_zA@$c;#)Und9pgd z;7;GyJjvt3s;D|;tmUA7s2bo(HwZIG*n&mg)J|A$+^f7?fkD zVD!&$+!IuzL#im8(QYw$;nwB}$*scBXl6yUv4Dlr)k;sRB-to{nopI;$~^&Eo?@ZK z=I|7X&b!SiJ0_t;dFs|3IRncBYfAuxi%`2{(llz1@|P?l`xiE=D?jI_((0MK^>17*ZkRFjuGHQWnYR z&gbfAYx}AEIChr7t&Lp)!BLHjs+lNoZK>0SOu=N0Qz;d>F5J_VaT@Fzrmhow^D6>w z!Bb}Lty8e6JhfS-pJR}UIeXGWQLB?8JBXq&3c9Bjg+H~{so%z{_m@*wReyu7aj*dn z1JtPK{bZY5>He!c{VNk&hsPi|EtwO$sPglldHA=2{XdhntOJ$X{F?{9!>GiZ9TTm! z1Zfea-*kuJ*LQ2LLTf6k_Vvd?K7`A%_ruO$DNf=a7GBI2Fj}0z0)HcKYLOhUP3IzMM!cUaOgka zu5S9>`4_gS7(evZjsdH8WK}Xbo%C%UOqKpYD7pZLG2T>J{vv z>vM6%eGf7>kROrS`BReDZiK5#wcRx;d7?~{AK>7kp7O%Ttlzeucb}5oviuXfNwm!e zZ~73suFZy8#Adj)g@ViZvxzxTDz;4*v)uz$sKww@=x=XTXg=qvKN30@y$S>Xdfvdz zUVI8@Wo2egYd9~zEKjw6N#wu}K$V54lrMdDd62;~baFnwg_*R? zduFV>#iq>?Z)96KemO zn&8&+^WFf}b`T2Qxp<6tjOSe)i20QXZ7}S+Hrrg>lZ?`j({ld~5nNp!Q7BFys#V6e zbHa?!qZ%DW+Yv2q6ro|nArbl~`xQ5Dkda#O{+3|8L`WD()G z6{bZ%gTO9YNfL&Xf^u;_Rema2gEOD&V91m(e2)CUW6+Vkv#Z9IK_ zO@@!dL4M{A3s1Y{yOW38l&alhX}S9YeMNuO+jM!&K6{Ot+iyT>1u21ZQ3Zv&tlzNHn_-P`pOYHxM~_;= zJottaAfG%|*MVY@d+HQ?2j%GY2^y8!^T(!D1-A!Ps7mv7gWTnH?-^-EdQv`fOlky> zJu(1#hqO>TjBz0g`w82%D;GTAL|kIRLaT0S3hinXbQ+bKviy%hjthEUt+OosM+ro= z4%6FLu|5bi`U5zo=BEp&D1CZvM~R@`S6>|;*&$`C5AS>vW_)7Om!=F>!4@?H<#QEc z5)B9_HDF?3#lohbt>MZFcr^X@g0;ZwHW8xyCj6lpxrh3pl>Y3QneZv9ZBPBDlx97i zyv$OAbRUyk|EHSyZy`GR<7y;ZD3+*6q(XT8dctt%LAlM_-Q>38;Y1ypou1Pd41gFF zVhN!=?MMG7R4;KifAt zz~!U>J5RFc@toWDYslmq4c9;teyX{^hxOb*2{gb@eaY*4nX{5+nQ_m+YyH$k>qy~W z`)*B9uTdCo&=0}~HO7?xmuTW!FRBny0iq`?LZqHlK9c0EnfPDUaV$*fh{UJ(&=KNjt->ar<{3 z!!cogAervpOI7L~^7vG;Z+Hm*G~g98gZ17i526W8ZFvt4>QtP!6tEgLYa5MvH>JER z{&aX<2^=3`YFx|lT941AwImocq^*CHnV&45wwEwTec5`t(!y4_@#1Ny9}#Fz zA{%EatkOgvaXgov$9TbWnRqSYFZ;42u(I`$`4)2BzUUCbs*pZf`?X!3K78oVmqThW z`&rNKEC0@af{ts(T64Y<6TOf_7>W5@zUDHMdQ#2h6te8Om$-EnHkoAFLNx=m;q=@b zZYRfqm;BUuRhIHLc@Hm|oIe=9^sg^6d~W&sUGuT`J07D6dWC*&%t5u^eO88sN(Mdv z{={X^n!i5ze^GzMQ4d^`+#`&arPP(_ogXwj#CMyRJoAZVPfQtts%g_6$NS=CO2pVl z*`glZ)$Te=TWN)3Rv&^~7z#uDGb^7cILq|ZCG+@-|14(~Z~IcCx|H-{mgMZ(+R=%$n%xjE4sl40D&mhD$4ri+)D z2etI&*T7)X3C5OM4!IE_5q{wb3krHlO`pxp}L z850Cg+jbtr?nyyu?eG?uE+gjSCMtddcFse9|awZCDB^%0u<_rHAe zOUp64aoaz*kp9}Q2zbg?7Wkk`%hoN*PfzN(iDaJzo8{}I>N?!PGY9s>s!FXIH;IeZ z)3I{#$`d|}e&%`lPrkFdCZZEFP%GTlkCpdLvnqQhPSVFz^nK8)I=aEGhfsP z*b!E5rj3nA;9Y*Ck0*onBlHJ4QI2H7I}6UQu9*^QPsU!uw5YNb7&WZAjq1PKk$%gk zFLFJ}WKs2u^IGdDw(SMQGxYVch;uD@c!+NYOxC|4A!&T^q)QH??oN~NRJI`npr%+@yc>c!Gj z#&xKZMElb{QU(1#&VWKQ*;T=UgBgGk4ovw@pVR9I7j3h?Z{1m*{>LhbH%8v+}xRh0ZSZ!Qo< z2Tg_%PQGY6FQg(b-6;JAOi0l04VXu`gUBW+#b{k?%)7_{w#x5l|>fVqig<& zHSK|OBP{G}3a1h5bl{ol$d}vUqB2j`_nC^G(V;Ai4rSOO^%?$6F#V@v_qWDXk%UYJ z`>jV4^IZJ5WR$(v#pV#bC+S(agDygx1c&76jG1FK-xthS!@(ACTss*k@^GE)9VmsB zJ#o^21wgI}ieY{6CYHnuXrDW8DuD?`99BIf>ZFQu!rxjftz03>1yv*GTI{A_zqsSD zL2{`eA!7Z&9G*tal8xSHHD$dk+>{|bWGA$NySLov401963SnC>{R^(e@SJRR|J<-* zB=q0{h1C=Fyt+a9jL?fr!kM+K+>_`xc_X0dAin3V!yraX!{G z0ZhEY-io|F`ev#jEAz?Q=8CN#hrN|P-C3}FM%vWV+)y6AzMSe&q^R3_8LT4^)?puZ zMVjIzr}>VO#Qf;C8iG6xhm}4q0Z#|N6myd>oKTi?<>EM>7&cshNr3h_mzaolWtkD zzCyweuyFXX+$L0hcC^Ko!fssaa2?eP;*Mq;Hp&=S0sh&qyKnj0PjnQUs>LUj(iEtH z1;`Sao+2fl`{{w5j`O(4~jgFVNdo3i^MIh9`_0i6+liZbL>wx*D2hZaztix zLE?Q9hUo+i=kat|$@Y&7WrCHu+LJbD_>HR>b^h~sO6|8Q50IU^2BQl!5)ut7!d03V z`Jla7qXUfBW>y5lcwB4yRv2{NLcNzUZ;jBEh8KAOnwjcMHmF5k&I;H+4|+|`DR#eN2YF18y^@bOx%Kwc?f%bTnOdo%x~}1U`}KAvyW-r68Qa>@}C` zXX$~-9KkVU$L#`_wCtUm!wHFbjo%cPG`#fvdpw8IvHCJnYw;|!mqBlhLK=H95Z6^V z(T%^N&2~n6_cRQ+u?|Jo1Tayb=W3+B2@)R((A_f`zaz+g-Y2b^ffsrL!f=CR*C~sI zJr>Nc&HF%a0Qi}oRr?;@FaWP#_XX3)j%C?3jE`#(4K%AnsQR0`jZ~y3vM6ufT6UgtYzTn-7n#e_HTJ~Upgo%wpFmlLA^0ePvF zbtwGkKK__>_y#+u~tR6-nNeOiA{{D){bv5=8!UA2^xQ>lv51>m5d5+86%TT*2 zqX8JdN$H9ZJp7&5b###qQx)+LAzfl4yz$-pp;*`pHwg6Qi-L|b8K>%MWVn6TXa}mP zr4=UVh_yWbLr~K03jQBC0shosj&-UL(o4s>P%?3Em2Q(Wt zers<%^j>tI3+F)P+lv;CkadwxRB!2T*IUIR3I!h>Ai^$21#pmcJ1FxnsBc^;AEh>w zoz=T~kDo6++u5KsoclaaU4NFd+fETJBwVduIFT5H-*e(S?r%%8GsH#DC=|*88>#?X z$8I(Egb|Zgo*K-NK9A$n2ioYX$m`<&c6E}H7s78vEpIUz{4d*(%JhCcQWQcImVox* iKbFP*x2gC@yA_gBRjj!16}8a{pdh0nT`gr2@;?BTxqz|& literal 0 HcmV?d00001 diff --git a/static/assets/pytorch.png b/static/assets/pytorch.png new file mode 100644 index 0000000000000000000000000000000000000000..a3d4d876d9134848dcdc7ed9743020160d6e247c GIT binary patch literal 11416 zcmXY1by!s2(?_YL8aK@5v043C8bM1>5y7L5a|YKX;zx0V@ZJ(TFromj|IUX|Id>H2$9vjfo@*<+J>iz5tPY83p7F1Rfg^;_JB zaBcsI1ZjWmpQvBi6KMD5nhuXdunYJfM}G?DX=^^kA|zp@ii{Mt^vpbZA1iC{NZEVz zEnM;OqbR}5hlcvPTH&&i1;h`)!NAgz@DB+ip!=_7w}Pi|DIw$@ixQqKb{v!^OT~=T z|Bsyx2YNwdc=E5j|M7X!)3f(nselJHEU~cQS<~SQq|JXC#HRK{q=(C`aH7XN3j8WV z1HL04D?21{?fu9HxFBtQeep5%o>p8b!JL={3oD7Pqu~Ds0m#Q{VXY;M_Ao!PB?-sA zDi--q7Ns7_963ABNQFy)=h?xds3B$V*9VO8{}Vf;^c9xu6CwtW|0!Ffow3TYv))Eg z{-3BtL>LS!yrNsU)8%m}wSEb8jR@quq>y>?zj>0dkB3aYio-tr_}EEe7MMg|{Qwx?`NuoYPo@;i*Q|7bJ#e#F3w; z5bGmi?y7s$^1&gD5Pm@48juzjUpiH}>ENk=Wh1=%5X3kL#{<`K-ntUz)1ZG#4R`wy zp>2!6lwTmD*j{JVx+%&4`p-g*+$_rqe*H%|7;~YR?l{tG#0P)zvj@{=7lR?!^X!NJ zSv1s0BbFZ^Y+tQ!ERQ9d%7G4ZAJx^iN4!?-pT#>IG|_{Le**V{ z7aqax>2?W%JeD0Vnk!R_l3a=mo_f}bmSYv3q!cAg?xza!bqa$YD( z*je7GHs%GsDa-oF$eq!AI}H{T9vnd(EA9C3*As!zXlQvU3-&jiiA3ZeD|u+l>SPxn zpMWrSg+`ha;TMb}zwo#v_gUV0~TH)prKRJL`dLTLeXJadAM*~kGYrKE7)RB%3 zE5FRc9k#E{e7^6uym_Hpd6n3fCcp=4s)%;7D`bK7PP|gJWI_0ipMz{ zT6}J*tOEWnnfjOfZmaGFo>d4iY6vVg9Tl)Pi2Mgyd(ahN=J;Pk`b9XZqCFtK6dQFY|AoM~>TEEx6&p(LfJv z!jgeZ5LSC?!s%I?b@^1y2f-TD!4ED8jfTFlxmt9yVeNkXyI>N%DdXJIscQdhoudtB0I_NP=UMyDA#lnk4$YtIwSer{nX1o6xwqRosiLWP$*?cTX z^tHc-3X?(l81=i8VF(*P>z--Pl?es&`yP~`zNz1Iti@#L$dpINHkkjDl78ygoE3^= z$xmVQfDU1?|M)%Uilf7JQ$}1;mTIw9^+Iql|D6fKc{Kig#`CBq`R>vU-}&qt%X@o6 zr8SLzac^sBUj2y6yAEYu>~ulC5V zLLK_{owhCdmr58(=boq|>8rshn4=jty8eINXS~iVW3{Zl?N`%F$3iDxRJhIxo5Uy> zcNY-I7C_*KcSY%h$4*S8`F#BrMERL4W~)_Wr*uGnX^5OaVUTS7vE=eiXBl0qc+&?O zKZHrJBlEGdP~c9f(W{Q|(`VmxW7kZCyYV|zTJ^87`CmjgO`8K`yKU#@|D`D`{TbH)q9`ev1M0caruOQ|dmN2!QvNgPr{P z;qlWP;(TxT^XZ#{z~N#RA>(%_+m=N-gO86gPjlpp#Ko`|;&O4$!cj}Rc0kPDRtFmw zvDdw+YFzswGI!%Y==hnBqV%c7gU*tG{#+Ezb>NPFE&}yackz-g z^R3NrO3N`u?$W$^o5rg5>t1BL2o2vr_sIQ=>bS0Ng&|A%7rW6Ax08IACa#JkxmO@L zwde$|877Nw-CWmU9qR{vVH(Fl6QH0Y;p-BVH-8(1m5)WlKvy4B3B3N*YaCcoY6

      ^So8%v#E0<%7=PJA~Yy0h~KIb7blli40B+i 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 Yrp?%`H@9`DYGO1sWi6#z1#9sC0g-PICjbBd literal 0 HcmV?d00001 diff --git a/static/image0.jpg b/static/image0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a3f72c909663ea91445a133fff1db5abf9b2af6e GIT binary patch literal 222917 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

      FNN+^j8}OpS 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 C(qj7n literal 0 HcmV?d00001 diff --git a/static/style.css b/static/style.css new file mode 100644 index 0000000..d166cc9 --- /dev/null +++ b/static/style.css @@ -0,0 +1,164 @@ + +.body{ + width: 100%!important; + height: 100%!important; +} +.form-signin { + width: 100%; + max-width: 330px; + padding: 15px; + margin: auto; +} + +.form-signin .form-control { + position: relative; + box-sizing: border-box; + height: auto; + padding: 10px; + font-size: 16px; +} + +.center_img{ + margin: auto; + width: 100%; + height: auto; +} + +.box { + width: 140px; + height: auto; + float: left; + transition: .5s linear; + position: relative; + display: block; + overflow: hidden; + padding: 15px; + text-align: center; + margin: 0 5px; + background: transparent; + text-transform: uppercase; + font-weight: 900; +} + +.box:before { + position: absolute; + content: ''; + left: 0; + bottom: 0; + height: 4px; + width: 100%; + border-bottom: 4px solid transparent; + border-left: 4px solid transparent; + box-sizing: border-box; + transform: translateX(100%); +} + +.box:after { + position: absolute; + content: ''; + top: 0; + left: 0; + width: 100%; + height: 4px; + border-top: 4px solid transparent; + border-right: 4px solid transparent; + box-sizing: border-box; + transform: translateX(-100%); +} + +.box:hover { + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); +} + +.box:hover:before { + border-color: #262626; + height: 100%; + transform: translateX(0); + transition: .3s transform linear, .3s height linear .3s; +} + +.box:hover:after { + border-color: #262626; + height: 100%; + transform: translateX(0); + transition: .3s transform linear, .3s height linear .5s; +} + +button { + padding-top:30px; + color: black; + text-decoration: none; + cursor: pointer; + outline: none; + border: none; + background: none; +} + +.card { + align-items: center; + text-align: center; + box-sizing: border-box; + width: 100%; + max-width: 500px; + height:800px; + padding: 50px; + border-radius: 30px; + position: absolute; + top:0; + bottom: 0; + left: 0; + right: 0; + margin: auto; + background: #e0e0e0; + box-shadow: 20px 20px 60px #bebebe, + -20px -20px 60px #ffffff; + } + + + .btn { + position: relative; + font-size: 17px; + text-transform: uppercase; + text-decoration: none; + padding: 1em 2.5em; + display: inline-block; + border-radius: 6em; + transition: all .2s; + border: none; + font-family: inherit; + font-weight: 500; + color: black; + background-color: white; + } + + .btn:hover { + transform: translateY(-3px); + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); + } + + .btn:active { + transform: translateY(-1px); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + } + + .btn::after { + content: ""; + display: inline-block; + height: 100%; + width: 100%; + border-radius: 100px; + position: absolute; + top: 0; + left: 0; + z-index: -1; + transition: all .4s; + } + + .btn::after { + background-color: #fff; + } + + .btn:hover::after { + transform: scaleX(1.4) scaleY(1.6); + opacity: 0; + } \ No newline at end of file diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..c1827d1 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,61 @@ + + + + + + + + + + Flask App using Yolov7 models + + + +

      + + diff --git a/templates/result.html b/templates/result.html new file mode 100644 index 0000000..95314cc --- /dev/null +++ b/templates/result.html @@ -0,0 +1,44 @@ + + + + + + + + + + Image Prediction using PyTorch + + + + + + + + + +

      The image is saved in static/image0.jpg. Note that after an new inference, the result from the last run will be erased.

      + + + + + + diff --git a/utils/__init__.py b/utils/__init__.py new file mode 100644 index 0000000..84952a8 --- /dev/null +++ b/utils/__init__.py @@ -0,0 +1 @@ +# init \ No newline at end of file diff --git a/utils/__pycache__/__init__.cpython-38.pyc b/utils/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..58a17d64d0cc3f1b063dda0e366219baf8842462 GIT binary patch literal 165 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 H=Pv&j+c8fK literal 0 HcmV?d00001 diff --git a/utils/__pycache__/datasets.cpython-38.pyc b/utils/__pycache__/datasets.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a33acfb7a21910a1420ee3ca3a0ca8e3e404b0c3 GIT binary patch literal 40969 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

      8ar_GQe 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 literal 0 HcmV?d00001 diff --git a/utils/__pycache__/general.cpython-38.pyc b/utils/__pycache__/general.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e537ea4f1b35d37b9e81522271f9bc85cf29d72b GIT binary patch literal 27611 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 H-1>h2WlGW9 literal 0 HcmV?d00001 diff --git a/utils/__pycache__/google_utils.cpython-38.pyc b/utils/__pycache__/google_utils.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..24a8b38708475a2016b050078a4b6c654402d4d5 GIT binary patch literal 3318 zcma)9-ESMm5#QbW;E|%JPs^6$G#BN|1R~NcT*q*2$42b5KwLHT2kfv41e$xIPCVY7 zcbB$&I2J|ZhZcp=H0VXjr7l*C6z~zZH~Td+ zJ3I56;jQWE3W4YHf4{w3ULfS(*g5=I(76P!+=7M^P9xHqd})iCK5H@awOST@S!DN} zmP03N+?H$RO05!~;Wl?3(U!+&d5L>KmH8a6@F}1we4bD98ci z-&R|ibSMrSJPf`zyzjs(&qAZfHsv%YPskqQj9ZV{h;e&Nhg4ZP-KFBRvU56exHG2Q zT_(FAgS#N7w3b!6a-hP<=L7%dXH+|KD~O`Z8K}+Gv-{K+D7fzGiX7ZcMbZhR)YZ;b z(CKX?1C*_-1;pU2)X|2 zu(Q<;qV+3*?5QMOe_tfqK}X5;umAkdum1G->wk>@^T$utA0|<9|E+aYQLcBBq#Fer zrqf6t>e@v2jc%Z1m<7|oUZPJY9>d6xbotV-#7XwAY@HuBqc7w(tT>T7;1BN5Q*->q z+=G#yn4K@}IlGh+HNU+uTFkwij2Zp@Y+@cxSsRn>8Gf{9!&#Tqk&h^7pW8$&^(r9$ zZ4eqQCH4KA#hLn>BZy74gJ_9 zjAXC2l?wW)+Th89I7-^QaXv~q?MPk(qS&I{wv-SBEl;((8z?O+PyD@+s;o94S5+84 z#C~Pc-$A;1Fvrgv?ggedeJ~fC2@X#_Fq0)PmJiZy3RLx*@8HRP=J!J>!?^pVuf#*Y z&=>~%O_B8d!q$iEoK>D$_}wmWB7b<)xC}^CIbgMs^s?ov*RTKP`Z@o~feHN0b{Gvr zaL&&bevIeBQ=Wwm&3)R;ss#hoD6@T)_?gvcG_u)Z!ViQ<1oB-=dV}eNFI?^~z<~BRMR5dfN1IXvEUPB?PiCv*%Ud>v1*$01B!-R0PzMXVV4{uHmt9>J0UvBZ8<6hz~guawX(Y#B2pQ)F5Sn?~pgS`xsG@Zd;hU5ovPk zDXnbG47}W9qQxsQ<5NQ$GK9mchR-zO@t(mpqV^+-~Vgg<} z@jRb1=m}U1vkQC9&_QlFWbdJSSZ?m}#hwKj;gDXS{Skx5kl$gv!k2msP;wr|j~3@J zx*ap}7$Ppz2G$s`5!Ng#f>z1dF~W~OvH1&oR>7@)Vokf9B`>)-)mX(`4 zxZjKiP?NkpiK&j?Xil{7S0#qn%5%$I@h|!Xn`?KU@_8-}00o<&=!5#^5Y7q)c2=7x zWfZ}F{khfIrz@to%4P~%POt|p1HPM04`TSFU|=*Z7!%Se_1UH}JrP`0^pu(=uT)JvL$ zT%5vLssxsn+JZ7q)Xa!@HfPOrjp@J7Ot?X!7{WXVMvr1xR;@({(JDR8<{^ZumIt&) zZ3|`~cs(rD-i00eUU98I$gr5Bu}U*hi|Z6**j@UU)0ktgkPlBn)kSmGb44v@BMMQ- zmLY3m6~Ult_$|3kK84JGuZA@Q_U;gFK~A>Uv{yK#SO&fmPh{Fo(jYbfTel__pqttT zP<9_Y*#df{SQ3Q;|$A0*sDVVpZJAYn502 E2c@)by8r+H literal 0 HcmV?d00001 diff --git a/utils/__pycache__/loss.cpython-38.pyc b/utils/__pycache__/loss.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..15b29df5cba59cacfa5dba6da4cf433445718190 GIT binary patch literal 38812 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 A*8l(j literal 0 HcmV?d00001 diff --git a/utils/__pycache__/metrics.cpython-38.pyc b/utils/__pycache__/metrics.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..103c33c5b910c43039fe72eff240875b47082c29 GIT binary patch literal 7625 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 literal 0 HcmV?d00001 diff --git a/utils/__pycache__/plots.cpython-38.pyc b/utils/__pycache__/plots.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..be0963f40cc213d5a8b63fa61cd82b1f1f5a5980 GIT binary patch literal 17879 zcmaKUYj7Obm0rK*iNO#r4jzQa5k*o2C4wR)>b0^&N+fOBG(?kf+IauUboAKv_l*PC^1s+5%DR3+ZdR>kYB*uut@ zbyDR#lr1aYcW%!Bpi~*KPv5?;?!NcjbG~!VZNAjspSAEi|Lb4P{n5uP>#umR`@>V(ujJXR<2Dk@$x>3%b|Y0vNxgI_E$7T~ zw$vAwUV^}lMB4y$L> zJ~i;FUAj-5QzL3WQb*KzHLAvtI;x&k<7xt_W9opKME(2KJ?bFN$JKM{u(}T=Q|f{` zrtU}TggUOKQ1*a2p&r2bL3L3*s7|8fq?)cK)zJ-G+4HVCr5-}ww7R6usE3g{r9P-0 zQD>2QNPS2>svbk?w0d4WuAV^ZjCxZ226}r~eONuEK7gD@lzq*b`p7nCY-Y-iyh^LR z#`BeOurTFDiRYKgwQ7`+(*<3=6(=vXn!%J4CFfRxpsJ(ve7zCyKwf5b?bgDX)wR_% zCRf*xytRNXQ}gwpS@r$Mn@8iw^Xr}Jb|3B=x#w%O3ZG#2&&34~|1gNMmGi3g1?#u0 zd0V;4do>+ci}s?k>26sUtPQ?HVx|HH>;0Jaa17({3m}1M%#PB^Wg}_k?QQ0uCOP(D zHhT~xv_5rY-43kRz>lFl+NDT+-WdnCZa5#eZ0m-jTs(uf&D(CXlkEWzj;LFgk#eRV zitPHEc4RNSY5nQ~3ZHxO`b&OQ``15OuPl_Sjq4Yx{!-9tU%#STi`7ctUw`{|{`t?o zaQp3ly7gaPd*k|AtI@jo*!7j5-te!t8?C^fZexU>s#TlS)wX`Rh%SA;v1d6}XS#yw zdbUybgXyOltxCD!KRvxrT|J{~b2}Nm##655lj}i{ZFYhOPXsINMpbj{^cabx#*vCr zaZiVE;qz@RyK~_GbH_b1!}`6M8No%3gPdEpU&8=z*nii#;a!XG$lFdinw9h@$eXsl zhiQ2nd6Mi?e8oy@x&8EEl*j-iIRFRW?{Ri2PkB*xxg2mD8}+#;DYgA5|Kj;)FJC&zff+YcB56BN=No;WUobb zGfJ*jRjukr$u)EK*hk4*t*h0Nw+6av#AUFPtZ+sh<=~0Fai;At`w0H@S>$d1MFQl? zpMW4?Rmfl6UkV9k%D^8(!U&UfFZ3{+PUtH4wtL;daAKfj2&@fR%rkrDk6m#7uHo>D zAj%Hy5zGxo{(!|9LT8?WBv9UMurMUj&ruD(pFG0>xOEA_F)h^-1g-h`$eH(}L`$oxF1gLM8>RkcOD~rjv!?j&QOO(eJB!ZSW#4}YeffMw%TD93 zb82t#Y*$F{2!Op6@HkKNacoUyok~TXDhFl#6fX1!NLZ?$0g3Fn$S&XgIHP;J+qoZF znCEiRi6L8aCbnIW3J10OJMAOA75a?0J*x^>R}t7fUR;o(jCh1ULdq027(O zRZ^vI1AK(;9a|p@Qei^5SYGaivz|t28k~cADs{jL(<*ZtQ$KF4XTqdBYld{x!WHfu zW=PRCHD=8_ywhgyPAbbgZQ(vRXJmn!9;Bu6*rIzM)d#4NtGOZX&!` zeI_zFvS;sN0ZolSe%TSkMatOORk~RxI((ztW`CYe&kkeo{2IVniP4B zYLvSC{LIDK^XK&xOZ#fo;Kk}{aE($b)n1W{sjNOFP3z0GC?WDaN;JxI)kc)(BhB_6 zF>-=N{j1Y;UZEj=kL7c8nY85+!-0egd`ag~-7 z@@w6DWp6vUS7I?A*Vt)=y7LseePK%FZUg5B`!)yoF2cs!e}?xI7y^z++^VZ!AxgDY zpro7C?c*rh&Vh6?=XJf@m=1#ZUF?1UCBQ8n#9ZS|SJ-2RfTOGIn$4#MH5EjZnb)o5 zvexA_O+gfS1h~Q;!aPs_oyo3q8=KU!$r-anhK%CFIb=YFvJp=E_65TErHO;d*qJuX}~bzxDenOIy?z| zFQRcX1>g$>M{WNlh^2Y^D-dlk+ln`GK@z1#{Ma+VsF^ATtg6caP-~^VqCby&N6B)# z&4KV}ZD>B1nT3Q|<0-w)S}A}fiUPf#S2mCv&oHT*^XRLw+l&xUJ7A`JHfYV7mUYyR z;jL#6VEI01>wkc}cd~Vw;r{euySDub3@AN>+zQ92`@0tj8q=aIe&KRChgJX+dBf3@ z#=zM0Fjk2zi;Fw7zVcJdf$2uDh9|0`5E+)1>Q*vQ+V_PN2S8PFt_0VBImT zB?pKN*yxUX!aU}^u&3?t zWAAM{V)8H#g~fub%@Ff2v3>yKJQ_~$-PR|=ec>cVXWxchz%#7h6LN&U0sCum+-f@E zBx;P^as2Ox<7}b&WCT~4r+=t&;bZ~ttNO!9Q$Ft$to4JzSa<+4axlCHT$#U}z-&7= zRzv5GtLKApto}h6*9naEKDuhqVrcO|co1e=iq-=#`v5RIczyj4N+zYRVKoRSGZG#$ z=$%(U-*F2lB>V~b9$LHy$_X5XmIu*tI2-|}5sok%f>tBSQ~UW`H~t$e2v@%yWK>~i zHH7^KEH#Q1Q$!!b;Xs$i!(xx)!TaV4a%^bv5R@A^zPNdBH~>X_nD7j$Zven)d}bF8 zA}$uCrU^KqHxi04MRcB~_7QYbo4Wq`_kVT#m(TnhIr#nXnT~VR@1&0U#iP@w=iw0& zpdyfkXhjn}=#P**4zm3hOg&FB4+70dbRKKkFQ1DOzkCLOtREIbRkvG>a!_wIr|yfg zbsug7!178}e-5ppy5~R_hvy{EdYEg zjfTPei51-Ias6fXlL??9{dNmJwkvWIT@~%_HmXgXVUGPG1iLR|L-4I3H6gB>Wr%-T z`T9kYt0csKQTF+n7cX9&J%9D$dBKmGF9|;;bmP>$QPPNL{WWGL+ITux^7HHrDj3v{ z((smukxYGsb9($}Bl9j>#PGw16M@rur_$i4-iiy!5D8b7o1hL2wtRs5SEmYajd%Go)0$WA+6tljg_`Dvz|qKu7F@cEL@eWWs*P_TEi;$I#oDJ&m69zrvlj9|W$7 z_BwqC?1MSo#H4^8BFM*1yYS z4)C$OJX?cp-1hZvvdU{DzeDmxlG`L-Ao*>Q*GXgnBq|N8nW*cQ>ebKI!^Ek zJV2`jE+5!1V#UCn;z4x*K*DZKLV>unWH8@-6yhQ0J16r9*N^I_wIcIpdKiGc0(HLA zgMyO@7LkKKhFA}dqJ-qISINP>(`p!MLi&;U-#^ny2UWQ2Vfg7yys20bJE9#%tjKSY z7qtehe*)9LO+boZjW-9e3i(K{EGQhbiRz7&a-)+q-cw(ET6FSaCl zjL^xf7UR55X04a(7e_(wGH;v(-RpRUw>c2{ryz!B3{xG&b*KO6^ux8{1E)?x=RaHn zdyxT*joW(!*c@Vj8hMj9I{D98FCzICi3phggcLn+H>(YiN1BrkMO`f;Qs4(le~H%_ zvPMu3AWJB7rV_@aw0&U({hyI%^x9p*#CSa7F(6O;6>9oJAe1FJNRBkV+*!&i}Wt0-6 zDez1Z5IZaG+5Q?#3CulKH@s+&IZJ8%S?GvNm|D!LB(OA0vK!{l zIJDw#Ai9dEbZ;FzJ!2rN@uX zW&ad>!&9AnFgx?nYdhBi;OSOSZuD~GNn;fJ$#bI3OMUWyvz1n*HLHJs$3UzLVcL>M z-x1_@hF(tN^F(k`FCjQg?MobPdOG*|xoxV)ZEEoCGRc!9_mOZZ)c(y|_+3690T#;=TiD(`rEmDSY5E*X=Atq@dIjMr<8*4+CFrB`rs2@B}2A_b_g zYtW2>g9Iuuo>6T#5X}@YWR%ugfFK0X4WyL#$0Q{_GEr)=pG?xmS0-XjWErKL*5Ag> z;Pv%r0vLt&1|Niitpwk6?M&pBSIXW{or?h<%;(SU|!AnrH`{uvOI3jvit~fe?o#=D}egaYo5b>n@h=Dj5`pLk9^Cl&dF~M4tqLijJNKPQN zG=0VlmQhy19ESG1ZR1QVWy2h25G=dc2h=nOsnqrVW+@9%(!ZIH{lHncfA-_AfSyKS z#3Q)2IRH%!ClnF;;vixkaNi(o1_{k)+j7+y99NKxqLZc8=7>5#nWP-JWbob|24cyA zdu2#X%K6zQq7%&rO`n^EVARyx5Hug(X$%q`yLi+g_6w(s>3Lig*)!gD0&j~kK>mI~ z3wd>~yrn6@$e`r#?h-Y&YrGFr-ovqUU{@ZUO?XGh%lqIS=+0C;H>f+gc@Lcu>WH`u zj^1|EF>$PArSAQ7g+PBj_-Q!a;I=EmnULMG7Y~Oy<%TKDCyi-&Ud945F1}3Ij~O@`=F#GqdXRPCm^p{z@px`e?wVW9 z>9mYhJj-zD-oJ$w?K^co=Q-%*eP6J`ed-jPdX9eMHI$Jq9#;>^ZXjr)SJR=hIR$-W zGxS@xp}QWT7QsE=5L|tBrZap6wsuf&){4gPot~a9?f`4EP9MTT(3GlC(f}z4qZG8n z%5u|xG4jd?(F>;8<}%bj1~KyXtzXd1;k6-MrV=IWCDBd9?=z}iuFWph={6?Ct~JTH zh4`i{?WJ3Or(m82Izj6yb_Bp^qmy?Ba6zWrtQkG{m%OVcp@99l5yIQg#HbBHTBABL zUEhkY|1auom)PP*AP737HIx*+FuKLu?=jZ^Fe8iveF+8}qR6;_^6ei&gFd1l(>Zm z^IR!;nL$^-!mheM2q+0y4dd(=K_qxR#(hJJ@N{ztBcus`?Cow4+m`t&!-|F5$u&Nk z3}55hX#Hlqujmxh*p_v3$8eP>_S2}i6U9CxGZsH>Z$s5i5WAB*VG2)h`fy)x!SZrF zm^uMpkcLxA{}bHDgcYZlIsy_oZ53rMV2{Nm%sb)@ev`aWu4~>6;lVo0CxO3_z0Mq`OaGaiC{qSlyUo>l|jS*0}1L*7!{V!M4? z2;2Mmo9vVZm0lqE7<-1d%U@{S!lGEM!wlr==_{m8E9^T>d^t0E3AvmAvPUt;awCt)x}KTATD8QDu_!VaQq zvmwj)rOb;BAlE17VMi7;tohc>l57fkuZjc1X7c95uyIB@G4YE2F62?iqmX94WJ~c7R4C( z4&4?w82N%CpqhrO3ULaF3?OO)*H-@)J?~J!5V$m2J(Z_g6eYEfHQ>Rgxw3D=r7)|T ztOK)3_oIS7&8pZVZHXF*oaL4GN3(oO>|kv*&!etS8E83NkMI&>CDOGs0zdE&J-(8g zMLKWm521F&W9|4igmcfF{}(8|+nlGN&25zHUe~G9HO>KA;r8Pi+f1lD&3V99z(lU3 zJGMlYVT9kYJ6Wzkz&EUk+sS%EbIA;Sj+u@QvGljXEtmBqgRlIt6KjL zI3}^>rkM-VV(i0hfcxwV^NRzBRSNi0`vI4d+zuhT*YcZ#Sa|?t0^ag4*2e_6jRRg4 z)(6lM(I<@72;2tX69B$PZ@d-eH}?~C-+1d~>&7L|3JObEtmr$owLWNDFp5X9p3~tV z*FV=SrI|w6X9quFeG)A`fdevzvoI#$-C7(sqpl_a|Ke3ItNqX}GhhElOzbZEzLb1k z0^gm%OS)PuUIPF_9K3k^gU`YQzk2?o#h3irbP-B86#SFUyX=Bavp<25)-4ju!k|CC!ekbsgh6^y|i+0!CT-t-WI5ewZ! z$^Hg4jc7>2WsV2*ry!tukmu4nhhHx1CeY`TMJ{{6p;&({U7W{p)c*|}okCqz19(ia zJZ9Uv#l_b1!5Zh=E+g1z{=d)r(tZ;SYZm-5UW$M2TTGoKd4=RS32}jjz(q5X*Le9e z5+VW3NQyoQ0yJ4&Zr#Mr|BI`YsvsyW@_;@(BNT?Pxfkv@?&QZ77Ngs#){P5KbaaC6 z;A2y3-AE1C+x|)eA+OV{cM2r31LN%z#r`sL@L_-G5~F!2F*j3P`+ecgc@Y;$q`5x{W4naaS&2(@DR;?38h%~{FCjxFyX|I zt!3A_Qy?~AYuJDt0C{5TBmx6+?%%?P0kI@uc*$9WyVz`OGCI}hP&HcPb|=Jh7frY! zp~fK{D2FITeiKn*>_ZhP!aWtKAPxBgF6nhMdWSa4f>SPQlna2szRRBkvIP`Hkzgy%!+ggpXFU;{%2yP0E^3O4JS%-T{ESQda z<)rc0oxF7Vom|XWvW`2G)6=K$??UTVlWNmHwY$_9Q^bbG5iVeXYFx0yHkn{M&r87< zOuCd=#?7T#Fwhi52w(xYGgpslN@SxK^H z{G-2+<4nor{}iQnt8XwkHe_QDDpfe*tUHU2;FSvsOELW#0$BvBuOiAKo4%n&)i6BD zP?{sye62=C0j|YM0N@HQfz;wA6sYV3zL^kzMsp~@0t*uW1n?#aAjp_L{BH(XH3n}M z_Qi&YEwtOPKW7`IEMS2P5nhze4}v_FKn~)fw@B#|qMscL-ByRO&Mq-1jx>Kip;l|KYE{~f6L zF;Vm1g_<80H9xNI2do&rOU(~|c39N>ccA9KgJ=ZaX>&pZMRM_g8B28>Y98?fiUJV? z55#I-!1yjT|7o)1EXij`DAM(HkWLD+p$H++$uqGd2s%T&-YX1riOoI*!X?@JIY<#U zUc(_9ue+Zb@msEf74LPoJN+?hAFatU74FB^e|N6~@e6zv`8$3Av%5WR{(igLJK37g zZ?=k+cCq8aZqO7E@B5Sw^C>4l@Hy1bIwD8>Ac`X&e__TQ(oSc8&42RLsiQraW}bP* zELlD@oEi8mud-B)Hw|+IYj*p!?vu+GV#cHK-Y4&VPo~SL-Z?YVDt7C@30)M04$y)f z_r-b>sO7<86WEG=wV)+~F>SUU9pGK}idH>`9z|yEh*qtbH-O5B4kH=MR~mZ8Y!d@c zOgSn2Fsok%>GX9UYmZ$uHMtWfFc3)q&m{VboEAM5YuF^QtoH(^D1RQCVlthw;?&hH==28fBz_MO z+#h2PG)(nXlJ^tgVt$FtCV0{xXFcKHd8R~qn{N=};R1rU{HIYBVFUoA?5?nZ=Xd}} zC+r+tACrJm4%{JxQYMg)hm@zQWXKi()kHsgxR`DaMp*?weG`d28+N}8Nhuq4V>1fe z9h*@w#o|0bt~d{{YG-RN;|n4YXV6DNHu*v~AWn*SEI_Q3`pY(E>#s8-u7atI**lg55-(R4WJ8+SiN;+u zhHLneh8w<$6k2fauWb7=NcQWvgvYlXAh-y(Z*|ppu6~cT#E~V_BSfZWXlEDjQgyA} zg0t{DoFpO-3p=TZWJl~H_OrI;3aRY2gGW(?J;|W|8Pw^{CjJ`yOhm16W(dXwZpD|c zalVbS2hR=9*pL*T6LO})WqtxROgZpxT#x_oJt#Rtpo3}{bV!YW4kKXh(9Q)NQw5<+ z7t}cDsG0yBR|B9E3O&?@v9-rTEAuyqz6RwP&68&FM7_V-F!4BQ_i}dCbbEcEryBN| z0-{X7w+8Hz#_ zF44As2X_4KE4-5gLCklH=tC9Q5R`_yP>14JMU#6Vi;@cE^myK>FD@Q&DN zZQ6{zZ<}4YyV{H(^v8E}_0Zk-i{BNYIy}ej)@BU2dzxW8$3KTX%S@pU2A;xUdFt*s zvV2(D@6F+xxp8|_&MQ}cT>2P!Pah-i>BH3N_F>9RA75u5@bYrg5OxZ`?@Scn2jyI# zX4fmi=*sphAfgzzzs5^qgzayW%#-|#c0m6Smf%~BS&G_{y97o0C%mU!)8}z6rB+cHpVF36YbGIkT}ugn2_A&V@s~;-dOeM} zUCTdH!qjV1OH2`&lqyZAiL1ho>(OM;ZJsk+`?o5lxI z_z+t@!j^BIqkj4S6{ZP-H3|r7WS3*N03S8!dd1h`azDrW93wfxdS^+fiRDvH`QlE# zYm!fRWT&$1ZPhNaFmyuZP2-)&Vj^S65e6SJ&fv{=VW%#iFC(cky5Tc6sfBru_*$jQ+BC_!zG6 zTSC*MCPhOlr*}~n{H&LCz8htO?`GNLyH&RMZkKJ`^+u+dEoTM2Ycz6Ar|fXvY~-7T za)I-rQ7jkvow4S)t_iI3$1o_$4Y&6%1% zx8|td5a;$_p|pbGJqLnE$|v zkdDkF@A?J*fo)NL5G4g!M9FdagK}I>Aon48Ku+G)$`8qBzLE z&ZFeR@~}LDk`w-9y@WoF%3~;fR6ZbGl>UJHm^>~&gp!l;A^9*$PRWb%ge;+CK|Uu> z%2UXlmY3uic^0`d^0GW9A4Bf!$2Ix5eB!nypV-#R=kWBTdQ z@*`hJGRvM)fv=Q>mhWkbnB{LjiR9Ax8!v^v3U9m^R98K}apSTdu0`$6jjO6%_p4EO ztOP2I z4&z%Pv#6C7j<7{mr~=A9u>1xMiW;9m5@~%AYdeA$TwuXnso&5ey<*@pTLo$CJxPr= zV6Y1M;`Ne#eX(Sz47y43AcrnCJoJ5;SkR-QJ++n;rH>_UVh_S7s1lt} zLtdmb$x|m2sE;b?B&k09Fb$Igi>5o6&zP58XA|_h$kr~x7r$~>rZP7P&w7R(? zwnQxI);l0I-0i_V^N#keg&FBf?~7BVEXdf4{3vMpNpVHBo0JP9uh~&1y2pScFG{ju zRNB;Xspm?wErXT7m$d95^{MGILLJ3@--Kv; zXd8J#H;}=gH4IsQ*Vqz0m-rzT(!gDp=3RrPC^cz)UO%M0f(UVUDvwkjEl$TtyTBK-STuYmDYc1QLknx#~(7lbZcF)7pulqnZU zm55>YM{77-$7RwH?Xe8yVe$nrEg*#%{6_?hz<3$v?8l+OZ$S> zIuUE?jab`###@L*L45W%(Q9aR!8*i}g4|{i?r_V=X-G^BD2dUKUw!E8O(D0TU{z-`On_eT3Ak3RV)pvW2tNisY_|lj6 zNF=jF?&X)gsJeP840>pC*lo2Vx7lq(L8sxn?G^XqS6_0g?QSc=AWkx&^ep<+`JV2c z=;`>1rcG!)^Tp>%PS3n_^(80Cyb`ozdm~INFRTVZVh6QWTlw$XkZj)hGo?c*(Gl|w z{weygnAJztJHk-M;y+Q@dz@zwt<@F93&y=(j-p4roAVY2D*tytDZvpBp+@!P^?v~$VRJ7Y}B)KktkAE_`RI8!1lVdw+&1WMkpDd z@0c(yO5e?F6O%fzi1ORI`eH0vW-MwD8gGl&e|yV>P%-5J)O;hx zg3&m@*yf;o66Jr0cWHr(l#jLg81mz5S>(2WpQJVH0TX>o~#C;yp<}^7!t;PCb z4dTvYQ|iQ1^GJbB1*V)S1zI{qVN_ zwyusx2cx_^B9Gq2jQU4*w9A+k{h=Rgs~FjFQ6788jI;6qq?UA%+LT5|MRJ3x$=5S=qwgp6ehwc+gCm1HN&3y%-M5c+5Y(Al}}&2)+>Ph zH#{ZX6V0$hbx(%9;<8s=8x|&3(1Pwp-MPoZ#2#pJJ!&WBs@GWg4!Y;x;(Iz|BQ=Gn zg8*D^hdx*Ozx%rv?-8@AlSmSy<+XzE8pxRqn1K5X9%_XeEu?D(Nvyp-MiyIN+tJ7s zScltqO;by#dQT)43B(4zt1p~M#H|qqX5P(RsQE4bR!2RvP5lvjnxM?yJcQ&*(C`;7 zu+bkrvoLI!=x5LMth4799A?uifeGCE6&q=5qEhn1T0VC!~N(2CSK zsxqTZ$l+%w>jYuYg2~vb`l><&nN=_JqDUq7b-xw1VLD1`on%%TZ7(|eqzlI$&^!9=q(nKLrJMRD0>4} z_%sqNbA%m_N5q1d7jsBwV4@u-=?-I!40s361u=$_NpVED&;v)rNx{ABBMG8mB8f}5 z!Z{=nh+geZ58FAUf5ABC_JPRT|;$kMg@0kN7R^EwQ3YA@$o?hgy)?G#~f|4el}e#wdr~(bnwyI4oU;WwZpZiM8~RI7|6R?otm!o;n4} z2Z6DQ58%m;@Rr1LwcYHDuo;{O!)tA-F8V0xs)}18ZW1HQW!Oo#s*Ns;klQFuwXkzx z*a?4@oLL)xS#1X98d&;6|Blbo_69I=Lb&a^^wbxq`yZu*iTKX&YvcEI_G73?w;b9N z`F#sYi%FYyi5iiQw!6cxFKvNJV~BS66mX;K22`fI4(l3u6Zxmf1+7?8M`{nsGpHjQ zK8MR$F|pxUm;|DdU(XI)?%F@S_gBCF;_}sJYu`Nf`9J&2H^1`i^->|pfNsI-;RyBH zm)fnH=VX$9jx6FOSb2Cbd@yvj31FiYL5k#Ffani5f^ap-UGcrO&CmK*UP??(ElQtE zG7#wvSa$Hs-o)(G4^u+oAzig0|0k2=u?H~GdwylZ4{EDX_%@n_533@;<^#S#Lmi=TR#~ zI^`h&y09$aiuT10**602pds}&ouD;#^(Igv4il1NEMZKqqK`BonTw^lMFk!u>r`O! zs1xBOV)^@N03ad|l3@^S?x6X=GtXk@3*?zo*>@h}-~W1c-^SD44LL~R0h_Khw5DLZ zR_D|p{30@?E)5_Z$YYWg$UTfLv7=N-Ja zeiFT8$dua_Gq{Ate3eb1tlojEs>|RY>w$%Z1y{Kk5k!aKw`5|cgpI`_4<@m_Ci#-R zgYLr%kJa2-qrL1k+}%|u<;&CT@Gi7k3j^Q|z5A(hvbcn71}a*m?uz8F4XKFH6TaCI3sG6^YWg|k)z4ExV@vsziHj2!+f@4txI*$yG<^;` zGr`xG;5YYeO9oAb9t>8FT`ce+0FpYqlsfG3x`oTel_5U83ot~&d%$9Ab*G+(KSOPu zegQUm5jkw#4mK+q>yJZUIsFOb4j?y)YibtABmDs^f#~Z`qwXMVeq%?+yC|v8P%UkI zeO77^pT7`|)yW2T`iICXqFg}S%p*OFaqWI@3eS`2_vQeqp!eC~ z_pJUA2?E*C@m=K5uT3q9h`=Y=rR%`A@@u|o`2aY{bp-mQ0zg@rjwdCs;>510b{A6C zTn@Z&kx?;*Cf*aN4M|3D=_nHc?=Gy1Rt0cy3tfgu0p`{4NzrDhU!>&gl>8EsWNe?& zSz$|5{VY|p8D~|2)4`*?8TcD19%0JBs{xk`ZUVVnSCRS&>Lw4mBTBE_Bib0fHLO6(=>phB!%5~n!eXcGBA9}*eqp$Xh7E_`f{tBTj_?rq{p(o0rUcQ zbEAR^dwKA*jHml`#{|8_^%W2Dbh-6kF@OO;kQL_ePk-OG_4iHNe&5VZ10*7ku21TGdD2sfKywEyGo$-*|kHd%m|J6WHS#7ltXBz*iG zJi2O2)f;G}mMOVU z+L4j^KXL6DsYh9=!;e{MkLc=MCvl&41tq1H2z5Z_4or$^jvZ(UT9c^fK5H3Dp@w#; z!u+?!^Lx}CDLZmRZP*VFKM}eQKYj+uM{vP2cOO1SPiF@Sn9FK-o50su<7COv3}C#a z%9-qEaBUZEUr=j$y~2oz&o{OGSe_gMx z-lNS>zl>y25&Wgd&Q-4?=@m~x_nif>n!*X=FOvV{Uh6gy>)AZ-_Hr(dK0N96iZ1z3 zsUwO<$K9PvSaR9INasYVFtwQ`Qhm7h7Kt1-Mn_hfJZctNiOEt49xl_MIbYk&^+5Z)#pFa?6g&sLbAE%Z&m#cLA2^3 z_3#`eWO%7BAt@D8HT)ltPqIO?mZ}G%Rq2$G)KVLhRWp0fJUSW<2G*>pm~#5c!0cp7 zCc%|BdnEfm@H~)-GjOK~G$jpgiif_JHOQGhE*^zUoD&a;X}H-cq4#qT(k(wad*&?f z*FFtT79<&8EFFIc86a42t7CYPtk2nTsT*~(Zb{>i203ZhGf@`$9hw*|V2D9?8Wm@+ zob>fb4P+>{fJA}zw4gl&;0Wb&3>HB@)`fz16HZK?t)-iQO8}DFJaITHl?wTOfYSAq zYO3dm>Qf^scXgMdQjmr=HC0}$M^}80?4=NNHl%Y8N=GnQ!JHAze9zZ_LtA9-@&a)Yq|R)`pV*B5%yEa+`($WD@X9= z8rd%h;7N^wbkHB>mIWu#yo2x#ff})u=2lpjkevne4|bEZ?wVVW#o_7zOrQe@FmhvS zg)x9ZPjD=uL0AKk1P6vmZETsPe2sA8{9S{Bf7p$}lKM8r#$*9FDQE;OgfSOk_x~D- z!A%sPE5e_v!8~ch;8EcRBqT{PcDs%v!*16+oL-6}1C5y0?r4W$JKcdM8Fjr79Boo? z)U5hJgC#dP{xt+x5Zega>6Q@jt1lw~=$A@xoBaHvA&wIG6>!Xm03SMAEXJ6qYQOjQ z*Z$<^-uc64$>~SjsO!T_X1e(nx=h3(SzRE2P8$&rKQUmul``u8(ntRsN!bY@s48sU zsQ=GzAeg(6hCP@$|BRY4hvtSu`g@dx6G${2MvFcPa+w5s9uewqP_~amXyJye_eng! zBpsL}ub%A#APE-MR51A_?gg05F22it-eYP`qTiveu}*OC>4F4lD8<~8FP}(n5{*6 z+oa7QQU`lL{Fu7>2jr_%F#01#_!zE`_}$m&3=q!$2tbWRBJJA(r+LntoA>)q8T>V)S{pGLTN zwY$6k^y#$PAV>m76Ha$FS-kL)I&1fjzu z(W;L&q~_=xfY0K|J+Y^yT$r%#a(86~98*e7HztXV9n>D>`q`~V`BlY03-&=yRpz#wbNcFsK|CTq6bjID=6Q7LRjyxC5n{ z9ud!gYqm!(8A0O~5m_R3 z$M}I)kZCQuh*0h08RD0rnwrK#io}vt7aQ9cCoN1Gcu7S+&lBd>-V{hFj-c#&S|pzi zr$Tz<6pbF@9kkM$9@5B21HvcYr=HM|m?Z565AcsbapWk#LUbwvC>HrbrLvAwXoH#z ztjKn?Qc)J(Q8-1asWHw`pWNASVCo-HRzxK$HYoC(<75k5T1Cyi9}W3qxI$W+J;g>? z0+bspt&%x{zrQN?Q9Hei&!pxzt@Lm)c|@2cui|yo+&9Ez0uT`$tKx7g6j1Xq8ZR$k zu6JYz_`fO_?r*q+%^9beBkZoJ1C&ftvbP3%3o(U?bGW!;n7#B|#Wnm9X$<-GKjR?= z%uFPbM(4dmAY#h=CY+=-s>Y#Z zK!2%2TwM(sQsG391ITee@yS6&R!YQ2RnjhK%rF936cwRfA?pX{@XDE%4{)v#rl5kA zcDP3ZB*@hP1zsgp%1Nf`?6WC12mBC5-8et=bo!08vB zKr&>NEUQ>JIJa|Pm>gSyum<0Pv@g?vOee`-#{&A2g~HN%y811=&dEMOMVf;y16TOl zNLaZe?vtJ)j$k`KW+%c!2((IgA}XFjF4`g`y781{}?~Ymm0-PskhrT^NJIW1ue&zLTDx z!y8T?alt_=9P=2!VuhvNarY81RBY_PK!W*|E=X#)a)jbh%$ITI>ugA<|BmNHI6e$b zSEJrIQBoRM@EZ%AsCSgiCn}*Mo*f)xW#Vu{n7r~qw>PzGjKSLDb`QEv=>RaME(|S2 znkE&atMuJpM1q4D5Wr!ovxsg|P#V+F=pb7}QDKIG5y zhY|EKk<};kX+BqMqog2u)7QCsrn;d)wYZPuNca)CUBbojN(dbg7)LP312#E_2>h;o zd=m}TBNzslk|n!DL6Y&hHL`FSuELoNoUYiNtHvUtGjO-Y4o=`<+2`QXH&P6*m0tTJd*JqLwW=-so58o5Z?VeQcgfV3nebbg+vX z>E+MzUGT6``!%jzWFAHBAK;NO1^^4+Mt+g;5>yOlSvs#seI^+?n+SV|EnxLHy+>=S z9;DHiHH!LlM{M{$SFCY!Vre~DJ9f<~Lt*C6^vCuQJug$wCXbUryl&uWai z$nJ*dQbcKL_iNN+?LqK_U+Sa=0%I@%<)M5WvS+6ypo*db63r zc%*_V#fnw->noPcYJ*;6J|1qu9=E``NaevZMBO2oA1S-+ro 1. / thr).float().sum(1).mean() # anchors above threshold + bpr = (best > 1. / thr).float().mean() # best possible recall + return bpr, aat + + anchors = m.anchor_grid.clone().cpu().view(-1, 2) # current anchors + bpr, aat = metric(anchors) + print(f'anchors/target = {aat:.2f}, Best Possible Recall (BPR) = {bpr:.4f}', end='') + if bpr < 0.98: # threshold to recompute + print('. Attempting to improve anchors, please wait...') + na = m.anchor_grid.numel() // 2 # number of anchors + try: + anchors = kmean_anchors(dataset, n=na, img_size=imgsz, thr=thr, gen=1000, verbose=False) + except Exception as e: + print(f'{prefix}ERROR: {e}') + new_bpr = metric(anchors)[0] + if new_bpr > bpr: # replace anchors + anchors = torch.tensor(anchors, device=m.anchors.device).type_as(m.anchors) + m.anchor_grid[:] = anchors.clone().view_as(m.anchor_grid) # for inference + check_anchor_order(m) + m.anchors[:] = anchors.clone().view_as(m.anchors) / m.stride.to(m.anchors.device).view(-1, 1, 1) # loss + print(f'{prefix}New anchors saved to model. Update model *.yaml to use these anchors in the future.') + else: + print(f'{prefix}Original anchors better than new anchors. Proceeding with original anchors.') + print('') # newline + + +def kmean_anchors(path='./data/coco.yaml', n=9, img_size=640, thr=4.0, gen=1000, verbose=True): + """ Creates kmeans-evolved anchors from training dataset + + Arguments: + path: path to dataset *.yaml, or a loaded dataset + n: number of anchors + img_size: image size used for training + thr: anchor-label wh ratio threshold hyperparameter hyp['anchor_t'] used for training, default=4.0 + gen: generations to evolve anchors using genetic algorithm + verbose: print all results + + Return: + k: kmeans evolved anchors + + Usage: + from utils.autoanchor import *; _ = kmean_anchors() + """ + thr = 1. / thr + prefix = colorstr('autoanchor: ') + + def metric(k, wh): # compute metrics + r = wh[:, None] / k[None] + x = torch.min(r, 1. / r).min(2)[0] # ratio metric + # x = wh_iou(wh, torch.tensor(k)) # iou metric + return x, x.max(1)[0] # x, best_x + + def anchor_fitness(k): # mutation fitness + _, best = metric(torch.tensor(k, dtype=torch.float32), wh) + return (best * (best > thr).float()).mean() # fitness + + def print_results(k): + k = k[np.argsort(k.prod(1))] # sort small to large + x, best = metric(k, wh0) + bpr, aat = (best > thr).float().mean(), (x > thr).float().mean() * n # best possible recall, anch > thr + print(f'{prefix}thr={thr:.2f}: {bpr:.4f} best possible recall, {aat:.2f} anchors past thr') + print(f'{prefix}n={n}, img_size={img_size}, metric_all={x.mean():.3f}/{best.mean():.3f}-mean/best, ' + f'past_thr={x[x > thr].mean():.3f}-mean: ', end='') + for i, x in enumerate(k): + print('%i,%i' % (round(x[0]), round(x[1])), end=', ' if i < len(k) - 1 else '\n') # use in *.cfg + return k + + if isinstance(path, str): # *.yaml file + with open(path) as f: + data_dict = yaml.load(f, Loader=yaml.SafeLoader) # model dict + from utils.datasets import LoadImagesAndLabels + dataset = LoadImagesAndLabels(data_dict['train'], augment=True, rect=True) + else: + dataset = path # dataset + + # Get label wh + shapes = img_size * dataset.shapes / dataset.shapes.max(1, keepdims=True) + wh0 = np.concatenate([l[:, 3:5] * s for s, l in zip(shapes, dataset.labels)]) # wh + + # Filter + i = (wh0 < 3.0).any(1).sum() + if i: + print(f'{prefix}WARNING: Extremely small objects found. {i} of {len(wh0)} labels are < 3 pixels in size.') + wh = wh0[(wh0 >= 2.0).any(1)] # filter > 2 pixels + # wh = wh * (np.random.rand(wh.shape[0], 1) * 0.9 + 0.1) # multiply by random scale 0-1 + + # Kmeans calculation + print(f'{prefix}Running kmeans for {n} anchors on {len(wh)} points...') + s = wh.std(0) # sigmas for whitening + k, dist = kmeans(wh / s, n, iter=30) # points, mean distance + assert len(k) == n, print(f'{prefix}ERROR: scipy.cluster.vq.kmeans requested {n} points but returned only {len(k)}') + k *= s + wh = torch.tensor(wh, dtype=torch.float32) # filtered + wh0 = torch.tensor(wh0, dtype=torch.float32) # unfiltered + k = print_results(k) + + # Plot + # k, d = [None] * 20, [None] * 20 + # for i in tqdm(range(1, 21)): + # k[i-1], d[i-1] = kmeans(wh / s, i) # points, mean distance + # fig, ax = plt.subplots(1, 2, figsize=(14, 7), tight_layout=True) + # ax = ax.ravel() + # ax[0].plot(np.arange(1, 21), np.array(d) ** 2, marker='.') + # fig, ax = plt.subplots(1, 2, figsize=(14, 7)) # plot wh + # ax[0].hist(wh[wh[:, 0]<100, 0],400) + # ax[1].hist(wh[wh[:, 1]<100, 1],400) + # fig.savefig('wh.png', dpi=200) + + # Evolve + npr = np.random + f, sh, mp, s = anchor_fitness(k), k.shape, 0.9, 0.1 # fitness, generations, mutation prob, sigma + pbar = tqdm(range(gen), desc=f'{prefix}Evolving anchors with Genetic Algorithm:') # progress bar + for _ in pbar: + v = np.ones(sh) + while (v == 1).all(): # mutate until a change occurs (prevent duplicates) + v = ((npr.random(sh) < mp) * npr.random() * npr.randn(*sh) * s + 1).clip(0.3, 3.0) + kg = (k.copy() * v).clip(min=2.0) + fg = anchor_fitness(kg) + if fg > f: + f, k = fg, kg.copy() + pbar.desc = f'{prefix}Evolving anchors with Genetic Algorithm: fitness = {f:.4f}' + if verbose: + print_results(k) + + return print_results(k) diff --git a/utils/aws/__init__.py b/utils/aws/__init__.py new file mode 100644 index 0000000..e9691f2 --- /dev/null +++ b/utils/aws/__init__.py @@ -0,0 +1 @@ +#init \ No newline at end of file diff --git a/utils/aws/mime.sh b/utils/aws/mime.sh new file mode 100644 index 0000000..c319a83 --- /dev/null +++ b/utils/aws/mime.sh @@ -0,0 +1,26 @@ +# AWS EC2 instance startup 'MIME' script https://aws.amazon.com/premiumsupport/knowledge-center/execute-user-data-ec2/ +# This script will run on every instance restart, not only on first start +# --- DO NOT COPY ABOVE COMMENTS WHEN PASTING INTO USERDATA --- + +Content-Type: multipart/mixed; boundary="//" +MIME-Version: 1.0 + +--// +Content-Type: text/cloud-config; charset="us-ascii" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Content-Disposition: attachment; filename="cloud-config.txt" + +#cloud-config +cloud_final_modules: +- [scripts-user, always] + +--// +Content-Type: text/x-shellscript; charset="us-ascii" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Content-Disposition: attachment; filename="userdata.txt" + +#!/bin/bash +# --- paste contents of userdata.sh here --- +--// diff --git a/utils/aws/resume.py b/utils/aws/resume.py new file mode 100644 index 0000000..338685b --- /dev/null +++ b/utils/aws/resume.py @@ -0,0 +1,37 @@ +# Resume all interrupted trainings in yolor/ dir including DDP trainings +# Usage: $ python utils/aws/resume.py + +import os +import sys +from pathlib import Path + +import torch +import yaml + +sys.path.append('./') # to run '$ python *.py' files in subdirectories + +port = 0 # --master_port +path = Path('').resolve() +for last in path.rglob('*/**/last.pt'): + ckpt = torch.load(last) + if ckpt['optimizer'] is None: + continue + + # Load opt.yaml + with open(last.parent.parent / 'opt.yaml') as f: + opt = yaml.load(f, Loader=yaml.SafeLoader) + + # Get device count + d = opt['device'].split(',') # devices + nd = len(d) # number of devices + ddp = nd > 1 or (nd == 0 and torch.cuda.device_count() > 1) # distributed data parallel + + if ddp: # multi-GPU + port += 1 + cmd = f'python -m torch.distributed.launch --nproc_per_node {nd} --master_port {port} train.py --resume {last}' + else: # single-GPU + cmd = f'python train.py --resume {last}' + + cmd += ' > /dev/null 2>&1 &' # redirect output to dev/null and run in daemon thread + print(cmd) + os.system(cmd) diff --git a/utils/aws/userdata.sh b/utils/aws/userdata.sh new file mode 100644 index 0000000..5762ae5 --- /dev/null +++ b/utils/aws/userdata.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# AWS EC2 instance startup script https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html +# This script will run only once on first instance start (for a re-start script see mime.sh) +# /home/ubuntu (ubuntu) or /home/ec2-user (amazon-linux) is working dir +# Use >300 GB SSD + +cd home/ubuntu +if [ ! -d yolor ]; then + echo "Running first-time script." # install dependencies, download COCO, pull Docker + git clone -b paper https://github.com/WongKinYiu/yolor && sudo chmod -R 777 yolor + cd yolor + bash data/scripts/get_coco.sh && echo "Data done." & + sudo docker pull nvcr.io/nvidia/pytorch:21.08-py3 && echo "Docker done." & + python -m pip install --upgrade pip && pip install -r requirements.txt && python detect.py && echo "Requirements done." & + wait && echo "All tasks done." # finish background tasks +else + echo "Running re-start script." # resume interrupted runs + i=0 + list=$(sudo docker ps -qa) # container list i.e. $'one\ntwo\nthree\nfour' + while IFS= read -r id; do + ((i++)) + echo "restarting container $i: $id" + sudo docker start $id + # sudo docker exec -it $id python train.py --resume # single-GPU + sudo docker exec -d $id python utils/aws/resume.py # multi-scenario + done <<<"$list" +fi diff --git a/utils/datasets.py b/utils/datasets.py new file mode 100644 index 0000000..b6bb8b0 --- /dev/null +++ b/utils/datasets.py @@ -0,0 +1,1320 @@ +# Dataset utils and dataloaders + +import glob +import logging +import math +import os +import random +import shutil +import time +from itertools import repeat +from multiprocessing.pool import ThreadPool +from pathlib import Path +from threading import Thread + +import cv2 +import numpy as np +import torch +import torch.nn.functional as F +from PIL import Image, ExifTags +from torch.utils.data import Dataset +from tqdm import tqdm + +import pickle +from copy import deepcopy +#from pycocotools import mask as maskUtils +from torchvision.utils import save_image +from torchvision.ops import roi_pool, roi_align, ps_roi_pool, ps_roi_align + +from utils.general import check_requirements, xyxy2xywh, xywh2xyxy, xywhn2xyxy, xyn2xy, segment2box, segments2boxes, \ + resample_segments, clean_str +from utils.torch_utils import torch_distributed_zero_first + +# Parameters +help_url = 'https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data' +img_formats = ['bmp', 'jpg', 'jpeg', 'png', 'tif', 'tiff', 'dng', 'webp', 'mpo'] # acceptable image suffixes +vid_formats = ['mov', 'avi', 'mp4', 'mpg', 'mpeg', 'm4v', 'wmv', 'mkv'] # acceptable video suffixes +logger = logging.getLogger(__name__) + +# Get orientation exif tag +for orientation in ExifTags.TAGS.keys(): + if ExifTags.TAGS[orientation] == 'Orientation': + break + + +def get_hash(files): + # Returns a single hash value of a list of files + return sum(os.path.getsize(f) for f in files if os.path.isfile(f)) + + +def exif_size(img): + # Returns exif-corrected PIL size + s = img.size # (width, height) + try: + rotation = dict(img._getexif().items())[orientation] + if rotation == 6: # rotation 270 + s = (s[1], s[0]) + elif rotation == 8: # rotation 90 + s = (s[1], s[0]) + except: + pass + + return s + + +def create_dataloader(path, imgsz, batch_size, stride, opt, hyp=None, augment=False, cache=False, pad=0.0, rect=False, + rank=-1, world_size=1, workers=8, image_weights=False, quad=False, prefix=''): + # Make sure only the first process in DDP process the dataset first, and the following others can use the cache + with torch_distributed_zero_first(rank): + dataset = LoadImagesAndLabels(path, imgsz, batch_size, + augment=augment, # augment images + hyp=hyp, # augmentation hyperparameters + rect=rect, # rectangular training + cache_images=cache, + single_cls=opt.single_cls, + stride=int(stride), + pad=pad, + image_weights=image_weights, + prefix=prefix) + + batch_size = min(batch_size, len(dataset)) + nw = min([os.cpu_count() // world_size, batch_size if batch_size > 1 else 0, workers]) # number of workers + sampler = torch.utils.data.distributed.DistributedSampler(dataset) if rank != -1 else None + loader = torch.utils.data.DataLoader if image_weights else InfiniteDataLoader + # Use torch.utils.data.DataLoader() if dataset.properties will update during training else InfiniteDataLoader() + dataloader = loader(dataset, + batch_size=batch_size, + num_workers=nw, + sampler=sampler, + pin_memory=True, + collate_fn=LoadImagesAndLabels.collate_fn4 if quad else LoadImagesAndLabels.collate_fn) + return dataloader, dataset + + +class InfiniteDataLoader(torch.utils.data.dataloader.DataLoader): + """ Dataloader that reuses workers + + Uses same syntax as vanilla DataLoader + """ + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + object.__setattr__(self, 'batch_sampler', _RepeatSampler(self.batch_sampler)) + self.iterator = super().__iter__() + + def __len__(self): + return len(self.batch_sampler.sampler) + + def __iter__(self): + for i in range(len(self)): + yield next(self.iterator) + + +class _RepeatSampler(object): + """ Sampler that repeats forever + + Args: + sampler (Sampler) + """ + + def __init__(self, sampler): + self.sampler = sampler + + def __iter__(self): + while True: + yield from iter(self.sampler) + + +class LoadImages: # for inference + def __init__(self, path, img_size=640, stride=32): + p = str(Path(path).absolute()) # os-agnostic absolute path + if '*' in p: + files = sorted(glob.glob(p, recursive=True)) # glob + elif os.path.isdir(p): + files = sorted(glob.glob(os.path.join(p, '*.*'))) # dir + elif os.path.isfile(p): + files = [p] # files + else: + raise Exception(f'ERROR: {p} does not exist') + + images = [x for x in files if x.split('.')[-1].lower() in img_formats] + videos = [x for x in files if x.split('.')[-1].lower() in vid_formats] + ni, nv = len(images), len(videos) + + self.img_size = img_size + self.stride = stride + self.files = images + videos + self.nf = ni + nv # number of files + self.video_flag = [False] * ni + [True] * nv + self.mode = 'image' + if any(videos): + self.new_video(videos[0]) # new video + else: + self.cap = None + assert self.nf > 0, f'No images or videos found in {p}. ' \ + f'Supported formats are:\nimages: {img_formats}\nvideos: {vid_formats}' + + def __iter__(self): + self.count = 0 + return self + + def __next__(self): + if self.count == self.nf: + raise StopIteration + path = self.files[self.count] + + if self.video_flag[self.count]: + # Read video + self.mode = 'video' + ret_val, img0 = self.cap.read() + if not ret_val: + self.count += 1 + self.cap.release() + if self.count == self.nf: # last video + raise StopIteration + else: + path = self.files[self.count] + self.new_video(path) + ret_val, img0 = self.cap.read() + + self.frame += 1 + print(f'video {self.count + 1}/{self.nf} ({self.frame}/{self.nframes}) {path}: ', end='') + + else: + # Read image + self.count += 1 + img0 = cv2.imread(path) # BGR + assert img0 is not None, 'Image Not Found ' + path + #print(f'image {self.count}/{self.nf} {path}: ', end='') + + # Padded resize + img = letterbox(img0, self.img_size, stride=self.stride)[0] + + # Convert + img = img[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB, to 3x416x416 + img = np.ascontiguousarray(img) + + return path, img, img0, self.cap + + def new_video(self, path): + self.frame = 0 + self.cap = cv2.VideoCapture(path) + self.nframes = int(self.cap.get(cv2.CAP_PROP_FRAME_COUNT)) + + def __len__(self): + return self.nf # number of files + + +class LoadWebcam: # for inference + def __init__(self, pipe='0', img_size=640, stride=32): + self.img_size = img_size + self.stride = stride + + if pipe.isnumeric(): + pipe = eval(pipe) # local camera + # pipe = 'rtsp://192.168.1.64/1' # IP camera + # pipe = 'rtsp://username:password@192.168.1.64/1' # IP camera with login + # pipe = 'http://wmccpinetop.axiscam.net/mjpg/video.mjpg' # IP golf camera + + self.pipe = pipe + self.cap = cv2.VideoCapture(pipe) # video capture object + self.cap.set(cv2.CAP_PROP_BUFFERSIZE, 3) # set buffer size + + def __iter__(self): + self.count = -1 + return self + + def __next__(self): + self.count += 1 + if cv2.waitKey(1) == ord('q'): # q to quit + self.cap.release() + cv2.destroyAllWindows() + raise StopIteration + + # Read frame + if self.pipe == 0: # local camera + ret_val, img0 = self.cap.read() + img0 = cv2.flip(img0, 1) # flip left-right + else: # IP camera + n = 0 + while True: + n += 1 + self.cap.grab() + if n % 30 == 0: # skip frames + ret_val, img0 = self.cap.retrieve() + if ret_val: + break + + # Print + assert ret_val, f'Camera Error {self.pipe}' + img_path = 'webcam.jpg' + print(f'webcam {self.count}: ', end='') + + # Padded resize + img = letterbox(img0, self.img_size, stride=self.stride)[0] + + # Convert + img = img[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB, to 3x416x416 + img = np.ascontiguousarray(img) + + return img_path, img, img0, None + + def __len__(self): + return 0 + + +class LoadStreams: # multiple IP or RTSP cameras + def __init__(self, sources='streams.txt', img_size=640, stride=32): + self.mode = 'stream' + self.img_size = img_size + self.stride = stride + + if os.path.isfile(sources): + with open(sources, 'r') as f: + sources = [x.strip() for x in f.read().strip().splitlines() if len(x.strip())] + else: + sources = [sources] + + n = len(sources) + self.imgs = [None] * n + self.sources = [clean_str(x) for x in sources] # clean source names for later + for i, s in enumerate(sources): + # Start the thread to read frames from the video stream + print(f'{i + 1}/{n}: {s}... ', end='') + url = eval(s) if s.isnumeric() else s + if 'youtube.com/' in str(url) or 'youtu.be/' in str(url): # if source is YouTube video + check_requirements(('pafy', 'youtube_dl')) + import pafy + url = pafy.new(url).getbest(preftype="mp4").url + cap = cv2.VideoCapture(url) + assert cap.isOpened(), f'Failed to open {s}' + w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) + h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) + self.fps = cap.get(cv2.CAP_PROP_FPS) % 100 + + _, self.imgs[i] = cap.read() # guarantee first frame + thread = Thread(target=self.update, args=([i, cap]), daemon=True) + print(f' success ({w}x{h} at {self.fps:.2f} FPS).') + thread.start() + print('') # newline + + # check for common shapes + s = np.stack([letterbox(x, self.img_size, stride=self.stride)[0].shape for x in self.imgs], 0) # shapes + self.rect = np.unique(s, axis=0).shape[0] == 1 # rect inference if all shapes equal + if not self.rect: + print('WARNING: Different stream shapes detected. For optimal performance supply similarly-shaped streams.') + + def update(self, index, cap): + # Read next stream frame in a daemon thread + n = 0 + while cap.isOpened(): + n += 1 + # _, self.imgs[index] = cap.read() + cap.grab() + if n == 4: # read every 4th frame + success, im = cap.retrieve() + self.imgs[index] = im if success else self.imgs[index] * 0 + n = 0 + time.sleep(1 / self.fps) # wait time + + def __iter__(self): + self.count = -1 + return self + + def __next__(self): + self.count += 1 + img0 = self.imgs.copy() + if cv2.waitKey(1) == ord('q'): # q to quit + cv2.destroyAllWindows() + raise StopIteration + + # Letterbox + img = [letterbox(x, self.img_size, auto=self.rect, stride=self.stride)[0] for x in img0] + + # Stack + img = np.stack(img, 0) + + # Convert + img = img[:, :, :, ::-1].transpose(0, 3, 1, 2) # BGR to RGB, to bsx3x416x416 + img = np.ascontiguousarray(img) + + return self.sources, img, img0, None + + def __len__(self): + return 0 # 1E12 frames = 32 streams at 30 FPS for 30 years + + +def img2label_paths(img_paths): + # Define label paths as a function of image paths + sa, sb = os.sep + 'images' + os.sep, os.sep + 'labels' + os.sep # /images/, /labels/ substrings + return ['txt'.join(x.replace(sa, sb, 1).rsplit(x.split('.')[-1], 1)) for x in img_paths] + + +class LoadImagesAndLabels(Dataset): # for training/testing + def __init__(self, path, img_size=640, batch_size=16, augment=False, hyp=None, rect=False, image_weights=False, + cache_images=False, single_cls=False, stride=32, pad=0.0, prefix=''): + self.img_size = img_size + self.augment = augment + self.hyp = hyp + self.image_weights = image_weights + self.rect = False if image_weights else rect + self.mosaic = self.augment and not self.rect # load 4 images at a time into a mosaic (only during training) + self.mosaic_border = [-img_size // 2, -img_size // 2] + self.stride = stride + self.path = path + #self.albumentations = Albumentations() if augment else None + + try: + f = [] # image files + for p in path if isinstance(path, list) else [path]: + p = Path(p) # os-agnostic + if p.is_dir(): # dir + f += glob.glob(str(p / '**' / '*.*'), recursive=True) + # f = list(p.rglob('**/*.*')) # pathlib + elif p.is_file(): # file + with open(p, 'r') as t: + t = t.read().strip().splitlines() + parent = str(p.parent) + os.sep + f += [x.replace('./', parent) if x.startswith('./') else x for x in t] # local to global path + # f += [p.parent / x.lstrip(os.sep) for x in t] # local to global path (pathlib) + else: + raise Exception(f'{prefix}{p} does not exist') + self.img_files = sorted([x.replace('/', os.sep) for x in f if x.split('.')[-1].lower() in img_formats]) + # self.img_files = sorted([x for x in f if x.suffix[1:].lower() in img_formats]) # pathlib + assert self.img_files, f'{prefix}No images found' + except Exception as e: + raise Exception(f'{prefix}Error loading data from {path}: {e}\nSee {help_url}') + + # Check cache + self.label_files = img2label_paths(self.img_files) # labels + cache_path = (p if p.is_file() else Path(self.label_files[0]).parent).with_suffix('.cache') # cached labels + if cache_path.is_file(): + cache, exists = torch.load(cache_path), True # load + #if cache['hash'] != get_hash(self.label_files + self.img_files) or 'version' not in cache: # changed + # cache, exists = self.cache_labels(cache_path, prefix), False # re-cache + else: + cache, exists = self.cache_labels(cache_path, prefix), False # cache + + # Display cache + nf, nm, ne, nc, n = cache.pop('results') # found, missing, empty, corrupted, total + if exists: + d = f"Scanning '{cache_path}' images and labels... {nf} found, {nm} missing, {ne} empty, {nc} corrupted" + tqdm(None, desc=prefix + d, total=n, initial=n) # display cache results + assert nf > 0 or not augment, f'{prefix}No labels in {cache_path}. Can not train without labels. See {help_url}' + + # Read cache + cache.pop('hash') # remove hash + cache.pop('version') # remove version + labels, shapes, self.segments = zip(*cache.values()) + self.labels = list(labels) + self.shapes = np.array(shapes, dtype=np.float64) + self.img_files = list(cache.keys()) # update + self.label_files = img2label_paths(cache.keys()) # update + if single_cls: + for x in self.labels: + x[:, 0] = 0 + + n = len(shapes) # number of images + bi = np.floor(np.arange(n) / batch_size).astype(np.int) # batch index + nb = bi[-1] + 1 # number of batches + self.batch = bi # batch index of image + self.n = n + self.indices = range(n) + + # Rectangular Training + if self.rect: + # Sort by aspect ratio + s = self.shapes # wh + ar = s[:, 1] / s[:, 0] # aspect ratio + irect = ar.argsort() + self.img_files = [self.img_files[i] for i in irect] + self.label_files = [self.label_files[i] for i in irect] + self.labels = [self.labels[i] for i in irect] + self.shapes = s[irect] # wh + ar = ar[irect] + + # Set training image shapes + shapes = [[1, 1]] * nb + for i in range(nb): + ari = ar[bi == i] + mini, maxi = ari.min(), ari.max() + if maxi < 1: + shapes[i] = [maxi, 1] + elif mini > 1: + shapes[i] = [1, 1 / mini] + + self.batch_shapes = np.ceil(np.array(shapes) * img_size / stride + pad).astype(np.int) * stride + + # Cache images into memory for faster training (WARNING: large datasets may exceed system RAM) + self.imgs = [None] * n + if cache_images: + if cache_images == 'disk': + self.im_cache_dir = Path(Path(self.img_files[0]).parent.as_posix() + '_npy') + self.img_npy = [self.im_cache_dir / Path(f).with_suffix('.npy').name for f in self.img_files] + self.im_cache_dir.mkdir(parents=True, exist_ok=True) + gb = 0 # Gigabytes of cached images + self.img_hw0, self.img_hw = [None] * n, [None] * n + results = ThreadPool(8).imap(lambda x: load_image(*x), zip(repeat(self), range(n))) + pbar = tqdm(enumerate(results), total=n) + for i, x in pbar: + if cache_images == 'disk': + if not self.img_npy[i].exists(): + np.save(self.img_npy[i].as_posix(), x[0]) + gb += self.img_npy[i].stat().st_size + else: + self.imgs[i], self.img_hw0[i], self.img_hw[i] = x + gb += self.imgs[i].nbytes + pbar.desc = f'{prefix}Caching images ({gb / 1E9:.1f}GB)' + pbar.close() + + def cache_labels(self, path=Path('./labels.cache'), prefix=''): + # Cache dataset labels, check images and read shapes + x = {} # dict + nm, nf, ne, nc = 0, 0, 0, 0 # number missing, found, empty, duplicate + pbar = tqdm(zip(self.img_files, self.label_files), desc='Scanning images', total=len(self.img_files)) + for i, (im_file, lb_file) in enumerate(pbar): + try: + # verify images + im = Image.open(im_file) + im.verify() # PIL verify + shape = exif_size(im) # image size + segments = [] # instance segments + assert (shape[0] > 9) & (shape[1] > 9), f'image size {shape} <10 pixels' + assert im.format.lower() in img_formats, f'invalid image format {im.format}' + + # verify labels + if os.path.isfile(lb_file): + nf += 1 # label found + with open(lb_file, 'r') as f: + l = [x.split() for x in f.read().strip().splitlines()] + if any([len(x) > 8 for x in l]): # is segment + classes = np.array([x[0] for x in l], dtype=np.float32) + segments = [np.array(x[1:], dtype=np.float32).reshape(-1, 2) for x in l] # (cls, xy1...) + l = np.concatenate((classes.reshape(-1, 1), segments2boxes(segments)), 1) # (cls, xywh) + l = np.array(l, dtype=np.float32) + if len(l): + assert l.shape[1] == 5, 'labels require 5 columns each' + assert (l >= 0).all(), 'negative labels' + assert (l[:, 1:] <= 1).all(), 'non-normalized or out of bounds coordinate labels' + assert np.unique(l, axis=0).shape[0] == l.shape[0], 'duplicate labels' + else: + ne += 1 # label empty + l = np.zeros((0, 5), dtype=np.float32) + else: + nm += 1 # label missing + l = np.zeros((0, 5), dtype=np.float32) + x[im_file] = [l, shape, segments] + except Exception as e: + nc += 1 + print(f'{prefix}WARNING: Ignoring corrupted image and/or label {im_file}: {e}') + + pbar.desc = f"{prefix}Scanning '{path.parent / path.stem}' images and labels... " \ + f"{nf} found, {nm} missing, {ne} empty, {nc} corrupted" + pbar.close() + + if nf == 0: + print(f'{prefix}WARNING: No labels found in {path}. See {help_url}') + + x['hash'] = get_hash(self.label_files + self.img_files) + x['results'] = nf, nm, ne, nc, i + 1 + x['version'] = 0.1 # cache version + torch.save(x, path) # save for next time + logging.info(f'{prefix}New cache created: {path}') + return x + + def __len__(self): + return len(self.img_files) + + # def __iter__(self): + # self.count = -1 + # print('ran dataset iter') + # #self.shuffled_vector = np.random.permutation(self.nF) if self.augment else np.arange(self.nF) + # return self + + def __getitem__(self, index): + index = self.indices[index] # linear, shuffled, or image_weights + + hyp = self.hyp + mosaic = self.mosaic and random.random() < hyp['mosaic'] + if mosaic: + # Load mosaic + if random.random() < 0.8: + img, labels = load_mosaic(self, index) + else: + img, labels = load_mosaic9(self, index) + shapes = None + + # MixUp https://arxiv.org/pdf/1710.09412.pdf + if random.random() < hyp['mixup']: + if random.random() < 0.8: + img2, labels2 = load_mosaic(self, random.randint(0, len(self.labels) - 1)) + else: + img2, labels2 = load_mosaic9(self, random.randint(0, len(self.labels) - 1)) + r = np.random.beta(8.0, 8.0) # mixup ratio, alpha=beta=8.0 + img = (img * r + img2 * (1 - r)).astype(np.uint8) + labels = np.concatenate((labels, labels2), 0) + + else: + # Load image + img, (h0, w0), (h, w) = load_image(self, index) + + # Letterbox + shape = self.batch_shapes[self.batch[index]] if self.rect else self.img_size # final letterboxed shape + img, ratio, pad = letterbox(img, shape, auto=False, scaleup=self.augment) + shapes = (h0, w0), ((h / h0, w / w0), pad) # for COCO mAP rescaling + + labels = self.labels[index].copy() + if labels.size: # normalized xywh to pixel xyxy format + labels[:, 1:] = xywhn2xyxy(labels[:, 1:], ratio[0] * w, ratio[1] * h, padw=pad[0], padh=pad[1]) + + if self.augment: + # Augment imagespace + if not mosaic: + img, labels = random_perspective(img, labels, + degrees=hyp['degrees'], + translate=hyp['translate'], + scale=hyp['scale'], + shear=hyp['shear'], + perspective=hyp['perspective']) + + + #img, labels = self.albumentations(img, labels) + + # Augment colorspace + augment_hsv(img, hgain=hyp['hsv_h'], sgain=hyp['hsv_s'], vgain=hyp['hsv_v']) + + # Apply cutouts + # if random.random() < 0.9: + # labels = cutout(img, labels) + + if random.random() < hyp['paste_in']: + sample_labels, sample_images, sample_masks = [], [], [] + while len(sample_labels) < 30: + sample_labels_, sample_images_, sample_masks_ = load_samples(self, random.randint(0, len(self.labels) - 1)) + sample_labels += sample_labels_ + sample_images += sample_images_ + sample_masks += sample_masks_ + #print(len(sample_labels)) + if len(sample_labels) == 0: + break + labels = pastein(img, labels, sample_labels, sample_images, sample_masks) + + nL = len(labels) # number of labels + if nL: + labels[:, 1:5] = xyxy2xywh(labels[:, 1:5]) # convert xyxy to xywh + labels[:, [2, 4]] /= img.shape[0] # normalized height 0-1 + labels[:, [1, 3]] /= img.shape[1] # normalized width 0-1 + + if self.augment: + # flip up-down + if random.random() < hyp['flipud']: + img = np.flipud(img) + if nL: + labels[:, 2] = 1 - labels[:, 2] + + # flip left-right + if random.random() < hyp['fliplr']: + img = np.fliplr(img) + if nL: + labels[:, 1] = 1 - labels[:, 1] + + labels_out = torch.zeros((nL, 6)) + if nL: + labels_out[:, 1:] = torch.from_numpy(labels) + + # Convert + img = img[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB, to 3x416x416 + img = np.ascontiguousarray(img) + + return torch.from_numpy(img), labels_out, self.img_files[index], shapes + + @staticmethod + def collate_fn(batch): + img, label, path, shapes = zip(*batch) # transposed + for i, l in enumerate(label): + l[:, 0] = i # add target image index for build_targets() + return torch.stack(img, 0), torch.cat(label, 0), path, shapes + + @staticmethod + def collate_fn4(batch): + img, label, path, shapes = zip(*batch) # transposed + n = len(shapes) // 4 + img4, label4, path4, shapes4 = [], [], path[:n], shapes[:n] + + ho = torch.tensor([[0., 0, 0, 1, 0, 0]]) + wo = torch.tensor([[0., 0, 1, 0, 0, 0]]) + s = torch.tensor([[1, 1, .5, .5, .5, .5]]) # scale + for i in range(n): # zidane torch.zeros(16,3,720,1280) # BCHW + i *= 4 + if random.random() < 0.5: + im = F.interpolate(img[i].unsqueeze(0).float(), scale_factor=2., mode='bilinear', align_corners=False)[ + 0].type(img[i].type()) + l = label[i] + else: + im = torch.cat((torch.cat((img[i], img[i + 1]), 1), torch.cat((img[i + 2], img[i + 3]), 1)), 2) + l = torch.cat((label[i], label[i + 1] + ho, label[i + 2] + wo, label[i + 3] + ho + wo), 0) * s + img4.append(im) + label4.append(l) + + for i, l in enumerate(label4): + l[:, 0] = i # add target image index for build_targets() + + return torch.stack(img4, 0), torch.cat(label4, 0), path4, shapes4 + + +# Ancillary functions -------------------------------------------------------------------------------------------------- +def load_image(self, index): + # loads 1 image from dataset, returns img, original hw, resized hw + img = self.imgs[index] + if img is None: # not cached + path = self.img_files[index] + img = cv2.imread(path) # BGR + assert img is not None, 'Image Not Found ' + path + h0, w0 = img.shape[:2] # orig hw + r = self.img_size / max(h0, w0) # resize image to img_size + if r != 1: # always resize down, only resize up if training with augmentation + interp = cv2.INTER_AREA if r < 1 and not self.augment else cv2.INTER_LINEAR + img = cv2.resize(img, (int(w0 * r), int(h0 * r)), interpolation=interp) + return img, (h0, w0), img.shape[:2] # img, hw_original, hw_resized + else: + return self.imgs[index], self.img_hw0[index], self.img_hw[index] # img, hw_original, hw_resized + + +def augment_hsv(img, hgain=0.5, sgain=0.5, vgain=0.5): + r = np.random.uniform(-1, 1, 3) * [hgain, sgain, vgain] + 1 # random gains + hue, sat, val = cv2.split(cv2.cvtColor(img, cv2.COLOR_BGR2HSV)) + dtype = img.dtype # uint8 + + x = np.arange(0, 256, dtype=np.int16) + lut_hue = ((x * r[0]) % 180).astype(dtype) + lut_sat = np.clip(x * r[1], 0, 255).astype(dtype) + lut_val = np.clip(x * r[2], 0, 255).astype(dtype) + + img_hsv = cv2.merge((cv2.LUT(hue, lut_hue), cv2.LUT(sat, lut_sat), cv2.LUT(val, lut_val))).astype(dtype) + cv2.cvtColor(img_hsv, cv2.COLOR_HSV2BGR, dst=img) # no return needed + + +def hist_equalize(img, clahe=True, bgr=False): + # Equalize histogram on BGR image 'img' with img.shape(n,m,3) and range 0-255 + yuv = cv2.cvtColor(img, cv2.COLOR_BGR2YUV if bgr else cv2.COLOR_RGB2YUV) + if clahe: + c = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8)) + yuv[:, :, 0] = c.apply(yuv[:, :, 0]) + else: + yuv[:, :, 0] = cv2.equalizeHist(yuv[:, :, 0]) # equalize Y channel histogram + return cv2.cvtColor(yuv, cv2.COLOR_YUV2BGR if bgr else cv2.COLOR_YUV2RGB) # convert YUV image to RGB + + +def load_mosaic(self, index): + # loads images in a 4-mosaic + + labels4, segments4 = [], [] + s = self.img_size + yc, xc = [int(random.uniform(-x, 2 * s + x)) for x in self.mosaic_border] # mosaic center x, y + indices = [index] + random.choices(self.indices, k=3) # 3 additional image indices + for i, index in enumerate(indices): + # Load image + img, _, (h, w) = load_image(self, index) + + # place img in img4 + if i == 0: # top left + img4 = np.full((s * 2, s * 2, img.shape[2]), 114, dtype=np.uint8) # base image with 4 tiles + x1a, y1a, x2a, y2a = max(xc - w, 0), max(yc - h, 0), xc, yc # xmin, ymin, xmax, ymax (large image) + x1b, y1b, x2b, y2b = w - (x2a - x1a), h - (y2a - y1a), w, h # xmin, ymin, xmax, ymax (small image) + elif i == 1: # top right + x1a, y1a, x2a, y2a = xc, max(yc - h, 0), min(xc + w, s * 2), yc + x1b, y1b, x2b, y2b = 0, h - (y2a - y1a), min(w, x2a - x1a), h + elif i == 2: # bottom left + x1a, y1a, x2a, y2a = max(xc - w, 0), yc, xc, min(s * 2, yc + h) + x1b, y1b, x2b, y2b = w - (x2a - x1a), 0, w, min(y2a - y1a, h) + elif i == 3: # bottom right + x1a, y1a, x2a, y2a = xc, yc, min(xc + w, s * 2), min(s * 2, yc + h) + x1b, y1b, x2b, y2b = 0, 0, min(w, x2a - x1a), min(y2a - y1a, h) + + img4[y1a:y2a, x1a:x2a] = img[y1b:y2b, x1b:x2b] # img4[ymin:ymax, xmin:xmax] + padw = x1a - x1b + padh = y1a - y1b + + # Labels + labels, segments = self.labels[index].copy(), self.segments[index].copy() + if labels.size: + labels[:, 1:] = xywhn2xyxy(labels[:, 1:], w, h, padw, padh) # normalized xywh to pixel xyxy format + segments = [xyn2xy(x, w, h, padw, padh) for x in segments] + labels4.append(labels) + segments4.extend(segments) + + # Concat/clip labels + labels4 = np.concatenate(labels4, 0) + for x in (labels4[:, 1:], *segments4): + np.clip(x, 0, 2 * s, out=x) # clip when using random_perspective() + # img4, labels4 = replicate(img4, labels4) # replicate + + # Augment + #img4, labels4, segments4 = remove_background(img4, labels4, segments4) + #sample_segments(img4, labels4, segments4, probability=self.hyp['copy_paste']) + img4, labels4, segments4 = copy_paste(img4, labels4, segments4, probability=self.hyp['copy_paste']) + img4, labels4 = random_perspective(img4, labels4, segments4, + degrees=self.hyp['degrees'], + translate=self.hyp['translate'], + scale=self.hyp['scale'], + shear=self.hyp['shear'], + perspective=self.hyp['perspective'], + border=self.mosaic_border) # border to remove + + return img4, labels4 + + +def load_mosaic9(self, index): + # loads images in a 9-mosaic + + labels9, segments9 = [], [] + s = self.img_size + indices = [index] + random.choices(self.indices, k=8) # 8 additional image indices + for i, index in enumerate(indices): + # Load image + img, _, (h, w) = load_image(self, index) + + # place img in img9 + if i == 0: # center + img9 = np.full((s * 3, s * 3, img.shape[2]), 114, dtype=np.uint8) # base image with 4 tiles + h0, w0 = h, w + c = s, s, s + w, s + h # xmin, ymin, xmax, ymax (base) coordinates + elif i == 1: # top + c = s, s - h, s + w, s + elif i == 2: # top right + c = s + wp, s - h, s + wp + w, s + elif i == 3: # right + c = s + w0, s, s + w0 + w, s + h + elif i == 4: # bottom right + c = s + w0, s + hp, s + w0 + w, s + hp + h + elif i == 5: # bottom + c = s + w0 - w, s + h0, s + w0, s + h0 + h + elif i == 6: # bottom left + c = s + w0 - wp - w, s + h0, s + w0 - wp, s + h0 + h + elif i == 7: # left + c = s - w, s + h0 - h, s, s + h0 + elif i == 8: # top left + c = s - w, s + h0 - hp - h, s, s + h0 - hp + + padx, pady = c[:2] + x1, y1, x2, y2 = [max(x, 0) for x in c] # allocate coords + + # Labels + labels, segments = self.labels[index].copy(), self.segments[index].copy() + if labels.size: + labels[:, 1:] = xywhn2xyxy(labels[:, 1:], w, h, padx, pady) # normalized xywh to pixel xyxy format + segments = [xyn2xy(x, w, h, padx, pady) for x in segments] + labels9.append(labels) + segments9.extend(segments) + + # Image + img9[y1:y2, x1:x2] = img[y1 - pady:, x1 - padx:] # img9[ymin:ymax, xmin:xmax] + hp, wp = h, w # height, width previous + + # Offset + yc, xc = [int(random.uniform(0, s)) for _ in self.mosaic_border] # mosaic center x, y + img9 = img9[yc:yc + 2 * s, xc:xc + 2 * s] + + # Concat/clip labels + labels9 = np.concatenate(labels9, 0) + labels9[:, [1, 3]] -= xc + labels9[:, [2, 4]] -= yc + c = np.array([xc, yc]) # centers + segments9 = [x - c for x in segments9] + + for x in (labels9[:, 1:], *segments9): + np.clip(x, 0, 2 * s, out=x) # clip when using random_perspective() + # img9, labels9 = replicate(img9, labels9) # replicate + + # Augment + #img9, labels9, segments9 = remove_background(img9, labels9, segments9) + img9, labels9, segments9 = copy_paste(img9, labels9, segments9, probability=self.hyp['copy_paste']) + img9, labels9 = random_perspective(img9, labels9, segments9, + degrees=self.hyp['degrees'], + translate=self.hyp['translate'], + scale=self.hyp['scale'], + shear=self.hyp['shear'], + perspective=self.hyp['perspective'], + border=self.mosaic_border) # border to remove + + return img9, labels9 + + +def load_samples(self, index): + # loads images in a 4-mosaic + + labels4, segments4 = [], [] + s = self.img_size + yc, xc = [int(random.uniform(-x, 2 * s + x)) for x in self.mosaic_border] # mosaic center x, y + indices = [index] + random.choices(self.indices, k=3) # 3 additional image indices + for i, index in enumerate(indices): + # Load image + img, _, (h, w) = load_image(self, index) + + # place img in img4 + if i == 0: # top left + img4 = np.full((s * 2, s * 2, img.shape[2]), 114, dtype=np.uint8) # base image with 4 tiles + x1a, y1a, x2a, y2a = max(xc - w, 0), max(yc - h, 0), xc, yc # xmin, ymin, xmax, ymax (large image) + x1b, y1b, x2b, y2b = w - (x2a - x1a), h - (y2a - y1a), w, h # xmin, ymin, xmax, ymax (small image) + elif i == 1: # top right + x1a, y1a, x2a, y2a = xc, max(yc - h, 0), min(xc + w, s * 2), yc + x1b, y1b, x2b, y2b = 0, h - (y2a - y1a), min(w, x2a - x1a), h + elif i == 2: # bottom left + x1a, y1a, x2a, y2a = max(xc - w, 0), yc, xc, min(s * 2, yc + h) + x1b, y1b, x2b, y2b = w - (x2a - x1a), 0, w, min(y2a - y1a, h) + elif i == 3: # bottom right + x1a, y1a, x2a, y2a = xc, yc, min(xc + w, s * 2), min(s * 2, yc + h) + x1b, y1b, x2b, y2b = 0, 0, min(w, x2a - x1a), min(y2a - y1a, h) + + img4[y1a:y2a, x1a:x2a] = img[y1b:y2b, x1b:x2b] # img4[ymin:ymax, xmin:xmax] + padw = x1a - x1b + padh = y1a - y1b + + # Labels + labels, segments = self.labels[index].copy(), self.segments[index].copy() + if labels.size: + labels[:, 1:] = xywhn2xyxy(labels[:, 1:], w, h, padw, padh) # normalized xywh to pixel xyxy format + segments = [xyn2xy(x, w, h, padw, padh) for x in segments] + labels4.append(labels) + segments4.extend(segments) + + # Concat/clip labels + labels4 = np.concatenate(labels4, 0) + for x in (labels4[:, 1:], *segments4): + np.clip(x, 0, 2 * s, out=x) # clip when using random_perspective() + # img4, labels4 = replicate(img4, labels4) # replicate + + # Augment + #img4, labels4, segments4 = remove_background(img4, labels4, segments4) + sample_labels, sample_images, sample_masks = sample_segments(img4, labels4, segments4, probability=0.5) + + return sample_labels, sample_images, sample_masks + + +def copy_paste(img, labels, segments, probability=0.5): + # Implement Copy-Paste augmentation https://arxiv.org/abs/2012.07177, labels as nx5 np.array(cls, xyxy) + n = len(segments) + if probability and n: + h, w, c = img.shape # height, width, channels + im_new = np.zeros(img.shape, np.uint8) + for j in random.sample(range(n), k=round(probability * n)): + l, s = labels[j], segments[j] + box = w - l[3], l[2], w - l[1], l[4] + ioa = bbox_ioa(box, labels[:, 1:5]) # intersection over area + if (ioa < 0.30).all(): # allow 30% obscuration of existing labels + labels = np.concatenate((labels, [[l[0], *box]]), 0) + segments.append(np.concatenate((w - s[:, 0:1], s[:, 1:2]), 1)) + cv2.drawContours(im_new, [segments[j].astype(np.int32)], -1, (255, 255, 255), cv2.FILLED) + + result = cv2.bitwise_and(src1=img, src2=im_new) + result = cv2.flip(result, 1) # augment segments (flip left-right) + i = result > 0 # pixels to replace + # i[:, :] = result.max(2).reshape(h, w, 1) # act over ch + img[i] = result[i] # cv2.imwrite('debug.jpg', img) # debug + + return img, labels, segments + + +def remove_background(img, labels, segments): + # Implement Copy-Paste augmentation https://arxiv.org/abs/2012.07177, labels as nx5 np.array(cls, xyxy) + n = len(segments) + h, w, c = img.shape # height, width, channels + im_new = np.zeros(img.shape, np.uint8) + img_new = np.ones(img.shape, np.uint8) * 114 + for j in range(n): + cv2.drawContours(im_new, [segments[j].astype(np.int32)], -1, (255, 255, 255), cv2.FILLED) + + result = cv2.bitwise_and(src1=img, src2=im_new) + + i = result > 0 # pixels to replace + img_new[i] = result[i] # cv2.imwrite('debug.jpg', img) # debug + + return img_new, labels, segments + + +def sample_segments(img, labels, segments, probability=0.5): + # Implement Copy-Paste augmentation https://arxiv.org/abs/2012.07177, labels as nx5 np.array(cls, xyxy) + n = len(segments) + sample_labels = [] + sample_images = [] + sample_masks = [] + if probability and n: + h, w, c = img.shape # height, width, channels + for j in random.sample(range(n), k=round(probability * n)): + l, s = labels[j], segments[j] + box = l[1].astype(int).clip(0,w-1), l[2].astype(int).clip(0,h-1), l[3].astype(int).clip(0,w-1), l[4].astype(int).clip(0,h-1) + + #print(box) + if (box[2] <= box[0]) or (box[3] <= box[1]): + continue + + sample_labels.append(l[0]) + + mask = np.zeros(img.shape, np.uint8) + + cv2.drawContours(mask, [segments[j].astype(np.int32)], -1, (255, 255, 255), cv2.FILLED) + sample_masks.append(mask[box[1]:box[3],box[0]:box[2],:]) + + result = cv2.bitwise_and(src1=img, src2=mask) + i = result > 0 # pixels to replace + mask[i] = result[i] # cv2.imwrite('debug.jpg', img) # debug + #print(box) + sample_images.append(mask[box[1]:box[3],box[0]:box[2],:]) + + return sample_labels, sample_images, sample_masks + + +def replicate(img, labels): + # Replicate labels + h, w = img.shape[:2] + boxes = labels[:, 1:].astype(int) + x1, y1, x2, y2 = boxes.T + s = ((x2 - x1) + (y2 - y1)) / 2 # side length (pixels) + for i in s.argsort()[:round(s.size * 0.5)]: # smallest indices + x1b, y1b, x2b, y2b = boxes[i] + bh, bw = y2b - y1b, x2b - x1b + yc, xc = int(random.uniform(0, h - bh)), int(random.uniform(0, w - bw)) # offset x, y + x1a, y1a, x2a, y2a = [xc, yc, xc + bw, yc + bh] + img[y1a:y2a, x1a:x2a] = img[y1b:y2b, x1b:x2b] # img4[ymin:ymax, xmin:xmax] + labels = np.append(labels, [[labels[i, 0], x1a, y1a, x2a, y2a]], axis=0) + + return img, labels + + +def letterbox(img, new_shape=(640, 640), color=(114, 114, 114), auto=True, scaleFill=False, scaleup=True, stride=32): + # Resize and pad image while meeting stride-multiple constraints + shape = img.shape[:2] # current shape [height, width] + if isinstance(new_shape, int): + new_shape = (new_shape, new_shape) + + # Scale ratio (new / old) + r = min(new_shape[0] / shape[0], new_shape[1] / shape[1]) + if not scaleup: # only scale down, do not scale up (for better test mAP) + r = min(r, 1.0) + + # Compute padding + ratio = r, r # width, height ratios + new_unpad = int(round(shape[1] * r)), int(round(shape[0] * r)) + dw, dh = new_shape[1] - new_unpad[0], new_shape[0] - new_unpad[1] # wh padding + if auto: # minimum rectangle + dw, dh = np.mod(dw, stride), np.mod(dh, stride) # wh padding + elif scaleFill: # stretch + dw, dh = 0.0, 0.0 + new_unpad = (new_shape[1], new_shape[0]) + ratio = new_shape[1] / shape[1], new_shape[0] / shape[0] # width, height ratios + + dw /= 2 # divide padding into 2 sides + dh /= 2 + + if shape[::-1] != new_unpad: # resize + img = cv2.resize(img, new_unpad, interpolation=cv2.INTER_LINEAR) + top, bottom = int(round(dh - 0.1)), int(round(dh + 0.1)) + left, right = int(round(dw - 0.1)), int(round(dw + 0.1)) + img = cv2.copyMakeBorder(img, top, bottom, left, right, cv2.BORDER_CONSTANT, value=color) # add border + return img, ratio, (dw, dh) + + +def random_perspective(img, targets=(), segments=(), degrees=10, translate=.1, scale=.1, shear=10, perspective=0.0, + border=(0, 0)): + # torchvision.transforms.RandomAffine(degrees=(-10, 10), translate=(.1, .1), scale=(.9, 1.1), shear=(-10, 10)) + # targets = [cls, xyxy] + + height = img.shape[0] + border[0] * 2 # shape(h,w,c) + width = img.shape[1] + border[1] * 2 + + # Center + C = np.eye(3) + C[0, 2] = -img.shape[1] / 2 # x translation (pixels) + C[1, 2] = -img.shape[0] / 2 # y translation (pixels) + + # Perspective + P = np.eye(3) + P[2, 0] = random.uniform(-perspective, perspective) # x perspective (about y) + P[2, 1] = random.uniform(-perspective, perspective) # y perspective (about x) + + # Rotation and Scale + R = np.eye(3) + a = random.uniform(-degrees, degrees) + # a += random.choice([-180, -90, 0, 90]) # add 90deg rotations to small rotations + s = random.uniform(1 - scale, 1.1 + scale) + # s = 2 ** random.uniform(-scale, scale) + R[:2] = cv2.getRotationMatrix2D(angle=a, center=(0, 0), scale=s) + + # Shear + S = np.eye(3) + S[0, 1] = math.tan(random.uniform(-shear, shear) * math.pi / 180) # x shear (deg) + S[1, 0] = math.tan(random.uniform(-shear, shear) * math.pi / 180) # y shear (deg) + + # Translation + T = np.eye(3) + T[0, 2] = random.uniform(0.5 - translate, 0.5 + translate) * width # x translation (pixels) + T[1, 2] = random.uniform(0.5 - translate, 0.5 + translate) * height # y translation (pixels) + + # Combined rotation matrix + M = T @ S @ R @ P @ C # order of operations (right to left) is IMPORTANT + if (border[0] != 0) or (border[1] != 0) or (M != np.eye(3)).any(): # image changed + if perspective: + img = cv2.warpPerspective(img, M, dsize=(width, height), borderValue=(114, 114, 114)) + else: # affine + img = cv2.warpAffine(img, M[:2], dsize=(width, height), borderValue=(114, 114, 114)) + + # Visualize + # import matplotlib.pyplot as plt + # ax = plt.subplots(1, 2, figsize=(12, 6))[1].ravel() + # ax[0].imshow(img[:, :, ::-1]) # base + # ax[1].imshow(img2[:, :, ::-1]) # warped + + # Transform label coordinates + n = len(targets) + if n: + use_segments = any(x.any() for x in segments) + new = np.zeros((n, 4)) + if use_segments: # warp segments + segments = resample_segments(segments) # upsample + for i, segment in enumerate(segments): + xy = np.ones((len(segment), 3)) + xy[:, :2] = segment + xy = xy @ M.T # transform + xy = xy[:, :2] / xy[:, 2:3] if perspective else xy[:, :2] # perspective rescale or affine + + # clip + new[i] = segment2box(xy, width, height) + + else: # warp boxes + xy = np.ones((n * 4, 3)) + xy[:, :2] = targets[:, [1, 2, 3, 4, 1, 4, 3, 2]].reshape(n * 4, 2) # x1y1, x2y2, x1y2, x2y1 + xy = xy @ M.T # transform + xy = (xy[:, :2] / xy[:, 2:3] if perspective else xy[:, :2]).reshape(n, 8) # perspective rescale or affine + + # create new boxes + x = xy[:, [0, 2, 4, 6]] + y = xy[:, [1, 3, 5, 7]] + new = np.concatenate((x.min(1), y.min(1), x.max(1), y.max(1))).reshape(4, n).T + + # clip + new[:, [0, 2]] = new[:, [0, 2]].clip(0, width) + new[:, [1, 3]] = new[:, [1, 3]].clip(0, height) + + # filter candidates + i = box_candidates(box1=targets[:, 1:5].T * s, box2=new.T, area_thr=0.01 if use_segments else 0.10) + targets = targets[i] + targets[:, 1:5] = new[i] + + return img, targets + + +def box_candidates(box1, box2, wh_thr=2, ar_thr=20, area_thr=0.1, eps=1e-16): # box1(4,n), box2(4,n) + # Compute candidate boxes: box1 before augment, box2 after augment, wh_thr (pixels), aspect_ratio_thr, area_ratio + w1, h1 = box1[2] - box1[0], box1[3] - box1[1] + w2, h2 = box2[2] - box2[0], box2[3] - box2[1] + ar = np.maximum(w2 / (h2 + eps), h2 / (w2 + eps)) # aspect ratio + return (w2 > wh_thr) & (h2 > wh_thr) & (w2 * h2 / (w1 * h1 + eps) > area_thr) & (ar < ar_thr) # candidates + + +def bbox_ioa(box1, box2): + # Returns the intersection over box2 area given box1, box2. box1 is 4, box2 is nx4. boxes are x1y1x2y2 + box2 = box2.transpose() + + # Get the coordinates of bounding boxes + b1_x1, b1_y1, b1_x2, b1_y2 = box1[0], box1[1], box1[2], box1[3] + b2_x1, b2_y1, b2_x2, b2_y2 = box2[0], box2[1], box2[2], box2[3] + + # Intersection area + inter_area = (np.minimum(b1_x2, b2_x2) - np.maximum(b1_x1, b2_x1)).clip(0) * \ + (np.minimum(b1_y2, b2_y2) - np.maximum(b1_y1, b2_y1)).clip(0) + + # box2 area + box2_area = (b2_x2 - b2_x1) * (b2_y2 - b2_y1) + 1e-16 + + # Intersection over box2 area + return inter_area / box2_area + + +def cutout(image, labels): + # Applies image cutout augmentation https://arxiv.org/abs/1708.04552 + h, w = image.shape[:2] + + # create random masks + scales = [0.5] * 1 + [0.25] * 2 + [0.125] * 4 + [0.0625] * 8 + [0.03125] * 16 # image size fraction + for s in scales: + mask_h = random.randint(1, int(h * s)) + mask_w = random.randint(1, int(w * s)) + + # box + xmin = max(0, random.randint(0, w) - mask_w // 2) + ymin = max(0, random.randint(0, h) - mask_h // 2) + xmax = min(w, xmin + mask_w) + ymax = min(h, ymin + mask_h) + + # apply random color mask + image[ymin:ymax, xmin:xmax] = [random.randint(64, 191) for _ in range(3)] + + # return unobscured labels + if len(labels) and s > 0.03: + box = np.array([xmin, ymin, xmax, ymax], dtype=np.float32) + ioa = bbox_ioa(box, labels[:, 1:5]) # intersection over area + labels = labels[ioa < 0.60] # remove >60% obscured labels + + return labels + + +def pastein(image, labels, sample_labels, sample_images, sample_masks): + # Applies image cutout augmentation https://arxiv.org/abs/1708.04552 + h, w = image.shape[:2] + + # create random masks + scales = [0.75] * 2 + [0.5] * 4 + [0.25] * 4 + [0.125] * 4 + [0.0625] * 6 # image size fraction + for s in scales: + if random.random() < 0.2: + continue + mask_h = random.randint(1, int(h * s)) + mask_w = random.randint(1, int(w * s)) + + # box + xmin = max(0, random.randint(0, w) - mask_w // 2) + ymin = max(0, random.randint(0, h) - mask_h // 2) + xmax = min(w, xmin + mask_w) + ymax = min(h, ymin + mask_h) + + box = np.array([xmin, ymin, xmax, ymax], dtype=np.float32) + if len(labels): + ioa = bbox_ioa(box, labels[:, 1:5]) # intersection over area + else: + ioa = np.zeros(1) + + if (ioa < 0.30).all() and len(sample_labels) and (xmax > xmin+20) and (ymax > ymin+20): # allow 30% obscuration of existing labels + sel_ind = random.randint(0, len(sample_labels)-1) + #print(len(sample_labels)) + #print(sel_ind) + #print((xmax-xmin, ymax-ymin)) + #print(image[ymin:ymax, xmin:xmax].shape) + #print([[sample_labels[sel_ind], *box]]) + #print(labels.shape) + hs, ws, cs = sample_images[sel_ind].shape + r_scale = min((ymax-ymin)/hs, (xmax-xmin)/ws) + r_w = int(ws*r_scale) + r_h = int(hs*r_scale) + + if (r_w > 10) and (r_h > 10): + r_mask = cv2.resize(sample_masks[sel_ind], (r_w, r_h)) + r_image = cv2.resize(sample_images[sel_ind], (r_w, r_h)) + temp_crop = image[ymin:ymin+r_h, xmin:xmin+r_w] + m_ind = r_mask > 0 + if m_ind.astype(np.int).sum() > 60: + temp_crop[m_ind] = r_image[m_ind] + #print(sample_labels[sel_ind]) + #print(sample_images[sel_ind].shape) + #print(temp_crop.shape) + box = np.array([xmin, ymin, xmin+r_w, ymin+r_h], dtype=np.float32) + if len(labels): + labels = np.concatenate((labels, [[sample_labels[sel_ind], *box]]), 0) + else: + labels = np.array([[sample_labels[sel_ind], *box]]) + + image[ymin:ymin+r_h, xmin:xmin+r_w] = temp_crop + + return labels + +class Albumentations: + # YOLOv5 Albumentations class (optional, only used if package is installed) + def __init__(self): + self.transform = None + import albumentations as A + + self.transform = A.Compose([ + A.CLAHE(p=0.01), + A.RandomBrightnessContrast(brightness_limit=0.2, contrast_limit=0.2, p=0.01), + A.RandomGamma(gamma_limit=[80, 120], p=0.01), + A.Blur(p=0.01), + A.MedianBlur(p=0.01), + A.ToGray(p=0.01), + A.ImageCompression(quality_lower=75, p=0.01),], + bbox_params=A.BboxParams(format='pascal_voc', label_fields=['class_labels'])) + + #logging.info(colorstr('albumentations: ') + ', '.join(f'{x}' for x in self.transform.transforms if x.p)) + + def __call__(self, im, labels, p=1.0): + if self.transform and random.random() < p: + new = self.transform(image=im, bboxes=labels[:, 1:], class_labels=labels[:, 0]) # transformed + im, labels = new['image'], np.array([[c, *b] for c, b in zip(new['class_labels'], new['bboxes'])]) + return im, labels + + +def create_folder(path='./new'): + # Create folder + if os.path.exists(path): + shutil.rmtree(path) # delete output folder + os.makedirs(path) # make new output folder + + +def flatten_recursive(path='../coco'): + # Flatten a recursive directory by bringing all files to top level + new_path = Path(path + '_flat') + create_folder(new_path) + for file in tqdm(glob.glob(str(Path(path)) + '/**/*.*', recursive=True)): + shutil.copyfile(file, new_path / Path(file).name) + + +def extract_boxes(path='../coco/'): # from utils.datasets import *; extract_boxes('../coco128') + # Convert detection dataset into classification dataset, with one directory per class + + path = Path(path) # images dir + shutil.rmtree(path / 'classifier') if (path / 'classifier').is_dir() else None # remove existing + files = list(path.rglob('*.*')) + n = len(files) # number of files + for im_file in tqdm(files, total=n): + if im_file.suffix[1:] in img_formats: + # image + im = cv2.imread(str(im_file))[..., ::-1] # BGR to RGB + h, w = im.shape[:2] + + # labels + lb_file = Path(img2label_paths([str(im_file)])[0]) + if Path(lb_file).exists(): + with open(lb_file, 'r') as f: + lb = np.array([x.split() for x in f.read().strip().splitlines()], dtype=np.float32) # labels + + for j, x in enumerate(lb): + c = int(x[0]) # class + f = (path / 'classifier') / f'{c}' / f'{path.stem}_{im_file.stem}_{j}.jpg' # new filename + if not f.parent.is_dir(): + f.parent.mkdir(parents=True) + + b = x[1:] * [w, h, w, h] # box + # b[2:] = b[2:].max() # rectangle to square + b[2:] = b[2:] * 1.2 + 3 # pad + b = xywh2xyxy(b.reshape(-1, 4)).ravel().astype(np.int) + + b[[0, 2]] = np.clip(b[[0, 2]], 0, w) # clip boxes outside of image + b[[1, 3]] = np.clip(b[[1, 3]], 0, h) + assert cv2.imwrite(str(f), im[b[1]:b[3], b[0]:b[2]]), f'box failure in {f}' + + +def autosplit(path='../coco', weights=(0.9, 0.1, 0.0), annotated_only=False): + """ Autosplit a dataset into train/val/test splits and save path/autosplit_*.txt files + Usage: from utils.datasets import *; autosplit('../coco') + Arguments + path: Path to images directory + weights: Train, val, test weights (list) + annotated_only: Only use images with an annotated txt file + """ + path = Path(path) # images dir + files = sum([list(path.rglob(f"*.{img_ext}")) for img_ext in img_formats], []) # image files only + n = len(files) # number of files + indices = random.choices([0, 1, 2], weights=weights, k=n) # assign each image to a split + + txt = ['autosplit_train.txt', 'autosplit_val.txt', 'autosplit_test.txt'] # 3 txt files + [(path / x).unlink() for x in txt if (path / x).exists()] # remove existing + + print(f'Autosplitting images from {path}' + ', using *.txt labeled images only' * annotated_only) + for i, img in tqdm(zip(indices, files), total=n): + if not annotated_only or Path(img2label_paths([str(img)])[0]).exists(): # check label + with open(path / txt[i], 'a') as f: + f.write(str(img) + '\n') # add image to txt file + + +def load_segmentations(self, index): + key = '/work/handsomejw66/coco17/' + self.img_files[index] + #print(key) + # /work/handsomejw66/coco17/ + return self.segs[key] diff --git a/utils/general.py b/utils/general.py new file mode 100644 index 0000000..faf908f --- /dev/null +++ b/utils/general.py @@ -0,0 +1,891 @@ +# YOLOR general utils + +import glob +import logging +import math +import os +import platform +import random +import re +import subprocess +import time +from pathlib import Path + +import cv2 +import numpy as np +import pandas as pd +import torch +import torchvision +import yaml + +from utils.google_utils import gsutil_getsize +from utils.metrics import fitness +from utils.torch_utils import init_torch_seeds + +# Settings +torch.set_printoptions(linewidth=320, precision=5, profile='long') +np.set_printoptions(linewidth=320, formatter={'float_kind': '{:11.5g}'.format}) # format short g, %precision=5 +pd.options.display.max_columns = 10 +cv2.setNumThreads(0) # prevent OpenCV from multithreading (incompatible with PyTorch DataLoader) +os.environ['NUMEXPR_MAX_THREADS'] = str(min(os.cpu_count(), 8)) # NumExpr max threads + + +def set_logging(rank=-1): + logging.basicConfig( + format="%(message)s", + level=logging.INFO if rank in [-1, 0] else logging.WARN) + + +def init_seeds(seed=0): + # Initialize random number generator (RNG) seeds + random.seed(seed) + np.random.seed(seed) + init_torch_seeds(seed) + + +def get_latest_run(search_dir='.'): + # Return path to most recent 'last.pt' in /runs (i.e. to --resume from) + last_list = glob.glob(f'{search_dir}/**/last*.pt', recursive=True) + return max(last_list, key=os.path.getctime) if last_list else '' + + +def isdocker(): + # Is environment a Docker container + return Path('/workspace').exists() # or Path('/.dockerenv').exists() + + +def emojis(str=''): + # Return platform-dependent emoji-safe version of string + return str.encode().decode('ascii', 'ignore') if platform.system() == 'Windows' else str + + +def check_online(): + # Check internet connectivity + import socket + try: + socket.create_connection(("1.1.1.1", 443), 5) # check host accesability + return True + except OSError: + return False + + +def check_git_status(): + # Recommend 'git pull' if code is out of date + print(colorstr('github: '), end='') + try: + assert Path('.git').exists(), 'skipping check (not a git repository)' + assert not isdocker(), 'skipping check (Docker image)' + assert check_online(), 'skipping check (offline)' + + cmd = 'git fetch && git config --get remote.origin.url' + url = subprocess.check_output(cmd, shell=True).decode().strip().rstrip('.git') # github repo url + branch = subprocess.check_output('git rev-parse --abbrev-ref HEAD', shell=True).decode().strip() # checked out + n = int(subprocess.check_output(f'git rev-list {branch}..origin/master --count', shell=True)) # commits behind + if n > 0: + s = f"⚠️ WARNING: code is out of date by {n} commit{'s' * (n > 1)}. " \ + f"Use 'git pull' to update or 'git clone {url}' to download latest." + else: + s = f'up to date with {url} ✅' + print(emojis(s)) # emoji-safe + except Exception as e: + print(e) + + +def check_requirements(requirements='requirements.txt', exclude=()): + # Check installed dependencies meet requirements (pass *.txt file or list of packages) + import pkg_resources as pkg + prefix = colorstr('red', 'bold', 'requirements:') + if isinstance(requirements, (str, Path)): # requirements.txt file + file = Path(requirements) + if not file.exists(): + print(f"{prefix} {file.resolve()} not found, check failed.") + return + requirements = [f'{x.name}{x.specifier}' for x in pkg.parse_requirements(file.open()) if x.name not in exclude] + else: # list or tuple of packages + requirements = [x for x in requirements if x not in exclude] + + n = 0 # number of packages updates + for r in requirements: + try: + pkg.require(r) + except Exception as e: # DistributionNotFound or VersionConflict if requirements not met + n += 1 + print(f"{prefix} {e.req} not found and is required by YOLOR, attempting auto-update...") + print(subprocess.check_output(f"pip install '{e.req}'", shell=True).decode()) + + if n: # if packages updated + source = file.resolve() if 'file' in locals() else requirements + s = f"{prefix} {n} package{'s' * (n > 1)} updated per {source}\n" \ + f"{prefix} ⚠️ {colorstr('bold', 'Restart runtime or rerun command for updates to take effect')}\n" + print(emojis(s)) # emoji-safe + + +def check_img_size(img_size, s=32): + # Verify img_size is a multiple of stride s + new_size = make_divisible(img_size, int(s)) # ceil gs-multiple + if new_size != img_size: + print('WARNING: --img-size %g must be multiple of max stride %g, updating to %g' % (img_size, s, new_size)) + return new_size + + +def check_imshow(): + # Check if environment supports image displays + try: + assert not isdocker(), 'cv2.imshow() is disabled in Docker environments' + cv2.imshow('test', np.zeros((1, 1, 3))) + cv2.waitKey(1) + cv2.destroyAllWindows() + cv2.waitKey(1) + return True + except Exception as e: + print(f'WARNING: Environment does not support cv2.imshow() or PIL Image.show() image displays\n{e}') + return False + + +def check_file(file): + # Search for file if not found + if Path(file).is_file() or file == '': + return file + else: + files = glob.glob('./**/' + file, recursive=True) # find file + assert len(files), f'File Not Found: {file}' # assert file was found + assert len(files) == 1, f"Multiple files match '{file}', specify exact path: {files}" # assert unique + return files[0] # return file + + +def check_dataset(dict): + # Download dataset if not found locally + val, s = dict.get('val'), dict.get('download') + if val and len(val): + val = [Path(x).resolve() for x in (val if isinstance(val, list) else [val])] # val path + if not all(x.exists() for x in val): + print('\nWARNING: Dataset not found, nonexistent paths: %s' % [str(x) for x in val if not x.exists()]) + if s and len(s): # download script + print('Downloading %s ...' % s) + if s.startswith('http') and s.endswith('.zip'): # URL + f = Path(s).name # filename + torch.hub.download_url_to_file(s, f) + r = os.system('unzip -q %s -d ../ && rm %s' % (f, f)) # unzip + else: # bash script + r = os.system(s) + print('Dataset autodownload %s\n' % ('success' if r == 0 else 'failure')) # analyze return value + else: + raise Exception('Dataset not found.') + + +def make_divisible(x, divisor): + # Returns x evenly divisible by divisor + return math.ceil(x / divisor) * divisor + + +def clean_str(s): + # Cleans a string by replacing special characters with underscore _ + return re.sub(pattern="[|@#!¡·$€%&()=?¿^*;:,¨´><+]", repl="_", string=s) + + +def one_cycle(y1=0.0, y2=1.0, steps=100): + # lambda function for sinusoidal ramp from y1 to y2 + return lambda x: ((1 - math.cos(x * math.pi / steps)) / 2) * (y2 - y1) + y1 + + +def colorstr(*input): + # Colors a string https://en.wikipedia.org/wiki/ANSI_escape_code, i.e. colorstr('blue', 'hello world') + *args, string = input if len(input) > 1 else ('blue', 'bold', input[0]) # color arguments, string + colors = {'black': '\033[30m', # basic colors + 'red': '\033[31m', + 'green': '\033[32m', + 'yellow': '\033[33m', + 'blue': '\033[34m', + 'magenta': '\033[35m', + 'cyan': '\033[36m', + 'white': '\033[37m', + 'bright_black': '\033[90m', # bright colors + 'bright_red': '\033[91m', + 'bright_green': '\033[92m', + 'bright_yellow': '\033[93m', + 'bright_blue': '\033[94m', + 'bright_magenta': '\033[95m', + 'bright_cyan': '\033[96m', + 'bright_white': '\033[97m', + 'end': '\033[0m', # misc + 'bold': '\033[1m', + 'underline': '\033[4m'} + return ''.join(colors[x] for x in args) + f'{string}' + colors['end'] + + +def labels_to_class_weights(labels, nc=80): + # Get class weights (inverse frequency) from training labels + if labels[0] is None: # no labels loaded + return torch.Tensor() + + labels = np.concatenate(labels, 0) # labels.shape = (866643, 5) for COCO + classes = labels[:, 0].astype(np.int) # labels = [class xywh] + weights = np.bincount(classes, minlength=nc) # occurrences per class + + # Prepend gridpoint count (for uCE training) + # gpi = ((320 / 32 * np.array([1, 2, 4])) ** 2 * 3).sum() # gridpoints per image + # weights = np.hstack([gpi * len(labels) - weights.sum() * 9, weights * 9]) ** 0.5 # prepend gridpoints to start + + weights[weights == 0] = 1 # replace empty bins with 1 + weights = 1 / weights # number of targets per class + weights /= weights.sum() # normalize + return torch.from_numpy(weights) + + +def labels_to_image_weights(labels, nc=80, class_weights=np.ones(80)): + # Produces image weights based on class_weights and image contents + class_counts = np.array([np.bincount(x[:, 0].astype(np.int), minlength=nc) for x in labels]) + image_weights = (class_weights.reshape(1, nc) * class_counts).sum(1) + # index = random.choices(range(n), weights=image_weights, k=1) # weight image sample + return image_weights + + +def coco80_to_coco91_class(): # converts 80-index (val2014) to 91-index (paper) + # https://tech.amikelive.com/node-718/what-object-categories-labels-are-in-coco-dataset/ + # a = np.loadtxt('data/coco.names', dtype='str', delimiter='\n') + # b = np.loadtxt('data/coco_paper.names', dtype='str', delimiter='\n') + # x1 = [list(a[i] == b).index(True) + 1 for i in range(80)] # darknet to coco + # x2 = [list(b[i] == a).index(True) if any(b[i] == a) else None for i in range(91)] # coco to darknet + x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 67, 70, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 84, 85, 86, 87, 88, 89, 90] + return x + + +def xyxy2xywh(x): + # Convert nx4 boxes from [x1, y1, x2, y2] to [x, y, w, h] where xy1=top-left, xy2=bottom-right + y = x.clone() if isinstance(x, torch.Tensor) else np.copy(x) + y[:, 0] = (x[:, 0] + x[:, 2]) / 2 # x center + y[:, 1] = (x[:, 1] + x[:, 3]) / 2 # y center + y[:, 2] = x[:, 2] - x[:, 0] # width + y[:, 3] = x[:, 3] - x[:, 1] # height + return y + + +def xywh2xyxy(x): + # Convert nx4 boxes from [x, y, w, h] to [x1, y1, x2, y2] where xy1=top-left, xy2=bottom-right + y = x.clone() if isinstance(x, torch.Tensor) else np.copy(x) + y[:, 0] = x[:, 0] - x[:, 2] / 2 # top left x + y[:, 1] = x[:, 1] - x[:, 3] / 2 # top left y + y[:, 2] = x[:, 0] + x[:, 2] / 2 # bottom right x + y[:, 3] = x[:, 1] + x[:, 3] / 2 # bottom right y + return y + + +def xywhn2xyxy(x, w=640, h=640, padw=0, padh=0): + # Convert nx4 boxes from [x, y, w, h] normalized to [x1, y1, x2, y2] where xy1=top-left, xy2=bottom-right + y = x.clone() if isinstance(x, torch.Tensor) else np.copy(x) + y[:, 0] = w * (x[:, 0] - x[:, 2] / 2) + padw # top left x + y[:, 1] = h * (x[:, 1] - x[:, 3] / 2) + padh # top left y + y[:, 2] = w * (x[:, 0] + x[:, 2] / 2) + padw # bottom right x + y[:, 3] = h * (x[:, 1] + x[:, 3] / 2) + padh # bottom right y + return y + + +def xyn2xy(x, w=640, h=640, padw=0, padh=0): + # Convert normalized segments into pixel segments, shape (n,2) + y = x.clone() if isinstance(x, torch.Tensor) else np.copy(x) + y[:, 0] = w * x[:, 0] + padw # top left x + y[:, 1] = h * x[:, 1] + padh # top left y + return y + + +def segment2box(segment, width=640, height=640): + # Convert 1 segment label to 1 box label, applying inside-image constraint, i.e. (xy1, xy2, ...) to (xyxy) + x, y = segment.T # segment xy + inside = (x >= 0) & (y >= 0) & (x <= width) & (y <= height) + x, y, = x[inside], y[inside] + return np.array([x.min(), y.min(), x.max(), y.max()]) if any(x) else np.zeros((1, 4)) # xyxy + + +def segments2boxes(segments): + # Convert segment labels to box labels, i.e. (cls, xy1, xy2, ...) to (cls, xywh) + boxes = [] + for s in segments: + x, y = s.T # segment xy + boxes.append([x.min(), y.min(), x.max(), y.max()]) # cls, xyxy + return xyxy2xywh(np.array(boxes)) # cls, xywh + + +def resample_segments(segments, n=1000): + # Up-sample an (n,2) segment + for i, s in enumerate(segments): + x = np.linspace(0, len(s) - 1, n) + xp = np.arange(len(s)) + segments[i] = np.concatenate([np.interp(x, xp, s[:, i]) for i in range(2)]).reshape(2, -1).T # segment xy + return segments + + +def scale_coords(img1_shape, coords, img0_shape, ratio_pad=None): + # Rescale coords (xyxy) from img1_shape to img0_shape + if ratio_pad is None: # calculate from img0_shape + gain = min(img1_shape[0] / img0_shape[0], img1_shape[1] / img0_shape[1]) # gain = old / new + pad = (img1_shape[1] - img0_shape[1] * gain) / 2, (img1_shape[0] - img0_shape[0] * gain) / 2 # wh padding + else: + gain = ratio_pad[0][0] + pad = ratio_pad[1] + + coords[:, [0, 2]] -= pad[0] # x padding + coords[:, [1, 3]] -= pad[1] # y padding + coords[:, :4] /= gain + clip_coords(coords, img0_shape) + return coords + + +def clip_coords(boxes, img_shape): + # Clip bounding xyxy bounding boxes to image shape (height, width) + boxes[:, 0].clamp_(0, img_shape[1]) # x1 + boxes[:, 1].clamp_(0, img_shape[0]) # y1 + boxes[:, 2].clamp_(0, img_shape[1]) # x2 + boxes[:, 3].clamp_(0, img_shape[0]) # y2 + + +def bbox_iou(box1, box2, x1y1x2y2=True, GIoU=False, DIoU=False, CIoU=False, eps=1e-7): + # Returns the IoU of box1 to box2. box1 is 4, box2 is nx4 + box2 = box2.T + + # Get the coordinates of bounding boxes + if x1y1x2y2: # x1, y1, x2, y2 = box1 + b1_x1, b1_y1, b1_x2, b1_y2 = box1[0], box1[1], box1[2], box1[3] + b2_x1, b2_y1, b2_x2, b2_y2 = box2[0], box2[1], box2[2], box2[3] + else: # transform from xywh to xyxy + b1_x1, b1_x2 = box1[0] - box1[2] / 2, box1[0] + box1[2] / 2 + b1_y1, b1_y2 = box1[1] - box1[3] / 2, box1[1] + box1[3] / 2 + b2_x1, b2_x2 = box2[0] - box2[2] / 2, box2[0] + box2[2] / 2 + b2_y1, b2_y2 = box2[1] - box2[3] / 2, box2[1] + box2[3] / 2 + + # Intersection area + inter = (torch.min(b1_x2, b2_x2) - torch.max(b1_x1, b2_x1)).clamp(0) * \ + (torch.min(b1_y2, b2_y2) - torch.max(b1_y1, b2_y1)).clamp(0) + + # Union Area + w1, h1 = b1_x2 - b1_x1, b1_y2 - b1_y1 + eps + w2, h2 = b2_x2 - b2_x1, b2_y2 - b2_y1 + eps + union = w1 * h1 + w2 * h2 - inter + eps + + iou = inter / union + + if GIoU or DIoU or CIoU: + cw = torch.max(b1_x2, b2_x2) - torch.min(b1_x1, b2_x1) # convex (smallest enclosing box) width + ch = torch.max(b1_y2, b2_y2) - torch.min(b1_y1, b2_y1) # convex height + if CIoU or DIoU: # Distance or Complete IoU https://arxiv.org/abs/1911.08287v1 + c2 = cw ** 2 + ch ** 2 + eps # convex diagonal squared + rho2 = ((b2_x1 + b2_x2 - b1_x1 - b1_x2) ** 2 + + (b2_y1 + b2_y2 - b1_y1 - b1_y2) ** 2) / 4 # center distance squared + if DIoU: + return iou - rho2 / c2 # DIoU + elif CIoU: # https://github.com/Zzh-tju/DIoU-SSD-pytorch/blob/master/utils/box/box_utils.py#L47 + v = (4 / math.pi ** 2) * torch.pow(torch.atan(w2 / (h2 + eps)) - torch.atan(w1 / (h1 + eps)), 2) + with torch.no_grad(): + alpha = v / (v - iou + (1 + eps)) + return iou - (rho2 / c2 + v * alpha) # CIoU + else: # GIoU https://arxiv.org/pdf/1902.09630.pdf + c_area = cw * ch + eps # convex area + return iou - (c_area - union) / c_area # GIoU + else: + return iou # IoU + + + + +def bbox_alpha_iou(box1, box2, x1y1x2y2=False, GIoU=False, DIoU=False, CIoU=False, alpha=2, eps=1e-9): + # Returns tsqrt_he IoU of box1 to box2. box1 is 4, box2 is nx4 + box2 = box2.T + + # Get the coordinates of bounding boxes + if x1y1x2y2: # x1, y1, x2, y2 = box1 + b1_x1, b1_y1, b1_x2, b1_y2 = box1[0], box1[1], box1[2], box1[3] + b2_x1, b2_y1, b2_x2, b2_y2 = box2[0], box2[1], box2[2], box2[3] + else: # transform from xywh to xyxy + b1_x1, b1_x2 = box1[0] - box1[2] / 2, box1[0] + box1[2] / 2 + b1_y1, b1_y2 = box1[1] - box1[3] / 2, box1[1] + box1[3] / 2 + b2_x1, b2_x2 = box2[0] - box2[2] / 2, box2[0] + box2[2] / 2 + b2_y1, b2_y2 = box2[1] - box2[3] / 2, box2[1] + box2[3] / 2 + + # Intersection area + inter = (torch.min(b1_x2, b2_x2) - torch.max(b1_x1, b2_x1)).clamp(0) * \ + (torch.min(b1_y2, b2_y2) - torch.max(b1_y1, b2_y1)).clamp(0) + + # Union Area + w1, h1 = b1_x2 - b1_x1, b1_y2 - b1_y1 + eps + w2, h2 = b2_x2 - b2_x1, b2_y2 - b2_y1 + eps + union = w1 * h1 + w2 * h2 - inter + eps + + # change iou into pow(iou+eps) + # iou = inter / union + iou = torch.pow(inter/union + eps, alpha) + # beta = 2 * alpha + if GIoU or DIoU or CIoU: + cw = torch.max(b1_x2, b2_x2) - torch.min(b1_x1, b2_x1) # convex (smallest enclosing box) width + ch = torch.max(b1_y2, b2_y2) - torch.min(b1_y1, b2_y1) # convex height + if CIoU or DIoU: # Distance or Complete IoU https://arxiv.org/abs/1911.08287v1 + c2 = (cw ** 2 + ch ** 2) ** alpha + eps # convex diagonal + rho_x = torch.abs(b2_x1 + b2_x2 - b1_x1 - b1_x2) + rho_y = torch.abs(b2_y1 + b2_y2 - b1_y1 - b1_y2) + rho2 = ((rho_x ** 2 + rho_y ** 2) / 4) ** alpha # center distance + if DIoU: + return iou - rho2 / c2 # DIoU + elif CIoU: # https://github.com/Zzh-tju/DIoU-SSD-pytorch/blob/master/utils/box/box_utils.py#L47 + v = (4 / math.pi ** 2) * torch.pow(torch.atan(w2 / h2) - torch.atan(w1 / h1), 2) + with torch.no_grad(): + alpha_ciou = v / ((1 + eps) - inter / union + v) + # return iou - (rho2 / c2 + v * alpha_ciou) # CIoU + return iou - (rho2 / c2 + torch.pow(v * alpha_ciou + eps, alpha)) # CIoU + else: # GIoU https://arxiv.org/pdf/1902.09630.pdf + # c_area = cw * ch + eps # convex area + # return iou - (c_area - union) / c_area # GIoU + c_area = torch.max(cw * ch + eps, union) # convex area + return iou - torch.pow((c_area - union) / c_area + eps, alpha) # GIoU + else: + return iou # torch.log(iou+eps) or iou + + +def box_iou(box1, box2): + # https://github.com/pytorch/vision/blob/master/torchvision/ops/boxes.py + """ + Return intersection-over-union (Jaccard index) of boxes. + Both sets of boxes are expected to be in (x1, y1, x2, y2) format. + Arguments: + box1 (Tensor[N, 4]) + box2 (Tensor[M, 4]) + Returns: + iou (Tensor[N, M]): the NxM matrix containing the pairwise + IoU values for every element in boxes1 and boxes2 + """ + + def box_area(box): + # box = 4xn + return (box[2] - box[0]) * (box[3] - box[1]) + + area1 = box_area(box1.T) + area2 = box_area(box2.T) + + # inter(N,M) = (rb(N,M,2) - lt(N,M,2)).clamp(0).prod(2) + inter = (torch.min(box1[:, None, 2:], box2[:, 2:]) - torch.max(box1[:, None, :2], box2[:, :2])).clamp(0).prod(2) + return inter / (area1[:, None] + area2 - inter) # iou = inter / (area1 + area2 - inter) + + +def wh_iou(wh1, wh2): + # Returns the nxm IoU matrix. wh1 is nx2, wh2 is mx2 + wh1 = wh1[:, None] # [N,1,2] + wh2 = wh2[None] # [1,M,2] + inter = torch.min(wh1, wh2).prod(2) # [N,M] + return inter / (wh1.prod(2) + wh2.prod(2) - inter) # iou = inter / (area1 + area2 - inter) + + +def box_giou(box1, box2): + """ + Return generalized intersection-over-union (Jaccard index) between two sets of boxes. + Both sets of boxes are expected to be in ``(x1, y1, x2, y2)`` format with + ``0 <= x1 < x2`` and ``0 <= y1 < y2``. + Args: + boxes1 (Tensor[N, 4]): first set of boxes + boxes2 (Tensor[M, 4]): second set of boxes + Returns: + Tensor[N, M]: the NxM matrix containing the pairwise generalized IoU values + for every element in boxes1 and boxes2 + """ + + def box_area(box): + # box = 4xn + return (box[2] - box[0]) * (box[3] - box[1]) + + area1 = box_area(box1.T) + area2 = box_area(box2.T) + + inter = (torch.min(box1[:, None, 2:], box2[:, 2:]) - torch.max(box1[:, None, :2], box2[:, :2])).clamp(0).prod(2) + union = (area1[:, None] + area2 - inter) + + iou = inter / union + + lti = torch.min(box1[:, None, :2], box2[:, :2]) + rbi = torch.max(box1[:, None, 2:], box2[:, 2:]) + + whi = (rbi - lti).clamp(min=0) # [N,M,2] + areai = whi[:, :, 0] * whi[:, :, 1] + + return iou - (areai - union) / areai + + +def box_ciou(box1, box2, eps: float = 1e-7): + """ + Return complete intersection-over-union (Jaccard index) between two sets of boxes. + Both sets of boxes are expected to be in ``(x1, y1, x2, y2)`` format with + ``0 <= x1 < x2`` and ``0 <= y1 < y2``. + Args: + boxes1 (Tensor[N, 4]): first set of boxes + boxes2 (Tensor[M, 4]): second set of boxes + eps (float, optional): small number to prevent division by zero. Default: 1e-7 + Returns: + Tensor[N, M]: the NxM matrix containing the pairwise complete IoU values + for every element in boxes1 and boxes2 + """ + + def box_area(box): + # box = 4xn + return (box[2] - box[0]) * (box[3] - box[1]) + + area1 = box_area(box1.T) + area2 = box_area(box2.T) + + inter = (torch.min(box1[:, None, 2:], box2[:, 2:]) - torch.max(box1[:, None, :2], box2[:, :2])).clamp(0).prod(2) + union = (area1[:, None] + area2 - inter) + + iou = inter / union + + lti = torch.min(box1[:, None, :2], box2[:, :2]) + rbi = torch.max(box1[:, None, 2:], box2[:, 2:]) + + whi = (rbi - lti).clamp(min=0) # [N,M,2] + diagonal_distance_squared = (whi[:, :, 0] ** 2) + (whi[:, :, 1] ** 2) + eps + + # centers of boxes + x_p = (box1[:, None, 0] + box1[:, None, 2]) / 2 + y_p = (box1[:, None, 1] + box1[:, None, 3]) / 2 + x_g = (box2[:, 0] + box2[:, 2]) / 2 + y_g = (box2[:, 1] + box2[:, 3]) / 2 + # The distance between boxes' centers squared. + centers_distance_squared = (x_p - x_g) ** 2 + (y_p - y_g) ** 2 + + w_pred = box1[:, None, 2] - box1[:, None, 0] + h_pred = box1[:, None, 3] - box1[:, None, 1] + + w_gt = box2[:, 2] - box2[:, 0] + h_gt = box2[:, 3] - box2[:, 1] + + v = (4 / (torch.pi ** 2)) * torch.pow((torch.atan(w_gt / h_gt) - torch.atan(w_pred / h_pred)), 2) + with torch.no_grad(): + alpha = v / (1 - iou + v + eps) + return iou - (centers_distance_squared / diagonal_distance_squared) - alpha * v + + +def box_diou(box1, box2, eps: float = 1e-7): + """ + Return distance intersection-over-union (Jaccard index) between two sets of boxes. + Both sets of boxes are expected to be in ``(x1, y1, x2, y2)`` format with + ``0 <= x1 < x2`` and ``0 <= y1 < y2``. + Args: + boxes1 (Tensor[N, 4]): first set of boxes + boxes2 (Tensor[M, 4]): second set of boxes + eps (float, optional): small number to prevent division by zero. Default: 1e-7 + Returns: + Tensor[N, M]: the NxM matrix containing the pairwise distance IoU values + for every element in boxes1 and boxes2 + """ + + def box_area(box): + # box = 4xn + return (box[2] - box[0]) * (box[3] - box[1]) + + area1 = box_area(box1.T) + area2 = box_area(box2.T) + + inter = (torch.min(box1[:, None, 2:], box2[:, 2:]) - torch.max(box1[:, None, :2], box2[:, :2])).clamp(0).prod(2) + union = (area1[:, None] + area2 - inter) + + iou = inter / union + + lti = torch.min(box1[:, None, :2], box2[:, :2]) + rbi = torch.max(box1[:, None, 2:], box2[:, 2:]) + + whi = (rbi - lti).clamp(min=0) # [N,M,2] + diagonal_distance_squared = (whi[:, :, 0] ** 2) + (whi[:, :, 1] ** 2) + eps + + # centers of boxes + x_p = (box1[:, None, 0] + box1[:, None, 2]) / 2 + y_p = (box1[:, None, 1] + box1[:, None, 3]) / 2 + x_g = (box2[:, 0] + box2[:, 2]) / 2 + y_g = (box2[:, 1] + box2[:, 3]) / 2 + # The distance between boxes' centers squared. + centers_distance_squared = (x_p - x_g) ** 2 + (y_p - y_g) ** 2 + + # The distance IoU is the IoU penalized by a normalized + # distance between boxes' centers squared. + return iou - (centers_distance_squared / diagonal_distance_squared) + + +def non_max_suppression(prediction, conf_thres=0.25, iou_thres=0.45, classes=None, agnostic=False, multi_label=False, + labels=()): + """Runs Non-Maximum Suppression (NMS) on inference results + + Returns: + list of detections, on (n,6) tensor per image [xyxy, conf, cls] + """ + + nc = prediction.shape[2] - 5 # number of classes + xc = prediction[..., 4] > conf_thres # candidates + + # Settings + min_wh, max_wh = 2, 4096 # (pixels) minimum and maximum box width and height + max_det = 300 # maximum number of detections per image + max_nms = 30000 # maximum number of boxes into torchvision.ops.nms() + time_limit = 10.0 # seconds to quit after + redundant = True # require redundant detections + multi_label &= nc > 1 # multiple labels per box (adds 0.5ms/img) + merge = False # use merge-NMS + + t = time.time() + output = [torch.zeros((0, 6), device=prediction.device)] * prediction.shape[0] + for xi, x in enumerate(prediction): # image index, image inference + # Apply constraints + # x[((x[..., 2:4] < min_wh) | (x[..., 2:4] > max_wh)).any(1), 4] = 0 # width-height + x = x[xc[xi]] # confidence + + # Cat apriori labels if autolabelling + if labels and len(labels[xi]): + l = labels[xi] + v = torch.zeros((len(l), nc + 5), device=x.device) + v[:, :4] = l[:, 1:5] # box + v[:, 4] = 1.0 # conf + v[range(len(l)), l[:, 0].long() + 5] = 1.0 # cls + x = torch.cat((x, v), 0) + + # If none remain process next image + if not x.shape[0]: + continue + + # Compute conf + if nc == 1: + x[:, 5:] = x[:, 4:5] # for models with one class, cls_loss is 0 and cls_conf is always 0.5, + # so there is no need to multiplicate. + else: + x[:, 5:] *= x[:, 4:5] # conf = obj_conf * cls_conf + + # Box (center x, center y, width, height) to (x1, y1, x2, y2) + box = xywh2xyxy(x[:, :4]) + + # Detections matrix nx6 (xyxy, conf, cls) + if multi_label: + i, j = (x[:, 5:] > conf_thres).nonzero(as_tuple=False).T + x = torch.cat((box[i], x[i, j + 5, None], j[:, None].float()), 1) + else: # best class only + conf, j = x[:, 5:].max(1, keepdim=True) + x = torch.cat((box, conf, j.float()), 1)[conf.view(-1) > conf_thres] + + # Filter by class + if classes is not None: + x = x[(x[:, 5:6] == torch.tensor(classes, device=x.device)).any(1)] + + # Apply finite constraint + # if not torch.isfinite(x).all(): + # x = x[torch.isfinite(x).all(1)] + + # Check shape + n = x.shape[0] # number of boxes + if not n: # no boxes + continue + elif n > max_nms: # excess boxes + x = x[x[:, 4].argsort(descending=True)[:max_nms]] # sort by confidence + + # Batched NMS + c = x[:, 5:6] * (0 if agnostic else max_wh) # classes + boxes, scores = x[:, :4] + c, x[:, 4] # boxes (offset by class), scores + i = torchvision.ops.nms(boxes, scores, iou_thres) # NMS + if i.shape[0] > max_det: # limit detections + i = i[:max_det] + if merge and (1 < n < 3E3): # Merge NMS (boxes merged using weighted mean) + # update boxes as boxes(i,4) = weights(i,n) * boxes(n,4) + iou = box_iou(boxes[i], boxes) > iou_thres # iou matrix + weights = iou * scores[None] # box weights + x[i, :4] = torch.mm(weights, x[:, :4]).float() / weights.sum(1, keepdim=True) # merged boxes + if redundant: + i = i[iou.sum(1) > 1] # require redundancy + + output[xi] = x[i] + if (time.time() - t) > time_limit: + print(f'WARNING: NMS time limit {time_limit}s exceeded') + break # time limit exceeded + + return output + + +def non_max_suppression_kpt(prediction, conf_thres=0.25, iou_thres=0.45, classes=None, agnostic=False, multi_label=False, + labels=(), kpt_label=False, nc=None, nkpt=None): + """Runs Non-Maximum Suppression (NMS) on inference results + + Returns: + list of detections, on (n,6) tensor per image [xyxy, conf, cls] + """ + if nc is None: + nc = prediction.shape[2] - 5 if not kpt_label else prediction.shape[2] - 56 # number of classes + xc = prediction[..., 4] > conf_thres # candidates + + # Settings + min_wh, max_wh = 2, 4096 # (pixels) minimum and maximum box width and height + max_det = 300 # maximum number of detections per image + max_nms = 30000 # maximum number of boxes into torchvision.ops.nms() + time_limit = 10.0 # seconds to quit after + redundant = True # require redundant detections + multi_label &= nc > 1 # multiple labels per box (adds 0.5ms/img) + merge = False # use merge-NMS + + t = time.time() + output = [torch.zeros((0,6), device=prediction.device)] * prediction.shape[0] + for xi, x in enumerate(prediction): # image index, image inference + # Apply constraints + # x[((x[..., 2:4] < min_wh) | (x[..., 2:4] > max_wh)).any(1), 4] = 0 # width-height + x = x[xc[xi]] # confidence + + # Cat apriori labels if autolabelling + if labels and len(labels[xi]): + l = labels[xi] + v = torch.zeros((len(l), nc + 5), device=x.device) + v[:, :4] = l[:, 1:5] # box + v[:, 4] = 1.0 # conf + v[range(len(l)), l[:, 0].long() + 5] = 1.0 # cls + x = torch.cat((x, v), 0) + + # If none remain process next image + if not x.shape[0]: + continue + + # Compute conf + x[:, 5:5+nc] *= x[:, 4:5] # conf = obj_conf * cls_conf + + # Box (center x, center y, width, height) to (x1, y1, x2, y2) + box = xywh2xyxy(x[:, :4]) + + # Detections matrix nx6 (xyxy, conf, cls) + if multi_label: + i, j = (x[:, 5:] > conf_thres).nonzero(as_tuple=False).T + x = torch.cat((box[i], x[i, j + 5, None], j[:, None].float()), 1) + else: # best class only + if not kpt_label: + conf, j = x[:, 5:].max(1, keepdim=True) + x = torch.cat((box, conf, j.float()), 1)[conf.view(-1) > conf_thres] + else: + kpts = x[:, 6:] + conf, j = x[:, 5:6].max(1, keepdim=True) + x = torch.cat((box, conf, j.float(), kpts), 1)[conf.view(-1) > conf_thres] + + + # Filter by class + if classes is not None: + x = x[(x[:, 5:6] == torch.tensor(classes, device=x.device)).any(1)] + + # Apply finite constraint + # if not torch.isfinite(x).all(): + # x = x[torch.isfinite(x).all(1)] + + # Check shape + n = x.shape[0] # number of boxes + if not n: # no boxes + continue + elif n > max_nms: # excess boxes + x = x[x[:, 4].argsort(descending=True)[:max_nms]] # sort by confidence + + # Batched NMS + c = x[:, 5:6] * (0 if agnostic else max_wh) # classes + boxes, scores = x[:, :4] + c, x[:, 4] # boxes (offset by class), scores + i = torchvision.ops.nms(boxes, scores, iou_thres) # NMS + if i.shape[0] > max_det: # limit detections + i = i[:max_det] + if merge and (1 < n < 3E3): # Merge NMS (boxes merged using weighted mean) + # update boxes as boxes(i,4) = weights(i,n) * boxes(n,4) + iou = box_iou(boxes[i], boxes) > iou_thres # iou matrix + weights = iou * scores[None] # box weights + x[i, :4] = torch.mm(weights, x[:, :4]).float() / weights.sum(1, keepdim=True) # merged boxes + if redundant: + i = i[iou.sum(1) > 1] # require redundancy + + output[xi] = x[i] + if (time.time() - t) > time_limit: + print(f'WARNING: NMS time limit {time_limit}s exceeded') + break # time limit exceeded + + return output + + +def strip_optimizer(f='best.pt', s=''): # from utils.general import *; strip_optimizer() + # Strip optimizer from 'f' to finalize training, optionally save as 's' + x = torch.load(f, map_location=torch.device('cpu')) + if x.get('ema'): + x['model'] = x['ema'] # replace model with ema + for k in 'optimizer', 'training_results', 'wandb_id', 'ema', 'updates': # keys + x[k] = None + x['epoch'] = -1 + x['model'].half() # to FP16 + for p in x['model'].parameters(): + p.requires_grad = False + torch.save(x, s or f) + mb = os.path.getsize(s or f) / 1E6 # filesize + print(f"Optimizer stripped from {f},{(' saved as %s,' % s) if s else ''} {mb:.1f}MB") + + +def print_mutation(hyp, results, yaml_file='hyp_evolved.yaml', bucket=''): + # Print mutation results to evolve.txt (for use with train.py --evolve) + a = '%10s' * len(hyp) % tuple(hyp.keys()) # hyperparam keys + b = '%10.3g' * len(hyp) % tuple(hyp.values()) # hyperparam values + c = '%10.4g' * len(results) % results # results (P, R, mAP@0.5, mAP@0.5:0.95, val_losses x 3) + print('\n%s\n%s\nEvolved fitness: %s\n' % (a, b, c)) + + if bucket: + url = 'gs://%s/evolve.txt' % bucket + if gsutil_getsize(url) > (os.path.getsize('evolve.txt') if os.path.exists('evolve.txt') else 0): + os.system('gsutil cp %s .' % url) # download evolve.txt if larger than local + + with open('evolve.txt', 'a') as f: # append result + f.write(c + b + '\n') + x = np.unique(np.loadtxt('evolve.txt', ndmin=2), axis=0) # load unique rows + x = x[np.argsort(-fitness(x))] # sort + np.savetxt('evolve.txt', x, '%10.3g') # save sort by fitness + + # Save yaml + for i, k in enumerate(hyp.keys()): + hyp[k] = float(x[0, i + 7]) + with open(yaml_file, 'w') as f: + results = tuple(x[0, :7]) + c = '%10.4g' * len(results) % results # results (P, R, mAP@0.5, mAP@0.5:0.95, val_losses x 3) + f.write('# Hyperparameter Evolution Results\n# Generations: %g\n# Metrics: ' % len(x) + c + '\n\n') + yaml.dump(hyp, f, sort_keys=False) + + if bucket: + os.system('gsutil cp evolve.txt %s gs://%s' % (yaml_file, bucket)) # upload + + +def apply_classifier(x, model, img, im0): + # applies a second stage classifier to yolo outputs + im0 = [im0] if isinstance(im0, np.ndarray) else im0 + for i, d in enumerate(x): # per image + if d is not None and len(d): + d = d.clone() + + # Reshape and pad cutouts + b = xyxy2xywh(d[:, :4]) # boxes + b[:, 2:] = b[:, 2:].max(1)[0].unsqueeze(1) # rectangle to square + b[:, 2:] = b[:, 2:] * 1.3 + 30 # pad + d[:, :4] = xywh2xyxy(b).long() + + # Rescale boxes from img_size to im0 size + scale_coords(img.shape[2:], d[:, :4], im0[i].shape) + + # Classes + pred_cls1 = d[:, 5].long() + ims = [] + for j, a in enumerate(d): # per item + cutout = im0[i][int(a[1]):int(a[3]), int(a[0]):int(a[2])] + im = cv2.resize(cutout, (224, 224)) # BGR + # cv2.imwrite('test%i.jpg' % j, cutout) + + im = im[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB, to 3x416x416 + im = np.ascontiguousarray(im, dtype=np.float32) # uint8 to float32 + im /= 255.0 # 0 - 255 to 0.0 - 1.0 + ims.append(im) + + pred_cls2 = model(torch.Tensor(ims).to(d.device)).argmax(1) # classifier prediction + x[i] = x[i][pred_cls1 == pred_cls2] # retain matching class detections + + return x + + +def increment_path(path, exist_ok=True, sep=''): + # Increment path, i.e. runs/exp --> runs/exp{sep}0, runs/exp{sep}1 etc. + path = Path(path) # os-agnostic + if (path.exists() and exist_ok) or (not path.exists()): + return str(path) + else: + dirs = glob.glob(f"{path}{sep}*") # similar paths + matches = [re.search(rf"%s{sep}(\d+)" % path.stem, d) for d in dirs] + i = [int(m.groups()[0]) for m in matches if m] # indices + n = max(i) + 1 if i else 2 # increment number + return f"{path}{sep}{n}" # update path diff --git a/utils/google_app_engine/Dockerfile b/utils/google_app_engine/Dockerfile new file mode 100644 index 0000000..0155618 --- /dev/null +++ b/utils/google_app_engine/Dockerfile @@ -0,0 +1,25 @@ +FROM gcr.io/google-appengine/python + +# Create a virtualenv for dependencies. This isolates these packages from +# system-level packages. +# Use -p python3 or -p python3.7 to select python version. Default is version 2. +RUN virtualenv /env -p python3 + +# Setting these environment variables are the same as running +# source /env/bin/activate. +ENV VIRTUAL_ENV /env +ENV PATH /env/bin:$PATH + +RUN apt-get update && apt-get install -y python-opencv + +# Copy the application's requirements.txt and run pip to install all +# dependencies into the virtualenv. +ADD requirements.txt /app/requirements.txt +RUN pip install -r /app/requirements.txt + +# Add the application source code. +ADD . /app + +# Run a WSGI server to serve the application. gunicorn must be declared as +# a dependency in requirements.txt. +CMD gunicorn -b :$PORT main:app diff --git a/utils/google_app_engine/additional_requirements.txt b/utils/google_app_engine/additional_requirements.txt new file mode 100644 index 0000000..5fcc305 --- /dev/null +++ b/utils/google_app_engine/additional_requirements.txt @@ -0,0 +1,4 @@ +# add these requirements in your app on top of the existing ones +pip==18.1 +Flask==1.0.2 +gunicorn==19.9.0 diff --git a/utils/google_app_engine/app.yaml b/utils/google_app_engine/app.yaml new file mode 100644 index 0000000..69b8f68 --- /dev/null +++ b/utils/google_app_engine/app.yaml @@ -0,0 +1,14 @@ +runtime: custom +env: flex + +service: yolorapp + +liveness_check: + initial_delay_sec: 600 + +manual_scaling: + instances: 1 +resources: + cpu: 1 + memory_gb: 4 + disk_size_gb: 20 \ No newline at end of file diff --git a/utils/google_utils.py b/utils/google_utils.py new file mode 100644 index 0000000..f363408 --- /dev/null +++ b/utils/google_utils.py @@ -0,0 +1,123 @@ +# Google utils: https://cloud.google.com/storage/docs/reference/libraries + +import os +import platform +import subprocess +import time +from pathlib import Path + +import requests +import torch + + +def gsutil_getsize(url=''): + # gs://bucket/file size https://cloud.google.com/storage/docs/gsutil/commands/du + s = subprocess.check_output(f'gsutil du {url}', shell=True).decode('utf-8') + return eval(s.split(' ')[0]) if len(s) else 0 # bytes + + +def attempt_download(file, repo='WongKinYiu/yolov7'): + # Attempt file download if does not exist + file = Path(str(file).strip().replace("'", '').lower()) + + if not file.exists(): + try: + response = requests.get(f'https://api.github.com/repos/{repo}/releases/latest').json() # github api + assets = [x['name'] for x in response['assets']] # release assets + tag = response['tag_name'] # i.e. 'v1.0' + except: # fallback plan + assets = ['yolov7.pt', 'yolov7-tiny.pt', 'yolov7x.pt', 'yolov7-d6.pt', 'yolov7-e6.pt', + 'yolov7-e6e.pt', 'yolov7-w6.pt'] + tag = subprocess.check_output('git tag', shell=True).decode().split()[-1] + + name = file.name + if name in assets: + msg = f'{file} missing, try downloading from https://github.com/{repo}/releases/' + redundant = False # second download option + try: # GitHub + url = f'https://github.com/{repo}/releases/download/{tag}/{name}' + print(f'Downloading {url} to {file}...') + torch.hub.download_url_to_file(url, file) + assert file.exists() and file.stat().st_size > 1E6 # check + except Exception as e: # GCP + print(f'Download error: {e}') + assert redundant, 'No secondary mirror' + url = f'https://storage.googleapis.com/{repo}/ckpt/{name}' + print(f'Downloading {url} to {file}...') + os.system(f'curl -L {url} -o {file}') # torch.hub.download_url_to_file(url, weights) + finally: + if not file.exists() or file.stat().st_size < 1E6: # check + file.unlink(missing_ok=True) # remove partial downloads + print(f'ERROR: Download failure: {msg}') + print('') + return + + +def gdrive_download(id='', file='tmp.zip'): + # Downloads a file from Google Drive. from yolov7.utils.google_utils import *; gdrive_download() + t = time.time() + file = Path(file) + cookie = Path('cookie') # gdrive cookie + print(f'Downloading https://drive.google.com/uc?export=download&id={id} as {file}... ', end='') + file.unlink(missing_ok=True) # remove existing file + cookie.unlink(missing_ok=True) # remove existing cookie + + # Attempt file download + out = "NUL" if platform.system() == "Windows" else "/dev/null" + os.system(f'curl -c ./cookie -s -L "drive.google.com/uc?export=download&id={id}" > {out}') + if os.path.exists('cookie'): # large file + s = f'curl -Lb ./cookie "drive.google.com/uc?export=download&confirm={get_token()}&id={id}" -o {file}' + else: # small file + s = f'curl -s -L -o {file} "drive.google.com/uc?export=download&id={id}"' + r = os.system(s) # execute, capture return + cookie.unlink(missing_ok=True) # remove existing cookie + + # Error check + if r != 0: + file.unlink(missing_ok=True) # remove partial + print('Download error ') # raise Exception('Download error') + return r + + # Unzip if archive + if file.suffix == '.zip': + print('unzipping... ', end='') + os.system(f'unzip -q {file}') # unzip + file.unlink() # remove zip to free space + + print(f'Done ({time.time() - t:.1f}s)') + return r + + +def get_token(cookie="./cookie"): + with open(cookie) as f: + for line in f: + if "download" in line: + return line.split()[-1] + return "" + +# def upload_blob(bucket_name, source_file_name, destination_blob_name): +# # Uploads a file to a bucket +# # https://cloud.google.com/storage/docs/uploading-objects#storage-upload-object-python +# +# storage_client = storage.Client() +# bucket = storage_client.get_bucket(bucket_name) +# blob = bucket.blob(destination_blob_name) +# +# blob.upload_from_filename(source_file_name) +# +# print('File {} uploaded to {}.'.format( +# source_file_name, +# destination_blob_name)) +# +# +# def download_blob(bucket_name, source_blob_name, destination_file_name): +# # Uploads a blob from a bucket +# storage_client = storage.Client() +# bucket = storage_client.get_bucket(bucket_name) +# blob = bucket.blob(source_blob_name) +# +# blob.download_to_filename(destination_file_name) +# +# print('Blob {} downloaded to {}.'.format( +# source_blob_name, +# destination_file_name)) diff --git a/utils/loss.py b/utils/loss.py new file mode 100644 index 0000000..bf7ab65 --- /dev/null +++ b/utils/loss.py @@ -0,0 +1,1697 @@ +# Loss functions + +import torch +import torch.nn as nn +import torch.nn.functional as F + +from utils.general import bbox_iou, bbox_alpha_iou, box_iou, box_giou, box_diou, box_ciou, xywh2xyxy +from utils.torch_utils import is_parallel + + +def smooth_BCE(eps=0.1): # https://github.com/ultralytics/yolov3/issues/238#issuecomment-598028441 + # return positive, negative label smoothing BCE targets + return 1.0 - 0.5 * eps, 0.5 * eps + + +class BCEBlurWithLogitsLoss(nn.Module): + # BCEwithLogitLoss() with reduced missing label effects. + def __init__(self, alpha=0.05): + super(BCEBlurWithLogitsLoss, self).__init__() + self.loss_fcn = nn.BCEWithLogitsLoss(reduction='none') # must be nn.BCEWithLogitsLoss() + self.alpha = alpha + + def forward(self, pred, true): + loss = self.loss_fcn(pred, true) + pred = torch.sigmoid(pred) # prob from logits + dx = pred - true # reduce only missing label effects + # dx = (pred - true).abs() # reduce missing label and false label effects + alpha_factor = 1 - torch.exp((dx - 1) / (self.alpha + 1e-4)) + loss *= alpha_factor + return loss.mean() + + +class SigmoidBin(nn.Module): + stride = None # strides computed during build + export = False # onnx export + + def __init__(self, bin_count=10, min=0.0, max=1.0, reg_scale = 2.0, use_loss_regression=True, use_fw_regression=True, BCE_weight=1.0, smooth_eps=0.0): + super(SigmoidBin, self).__init__() + + self.bin_count = bin_count + self.length = bin_count + 1 + self.min = min + self.max = max + self.scale = float(max - min) + self.shift = self.scale / 2.0 + + self.use_loss_regression = use_loss_regression + self.use_fw_regression = use_fw_regression + self.reg_scale = reg_scale + self.BCE_weight = BCE_weight + + start = min + (self.scale/2.0) / self.bin_count + end = max - (self.scale/2.0) / self.bin_count + step = self.scale / self.bin_count + self.step = step + #print(f" start = {start}, end = {end}, step = {step} ") + + bins = torch.range(start, end + 0.0001, step).float() + self.register_buffer('bins', bins) + + + self.cp = 1.0 - 0.5 * smooth_eps + self.cn = 0.5 * smooth_eps + + self.BCEbins = nn.BCEWithLogitsLoss(pos_weight=torch.Tensor([BCE_weight])) + self.MSELoss = nn.MSELoss() + + def get_length(self): + return self.length + + def forward(self, pred): + assert pred.shape[-1] == self.length, 'pred.shape[-1]=%d is not equal to self.length=%d' % (pred.shape[-1], self.length) + + pred_reg = (pred[..., 0] * self.reg_scale - self.reg_scale/2.0) * self.step + pred_bin = pred[..., 1:(1+self.bin_count)] + + _, bin_idx = torch.max(pred_bin, dim=-1) + bin_bias = self.bins[bin_idx] + + if self.use_fw_regression: + result = pred_reg + bin_bias + else: + result = bin_bias + result = result.clamp(min=self.min, max=self.max) + + return result + + + def training_loss(self, pred, target): + assert pred.shape[-1] == self.length, 'pred.shape[-1]=%d is not equal to self.length=%d' % (pred.shape[-1], self.length) + assert pred.shape[0] == target.shape[0], 'pred.shape=%d is not equal to the target.shape=%d' % (pred.shape[0], target.shape[0]) + device = pred.device + + pred_reg = (pred[..., 0].sigmoid() * self.reg_scale - self.reg_scale/2.0) * self.step + pred_bin = pred[..., 1:(1+self.bin_count)] + + diff_bin_target = torch.abs(target[..., None] - self.bins) + _, bin_idx = torch.min(diff_bin_target, dim=-1) + + bin_bias = self.bins[bin_idx] + bin_bias.requires_grad = False + result = pred_reg + bin_bias + + target_bins = torch.full_like(pred_bin, self.cn, device=device) # targets + n = pred.shape[0] + target_bins[range(n), bin_idx] = self.cp + + loss_bin = self.BCEbins(pred_bin, target_bins) # BCE + + if self.use_loss_regression: + loss_regression = self.MSELoss(result, target) # MSE + loss = loss_bin + loss_regression + else: + loss = loss_bin + + out_result = result.clamp(min=self.min, max=self.max) + + return loss, out_result + + +class FocalLoss(nn.Module): + # Wraps focal loss around existing loss_fcn(), i.e. criteria = FocalLoss(nn.BCEWithLogitsLoss(), gamma=1.5) + def __init__(self, loss_fcn, gamma=1.5, alpha=0.25): + super(FocalLoss, self).__init__() + self.loss_fcn = loss_fcn # must be nn.BCEWithLogitsLoss() + self.gamma = gamma + self.alpha = alpha + self.reduction = loss_fcn.reduction + self.loss_fcn.reduction = 'none' # required to apply FL to each element + + def forward(self, pred, true): + loss = self.loss_fcn(pred, true) + # p_t = torch.exp(-loss) + # loss *= self.alpha * (1.000001 - p_t) ** self.gamma # non-zero power for gradient stability + + # TF implementation https://github.com/tensorflow/addons/blob/v0.7.1/tensorflow_addons/losses/focal_loss.py + pred_prob = torch.sigmoid(pred) # prob from logits + p_t = true * pred_prob + (1 - true) * (1 - pred_prob) + alpha_factor = true * self.alpha + (1 - true) * (1 - self.alpha) + modulating_factor = (1.0 - p_t) ** self.gamma + loss *= alpha_factor * modulating_factor + + if self.reduction == 'mean': + return loss.mean() + elif self.reduction == 'sum': + return loss.sum() + else: # 'none' + return loss + + +class QFocalLoss(nn.Module): + # Wraps Quality focal loss around existing loss_fcn(), i.e. criteria = FocalLoss(nn.BCEWithLogitsLoss(), gamma=1.5) + def __init__(self, loss_fcn, gamma=1.5, alpha=0.25): + super(QFocalLoss, self).__init__() + self.loss_fcn = loss_fcn # must be nn.BCEWithLogitsLoss() + self.gamma = gamma + self.alpha = alpha + self.reduction = loss_fcn.reduction + self.loss_fcn.reduction = 'none' # required to apply FL to each element + + def forward(self, pred, true): + loss = self.loss_fcn(pred, true) + + pred_prob = torch.sigmoid(pred) # prob from logits + alpha_factor = true * self.alpha + (1 - true) * (1 - self.alpha) + modulating_factor = torch.abs(true - pred_prob) ** self.gamma + loss *= alpha_factor * modulating_factor + + if self.reduction == 'mean': + return loss.mean() + elif self.reduction == 'sum': + return loss.sum() + else: # 'none' + return loss + +class RankSort(torch.autograd.Function): + @staticmethod + def forward(ctx, logits, targets, delta_RS=0.50, eps=1e-10): + + classification_grads=torch.zeros(logits.shape).cuda() + + #Filter fg logits + fg_labels = (targets > 0.) + fg_logits = logits[fg_labels] + fg_targets = targets[fg_labels] + fg_num = len(fg_logits) + + #Do not use bg with scores less than minimum fg logit + #since changing its score does not have an effect on precision + threshold_logit = torch.min(fg_logits)-delta_RS + relevant_bg_labels=((targets==0) & (logits>=threshold_logit)) + + relevant_bg_logits = logits[relevant_bg_labels] + relevant_bg_grad=torch.zeros(len(relevant_bg_logits)).cuda() + sorting_error=torch.zeros(fg_num).cuda() + ranking_error=torch.zeros(fg_num).cuda() + fg_grad=torch.zeros(fg_num).cuda() + + #sort the fg logits + order=torch.argsort(fg_logits) + #Loops over each positive following the order + for ii in order: + # Difference Transforms (x_ij) + fg_relations=fg_logits-fg_logits[ii] + bg_relations=relevant_bg_logits-fg_logits[ii] + + if delta_RS > 0: + fg_relations=torch.clamp(fg_relations/(2*delta_RS)+0.5,min=0,max=1) + bg_relations=torch.clamp(bg_relations/(2*delta_RS)+0.5,min=0,max=1) + else: + fg_relations = (fg_relations >= 0).float() + bg_relations = (bg_relations >= 0).float() + + # Rank of ii among pos and false positive number (bg with larger scores) + rank_pos=torch.sum(fg_relations) + FP_num=torch.sum(bg_relations) + + # Rank of ii among all examples + rank=rank_pos+FP_num + + # Ranking error of example ii. target_ranking_error is always 0. (Eq. 7) + ranking_error[ii]=FP_num/rank + + # Current sorting error of example ii. (Eq. 7) + current_sorting_error = torch.sum(fg_relations*(1-fg_targets))/rank_pos + + #Find examples in the target sorted order for example ii + iou_relations = (fg_targets >= fg_targets[ii]) + target_sorted_order = iou_relations * fg_relations + + #The rank of ii among positives in sorted order + rank_pos_target = torch.sum(target_sorted_order) + + #Compute target sorting error. (Eq. 8) + #Since target ranking error is 0, this is also total target error + target_sorting_error= torch.sum(target_sorted_order*(1-fg_targets))/rank_pos_target + + #Compute sorting error on example ii + sorting_error[ii] = current_sorting_error - target_sorting_error + + #Identity Update for Ranking Error + if FP_num > eps: + #For ii the update is the ranking error + fg_grad[ii] -= ranking_error[ii] + #For negatives, distribute error via ranking pmf (i.e. bg_relations/FP_num) + relevant_bg_grad += (bg_relations*(ranking_error[ii]/FP_num)) + + #Find the positives that are misranked (the cause of the error) + #These are the ones with smaller IoU but larger logits + missorted_examples = (~ iou_relations) * fg_relations + + #Denominotor of sorting pmf + sorting_pmf_denom = torch.sum(missorted_examples) + + #Identity Update for Sorting Error + if sorting_pmf_denom > eps: + #For ii the update is the sorting error + fg_grad[ii] -= sorting_error[ii] + #For positives, distribute error via sorting pmf (i.e. missorted_examples/sorting_pmf_denom) + fg_grad += (missorted_examples*(sorting_error[ii]/sorting_pmf_denom)) + + #Normalize gradients by number of positives + classification_grads[fg_labels]= (fg_grad/fg_num) + classification_grads[relevant_bg_labels]= (relevant_bg_grad/fg_num) + + ctx.save_for_backward(classification_grads) + + return ranking_error.mean(), sorting_error.mean() + + @staticmethod + def backward(ctx, out_grad1, out_grad2): + g1, =ctx.saved_tensors + return g1*out_grad1, None, None, None + +class aLRPLoss(torch.autograd.Function): + @staticmethod + def forward(ctx, logits, targets, regression_losses, delta=1., eps=1e-5): + classification_grads=torch.zeros(logits.shape).cuda() + + #Filter fg logits + fg_labels = (targets == 1) + fg_logits = logits[fg_labels] + fg_num = len(fg_logits) + + #Do not use bg with scores less than minimum fg logit + #since changing its score does not have an effect on precision + threshold_logit = torch.min(fg_logits)-delta + + #Get valid bg logits + relevant_bg_labels=((targets==0)&(logits>=threshold_logit)) + relevant_bg_logits=logits[relevant_bg_labels] + relevant_bg_grad=torch.zeros(len(relevant_bg_logits)).cuda() + rank=torch.zeros(fg_num).cuda() + prec=torch.zeros(fg_num).cuda() + fg_grad=torch.zeros(fg_num).cuda() + + max_prec=0 + #sort the fg logits + order=torch.argsort(fg_logits) + #Loops over each positive following the order + for ii in order: + #x_ij s as score differences with fgs + fg_relations=fg_logits-fg_logits[ii] + #Apply piecewise linear function and determine relations with fgs + fg_relations=torch.clamp(fg_relations/(2*delta)+0.5,min=0,max=1) + #Discard i=j in the summation in rank_pos + fg_relations[ii]=0 + + #x_ij s as score differences with bgs + bg_relations=relevant_bg_logits-fg_logits[ii] + #Apply piecewise linear function and determine relations with bgs + bg_relations=torch.clamp(bg_relations/(2*delta)+0.5,min=0,max=1) + + #Compute the rank of the example within fgs and number of bgs with larger scores + rank_pos=1+torch.sum(fg_relations) + FP_num=torch.sum(bg_relations) + #Store the total since it is normalizer also for aLRP Regression error + rank[ii]=rank_pos+FP_num + + #Compute precision for this example to compute classification loss + prec[ii]=rank_pos/rank[ii] + #For stability, set eps to a infinitesmall value (e.g. 1e-6), then compute grads + if FP_num > eps: + fg_grad[ii] = -(torch.sum(fg_relations*regression_losses)+FP_num)/rank[ii] + relevant_bg_grad += (bg_relations*(-fg_grad[ii]/FP_num)) + + #aLRP with grad formulation fg gradient + classification_grads[fg_labels]= fg_grad + #aLRP with grad formulation bg gradient + classification_grads[relevant_bg_labels]= relevant_bg_grad + + classification_grads /= (fg_num) + + cls_loss=1-prec.mean() + ctx.save_for_backward(classification_grads) + + return cls_loss, rank, order + + @staticmethod + def backward(ctx, out_grad1, out_grad2, out_grad3): + g1, =ctx.saved_tensors + return g1*out_grad1, None, None, None, None + + +class APLoss(torch.autograd.Function): + @staticmethod + def forward(ctx, logits, targets, delta=1.): + classification_grads=torch.zeros(logits.shape).cuda() + + #Filter fg logits + fg_labels = (targets == 1) + fg_logits = logits[fg_labels] + fg_num = len(fg_logits) + + #Do not use bg with scores less than minimum fg logit + #since changing its score does not have an effect on precision + threshold_logit = torch.min(fg_logits)-delta + + #Get valid bg logits + relevant_bg_labels=((targets==0)&(logits>=threshold_logit)) + relevant_bg_logits=logits[relevant_bg_labels] + relevant_bg_grad=torch.zeros(len(relevant_bg_logits)).cuda() + rank=torch.zeros(fg_num).cuda() + prec=torch.zeros(fg_num).cuda() + fg_grad=torch.zeros(fg_num).cuda() + + max_prec=0 + #sort the fg logits + order=torch.argsort(fg_logits) + #Loops over each positive following the order + for ii in order: + #x_ij s as score differences with fgs + fg_relations=fg_logits-fg_logits[ii] + #Apply piecewise linear function and determine relations with fgs + fg_relations=torch.clamp(fg_relations/(2*delta)+0.5,min=0,max=1) + #Discard i=j in the summation in rank_pos + fg_relations[ii]=0 + + #x_ij s as score differences with bgs + bg_relations=relevant_bg_logits-fg_logits[ii] + #Apply piecewise linear function and determine relations with bgs + bg_relations=torch.clamp(bg_relations/(2*delta)+0.5,min=0,max=1) + + #Compute the rank of the example within fgs and number of bgs with larger scores + rank_pos=1+torch.sum(fg_relations) + FP_num=torch.sum(bg_relations) + #Store the total since it is normalizer also for aLRP Regression error + rank[ii]=rank_pos+FP_num + + #Compute precision for this example + current_prec=rank_pos/rank[ii] + + #Compute interpolated AP and store gradients for relevant bg examples + if (max_prec<=current_prec): + max_prec=current_prec + relevant_bg_grad += (bg_relations/rank[ii]) + else: + relevant_bg_grad += (bg_relations/rank[ii])*(((1-max_prec)/(1-current_prec))) + + #Store fg gradients + fg_grad[ii]=-(1-max_prec) + prec[ii]=max_prec + + #aLRP with grad formulation fg gradient + classification_grads[fg_labels]= fg_grad + #aLRP with grad formulation bg gradient + classification_grads[relevant_bg_labels]= relevant_bg_grad + + classification_grads /= fg_num + + cls_loss=1-prec.mean() + ctx.save_for_backward(classification_grads) + + return cls_loss + + @staticmethod + def backward(ctx, out_grad1): + g1, =ctx.saved_tensors + return g1*out_grad1, None, None + + +class ComputeLoss: + # Compute losses + def __init__(self, model, autobalance=False): + super(ComputeLoss, self).__init__() + device = next(model.parameters()).device # get model device + h = model.hyp # hyperparameters + + # Define criteria + BCEcls = nn.BCEWithLogitsLoss(pos_weight=torch.tensor([h['cls_pw']], device=device)) + BCEobj = nn.BCEWithLogitsLoss(pos_weight=torch.tensor([h['obj_pw']], device=device)) + + # Class label smoothing https://arxiv.org/pdf/1902.04103.pdf eqn 3 + self.cp, self.cn = smooth_BCE(eps=h.get('label_smoothing', 0.0)) # positive, negative BCE targets + + # Focal loss + g = h['fl_gamma'] # focal loss gamma + if g > 0: + BCEcls, BCEobj = FocalLoss(BCEcls, g), FocalLoss(BCEobj, g) + + det = model.module.model[-1] if is_parallel(model) else model.model[-1] # Detect() module + self.balance = {3: [4.0, 1.0, 0.4]}.get(det.nl, [4.0, 1.0, 0.25, 0.06, .02]) # P3-P7 + #self.balance = {3: [4.0, 1.0, 0.4]}.get(det.nl, [4.0, 1.0, 0.25, 0.1, .05]) # P3-P7 + #self.balance = {3: [4.0, 1.0, 0.4]}.get(det.nl, [4.0, 1.0, 0.5, 0.4, .1]) # P3-P7 + self.ssi = list(det.stride).index(16) if autobalance else 0 # stride 16 index + self.BCEcls, self.BCEobj, self.gr, self.hyp, self.autobalance = BCEcls, BCEobj, model.gr, h, autobalance + for k in 'na', 'nc', 'nl', 'anchors': + setattr(self, k, getattr(det, k)) + + def __call__(self, p, targets): # predictions, targets, model + device = targets.device + lcls, lbox, lobj = torch.zeros(1, device=device), torch.zeros(1, device=device), torch.zeros(1, device=device) + tcls, tbox, indices, anchors = self.build_targets(p, targets) # targets + + # Losses + for i, pi in enumerate(p): # layer index, layer predictions + b, a, gj, gi = indices[i] # image, anchor, gridy, gridx + tobj = torch.zeros_like(pi[..., 0], device=device) # target obj + + n = b.shape[0] # number of targets + if n: + ps = pi[b, a, gj, gi] # prediction subset corresponding to targets + + # Regression + pxy = ps[:, :2].sigmoid() * 2. - 0.5 + pwh = (ps[:, 2:4].sigmoid() * 2) ** 2 * anchors[i] + pbox = torch.cat((pxy, pwh), 1) # predicted box + iou = bbox_iou(pbox.T, tbox[i], x1y1x2y2=False, CIoU=True) # iou(prediction, target) + lbox += (1.0 - iou).mean() # iou loss + + # Objectness + tobj[b, a, gj, gi] = (1.0 - self.gr) + self.gr * iou.detach().clamp(0).type(tobj.dtype) # iou ratio + + # Classification + if self.nc > 1: # cls loss (only if multiple classes) + t = torch.full_like(ps[:, 5:], self.cn, device=device) # targets + t[range(n), tcls[i]] = self.cp + #t[t==self.cp] = iou.detach().clamp(0).type(t.dtype) + lcls += self.BCEcls(ps[:, 5:], t) # BCE + + # Append targets to text file + # with open('targets.txt', 'a') as file: + # [file.write('%11.5g ' * 4 % tuple(x) + '\n') for x in torch.cat((txy[i], twh[i]), 1)] + + obji = self.BCEobj(pi[..., 4], tobj) + lobj += obji * self.balance[i] # obj loss + if self.autobalance: + self.balance[i] = self.balance[i] * 0.9999 + 0.0001 / obji.detach().item() + + if self.autobalance: + self.balance = [x / self.balance[self.ssi] for x in self.balance] + lbox *= self.hyp['box'] + lobj *= self.hyp['obj'] + lcls *= self.hyp['cls'] + bs = tobj.shape[0] # batch size + + loss = lbox + lobj + lcls + return loss * bs, torch.cat((lbox, lobj, lcls, loss)).detach() + + def build_targets(self, p, targets): + # Build targets for compute_loss(), input targets(image,class,x,y,w,h) + na, nt = self.na, targets.shape[0] # number of anchors, targets + tcls, tbox, indices, anch = [], [], [], [] + gain = torch.ones(7, device=targets.device).long() # normalized to gridspace gain + ai = torch.arange(na, device=targets.device).float().view(na, 1).repeat(1, nt) # same as .repeat_interleave(nt) + targets = torch.cat((targets.repeat(na, 1, 1), ai[:, :, None]), 2) # append anchor indices + + g = 0.5 # bias + off = torch.tensor([[0, 0], + [1, 0], [0, 1], [-1, 0], [0, -1], # j,k,l,m + # [1, 1], [1, -1], [-1, 1], [-1, -1], # jk,jm,lk,lm + ], device=targets.device).float() * g # offsets + + for i in range(self.nl): + anchors = self.anchors[i] + gain[2:6] = torch.tensor(p[i].shape)[[3, 2, 3, 2]] # xyxy gain + + # Match targets to anchors + t = targets * gain + if nt: + # Matches + r = t[:, :, 4:6] / anchors[:, None] # wh ratio + j = torch.max(r, 1. / r).max(2)[0] < self.hyp['anchor_t'] # compare + # j = wh_iou(anchors, t[:, 4:6]) > model.hyp['iou_t'] # iou(3,n)=wh_iou(anchors(3,2), gwh(n,2)) + t = t[j] # filter + + # Offsets + gxy = t[:, 2:4] # grid xy + gxi = gain[[2, 3]] - gxy # inverse + j, k = ((gxy % 1. < g) & (gxy > 1.)).T + l, m = ((gxi % 1. < g) & (gxi > 1.)).T + j = torch.stack((torch.ones_like(j), j, k, l, m)) + t = t.repeat((5, 1, 1))[j] + offsets = (torch.zeros_like(gxy)[None] + off[:, None])[j] + else: + t = targets[0] + offsets = 0 + + # Define + b, c = t[:, :2].long().T # image, class + gxy = t[:, 2:4] # grid xy + gwh = t[:, 4:6] # grid wh + gij = (gxy - offsets).long() + gi, gj = gij.T # grid xy indices + + # Append + a = t[:, 6].long() # anchor indices + indices.append((b, a, gj.clamp_(0, gain[3] - 1), gi.clamp_(0, gain[2] - 1))) # image, anchor, grid indices + tbox.append(torch.cat((gxy - gij, gwh), 1)) # box + anch.append(anchors[a]) # anchors + tcls.append(c) # class + + return tcls, tbox, indices, anch + + +class ComputeLossOTA: + # Compute losses + def __init__(self, model, autobalance=False): + super(ComputeLossOTA, self).__init__() + device = next(model.parameters()).device # get model device + h = model.hyp # hyperparameters + + # Define criteria + BCEcls = nn.BCEWithLogitsLoss(pos_weight=torch.tensor([h['cls_pw']], device=device)) + BCEobj = nn.BCEWithLogitsLoss(pos_weight=torch.tensor([h['obj_pw']], device=device)) + + # Class label smoothing https://arxiv.org/pdf/1902.04103.pdf eqn 3 + self.cp, self.cn = smooth_BCE(eps=h.get('label_smoothing', 0.0)) # positive, negative BCE targets + + # Focal loss + g = h['fl_gamma'] # focal loss gamma + if g > 0: + BCEcls, BCEobj = FocalLoss(BCEcls, g), FocalLoss(BCEobj, g) + + det = model.module.model[-1] if is_parallel(model) else model.model[-1] # Detect() module + self.balance = {3: [4.0, 1.0, 0.4]}.get(det.nl, [4.0, 1.0, 0.25, 0.06, .02]) # P3-P7 + self.ssi = list(det.stride).index(16) if autobalance else 0 # stride 16 index + self.BCEcls, self.BCEobj, self.gr, self.hyp, self.autobalance = BCEcls, BCEobj, model.gr, h, autobalance + for k in 'na', 'nc', 'nl', 'anchors', 'stride': + setattr(self, k, getattr(det, k)) + + def __call__(self, p, targets, imgs): # predictions, targets, model + device = targets.device + lcls, lbox, lobj = torch.zeros(1, device=device), torch.zeros(1, device=device), torch.zeros(1, device=device) + bs, as_, gjs, gis, targets, anchors = self.build_targets(p, targets, imgs) + pre_gen_gains = [torch.tensor(pp.shape, device=device)[[3, 2, 3, 2]] for pp in p] + + + # Losses + for i, pi in enumerate(p): # layer index, layer predictions + b, a, gj, gi = bs[i], as_[i], gjs[i], gis[i] # image, anchor, gridy, gridx + tobj = torch.zeros_like(pi[..., 0], device=device) # target obj + + n = b.shape[0] # number of targets + if n: + ps = pi[b, a, gj, gi] # prediction subset corresponding to targets + + # Regression + grid = torch.stack([gi, gj], dim=1) + pxy = ps[:, :2].sigmoid() * 2. - 0.5 + #pxy = ps[:, :2].sigmoid() * 3. - 1. + pwh = (ps[:, 2:4].sigmoid() * 2) ** 2 * anchors[i] + pbox = torch.cat((pxy, pwh), 1) # predicted box + selected_tbox = targets[i][:, 2:6] * pre_gen_gains[i] + selected_tbox[:, :2] -= grid + iou = bbox_iou(pbox.T, selected_tbox, x1y1x2y2=False, CIoU=True) # iou(prediction, target) + lbox += (1.0 - iou).mean() # iou loss + + # Objectness + tobj[b, a, gj, gi] = (1.0 - self.gr) + self.gr * iou.detach().clamp(0).type(tobj.dtype) # iou ratio + + # Classification + selected_tcls = targets[i][:, 1].long() + if self.nc > 1: # cls loss (only if multiple classes) + t = torch.full_like(ps[:, 5:], self.cn, device=device) # targets + t[range(n), selected_tcls] = self.cp + lcls += self.BCEcls(ps[:, 5:], t) # BCE + + # Append targets to text file + # with open('targets.txt', 'a') as file: + # [file.write('%11.5g ' * 4 % tuple(x) + '\n') for x in torch.cat((txy[i], twh[i]), 1)] + + obji = self.BCEobj(pi[..., 4], tobj) + lobj += obji * self.balance[i] # obj loss + if self.autobalance: + self.balance[i] = self.balance[i] * 0.9999 + 0.0001 / obji.detach().item() + + if self.autobalance: + self.balance = [x / self.balance[self.ssi] for x in self.balance] + lbox *= self.hyp['box'] + lobj *= self.hyp['obj'] + lcls *= self.hyp['cls'] + bs = tobj.shape[0] # batch size + + loss = lbox + lobj + lcls + return loss * bs, torch.cat((lbox, lobj, lcls, loss)).detach() + + def build_targets(self, p, targets, imgs): + + #indices, anch = self.find_positive(p, targets) + indices, anch = self.find_3_positive(p, targets) + #indices, anch = self.find_4_positive(p, targets) + #indices, anch = self.find_5_positive(p, targets) + #indices, anch = self.find_9_positive(p, targets) + + matching_bs = [[] for pp in p] + matching_as = [[] for pp in p] + matching_gjs = [[] for pp in p] + matching_gis = [[] for pp in p] + matching_targets = [[] for pp in p] + matching_anchs = [[] for pp in p] + + nl = len(p) + + for batch_idx in range(p[0].shape[0]): + + b_idx = targets[:, 0]==batch_idx + this_target = targets[b_idx] + if this_target.shape[0] == 0: + continue + + txywh = this_target[:, 2:6] * imgs[batch_idx].shape[1] + txyxy = xywh2xyxy(txywh) + + pxyxys = [] + p_cls = [] + p_obj = [] + from_which_layer = [] + all_b = [] + all_a = [] + all_gj = [] + all_gi = [] + all_anch = [] + + for i, pi in enumerate(p): + + b, a, gj, gi = indices[i] + idx = (b == batch_idx) + b, a, gj, gi = b[idx], a[idx], gj[idx], gi[idx] + all_b.append(b) + all_a.append(a) + all_gj.append(gj) + all_gi.append(gi) + all_anch.append(anch[i][idx]) + from_which_layer.append(torch.ones(size=(len(b),)) * i) + + fg_pred = pi[b, a, gj, gi] + p_obj.append(fg_pred[:, 4:5]) + p_cls.append(fg_pred[:, 5:]) + + grid = torch.stack([gi, gj], dim=1) + pxy = (fg_pred[:, :2].sigmoid() * 2. - 0.5 + grid) * self.stride[i] #/ 8. + #pxy = (fg_pred[:, :2].sigmoid() * 3. - 1. + grid) * self.stride[i] + pwh = (fg_pred[:, 2:4].sigmoid() * 2) ** 2 * anch[i][idx] * self.stride[i] #/ 8. + pxywh = torch.cat([pxy, pwh], dim=-1) + pxyxy = xywh2xyxy(pxywh) + pxyxys.append(pxyxy) + + pxyxys = torch.cat(pxyxys, dim=0) + if pxyxys.shape[0] == 0: + continue + p_obj = torch.cat(p_obj, dim=0) + p_cls = torch.cat(p_cls, dim=0) + from_which_layer = torch.cat(from_which_layer, dim=0) + all_b = torch.cat(all_b, dim=0) + all_a = torch.cat(all_a, dim=0) + all_gj = torch.cat(all_gj, dim=0) + all_gi = torch.cat(all_gi, dim=0) + all_anch = torch.cat(all_anch, dim=0) + + pair_wise_iou = box_iou(txyxy, pxyxys) + + pair_wise_iou_loss = -torch.log(pair_wise_iou + 1e-8) + + top_k, _ = torch.topk(pair_wise_iou, min(10, pair_wise_iou.shape[1]), dim=1) + dynamic_ks = torch.clamp(top_k.sum(1).int(), min=1) + + gt_cls_per_image = ( + F.one_hot(this_target[:, 1].to(torch.int64), self.nc) + .float() + .unsqueeze(1) + .repeat(1, pxyxys.shape[0], 1) + ) + + num_gt = this_target.shape[0] + cls_preds_ = ( + p_cls.float().unsqueeze(0).repeat(num_gt, 1, 1).sigmoid_() + * p_obj.unsqueeze(0).repeat(num_gt, 1, 1).sigmoid_() + ) + + y = cls_preds_.sqrt_() + pair_wise_cls_loss = F.binary_cross_entropy_with_logits( + torch.log(y/(1-y)) , gt_cls_per_image, reduction="none" + ).sum(-1) + del cls_preds_ + + cost = ( + pair_wise_cls_loss + + 3.0 * pair_wise_iou_loss + ) + + matching_matrix = torch.zeros_like(cost) + + for gt_idx in range(num_gt): + _, pos_idx = torch.topk( + cost[gt_idx], k=dynamic_ks[gt_idx].item(), largest=False + ) + matching_matrix[gt_idx][pos_idx] = 1.0 + + del top_k, dynamic_ks + anchor_matching_gt = matching_matrix.sum(0) + if (anchor_matching_gt > 1).sum() > 0: + _, cost_argmin = torch.min(cost[:, anchor_matching_gt > 1], dim=0) + matching_matrix[:, anchor_matching_gt > 1] *= 0.0 + matching_matrix[cost_argmin, anchor_matching_gt > 1] = 1.0 + fg_mask_inboxes = matching_matrix.sum(0) > 0.0 + matched_gt_inds = matching_matrix[:, fg_mask_inboxes].argmax(0) + + from_which_layer = from_which_layer[fg_mask_inboxes] + all_b = all_b[fg_mask_inboxes] + all_a = all_a[fg_mask_inboxes] + all_gj = all_gj[fg_mask_inboxes] + all_gi = all_gi[fg_mask_inboxes] + all_anch = all_anch[fg_mask_inboxes] + + this_target = this_target[matched_gt_inds] + + for i in range(nl): + layer_idx = from_which_layer == i + matching_bs[i].append(all_b[layer_idx]) + matching_as[i].append(all_a[layer_idx]) + matching_gjs[i].append(all_gj[layer_idx]) + matching_gis[i].append(all_gi[layer_idx]) + matching_targets[i].append(this_target[layer_idx]) + matching_anchs[i].append(all_anch[layer_idx]) + + for i in range(nl): + if matching_targets[i] != []: + matching_bs[i] = torch.cat(matching_bs[i], dim=0) + matching_as[i] = torch.cat(matching_as[i], dim=0) + matching_gjs[i] = torch.cat(matching_gjs[i], dim=0) + matching_gis[i] = torch.cat(matching_gis[i], dim=0) + matching_targets[i] = torch.cat(matching_targets[i], dim=0) + matching_anchs[i] = torch.cat(matching_anchs[i], dim=0) + else: + matching_bs[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_as[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_gjs[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_gis[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_targets[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_anchs[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + + return matching_bs, matching_as, matching_gjs, matching_gis, matching_targets, matching_anchs + + def find_3_positive(self, p, targets): + # Build targets for compute_loss(), input targets(image,class,x,y,w,h) + na, nt = self.na, targets.shape[0] # number of anchors, targets + indices, anch = [], [] + gain = torch.ones(7, device=targets.device).long() # normalized to gridspace gain + ai = torch.arange(na, device=targets.device).float().view(na, 1).repeat(1, nt) # same as .repeat_interleave(nt) + targets = torch.cat((targets.repeat(na, 1, 1), ai[:, :, None]), 2) # append anchor indices + + g = 0.5 # bias + off = torch.tensor([[0, 0], + [1, 0], [0, 1], [-1, 0], [0, -1], # j,k,l,m + # [1, 1], [1, -1], [-1, 1], [-1, -1], # jk,jm,lk,lm + ], device=targets.device).float() * g # offsets + + for i in range(self.nl): + anchors = self.anchors[i] + gain[2:6] = torch.tensor(p[i].shape)[[3, 2, 3, 2]] # xyxy gain + + # Match targets to anchors + t = targets * gain + if nt: + # Matches + r = t[:, :, 4:6] / anchors[:, None] # wh ratio + j = torch.max(r, 1. / r).max(2)[0] < self.hyp['anchor_t'] # compare + # j = wh_iou(anchors, t[:, 4:6]) > model.hyp['iou_t'] # iou(3,n)=wh_iou(anchors(3,2), gwh(n,2)) + t = t[j] # filter + + # Offsets + gxy = t[:, 2:4] # grid xy + gxi = gain[[2, 3]] - gxy # inverse + j, k = ((gxy % 1. < g) & (gxy > 1.)).T + l, m = ((gxi % 1. < g) & (gxi > 1.)).T + j = torch.stack((torch.ones_like(j), j, k, l, m)) + t = t.repeat((5, 1, 1))[j] + offsets = (torch.zeros_like(gxy)[None] + off[:, None])[j] + else: + t = targets[0] + offsets = 0 + + # Define + b, c = t[:, :2].long().T # image, class + gxy = t[:, 2:4] # grid xy + gwh = t[:, 4:6] # grid wh + gij = (gxy - offsets).long() + gi, gj = gij.T # grid xy indices + + # Append + a = t[:, 6].long() # anchor indices + indices.append((b, a, gj.clamp_(0, gain[3] - 1), gi.clamp_(0, gain[2] - 1))) # image, anchor, grid indices + anch.append(anchors[a]) # anchors + + return indices, anch + + +class ComputeLossBinOTA: + # Compute losses + def __init__(self, model, autobalance=False): + super(ComputeLossBinOTA, self).__init__() + device = next(model.parameters()).device # get model device + h = model.hyp # hyperparameters + + # Define criteria + BCEcls = nn.BCEWithLogitsLoss(pos_weight=torch.tensor([h['cls_pw']], device=device)) + BCEobj = nn.BCEWithLogitsLoss(pos_weight=torch.tensor([h['obj_pw']], device=device)) + #MSEangle = nn.MSELoss().to(device) + + # Class label smoothing https://arxiv.org/pdf/1902.04103.pdf eqn 3 + self.cp, self.cn = smooth_BCE(eps=h.get('label_smoothing', 0.0)) # positive, negative BCE targets + + # Focal loss + g = h['fl_gamma'] # focal loss gamma + if g > 0: + BCEcls, BCEobj = FocalLoss(BCEcls, g), FocalLoss(BCEobj, g) + + det = model.module.model[-1] if is_parallel(model) else model.model[-1] # Detect() module + self.balance = {3: [4.0, 1.0, 0.4]}.get(det.nl, [4.0, 1.0, 0.25, 0.06, .02]) # P3-P7 + self.ssi = list(det.stride).index(16) if autobalance else 0 # stride 16 index + self.BCEcls, self.BCEobj, self.gr, self.hyp, self.autobalance = BCEcls, BCEobj, model.gr, h, autobalance + for k in 'na', 'nc', 'nl', 'anchors', 'stride', 'bin_count': + setattr(self, k, getattr(det, k)) + + #xy_bin_sigmoid = SigmoidBin(bin_count=11, min=-0.5, max=1.5, use_loss_regression=False).to(device) + wh_bin_sigmoid = SigmoidBin(bin_count=self.bin_count, min=0.0, max=4.0, use_loss_regression=False).to(device) + #angle_bin_sigmoid = SigmoidBin(bin_count=31, min=-1.1, max=1.1, use_loss_regression=False).to(device) + self.wh_bin_sigmoid = wh_bin_sigmoid + + def __call__(self, p, targets, imgs): # predictions, targets, model + device = targets.device + lcls, lbox, lobj = torch.zeros(1, device=device), torch.zeros(1, device=device), torch.zeros(1, device=device) + bs, as_, gjs, gis, targets, anchors = self.build_targets(p, targets, imgs) + pre_gen_gains = [torch.tensor(pp.shape, device=device)[[3, 2, 3, 2]] for pp in p] + + + # Losses + for i, pi in enumerate(p): # layer index, layer predictions + b, a, gj, gi = bs[i], as_[i], gjs[i], gis[i] # image, anchor, gridy, gridx + tobj = torch.zeros_like(pi[..., 0], device=device) # target obj + + obj_idx = self.wh_bin_sigmoid.get_length()*2 + 2 # x,y, w-bce, h-bce # xy_bin_sigmoid.get_length()*2 + + n = b.shape[0] # number of targets + if n: + ps = pi[b, a, gj, gi] # prediction subset corresponding to targets + + # Regression + grid = torch.stack([gi, gj], dim=1) + selected_tbox = targets[i][:, 2:6] * pre_gen_gains[i] + selected_tbox[:, :2] -= grid + + #pxy = ps[:, :2].sigmoid() * 2. - 0.5 + ##pxy = ps[:, :2].sigmoid() * 3. - 1. + #pwh = (ps[:, 2:4].sigmoid() * 2) ** 2 * anchors[i] + #pbox = torch.cat((pxy, pwh), 1) # predicted box + + #x_loss, px = xy_bin_sigmoid.training_loss(ps[..., 0:12], tbox[i][..., 0]) + #y_loss, py = xy_bin_sigmoid.training_loss(ps[..., 12:24], tbox[i][..., 1]) + w_loss, pw = self.wh_bin_sigmoid.training_loss(ps[..., 2:(3+self.bin_count)], selected_tbox[..., 2] / anchors[i][..., 0]) + h_loss, ph = self.wh_bin_sigmoid.training_loss(ps[..., (3+self.bin_count):obj_idx], selected_tbox[..., 3] / anchors[i][..., 1]) + + pw *= anchors[i][..., 0] + ph *= anchors[i][..., 1] + + px = ps[:, 0].sigmoid() * 2. - 0.5 + py = ps[:, 1].sigmoid() * 2. - 0.5 + + lbox += w_loss + h_loss # + x_loss + y_loss + + #print(f"\n px = {px.shape}, py = {py.shape}, pw = {pw.shape}, ph = {ph.shape} \n") + + pbox = torch.cat((px.unsqueeze(1), py.unsqueeze(1), pw.unsqueeze(1), ph.unsqueeze(1)), 1).to(device) # predicted box + + + + + iou = bbox_iou(pbox.T, selected_tbox, x1y1x2y2=False, CIoU=True) # iou(prediction, target) + lbox += (1.0 - iou).mean() # iou loss + + # Objectness + tobj[b, a, gj, gi] = (1.0 - self.gr) + self.gr * iou.detach().clamp(0).type(tobj.dtype) # iou ratio + + # Classification + selected_tcls = targets[i][:, 1].long() + if self.nc > 1: # cls loss (only if multiple classes) + t = torch.full_like(ps[:, (1+obj_idx):], self.cn, device=device) # targets + t[range(n), selected_tcls] = self.cp + lcls += self.BCEcls(ps[:, (1+obj_idx):], t) # BCE + + # Append targets to text file + # with open('targets.txt', 'a') as file: + # [file.write('%11.5g ' * 4 % tuple(x) + '\n') for x in torch.cat((txy[i], twh[i]), 1)] + + obji = self.BCEobj(pi[..., obj_idx], tobj) + lobj += obji * self.balance[i] # obj loss + if self.autobalance: + self.balance[i] = self.balance[i] * 0.9999 + 0.0001 / obji.detach().item() + + if self.autobalance: + self.balance = [x / self.balance[self.ssi] for x in self.balance] + lbox *= self.hyp['box'] + lobj *= self.hyp['obj'] + lcls *= self.hyp['cls'] + bs = tobj.shape[0] # batch size + + loss = lbox + lobj + lcls + return loss * bs, torch.cat((lbox, lobj, lcls, loss)).detach() + + def build_targets(self, p, targets, imgs): + + #indices, anch = self.find_positive(p, targets) + indices, anch = self.find_3_positive(p, targets) + #indices, anch = self.find_4_positive(p, targets) + #indices, anch = self.find_5_positive(p, targets) + #indices, anch = self.find_9_positive(p, targets) + + matching_bs = [[] for pp in p] + matching_as = [[] for pp in p] + matching_gjs = [[] for pp in p] + matching_gis = [[] for pp in p] + matching_targets = [[] for pp in p] + matching_anchs = [[] for pp in p] + + nl = len(p) + + for batch_idx in range(p[0].shape[0]): + + b_idx = targets[:, 0]==batch_idx + this_target = targets[b_idx] + if this_target.shape[0] == 0: + continue + + txywh = this_target[:, 2:6] * imgs[batch_idx].shape[1] + txyxy = xywh2xyxy(txywh) + + pxyxys = [] + p_cls = [] + p_obj = [] + from_which_layer = [] + all_b = [] + all_a = [] + all_gj = [] + all_gi = [] + all_anch = [] + + for i, pi in enumerate(p): + + obj_idx = self.wh_bin_sigmoid.get_length()*2 + 2 + + b, a, gj, gi = indices[i] + idx = (b == batch_idx) + b, a, gj, gi = b[idx], a[idx], gj[idx], gi[idx] + all_b.append(b) + all_a.append(a) + all_gj.append(gj) + all_gi.append(gi) + all_anch.append(anch[i][idx]) + from_which_layer.append(torch.ones(size=(len(b),)) * i) + + fg_pred = pi[b, a, gj, gi] + p_obj.append(fg_pred[:, obj_idx:(obj_idx+1)]) + p_cls.append(fg_pred[:, (obj_idx+1):]) + + grid = torch.stack([gi, gj], dim=1) + pxy = (fg_pred[:, :2].sigmoid() * 2. - 0.5 + grid) * self.stride[i] #/ 8. + #pwh = (fg_pred[:, 2:4].sigmoid() * 2) ** 2 * anch[i][idx] * self.stride[i] #/ 8. + pw = self.wh_bin_sigmoid.forward(fg_pred[..., 2:(3+self.bin_count)].sigmoid()) * anch[i][idx][:, 0] * self.stride[i] + ph = self.wh_bin_sigmoid.forward(fg_pred[..., (3+self.bin_count):obj_idx].sigmoid()) * anch[i][idx][:, 1] * self.stride[i] + + pxywh = torch.cat([pxy, pw.unsqueeze(1), ph.unsqueeze(1)], dim=-1) + pxyxy = xywh2xyxy(pxywh) + pxyxys.append(pxyxy) + + pxyxys = torch.cat(pxyxys, dim=0) + if pxyxys.shape[0] == 0: + continue + p_obj = torch.cat(p_obj, dim=0) + p_cls = torch.cat(p_cls, dim=0) + from_which_layer = torch.cat(from_which_layer, dim=0) + all_b = torch.cat(all_b, dim=0) + all_a = torch.cat(all_a, dim=0) + all_gj = torch.cat(all_gj, dim=0) + all_gi = torch.cat(all_gi, dim=0) + all_anch = torch.cat(all_anch, dim=0) + + pair_wise_iou = box_iou(txyxy, pxyxys) + + pair_wise_iou_loss = -torch.log(pair_wise_iou + 1e-8) + + top_k, _ = torch.topk(pair_wise_iou, min(10, pair_wise_iou.shape[1]), dim=1) + dynamic_ks = torch.clamp(top_k.sum(1).int(), min=1) + + gt_cls_per_image = ( + F.one_hot(this_target[:, 1].to(torch.int64), self.nc) + .float() + .unsqueeze(1) + .repeat(1, pxyxys.shape[0], 1) + ) + + num_gt = this_target.shape[0] + cls_preds_ = ( + p_cls.float().unsqueeze(0).repeat(num_gt, 1, 1).sigmoid_() + * p_obj.unsqueeze(0).repeat(num_gt, 1, 1).sigmoid_() + ) + + y = cls_preds_.sqrt_() + pair_wise_cls_loss = F.binary_cross_entropy_with_logits( + torch.log(y/(1-y)) , gt_cls_per_image, reduction="none" + ).sum(-1) + del cls_preds_ + + cost = ( + pair_wise_cls_loss + + 3.0 * pair_wise_iou_loss + ) + + matching_matrix = torch.zeros_like(cost) + + for gt_idx in range(num_gt): + _, pos_idx = torch.topk( + cost[gt_idx], k=dynamic_ks[gt_idx].item(), largest=False + ) + matching_matrix[gt_idx][pos_idx] = 1.0 + + del top_k, dynamic_ks + anchor_matching_gt = matching_matrix.sum(0) + if (anchor_matching_gt > 1).sum() > 0: + _, cost_argmin = torch.min(cost[:, anchor_matching_gt > 1], dim=0) + matching_matrix[:, anchor_matching_gt > 1] *= 0.0 + matching_matrix[cost_argmin, anchor_matching_gt > 1] = 1.0 + fg_mask_inboxes = matching_matrix.sum(0) > 0.0 + matched_gt_inds = matching_matrix[:, fg_mask_inboxes].argmax(0) + + from_which_layer = from_which_layer[fg_mask_inboxes] + all_b = all_b[fg_mask_inboxes] + all_a = all_a[fg_mask_inboxes] + all_gj = all_gj[fg_mask_inboxes] + all_gi = all_gi[fg_mask_inboxes] + all_anch = all_anch[fg_mask_inboxes] + + this_target = this_target[matched_gt_inds] + + for i in range(nl): + layer_idx = from_which_layer == i + matching_bs[i].append(all_b[layer_idx]) + matching_as[i].append(all_a[layer_idx]) + matching_gjs[i].append(all_gj[layer_idx]) + matching_gis[i].append(all_gi[layer_idx]) + matching_targets[i].append(this_target[layer_idx]) + matching_anchs[i].append(all_anch[layer_idx]) + + for i in range(nl): + if matching_targets[i] != []: + matching_bs[i] = torch.cat(matching_bs[i], dim=0) + matching_as[i] = torch.cat(matching_as[i], dim=0) + matching_gjs[i] = torch.cat(matching_gjs[i], dim=0) + matching_gis[i] = torch.cat(matching_gis[i], dim=0) + matching_targets[i] = torch.cat(matching_targets[i], dim=0) + matching_anchs[i] = torch.cat(matching_anchs[i], dim=0) + else: + matching_bs[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_as[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_gjs[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_gis[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_targets[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_anchs[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + + return matching_bs, matching_as, matching_gjs, matching_gis, matching_targets, matching_anchs + + def find_3_positive(self, p, targets): + # Build targets for compute_loss(), input targets(image,class,x,y,w,h) + na, nt = self.na, targets.shape[0] # number of anchors, targets + indices, anch = [], [] + gain = torch.ones(7, device=targets.device).long() # normalized to gridspace gain + ai = torch.arange(na, device=targets.device).float().view(na, 1).repeat(1, nt) # same as .repeat_interleave(nt) + targets = torch.cat((targets.repeat(na, 1, 1), ai[:, :, None]), 2) # append anchor indices + + g = 0.5 # bias + off = torch.tensor([[0, 0], + [1, 0], [0, 1], [-1, 0], [0, -1], # j,k,l,m + # [1, 1], [1, -1], [-1, 1], [-1, -1], # jk,jm,lk,lm + ], device=targets.device).float() * g # offsets + + for i in range(self.nl): + anchors = self.anchors[i] + gain[2:6] = torch.tensor(p[i].shape)[[3, 2, 3, 2]] # xyxy gain + + # Match targets to anchors + t = targets * gain + if nt: + # Matches + r = t[:, :, 4:6] / anchors[:, None] # wh ratio + j = torch.max(r, 1. / r).max(2)[0] < self.hyp['anchor_t'] # compare + # j = wh_iou(anchors, t[:, 4:6]) > model.hyp['iou_t'] # iou(3,n)=wh_iou(anchors(3,2), gwh(n,2)) + t = t[j] # filter + + # Offsets + gxy = t[:, 2:4] # grid xy + gxi = gain[[2, 3]] - gxy # inverse + j, k = ((gxy % 1. < g) & (gxy > 1.)).T + l, m = ((gxi % 1. < g) & (gxi > 1.)).T + j = torch.stack((torch.ones_like(j), j, k, l, m)) + t = t.repeat((5, 1, 1))[j] + offsets = (torch.zeros_like(gxy)[None] + off[:, None])[j] + else: + t = targets[0] + offsets = 0 + + # Define + b, c = t[:, :2].long().T # image, class + gxy = t[:, 2:4] # grid xy + gwh = t[:, 4:6] # grid wh + gij = (gxy - offsets).long() + gi, gj = gij.T # grid xy indices + + # Append + a = t[:, 6].long() # anchor indices + indices.append((b, a, gj.clamp_(0, gain[3] - 1), gi.clamp_(0, gain[2] - 1))) # image, anchor, grid indices + anch.append(anchors[a]) # anchors + + return indices, anch + + +class ComputeLossAuxOTA: + # Compute losses + def __init__(self, model, autobalance=False): + super(ComputeLossAuxOTA, self).__init__() + device = next(model.parameters()).device # get model device + h = model.hyp # hyperparameters + + # Define criteria + BCEcls = nn.BCEWithLogitsLoss(pos_weight=torch.tensor([h['cls_pw']], device=device)) + BCEobj = nn.BCEWithLogitsLoss(pos_weight=torch.tensor([h['obj_pw']], device=device)) + + # Class label smoothing https://arxiv.org/pdf/1902.04103.pdf eqn 3 + self.cp, self.cn = smooth_BCE(eps=h.get('label_smoothing', 0.0)) # positive, negative BCE targets + + # Focal loss + g = h['fl_gamma'] # focal loss gamma + if g > 0: + BCEcls, BCEobj = FocalLoss(BCEcls, g), FocalLoss(BCEobj, g) + + det = model.module.model[-1] if is_parallel(model) else model.model[-1] # Detect() module + self.balance = {3: [4.0, 1.0, 0.4]}.get(det.nl, [4.0, 1.0, 0.25, 0.06, .02]) # P3-P7 + self.ssi = list(det.stride).index(16) if autobalance else 0 # stride 16 index + self.BCEcls, self.BCEobj, self.gr, self.hyp, self.autobalance = BCEcls, BCEobj, model.gr, h, autobalance + for k in 'na', 'nc', 'nl', 'anchors', 'stride': + setattr(self, k, getattr(det, k)) + + def __call__(self, p, targets, imgs): # predictions, targets, model + device = targets.device + lcls, lbox, lobj = torch.zeros(1, device=device), torch.zeros(1, device=device), torch.zeros(1, device=device) + bs_aux, as_aux_, gjs_aux, gis_aux, targets_aux, anchors_aux = self.build_targets2(p[:self.nl], targets, imgs) + bs, as_, gjs, gis, targets, anchors = self.build_targets(p[:self.nl], targets, imgs) + pre_gen_gains_aux = [torch.tensor(pp.shape, device=device)[[3, 2, 3, 2]] for pp in p[:self.nl]] + pre_gen_gains = [torch.tensor(pp.shape, device=device)[[3, 2, 3, 2]] for pp in p[:self.nl]] + + + # Losses + for i in range(self.nl): # layer index, layer predictions + pi = p[i] + pi_aux = p[i+self.nl] + b, a, gj, gi = bs[i], as_[i], gjs[i], gis[i] # image, anchor, gridy, gridx + b_aux, a_aux, gj_aux, gi_aux = bs_aux[i], as_aux_[i], gjs_aux[i], gis_aux[i] # image, anchor, gridy, gridx + tobj = torch.zeros_like(pi[..., 0], device=device) # target obj + tobj_aux = torch.zeros_like(pi_aux[..., 0], device=device) # target obj + + n = b.shape[0] # number of targets + if n: + ps = pi[b, a, gj, gi] # prediction subset corresponding to targets + + # Regression + grid = torch.stack([gi, gj], dim=1) + pxy = ps[:, :2].sigmoid() * 2. - 0.5 + pwh = (ps[:, 2:4].sigmoid() * 2) ** 2 * anchors[i] + pbox = torch.cat((pxy, pwh), 1) # predicted box + selected_tbox = targets[i][:, 2:6] * pre_gen_gains[i] + selected_tbox[:, :2] -= grid + iou = bbox_iou(pbox.T, selected_tbox, x1y1x2y2=False, CIoU=True) # iou(prediction, target) + lbox += (1.0 - iou).mean() # iou loss + + # Objectness + tobj[b, a, gj, gi] = (1.0 - self.gr) + self.gr * iou.detach().clamp(0).type(tobj.dtype) # iou ratio + + # Classification + selected_tcls = targets[i][:, 1].long() + if self.nc > 1: # cls loss (only if multiple classes) + t = torch.full_like(ps[:, 5:], self.cn, device=device) # targets + t[range(n), selected_tcls] = self.cp + lcls += self.BCEcls(ps[:, 5:], t) # BCE + + # Append targets to text file + # with open('targets.txt', 'a') as file: + # [file.write('%11.5g ' * 4 % tuple(x) + '\n') for x in torch.cat((txy[i], twh[i]), 1)] + + n_aux = b_aux.shape[0] # number of targets + if n_aux: + ps_aux = pi_aux[b_aux, a_aux, gj_aux, gi_aux] # prediction subset corresponding to targets + grid_aux = torch.stack([gi_aux, gj_aux], dim=1) + pxy_aux = ps_aux[:, :2].sigmoid() * 2. - 0.5 + #pxy_aux = ps_aux[:, :2].sigmoid() * 3. - 1. + pwh_aux = (ps_aux[:, 2:4].sigmoid() * 2) ** 2 * anchors_aux[i] + pbox_aux = torch.cat((pxy_aux, pwh_aux), 1) # predicted box + selected_tbox_aux = targets_aux[i][:, 2:6] * pre_gen_gains_aux[i] + selected_tbox_aux[:, :2] -= grid_aux + iou_aux = bbox_iou(pbox_aux.T, selected_tbox_aux, x1y1x2y2=False, CIoU=True) # iou(prediction, target) + lbox += 0.25 * (1.0 - iou_aux).mean() # iou loss + + # Objectness + tobj_aux[b_aux, a_aux, gj_aux, gi_aux] = (1.0 - self.gr) + self.gr * iou_aux.detach().clamp(0).type(tobj_aux.dtype) # iou ratio + + # Classification + selected_tcls_aux = targets_aux[i][:, 1].long() + if self.nc > 1: # cls loss (only if multiple classes) + t_aux = torch.full_like(ps_aux[:, 5:], self.cn, device=device) # targets + t_aux[range(n_aux), selected_tcls_aux] = self.cp + lcls += 0.25 * self.BCEcls(ps_aux[:, 5:], t_aux) # BCE + + obji = self.BCEobj(pi[..., 4], tobj) + obji_aux = self.BCEobj(pi_aux[..., 4], tobj_aux) + lobj += obji * self.balance[i] + 0.25 * obji_aux * self.balance[i] # obj loss + if self.autobalance: + self.balance[i] = self.balance[i] * 0.9999 + 0.0001 / obji.detach().item() + + if self.autobalance: + self.balance = [x / self.balance[self.ssi] for x in self.balance] + lbox *= self.hyp['box'] + lobj *= self.hyp['obj'] + lcls *= self.hyp['cls'] + bs = tobj.shape[0] # batch size + + loss = lbox + lobj + lcls + return loss * bs, torch.cat((lbox, lobj, lcls, loss)).detach() + + def build_targets(self, p, targets, imgs): + + indices, anch = self.find_3_positive(p, targets) + + matching_bs = [[] for pp in p] + matching_as = [[] for pp in p] + matching_gjs = [[] for pp in p] + matching_gis = [[] for pp in p] + matching_targets = [[] for pp in p] + matching_anchs = [[] for pp in p] + + nl = len(p) + + for batch_idx in range(p[0].shape[0]): + + b_idx = targets[:, 0]==batch_idx + this_target = targets[b_idx] + if this_target.shape[0] == 0: + continue + + txywh = this_target[:, 2:6] * imgs[batch_idx].shape[1] + txyxy = xywh2xyxy(txywh) + + pxyxys = [] + p_cls = [] + p_obj = [] + from_which_layer = [] + all_b = [] + all_a = [] + all_gj = [] + all_gi = [] + all_anch = [] + + for i, pi in enumerate(p): + + b, a, gj, gi = indices[i] + idx = (b == batch_idx) + b, a, gj, gi = b[idx], a[idx], gj[idx], gi[idx] + all_b.append(b) + all_a.append(a) + all_gj.append(gj) + all_gi.append(gi) + all_anch.append(anch[i][idx]) + from_which_layer.append(torch.ones(size=(len(b),)) * i) + + fg_pred = pi[b, a, gj, gi] + p_obj.append(fg_pred[:, 4:5]) + p_cls.append(fg_pred[:, 5:]) + + grid = torch.stack([gi, gj], dim=1) + pxy = (fg_pred[:, :2].sigmoid() * 2. - 0.5 + grid) * self.stride[i] #/ 8. + #pxy = (fg_pred[:, :2].sigmoid() * 3. - 1. + grid) * self.stride[i] + pwh = (fg_pred[:, 2:4].sigmoid() * 2) ** 2 * anch[i][idx] * self.stride[i] #/ 8. + pxywh = torch.cat([pxy, pwh], dim=-1) + pxyxy = xywh2xyxy(pxywh) + pxyxys.append(pxyxy) + + pxyxys = torch.cat(pxyxys, dim=0) + if pxyxys.shape[0] == 0: + continue + p_obj = torch.cat(p_obj, dim=0) + p_cls = torch.cat(p_cls, dim=0) + from_which_layer = torch.cat(from_which_layer, dim=0) + all_b = torch.cat(all_b, dim=0) + all_a = torch.cat(all_a, dim=0) + all_gj = torch.cat(all_gj, dim=0) + all_gi = torch.cat(all_gi, dim=0) + all_anch = torch.cat(all_anch, dim=0) + + pair_wise_iou = box_iou(txyxy, pxyxys) + + pair_wise_iou_loss = -torch.log(pair_wise_iou + 1e-8) + + top_k, _ = torch.topk(pair_wise_iou, min(20, pair_wise_iou.shape[1]), dim=1) + dynamic_ks = torch.clamp(top_k.sum(1).int(), min=1) + + gt_cls_per_image = ( + F.one_hot(this_target[:, 1].to(torch.int64), self.nc) + .float() + .unsqueeze(1) + .repeat(1, pxyxys.shape[0], 1) + ) + + num_gt = this_target.shape[0] + cls_preds_ = ( + p_cls.float().unsqueeze(0).repeat(num_gt, 1, 1).sigmoid_() + * p_obj.unsqueeze(0).repeat(num_gt, 1, 1).sigmoid_() + ) + + y = cls_preds_.sqrt_() + pair_wise_cls_loss = F.binary_cross_entropy_with_logits( + torch.log(y/(1-y)) , gt_cls_per_image, reduction="none" + ).sum(-1) + del cls_preds_ + + cost = ( + pair_wise_cls_loss + + 3.0 * pair_wise_iou_loss + ) + + matching_matrix = torch.zeros_like(cost) + + for gt_idx in range(num_gt): + _, pos_idx = torch.topk( + cost[gt_idx], k=dynamic_ks[gt_idx].item(), largest=False + ) + matching_matrix[gt_idx][pos_idx] = 1.0 + + del top_k, dynamic_ks + anchor_matching_gt = matching_matrix.sum(0) + if (anchor_matching_gt > 1).sum() > 0: + _, cost_argmin = torch.min(cost[:, anchor_matching_gt > 1], dim=0) + matching_matrix[:, anchor_matching_gt > 1] *= 0.0 + matching_matrix[cost_argmin, anchor_matching_gt > 1] = 1.0 + fg_mask_inboxes = matching_matrix.sum(0) > 0.0 + matched_gt_inds = matching_matrix[:, fg_mask_inboxes].argmax(0) + + from_which_layer = from_which_layer[fg_mask_inboxes] + all_b = all_b[fg_mask_inboxes] + all_a = all_a[fg_mask_inboxes] + all_gj = all_gj[fg_mask_inboxes] + all_gi = all_gi[fg_mask_inboxes] + all_anch = all_anch[fg_mask_inboxes] + + this_target = this_target[matched_gt_inds] + + for i in range(nl): + layer_idx = from_which_layer == i + matching_bs[i].append(all_b[layer_idx]) + matching_as[i].append(all_a[layer_idx]) + matching_gjs[i].append(all_gj[layer_idx]) + matching_gis[i].append(all_gi[layer_idx]) + matching_targets[i].append(this_target[layer_idx]) + matching_anchs[i].append(all_anch[layer_idx]) + + for i in range(nl): + if matching_targets[i] != []: + matching_bs[i] = torch.cat(matching_bs[i], dim=0) + matching_as[i] = torch.cat(matching_as[i], dim=0) + matching_gjs[i] = torch.cat(matching_gjs[i], dim=0) + matching_gis[i] = torch.cat(matching_gis[i], dim=0) + matching_targets[i] = torch.cat(matching_targets[i], dim=0) + matching_anchs[i] = torch.cat(matching_anchs[i], dim=0) + else: + matching_bs[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_as[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_gjs[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_gis[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_targets[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_anchs[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + + return matching_bs, matching_as, matching_gjs, matching_gis, matching_targets, matching_anchs + + def build_targets2(self, p, targets, imgs): + + indices, anch = self.find_5_positive(p, targets) + + matching_bs = [[] for pp in p] + matching_as = [[] for pp in p] + matching_gjs = [[] for pp in p] + matching_gis = [[] for pp in p] + matching_targets = [[] for pp in p] + matching_anchs = [[] for pp in p] + + nl = len(p) + + for batch_idx in range(p[0].shape[0]): + + b_idx = targets[:, 0]==batch_idx + this_target = targets[b_idx] + if this_target.shape[0] == 0: + continue + + txywh = this_target[:, 2:6] * imgs[batch_idx].shape[1] + txyxy = xywh2xyxy(txywh) + + pxyxys = [] + p_cls = [] + p_obj = [] + from_which_layer = [] + all_b = [] + all_a = [] + all_gj = [] + all_gi = [] + all_anch = [] + + for i, pi in enumerate(p): + + b, a, gj, gi = indices[i] + idx = (b == batch_idx) + b, a, gj, gi = b[idx], a[idx], gj[idx], gi[idx] + all_b.append(b) + all_a.append(a) + all_gj.append(gj) + all_gi.append(gi) + all_anch.append(anch[i][idx]) + from_which_layer.append(torch.ones(size=(len(b),)) * i) + + fg_pred = pi[b, a, gj, gi] + p_obj.append(fg_pred[:, 4:5]) + p_cls.append(fg_pred[:, 5:]) + + grid = torch.stack([gi, gj], dim=1) + pxy = (fg_pred[:, :2].sigmoid() * 2. - 0.5 + grid) * self.stride[i] #/ 8. + #pxy = (fg_pred[:, :2].sigmoid() * 3. - 1. + grid) * self.stride[i] + pwh = (fg_pred[:, 2:4].sigmoid() * 2) ** 2 * anch[i][idx] * self.stride[i] #/ 8. + pxywh = torch.cat([pxy, pwh], dim=-1) + pxyxy = xywh2xyxy(pxywh) + pxyxys.append(pxyxy) + + pxyxys = torch.cat(pxyxys, dim=0) + if pxyxys.shape[0] == 0: + continue + p_obj = torch.cat(p_obj, dim=0) + p_cls = torch.cat(p_cls, dim=0) + from_which_layer = torch.cat(from_which_layer, dim=0) + all_b = torch.cat(all_b, dim=0) + all_a = torch.cat(all_a, dim=0) + all_gj = torch.cat(all_gj, dim=0) + all_gi = torch.cat(all_gi, dim=0) + all_anch = torch.cat(all_anch, dim=0) + + pair_wise_iou = box_iou(txyxy, pxyxys) + + pair_wise_iou_loss = -torch.log(pair_wise_iou + 1e-8) + + top_k, _ = torch.topk(pair_wise_iou, min(20, pair_wise_iou.shape[1]), dim=1) + dynamic_ks = torch.clamp(top_k.sum(1).int(), min=1) + + gt_cls_per_image = ( + F.one_hot(this_target[:, 1].to(torch.int64), self.nc) + .float() + .unsqueeze(1) + .repeat(1, pxyxys.shape[0], 1) + ) + + num_gt = this_target.shape[0] + cls_preds_ = ( + p_cls.float().unsqueeze(0).repeat(num_gt, 1, 1).sigmoid_() + * p_obj.unsqueeze(0).repeat(num_gt, 1, 1).sigmoid_() + ) + + y = cls_preds_.sqrt_() + pair_wise_cls_loss = F.binary_cross_entropy_with_logits( + torch.log(y/(1-y)) , gt_cls_per_image, reduction="none" + ).sum(-1) + del cls_preds_ + + cost = ( + pair_wise_cls_loss + + 3.0 * pair_wise_iou_loss + ) + + matching_matrix = torch.zeros_like(cost) + + for gt_idx in range(num_gt): + _, pos_idx = torch.topk( + cost[gt_idx], k=dynamic_ks[gt_idx].item(), largest=False + ) + matching_matrix[gt_idx][pos_idx] = 1.0 + + del top_k, dynamic_ks + anchor_matching_gt = matching_matrix.sum(0) + if (anchor_matching_gt > 1).sum() > 0: + _, cost_argmin = torch.min(cost[:, anchor_matching_gt > 1], dim=0) + matching_matrix[:, anchor_matching_gt > 1] *= 0.0 + matching_matrix[cost_argmin, anchor_matching_gt > 1] = 1.0 + fg_mask_inboxes = matching_matrix.sum(0) > 0.0 + matched_gt_inds = matching_matrix[:, fg_mask_inboxes].argmax(0) + + from_which_layer = from_which_layer[fg_mask_inboxes] + all_b = all_b[fg_mask_inboxes] + all_a = all_a[fg_mask_inboxes] + all_gj = all_gj[fg_mask_inboxes] + all_gi = all_gi[fg_mask_inboxes] + all_anch = all_anch[fg_mask_inboxes] + + this_target = this_target[matched_gt_inds] + + for i in range(nl): + layer_idx = from_which_layer == i + matching_bs[i].append(all_b[layer_idx]) + matching_as[i].append(all_a[layer_idx]) + matching_gjs[i].append(all_gj[layer_idx]) + matching_gis[i].append(all_gi[layer_idx]) + matching_targets[i].append(this_target[layer_idx]) + matching_anchs[i].append(all_anch[layer_idx]) + + for i in range(nl): + if matching_targets[i] != []: + matching_bs[i] = torch.cat(matching_bs[i], dim=0) + matching_as[i] = torch.cat(matching_as[i], dim=0) + matching_gjs[i] = torch.cat(matching_gjs[i], dim=0) + matching_gis[i] = torch.cat(matching_gis[i], dim=0) + matching_targets[i] = torch.cat(matching_targets[i], dim=0) + matching_anchs[i] = torch.cat(matching_anchs[i], dim=0) + else: + matching_bs[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_as[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_gjs[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_gis[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_targets[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + matching_anchs[i] = torch.tensor([], device='cuda:0', dtype=torch.int64) + + return matching_bs, matching_as, matching_gjs, matching_gis, matching_targets, matching_anchs + + def find_5_positive(self, p, targets): + # Build targets for compute_loss(), input targets(image,class,x,y,w,h) + na, nt = self.na, targets.shape[0] # number of anchors, targets + indices, anch = [], [] + gain = torch.ones(7, device=targets.device).long() # normalized to gridspace gain + ai = torch.arange(na, device=targets.device).float().view(na, 1).repeat(1, nt) # same as .repeat_interleave(nt) + targets = torch.cat((targets.repeat(na, 1, 1), ai[:, :, None]), 2) # append anchor indices + + g = 1.0 # bias + off = torch.tensor([[0, 0], + [1, 0], [0, 1], [-1, 0], [0, -1], # j,k,l,m + # [1, 1], [1, -1], [-1, 1], [-1, -1], # jk,jm,lk,lm + ], device=targets.device).float() * g # offsets + + for i in range(self.nl): + anchors = self.anchors[i] + gain[2:6] = torch.tensor(p[i].shape)[[3, 2, 3, 2]] # xyxy gain + + # Match targets to anchors + t = targets * gain + if nt: + # Matches + r = t[:, :, 4:6] / anchors[:, None] # wh ratio + j = torch.max(r, 1. / r).max(2)[0] < self.hyp['anchor_t'] # compare + # j = wh_iou(anchors, t[:, 4:6]) > model.hyp['iou_t'] # iou(3,n)=wh_iou(anchors(3,2), gwh(n,2)) + t = t[j] # filter + + # Offsets + gxy = t[:, 2:4] # grid xy + gxi = gain[[2, 3]] - gxy # inverse + j, k = ((gxy % 1. < g) & (gxy > 1.)).T + l, m = ((gxi % 1. < g) & (gxi > 1.)).T + j = torch.stack((torch.ones_like(j), j, k, l, m)) + t = t.repeat((5, 1, 1))[j] + offsets = (torch.zeros_like(gxy)[None] + off[:, None])[j] + else: + t = targets[0] + offsets = 0 + + # Define + b, c = t[:, :2].long().T # image, class + gxy = t[:, 2:4] # grid xy + gwh = t[:, 4:6] # grid wh + gij = (gxy - offsets).long() + gi, gj = gij.T # grid xy indices + + # Append + a = t[:, 6].long() # anchor indices + indices.append((b, a, gj.clamp_(0, gain[3] - 1), gi.clamp_(0, gain[2] - 1))) # image, anchor, grid indices + anch.append(anchors[a]) # anchors + + return indices, anch + + def find_3_positive(self, p, targets): + # Build targets for compute_loss(), input targets(image,class,x,y,w,h) + na, nt = self.na, targets.shape[0] # number of anchors, targets + indices, anch = [], [] + gain = torch.ones(7, device=targets.device).long() # normalized to gridspace gain + ai = torch.arange(na, device=targets.device).float().view(na, 1).repeat(1, nt) # same as .repeat_interleave(nt) + targets = torch.cat((targets.repeat(na, 1, 1), ai[:, :, None]), 2) # append anchor indices + + g = 0.5 # bias + off = torch.tensor([[0, 0], + [1, 0], [0, 1], [-1, 0], [0, -1], # j,k,l,m + # [1, 1], [1, -1], [-1, 1], [-1, -1], # jk,jm,lk,lm + ], device=targets.device).float() * g # offsets + + for i in range(self.nl): + anchors = self.anchors[i] + gain[2:6] = torch.tensor(p[i].shape)[[3, 2, 3, 2]] # xyxy gain + + # Match targets to anchors + t = targets * gain + if nt: + # Matches + r = t[:, :, 4:6] / anchors[:, None] # wh ratio + j = torch.max(r, 1. / r).max(2)[0] < self.hyp['anchor_t'] # compare + # j = wh_iou(anchors, t[:, 4:6]) > model.hyp['iou_t'] # iou(3,n)=wh_iou(anchors(3,2), gwh(n,2)) + t = t[j] # filter + + # Offsets + gxy = t[:, 2:4] # grid xy + gxi = gain[[2, 3]] - gxy # inverse + j, k = ((gxy % 1. < g) & (gxy > 1.)).T + l, m = ((gxi % 1. < g) & (gxi > 1.)).T + j = torch.stack((torch.ones_like(j), j, k, l, m)) + t = t.repeat((5, 1, 1))[j] + offsets = (torch.zeros_like(gxy)[None] + off[:, None])[j] + else: + t = targets[0] + offsets = 0 + + # Define + b, c = t[:, :2].long().T # image, class + gxy = t[:, 2:4] # grid xy + gwh = t[:, 4:6] # grid wh + gij = (gxy - offsets).long() + gi, gj = gij.T # grid xy indices + + # Append + a = t[:, 6].long() # anchor indices + indices.append((b, a, gj.clamp_(0, gain[3] - 1), gi.clamp_(0, gain[2] - 1))) # image, anchor, grid indices + anch.append(anchors[a]) # anchors + + return indices, anch diff --git a/utils/metrics.py b/utils/metrics.py new file mode 100644 index 0000000..666b8c7 --- /dev/null +++ b/utils/metrics.py @@ -0,0 +1,223 @@ +# Model validation metrics + +from pathlib import Path + +import matplotlib.pyplot as plt +import numpy as np +import torch + +from . import general + + +def fitness(x): + # Model fitness as a weighted combination of metrics + w = [0.0, 0.0, 0.1, 0.9] # weights for [P, R, mAP@0.5, mAP@0.5:0.95] + return (x[:, :4] * w).sum(1) + + +def ap_per_class(tp, conf, pred_cls, target_cls, plot=False, save_dir='.', names=()): + """ Compute the average precision, given the recall and precision curves. + Source: https://github.com/rafaelpadilla/Object-Detection-Metrics. + # Arguments + tp: True positives (nparray, nx1 or nx10). + conf: Objectness value from 0-1 (nparray). + pred_cls: Predicted object classes (nparray). + target_cls: True object classes (nparray). + plot: Plot precision-recall curve at mAP@0.5 + save_dir: Plot save directory + # Returns + The average precision as computed in py-faster-rcnn. + """ + + # Sort by objectness + i = np.argsort(-conf) + tp, conf, pred_cls = tp[i], conf[i], pred_cls[i] + + # Find unique classes + unique_classes = np.unique(target_cls) + nc = unique_classes.shape[0] # number of classes, number of detections + + # Create Precision-Recall curve and compute AP for each class + px, py = np.linspace(0, 1, 1000), [] # for plotting + ap, p, r = np.zeros((nc, tp.shape[1])), np.zeros((nc, 1000)), np.zeros((nc, 1000)) + for ci, c in enumerate(unique_classes): + i = pred_cls == c + n_l = (target_cls == c).sum() # number of labels + n_p = i.sum() # number of predictions + + if n_p == 0 or n_l == 0: + continue + else: + # Accumulate FPs and TPs + fpc = (1 - tp[i]).cumsum(0) + tpc = tp[i].cumsum(0) + + # Recall + recall = tpc / (n_l + 1e-16) # recall curve + r[ci] = np.interp(-px, -conf[i], recall[:, 0], left=0) # negative x, xp because xp decreases + + # Precision + precision = tpc / (tpc + fpc) # precision curve + p[ci] = np.interp(-px, -conf[i], precision[:, 0], left=1) # p at pr_score + + # AP from recall-precision curve + for j in range(tp.shape[1]): + ap[ci, j], mpre, mrec = compute_ap(recall[:, j], precision[:, j]) + if plot and j == 0: + py.append(np.interp(px, mrec, mpre)) # precision at mAP@0.5 + + # Compute F1 (harmonic mean of precision and recall) + f1 = 2 * p * r / (p + r + 1e-16) + if plot: + plot_pr_curve(px, py, ap, Path(save_dir) / 'PR_curve.png', names) + plot_mc_curve(px, f1, Path(save_dir) / 'F1_curve.png', names, ylabel='F1') + plot_mc_curve(px, p, Path(save_dir) / 'P_curve.png', names, ylabel='Precision') + plot_mc_curve(px, r, Path(save_dir) / 'R_curve.png', names, ylabel='Recall') + + i = f1.mean(0).argmax() # max F1 index + return p[:, i], r[:, i], ap, f1[:, i], unique_classes.astype('int32') + + +def compute_ap(recall, precision): + """ Compute the average precision, given the recall and precision curves + # Arguments + recall: The recall curve (list) + precision: The precision curve (list) + # Returns + Average precision, precision curve, recall curve + """ + + # Append sentinel values to beginning and end + mrec = np.concatenate(([0.], recall, [recall[-1] + 0.01])) + mpre = np.concatenate(([1.], precision, [0.])) + + # Compute the precision envelope + mpre = np.flip(np.maximum.accumulate(np.flip(mpre))) + + # Integrate area under curve + method = 'interp' # methods: 'continuous', 'interp' + if method == 'interp': + x = np.linspace(0, 1, 101) # 101-point interp (COCO) + ap = np.trapz(np.interp(x, mrec, mpre), x) # integrate + else: # 'continuous' + i = np.where(mrec[1:] != mrec[:-1])[0] # points where x axis (recall) changes + ap = np.sum((mrec[i + 1] - mrec[i]) * mpre[i + 1]) # area under curve + + return ap, mpre, mrec + + +class ConfusionMatrix: + # Updated version of https://github.com/kaanakan/object_detection_confusion_matrix + def __init__(self, nc, conf=0.25, iou_thres=0.45): + self.matrix = np.zeros((nc + 1, nc + 1)) + self.nc = nc # number of classes + self.conf = conf + self.iou_thres = iou_thres + + def process_batch(self, detections, labels): + """ + Return intersection-over-union (Jaccard index) of boxes. + Both sets of boxes are expected to be in (x1, y1, x2, y2) format. + Arguments: + detections (Array[N, 6]), x1, y1, x2, y2, conf, class + labels (Array[M, 5]), class, x1, y1, x2, y2 + Returns: + None, updates confusion matrix accordingly + """ + detections = detections[detections[:, 4] > self.conf] + gt_classes = labels[:, 0].int() + detection_classes = detections[:, 5].int() + iou = general.box_iou(labels[:, 1:], detections[:, :4]) + + x = torch.where(iou > self.iou_thres) + if x[0].shape[0]: + matches = torch.cat((torch.stack(x, 1), iou[x[0], x[1]][:, None]), 1).cpu().numpy() + if x[0].shape[0] > 1: + matches = matches[matches[:, 2].argsort()[::-1]] + matches = matches[np.unique(matches[:, 1], return_index=True)[1]] + matches = matches[matches[:, 2].argsort()[::-1]] + matches = matches[np.unique(matches[:, 0], return_index=True)[1]] + else: + matches = np.zeros((0, 3)) + + n = matches.shape[0] > 0 + m0, m1, _ = matches.transpose().astype(np.int16) + for i, gc in enumerate(gt_classes): + j = m0 == i + if n and sum(j) == 1: + self.matrix[gc, detection_classes[m1[j]]] += 1 # correct + else: + self.matrix[self.nc, gc] += 1 # background FP + + if n: + for i, dc in enumerate(detection_classes): + if not any(m1 == i): + self.matrix[dc, self.nc] += 1 # background FN + + def matrix(self): + return self.matrix + + def plot(self, save_dir='', names=()): + try: + import seaborn as sn + + array = self.matrix / (self.matrix.sum(0).reshape(1, self.nc + 1) + 1E-6) # normalize + array[array < 0.005] = np.nan # don't annotate (would appear as 0.00) + + fig = plt.figure(figsize=(12, 9), tight_layout=True) + sn.set(font_scale=1.0 if self.nc < 50 else 0.8) # for label size + labels = (0 < len(names) < 99) and len(names) == self.nc # apply names to ticklabels + sn.heatmap(array, annot=self.nc < 30, annot_kws={"size": 8}, cmap='Blues', fmt='.2f', square=True, + xticklabels=names + ['background FP'] if labels else "auto", + yticklabels=names + ['background FN'] if labels else "auto").set_facecolor((1, 1, 1)) + fig.axes[0].set_xlabel('True') + fig.axes[0].set_ylabel('Predicted') + fig.savefig(Path(save_dir) / 'confusion_matrix.png', dpi=250) + except Exception as e: + pass + + def print(self): + for i in range(self.nc + 1): + print(' '.join(map(str, self.matrix[i]))) + + +# Plots ---------------------------------------------------------------------------------------------------------------- + +def plot_pr_curve(px, py, ap, save_dir='pr_curve.png', names=()): + # Precision-recall curve + fig, ax = plt.subplots(1, 1, figsize=(9, 6), tight_layout=True) + py = np.stack(py, axis=1) + + if 0 < len(names) < 21: # display per-class legend if < 21 classes + for i, y in enumerate(py.T): + ax.plot(px, y, linewidth=1, label=f'{names[i]} {ap[i, 0]:.3f}') # plot(recall, precision) + else: + ax.plot(px, py, linewidth=1, color='grey') # plot(recall, precision) + + ax.plot(px, py.mean(1), linewidth=3, color='blue', label='all classes %.3f mAP@0.5' % ap[:, 0].mean()) + ax.set_xlabel('Recall') + ax.set_ylabel('Precision') + ax.set_xlim(0, 1) + ax.set_ylim(0, 1) + plt.legend(bbox_to_anchor=(1.04, 1), loc="upper left") + fig.savefig(Path(save_dir), dpi=250) + + +def plot_mc_curve(px, py, save_dir='mc_curve.png', names=(), xlabel='Confidence', ylabel='Metric'): + # Metric-confidence curve + fig, ax = plt.subplots(1, 1, figsize=(9, 6), tight_layout=True) + + if 0 < len(names) < 21: # display per-class legend if < 21 classes + for i, y in enumerate(py): + ax.plot(px, y, linewidth=1, label=f'{names[i]}') # plot(confidence, metric) + else: + ax.plot(px, py.T, linewidth=1, color='grey') # plot(confidence, metric) + + y = py.mean(0) + ax.plot(px, y, linewidth=3, color='blue', label=f'all classes {y.max():.2f} at {px[y.argmax()]:.3f}') + ax.set_xlabel(xlabel) + ax.set_ylabel(ylabel) + ax.set_xlim(0, 1) + ax.set_ylim(0, 1) + plt.legend(bbox_to_anchor=(1.04, 1), loc="upper left") + fig.savefig(Path(save_dir), dpi=250) diff --git a/utils/plots.py b/utils/plots.py new file mode 100644 index 0000000..fdd8d0e --- /dev/null +++ b/utils/plots.py @@ -0,0 +1,489 @@ +# Plotting utils + +import glob +import math +import os +import random +from copy import copy +from pathlib import Path + +import cv2 +import matplotlib +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd +import seaborn as sns +import torch +import yaml +from PIL import Image, ImageDraw, ImageFont +from scipy.signal import butter, filtfilt + +from utils.general import xywh2xyxy, xyxy2xywh +from utils.metrics import fitness + +# Settings +matplotlib.rc('font', **{'size': 11}) +matplotlib.use('Agg') # for writing to files only + + +def color_list(): + # Return first 10 plt colors as (r,g,b) https://stackoverflow.com/questions/51350872/python-from-color-name-to-rgb + def hex2rgb(h): + return tuple(int(h[1 + i:1 + i + 2], 16) for i in (0, 2, 4)) + + return [hex2rgb(h) for h in matplotlib.colors.TABLEAU_COLORS.values()] # or BASE_ (8), CSS4_ (148), XKCD_ (949) + + +def hist2d(x, y, n=100): + # 2d histogram used in labels.png and evolve.png + xedges, yedges = np.linspace(x.min(), x.max(), n), np.linspace(y.min(), y.max(), n) + hist, xedges, yedges = np.histogram2d(x, y, (xedges, yedges)) + xidx = np.clip(np.digitize(x, xedges) - 1, 0, hist.shape[0] - 1) + yidx = np.clip(np.digitize(y, yedges) - 1, 0, hist.shape[1] - 1) + return np.log(hist[xidx, yidx]) + + +def butter_lowpass_filtfilt(data, cutoff=1500, fs=50000, order=5): + # https://stackoverflow.com/questions/28536191/how-to-filter-smooth-with-scipy-numpy + def butter_lowpass(cutoff, fs, order): + nyq = 0.5 * fs + normal_cutoff = cutoff / nyq + return butter(order, normal_cutoff, btype='low', analog=False) + + b, a = butter_lowpass(cutoff, fs, order=order) + return filtfilt(b, a, data) # forward-backward filter + + +def plot_one_box(x, img, color=None, label=None, line_thickness=3): + # Plots one bounding box on image img + tl = line_thickness or round(0.002 * (img.shape[0] + img.shape[1]) / 2) + 1 # line/font thickness + color = color or [random.randint(0, 255) for _ in range(3)] + c1, c2 = (int(x[0]), int(x[1])), (int(x[2]), int(x[3])) + cv2.rectangle(img, c1, c2, color, thickness=tl, lineType=cv2.LINE_AA) + if label: + tf = max(tl - 1, 1) # font thickness + t_size = cv2.getTextSize(label, 0, fontScale=tl / 3, thickness=tf)[0] + c2 = c1[0] + t_size[0], c1[1] - t_size[1] - 3 + cv2.rectangle(img, c1, c2, color, -1, cv2.LINE_AA) # filled + cv2.putText(img, label, (c1[0], c1[1] - 2), 0, tl / 3, [225, 255, 255], thickness=tf, lineType=cv2.LINE_AA) + + +def plot_one_box_PIL(box, img, color=None, label=None, line_thickness=None): + img = Image.fromarray(img) + draw = ImageDraw.Draw(img) + line_thickness = line_thickness or max(int(min(img.size) / 200), 2) + draw.rectangle(box, width=line_thickness, outline=tuple(color)) # plot + if label: + fontsize = max(round(max(img.size) / 40), 12) + font = ImageFont.truetype("Arial.ttf", fontsize) + txt_width, txt_height = font.getsize(label) + draw.rectangle([box[0], box[1] - txt_height + 4, box[0] + txt_width, box[1]], fill=tuple(color)) + draw.text((box[0], box[1] - txt_height + 1), label, fill=(255, 255, 255), font=font) + return np.asarray(img) + + +def plot_wh_methods(): # from utils.plots import *; plot_wh_methods() + # Compares the two methods for width-height anchor multiplication + # https://github.com/ultralytics/yolov3/issues/168 + x = np.arange(-4.0, 4.0, .1) + ya = np.exp(x) + yb = torch.sigmoid(torch.from_numpy(x)).numpy() * 2 + + fig = plt.figure(figsize=(6, 3), tight_layout=True) + plt.plot(x, ya, '.-', label='YOLOv3') + plt.plot(x, yb ** 2, '.-', label='YOLOR ^2') + plt.plot(x, yb ** 1.6, '.-', label='YOLOR ^1.6') + plt.xlim(left=-4, right=4) + plt.ylim(bottom=0, top=6) + plt.xlabel('input') + plt.ylabel('output') + plt.grid() + plt.legend() + fig.savefig('comparison.png', dpi=200) + + +def output_to_target(output): + # Convert model output to target format [batch_id, class_id, x, y, w, h, conf] + targets = [] + for i, o in enumerate(output): + for *box, conf, cls in o.cpu().numpy(): + targets.append([i, cls, *list(*xyxy2xywh(np.array(box)[None])), conf]) + return np.array(targets) + + +def plot_images(images, targets, paths=None, fname='images.jpg', names=None, max_size=640, max_subplots=16): + # Plot image grid with labels + + if isinstance(images, torch.Tensor): + images = images.cpu().float().numpy() + if isinstance(targets, torch.Tensor): + targets = targets.cpu().numpy() + + # un-normalise + if np.max(images[0]) <= 1: + images *= 255 + + tl = 3 # line thickness + tf = max(tl - 1, 1) # font thickness + bs, _, h, w = images.shape # batch size, _, height, width + bs = min(bs, max_subplots) # limit plot images + ns = np.ceil(bs ** 0.5) # number of subplots (square) + + # Check if we should resize + scale_factor = max_size / max(h, w) + if scale_factor < 1: + h = math.ceil(scale_factor * h) + w = math.ceil(scale_factor * w) + + colors = color_list() # list of colors + mosaic = np.full((int(ns * h), int(ns * w), 3), 255, dtype=np.uint8) # init + for i, img in enumerate(images): + if i == max_subplots: # if last batch has fewer images than we expect + break + + block_x = int(w * (i // ns)) + block_y = int(h * (i % ns)) + + img = img.transpose(1, 2, 0) + if scale_factor < 1: + img = cv2.resize(img, (w, h)) + + mosaic[block_y:block_y + h, block_x:block_x + w, :] = img + if len(targets) > 0: + image_targets = targets[targets[:, 0] == i] + boxes = xywh2xyxy(image_targets[:, 2:6]).T + classes = image_targets[:, 1].astype('int') + labels = image_targets.shape[1] == 6 # labels if no conf column + conf = None if labels else image_targets[:, 6] # check for confidence presence (label vs pred) + + if boxes.shape[1]: + if boxes.max() <= 1.01: # if normalized with tolerance 0.01 + boxes[[0, 2]] *= w # scale to pixels + boxes[[1, 3]] *= h + elif scale_factor < 1: # absolute coords need scale if image scales + boxes *= scale_factor + boxes[[0, 2]] += block_x + boxes[[1, 3]] += block_y + for j, box in enumerate(boxes.T): + cls = int(classes[j]) + color = colors[cls % len(colors)] + cls = names[cls] if names else cls + if labels or conf[j] > 0.25: # 0.25 conf thresh + label = '%s' % cls if labels else '%s %.1f' % (cls, conf[j]) + plot_one_box(box, mosaic, label=label, color=color, line_thickness=tl) + + # Draw image filename labels + if paths: + label = Path(paths[i]).name[:40] # trim to 40 char + t_size = cv2.getTextSize(label, 0, fontScale=tl / 3, thickness=tf)[0] + cv2.putText(mosaic, label, (block_x + 5, block_y + t_size[1] + 5), 0, tl / 3, [220, 220, 220], thickness=tf, + lineType=cv2.LINE_AA) + + # Image border + cv2.rectangle(mosaic, (block_x, block_y), (block_x + w, block_y + h), (255, 255, 255), thickness=3) + + if fname: + r = min(1280. / max(h, w) / ns, 1.0) # ratio to limit image size + mosaic = cv2.resize(mosaic, (int(ns * w * r), int(ns * h * r)), interpolation=cv2.INTER_AREA) + # cv2.imwrite(fname, cv2.cvtColor(mosaic, cv2.COLOR_BGR2RGB)) # cv2 save + Image.fromarray(mosaic).save(fname) # PIL save + return mosaic + + +def plot_lr_scheduler(optimizer, scheduler, epochs=300, save_dir=''): + # Plot LR simulating training for full epochs + optimizer, scheduler = copy(optimizer), copy(scheduler) # do not modify originals + y = [] + for _ in range(epochs): + scheduler.step() + y.append(optimizer.param_groups[0]['lr']) + plt.plot(y, '.-', label='LR') + plt.xlabel('epoch') + plt.ylabel('LR') + plt.grid() + plt.xlim(0, epochs) + plt.ylim(0) + plt.savefig(Path(save_dir) / 'LR.png', dpi=200) + plt.close() + + +def plot_test_txt(): # from utils.plots import *; plot_test() + # Plot test.txt histograms + x = np.loadtxt('test.txt', dtype=np.float32) + box = xyxy2xywh(x[:, :4]) + cx, cy = box[:, 0], box[:, 1] + + fig, ax = plt.subplots(1, 1, figsize=(6, 6), tight_layout=True) + ax.hist2d(cx, cy, bins=600, cmax=10, cmin=0) + ax.set_aspect('equal') + plt.savefig('hist2d.png', dpi=300) + + fig, ax = plt.subplots(1, 2, figsize=(12, 6), tight_layout=True) + ax[0].hist(cx, bins=600) + ax[1].hist(cy, bins=600) + plt.savefig('hist1d.png', dpi=200) + + +def plot_targets_txt(): # from utils.plots import *; plot_targets_txt() + # Plot targets.txt histograms + x = np.loadtxt('targets.txt', dtype=np.float32).T + s = ['x targets', 'y targets', 'width targets', 'height targets'] + fig, ax = plt.subplots(2, 2, figsize=(8, 8), tight_layout=True) + ax = ax.ravel() + for i in range(4): + ax[i].hist(x[i], bins=100, label='%.3g +/- %.3g' % (x[i].mean(), x[i].std())) + ax[i].legend() + ax[i].set_title(s[i]) + plt.savefig('targets.jpg', dpi=200) + + +def plot_study_txt(path='', x=None): # from utils.plots import *; plot_study_txt() + # Plot study.txt generated by test.py + fig, ax = plt.subplots(2, 4, figsize=(10, 6), tight_layout=True) + # ax = ax.ravel() + + fig2, ax2 = plt.subplots(1, 1, figsize=(8, 4), tight_layout=True) + # for f in [Path(path) / f'study_coco_{x}.txt' for x in ['yolor-p6', 'yolor-w6', 'yolor-e6', 'yolor-d6']]: + for f in sorted(Path(path).glob('study*.txt')): + y = np.loadtxt(f, dtype=np.float32, usecols=[0, 1, 2, 3, 7, 8, 9], ndmin=2).T + x = np.arange(y.shape[1]) if x is None else np.array(x) + s = ['P', 'R', 'mAP@.5', 'mAP@.5:.95', 't_inference (ms/img)', 't_NMS (ms/img)', 't_total (ms/img)'] + # for i in range(7): + # ax[i].plot(x, y[i], '.-', linewidth=2, markersize=8) + # ax[i].set_title(s[i]) + + j = y[3].argmax() + 1 + ax2.plot(y[6, 1:j], y[3, 1:j] * 1E2, '.-', linewidth=2, markersize=8, + label=f.stem.replace('study_coco_', '').replace('yolo', 'YOLO')) + + ax2.plot(1E3 / np.array([209, 140, 97, 58, 35, 18]), [34.6, 40.5, 43.0, 47.5, 49.7, 51.5], + 'k.-', linewidth=2, markersize=8, alpha=.25, label='EfficientDet') + + ax2.grid(alpha=0.2) + ax2.set_yticks(np.arange(20, 60, 5)) + ax2.set_xlim(0, 57) + ax2.set_ylim(30, 55) + ax2.set_xlabel('GPU Speed (ms/img)') + ax2.set_ylabel('COCO AP val') + ax2.legend(loc='lower right') + plt.savefig(str(Path(path).name) + '.png', dpi=300) + + +def plot_labels(labels, names=(), save_dir=Path(''), loggers=None): + # plot dataset labels + print('Plotting labels... ') + c, b = labels[:, 0], labels[:, 1:].transpose() # classes, boxes + nc = int(c.max() + 1) # number of classes + colors = color_list() + x = pd.DataFrame(b.transpose(), columns=['x', 'y', 'width', 'height']) + + # seaborn correlogram + sns.pairplot(x, corner=True, diag_kind='auto', kind='hist', diag_kws=dict(bins=50), plot_kws=dict(pmax=0.9)) + plt.savefig(save_dir / 'labels_correlogram.jpg', dpi=200) + plt.close() + + # matplotlib labels + matplotlib.use('svg') # faster + ax = plt.subplots(2, 2, figsize=(8, 8), tight_layout=True)[1].ravel() + ax[0].hist(c, bins=np.linspace(0, nc, nc + 1) - 0.5, rwidth=0.8) + ax[0].set_ylabel('instances') + if 0 < len(names) < 30: + ax[0].set_xticks(range(len(names))) + ax[0].set_xticklabels(names, rotation=90, fontsize=10) + else: + ax[0].set_xlabel('classes') + sns.histplot(x, x='x', y='y', ax=ax[2], bins=50, pmax=0.9) + sns.histplot(x, x='width', y='height', ax=ax[3], bins=50, pmax=0.9) + + # rectangles + labels[:, 1:3] = 0.5 # center + labels[:, 1:] = xywh2xyxy(labels[:, 1:]) * 2000 + img = Image.fromarray(np.ones((2000, 2000, 3), dtype=np.uint8) * 255) + for cls, *box in labels[:1000]: + ImageDraw.Draw(img).rectangle(box, width=1, outline=colors[int(cls) % 10]) # plot + ax[1].imshow(img) + ax[1].axis('off') + + for a in [0, 1, 2, 3]: + for s in ['top', 'right', 'left', 'bottom']: + ax[a].spines[s].set_visible(False) + + plt.savefig(save_dir / 'labels.jpg', dpi=200) + matplotlib.use('Agg') + plt.close() + + # loggers + for k, v in loggers.items() or {}: + if k == 'wandb' and v: + v.log({"Labels": [v.Image(str(x), caption=x.name) for x in save_dir.glob('*labels*.jpg')]}, commit=False) + + +def plot_evolution(yaml_file='data/hyp.finetune.yaml'): # from utils.plots import *; plot_evolution() + # Plot hyperparameter evolution results in evolve.txt + with open(yaml_file) as f: + hyp = yaml.load(f, Loader=yaml.SafeLoader) + x = np.loadtxt('evolve.txt', ndmin=2) + f = fitness(x) + # weights = (f - f.min()) ** 2 # for weighted results + plt.figure(figsize=(10, 12), tight_layout=True) + matplotlib.rc('font', **{'size': 8}) + for i, (k, v) in enumerate(hyp.items()): + y = x[:, i + 7] + # mu = (y * weights).sum() / weights.sum() # best weighted result + mu = y[f.argmax()] # best single result + plt.subplot(6, 5, i + 1) + plt.scatter(y, f, c=hist2d(y, f, 20), cmap='viridis', alpha=.8, edgecolors='none') + plt.plot(mu, f.max(), 'k+', markersize=15) + plt.title('%s = %.3g' % (k, mu), fontdict={'size': 9}) # limit to 40 characters + if i % 5 != 0: + plt.yticks([]) + print('%15s: %.3g' % (k, mu)) + plt.savefig('evolve.png', dpi=200) + print('\nPlot saved as evolve.png') + + +def profile_idetection(start=0, stop=0, labels=(), save_dir=''): + # Plot iDetection '*.txt' per-image logs. from utils.plots import *; profile_idetection() + ax = plt.subplots(2, 4, figsize=(12, 6), tight_layout=True)[1].ravel() + s = ['Images', 'Free Storage (GB)', 'RAM Usage (GB)', 'Battery', 'dt_raw (ms)', 'dt_smooth (ms)', 'real-world FPS'] + files = list(Path(save_dir).glob('frames*.txt')) + for fi, f in enumerate(files): + try: + results = np.loadtxt(f, ndmin=2).T[:, 90:-30] # clip first and last rows + n = results.shape[1] # number of rows + x = np.arange(start, min(stop, n) if stop else n) + results = results[:, x] + t = (results[0] - results[0].min()) # set t0=0s + results[0] = x + for i, a in enumerate(ax): + if i < len(results): + label = labels[fi] if len(labels) else f.stem.replace('frames_', '') + a.plot(t, results[i], marker='.', label=label, linewidth=1, markersize=5) + a.set_title(s[i]) + a.set_xlabel('time (s)') + # if fi == len(files) - 1: + # a.set_ylim(bottom=0) + for side in ['top', 'right']: + a.spines[side].set_visible(False) + else: + a.remove() + except Exception as e: + print('Warning: Plotting error for %s; %s' % (f, e)) + + ax[1].legend() + plt.savefig(Path(save_dir) / 'idetection_profile.png', dpi=200) + + +def plot_results_overlay(start=0, stop=0): # from utils.plots import *; plot_results_overlay() + # Plot training 'results*.txt', overlaying train and val losses + s = ['train', 'train', 'train', 'Precision', 'mAP@0.5', 'val', 'val', 'val', 'Recall', 'mAP@0.5:0.95'] # legends + t = ['Box', 'Objectness', 'Classification', 'P-R', 'mAP-F1'] # titles + for f in sorted(glob.glob('results*.txt') + glob.glob('../../Downloads/results*.txt')): + results = np.loadtxt(f, usecols=[2, 3, 4, 8, 9, 12, 13, 14, 10, 11], ndmin=2).T + n = results.shape[1] # number of rows + x = range(start, min(stop, n) if stop else n) + fig, ax = plt.subplots(1, 5, figsize=(14, 3.5), tight_layout=True) + ax = ax.ravel() + for i in range(5): + for j in [i, i + 5]: + y = results[j, x] + ax[i].plot(x, y, marker='.', label=s[j]) + # y_smooth = butter_lowpass_filtfilt(y) + # ax[i].plot(x, np.gradient(y_smooth), marker='.', label=s[j]) + + ax[i].set_title(t[i]) + ax[i].legend() + ax[i].set_ylabel(f) if i == 0 else None # add filename + fig.savefig(f.replace('.txt', '.png'), dpi=200) + + +def plot_results(start=0, stop=0, bucket='', id=(), labels=(), save_dir=''): + # Plot training 'results*.txt'. from utils.plots import *; plot_results(save_dir='runs/train/exp') + fig, ax = plt.subplots(2, 5, figsize=(12, 6), tight_layout=True) + ax = ax.ravel() + s = ['Box', 'Objectness', 'Classification', 'Precision', 'Recall', + 'val Box', 'val Objectness', 'val Classification', 'mAP@0.5', 'mAP@0.5:0.95'] + if bucket: + # files = ['https://storage.googleapis.com/%s/results%g.txt' % (bucket, x) for x in id] + files = ['results%g.txt' % x for x in id] + c = ('gsutil cp ' + '%s ' * len(files) + '.') % tuple('gs://%s/results%g.txt' % (bucket, x) for x in id) + os.system(c) + else: + files = list(Path(save_dir).glob('results*.txt')) + assert len(files), 'No results.txt files found in %s, nothing to plot.' % os.path.abspath(save_dir) + for fi, f in enumerate(files): + try: + results = np.loadtxt(f, usecols=[2, 3, 4, 8, 9, 12, 13, 14, 10, 11], ndmin=2).T + n = results.shape[1] # number of rows + x = range(start, min(stop, n) if stop else n) + for i in range(10): + y = results[i, x] + if i in [0, 1, 2, 5, 6, 7]: + y[y == 0] = np.nan # don't show zero loss values + # y /= y[0] # normalize + label = labels[fi] if len(labels) else f.stem + ax[i].plot(x, y, marker='.', label=label, linewidth=2, markersize=8) + ax[i].set_title(s[i]) + # if i in [5, 6, 7]: # share train and val loss y axes + # ax[i].get_shared_y_axes().join(ax[i], ax[i - 5]) + except Exception as e: + print('Warning: Plotting error for %s; %s' % (f, e)) + + ax[1].legend() + fig.savefig(Path(save_dir) / 'results.png', dpi=200) + + +def output_to_keypoint(output): + # Convert model output to target format [batch_id, class_id, x, y, w, h, conf] + targets = [] + for i, o in enumerate(output): + kpts = o[:,6:] + o = o[:,:6] + for index, (*box, conf, cls) in enumerate(o.detach().cpu().numpy()): + targets.append([i, cls, *list(*xyxy2xywh(np.array(box)[None])), conf, *list(kpts.detach().cpu().numpy()[index])]) + return np.array(targets) + + +def plot_skeleton_kpts(im, kpts, steps, orig_shape=None): + #Plot the skeleton and keypointsfor coco datatset + palette = np.array([[255, 128, 0], [255, 153, 51], [255, 178, 102], + [230, 230, 0], [255, 153, 255], [153, 204, 255], + [255, 102, 255], [255, 51, 255], [102, 178, 255], + [51, 153, 255], [255, 153, 153], [255, 102, 102], + [255, 51, 51], [153, 255, 153], [102, 255, 102], + [51, 255, 51], [0, 255, 0], [0, 0, 255], [255, 0, 0], + [255, 255, 255]]) + + skeleton = [[16, 14], [14, 12], [17, 15], [15, 13], [12, 13], [6, 12], + [7, 13], [6, 7], [6, 8], [7, 9], [8, 10], [9, 11], [2, 3], + [1, 2], [1, 3], [2, 4], [3, 5], [4, 6], [5, 7]] + + pose_limb_color = palette[[9, 9, 9, 9, 7, 7, 7, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, 16, 16]] + pose_kpt_color = palette[[16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9]] + radius = 5 + num_kpts = len(kpts) // steps + + for kid in range(num_kpts): + r, g, b = pose_kpt_color[kid] + x_coord, y_coord = kpts[steps * kid], kpts[steps * kid + 1] + if not (x_coord % 640 == 0 or y_coord % 640 == 0): + if steps == 3: + conf = kpts[steps * kid + 2] + if conf < 0.5: + continue + cv2.circle(im, (int(x_coord), int(y_coord)), radius, (int(r), int(g), int(b)), -1) + + for sk_id, sk in enumerate(skeleton): + r, g, b = pose_limb_color[sk_id] + pos1 = (int(kpts[(sk[0]-1)*steps]), int(kpts[(sk[0]-1)*steps+1])) + pos2 = (int(kpts[(sk[1]-1)*steps]), int(kpts[(sk[1]-1)*steps+1])) + if steps == 3: + conf1 = kpts[(sk[0]-1)*steps+2] + conf2 = kpts[(sk[1]-1)*steps+2] + if conf1<0.5 or conf2<0.5: + continue + if pos1[0]%640 == 0 or pos1[1]%640==0 or pos1[0]<0 or pos1[1]<0: + continue + if pos2[0] % 640 == 0 or pos2[1] % 640 == 0 or pos2[0]<0 or pos2[1]<0: + continue + cv2.line(im, pos1, pos2, (int(r), int(g), int(b)), thickness=2) diff --git a/utils/torch_utils.py b/utils/torch_utils.py new file mode 100644 index 0000000..1e631b5 --- /dev/null +++ b/utils/torch_utils.py @@ -0,0 +1,374 @@ +# YOLOR PyTorch utils + +import datetime +import logging +import math +import os +import platform +import subprocess +import time +from contextlib import contextmanager +from copy import deepcopy +from pathlib import Path + +import torch +import torch.backends.cudnn as cudnn +import torch.nn as nn +import torch.nn.functional as F +import torchvision + +try: + import thop # for FLOPS computation +except ImportError: + thop = None +logger = logging.getLogger(__name__) + + +@contextmanager +def torch_distributed_zero_first(local_rank: int): + """ + Decorator to make all processes in distributed training wait for each local_master to do something. + """ + if local_rank not in [-1, 0]: + torch.distributed.barrier() + yield + if local_rank == 0: + torch.distributed.barrier() + + +def init_torch_seeds(seed=0): + # Speed-reproducibility tradeoff https://pytorch.org/docs/stable/notes/randomness.html + torch.manual_seed(seed) + if seed == 0: # slower, more reproducible + cudnn.benchmark, cudnn.deterministic = False, True + else: # faster, less reproducible + cudnn.benchmark, cudnn.deterministic = True, False + + +def date_modified(path=__file__): + # return human-readable file modification date, i.e. '2021-3-26' + t = datetime.datetime.fromtimestamp(Path(path).stat().st_mtime) + return f'{t.year}-{t.month}-{t.day}' + + +def git_describe(path=Path(__file__).parent): # path must be a directory + # return human-readable git description, i.e. v5.0-5-g3e25f1e https://git-scm.com/docs/git-describe + s = f'git -C {path} describe --tags --long --always' + try: + return subprocess.check_output(s, shell=True, stderr=subprocess.STDOUT).decode()[:-1] + except subprocess.CalledProcessError as e: + return '' # not a git repository + + +def select_device(device='', batch_size=None): + # device = 'cpu' or '0' or '0,1,2,3' + s = f'YOLOR 🚀 {git_describe() or date_modified()} torch {torch.__version__} ' # string + cpu = device.lower() == 'cpu' + if cpu: + os.environ['CUDA_VISIBLE_DEVICES'] = '-1' # force torch.cuda.is_available() = False + elif device: # non-cpu device requested + os.environ['CUDA_VISIBLE_DEVICES'] = device # set environment variable + assert torch.cuda.is_available(), f'CUDA unavailable, invalid device {device} requested' # check availability + + cuda = not cpu and torch.cuda.is_available() + if cuda: + n = torch.cuda.device_count() + if n > 1 and batch_size: # check that batch_size is compatible with device_count + assert batch_size % n == 0, f'batch-size {batch_size} not multiple of GPU count {n}' + space = ' ' * len(s) + for i, d in enumerate(device.split(',') if device else range(n)): + p = torch.cuda.get_device_properties(i) + s += f"{'' if i == 0 else space}CUDA:{d} ({p.name}, {p.total_memory / 1024 ** 2}MB)\n" # bytes to MB + else: + s += 'CPU\n' + + logger.info(s.encode().decode('ascii', 'ignore') if platform.system() == 'Windows' else s) # emoji-safe + return torch.device('cuda:0' if cuda else 'cpu') + + +def time_synchronized(): + # pytorch-accurate time + if torch.cuda.is_available(): + torch.cuda.synchronize() + return time.time() + + +def profile(x, ops, n=100, device=None): + # profile a pytorch module or list of modules. Example usage: + # x = torch.randn(16, 3, 640, 640) # input + # m1 = lambda x: x * torch.sigmoid(x) + # m2 = nn.SiLU() + # profile(x, [m1, m2], n=100) # profile speed over 100 iterations + + device = device or torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') + x = x.to(device) + x.requires_grad = True + print(torch.__version__, device.type, torch.cuda.get_device_properties(0) if device.type == 'cuda' else '') + print(f"\n{'Params':>12s}{'GFLOPS':>12s}{'forward (ms)':>16s}{'backward (ms)':>16s}{'input':>24s}{'output':>24s}") + for m in ops if isinstance(ops, list) else [ops]: + m = m.to(device) if hasattr(m, 'to') else m # device + m = m.half() if hasattr(m, 'half') and isinstance(x, torch.Tensor) and x.dtype is torch.float16 else m # type + dtf, dtb, t = 0., 0., [0., 0., 0.] # dt forward, backward + try: + flops = thop.profile(m, inputs=(x,), verbose=False)[0] / 1E9 * 2 # GFLOPS + except: + flops = 0 + + for _ in range(n): + t[0] = time_synchronized() + y = m(x) + t[1] = time_synchronized() + try: + _ = y.sum().backward() + t[2] = time_synchronized() + except: # no backward method + t[2] = float('nan') + dtf += (t[1] - t[0]) * 1000 / n # ms per op forward + dtb += (t[2] - t[1]) * 1000 / n # ms per op backward + + s_in = tuple(x.shape) if isinstance(x, torch.Tensor) else 'list' + s_out = tuple(y.shape) if isinstance(y, torch.Tensor) else 'list' + p = sum(list(x.numel() for x in m.parameters())) if isinstance(m, nn.Module) else 0 # parameters + print(f'{p:12}{flops:12.4g}{dtf:16.4g}{dtb:16.4g}{str(s_in):>24s}{str(s_out):>24s}') + + +def is_parallel(model): + return type(model) in (nn.parallel.DataParallel, nn.parallel.DistributedDataParallel) + + +def intersect_dicts(da, db, exclude=()): + # Dictionary intersection of matching keys and shapes, omitting 'exclude' keys, using da values + return {k: v for k, v in da.items() if k in db and not any(x in k for x in exclude) and v.shape == db[k].shape} + + +def initialize_weights(model): + for m in model.modules(): + t = type(m) + if t is nn.Conv2d: + pass # nn.init.kaiming_normal_(m.weight, mode='fan_out', nonlinearity='relu') + elif t is nn.BatchNorm2d: + m.eps = 1e-3 + m.momentum = 0.03 + elif t in [nn.Hardswish, nn.LeakyReLU, nn.ReLU, nn.ReLU6]: + m.inplace = True + + +def find_modules(model, mclass=nn.Conv2d): + # Finds layer indices matching module class 'mclass' + return [i for i, m in enumerate(model.module_list) if isinstance(m, mclass)] + + +def sparsity(model): + # Return global model sparsity + a, b = 0., 0. + for p in model.parameters(): + a += p.numel() + b += (p == 0).sum() + return b / a + + +def prune(model, amount=0.3): + # Prune model to requested global sparsity + import torch.nn.utils.prune as prune + print('Pruning model... ', end='') + for name, m in model.named_modules(): + if isinstance(m, nn.Conv2d): + prune.l1_unstructured(m, name='weight', amount=amount) # prune + prune.remove(m, 'weight') # make permanent + print(' %.3g global sparsity' % sparsity(model)) + + +def fuse_conv_and_bn(conv, bn): + # Fuse convolution and batchnorm layers https://tehnokv.com/posts/fusing-batchnorm-and-conv/ + fusedconv = nn.Conv2d(conv.in_channels, + conv.out_channels, + kernel_size=conv.kernel_size, + stride=conv.stride, + padding=conv.padding, + groups=conv.groups, + bias=True).requires_grad_(False).to(conv.weight.device) + + # prepare filters + w_conv = conv.weight.clone().view(conv.out_channels, -1) + w_bn = torch.diag(bn.weight.div(torch.sqrt(bn.eps + bn.running_var))) + fusedconv.weight.copy_(torch.mm(w_bn, w_conv).view(fusedconv.weight.shape)) + + # prepare spatial bias + b_conv = torch.zeros(conv.weight.size(0), device=conv.weight.device) if conv.bias is None else conv.bias + b_bn = bn.bias - bn.weight.mul(bn.running_mean).div(torch.sqrt(bn.running_var + bn.eps)) + fusedconv.bias.copy_(torch.mm(w_bn, b_conv.reshape(-1, 1)).reshape(-1) + b_bn) + + return fusedconv + + +def model_info(model, verbose=False, img_size=640): + # Model information. img_size may be int or list, i.e. img_size=640 or img_size=[640, 320] + n_p = sum(x.numel() for x in model.parameters()) # number parameters + n_g = sum(x.numel() for x in model.parameters() if x.requires_grad) # number gradients + if verbose: + print('%5s %40s %9s %12s %20s %10s %10s' % ('layer', 'name', 'gradient', 'parameters', 'shape', 'mu', 'sigma')) + for i, (name, p) in enumerate(model.named_parameters()): + name = name.replace('module_list.', '') + print('%5g %40s %9s %12g %20s %10.3g %10.3g' % + (i, name, p.requires_grad, p.numel(), list(p.shape), p.mean(), p.std())) + + try: # FLOPS + from thop import profile + stride = max(int(model.stride.max()), 32) if hasattr(model, 'stride') else 32 + img = torch.zeros((1, model.yaml.get('ch', 3), stride, stride), device=next(model.parameters()).device) # input + flops = profile(deepcopy(model), inputs=(img,), verbose=False)[0] / 1E9 * 2 # stride GFLOPS + img_size = img_size if isinstance(img_size, list) else [img_size, img_size] # expand if int/float + fs = ', %.1f GFLOPS' % (flops * img_size[0] / stride * img_size[1] / stride) # 640x640 GFLOPS + except (ImportError, Exception): + fs = '' + + logger.info(f"Model Summary: {len(list(model.modules()))} layers, {n_p} parameters, {n_g} gradients{fs}") + + +def load_classifier(name='resnet101', n=2): + # Loads a pretrained model reshaped to n-class output + model = torchvision.models.__dict__[name](pretrained=True) + + # ResNet model properties + # input_size = [3, 224, 224] + # input_space = 'RGB' + # input_range = [0, 1] + # mean = [0.485, 0.456, 0.406] + # std = [0.229, 0.224, 0.225] + + # Reshape output to n classes + filters = model.fc.weight.shape[1] + model.fc.bias = nn.Parameter(torch.zeros(n), requires_grad=True) + model.fc.weight = nn.Parameter(torch.zeros(n, filters), requires_grad=True) + model.fc.out_features = n + return model + + +def scale_img(img, ratio=1.0, same_shape=False, gs=32): # img(16,3,256,416) + # scales img(bs,3,y,x) by ratio constrained to gs-multiple + if ratio == 1.0: + return img + else: + h, w = img.shape[2:] + s = (int(h * ratio), int(w * ratio)) # new size + img = F.interpolate(img, size=s, mode='bilinear', align_corners=False) # resize + if not same_shape: # pad/crop img + h, w = [math.ceil(x * ratio / gs) * gs for x in (h, w)] + return F.pad(img, [0, w - s[1], 0, h - s[0]], value=0.447) # value = imagenet mean + + +def copy_attr(a, b, include=(), exclude=()): + # Copy attributes from b to a, options to only include [...] and to exclude [...] + for k, v in b.__dict__.items(): + if (len(include) and k not in include) or k.startswith('_') or k in exclude: + continue + else: + setattr(a, k, v) + + +class ModelEMA: + """ Model Exponential Moving Average from https://github.com/rwightman/pytorch-image-models + Keep a moving average of everything in the model state_dict (parameters and buffers). + This is intended to allow functionality like + https://www.tensorflow.org/api_docs/python/tf/train/ExponentialMovingAverage + A smoothed version of the weights is necessary for some training schemes to perform well. + This class is sensitive where it is initialized in the sequence of model init, + GPU assignment and distributed training wrappers. + """ + + def __init__(self, model, decay=0.9999, updates=0): + # Create EMA + self.ema = deepcopy(model.module if is_parallel(model) else model).eval() # FP32 EMA + # if next(model.parameters()).device.type != 'cpu': + # self.ema.half() # FP16 EMA + self.updates = updates # number of EMA updates + self.decay = lambda x: decay * (1 - math.exp(-x / 2000)) # decay exponential ramp (to help early epochs) + for p in self.ema.parameters(): + p.requires_grad_(False) + + def update(self, model): + # Update EMA parameters + with torch.no_grad(): + self.updates += 1 + d = self.decay(self.updates) + + msd = model.module.state_dict() if is_parallel(model) else model.state_dict() # model state_dict + for k, v in self.ema.state_dict().items(): + if v.dtype.is_floating_point: + v *= d + v += (1. - d) * msd[k].detach() + + def update_attr(self, model, include=(), exclude=('process_group', 'reducer')): + # Update EMA attributes + copy_attr(self.ema, model, include, exclude) + + +class BatchNormXd(torch.nn.modules.batchnorm._BatchNorm): + def _check_input_dim(self, input): + # The only difference between BatchNorm1d, BatchNorm2d, BatchNorm3d, etc + # is this method that is overwritten by the sub-class + # This original goal of this method was for tensor sanity checks + # If you're ok bypassing those sanity checks (eg. if you trust your inference + # to provide the right dimensional inputs), then you can just use this method + # for easy conversion from SyncBatchNorm + # (unfortunately, SyncBatchNorm does not store the original class - if it did + # we could return the one that was originally created) + return + +def revert_sync_batchnorm(module): + # this is very similar to the function that it is trying to revert: + # https://github.com/pytorch/pytorch/blob/c8b3686a3e4ba63dc59e5dcfe5db3430df256833/torch/nn/modules/batchnorm.py#L679 + module_output = module + if isinstance(module, torch.nn.modules.batchnorm.SyncBatchNorm): + new_cls = BatchNormXd + module_output = BatchNormXd(module.num_features, + module.eps, module.momentum, + module.affine, + module.track_running_stats) + if module.affine: + with torch.no_grad(): + module_output.weight = module.weight + module_output.bias = module.bias + module_output.running_mean = module.running_mean + module_output.running_var = module.running_var + module_output.num_batches_tracked = module.num_batches_tracked + if hasattr(module, "qconfig"): + module_output.qconfig = module.qconfig + for name, child in module.named_children(): + module_output.add_module(name, revert_sync_batchnorm(child)) + del module + return module_output + + +class TracedModel(nn.Module): + + def __init__(self, model=None, device=None, img_size=(640,640)): + super(TracedModel, self).__init__() + + print(" Convert model to Traced-model... ") + self.stride = model.stride + self.names = model.names + self.model = model + + self.model = revert_sync_batchnorm(self.model) + self.model.to('cpu') + self.model.eval() + + self.detect_layer = self.model.model[-1] + self.model.traced = True + + rand_example = torch.rand(1, 3, img_size, img_size) + + traced_script_module = torch.jit.trace(self.model, rand_example, strict=False) + #traced_script_module = torch.jit.script(self.model) + traced_script_module.save("traced_model.pt") + print(" traced_script_module saved! ") + self.model = traced_script_module + self.model.to(device) + self.detect_layer.to(device) + print(" model is traced! \n") + + def forward(self, x, augment=False, profile=False): + out = self.model(x) + out = self.detect_layer(out) + return out \ No newline at end of file diff --git a/utils/wandb_logging/__init__.py b/utils/wandb_logging/__init__.py new file mode 100644 index 0000000..84952a8 --- /dev/null +++ b/utils/wandb_logging/__init__.py @@ -0,0 +1 @@ +# init \ No newline at end of file diff --git a/utils/wandb_logging/__pycache__/__init__.cpython-38.pyc b/utils/wandb_logging/__pycache__/__init__.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5caf98e0aecc69dc3cad86c55a6a4bcd5da5dfa7 GIT binary patch literal 171 zcmWIL<>g`k0>^(}lh}atV-N=!FakLaKwQiMBvKfH88jLFRx%WUgb~EA0B5V1(Bjmh z;uzn|&ryk0@&Ee@O9{FKt1R6CGOpMjVG0A^S%!T>9`BVHU@0I}Q$;iQ~1iu`-U(>h{b^ ztC6&~d-fq(so-%S0UU2Cp$ZZMnotmy;#a~Sr~n020u)uiFR1D&s8od?_>YUCfJ$v3 z%lDnD(LB7VpqW0peednt_nvzm-#J$=PECatK4-uGUl%|7KFj(JZ+3qI+&qCR{%;Uv zDZ69U%(q>$aqo1Tb+_i)rp~K*(kEBT;oI%_>we9*t;lZYM?qAG+$h|%+eQ9u+FQ0f z<#kHyQ?)56=TI)!%2M__)9W*}ne_v;1M9Q3S=$;Mm9gh)bNJ48=GNzH^Xms|2W{(u z)m`+gXyJ0Gzh+zfQ+93cC9CUv%u+$^P;_Y3Rs|KlYS$K3QI%e`YKPU7D&u=eO{*Dv zA5jO?EWVF^z*2K+{#8rOZ#uPO%06#Z559@DTgz2D^PX!Ym-wArQS11gJJ)NdXV)8R zQGB+m&NVJZofy^At@X8sJG`s+@jzU4v!L1Q^mLr)tZ@CtwM!3Qzj6IWHr2coH80my zBWc7@Qgt$~)omr2zlyK;(%`_gMps>YPeUiI)kZUU?DXlT!^=J$29+PZ$r($jeE_W7qCTX`{#biDGR zR`XIL>a08+#g~&_f8{ydYe&r_Ub%tCnvK@V4J_m8kF9JZtxmim^Q(7yYinp7-$~1< zJ{G5=_1@K}ZeDeWla$%p`T)vJ8)W;#dLNgp$u-(C7NSr`Bq$CZFQomQ=1{T>&;$w zwY4U7wUSwesS<`5LY8KS%ogqLB2OJbV@&0+>{+{Hd$wLgdC#gmRPd5jJ&ZzPB{ufR z*>pDTAy&|Khq!Nh_;!??+J~S{hpeHS+NqPet1edPE@z(J=+-m8zTQ(&r<#)m2@A7> z7tSs}{bc>@^DjL6%-N@2s6Y4o`=5FCW0@Bx(K@!cp`&gBegqtVatNNF)KXc#Z?-j? zlR@j-5?1dv)}#F#D6K_FT^{VN_D*0Ku~-bdZ2NYArEAvhS$G~5lZAfY$;ffc$wQ4y_v;w7cjhZ=ZC@UGOVPpRB_*e9^lU#>cD-oZyxR&Lv;Z|5KDG?FMz zZs$9VI62i%UZ|F{;##M7vC*mPM)z`d49sdqacl%_TXK}@%Z_AWD{gh;q|t3g;BORf ztVfwkJr7Z-llWRIxuhvA!lx`Jl9ah;`>ib4=6e>X-nDKAwqz`>*P_@4^G|0*GZVVB1P|XwP5+7jVr|eji24 zo^33mqJT@}_Yp7**2QW=3twNLKDHsJpq{c{bB4|Z>rv|?*7Ft&uCs!z8hS|%TjUAXHmK8$9dt@f5fH?+-zG=$i}4nyP$%eU;zr=N)QEoXT-%O$$e>fW{= zyIrCwI^7cYaXNFaHadfY#?W+nO^6?xPu*y&cQX50^+4wJ`cXIYSetoL?NMa1@O)!6 zGB40o?3aEw$%7;!ckf~86bWU8K#h(O;ETWd0qwb+=0UmIbr*iQ7p7K>5 z-#Hbi0=|6}sv^Ggsv=0it_A8|!3uV*Fvbd@I-%y(L5xyV3+fPhm(-# zj7uJR9fV)>w%|1CxWj0HjP~UA^Q`YKBnt`}JS-%K(!!T575)Z%E#V}XUtAuX5L4ah zR7A}xNv~pTn<^IZ( z(8?&TtoC$8URD{StP1@}<$->yU)i&k2P*H>QM0$c9(7fus?|k(o^Ph^XD+6m6^vy; zQ9r{Lu@o}zeddDhJS(4#fd@Iu_iNqLnts4AgGNFh1*w%c`m{gW@HJaBJ_qt$-`C<@ zZRl8kginfDDT56g{kkv{(yuA~S*{Ognp8vJm#DKU9rg2kM7*EOS(a2`o%q3Nv!scE z(q%Rg(HbHEE~wWDs_S*WK7Jg;a(uhu&;!!{m7G~n-}k;3*p9u33xD79bKdtnpYSHI z=bbW4Oc~{}6WD|K3p*NoYJ2cKz&wX{OdMw)H;EOO5__y_f_f;F5L~K&s4c$p%7IEf zq+F;}z+uBV4DQ*MDPa;t-E2yQ z>;nJwhcPkz9LV6PNMr;{H5uXm+9r{qY#u_nz5Np#uMtLC zKtI^nPE>Dp;(c&?`QQ2$==P?7f=`Tng^kq z2(e$Dz4(344N+dQ2k+RuTR%uZoAeReA1;pwR?P2T!2Gs=MwK%*x7#L{MoC{QwN4jMAQinR66eLwo*m9%l8UVj`W<(=Kh~ce^xDHR+ z@_X8r&~`)xD=?__qqvUYI*yAoT~yZP0>)j!8gK`QQ~(6?F?ToC82yvwAWML|xDuf&YePbXJ$4OapQTaW-}FV(&T(RuXBvaG#OR4sC}C zCK%jNIWfvV!dJaWLQ|I&;|8PeNVj?_n@M_bF!hU#q&|MYTUqpAm@}I-=w>VJ2Hq`@-<{EnCign zk*N=D z#G41Z`7bejQvBI^)gcd$cx1FcnmN5iu6-h`5-vguEe{5;7%C0j?`S8+-u z0AWts$CXbJ4!+?dhC!^9`t5-Il*IiiuY%VI!r;0QDIuMVHn`$VDqT*uRS}M-wC1WQ z=~Yx^s31lsaFh6BdRg3xUc!{JoUFij2ESJ7=@xRRFmxNbBm5eO`K}oAZ4eYWm`$y= zk}k7RakHn9&qOMkVa6+H6UTPT7SNpem5==o@hCiCs0>g)ZwVBz+KMvXqjvXjY<++m>D3W)I@MYTgJ5O{#(R5lf#2 z$wE%ecr?Aq+PzYe6*#0!^6O}g$v&#Sk3UcToZDfrfV(9~%;4Z|d6_)fq@r(sC>#@f z{uLlRlQsvg&PixZ>PlM6--W9k{V>DhHG9?R&SL9*A~hf(s5THAu+}g?3``aQp?I)q zKh0!OfHan`nDqK2gazp@^bh2@fSHEZT;@Uraj{>Be!n~E7moXdyZVKb@%}C;CZz;X z05Dg;#1zC3V*_t(kM!@mdW4f6A$oZFyQ$rsQN+ zENL!q1VOr==2*XrCsun_O$!ox1+$(T%~K(Gt~0qq3PSF}(ZMn53(Y#Q<^`bAL#*ur zd*W#zRYW}7PxH=kG!_vZRUM^#Q zXuyG7zu;U!jI<+V4E0Yvl-ZXv`|3`uCRWVCGsHfKtNV|CljG56`1o_I!6W+xZ9gbF zbw<*7@#Cj<1~F*!7cq)JPCd)g90|Rn{wWe>3#y0j79nLWkYQGcx=1o>q^-sNX7f!Z z6rxEWCRj<61)8|apj^oWN~AAX@gN%(Kr*-A>+7d^ONJTzNTZ*5*BUrJxz5TPB(H;1 zLs8>#QjqbXuCuKIQk%hPkG`g{H{&F^iQ5MxLdkwh%OUJciuK*OKo8iOqcZui@> zPH+c-Ie?a9!56?Ec<$S3oDdLz*OK^*1;DQ|{ur)@2;0l{pz_1E>21P8Qz5?NaTF*# z%)K#q=aEH%pbsZDxlP01&%ZG_X zD5XdsP3@prU|SO!e+f;R?S}c}U)42yw_6fj?~_v5pMOEO@qrZ2Wftwh@!czbJ95qh zWC3I!`zz=&Gn(D9XvqQR!eovsGFyMset907UtIBqrQy`DJe*Fa`DWD33=bspDXb_D zVsV-bx(e|a9b~q63&1g17#&Ivq%*u2)y`Y{d!Mn^AbO59oE^?h+VYc;7CEPvYoD-( z^TUJ5;dCCJWKDZ#XS`xR4e`N75oVbu=yGXk$Sgf6YyfjgF^tTQ>Hgj7-(k zmS^+HMV!sulNM4O+rsWM7j@6F{tASu>X>XE0okBPT^OHyXj((!6&{{vzBvvNJ3sDb zT1;FHXKfA4xrwPhEx}%`XrfMeILkkUvpi%^<%Ku_&*SWUW4-%!H$hFO)e}syMmI6L z<0h2#hVyxG6}N0mUJ|*IkEHRs*S=b#mt)7#L9ir_<3ITZ>KGlzUbk^K%e~8O zOon(;* zmSib{CYi%i;388E%|>6UeZiC9zv`{yOrlm=)4dI3audCgT)O3C0XuWovXU9Vupa<4 zFZU4==jal})ygi^Smk8J;!j);b~u)kBU-qufUJiA$GDa!hGfh)@lE=3d|Y_WokGfj z0cfm$j@7@znjC>Zti@sy_GjMJR&)(VY(3q?arX;RH}2`oPkQ8}{&g7y))+Z*16gH3 zIr#wxel`#ziId~;7rCcY^^n1=l-^p=tUBp|b7o4XQLX=sLk8Q6s1*%YBr}nPa${g| zZk)?7qrm89PTYb!UtiO|%^`A(hr#{$Qlk%6`j_M&0H?(*g~PEwmKpFZ+q`y>SIs>B zh(!Mh=dsVBei?QDiYxvghy_RZE}Ze2492`Y<1E6t`gf4qHf|N!ibeZ49O#p9oE7w| zAj1&?P&@w<bF2`{T2>R#jCuEgVvEZ zv9aD7e1~H2Wsh=V<$m_2^9dYR4TE7Jg%`M-(~sb!9|ys7w4gxWpg77Q zva1SKC@r8qSao3W!Zd)z!>@nF7SB%u9E15+9#P1@!o!ut*5Tk5L0^G+_BJf(u*lht zNK3GQ4sx|v12VNmyoqlP5im~U$P7osDwoWp1P0C#i`Gy8z|8Vp@x}kc>gcb6V`gK2 zZ&H$drh(D7KngI2JC^0q-Tt1D&vr6klE%E7X%RTGhQaXphxduy)xVFj*ckl>C=K!_ zl5dev zHT8%@ES>25U-7n0^4BE9L75BtrYTnlPCw2HoEk-{Yix|*%fDw|QJB!AMtG2*|A~D) zDgGln$n?ad@70{_;9VJ)C!-(4gFItcl%R7Sdg4JdeCP)?#k=GAgq<_c90zc8=6?tG z{?HBClaHch=k*k>_3#FwGfSFn_LW)w8VWMYFCsvcgDrvy z!OVh_HS2jq!2^%HvU!|^k~azfE)a48QR9${H3|?AC)E~z7>GdD)+;z$#vudpDS64K z*rO6ap!|$)d=P*W?9r4eVuW&gnnwn>rp)=Us9t&5B!cBvIh{m*29wpFCHWlc)CB zB8;%}`@voEM)SN#^Nih)A8GPeJ~YP0q#1eh4OfI0JFJnlg&4PL8}ZwxU7<-s^5sq){TNt9+X98EC($I(PsXNG742affuRIgvzXmm`A zei^Tjb3*+RO9=_{j{5T?j66+vOP8ttndI9f-yxw3-L(a>7%{#-gNEmD32+ST@I+7y z?hS&V6qdtdfgj!%ECji*q}i`}T>lNe@T0IBF@AXmKi_FxG-mEEQLmpMaY+OyeTyZ^ z4OhnqyI$AFcw08VtQ<#?u?g^VY?(4GYf%?jfsUM}>pX`cdyUO4u*8kYiqEe1dpa@4 z`bSuOfMk*61j(Z$?u@3#CbIAfUoI7KLa7f3*KfpjgY3B~6f2Y2(3$ 10 else 1 + return data_dict + + def download_dataset_artifact(self, path, alias): + if isinstance(path, str) and path.startswith(WANDB_ARTIFACT_PREFIX): + dataset_artifact = wandb.use_artifact(remove_prefix(path, WANDB_ARTIFACT_PREFIX) + ":" + alias) + assert dataset_artifact is not None, "'Error: W&B dataset artifact doesn\'t exist'" + datadir = dataset_artifact.download() + return datadir, dataset_artifact + return None, None + + def download_model_artifact(self, opt): + if opt.resume.startswith(WANDB_ARTIFACT_PREFIX): + model_artifact = wandb.use_artifact(remove_prefix(opt.resume, WANDB_ARTIFACT_PREFIX) + ":latest") + assert model_artifact is not None, 'Error: W&B model artifact doesn\'t exist' + modeldir = model_artifact.download() + epochs_trained = model_artifact.metadata.get('epochs_trained') + total_epochs = model_artifact.metadata.get('total_epochs') + assert epochs_trained < total_epochs, 'training to %g epochs is finished, nothing to resume.' % ( + total_epochs) + return modeldir, model_artifact + return None, None + + def log_model(self, path, opt, epoch, fitness_score, best_model=False): + model_artifact = wandb.Artifact('run_' + wandb.run.id + '_model', type='model', metadata={ + 'original_url': str(path), + 'epochs_trained': epoch + 1, + 'save period': opt.save_period, + 'project': opt.project, + 'total_epochs': opt.epochs, + 'fitness_score': fitness_score + }) + model_artifact.add_file(str(path / 'last.pt'), name='last.pt') + wandb.log_artifact(model_artifact, + aliases=['latest', 'epoch ' + str(self.current_epoch), 'best' if best_model else '']) + print("Saving model artifact on epoch ", epoch + 1) + + def log_dataset_artifact(self, data_file, single_cls, project, overwrite_config=False): + with open(data_file) as f: + data = yaml.load(f, Loader=yaml.SafeLoader) # data dict + nc, names = (1, ['item']) if single_cls else (int(data['nc']), data['names']) + names = {k: v for k, v in enumerate(names)} # to index dictionary + self.train_artifact = self.create_dataset_table(LoadImagesAndLabels( + data['train']), names, name='train') if data.get('train') else None + self.val_artifact = self.create_dataset_table(LoadImagesAndLabels( + data['val']), names, name='val') if data.get('val') else None + if data.get('train'): + data['train'] = WANDB_ARTIFACT_PREFIX + str(Path(project) / 'train') + if data.get('val'): + data['val'] = WANDB_ARTIFACT_PREFIX + str(Path(project) / 'val') + path = data_file if overwrite_config else '_wandb.'.join(data_file.rsplit('.', 1)) # updated data.yaml path + data.pop('download', None) + with open(path, 'w') as f: + yaml.dump(data, f) + + if self.job_type == 'Training': # builds correct artifact pipeline graph + self.wandb_run.use_artifact(self.val_artifact) + self.wandb_run.use_artifact(self.train_artifact) + self.val_artifact.wait() + self.val_table = self.val_artifact.get('val') + self.map_val_table_path() + else: + self.wandb_run.log_artifact(self.train_artifact) + self.wandb_run.log_artifact(self.val_artifact) + return path + + def map_val_table_path(self): + self.val_table_map = {} + print("Mapping dataset") + for i, data in enumerate(tqdm(self.val_table.data)): + self.val_table_map[data[3]] = data[0] + + def create_dataset_table(self, dataset, class_to_id, name='dataset'): + # TODO: Explore multiprocessing to slpit this loop parallely| This is essential for speeding up the the logging + artifact = wandb.Artifact(name=name, type="dataset") + img_files = tqdm([dataset.path]) if isinstance(dataset.path, str) and Path(dataset.path).is_dir() else None + img_files = tqdm(dataset.img_files) if not img_files else img_files + for img_file in img_files: + if Path(img_file).is_dir(): + artifact.add_dir(img_file, name='data/images') + labels_path = 'labels'.join(dataset.path.rsplit('images', 1)) + artifact.add_dir(labels_path, name='data/labels') + else: + artifact.add_file(img_file, name='data/images/' + Path(img_file).name) + label_file = Path(img2label_paths([img_file])[0]) + artifact.add_file(str(label_file), + name='data/labels/' + label_file.name) if label_file.exists() else None + table = wandb.Table(columns=["id", "train_image", "Classes", "name"]) + class_set = wandb.Classes([{'id': id, 'name': name} for id, name in class_to_id.items()]) + for si, (img, labels, paths, shapes) in enumerate(tqdm(dataset)): + height, width = shapes[0] + labels[:, 2:] = (xywh2xyxy(labels[:, 2:].view(-1, 4))) * torch.Tensor([width, height, width, height]) + box_data, img_classes = [], {} + for cls, *xyxy in labels[:, 1:].tolist(): + cls = int(cls) + box_data.append({"position": {"minX": xyxy[0], "minY": xyxy[1], "maxX": xyxy[2], "maxY": xyxy[3]}, + "class_id": cls, + "box_caption": "%s" % (class_to_id[cls]), + "scores": {"acc": 1}, + "domain": "pixel"}) + img_classes[cls] = class_to_id[cls] + boxes = {"ground_truth": {"box_data": box_data, "class_labels": class_to_id}} # inference-space + table.add_data(si, wandb.Image(paths, classes=class_set, boxes=boxes), json.dumps(img_classes), + Path(paths).name) + artifact.add(table, name) + return artifact + + def log_training_progress(self, predn, path, names): + if self.val_table and self.result_table: + class_set = wandb.Classes([{'id': id, 'name': name} for id, name in names.items()]) + box_data = [] + total_conf = 0 + for *xyxy, conf, cls in predn.tolist(): + if conf >= 0.25: + box_data.append( + {"position": {"minX": xyxy[0], "minY": xyxy[1], "maxX": xyxy[2], "maxY": xyxy[3]}, + "class_id": int(cls), + "box_caption": "%s %.3f" % (names[cls], conf), + "scores": {"class_score": conf}, + "domain": "pixel"}) + total_conf = total_conf + conf + boxes = {"predictions": {"box_data": box_data, "class_labels": names}} # inference-space + id = self.val_table_map[Path(path).name] + self.result_table.add_data(self.current_epoch, + id, + wandb.Image(self.val_table.data[id][1], boxes=boxes, classes=class_set), + total_conf / max(1, len(box_data)) + ) + + def log(self, log_dict): + if self.wandb_run: + for key, value in log_dict.items(): + self.log_dict[key] = value + + def end_epoch(self, best_result=False): + if self.wandb_run: + wandb.log(self.log_dict) + self.log_dict = {} + if self.result_artifact: + train_results = wandb.JoinedTable(self.val_table, self.result_table, "id") + self.result_artifact.add(train_results, 'result') + wandb.log_artifact(self.result_artifact, aliases=['latest', 'epoch ' + str(self.current_epoch), + ('best' if best_result else '')]) + self.result_table = wandb.Table(["epoch", "id", "prediction", "avg_confidence"]) + self.result_artifact = wandb.Artifact("run_" + wandb.run.id + "_progress", "evaluation") + + def finish_run(self): + if self.wandb_run: + if self.log_dict: + wandb.log(self.log_dict) + wandb.run.finish()