From 0e165c50f79a8ac4286d1920ca7a48220dc5a9db Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Sun, 31 Jul 2022 20:34:03 +0200 Subject: [PATCH] Created using Colaboratory --- tutorial.ipynb | 314 +++++++++++++++++++++++++------------------------ 1 file changed, 160 insertions(+), 154 deletions(-) diff --git a/tutorial.ipynb b/tutorial.ipynb index dcb1162..b5cb496 100644 --- a/tutorial.ipynb +++ b/tutorial.ipynb @@ -16,7 +16,7 @@ "accelerator": "GPU", "widgets": { "application/vnd.jupyter.widget-state+json": { - "572de771c7b34c1481def33bd5ed690d": { + "c79427d84662495db06b89a791d61f31": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -31,14 +31,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_20c89dc0d82a4bdf8756bf5e34152292", - "IPY_MODEL_61026f684725441db2a640e531807675", - "IPY_MODEL_8d2e16d90e13449598d7b3fac75f78a3" + "IPY_MODEL_469c8e5ae4d64adea773341ec22d5851", + "IPY_MODEL_2435573a321341878622d79e1f48f3db", + "IPY_MODEL_a4dcb697b08b4b70ab3ef3ffa54c28e4" ], - "layout": "IPY_MODEL_a09d90f1bd374ece9a29bc6cfe07c072" + "layout": "IPY_MODEL_87495c10d22c4b82bd724a4d7c300df3" } }, - "20c89dc0d82a4bdf8756bf5e34152292": { + "469c8e5ae4d64adea773341ec22d5851": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -53,13 +53,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_801e720897804703b4d32f99f84cc3b8", + "layout": "IPY_MODEL_098c321358c24cdbb50f6c0e6623bf6c", "placeholder": "​", - "style": "IPY_MODEL_c9fb2e268cc94d508d909b3b72ac9df3", + "style": "IPY_MODEL_20184030ca9d4aef9dac0a149b89e4d3", "value": "100%" } }, - "61026f684725441db2a640e531807675": { + "2435573a321341878622d79e1f48f3db": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -75,15 +75,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_bfbc16e88df24fae93e8c80538e78273", + "layout": "IPY_MODEL_790808c9b4fb448aa136cc1ade0f95b5", "max": 818322941, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_d9ffa50bddb7455ca4d67ec220c4a10c", + "style": "IPY_MODEL_99b822fd56b749318b38d8ccbc4ac469", "value": 818322941 } }, - "8d2e16d90e13449598d7b3fac75f78a3": { + "a4dcb697b08b4b70ab3ef3ffa54c28e4": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -98,13 +98,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_8be83ee30f804775aa55aeb021bf515b", + "layout": "IPY_MODEL_d542739146774953954e92db1666b951", "placeholder": "​", - "style": "IPY_MODEL_78e5b8dba72942bfacfee54ceec53784", - "value": " 780M/780M [01:28<00:00, 9.08MB/s]" + "style": "IPY_MODEL_e11f3a2c51204778832631a5f150b21d", + "value": " 780M/780M [02:31<00:00, 4.89MB/s]" } }, - "a09d90f1bd374ece9a29bc6cfe07c072": { + "87495c10d22c4b82bd724a4d7c300df3": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -156,7 +156,7 @@ "width": null } }, - "801e720897804703b4d32f99f84cc3b8": { + "098c321358c24cdbb50f6c0e6623bf6c": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -208,7 +208,7 @@ "width": null } }, - "c9fb2e268cc94d508d909b3b72ac9df3": { + "20184030ca9d4aef9dac0a149b89e4d3": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -223,7 +223,7 @@ "description_width": "" } }, - "bfbc16e88df24fae93e8c80538e78273": { + "790808c9b4fb448aa136cc1ade0f95b5": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -275,7 +275,7 @@ "width": null } }, - "d9ffa50bddb7455ca4d67ec220c4a10c": { + "99b822fd56b749318b38d8ccbc4ac469": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -291,7 +291,7 @@ "description_width": "" } }, - "8be83ee30f804775aa55aeb021bf515b": { + "d542739146774953954e92db1666b951": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -343,7 +343,7 @@ "width": null } }, - "78e5b8dba72942bfacfee54ceec53784": { + "e11f3a2c51204778832631a5f150b21d": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -403,7 +403,7 @@ "colab": { "base_uri": "https://localhost:8080/" }, - "outputId": "4bf03330-c2e8-43ec-c5da-b7f5e0b2b123" + "outputId": "7728cbd8-6240-4814-e8fe-a223b9e57ed9" }, "source": [ "!git clone https://github.com/ultralytics/yolov5 # clone\n", @@ -414,20 +414,20 @@ "import utils\n", "display = utils.notebook_init() # checks" ], - "execution_count": null, + "execution_count": 1, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ - "YOLOv5 🚀 v6.1-257-g669f707 Python-3.7.13 torch-1.11.0+cu113 CUDA:0 (Tesla V100-SXM2-16GB, 16160MiB)\n" + "YOLOv5 🚀 v6.1-343-g685332e Python-3.7.13 torch-1.12.0+cu113 CUDA:0 (Tesla V100-SXM2-16GB, 16160MiB)\n" ] }, { "output_type": "stream", "name": "stdout", "text": [ - "Setup complete ✅ (8 CPUs, 51.0 GB RAM, 38.8/166.8 GB disk)\n" + "Setup complete ✅ (8 CPUs, 51.0 GB RAM, 38.6/166.8 GB disk)\n" ] } ] @@ -460,29 +460,29 @@ "colab": { "base_uri": "https://localhost:8080/" }, - "outputId": "1d1bb361-c8f3-4ddd-8a19-864bb993e7ac" + "outputId": "2d81665e-a0c4-489a-c92e-fe815223adfb" }, "source": [ "!python detect.py --weights yolov5s.pt --img 640 --conf 0.25 --source data/images\n", - "display.Image(filename='runs/detect/exp/zidane.jpg', width=600)" + "#display.Image(filename='runs/detect/exp/zidane.jpg', width=600)" ], - "execution_count": null, + "execution_count": 2, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\u001b[34m\u001b[1mdetect: \u001b[0mweights=['yolov5s.pt'], source=data/images, data=data/coco128.yaml, imgsz=[640, 640], conf_thres=0.25, iou_thres=0.45, max_det=1000, device=, view_img=False, save_txt=False, save_conf=False, save_crop=False, nosave=False, classes=None, agnostic_nms=False, augment=False, visualize=False, update=False, project=runs/detect, name=exp, exist_ok=False, line_thickness=3, hide_labels=False, hide_conf=False, half=False, dnn=False\n", - "YOLOv5 🚀 v6.1-257-g669f707 Python-3.7.13 torch-1.11.0+cu113 CUDA:0 (Tesla V100-SXM2-16GB, 16160MiB)\n", + "YOLOv5 🚀 v6.1-343-g685332e Python-3.7.13 torch-1.12.0+cu113 CUDA:0 (Tesla V100-SXM2-16GB, 16160MiB)\n", "\n", "Downloading https://github.com/ultralytics/yolov5/releases/download/v6.1/yolov5s.pt to yolov5s.pt...\n", - "100% 14.1M/14.1M [00:00<00:00, 225MB/s]\n", + "100% 14.1M/14.1M [00:02<00:00, 6.87MB/s]\n", "\n", "Fusing layers... \n", "YOLOv5s summary: 213 layers, 7225885 parameters, 0 gradients\n", - "image 1/2 /content/yolov5/data/images/bus.jpg: 640x480 4 persons, 1 bus, Done. (0.013s)\n", - "image 2/2 /content/yolov5/data/images/zidane.jpg: 384x640 2 persons, 2 ties, Done. (0.015s)\n", - "Speed: 0.6ms pre-process, 14.1ms inference, 23.9ms NMS per image at shape (1, 3, 640, 640)\n", + "image 1/2 /content/yolov5/data/images/bus.jpg: 640x480 4 persons, 1 bus, Done. (0.014s)\n", + "image 2/2 /content/yolov5/data/images/zidane.jpg: 384x640 2 persons, 2 ties, Done. (0.019s)\n", + "Speed: 0.5ms pre-process, 16.3ms inference, 22.1ms NMS per image at shape (1, 3, 640, 640)\n", "Results saved to \u001b[1mruns/detect/exp\u001b[0m\n" ] } @@ -526,27 +526,27 @@ "base_uri": "https://localhost:8080/", "height": 49, "referenced_widgets": [ - "572de771c7b34c1481def33bd5ed690d", - "20c89dc0d82a4bdf8756bf5e34152292", - "61026f684725441db2a640e531807675", - "8d2e16d90e13449598d7b3fac75f78a3", - "a09d90f1bd374ece9a29bc6cfe07c072", - "801e720897804703b4d32f99f84cc3b8", - "c9fb2e268cc94d508d909b3b72ac9df3", - "bfbc16e88df24fae93e8c80538e78273", - "d9ffa50bddb7455ca4d67ec220c4a10c", - "8be83ee30f804775aa55aeb021bf515b", - "78e5b8dba72942bfacfee54ceec53784" + "c79427d84662495db06b89a791d61f31", + "469c8e5ae4d64adea773341ec22d5851", + "2435573a321341878622d79e1f48f3db", + "a4dcb697b08b4b70ab3ef3ffa54c28e4", + "87495c10d22c4b82bd724a4d7c300df3", + "098c321358c24cdbb50f6c0e6623bf6c", + "20184030ca9d4aef9dac0a149b89e4d3", + "790808c9b4fb448aa136cc1ade0f95b5", + "99b822fd56b749318b38d8ccbc4ac469", + "d542739146774953954e92db1666b951", + "e11f3a2c51204778832631a5f150b21d" ] }, - "outputId": "47c358af-138d-42d9-ca89-4364283df9e3" + "outputId": "d880071b-84ce-4567-9e42-a3c3a78bff73" }, "source": [ "# Download COCO val\n", "torch.hub.download_url_to_file('https://ultralytics.com/assets/coco2017val.zip', 'tmp.zip')\n", "!unzip -q tmp.zip -d ../datasets && rm tmp.zip" ], - "execution_count": null, + "execution_count": 3, "outputs": [ { "output_type": "display_data", @@ -557,7 +557,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "572de771c7b34c1481def33bd5ed690d" + "model_id": "c79427d84662495db06b89a791d61f31" } }, "metadata": {} @@ -571,53 +571,53 @@ "colab": { "base_uri": "https://localhost:8080/" }, - "outputId": "979fe4c2-a058-44de-b401-3cb67878a1b9" + "outputId": "da9456fa-6663-44a8-975b-c99e89d0eb06" }, "source": [ "# Run YOLOv5x on COCO val\n", "!python val.py --weights yolov5x.pt --data coco.yaml --img 640 --iou 0.65 --half" ], - "execution_count": null, + "execution_count": 4, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\u001b[34m\u001b[1mval: \u001b[0mdata=/content/yolov5/data/coco.yaml, weights=['yolov5x.pt'], batch_size=32, imgsz=640, conf_thres=0.001, iou_thres=0.65, task=val, device=, workers=8, single_cls=False, augment=False, verbose=False, save_txt=False, save_hybrid=False, save_conf=False, save_json=True, project=runs/val, name=exp, exist_ok=False, half=True, dnn=False\n", - "YOLOv5 🚀 v6.1-257-g669f707 Python-3.7.13 torch-1.11.0+cu113 CUDA:0 (Tesla V100-SXM2-16GB, 16160MiB)\n", + "YOLOv5 🚀 v6.1-343-g685332e Python-3.7.13 torch-1.12.0+cu113 CUDA:0 (Tesla V100-SXM2-16GB, 16160MiB)\n", "\n", "Downloading https://github.com/ultralytics/yolov5/releases/download/v6.1/yolov5x.pt to yolov5x.pt...\n", - "100% 166M/166M [00:04<00:00, 39.4MB/s]\n", + "100% 166M/166M [00:16<00:00, 10.3MB/s]\n", "\n", "Fusing layers... \n", "YOLOv5x summary: 444 layers, 86705005 parameters, 0 gradients\n", "Downloading https://ultralytics.com/assets/Arial.ttf to /root/.config/Ultralytics/Arial.ttf...\n", - "100% 755k/755k [00:00<00:00, 47.9MB/s]\n", - "\u001b[34m\u001b[1mval: \u001b[0mScanning '/content/datasets/coco/val2017' images and labels...4952 found, 48 missing, 0 empty, 0 corrupt: 100% 5000/5000 [00:00<00:00, 8742.34it/s]\n", + "100% 755k/755k [00:00<00:00, 14.8MB/s]\n", + "\u001b[34m\u001b[1mval: \u001b[0mScanning '/content/datasets/coco/val2017' images and labels...4952 found, 48 missing, 0 empty, 0 corrupt: 100% 5000/5000 [00:00<00:00, 11214.34it/s]\n", "\u001b[34m\u001b[1mval: \u001b[0mNew cache created: /content/datasets/coco/val2017.cache\n", - " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 157/157 [01:11<00:00, 2.21it/s]\n", + " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 157/157 [01:05<00:00, 2.39it/s]\n", " all 5000 36335 0.743 0.625 0.683 0.504\n", - "Speed: 0.1ms pre-process, 4.9ms inference, 1.2ms NMS per image at shape (32, 3, 640, 640)\n", + "Speed: 0.1ms pre-process, 4.7ms inference, 1.1ms NMS per image at shape (32, 3, 640, 640)\n", "\n", "Evaluating pycocotools mAP... saving runs/val/exp/yolov5x_predictions.json...\n", "loading annotations into memory...\n", - "Done (t=0.42s)\n", + "Done (t=0.38s)\n", "creating index...\n", "index created!\n", "Loading and preparing results...\n", - "DONE (t=4.91s)\n", + "DONE (t=5.39s)\n", "creating index...\n", "index created!\n", "Running per image evaluation...\n", "Evaluate annotation type *bbox*\n", - "DONE (t=77.89s).\n", + "DONE (t=71.33s).\n", "Accumulating evaluation results...\n", - "DONE (t=15.36s).\n", + "DONE (t=12.45s).\n", " Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.506\n", " Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.688\n", " Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.549\n", " Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.340\n", - " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.557\n", + " Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.558\n", " Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.651\n", " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.382\n", " Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.631\n", @@ -731,26 +731,31 @@ "colab": { "base_uri": "https://localhost:8080/" }, - "outputId": "be9424b5-34d6-4de0-e951-2c5ae334721e" + "outputId": "9fe5caba-6b0f-4b6e-93a8-4075dae0ee35" }, "source": [ "# Train YOLOv5s on COCO128 for 3 epochs\n", "!python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt --cache" ], - "execution_count": null, + "execution_count": 5, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ - "\u001b[34m\u001b[1mtrain: \u001b[0mweights=yolov5s.pt, cfg=, data=coco128.yaml, hyp=data/hyps/hyp.scratch-low.yaml, epochs=3, batch_size=16, imgsz=640, rect=False, resume=False, nosave=False, noval=False, noautoanchor=False, noplots=False, evolve=None, bucket=, cache=ram, 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", - "\u001b[34m\u001b[1mgithub: \u001b[0mup to date with https://github.com/ultralytics/yolov5 ✅\n", - "YOLOv5 🚀 v6.1-257-g669f707 Python-3.7.13 torch-1.11.0+cu113 CUDA:0 (Tesla V100-SXM2-16GB, 16160MiB)\n", + "\u001b[34m\u001b[1mtrain: \u001b[0mweights=yolov5s.pt, cfg=, data=coco128.yaml, hyp=data/hyps/hyp.scratch-low.yaml, epochs=3, batch_size=16, imgsz=640, rect=False, resume=False, nosave=False, noval=False, noautoanchor=False, noplots=False, evolve=None, bucket=, cache=ram, 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, seed=0, local_rank=-1, entity=None, upload_dataset=False, bbox_interval=-1, artifact_alias=latest\n", + "\u001b[34m\u001b[1mgithub: \u001b[0mskipping check (Docker image), for updates see https://github.com/ultralytics/yolov5\n", + "YOLOv5 🚀 v6.1-343-g685332e Python-3.7.13 torch-1.12.0+cu113 CUDA:0 (Tesla V100-SXM2-16GB, 16160MiB)\n", "\n", "\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", "\u001b[34m\u001b[1mWeights & Biases: \u001b[0mrun 'pip install wandb' to automatically track and visualize YOLOv5 🚀 runs (RECOMMENDED)\n", "\u001b[34m\u001b[1mTensorBoard: \u001b[0mStart with 'tensorboard --logdir runs/train', view at http://localhost:6006/\n", "\n", + "Dataset not found ⚠️, missing paths ['/content/datasets/coco128/images/train2017']\n", + "Downloading https://ultralytics.com/assets/coco128.zip to coco128.zip...\n", + "100% 6.66M/6.66M [00:00<00:00, 31.8MB/s]\n", + "Dataset download success ✅ (1.5s), saved to \u001b[1m/content/datasets\u001b[0m\n", + "\n", " from n params module arguments \n", " 0 -1 1 3520 models.common.Conv [3, 32, 6, 2, 2] \n", " 1 -1 1 18560 models.common.Conv [32, 64, 3, 2] \n", @@ -777,17 +782,18 @@ " 22 [-1, 10] 1 0 models.common.Concat [1] \n", " 23 -1 1 1182720 models.common.C3 [512, 512, 1, False] \n", " 24 [17, 20, 23] 1 229245 models.yolo.Detect [80, [[10, 13, 16, 30, 33, 23], [30, 61, 62, 45, 59, 119], [116, 90, 156, 198, 373, 326]], [128, 256, 512]]\n", - "Model summary: 270 layers, 7235389 parameters, 7235389 gradients\n", + "Model summary: 270 layers, 7235389 parameters, 7235389 gradients, 16.6 GFLOPs\n", "\n", "Transferred 349/349 items from yolov5s.pt\n", "\u001b[34m\u001b[1mAMP: \u001b[0mchecks passed ✅\n", "Scaled weight_decay = 0.0005\n", "\u001b[34m\u001b[1moptimizer:\u001b[0m SGD with parameter groups 57 weight (no decay), 60 weight, 60 bias\n", "\u001b[34m\u001b[1malbumentations: \u001b[0mversion 1.0.3 required by YOLOv5, but version 0.1.12 is currently installed\n", - "\u001b[34m\u001b[1mtrain: \u001b[0mScanning '/content/datasets/coco128/labels/train2017.cache' images and labels... 128 found, 0 missing, 2 empty, 0 corrupt: 100% 128/128 [00:00