diff --git a/tutorial.ipynb b/tutorial.ipynb index 61641bab1833..1438924e4112 100644 --- a/tutorial.ipynb +++ b/tutorial.ipynb @@ -17,7 +17,7 @@ "accelerator": "GPU", "widgets": { "application/vnd.jupyter.widget-state+json": { - "c31d2039ccf74c22b67841f4877d1186": { + "57c562894aed45cd9a107d0455e3e3f4": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "model_module_version": "1.5.0", @@ -32,14 +32,14 @@ "_view_name": "HBoxView", "box_style": "", "children": [ - "IPY_MODEL_d4bba1727c714d94ad58a72bffa07c4c", - "IPY_MODEL_9aeff9f1780b45f892422fdc96e56913", - "IPY_MODEL_bf55a7c71d074d3fa88b10b997820825" + "IPY_MODEL_040d53c6cc924350bcb656cd21a7c713", + "IPY_MODEL_e029890942a74c098408ce5a9a566d51", + "IPY_MODEL_8fb991c03e434566a4297b6ab9446f89" ], - "layout": "IPY_MODEL_d8b66044e2fb4f5b916696834d880c81" + "layout": "IPY_MODEL_a9a376923a7742d89fb335db709c7a7e" } }, - "d4bba1727c714d94ad58a72bffa07c4c": { + "040d53c6cc924350bcb656cd21a7c713": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -54,13 +54,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_102e1deda239436fa72751c58202fa0f", + "layout": "IPY_MODEL_8b4276ac834c4735bf60ee9b761b9962", "placeholder": "​", - "style": "IPY_MODEL_4fd4431ced6c42368e18424912b877e4", + "style": "IPY_MODEL_52cc8da75b724198856617247541cb1e", "value": "100%" } }, - "9aeff9f1780b45f892422fdc96e56913": { + "e029890942a74c098408ce5a9a566d51": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "model_module_version": "1.5.0", @@ -76,15 +76,15 @@ "bar_style": "success", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_cdd709c4f40941bea1b2053523c9fac8", + "layout": "IPY_MODEL_b6652f46480243c4adf60e6440043d6f", "max": 818322941, "min": 0, "orientation": "horizontal", - "style": "IPY_MODEL_a1ef2d8de2b741c78ca5d938e2ddbcdf", + "style": "IPY_MODEL_e502754177ff4ea8abf82a6e9ac77a4a", "value": 818322941 } }, - "bf55a7c71d074d3fa88b10b997820825": { + "8fb991c03e434566a4297b6ab9446f89": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "model_module_version": "1.5.0", @@ -99,13 +99,13 @@ "_view_name": "HTMLView", "description": "", "description_tooltip": null, - "layout": "IPY_MODEL_0dbce99bb6184238842cbec0587d564a", + "layout": "IPY_MODEL_447398becdb04836b5ffb5915318db07", "placeholder": "​", - "style": "IPY_MODEL_91ff5f93f2a24c5790ab29e347965946", - "value": " 780M/780M [01:10<00:00, 10.5MB/s]" + "style": "IPY_MODEL_2fddcb27ad4a4caa81ff51111f8d0ed6", + "value": " 780M/780M [01:17<00:00, 12.3MB/s]" } }, - "d8b66044e2fb4f5b916696834d880c81": { + "a9a376923a7742d89fb335db709c7a7e": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -157,7 +157,7 @@ "width": null } }, - "102e1deda239436fa72751c58202fa0f": { + "8b4276ac834c4735bf60ee9b761b9962": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -209,7 +209,7 @@ "width": null } }, - "4fd4431ced6c42368e18424912b877e4": { + "52cc8da75b724198856617247541cb1e": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -224,7 +224,7 @@ "description_width": "" } }, - "cdd709c4f40941bea1b2053523c9fac8": { + "b6652f46480243c4adf60e6440043d6f": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -276,7 +276,7 @@ "width": null } }, - "a1ef2d8de2b741c78ca5d938e2ddbcdf": { + "e502754177ff4ea8abf82a6e9ac77a4a": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "model_module_version": "1.5.0", @@ -292,7 +292,7 @@ "description_width": "" } }, - "0dbce99bb6184238842cbec0587d564a": { + "447398becdb04836b5ffb5915318db07": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "model_module_version": "1.2.0", @@ -344,7 +344,7 @@ "width": null } }, - "91ff5f93f2a24c5790ab29e347965946": { + "2fddcb27ad4a4caa81ff51111f8d0ed6": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "model_module_version": "1.5.0", @@ -404,7 +404,7 @@ "colab": { "base_uri": "https://localhost:8080/" }, - "outputId": "185d0979-edcd-4860-e6fb-b8a27dbf5096" + "outputId": "e0f693e4-413b-4cc8-ae7e-91537da370b0" }, "source": [ "!git clone https://github.com/ultralytics/yolov5 # clone\n", @@ -415,13 +415,13 @@ "import utils\n", "display = utils.notebook_init() # checks" ], - "execution_count": null, + "execution_count": 1, "outputs": [ { "output_type": "stream", "name": "stderr", "text": [ - "YOLOv5 🚀 v6.1-370-g20f1b7e Python-3.7.13 torch-1.12.0+cu113 CUDA:0 (Tesla V100-SXM2-16GB, 16160MiB)\n" + "YOLOv5 🚀 v6.2-2-g7c9486e Python-3.7.13 torch-1.12.1+cu113 CUDA:0 (Tesla V100-SXM2-16GB, 16160MiB)\n" ] }, { @@ -461,29 +461,29 @@ "colab": { "base_uri": "https://localhost:8080/" }, - "outputId": "4b13989f-32a4-4ef0-b403-06ff3aac255c" + "outputId": "941d625b-01a1-4f1b-dfd2-d9ef1c945715" }, "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-370-g20f1b7e Python-3.7.13 torch-1.12.0+cu113 CUDA:0 (Tesla V100-SXM2-16GB, 16160MiB)\n", + "YOLOv5 🚀 v6.2-2-g7c9486e Python-3.7.13 torch-1.12.1+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, 53.9MB/s]\n", + "Downloading https://github.com/ultralytics/yolov5/releases/download/v6.2/yolov5s.pt to yolov5s.pt...\n", + "100% 14.1M/14.1M [00:00<00:00, 50.5MB/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.016s)\n", - "image 2/2 /content/yolov5/data/images/zidane.jpg: 384x640 2 persons, 2 ties, Done. (0.021s)\n", - "Speed: 0.6ms pre-process, 18.6ms inference, 25.0ms 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.020s)\n", + "Speed: 0.6ms pre-process, 17.0ms inference, 20.2ms NMS per image at shape (1, 3, 640, 640)\n", "Results saved to \u001b[1mruns/detect/exp\u001b[0m\n" ] } @@ -527,27 +527,27 @@ "base_uri": "https://localhost:8080/", "height": 49, "referenced_widgets": [ - "c31d2039ccf74c22b67841f4877d1186", - "d4bba1727c714d94ad58a72bffa07c4c", - "9aeff9f1780b45f892422fdc96e56913", - "bf55a7c71d074d3fa88b10b997820825", - "d8b66044e2fb4f5b916696834d880c81", - "102e1deda239436fa72751c58202fa0f", - "4fd4431ced6c42368e18424912b877e4", - "cdd709c4f40941bea1b2053523c9fac8", - "a1ef2d8de2b741c78ca5d938e2ddbcdf", - "0dbce99bb6184238842cbec0587d564a", - "91ff5f93f2a24c5790ab29e347965946" + "57c562894aed45cd9a107d0455e3e3f4", + "040d53c6cc924350bcb656cd21a7c713", + "e029890942a74c098408ce5a9a566d51", + "8fb991c03e434566a4297b6ab9446f89", + "a9a376923a7742d89fb335db709c7a7e", + "8b4276ac834c4735bf60ee9b761b9962", + "52cc8da75b724198856617247541cb1e", + "b6652f46480243c4adf60e6440043d6f", + "e502754177ff4ea8abf82a6e9ac77a4a", + "447398becdb04836b5ffb5915318db07", + "2fddcb27ad4a4caa81ff51111f8d0ed6" ] }, - "outputId": "a9004b06-37a6-41ed-a1f2-ac956f3963b3" + "outputId": "d593b41a-55e7-48a5-e285-5df449edc8c0" }, "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", @@ -558,7 +558,7 @@ "application/vnd.jupyter.widget-view+json": { "version_major": 2, "version_minor": 0, - "model_id": "c31d2039ccf74c22b67841f4877d1186" + "model_id": "57c562894aed45cd9a107d0455e3e3f4" } }, "metadata": {} @@ -572,48 +572,48 @@ "colab": { "base_uri": "https://localhost:8080/" }, - "outputId": "c0f29758-4ec8-4def-893d-0efd6ed5b7f4" + "outputId": "701132a6-9ca8-4e1f-c89f-5d38893a6fc4" }, "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-370-g20f1b7e Python-3.7.13 torch-1.12.0+cu113 CUDA:0 (Tesla V100-SXM2-16GB, 16160MiB)\n", + "YOLOv5 🚀 v6.2-2-g7c9486e Python-3.7.13 torch-1.12.1+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:35<00:00, 4.97MB/s]\n", + "Downloading https://github.com/ultralytics/yolov5/releases/download/v6.2/yolov5x.pt to yolov5x.pt...\n", + "100% 166M/166M [00:11<00:00, 15.1MB/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, 49.4MB/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, 10716.86it/s]\n", + "100% 755k/755k [00:00<00:00, 48.6MB/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, 10889.87it/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:08<00:00, 2.28it/s]\n", + " Class Images Labels P R mAP@.5 mAP@.5:.95: 100% 157/157 [01:05<00:00, 2.38it/s]\n", " all 5000 36335 0.743 0.625 0.683 0.504\n", - "Speed: 0.1ms pre-process, 4.6ms inference, 1.2ms NMS per image at shape (32, 3, 640, 640)\n", + "Speed: 0.1ms pre-process, 4.7ms inference, 1.0ms 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.41s)\n", + "Done (t=0.39s)\n", "creating index...\n", "index created!\n", "Loading and preparing results...\n", - "DONE (t=5.64s)\n", + "DONE (t=5.53s)\n", "creating index...\n", "index created!\n", "Running per image evaluation...\n", "Evaluate annotation type *bbox*\n", - "DONE (t=72.86s).\n", + "DONE (t=73.01s).\n", "Accumulating evaluation results...\n", - "DONE (t=14.20s).\n", + "DONE (t=15.27s).\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", @@ -745,13 +745,13 @@ "colab": { "base_uri": "https://localhost:8080/" }, - "outputId": "bce1b4bd-1a14-4c07-aebd-6c11e91ad24b" + "outputId": "50a9318f-d438-41d5-db95-928f1842c057" }, "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", @@ -759,17 +759,17 @@ "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, seed=0, 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-370-g20f1b7e Python-3.7.13 torch-1.12.0+cu113 CUDA:0 (Tesla V100-SXM2-16GB, 16160MiB)\n", + "YOLOv5 🚀 v6.2-2-g7c9486e Python-3.7.13 torch-1.12.1+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 in Weights & Biases\n", - "\u001b[34m\u001b[1mClearML: \u001b[0mrun 'pip install clearml' to automatically track, visualize and remotely train YOLOv5 🚀 runs in ClearML\n", + "\u001b[34m\u001b[1mClearML: \u001b[0mrun 'pip install clearml' to automatically track, visualize and remotely train YOLOv5 🚀 in ClearML\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, 75.2MB/s]\n", - "Dataset download success ✅ (0.7s), saved to \u001b[1m/content/datasets\u001b[0m\n", + "100% 6.66M/6.66M [00:00<00:00, 12.4MB/s]\n", + "Dataset download success ✅ (1.3s), 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", @@ -802,12 +802,12 @@ "Transferred 349/349 items from yolov5s.pt\n", "\u001b[34m\u001b[1mAMP: \u001b[0mchecks passed ✅\n", "\u001b[34m\u001b[1moptimizer:\u001b[0m SGD(lr=0.01) with parameter groups 57 weight(decay=0.0), 60 weight(decay=0.0005), 60 bias\n", - "\u001b[34m\u001b[1malbumentations: \u001b[0mBlur(always_apply=False, p=0.01, blur_limit=(3, 7)), MedianBlur(always_apply=False, p=0.01, blur_limit=(3, 7)), ToGray(always_apply=False, p=0.01), CLAHE(always_apply=False, p=0.01, clip_limit=(1, 4.0), tile_grid_size=(8, 8))\n", - "\u001b[34m\u001b[1mtrain: \u001b[0mScanning '/content/datasets/coco128/labels/train2017' images and labels...128 found, 0 missing, 2 empty, 0 corrupt: 100% 128/128 [00:00<00:00, 7926.40it/s]\n", + "\u001b[34m\u001b[1malbumentations: \u001b[0mBlur(p=0.01, blur_limit=(3, 7)), MedianBlur(p=0.01, blur_limit=(3, 7)), ToGray(p=0.01), CLAHE(p=0.01, clip_limit=(1, 4.0), tile_grid_size=(8, 8))\n", + "\u001b[34m\u001b[1mtrain: \u001b[0mScanning '/content/datasets/coco128/labels/train2017' images and labels...128 found, 0 missing, 2 empty, 0 corrupt: 100% 128/128 [00:00<00:00, 8516.89it/s]\n", "\u001b[34m\u001b[1mtrain: \u001b[0mNew cache created: /content/datasets/coco128/labels/train2017.cache\n", - "\u001b[34m\u001b[1mtrain: \u001b[0mCaching images (0.1GB ram): 100% 128/128 [00:00<00:00, 975.81it/s]\n", + "\u001b[34m\u001b[1mtrain: \u001b[0mCaching images (0.1GB ram): 100% 128/128 [00:00<00:00, 1043.44it/s]\n", "\u001b[34m\u001b[1mval: \u001b[0mScanning '/content/datasets/coco128/labels/train2017.cache' images and labels... 128 found, 0 missing, 2 empty, 0 corrupt: 100% 128/128 [00:00