├── ANPR_object_detection.ipynb ├── LICENSE ├── README.md ├── anpr_video.mp4 ├── best.pt ├── car_139.jpg ├── image_anpr.py ├── test_images ├── car_215.jpg ├── car_216.jpg ├── car_217.jpg ├── car_220.jpg ├── car_222.jpg ├── car_223.jpg ├── car_238.jpg ├── car_240.jpg ├── car_261.jpg ├── car_267.jpg ├── car_273.jpg ├── car_302.jpg ├── car_318.jpg ├── car_322.jpg ├── car_329.jpg ├── car_335.jpg ├── car_378.jpg ├── car_379.jpg ├── car_382.jpg ├── car_384.jpg ├── car_391.jpg ├── car_397.jpg ├── car_398.jpg ├── car_434.jpg ├── car_435.jpg ├── car_437.jpg ├── car_443.jpg ├── car_447.jpg ├── car_450.jpg ├── car_451.jpg └── car_452.jpg ├── val_pred.jpg └── video_anpr.py /ANPR_object_detection.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "ANPR_object_detection.ipynb", 7 | "provenance": [], 8 | "collapsed_sections": [], 9 | "authorship_tag": "ABX9TyMuLKpvFHhBFDyrgIpI9MVI" 10 | }, 11 | "kernelspec": { 12 | "name": "python3", 13 | "display_name": "Python 3" 14 | }, 15 | "language_info": { 16 | "name": "python" 17 | }, 18 | "accelerator": "GPU", 19 | "gpuClass": "standard" 20 | }, 21 | "cells": [ 22 | { 23 | "cell_type": "code", 24 | "source": [ 25 | "" 26 | ], 27 | "metadata": { 28 | "id": "hKbDFNpdD8aS" 29 | }, 30 | "execution_count": null, 31 | "outputs": [] 32 | }, 33 | { 34 | "cell_type": "code", 35 | "execution_count": null, 36 | "metadata": { 37 | "id": "OKBQk0lJejBB", 38 | "colab": { 39 | "base_uri": "https://localhost:8080/" 40 | }, 41 | "outputId": "edbf60e6-a68d-4dc0-aba7-93b0c6298ae7" 42 | }, 43 | "outputs": [ 44 | { 45 | "output_type": "stream", 46 | "name": "stdout", 47 | "text": [ 48 | "Cloning into 'yolov5'...\n", 49 | "remote: Enumerating objects: 12264, done.\u001b[K\n", 50 | "remote: Counting objects: 100% (35/35), done.\u001b[K\n", 51 | "remote: Compressing objects: 100% (22/22), done.\u001b[K\n", 52 | "remote: Total 12264 (delta 18), reused 23 (delta 13), pack-reused 12229\u001b[K\n", 53 | "Receiving objects: 100% (12264/12264), 11.95 MiB | 32.72 MiB/s, done.\n", 54 | "Resolving deltas: 100% (8488/8488), done.\n" 55 | ] 56 | } 57 | ], 58 | "source": [ 59 | "!git clone https://github.com/ultralytics/yolov5" 60 | ] 61 | }, 62 | { 63 | "cell_type": "code", 64 | "source": [ 65 | "import os" 66 | ], 67 | "metadata": { 68 | "id": "4_efpoPUD9Ar" 69 | }, 70 | "execution_count": null, 71 | "outputs": [] 72 | }, 73 | { 74 | "cell_type": "code", 75 | "source": [ 76 | "elems = os.listdir(\"/content/data/train/images\")\n", 77 | "lab = os.listdir(\"/content/data/train/labels\")\n", 78 | "print(len(elems))\n", 79 | "print(len(lab))" 80 | ], 81 | "metadata": { 82 | "colab": { 83 | "base_uri": "https://localhost:8080/" 84 | }, 85 | "id": "XOlbF9b0D226", 86 | "outputId": "e1fc1836-7c91-49fa-bfaf-2185a64e02fe" 87 | }, 88 | "execution_count": null, 89 | "outputs": [ 90 | { 91 | "output_type": "stream", 92 | "name": "stdout", 93 | "text": [ 94 | "400\n", 95 | "401\n" 96 | ] 97 | } 98 | ] 99 | }, 100 | { 101 | "cell_type": "code", 102 | "source": [ 103 | "cd yolov5" 104 | ], 105 | "metadata": { 106 | "colab": { 107 | "base_uri": "https://localhost:8080/" 108 | }, 109 | "id": "0scn1xNt7s4e", 110 | "outputId": "6afb84fa-b3fd-4410-f0a7-5055617a2fc3" 111 | }, 112 | "execution_count": null, 113 | "outputs": [ 114 | { 115 | "output_type": "stream", 116 | "name": "stdout", 117 | "text": [ 118 | "/content/yolov5\n" 119 | ] 120 | } 121 | ] 122 | }, 123 | { 124 | "cell_type": "code", 125 | "source": [ 126 | "!pip install -r requirements.txt" 127 | ], 128 | "metadata": { 129 | "id": "6PV96HYvAjo8" 130 | }, 131 | "execution_count": null, 132 | "outputs": [] 133 | }, 134 | { 135 | "cell_type": "code", 136 | "source": [ 137 | "import torch\n", 138 | "torch.cuda.is_available()" 139 | ], 140 | "metadata": { 141 | "colab": { 142 | "base_uri": "https://localhost:8080/" 143 | }, 144 | "id": "7sAczeeoBKTj", 145 | "outputId": "14d3f9c4-0aa6-4679-d099-8d576088db9c" 146 | }, 147 | "execution_count": null, 148 | "outputs": [ 149 | { 150 | "output_type": "execute_result", 151 | "data": { 152 | "text/plain": [ 153 | "True" 154 | ] 155 | }, 156 | "metadata": {}, 157 | "execution_count": 15 158 | } 159 | ] 160 | }, 161 | { 162 | "cell_type": "code", 163 | "source": [ 164 | "!nvidia-smi" 165 | ], 166 | "metadata": { 167 | "colab": { 168 | "base_uri": "https://localhost:8080/" 169 | }, 170 | "id": "VoKUAFOqEqqD", 171 | "outputId": "2fd06238-9aac-46d3-bdbb-6c703f381d38" 172 | }, 173 | "execution_count": null, 174 | "outputs": [ 175 | { 176 | "output_type": "stream", 177 | "name": "stdout", 178 | "text": [ 179 | "Wed Jun 15 06:35:52 2022 \n", 180 | "+-----------------------------------------------------------------------------+\n", 181 | "| NVIDIA-SMI 460.32.03 Driver Version: 460.32.03 CUDA Version: 11.2 |\n", 182 | "|-------------------------------+----------------------+----------------------+\n", 183 | "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n", 184 | "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n", 185 | "| | | MIG M. |\n", 186 | "|===============================+======================+======================|\n", 187 | "| 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 |\n", 188 | "| N/A 39C P8 9W / 70W | 3MiB / 15109MiB | 0% Default |\n", 189 | "| | | N/A |\n", 190 | "+-------------------------------+----------------------+----------------------+\n", 191 | " \n", 192 | "+-----------------------------------------------------------------------------+\n", 193 | "| Processes: |\n", 194 | "| GPU GI CI PID Type Process name GPU Memory |\n", 195 | "| ID ID Usage |\n", 196 | "|=============================================================================|\n", 197 | "| No running processes found |\n", 198 | "+-----------------------------------------------------------------------------+\n" 199 | ] 200 | } 201 | ] 202 | }, 203 | { 204 | "cell_type": "code", 205 | "source": [ 206 | "!python train.py --img 640 --batch 16 --epochs 300 --data dataset.yaml --weights yolov5s.pt" 207 | ], 208 | "metadata": { 209 | "colab": { 210 | "base_uri": "https://localhost:8080/" 211 | }, 212 | "id": "UGf8PBo3Andq", 213 | "outputId": "72043ed9-c15b-4a6c-ae69-343833e49d74" 214 | }, 215 | "execution_count": null, 216 | "outputs": [ 217 | { 218 | "output_type": "stream", 219 | "name": "stdout", 220 | "text": [ 221 | "\u001b[34m\u001b[1mtrain: \u001b[0mweights=yolov5s.pt, cfg=, data=dataset.yaml, hyp=data/hyps/hyp.scratch-low.yaml, epochs=300, batch_size=16, imgsz=640, rect=False, resume=False, nosave=False, noval=False, noautoanchor=False, noplots=False, evolve=None, bucket=, cache=None, image_weights=False, device=, multi_scale=False, single_cls=False, optimizer=SGD, sync_bn=False, workers=8, project=runs/train, name=exp, exist_ok=False, quad=False, cos_lr=False, label_smoothing=0.0, patience=100, freeze=[0], save_period=-1, local_rank=-1, entity=None, upload_dataset=False, bbox_interval=-1, artifact_alias=latest\n", 222 | "\u001b[34m\u001b[1mgithub: \u001b[0mup to date with https://github.com/ultralytics/yolov5 ✅\n", 223 | "YOLOv5 🚀 v6.1-253-g75bbaa8 Python-3.7.13 torch-1.11.0+cu113 CUDA:0 (Tesla T4, 15110MiB)\n", 224 | "\n", 225 | "\u001b[34m\u001b[1mhyperparameters: \u001b[0mlr0=0.01, lrf=0.01, momentum=0.937, weight_decay=0.0005, warmup_epochs=3.0, warmup_momentum=0.8, warmup_bias_lr=0.1, box=0.05, cls=0.5, cls_pw=1.0, obj=1.0, obj_pw=1.0, iou_t=0.2, anchor_t=4.0, fl_gamma=0.0, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, degrees=0.0, translate=0.1, scale=0.5, shear=0.0, perspective=0.0, flipud=0.0, fliplr=0.5, mosaic=1.0, mixup=0.0, copy_paste=0.0\n", 226 | "\u001b[34m\u001b[1mWeights & Biases: \u001b[0mrun 'pip install wandb' to automatically track and visualize YOLOv5 🚀 runs (RECOMMENDED)\n", 227 | "\u001b[34m\u001b[1mTensorBoard: \u001b[0mStart with 'tensorboard --logdir runs/train', view at http://localhost:6006/\n", 228 | "Downloading https://ultralytics.com/assets/Arial.ttf to /root/.config/Ultralytics/Arial.ttf...\n", 229 | "100% 755k/755k [00:00<00:00, 87.1MB/s]\n", 230 | "Downloading https://github.com/ultralytics/yolov5/releases/download/v6.1/yolov5s.pt to yolov5s.pt...\n", 231 | "100% 14.1M/14.1M [00:00<00:00, 268MB/s]\n", 232 | "\n", 233 | "Overriding model.yaml nc=80 with nc=1\n", 234 | "\n", 235 | " from n params module arguments \n", 236 | " 0 -1 1 3520 models.common.Conv [3, 32, 6, 2, 2] \n", 237 | " 1 -1 1 18560 models.common.Conv [32, 64, 3, 2] \n", 238 | " 2 -1 1 18816 models.common.C3 [64, 64, 1] \n", 239 | " 3 -1 1 73984 models.common.Conv [64, 128, 3, 2] \n", 240 | " 4 -1 2 115712 models.common.C3 [128, 128, 2] \n", 241 | " 5 -1 1 295424 models.common.Conv [128, 256, 3, 2] \n", 242 | " 6 -1 3 625152 models.common.C3 [256, 256, 3] \n", 243 | " 7 -1 1 1180672 models.common.Conv [256, 512, 3, 2] \n", 244 | " 8 -1 1 1182720 models.common.C3 [512, 512, 1] \n", 245 | " 9 -1 1 656896 models.common.SPPF [512, 512, 5] \n", 246 | " 10 -1 1 131584 models.common.Conv [512, 256, 1, 1] \n", 247 | " 11 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] \n", 248 | " 12 [-1, 6] 1 0 models.common.Concat [1] \n", 249 | " 13 -1 1 361984 models.common.C3 [512, 256, 1, False] \n", 250 | " 14 -1 1 33024 models.common.Conv [256, 128, 1, 1] \n", 251 | " 15 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] \n", 252 | " 16 [-1, 4] 1 0 models.common.Concat [1] \n", 253 | " 17 -1 1 90880 models.common.C3 [256, 128, 1, False] \n", 254 | " 18 -1 1 147712 models.common.Conv [128, 128, 3, 2] \n", 255 | " 19 [-1, 14] 1 0 models.common.Concat [1] \n", 256 | " 20 -1 1 296448 models.common.C3 [256, 256, 1, False] \n", 257 | " 21 -1 1 590336 models.common.Conv [256, 256, 3, 2] \n", 258 | " 22 [-1, 10] 1 0 models.common.Concat [1] \n", 259 | " 23 -1 1 1182720 models.common.C3 [512, 512, 1, False] \n", 260 | " 24 [17, 20, 23] 1 16182 models.yolo.Detect [1, [[10, 13, 16, 30, 33, 23], [30, 61, 62, 45, 59, 119], [116, 90, 156, 198, 373, 326]], [128, 256, 512]]\n", 261 | "Model summary: 270 layers, 7022326 parameters, 7022326 gradients\n", 262 | "\n", 263 | "Transferred 343/349 items from yolov5s.pt\n", 264 | "\u001b[34m\u001b[1mAMP: \u001b[0mchecks passed ✅\n", 265 | "Scaled weight_decay = 0.0005\n", 266 | "\u001b[34m\u001b[1moptimizer:\u001b[0m SGD with parameter groups 57 weight (no decay), 60 weight, 60 bias\n", 267 | "\u001b[34m\u001b[1malbumentations: \u001b[0mversion 1.0.3 required by YOLOv5, but version 0.1.12 is currently installed\n", 268 | "\u001b[34m\u001b[1mtrain: \u001b[0mScanning '/content/data/train/labels' images and labels...400 found, 0 missing, 0 empty, 0 corrupt: 100% 400/400 [00:00<00:00, 2384.41it/s]\n", 269 | "\u001b[34m\u001b[1mtrain: \u001b[0mNew cache created: /content/data/train/labels.cache\n", 270 | "\u001b[34m\u001b[1mval: \u001b[0mScanning '/content/data/val/labels' images and labels...100 found, 0 missing, 0 empty, 0 corrupt: 100% 100/100 [00:00<00:00, 1139.75it/s]\n", 271 | "\u001b[34m\u001b[1mval: \u001b[0mNew cache created: /content/data/val/labels.cache\n", 272 | "Plotting labels to runs/train/exp/labels.jpg... \n", 273 | "\n", 274 | "\u001b[34m\u001b[1mAutoAnchor: \u001b[0m3.85 anchors/target, 1.000 Best Possible Recall (BPR). Current anchors are a good fit to dataset ✅\n", 275 | "Image sizes 640 train, 640 val\n", 276 | "Using 2 dataloader workers\n", 277 | "Logging results to \u001b[1mruns/train/exp\u001b[0m\n", 278 | "Starting training for 300 epochs...\n", 279 | "\n", 280 | " Epoch gpu_mem box obj cls labels img_size\n", 281 | " 0/299 3.73G 0.1081 0.02948 0 33 640: 100% 25/25 [00:11<00:00, 2.16it/s]\n", 282 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:02<00:00, 1.66it/s]\n", 283 | " all 100 102 0.00666 0.294 0.00509 0.000893\n", 284 | "\n", 285 | " Epoch gpu_mem box obj cls labels img_size\n", 286 | " 1/299 4.9G 0.08439 0.02431 0 35 640: 100% 25/25 [00:09<00:00, 2.56it/s]\n", 287 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.17it/s]\n", 288 | " all 100 102 0.0333 0.167 0.0212 0.00471\n", 289 | "\n", 290 | " Epoch gpu_mem box obj cls labels img_size\n", 291 | " 2/299 4.9G 0.07457 0.02018 0 23 640: 100% 25/25 [00:09<00:00, 2.67it/s]\n", 292 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.14it/s]\n", 293 | " all 100 102 0.41 0.314 0.337 0.101\n", 294 | "\n", 295 | " Epoch gpu_mem box obj cls labels img_size\n", 296 | " 3/299 4.9G 0.07415 0.01729 0 36 640: 100% 25/25 [00:09<00:00, 2.61it/s]\n", 297 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.86it/s]\n", 298 | " all 100 102 0.513 0.431 0.381 0.0997\n", 299 | "\n", 300 | " Epoch gpu_mem box obj cls labels img_size\n", 301 | " 4/299 4.9G 0.06185 0.01932 0 27 640: 100% 25/25 [00:09<00:00, 2.69it/s]\n", 302 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.42it/s]\n", 303 | " all 100 102 0.323 0.382 0.265 0.0626\n", 304 | "\n", 305 | " Epoch gpu_mem box obj cls labels img_size\n", 306 | " 5/299 4.9G 0.0597 0.01586 0 34 640: 100% 25/25 [00:09<00:00, 2.76it/s]\n", 307 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.47it/s]\n", 308 | " all 100 102 0.275 0.441 0.228 0.0601\n", 309 | "\n", 310 | " Epoch gpu_mem box obj cls labels img_size\n", 311 | " 6/299 4.9G 0.05917 0.01469 0 32 640: 100% 25/25 [00:09<00:00, 2.69it/s]\n", 312 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.27it/s]\n", 313 | " all 100 102 0.651 0.66 0.64 0.238\n", 314 | "\n", 315 | " Epoch gpu_mem box obj cls labels img_size\n", 316 | " 7/299 4.9G 0.05149 0.01403 0 24 640: 100% 25/25 [00:09<00:00, 2.65it/s]\n", 317 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.77it/s]\n", 318 | " all 100 102 0.619 0.637 0.549 0.177\n", 319 | "\n", 320 | " Epoch gpu_mem box obj cls labels img_size\n", 321 | " 8/299 4.9G 0.05083 0.01283 0 38 640: 100% 25/25 [00:09<00:00, 2.61it/s]\n", 322 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.47it/s]\n", 323 | " all 100 102 0.82 0.696 0.708 0.253\n", 324 | "\n", 325 | " Epoch gpu_mem box obj cls labels img_size\n", 326 | " 9/299 4.9G 0.04524 0.01293 0 38 640: 100% 25/25 [00:09<00:00, 2.68it/s]\n", 327 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.44it/s]\n", 328 | " all 100 102 0.761 0.696 0.756 0.319\n", 329 | "\n", 330 | " Epoch gpu_mem box obj cls labels img_size\n", 331 | " 10/299 4.9G 0.04537 0.01151 0 28 640: 100% 25/25 [00:09<00:00, 2.69it/s]\n", 332 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.41it/s]\n", 333 | " all 100 102 0.891 0.881 0.919 0.368\n", 334 | "\n", 335 | " Epoch gpu_mem box obj cls labels img_size\n", 336 | " 11/299 4.9G 0.04579 0.01131 0 40 640: 100% 25/25 [00:09<00:00, 2.66it/s]\n", 337 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.39it/s]\n", 338 | " all 100 102 0.752 0.725 0.684 0.242\n", 339 | "\n", 340 | " Epoch gpu_mem box obj cls labels img_size\n", 341 | " 12/299 4.9G 0.04461 0.01092 0 31 640: 100% 25/25 [00:09<00:00, 2.54it/s]\n", 342 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.43it/s]\n", 343 | " all 100 102 0.892 0.811 0.868 0.377\n", 344 | "\n", 345 | " Epoch gpu_mem box obj cls labels img_size\n", 346 | " 13/299 4.9G 0.04348 0.01115 0 37 640: 100% 25/25 [00:09<00:00, 2.74it/s]\n", 347 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.36it/s]\n", 348 | " all 100 102 0.727 0.686 0.618 0.206\n", 349 | "\n", 350 | " Epoch gpu_mem box obj cls labels img_size\n", 351 | " 14/299 4.9G 0.04306 0.01091 0 31 640: 100% 25/25 [00:09<00:00, 2.67it/s]\n", 352 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.33it/s]\n", 353 | " all 100 102 0.881 0.869 0.92 0.396\n", 354 | "\n", 355 | " Epoch gpu_mem box obj cls labels img_size\n", 356 | " 15/299 4.9G 0.03967 0.01031 0 32 640: 100% 25/25 [00:09<00:00, 2.63it/s]\n", 357 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 3.11it/s]\n", 358 | " all 100 102 0.932 0.808 0.88 0.339\n", 359 | "\n", 360 | " Epoch gpu_mem box obj cls labels img_size\n", 361 | " 16/299 4.9G 0.04059 0.0105 0 27 640: 100% 25/25 [00:09<00:00, 2.66it/s]\n", 362 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.31it/s]\n", 363 | " all 100 102 0.891 0.798 0.885 0.396\n", 364 | "\n", 365 | " Epoch gpu_mem box obj cls labels img_size\n", 366 | " 17/299 4.9G 0.04026 0.01048 0 39 640: 100% 25/25 [00:10<00:00, 2.39it/s]\n", 367 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.50it/s]\n", 368 | " all 100 102 0.881 0.814 0.83 0.324\n", 369 | "\n", 370 | " Epoch gpu_mem box obj cls labels img_size\n", 371 | " 18/299 4.9G 0.03757 0.009823 0 29 640: 100% 25/25 [00:09<00:00, 2.73it/s]\n", 372 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.62it/s]\n", 373 | " all 100 102 0.949 0.833 0.907 0.407\n", 374 | "\n", 375 | " Epoch gpu_mem box obj cls labels img_size\n", 376 | " 19/299 4.9G 0.03839 0.01006 0 24 640: 100% 25/25 [00:09<00:00, 2.68it/s]\n", 377 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.56it/s]\n", 378 | " all 100 102 0.902 0.843 0.901 0.402\n", 379 | "\n", 380 | " Epoch gpu_mem box obj cls labels img_size\n", 381 | " 20/299 4.9G 0.04 0.009984 0 27 640: 100% 25/25 [00:09<00:00, 2.64it/s]\n", 382 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.36it/s]\n", 383 | " all 100 102 0.84 0.873 0.878 0.379\n", 384 | "\n", 385 | " Epoch gpu_mem box obj cls labels img_size\n", 386 | " 21/299 4.9G 0.03751 0.009596 0 35 640: 100% 25/25 [00:09<00:00, 2.70it/s]\n", 387 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.37it/s]\n", 388 | " all 100 102 0.859 0.839 0.873 0.394\n", 389 | "\n", 390 | " Epoch gpu_mem box obj cls labels img_size\n", 391 | " 22/299 4.9G 0.03704 0.009819 0 33 640: 100% 25/25 [00:09<00:00, 2.75it/s]\n", 392 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.45it/s]\n", 393 | " all 100 102 0.914 0.863 0.911 0.38\n", 394 | "\n", 395 | " Epoch gpu_mem box obj cls labels img_size\n", 396 | " 23/299 4.9G 0.03698 0.009481 0 34 640: 100% 25/25 [00:09<00:00, 2.76it/s]\n", 397 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.42it/s]\n", 398 | " all 100 102 0.885 0.873 0.933 0.401\n", 399 | "\n", 400 | " Epoch gpu_mem box obj cls labels img_size\n", 401 | " 24/299 4.9G 0.03681 0.009483 0 27 640: 100% 25/25 [00:09<00:00, 2.71it/s]\n", 402 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.55it/s]\n", 403 | " all 100 102 0.924 0.833 0.919 0.408\n", 404 | "\n", 405 | " Epoch gpu_mem box obj cls labels img_size\n", 406 | " 25/299 4.9G 0.03875 0.008932 0 33 640: 100% 25/25 [00:09<00:00, 2.65it/s]\n", 407 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.91it/s]\n", 408 | " all 100 102 0.914 0.833 0.866 0.38\n", 409 | "\n", 410 | " Epoch gpu_mem box obj cls labels img_size\n", 411 | " 26/299 4.9G 0.03488 0.00978 0 32 640: 100% 25/25 [00:09<00:00, 2.63it/s]\n", 412 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.68it/s]\n", 413 | " all 100 102 0.902 0.816 0.871 0.366\n", 414 | "\n", 415 | " Epoch gpu_mem box obj cls labels img_size\n", 416 | " 27/299 4.9G 0.03604 0.009722 0 27 640: 100% 25/25 [00:09<00:00, 2.65it/s]\n", 417 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.41it/s]\n", 418 | " all 100 102 0.875 0.824 0.871 0.371\n", 419 | "\n", 420 | " Epoch gpu_mem box obj cls labels img_size\n", 421 | " 28/299 4.9G 0.0361 0.009328 0 33 640: 100% 25/25 [00:09<00:00, 2.68it/s]\n", 422 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.22it/s]\n", 423 | " all 100 102 0.864 0.814 0.857 0.39\n", 424 | "\n", 425 | " Epoch gpu_mem box obj cls labels img_size\n", 426 | " 29/299 4.9G 0.03465 0.008781 0 37 640: 100% 25/25 [00:09<00:00, 2.67it/s]\n", 427 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.34it/s]\n", 428 | " all 100 102 0.9 0.853 0.909 0.423\n", 429 | "\n", 430 | " Epoch gpu_mem box obj cls labels img_size\n", 431 | " 30/299 4.9G 0.0339 0.00918 0 40 640: 100% 25/25 [00:09<00:00, 2.63it/s]\n", 432 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.42it/s]\n", 433 | " all 100 102 0.84 0.853 0.881 0.389\n", 434 | "\n", 435 | " Epoch gpu_mem box obj cls labels img_size\n", 436 | " 31/299 4.9G 0.0365 0.008865 0 34 640: 100% 25/25 [00:09<00:00, 2.68it/s]\n", 437 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.41it/s]\n", 438 | " all 100 102 0.868 0.833 0.877 0.409\n", 439 | "\n", 440 | " Epoch gpu_mem box obj cls labels img_size\n", 441 | " 32/299 4.9G 0.035 0.009154 0 31 640: 100% 25/25 [00:09<00:00, 2.72it/s]\n", 442 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.41it/s]\n", 443 | " all 100 102 0.891 0.824 0.83 0.388\n", 444 | "\n", 445 | " Epoch gpu_mem box obj cls labels img_size\n", 446 | " 33/299 4.9G 0.03265 0.008889 0 26 640: 100% 25/25 [00:09<00:00, 2.61it/s]\n", 447 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.56it/s]\n", 448 | " all 100 102 0.807 0.818 0.778 0.316\n", 449 | "\n", 450 | " Epoch gpu_mem box obj cls labels img_size\n", 451 | " 34/299 4.9G 0.03285 0.00862 0 28 640: 100% 25/25 [00:09<00:00, 2.70it/s]\n", 452 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.39it/s]\n", 453 | " all 100 102 0.885 0.907 0.91 0.396\n", 454 | "\n", 455 | " Epoch gpu_mem box obj cls labels img_size\n", 456 | " 35/299 4.9G 0.0346 0.008544 0 30 640: 100% 25/25 [00:09<00:00, 2.63it/s]\n", 457 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.54it/s]\n", 458 | " all 100 102 0.916 0.859 0.885 0.387\n", 459 | "\n", 460 | " Epoch gpu_mem box obj cls labels img_size\n", 461 | " 36/299 4.9G 0.03291 0.008397 0 27 640: 100% 25/25 [00:09<00:00, 2.67it/s]\n", 462 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.63it/s]\n", 463 | " all 100 102 0.89 0.814 0.846 0.351\n", 464 | "\n", 465 | " Epoch gpu_mem box obj cls labels img_size\n", 466 | " 37/299 4.9G 0.0326 0.008523 0 27 640: 100% 25/25 [00:09<00:00, 2.69it/s]\n", 467 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.32it/s]\n", 468 | " all 100 102 0.917 0.861 0.908 0.413\n", 469 | "\n", 470 | " Epoch gpu_mem box obj cls labels img_size\n", 471 | " 38/299 4.9G 0.0335 0.008697 0 34 640: 100% 25/25 [00:09<00:00, 2.64it/s]\n", 472 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.71it/s]\n", 473 | " all 100 102 0.851 0.775 0.762 0.299\n", 474 | "\n", 475 | " Epoch gpu_mem box obj cls labels img_size\n", 476 | " 39/299 4.9G 0.03396 0.008825 0 33 640: 100% 25/25 [00:09<00:00, 2.65it/s]\n", 477 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.43it/s]\n", 478 | " all 100 102 0.83 0.794 0.833 0.375\n", 479 | "\n", 480 | " Epoch gpu_mem box obj cls labels img_size\n", 481 | " 40/299 4.9G 0.03115 0.00827 0 30 640: 100% 25/25 [00:09<00:00, 2.71it/s]\n", 482 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.39it/s]\n", 483 | " all 100 102 0.87 0.85 0.883 0.403\n", 484 | "\n", 485 | " Epoch gpu_mem box obj cls labels img_size\n", 486 | " 41/299 4.9G 0.03049 0.008189 0 28 640: 100% 25/25 [00:09<00:00, 2.71it/s]\n", 487 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.46it/s]\n", 488 | " all 100 102 0.862 0.857 0.882 0.414\n", 489 | "\n", 490 | " Epoch gpu_mem box obj cls labels img_size\n", 491 | " 42/299 4.9G 0.0301 0.008428 0 29 640: 100% 25/25 [00:09<00:00, 2.64it/s]\n", 492 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:02<00:00, 1.73it/s]\n", 493 | " all 100 102 0.871 0.863 0.907 0.43\n", 494 | "\n", 495 | " Epoch gpu_mem box obj cls labels img_size\n", 496 | " 43/299 4.9G 0.0311 0.008436 0 37 640: 100% 25/25 [00:09<00:00, 2.67it/s]\n", 497 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.38it/s]\n", 498 | " all 100 102 0.857 0.824 0.835 0.387\n", 499 | "\n", 500 | " Epoch gpu_mem box obj cls labels img_size\n", 501 | " 44/299 4.9G 0.02914 0.008271 0 39 640: 100% 25/25 [00:09<00:00, 2.68it/s]\n", 502 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.25it/s]\n", 503 | " all 100 102 0.894 0.853 0.901 0.44\n", 504 | "\n", 505 | " Epoch gpu_mem box obj cls labels img_size\n", 506 | " 45/299 4.9G 0.03059 0.008375 0 31 640: 100% 25/25 [00:09<00:00, 2.58it/s]\n", 507 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.80it/s]\n", 508 | " all 100 102 0.892 0.824 0.864 0.379\n", 509 | "\n", 510 | " Epoch gpu_mem box obj cls labels img_size\n", 511 | " 46/299 4.9G 0.03166 0.008544 0 29 640: 100% 25/25 [00:09<00:00, 2.64it/s]\n", 512 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.22it/s]\n", 513 | " all 100 102 0.872 0.824 0.872 0.396\n", 514 | "\n", 515 | " Epoch gpu_mem box obj cls labels img_size\n", 516 | " 47/299 4.9G 0.03072 0.008137 0 30 640: 100% 25/25 [00:09<00:00, 2.64it/s]\n", 517 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.64it/s]\n", 518 | " all 100 102 0.906 0.854 0.899 0.431\n", 519 | "\n", 520 | " Epoch gpu_mem box obj cls labels img_size\n", 521 | " 48/299 4.9G 0.03068 0.00821 0 38 640: 100% 25/25 [00:09<00:00, 2.69it/s]\n", 522 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.42it/s]\n", 523 | " all 100 102 0.917 0.866 0.921 0.425\n", 524 | "\n", 525 | " Epoch gpu_mem box obj cls labels img_size\n", 526 | " 49/299 4.9G 0.03 0.008035 0 26 640: 100% 25/25 [00:09<00:00, 2.53it/s]\n", 527 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 3.10it/s]\n", 528 | " all 100 102 0.85 0.832 0.809 0.356\n", 529 | "\n", 530 | " Epoch gpu_mem box obj cls labels img_size\n", 531 | " 50/299 4.9G 0.0305 0.008382 0 43 640: 100% 25/25 [00:09<00:00, 2.74it/s]\n", 532 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.55it/s]\n", 533 | " all 100 102 0.872 0.833 0.82 0.391\n", 534 | "\n", 535 | " Epoch gpu_mem box obj cls labels img_size\n", 536 | " 51/299 4.9G 0.02862 0.008091 0 35 640: 100% 25/25 [00:09<00:00, 2.63it/s]\n", 537 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.30it/s]\n", 538 | " all 100 102 0.919 0.873 0.906 0.435\n", 539 | "\n", 540 | " Epoch gpu_mem box obj cls labels img_size\n", 541 | " 52/299 4.9G 0.02882 0.008107 0 38 640: 100% 25/25 [00:09<00:00, 2.70it/s]\n", 542 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.54it/s]\n", 543 | " all 100 102 0.874 0.882 0.905 0.42\n", 544 | "\n", 545 | " Epoch gpu_mem box obj cls labels img_size\n", 546 | " 53/299 4.9G 0.02984 0.008063 0 33 640: 100% 25/25 [00:09<00:00, 2.63it/s]\n", 547 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.51it/s]\n", 548 | " all 100 102 0.886 0.863 0.871 0.386\n", 549 | "\n", 550 | " Epoch gpu_mem box obj cls labels img_size\n", 551 | " 54/299 4.9G 0.02882 0.008139 0 31 640: 100% 25/25 [00:09<00:00, 2.65it/s]\n", 552 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.37it/s]\n", 553 | " all 100 102 0.872 0.863 0.877 0.379\n", 554 | "\n", 555 | " Epoch gpu_mem box obj cls labels img_size\n", 556 | " 55/299 4.9G 0.02897 0.008181 0 23 640: 100% 25/25 [00:09<00:00, 2.65it/s]\n", 557 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.53it/s]\n", 558 | " all 100 102 0.898 0.873 0.906 0.381\n", 559 | "\n", 560 | " Epoch gpu_mem box obj cls labels img_size\n", 561 | " 56/299 4.9G 0.02806 0.00791 0 25 640: 100% 25/25 [00:09<00:00, 2.64it/s]\n", 562 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.68it/s]\n", 563 | " all 100 102 0.897 0.863 0.909 0.428\n", 564 | "\n", 565 | " Epoch gpu_mem box obj cls labels img_size\n", 566 | " 57/299 4.9G 0.02848 0.008018 0 30 640: 100% 25/25 [00:09<00:00, 2.65it/s]\n", 567 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.48it/s]\n", 568 | " all 100 102 0.899 0.882 0.884 0.438\n", 569 | "\n", 570 | " Epoch gpu_mem box obj cls labels img_size\n", 571 | " 58/299 4.9G 0.03094 0.008125 0 36 640: 100% 25/25 [00:09<00:00, 2.74it/s]\n", 572 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.48it/s]\n", 573 | " all 100 102 0.925 0.843 0.915 0.428\n", 574 | "\n", 575 | " Epoch gpu_mem box obj cls labels img_size\n", 576 | " 59/299 4.9G 0.02961 0.008151 0 42 640: 100% 25/25 [00:09<00:00, 2.67it/s]\n", 577 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.71it/s]\n", 578 | " all 100 102 0.913 0.873 0.899 0.431\n", 579 | "\n", 580 | " Epoch gpu_mem box obj cls labels img_size\n", 581 | " 60/299 4.9G 0.02886 0.007636 0 36 640: 100% 25/25 [00:09<00:00, 2.62it/s]\n", 582 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.81it/s]\n", 583 | " all 100 102 0.895 0.832 0.864 0.401\n", 584 | "\n", 585 | " Epoch gpu_mem box obj cls labels img_size\n", 586 | " 61/299 4.9G 0.02986 0.007783 0 35 640: 100% 25/25 [00:09<00:00, 2.67it/s]\n", 587 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.51it/s]\n", 588 | " all 100 102 0.841 0.831 0.797 0.37\n", 589 | "\n", 590 | " Epoch gpu_mem box obj cls labels img_size\n", 591 | " 62/299 4.9G 0.02738 0.007668 0 38 640: 100% 25/25 [00:09<00:00, 2.62it/s]\n", 592 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.92it/s]\n", 593 | " all 100 102 0.909 0.88 0.894 0.416\n", 594 | "\n", 595 | " Epoch gpu_mem box obj cls labels img_size\n", 596 | " 63/299 4.9G 0.02843 0.008498 0 39 640: 100% 25/25 [00:09<00:00, 2.61it/s]\n", 597 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.65it/s]\n", 598 | " all 100 102 0.928 0.883 0.915 0.413\n", 599 | "\n", 600 | " Epoch gpu_mem box obj cls labels img_size\n", 601 | " 64/299 4.9G 0.0268 0.00785 0 31 640: 100% 25/25 [00:09<00:00, 2.68it/s]\n", 602 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.43it/s]\n", 603 | " all 100 102 0.93 0.912 0.94 0.442\n", 604 | "\n", 605 | " Epoch gpu_mem box obj cls labels img_size\n", 606 | " 65/299 4.9G 0.02694 0.007586 0 36 640: 100% 25/25 [00:09<00:00, 2.71it/s]\n", 607 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.51it/s]\n", 608 | " all 100 102 0.93 0.909 0.934 0.442\n", 609 | "\n", 610 | " Epoch gpu_mem box obj cls labels img_size\n", 611 | " 66/299 4.9G 0.02688 0.007928 0 36 640: 100% 25/25 [00:09<00:00, 2.63it/s]\n", 612 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.67it/s]\n", 613 | " all 100 102 0.907 0.861 0.917 0.428\n", 614 | "\n", 615 | " Epoch gpu_mem box obj cls labels img_size\n", 616 | " 67/299 4.9G 0.02704 0.007397 0 31 640: 100% 25/25 [00:09<00:00, 2.61it/s]\n", 617 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.39it/s]\n", 618 | " all 100 102 0.864 0.875 0.918 0.413\n", 619 | "\n", 620 | " Epoch gpu_mem box obj cls labels img_size\n", 621 | " 68/299 4.9G 0.02718 0.007599 0 34 640: 100% 25/25 [00:09<00:00, 2.61it/s]\n", 622 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:02<00:00, 1.74it/s]\n", 623 | " all 100 102 0.887 0.892 0.896 0.42\n", 624 | "\n", 625 | " Epoch gpu_mem box obj cls labels img_size\n", 626 | " 69/299 4.9G 0.02683 0.007535 0 32 640: 100% 25/25 [00:09<00:00, 2.66it/s]\n", 627 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.83it/s]\n", 628 | " all 100 102 0.909 0.873 0.876 0.419\n", 629 | "\n", 630 | " Epoch gpu_mem box obj cls labels img_size\n", 631 | " 70/299 4.9G 0.02635 0.007493 0 32 640: 100% 25/25 [00:09<00:00, 2.63it/s]\n", 632 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.83it/s]\n", 633 | " all 100 102 0.946 0.863 0.902 0.414\n", 634 | "\n", 635 | " Epoch gpu_mem box obj cls labels img_size\n", 636 | " 71/299 4.9G 0.02639 0.007225 0 28 640: 100% 25/25 [00:09<00:00, 2.69it/s]\n", 637 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.30it/s]\n", 638 | " all 100 102 0.848 0.874 0.859 0.424\n", 639 | "\n", 640 | " Epoch gpu_mem box obj cls labels img_size\n", 641 | " 72/299 4.9G 0.02601 0.007404 0 25 640: 100% 25/25 [00:09<00:00, 2.75it/s]\n", 642 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.34it/s]\n", 643 | " all 100 102 0.926 0.912 0.935 0.437\n", 644 | "\n", 645 | " Epoch gpu_mem box obj cls labels img_size\n", 646 | " 73/299 4.9G 0.02611 0.007181 0 32 640: 100% 25/25 [00:08<00:00, 2.81it/s]\n", 647 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.44it/s]\n", 648 | " all 100 102 0.925 0.882 0.907 0.42\n", 649 | "\n", 650 | " Epoch gpu_mem box obj cls labels img_size\n", 651 | " 74/299 4.9G 0.02629 0.007168 0 32 640: 100% 25/25 [00:09<00:00, 2.69it/s]\n", 652 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.31it/s]\n", 653 | " all 100 102 0.917 0.902 0.932 0.428\n", 654 | "\n", 655 | " Epoch gpu_mem box obj cls labels img_size\n", 656 | " 75/299 4.9G 0.0257 0.007511 0 25 640: 100% 25/25 [00:09<00:00, 2.60it/s]\n", 657 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.93it/s]\n", 658 | " all 100 102 0.9 0.892 0.895 0.445\n", 659 | "\n", 660 | " Epoch gpu_mem box obj cls labels img_size\n", 661 | " 76/299 4.9G 0.02605 0.007292 0 35 640: 100% 25/25 [00:09<00:00, 2.74it/s]\n", 662 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.58it/s]\n", 663 | " all 100 102 0.879 0.873 0.85 0.428\n", 664 | "\n", 665 | " Epoch gpu_mem box obj cls labels img_size\n", 666 | " 77/299 4.9G 0.02674 0.007751 0 41 640: 100% 25/25 [00:09<00:00, 2.69it/s]\n", 667 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.41it/s]\n", 668 | " all 100 102 0.926 0.862 0.904 0.439\n", 669 | "\n", 670 | " Epoch gpu_mem box obj cls labels img_size\n", 671 | " 78/299 4.9G 0.02496 0.007369 0 32 640: 100% 25/25 [00:09<00:00, 2.63it/s]\n", 672 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.47it/s]\n", 673 | " all 100 102 0.923 0.853 0.88 0.426\n", 674 | "\n", 675 | " Epoch gpu_mem box obj cls labels img_size\n", 676 | " 79/299 4.9G 0.02658 0.007577 0 40 640: 100% 25/25 [00:09<00:00, 2.71it/s]\n", 677 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.40it/s]\n", 678 | " all 100 102 0.898 0.873 0.889 0.453\n", 679 | "\n", 680 | " Epoch gpu_mem box obj cls labels img_size\n", 681 | " 80/299 4.9G 0.02568 0.00698 0 30 640: 100% 25/25 [00:09<00:00, 2.65it/s]\n", 682 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.53it/s]\n", 683 | " all 100 101 0.894 0.861 0.873 0.446\n", 684 | "\n", 685 | " Epoch gpu_mem box obj cls labels img_size\n", 686 | " 81/299 4.9G 0.02522 0.00758 0 38 640: 100% 25/25 [00:09<00:00, 2.68it/s]\n", 687 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.52it/s]\n", 688 | " all 100 101 0.894 0.914 0.927 0.448\n", 689 | "\n", 690 | " Epoch gpu_mem box obj cls labels img_size\n", 691 | " 82/299 4.9G 0.02439 0.007453 0 40 640: 100% 25/25 [00:09<00:00, 2.62it/s]\n", 692 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 3.00it/s]\n", 693 | " all 100 102 0.904 0.892 0.904 0.445\n", 694 | "\n", 695 | " Epoch gpu_mem box obj cls labels img_size\n", 696 | " 83/299 4.9G 0.02467 0.006809 0 35 640: 100% 25/25 [00:09<00:00, 2.69it/s]\n", 697 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.47it/s]\n", 698 | " all 100 102 0.899 0.869 0.896 0.448\n", 699 | "\n", 700 | " Epoch gpu_mem box obj cls labels img_size\n", 701 | " 84/299 4.9G 0.02446 0.007114 0 41 640: 100% 25/25 [00:09<00:00, 2.57it/s]\n", 702 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.57it/s]\n", 703 | " all 100 102 0.901 0.882 0.917 0.448\n", 704 | "\n", 705 | " Epoch gpu_mem box obj cls labels img_size\n", 706 | " 85/299 4.9G 0.02454 0.007256 0 31 640: 100% 25/25 [00:09<00:00, 2.72it/s]\n", 707 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.39it/s]\n", 708 | " all 100 102 0.917 0.902 0.92 0.447\n", 709 | "\n", 710 | " Epoch gpu_mem box obj cls labels img_size\n", 711 | " 86/299 4.9G 0.02476 0.00712 0 31 640: 100% 25/25 [00:09<00:00, 2.62it/s]\n", 712 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.38it/s]\n", 713 | " all 100 102 0.906 0.852 0.88 0.425\n", 714 | "\n", 715 | " Epoch gpu_mem box obj cls labels img_size\n", 716 | " 87/299 4.9G 0.02385 0.007299 0 34 640: 100% 25/25 [00:08<00:00, 2.78it/s]\n", 717 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.47it/s]\n", 718 | " all 100 102 0.938 0.853 0.911 0.436\n", 719 | "\n", 720 | " Epoch gpu_mem box obj cls labels img_size\n", 721 | " 88/299 4.9G 0.024 0.006958 0 34 640: 100% 25/25 [00:09<00:00, 2.67it/s]\n", 722 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.44it/s]\n", 723 | " all 100 102 0.919 0.863 0.9 0.449\n", 724 | "\n", 725 | " Epoch gpu_mem box obj cls labels img_size\n", 726 | " 89/299 4.9G 0.02395 0.006838 0 32 640: 100% 25/25 [00:09<00:00, 2.68it/s]\n", 727 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.56it/s]\n", 728 | " all 100 102 0.937 0.872 0.902 0.424\n", 729 | "\n", 730 | " Epoch gpu_mem box obj cls labels img_size\n", 731 | " 90/299 4.9G 0.02381 0.006874 0 36 640: 100% 25/25 [00:09<00:00, 2.66it/s]\n", 732 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.70it/s]\n", 733 | " all 100 102 0.901 0.863 0.868 0.414\n", 734 | "\n", 735 | " Epoch gpu_mem box obj cls labels img_size\n", 736 | " 91/299 4.9G 0.02299 0.006519 0 28 640: 100% 25/25 [00:09<00:00, 2.66it/s]\n", 737 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.74it/s]\n", 738 | " all 100 102 0.911 0.899 0.938 0.439\n", 739 | "\n", 740 | " Epoch gpu_mem box obj cls labels img_size\n", 741 | " 92/299 4.9G 0.02373 0.007045 0 36 640: 100% 25/25 [00:09<00:00, 2.52it/s]\n", 742 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 3.20it/s]\n", 743 | " all 100 102 0.889 0.873 0.893 0.405\n", 744 | "\n", 745 | " Epoch gpu_mem box obj cls labels img_size\n", 746 | " 93/299 4.9G 0.02421 0.007135 0 40 640: 100% 25/25 [00:09<00:00, 2.67it/s]\n", 747 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.44it/s]\n", 748 | " all 100 102 0.889 0.912 0.913 0.449\n", 749 | "\n", 750 | " Epoch gpu_mem box obj cls labels img_size\n", 751 | " 94/299 4.9G 0.02402 0.006847 0 28 640: 100% 25/25 [00:09<00:00, 2.62it/s]\n", 752 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:02<00:00, 1.62it/s]\n", 753 | " all 100 102 0.912 0.91 0.93 0.458\n", 754 | "\n", 755 | " Epoch gpu_mem box obj cls labels img_size\n", 756 | " 95/299 4.9G 0.02361 0.006725 0 27 640: 100% 25/25 [00:08<00:00, 2.80it/s]\n", 757 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.29it/s]\n", 758 | " all 100 102 0.939 0.907 0.938 0.469\n", 759 | "\n", 760 | " Epoch gpu_mem box obj cls labels img_size\n", 761 | " 96/299 4.9G 0.02378 0.007025 0 32 640: 100% 25/25 [00:09<00:00, 2.68it/s]\n", 762 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.41it/s]\n", 763 | " all 100 102 0.947 0.873 0.926 0.446\n", 764 | "\n", 765 | " Epoch gpu_mem box obj cls labels img_size\n", 766 | " 97/299 4.9G 0.02354 0.006654 0 27 640: 100% 25/25 [00:08<00:00, 2.80it/s]\n", 767 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.32it/s]\n", 768 | " all 100 102 0.915 0.902 0.92 0.482\n", 769 | "\n", 770 | " Epoch gpu_mem box obj cls labels img_size\n", 771 | " 98/299 4.9G 0.02478 0.00725 0 31 640: 100% 25/25 [00:09<00:00, 2.68it/s]\n", 772 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.30it/s]\n", 773 | " all 100 102 0.933 0.882 0.899 0.474\n", 774 | "\n", 775 | " Epoch gpu_mem box obj cls labels img_size\n", 776 | " 99/299 4.9G 0.02296 0.006933 0 34 640: 100% 25/25 [00:09<00:00, 2.65it/s]\n", 777 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.49it/s]\n", 778 | " all 100 102 0.891 0.892 0.897 0.452\n", 779 | "\n", 780 | " Epoch gpu_mem box obj cls labels img_size\n", 781 | " 100/299 4.9G 0.02282 0.006953 0 40 640: 100% 25/25 [00:09<00:00, 2.68it/s]\n", 782 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.44it/s]\n", 783 | " all 100 102 0.883 0.853 0.834 0.401\n", 784 | "\n", 785 | " Epoch gpu_mem box obj cls labels img_size\n", 786 | " 101/299 4.9G 0.02297 0.007065 0 30 640: 100% 25/25 [00:09<00:00, 2.60it/s]\n", 787 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.84it/s]\n", 788 | " all 100 102 0.907 0.859 0.887 0.427\n", 789 | "\n", 790 | " Epoch gpu_mem box obj cls labels img_size\n", 791 | " 102/299 4.9G 0.02221 0.006453 0 34 640: 100% 25/25 [00:09<00:00, 2.72it/s]\n", 792 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.41it/s]\n", 793 | " all 100 102 0.912 0.941 0.93 0.437\n", 794 | "\n", 795 | " Epoch gpu_mem box obj cls labels img_size\n", 796 | " 103/299 4.9G 0.02243 0.006589 0 42 640: 100% 25/25 [00:09<00:00, 2.63it/s]\n", 797 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.88it/s]\n", 798 | " all 100 102 0.919 0.884 0.906 0.438\n", 799 | "\n", 800 | " Epoch gpu_mem box obj cls labels img_size\n", 801 | " 104/299 4.9G 0.02364 0.006919 0 39 640: 100% 25/25 [00:09<00:00, 2.62it/s]\n", 802 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.64it/s]\n", 803 | " all 100 102 0.927 0.912 0.926 0.438\n", 804 | "\n", 805 | " Epoch gpu_mem box obj cls labels img_size\n", 806 | " 105/299 4.9G 0.02375 0.006816 0 30 640: 100% 25/25 [00:09<00:00, 2.72it/s]\n", 807 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.59it/s]\n", 808 | " all 100 102 0.908 0.872 0.885 0.421\n", 809 | "\n", 810 | " Epoch gpu_mem box obj cls labels img_size\n", 811 | " 106/299 4.9G 0.02277 0.006672 0 24 640: 100% 25/25 [00:09<00:00, 2.60it/s]\n", 812 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.39it/s]\n", 813 | " all 100 102 0.905 0.873 0.882 0.441\n", 814 | "\n", 815 | " Epoch gpu_mem box obj cls labels img_size\n", 816 | " 107/299 4.9G 0.02218 0.006575 0 31 640: 100% 25/25 [00:09<00:00, 2.68it/s]\n", 817 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.49it/s]\n", 818 | " all 100 102 0.882 0.853 0.846 0.43\n", 819 | "\n", 820 | " Epoch gpu_mem box obj cls labels img_size\n", 821 | " 108/299 4.9G 0.02274 0.006613 0 35 640: 100% 25/25 [00:09<00:00, 2.67it/s]\n", 822 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.42it/s]\n", 823 | " all 100 102 0.93 0.882 0.925 0.461\n", 824 | "\n", 825 | " Epoch gpu_mem box obj cls labels img_size\n", 826 | " 109/299 4.9G 0.0222 0.00651 0 28 640: 100% 25/25 [00:09<00:00, 2.67it/s]\n", 827 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.51it/s]\n", 828 | " all 100 102 0.911 0.908 0.917 0.449\n", 829 | "\n", 830 | " Epoch gpu_mem box obj cls labels img_size\n", 831 | " 110/299 4.9G 0.02298 0.006827 0 28 640: 100% 25/25 [00:09<00:00, 2.55it/s]\n", 832 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.41it/s]\n", 833 | " all 100 102 0.912 0.911 0.913 0.455\n", 834 | "\n", 835 | " Epoch gpu_mem box obj cls labels img_size\n", 836 | " 111/299 4.9G 0.0223 0.006711 0 40 640: 100% 25/25 [00:09<00:00, 2.68it/s]\n", 837 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.50it/s]\n", 838 | " all 100 102 0.925 0.912 0.921 0.449\n", 839 | "\n", 840 | " Epoch gpu_mem box obj cls labels img_size\n", 841 | " 112/299 4.9G 0.02149 0.0061 0 27 640: 100% 25/25 [00:09<00:00, 2.58it/s]\n", 842 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.76it/s]\n", 843 | " all 100 102 0.893 0.912 0.919 0.457\n", 844 | "\n", 845 | " Epoch gpu_mem box obj cls labels img_size\n", 846 | " 113/299 4.9G 0.02194 0.006546 0 41 640: 100% 25/25 [00:09<00:00, 2.66it/s]\n", 847 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.42it/s]\n", 848 | " all 100 102 0.9 0.902 0.913 0.454\n", 849 | "\n", 850 | " Epoch gpu_mem box obj cls labels img_size\n", 851 | " 114/299 4.9G 0.02231 0.006893 0 29 640: 100% 25/25 [00:09<00:00, 2.74it/s]\n", 852 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.69it/s]\n", 853 | " all 100 102 0.932 0.863 0.907 0.456\n", 854 | "\n", 855 | " Epoch gpu_mem box obj cls labels img_size\n", 856 | " 115/299 4.9G 0.02206 0.006391 0 24 640: 100% 25/25 [00:09<00:00, 2.58it/s]\n", 857 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.51it/s]\n", 858 | " all 100 102 0.916 0.851 0.886 0.442\n", 859 | "\n", 860 | " Epoch gpu_mem box obj cls labels img_size\n", 861 | " 116/299 4.9G 0.02306 0.006903 0 34 640: 100% 25/25 [00:09<00:00, 2.71it/s]\n", 862 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.40it/s]\n", 863 | " all 100 102 0.871 0.892 0.899 0.446\n", 864 | "\n", 865 | " Epoch gpu_mem box obj cls labels img_size\n", 866 | " 117/299 4.9G 0.02201 0.006475 0 25 640: 100% 25/25 [00:09<00:00, 2.50it/s]\n", 867 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 3.11it/s]\n", 868 | " all 100 102 0.882 0.882 0.888 0.446\n", 869 | "\n", 870 | " Epoch gpu_mem box obj cls labels img_size\n", 871 | " 118/299 4.9G 0.02123 0.006812 0 39 640: 100% 25/25 [00:09<00:00, 2.71it/s]\n", 872 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.42it/s]\n", 873 | " all 100 102 0.901 0.89 0.902 0.43\n", 874 | "\n", 875 | " Epoch gpu_mem box obj cls labels img_size\n", 876 | " 119/299 4.9G 0.02161 0.006291 0 29 640: 100% 25/25 [00:09<00:00, 2.70it/s]\n", 877 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.38it/s]\n", 878 | " all 100 102 0.875 0.882 0.886 0.472\n", 879 | "\n", 880 | " Epoch gpu_mem box obj cls labels img_size\n", 881 | " 120/299 4.9G 0.02219 0.006422 0 37 640: 100% 25/25 [00:09<00:00, 2.68it/s]\n", 882 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.17it/s]\n", 883 | " all 100 102 0.901 0.892 0.908 0.473\n", 884 | "\n", 885 | " Epoch gpu_mem box obj cls labels img_size\n", 886 | " 121/299 4.9G 0.02103 0.006842 0 28 640: 100% 25/25 [00:09<00:00, 2.66it/s]\n", 887 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.36it/s]\n", 888 | " all 100 102 0.902 0.902 0.899 0.463\n", 889 | "\n", 890 | " Epoch gpu_mem box obj cls labels img_size\n", 891 | " 122/299 4.9G 0.0209 0.006452 0 24 640: 100% 25/25 [00:09<00:00, 2.58it/s]\n", 892 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.69it/s]\n", 893 | " all 100 102 0.928 0.89 0.896 0.461\n", 894 | "\n", 895 | " Epoch gpu_mem box obj cls labels img_size\n", 896 | " 123/299 4.9G 0.02141 0.006209 0 36 640: 100% 25/25 [00:09<00:00, 2.56it/s]\n", 897 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 3.06it/s]\n", 898 | " all 100 102 0.891 0.902 0.874 0.466\n", 899 | "\n", 900 | " Epoch gpu_mem box obj cls labels img_size\n", 901 | " 124/299 4.9G 0.02125 0.006617 0 35 640: 100% 25/25 [00:09<00:00, 2.75it/s]\n", 902 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.43it/s]\n", 903 | " all 100 102 0.906 0.892 0.89 0.444\n", 904 | "\n", 905 | " Epoch gpu_mem box obj cls labels img_size\n", 906 | " 125/299 4.9G 0.021 0.00632 0 35 640: 100% 25/25 [00:09<00:00, 2.65it/s]\n", 907 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.54it/s]\n", 908 | " all 100 102 0.921 0.915 0.907 0.452\n", 909 | "\n", 910 | " Epoch gpu_mem box obj cls labels img_size\n", 911 | " 126/299 4.9G 0.0202 0.006281 0 40 640: 100% 25/25 [00:09<00:00, 2.72it/s]\n", 912 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.35it/s]\n", 913 | " all 100 102 0.9 0.892 0.888 0.445\n", 914 | "\n", 915 | " Epoch gpu_mem box obj cls labels img_size\n", 916 | " 127/299 4.9G 0.02112 0.00657 0 37 640: 100% 25/25 [00:09<00:00, 2.66it/s]\n", 917 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.59it/s]\n", 918 | " all 100 102 0.909 0.88 0.888 0.448\n", 919 | "\n", 920 | " Epoch gpu_mem box obj cls labels img_size\n", 921 | " 128/299 4.9G 0.02059 0.006169 0 33 640: 100% 25/25 [00:09<00:00, 2.65it/s]\n", 922 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.48it/s]\n", 923 | " all 100 102 0.894 0.91 0.902 0.461\n", 924 | "\n", 925 | " Epoch gpu_mem box obj cls labels img_size\n", 926 | " 129/299 4.9G 0.02047 0.006261 0 31 640: 100% 25/25 [00:09<00:00, 2.66it/s]\n", 927 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 3.05it/s]\n", 928 | " all 100 102 0.91 0.902 0.9 0.459\n", 929 | "\n", 930 | " Epoch gpu_mem box obj cls labels img_size\n", 931 | " 130/299 4.9G 0.02053 0.006254 0 28 640: 100% 25/25 [00:09<00:00, 2.67it/s]\n", 932 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.74it/s]\n", 933 | " all 100 102 0.926 0.882 0.918 0.453\n", 934 | "\n", 935 | " Epoch gpu_mem box obj cls labels img_size\n", 936 | " 131/299 4.9G 0.02105 0.006383 0 33 640: 100% 25/25 [00:09<00:00, 2.56it/s]\n", 937 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 3.02it/s]\n", 938 | " all 100 102 0.933 0.873 0.93 0.459\n", 939 | "\n", 940 | " Epoch gpu_mem box obj cls labels img_size\n", 941 | " 132/299 4.9G 0.02026 0.006111 0 43 640: 100% 25/25 [00:09<00:00, 2.67it/s]\n", 942 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.54it/s]\n", 943 | " all 100 102 0.919 0.888 0.933 0.465\n", 944 | "\n", 945 | " Epoch gpu_mem box obj cls labels img_size\n", 946 | " 133/299 4.9G 0.0201 0.005803 0 33 640: 100% 25/25 [00:09<00:00, 2.60it/s]\n", 947 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.61it/s]\n", 948 | " all 100 102 0.928 0.882 0.92 0.464\n", 949 | "\n", 950 | " Epoch gpu_mem box obj cls labels img_size\n", 951 | " 134/299 4.9G 0.0206 0.006889 0 45 640: 100% 25/25 [00:09<00:00, 2.67it/s]\n", 952 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.31it/s]\n", 953 | " all 100 102 0.937 0.892 0.924 0.457\n", 954 | "\n", 955 | " Epoch gpu_mem box obj cls labels img_size\n", 956 | " 135/299 4.9G 0.02016 0.006332 0 37 640: 100% 25/25 [00:09<00:00, 2.68it/s]\n", 957 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.44it/s]\n", 958 | " all 100 102 0.924 0.902 0.905 0.467\n", 959 | "\n", 960 | " Epoch gpu_mem box obj cls labels img_size\n", 961 | " 136/299 4.9G 0.0196 0.006253 0 39 640: 100% 25/25 [00:09<00:00, 2.67it/s]\n", 962 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.45it/s]\n", 963 | " all 100 102 0.902 0.898 0.895 0.458\n", 964 | "\n", 965 | " Epoch gpu_mem box obj cls labels img_size\n", 966 | " 137/299 4.9G 0.02048 0.006384 0 27 640: 100% 25/25 [00:09<00:00, 2.68it/s]\n", 967 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.50it/s]\n", 968 | " all 100 102 0.907 0.902 0.906 0.434\n", 969 | "\n", 970 | " Epoch gpu_mem box obj cls labels img_size\n", 971 | " 138/299 4.9G 0.01987 0.006224 0 33 640: 100% 25/25 [00:09<00:00, 2.73it/s]\n", 972 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.33it/s]\n", 973 | " all 100 102 0.934 0.873 0.92 0.431\n", 974 | "\n", 975 | " Epoch gpu_mem box obj cls labels img_size\n", 976 | " 139/299 4.9G 0.01984 0.006429 0 24 640: 100% 25/25 [00:09<00:00, 2.60it/s]\n", 977 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.60it/s]\n", 978 | " all 100 102 0.916 0.853 0.889 0.449\n", 979 | "\n", 980 | " Epoch gpu_mem box obj cls labels img_size\n", 981 | " 140/299 4.9G 0.01959 0.006233 0 30 640: 100% 25/25 [00:09<00:00, 2.65it/s]\n", 982 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.44it/s]\n", 983 | " all 100 102 0.922 0.873 0.901 0.453\n", 984 | "\n", 985 | " Epoch gpu_mem box obj cls labels img_size\n", 986 | " 141/299 4.9G 0.02015 0.006196 0 28 640: 100% 25/25 [00:09<00:00, 2.59it/s]\n", 987 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.60it/s]\n", 988 | " all 100 101 0.882 0.911 0.904 0.447\n", 989 | "\n", 990 | " Epoch gpu_mem box obj cls labels img_size\n", 991 | " 142/299 4.9G 0.02034 0.006275 0 42 640: 100% 25/25 [00:09<00:00, 2.70it/s]\n", 992 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.49it/s]\n", 993 | " all 100 102 0.927 0.871 0.895 0.443\n", 994 | "\n", 995 | " Epoch gpu_mem box obj cls labels img_size\n", 996 | " 143/299 4.9G 0.02017 0.005961 0 27 640: 100% 25/25 [00:09<00:00, 2.56it/s]\n", 997 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.65it/s]\n", 998 | " all 100 102 0.909 0.88 0.894 0.432\n", 999 | "\n", 1000 | " Epoch gpu_mem box obj cls labels img_size\n", 1001 | " 144/299 4.9G 0.0198 0.006123 0 32 640: 100% 25/25 [00:09<00:00, 2.64it/s]\n", 1002 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.47it/s]\n", 1003 | " all 100 102 0.928 0.879 0.901 0.446\n", 1004 | "\n", 1005 | " Epoch gpu_mem box obj cls labels img_size\n", 1006 | " 145/299 4.9G 0.01928 0.006357 0 41 640: 100% 25/25 [00:09<00:00, 2.70it/s]\n", 1007 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.43it/s]\n", 1008 | " all 100 102 0.912 0.873 0.901 0.448\n", 1009 | "\n", 1010 | " Epoch gpu_mem box obj cls labels img_size\n", 1011 | " 146/299 4.9G 0.0199 0.005825 0 23 640: 100% 25/25 [00:09<00:00, 2.67it/s]\n", 1012 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.43it/s]\n", 1013 | " all 100 102 0.903 0.908 0.916 0.451\n", 1014 | "\n", 1015 | " Epoch gpu_mem box obj cls labels img_size\n", 1016 | " 147/299 4.9G 0.01936 0.006086 0 28 640: 100% 25/25 [00:10<00:00, 2.41it/s]\n", 1017 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.31it/s]\n", 1018 | " all 100 102 0.899 0.873 0.905 0.459\n", 1019 | "\n", 1020 | " Epoch gpu_mem box obj cls labels img_size\n", 1021 | " 148/299 4.9G 0.01976 0.005681 0 29 640: 100% 25/25 [00:09<00:00, 2.70it/s]\n", 1022 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.43it/s]\n", 1023 | " all 100 102 0.916 0.873 0.909 0.444\n", 1024 | "\n", 1025 | " Epoch gpu_mem box obj cls labels img_size\n", 1026 | " 149/299 4.9G 0.01957 0.006468 0 41 640: 100% 25/25 [00:09<00:00, 2.71it/s]\n", 1027 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.37it/s]\n", 1028 | " all 100 102 0.926 0.882 0.915 0.457\n", 1029 | "\n", 1030 | " Epoch gpu_mem box obj cls labels img_size\n", 1031 | " 150/299 4.9G 0.01926 0.005861 0 40 640: 100% 25/25 [00:09<00:00, 2.72it/s]\n", 1032 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.54it/s]\n", 1033 | " all 100 102 0.939 0.909 0.91 0.461\n", 1034 | "\n", 1035 | " Epoch gpu_mem box obj cls labels img_size\n", 1036 | " 151/299 4.9G 0.02009 0.006323 0 37 640: 100% 25/25 [00:09<00:00, 2.73it/s]\n", 1037 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.72it/s]\n", 1038 | " all 100 102 0.909 0.879 0.893 0.451\n", 1039 | "\n", 1040 | " Epoch gpu_mem box obj cls labels img_size\n", 1041 | " 152/299 4.9G 0.02021 0.00597 0 36 640: 100% 25/25 [00:09<00:00, 2.69it/s]\n", 1042 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.42it/s]\n", 1043 | " all 100 102 0.911 0.904 0.896 0.448\n", 1044 | "\n", 1045 | " Epoch gpu_mem box obj cls labels img_size\n", 1046 | " 153/299 4.9G 0.01843 0.005845 0 37 640: 100% 25/25 [00:09<00:00, 2.73it/s]\n", 1047 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.49it/s]\n", 1048 | " all 100 102 0.883 0.873 0.865 0.429\n", 1049 | "\n", 1050 | " Epoch gpu_mem box obj cls labels img_size\n", 1051 | " 154/299 4.9G 0.01975 0.006055 0 25 640: 100% 25/25 [00:09<00:00, 2.61it/s]\n", 1052 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.88it/s]\n", 1053 | " all 100 102 0.92 0.901 0.898 0.446\n", 1054 | "\n", 1055 | " Epoch gpu_mem box obj cls labels img_size\n", 1056 | " 155/299 4.9G 0.01905 0.005948 0 31 640: 100% 25/25 [00:09<00:00, 2.69it/s]\n", 1057 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.51it/s]\n", 1058 | " all 100 102 0.911 0.899 0.896 0.454\n", 1059 | "\n", 1060 | " Epoch gpu_mem box obj cls labels img_size\n", 1061 | " 156/299 4.9G 0.0186 0.005599 0 30 640: 100% 25/25 [00:09<00:00, 2.72it/s]\n", 1062 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.61it/s]\n", 1063 | " all 100 102 0.928 0.889 0.915 0.446\n", 1064 | "\n", 1065 | " Epoch gpu_mem box obj cls labels img_size\n", 1066 | " 157/299 4.9G 0.0193 0.006253 0 38 640: 100% 25/25 [00:09<00:00, 2.73it/s]\n", 1067 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.41it/s]\n", 1068 | " all 100 102 0.918 0.902 0.914 0.441\n", 1069 | "\n", 1070 | " Epoch gpu_mem box obj cls labels img_size\n", 1071 | " 158/299 4.9G 0.01932 0.006133 0 37 640: 100% 25/25 [00:09<00:00, 2.71it/s]\n", 1072 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.63it/s]\n", 1073 | " all 100 101 0.909 0.891 0.918 0.466\n", 1074 | "\n", 1075 | " Epoch gpu_mem box obj cls labels img_size\n", 1076 | " 159/299 4.9G 0.01895 0.006031 0 26 640: 100% 25/25 [00:09<00:00, 2.64it/s]\n", 1077 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.41it/s]\n", 1078 | " all 100 101 0.911 0.907 0.917 0.459\n", 1079 | "\n", 1080 | " Epoch gpu_mem box obj cls labels img_size\n", 1081 | " 160/299 4.9G 0.01934 0.005756 0 25 640: 100% 25/25 [00:09<00:00, 2.69it/s]\n", 1082 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.50it/s]\n", 1083 | " all 100 102 0.926 0.912 0.921 0.437\n", 1084 | "\n", 1085 | " Epoch gpu_mem box obj cls labels img_size\n", 1086 | " 161/299 4.9G 0.01856 0.005681 0 30 640: 100% 25/25 [00:09<00:00, 2.70it/s]\n", 1087 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.47it/s]\n", 1088 | " all 100 102 0.919 0.889 0.905 0.455\n", 1089 | "\n", 1090 | " Epoch gpu_mem box obj cls labels img_size\n", 1091 | " 162/299 4.9G 0.01923 0.005904 0 32 640: 100% 25/25 [00:09<00:00, 2.63it/s]\n", 1092 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.76it/s]\n", 1093 | " all 100 102 0.893 0.899 0.89 0.446\n", 1094 | "\n", 1095 | " Epoch gpu_mem box obj cls labels img_size\n", 1096 | " 163/299 4.9G 0.01812 0.005715 0 32 640: 100% 25/25 [00:09<00:00, 2.72it/s]\n", 1097 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.46it/s]\n", 1098 | " all 100 102 0.905 0.863 0.88 0.452\n", 1099 | "\n", 1100 | " Epoch gpu_mem box obj cls labels img_size\n", 1101 | " 164/299 4.9G 0.01864 0.006123 0 30 640: 100% 25/25 [00:09<00:00, 2.72it/s]\n", 1102 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.74it/s]\n", 1103 | " all 100 102 0.883 0.912 0.9 0.448\n", 1104 | "\n", 1105 | " Epoch gpu_mem box obj cls labels img_size\n", 1106 | " 165/299 4.9G 0.01851 0.005775 0 26 640: 100% 25/25 [00:09<00:00, 2.66it/s]\n", 1107 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.97it/s]\n", 1108 | " all 100 102 0.911 0.922 0.916 0.44\n", 1109 | "\n", 1110 | " Epoch gpu_mem box obj cls labels img_size\n", 1111 | " 166/299 4.9G 0.01799 0.005814 0 41 640: 100% 25/25 [00:09<00:00, 2.64it/s]\n", 1112 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.50it/s]\n", 1113 | " all 100 102 0.908 0.902 0.92 0.443\n", 1114 | "\n", 1115 | " Epoch gpu_mem box obj cls labels img_size\n", 1116 | " 167/299 4.9G 0.01823 0.005637 0 33 640: 100% 25/25 [00:09<00:00, 2.68it/s]\n", 1117 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.38it/s]\n", 1118 | " all 100 102 0.943 0.882 0.917 0.453\n", 1119 | "\n", 1120 | " Epoch gpu_mem box obj cls labels img_size\n", 1121 | " 168/299 4.9G 0.02008 0.006145 0 45 640: 100% 25/25 [00:09<00:00, 2.66it/s]\n", 1122 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.45it/s]\n", 1123 | " all 100 102 0.924 0.922 0.926 0.453\n", 1124 | "\n", 1125 | " Epoch gpu_mem box obj cls labels img_size\n", 1126 | " 169/299 4.9G 0.01801 0.00584 0 31 640: 100% 25/25 [00:09<00:00, 2.74it/s]\n", 1127 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.55it/s]\n", 1128 | " all 100 102 0.949 0.921 0.936 0.463\n", 1129 | "\n", 1130 | " Epoch gpu_mem box obj cls labels img_size\n", 1131 | " 170/299 4.9G 0.01823 0.005512 0 36 640: 100% 25/25 [00:09<00:00, 2.75it/s]\n", 1132 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.49it/s]\n", 1133 | " all 100 102 0.921 0.918 0.916 0.459\n", 1134 | "\n", 1135 | " Epoch gpu_mem box obj cls labels img_size\n", 1136 | " 171/299 4.9G 0.01818 0.005995 0 36 640: 100% 25/25 [00:09<00:00, 2.60it/s]\n", 1137 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.38it/s]\n", 1138 | " all 100 101 0.927 0.931 0.924 0.455\n", 1139 | "\n", 1140 | " Epoch gpu_mem box obj cls labels img_size\n", 1141 | " 172/299 4.9G 0.01819 0.005752 0 46 640: 100% 25/25 [00:09<00:00, 2.65it/s]\n", 1142 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.48it/s]\n", 1143 | " all 100 102 0.925 0.922 0.92 0.45\n", 1144 | "\n", 1145 | " Epoch gpu_mem box obj cls labels img_size\n", 1146 | " 173/299 4.9G 0.01842 0.005564 0 31 640: 100% 25/25 [00:09<00:00, 2.63it/s]\n", 1147 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.48it/s]\n", 1148 | " all 100 102 0.911 0.898 0.893 0.449\n", 1149 | "\n", 1150 | " Epoch gpu_mem box obj cls labels img_size\n", 1151 | " 174/299 4.9G 0.01779 0.005556 0 28 640: 100% 25/25 [00:10<00:00, 2.47it/s]\n", 1152 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.34it/s]\n", 1153 | " all 100 102 0.903 0.912 0.901 0.461\n", 1154 | "\n", 1155 | " Epoch gpu_mem box obj cls labels img_size\n", 1156 | " 175/299 4.9G 0.01766 0.006082 0 34 640: 100% 25/25 [00:09<00:00, 2.63it/s]\n", 1157 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.42it/s]\n", 1158 | " all 100 101 0.926 0.891 0.896 0.463\n", 1159 | "\n", 1160 | " Epoch gpu_mem box obj cls labels img_size\n", 1161 | " 176/299 4.9G 0.01765 0.005875 0 25 640: 100% 25/25 [00:09<00:00, 2.62it/s]\n", 1162 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.52it/s]\n", 1163 | " all 100 101 0.934 0.871 0.891 0.458\n", 1164 | "\n", 1165 | " Epoch gpu_mem box obj cls labels img_size\n", 1166 | " 177/299 4.9G 0.01822 0.005749 0 35 640: 100% 25/25 [00:09<00:00, 2.78it/s]\n", 1167 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.58it/s]\n", 1168 | " all 100 102 0.913 0.863 0.892 0.436\n", 1169 | "\n", 1170 | " Epoch gpu_mem box obj cls labels img_size\n", 1171 | " 178/299 4.9G 0.01783 0.005565 0 33 640: 100% 25/25 [00:09<00:00, 2.66it/s]\n", 1172 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.41it/s]\n", 1173 | " all 100 102 0.904 0.927 0.926 0.445\n", 1174 | "\n", 1175 | " Epoch gpu_mem box obj cls labels img_size\n", 1176 | " 179/299 4.9G 0.0174 0.005862 0 31 640: 100% 25/25 [00:09<00:00, 2.74it/s]\n", 1177 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.45it/s]\n", 1178 | " all 100 102 0.9 0.912 0.911 0.446\n", 1179 | "\n", 1180 | " Epoch gpu_mem box obj cls labels img_size\n", 1181 | " 180/299 4.9G 0.01748 0.005818 0 39 640: 100% 25/25 [00:09<00:00, 2.73it/s]\n", 1182 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.42it/s]\n", 1183 | " all 100 102 0.924 0.873 0.91 0.44\n", 1184 | "\n", 1185 | " Epoch gpu_mem box obj cls labels img_size\n", 1186 | " 181/299 4.9G 0.01657 0.005643 0 33 640: 100% 25/25 [00:09<00:00, 2.70it/s]\n", 1187 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.67it/s]\n", 1188 | " all 100 101 0.928 0.871 0.918 0.44\n", 1189 | "\n", 1190 | " Epoch gpu_mem box obj cls labels img_size\n", 1191 | " 182/299 4.9G 0.01746 0.005693 0 41 640: 100% 25/25 [00:08<00:00, 2.81it/s]\n", 1192 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.48it/s]\n", 1193 | " all 100 102 0.919 0.882 0.903 0.443\n", 1194 | "\n", 1195 | " Epoch gpu_mem box obj cls labels img_size\n", 1196 | " 183/299 4.9G 0.01722 0.005634 0 37 640: 100% 25/25 [00:09<00:00, 2.69it/s]\n", 1197 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.58it/s]\n", 1198 | " all 100 101 0.919 0.899 0.912 0.445\n", 1199 | "\n", 1200 | " Epoch gpu_mem box obj cls labels img_size\n", 1201 | " 184/299 4.9G 0.01777 0.005627 0 39 640: 100% 25/25 [00:08<00:00, 2.80it/s]\n", 1202 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.41it/s]\n", 1203 | " all 100 101 0.937 0.911 0.935 0.456\n", 1204 | "\n", 1205 | " Epoch gpu_mem box obj cls labels img_size\n", 1206 | " 185/299 4.9G 0.01784 0.005719 0 33 640: 100% 25/25 [00:09<00:00, 2.76it/s]\n", 1207 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.43it/s]\n", 1208 | " all 100 101 0.929 0.914 0.929 0.468\n", 1209 | "\n", 1210 | " Epoch gpu_mem box obj cls labels img_size\n", 1211 | " 186/299 4.9G 0.01649 0.005517 0 33 640: 100% 25/25 [00:09<00:00, 2.65it/s]\n", 1212 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.44it/s]\n", 1213 | " all 100 100 0.919 0.91 0.927 0.455\n", 1214 | "\n", 1215 | " Epoch gpu_mem box obj cls labels img_size\n", 1216 | " 187/299 4.9G 0.01719 0.005637 0 29 640: 100% 25/25 [00:09<00:00, 2.66it/s]\n", 1217 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.45it/s]\n", 1218 | " all 100 101 0.927 0.891 0.924 0.463\n", 1219 | "\n", 1220 | " Epoch gpu_mem box obj cls labels img_size\n", 1221 | " 188/299 4.9G 0.01728 0.005764 0 32 640: 100% 25/25 [00:09<00:00, 2.72it/s]\n", 1222 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.42it/s]\n", 1223 | " all 100 101 0.936 0.901 0.932 0.461\n", 1224 | "\n", 1225 | " Epoch gpu_mem box obj cls labels img_size\n", 1226 | " 189/299 4.9G 0.01703 0.005459 0 29 640: 100% 25/25 [00:09<00:00, 2.67it/s]\n", 1227 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.41it/s]\n", 1228 | " all 100 101 0.918 0.889 0.915 0.455\n", 1229 | "\n", 1230 | " Epoch gpu_mem box obj cls labels img_size\n", 1231 | " 190/299 4.9G 0.01674 0.005429 0 28 640: 100% 25/25 [00:09<00:00, 2.65it/s]\n", 1232 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.44it/s]\n", 1233 | " all 100 101 0.934 0.841 0.909 0.452\n", 1234 | "\n", 1235 | " Epoch gpu_mem box obj cls labels img_size\n", 1236 | " 191/299 4.9G 0.01787 0.00541 0 29 640: 100% 25/25 [00:09<00:00, 2.69it/s]\n", 1237 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.43it/s]\n", 1238 | " all 100 101 0.922 0.861 0.908 0.452\n", 1239 | "\n", 1240 | " Epoch gpu_mem box obj cls labels img_size\n", 1241 | " 192/299 4.9G 0.01658 0.005504 0 31 640: 100% 25/25 [00:09<00:00, 2.66it/s]\n", 1242 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.34it/s]\n", 1243 | " all 100 101 0.895 0.931 0.932 0.441\n", 1244 | "\n", 1245 | " Epoch gpu_mem box obj cls labels img_size\n", 1246 | " 193/299 4.9G 0.01622 0.005654 0 30 640: 100% 25/25 [00:09<00:00, 2.63it/s]\n", 1247 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.74it/s]\n", 1248 | " all 100 101 0.904 0.928 0.931 0.441\n", 1249 | "\n", 1250 | " Epoch gpu_mem box obj cls labels img_size\n", 1251 | " 194/299 4.9G 0.01572 0.005363 0 50 640: 100% 25/25 [00:09<00:00, 2.73it/s]\n", 1252 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.29it/s]\n", 1253 | " all 100 101 0.902 0.91 0.906 0.455\n", 1254 | "\n", 1255 | " Epoch gpu_mem box obj cls labels img_size\n", 1256 | " 195/299 4.9G 0.01686 0.005226 0 38 640: 100% 25/25 [00:09<00:00, 2.78it/s]\n", 1257 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.45it/s]\n", 1258 | " all 100 101 0.898 0.873 0.887 0.442\n", 1259 | "\n", 1260 | " Epoch gpu_mem box obj cls labels img_size\n", 1261 | " 196/299 4.9G 0.01662 0.00548 0 37 640: 100% 25/25 [00:09<00:00, 2.55it/s]\n", 1262 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 3.25it/s]\n", 1263 | " all 100 101 0.902 0.891 0.894 0.458\n", 1264 | "\n", 1265 | " Epoch gpu_mem box obj cls labels img_size\n", 1266 | " 197/299 4.9G 0.01628 0.005684 0 31 640: 100% 25/25 [00:09<00:00, 2.63it/s]\n", 1267 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:01<00:00, 2.47it/s]\n", 1268 | " all 100 101 0.92 0.907 0.915 0.464\n", 1269 | "Stopping training early as no improvement observed in last 100 epochs. Best results observed at epoch 97, best model saved as best.pt.\n", 1270 | "To update EarlyStopping(patience=100) pass a new patience value, i.e. `python train.py --patience 300` or use `--patience 0` to disable EarlyStopping.\n", 1271 | "\n", 1272 | "198 epochs completed in 0.637 hours.\n", 1273 | "Optimizer stripped from runs/train/exp/weights/last.pt, 14.4MB\n", 1274 | "Optimizer stripped from runs/train/exp/weights/best.pt, 14.4MB\n", 1275 | "\n", 1276 | "Validating runs/train/exp/weights/best.pt...\n", 1277 | "Fusing layers... \n", 1278 | "Model summary: 213 layers, 7012822 parameters, 0 gradients\n", 1279 | " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 4/4 [00:02<00:00, 1.93it/s]\n", 1280 | " all 100 102 0.915 0.902 0.92 0.482\n", 1281 | "Results saved to \u001b[1mruns/train/exp\u001b[0m\n" 1282 | ] 1283 | } 1284 | ] 1285 | }, 1286 | { 1287 | "cell_type": "code", 1288 | "source": [ 1289 | "from google.colab import files\n", 1290 | "files.download('/content/yolov5/runs/train/exp/val_batch1_labels.jpg')" 1291 | ], 1292 | "metadata": { 1293 | "colab": { 1294 | "base_uri": "https://localhost:8080/", 1295 | "height": 17 1296 | }, 1297 | "id": "tMwYAUkeSxVJ", 1298 | "outputId": "da5d0037-5124-46de-aadf-5d3e41ae339b" 1299 | }, 1300 | "execution_count": null, 1301 | "outputs": [ 1302 | { 1303 | "output_type": "display_data", 1304 | "data": { 1305 | "text/plain": [ 1306 | "" 1307 | ], 1308 | "application/javascript": [ 1309 | "\n", 1310 | " async function download(id, filename, size) {\n", 1311 | " if (!google.colab.kernel.accessAllowed) {\n", 1312 | " return;\n", 1313 | " }\n", 1314 | " const div = document.createElement('div');\n", 1315 | " const label = document.createElement('label');\n", 1316 | " label.textContent = `Downloading \"${filename}\": `;\n", 1317 | " div.appendChild(label);\n", 1318 | " const progress = document.createElement('progress');\n", 1319 | " progress.max = size;\n", 1320 | " div.appendChild(progress);\n", 1321 | " document.body.appendChild(div);\n", 1322 | "\n", 1323 | " const buffers = [];\n", 1324 | " let downloaded = 0;\n", 1325 | "\n", 1326 | " const channel = await google.colab.kernel.comms.open(id);\n", 1327 | " // Send a message to notify the kernel that we're ready.\n", 1328 | " channel.send({})\n", 1329 | "\n", 1330 | " for await (const message of channel.messages) {\n", 1331 | " // Send a message to notify the kernel that we're ready.\n", 1332 | " channel.send({})\n", 1333 | " if (message.buffers) {\n", 1334 | " for (const buffer of message.buffers) {\n", 1335 | " buffers.push(buffer);\n", 1336 | " downloaded += buffer.byteLength;\n", 1337 | " progress.value = downloaded;\n", 1338 | " }\n", 1339 | " }\n", 1340 | " }\n", 1341 | " const blob = new Blob(buffers, {type: 'application/binary'});\n", 1342 | " const a = document.createElement('a');\n", 1343 | " a.href = window.URL.createObjectURL(blob);\n", 1344 | " a.download = filename;\n", 1345 | " div.appendChild(a);\n", 1346 | " a.click();\n", 1347 | " div.remove();\n", 1348 | " }\n", 1349 | " " 1350 | ] 1351 | }, 1352 | "metadata": {} 1353 | }, 1354 | { 1355 | "output_type": "display_data", 1356 | "data": { 1357 | "text/plain": [ 1358 | "" 1359 | ], 1360 | "application/javascript": [ 1361 | "download(\"download_e6685a77-f16e-4556-b5a1-4dd485a1cea1\", \"val_batch1_labels.jpg\", 468830)" 1362 | ] 1363 | }, 1364 | "metadata": {} 1365 | } 1366 | ] 1367 | }, 1368 | { 1369 | "cell_type": "code", 1370 | "source": [ 1371 | "dl_files = os.listdir(\"/content/yolov5/runs/train/exp\")\n", 1372 | "dl_files" 1373 | ], 1374 | "metadata": { 1375 | "colab": { 1376 | "base_uri": "https://localhost:8080/" 1377 | }, 1378 | "id": "OJJYMwniS0Ga", 1379 | "outputId": "28aa0217-8ea6-4adc-9244-16fafb7e3119" 1380 | }, 1381 | "execution_count": null, 1382 | "outputs": [ 1383 | { 1384 | "output_type": "execute_result", 1385 | "data": { 1386 | "text/plain": [ 1387 | "['hyp.yaml',\n", 1388 | " 'results.png',\n", 1389 | " 'P_curve.png',\n", 1390 | " 'weights',\n", 1391 | " 'results.csv',\n", 1392 | " 'PR_curve.png',\n", 1393 | " 'labels_correlogram.jpg',\n", 1394 | " 'labels.jpg',\n", 1395 | " 'val_batch2_labels.jpg',\n", 1396 | " 'opt.yaml',\n", 1397 | " 'val_batch1_pred.jpg',\n", 1398 | " 'train_batch1.jpg',\n", 1399 | " 'confusion_matrix.png',\n", 1400 | " 'val_batch0_pred.jpg',\n", 1401 | " 'F1_curve.png',\n", 1402 | " 'R_curve.png',\n", 1403 | " 'train_batch0.jpg',\n", 1404 | " 'val_batch1_labels.jpg',\n", 1405 | " 'val_batch0_labels.jpg',\n", 1406 | " 'val_batch2_pred.jpg',\n", 1407 | " 'events.out.tfevents.1655275250.201b44b3dd27.368.0',\n", 1408 | " 'train_batch2.jpg']" 1409 | ] 1410 | }, 1411 | "metadata": {}, 1412 | "execution_count": 40 1413 | } 1414 | ] 1415 | }, 1416 | { 1417 | "cell_type": "code", 1418 | "source": [ 1419 | "for i in dl_files:\n", 1420 | " path = os.path.join(\"/content/yolov5/runs/train/exp\",i)\n", 1421 | " files.download(path)" 1422 | ], 1423 | "metadata": { 1424 | "id": "a2G_sJdpTAwa" 1425 | }, 1426 | "execution_count": null, 1427 | "outputs": [] 1428 | }, 1429 | { 1430 | "cell_type": "code", 1431 | "source": [ 1432 | "" 1433 | ], 1434 | "metadata": { 1435 | "id": "dqJSvxxHTTH6" 1436 | }, 1437 | "execution_count": null, 1438 | "outputs": [] 1439 | } 1440 | ] 1441 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Tejas R 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Automatic Number Plate Recognition 2 | 3 | ## Software Requirements 4 | 1) opencv-python 4.5.3.56 or above 5 | 2) numpy 1.20.0 or above 6 | 3) python 3.9 or above 7 | 4) numpy 1.20.0 or above 8 | 5) pytorch 1.10.0 or above 9 | 10 | ## **Goal of Project** 11 | The goal of this project was to create a model that can accurately detect number plates on cars and bikes. This model can be used along with the video data generated from CCTV cameras that are installed on highways and roadways to detect number plate of vechicles that commit traffic violations. 12 | 13 | ## **Project Information** 14 | Object Detection is carried out in this project to detect Number Plates on vehicles. YOLOv5s model was used along with transfer learning for training and testing. Model accurately generates bounding boxes around Number Plates 15 | 16 | More Info on YOLOv5: https://github.com/ultralytics/yolov5 17 | 18 | ## **Implementation** 19 | 20 | Object Detection pipeline cinsists of 3 parts: 21 | **Training, Validation and Testing** 22 | 23 | ### Training: 24 | 25 | YOLOv5s was trained on Google Colab with following hyperparameters: 26 | 27 | 1) Input Image Size: 640 28 | 2) Batch Size: 16 29 | 3) Epochs: 300 (converged in 198 epochs) 30 | 4) Pretrained Weights: yolov5s.pt 31 | 32 | The training dataset consisted of 400 images along with their class and bounding box details mentioned in a txt file in yolo format. The training was set to run for 300 epochs but the model converged in 198 epochs and the training was stopped. 33 | 34 | ### Validation: 35 | 36 | The validation dataset consisted of 100 images along with their class and bounding box details in a txt file in yolo format for validation purpose. In validation phase the model reached Mean Average Precision (mAP) of 0.91 37 | 38 | Following are some of the image results generated in validation phase: 39 | 40 | ![alt text](https://github.com/wasdac9/automatic-number-plate-recognition/blob/main/val_pred.jpg?raw=true) 41 | 42 | At the end of training and validation epochs, a weights file ("best.pt") is generated which consists of all the learned parameters of the model. 43 | 44 | Refer to "ANPR_object_detection.ipynb" for more info about the training and validation process. 45 | 46 | ### Testing Phase 47 | The model was tested on various images and videos and the model generated accurate class and bounding box predictions. The weights file called "best.pt" that was generate in the training phase was used for inference in testing phase. Testing was carried out in PyTorch, and OpenCV was used when working with images and videos. OpenCV helped in loading, saving, drawing bounding boxes, and displaying text regarding class name and class confidence values. 48 | 49 | #### **Image Inference** 50 | Few of the images used for testing are included in the "test_images" folder. At test time the model generated 6-7 FPS on a batch of 30 images with a Mean Time of 0.15ms. Python file named "image_anpr.py" is used to generate image inferences. 51 | 52 | #### **Video Inference** 53 | A video that was used for testing is also included in the name "anpr_video.mp4". At inference this video was passed through the trained model and the output generated is saved as "output.mp4". At test time the model generated 8-9 FPS on i5 CPU and around 32 FPS on CUDA device. Python file named "video_anpr.py" is used to generate video inferences. 54 | 55 | ## **Code** 56 | 57 | Set the following paths and variables before running both the python files for image and video inference. 58 | 59 | Changes to be made in "image_anpr.py" for image inference 60 | ``` 61 | model_path = Path("best.pt") #custom model path 62 | img_path = Path("test_images/car_384.jpg") #input image path 63 | cpu_or_cuda = "cpu" #choose device; "cpu" or "cuda"(if cuda is available) 64 | device = torch.device(cpu_or_cuda) 65 | model = torch.hub.load('ultralytics/yolov5', 'custom', path= model_path, force_reload=True) 66 | model = model.to(device) #loading model to cpu or cuda 67 | ``` 68 | 69 | Changes to be made in "video_anpr.py" for video inference 70 | ``` 71 | model_path = r"best.pt" #custom model path 72 | video_path = r"anpr_video.mp4" #input video path 73 | cpu_or_cuda = "cpu" #choose device; "cpu" or "cuda"(if cuda is available) 74 | device = torch.device(cpu_or_cuda) 75 | model = torch.hub.load('ultralytics/yolov5', 'custom', path= model_path, force_reload=True) 76 | model = model.to(device) #loading model to cpu or cuda 77 | ``` 78 | 79 | ## **Summary** 80 | An accurate object detection model was created to carry out Automatic Number Plate Recognition using YOLOv5 and transfer learning along with Pytorch. The accuracy of bounding boxes and the frame rate was found to be good. 81 | 82 | ## **Limitations** 83 | 1) Even though the accuracy and frame rate was good, the model sometimes wrongly detected various signs on road as number plate. A bigger dataset is required to improve upon the current model accuracy. 84 | 2) The model in its current state works very well on CUDA devices getting around 32 FPS but does perform well on CPU devices. Hence GPU hardware is required for smooth frame rate outputs. 85 | 86 | ## **Future Work** 87 | 1) A bigger dataset can be used to train the model for more number of epochs to reduce the false positive predictions. 88 | 2) This detection model can be uploaded on edge devices connected to CCTV cameras to carry out Number Plate Recognition live on the road. 89 | 3) CCTV video footage can be used to read number plate of vehicles that commit traffic violations. 90 | 4) The bounding box around the license plate can be cropped and Optical Character Recognition can be used to actually read the number plate. 91 | -------------------------------------------------------------------------------- /anpr_video.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/anpr_video.mp4 -------------------------------------------------------------------------------- /best.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/best.pt -------------------------------------------------------------------------------- /car_139.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/car_139.jpg -------------------------------------------------------------------------------- /image_anpr.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import cv2 3 | import numpy as np 4 | from pathlib import Path 5 | # Model 6 | model_path = Path("best.pt") #custom model path 7 | img_path = Path("test_images/car_384.jpg") #input video path 8 | cpu_or_cuda = "cpu" #choose device; "cpu" or "cuda"(if cuda is available) 9 | device = torch.device(cpu_or_cuda) 10 | 11 | model = torch.hub.load('ultralytics/yolov5', 'custom', path= model_path, force_reload=True) 12 | model = model.to(device) 13 | image = cv2.imread(img_path) 14 | 15 | # Inference 16 | output = model(image) 17 | 18 | # Results 19 | result = np.array(output.pandas().xyxy[0]) 20 | for i in result: 21 | p1 = (int(i[0]),int(i[1])) 22 | p2 = (int(i[2]),int(i[3])) 23 | text_origin = (int(i[0]),int(i[1])-5) 24 | text_font = cv2.FONT_HERSHEY_PLAIN 25 | color= (0,0,255) 26 | text_font_scale = 1.25 27 | #print(p1,p2) 28 | image = cv2.rectangle(image,p1,p2,color=color,thickness=2) #drawing bounding boxes 29 | image = cv2.putText(image,text=f"{i[-1]}",org=text_origin, 30 | fontFace=text_font,fontScale=text_font_scale, 31 | color=color,thickness=2) #class and confidence text 32 | 33 | cv2.imshow("image",image) 34 | cv2.waitKey(0) 35 | cv2.destroyAllWindows() -------------------------------------------------------------------------------- /test_images/car_215.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_215.jpg -------------------------------------------------------------------------------- /test_images/car_216.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_216.jpg -------------------------------------------------------------------------------- /test_images/car_217.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_217.jpg -------------------------------------------------------------------------------- /test_images/car_220.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_220.jpg -------------------------------------------------------------------------------- /test_images/car_222.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_222.jpg -------------------------------------------------------------------------------- /test_images/car_223.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_223.jpg -------------------------------------------------------------------------------- /test_images/car_238.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_238.jpg -------------------------------------------------------------------------------- /test_images/car_240.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_240.jpg -------------------------------------------------------------------------------- /test_images/car_261.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_261.jpg -------------------------------------------------------------------------------- /test_images/car_267.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_267.jpg -------------------------------------------------------------------------------- /test_images/car_273.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_273.jpg -------------------------------------------------------------------------------- /test_images/car_302.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_302.jpg -------------------------------------------------------------------------------- /test_images/car_318.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_318.jpg -------------------------------------------------------------------------------- /test_images/car_322.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_322.jpg -------------------------------------------------------------------------------- /test_images/car_329.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_329.jpg -------------------------------------------------------------------------------- /test_images/car_335.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_335.jpg -------------------------------------------------------------------------------- /test_images/car_378.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_378.jpg -------------------------------------------------------------------------------- /test_images/car_379.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_379.jpg -------------------------------------------------------------------------------- /test_images/car_382.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_382.jpg -------------------------------------------------------------------------------- /test_images/car_384.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_384.jpg -------------------------------------------------------------------------------- /test_images/car_391.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_391.jpg -------------------------------------------------------------------------------- /test_images/car_397.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_397.jpg -------------------------------------------------------------------------------- /test_images/car_398.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_398.jpg -------------------------------------------------------------------------------- /test_images/car_434.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_434.jpg -------------------------------------------------------------------------------- /test_images/car_435.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_435.jpg -------------------------------------------------------------------------------- /test_images/car_437.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_437.jpg -------------------------------------------------------------------------------- /test_images/car_443.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_443.jpg -------------------------------------------------------------------------------- /test_images/car_447.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_447.jpg -------------------------------------------------------------------------------- /test_images/car_450.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_450.jpg -------------------------------------------------------------------------------- /test_images/car_451.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_451.jpg -------------------------------------------------------------------------------- /test_images/car_452.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/test_images/car_452.jpg -------------------------------------------------------------------------------- /val_pred.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wasdac9/automatic-number-plate-recognition/cf7bd01e4e8c42ed70d9b64f426ef7ebd7022489/val_pred.jpg -------------------------------------------------------------------------------- /video_anpr.py: -------------------------------------------------------------------------------- 1 | from cv2 import waitKey 2 | import torch 3 | import cv2 4 | import numpy as np 5 | import time 6 | 7 | 8 | # Model 9 | model_path = r"best.pt" #custom model path 10 | video_path = r"anpr_video.mp4" #input video path 11 | cpu_or_cuda = "cpu" #choose device; "cpu" or "cuda"(if cuda is available) 12 | device = torch.device(cpu_or_cuda) 13 | model = torch.hub.load('ultralytics/yolov5', 'custom', path= model_path, force_reload=True) 14 | model = model.to(device) 15 | frame = cv2.VideoCapture(video_path) 16 | 17 | frame_width = int(frame.get(3)) 18 | frame_height = int(frame.get(4)) 19 | size = (frame_width, frame_height) 20 | writer = cv2.VideoWriter('output.mp4',-1,8,size) 21 | 22 | text_font = cv2.FONT_HERSHEY_PLAIN 23 | color= (0,0,255) 24 | text_font_scale = 1.25 25 | prev_frame_time = 0 26 | new_frame_time = 0 27 | 28 | # Inference Loop 29 | while True: 30 | ret, image = frame.read() 31 | if ret: 32 | output = model(image) 33 | result = np.array(output.pandas().xyxy[0]) 34 | for i in result: 35 | p1 = (int(i[0]),int(i[1])) 36 | p2 = (int(i[2]),int(i[3])) 37 | text_origin = (int(i[0]),int(i[1])-5) 38 | #print(p1,p2) 39 | cv2.rectangle(image,p1,p2,color=color,thickness=2) #drawing bounding boxes 40 | cv2.putText(image,text=f"{i[-1]} {i[-3]:.2f}",org=text_origin, 41 | fontFace=text_font,fontScale=text_font_scale, 42 | color=color,thickness=2) #class and confidence text 43 | 44 | new_frame_time = time.time() 45 | 46 | fps = 1/(new_frame_time-prev_frame_time) 47 | prev_frame_time = new_frame_time 48 | fps = int(fps) 49 | fps = str(fps) 50 | cv2.putText(image, fps, (7, 70), text_font, 3, (100, 255, 0), 3, cv2.LINE_AA) 51 | writer.write(image) 52 | cv2.imshow("image",image) 53 | 54 | else: 55 | break 56 | 57 | if waitKey(1) & 0xFF == ord('q'): 58 | break 59 | 60 | frame.release() 61 | cv2.destroyAllWindows() --------------------------------------------------------------------------------