* Add Ultralytics HUB section to README @pderrenger @kalenmike @AlanDimmer @AyushExel new Ultralytics HUB section in YOLOv5 README. Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> * Update README.md Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> * Update README.md Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> * Update README.md @AlanDimmer @kalenmike new integrations image Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update README.md Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> * Update tutorial.ipynb Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> * Update tutorial.ipynb Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> * Update README.md Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> * Update tutorial.ipynb Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> * Update README_cn.md Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
49 KiB
Vendored
49 KiB
Vendored
In [2]:
!git clone https://github.com/ultralytics/yolov5 # clone
%cd yolov5
%pip install -qr requirements.txt # install
import torch
import utils
display = utils.notebook_init() # checksYOLOv5 🚀 v6.2-225-gf223cb2 Python-3.7.12 torch-1.12.1+cu102 CUDA:0 (Tesla V100-SXM2-16GB, 16161MiB)
Setup complete ✅ (4 CPUs, 14.7 GB RAM, 107.3/196.6 GB disk)
In [3]:
!python segment/predict.py --weights yolov5s-seg.pt --img 640 --conf 0.25 --source data/images
#display.Image(filename='runs/predict-seg/exp/zidane.jpg', width=600)[34m[1msegment/predict: [0mweights=['yolov5s-seg.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/predict-seg, name=exp, exist_ok=False, line_thickness=3, hide_labels=False, hide_conf=False, half=False, dnn=False, vid_stride=1, retina_masks=False YOLOv5 🚀 v6.2-225-gf223cb2 Python-3.7.12 torch-1.12.1+cu102 CUDA:0 (Tesla V100-SXM2-16GB, 16161MiB) Fusing layers... YOLOv5s-seg summary: 224 layers, 7611485 parameters, 0 gradients, 26.4 GFLOPs image 1/2 /home/paguerrie/yolov5/data/images/bus.jpg: 640x480 4 persons, 1 bus, 5.6ms image 2/2 /home/paguerrie/yolov5/data/images/zidane.jpg: 384x640 2 persons, 1 tie, 5.5ms Speed: 0.4ms pre-process, 5.6ms inference, 1.1ms NMS per image at shape (1, 3, 640, 640) Results saved to [1mruns/predict-seg/exp[0m
In [4]:
# Download COCO val
torch.hub.download_url_to_file('https://ultralytics.com/assets/coco128-seg.zip', 'tmp.zip') # download (780M - 5000 images)
!unzip -q tmp.zip -d ../datasets && rm tmp.zip # unzip0%| | 0.00/6.79M [00:00<?, ?B/s]
In [5]:
# Validate YOLOv5s-seg on COCO val
!python segment/val.py --weights yolov5s-seg.pt --data coco128-seg.yaml --img 640 --half[34m[1msegment/val: [0mdata=/home/paguerrie/yolov5/data/coco128-seg.yaml, weights=['yolov5s-seg.pt'], batch_size=32, imgsz=640, conf_thres=0.001, iou_thres=0.6, max_det=300, task=val, device=, workers=8, single_cls=False, augment=False, verbose=False, save_txt=False, save_hybrid=False, save_conf=False, save_json=False, project=runs/val-seg, name=exp, exist_ok=False, half=True, dnn=False
YOLOv5 🚀 v6.2-225-gf223cb2 Python-3.7.12 torch-1.12.1+cu102 CUDA:0 (Tesla V100-SXM2-16GB, 16161MiB)
Fusing layers...
YOLOv5s-seg summary: 224 layers, 7611485 parameters, 0 gradients, 26.4 GFLOPs
[34m[1mval: [0mScanning '/home/paguerrie/datasets/coco128-seg/labels/train2017' images and[0m
[34m[1mval: [0mNew cache created: /home/paguerrie/datasets/coco128-seg/labels/train2017.cache
Class Images Instances Box(P R mAP50 m
all 128 929 0.711 0.651 0.711 0.488 0.678 0.628 0.66 0.403
Speed: 3.2ms pre-process, 2.7ms inference, 6.5ms NMS per image at shape (32, 3, 640, 640)
Results saved to [1mruns/val-seg/exp[0m
In [ ]:
#@title Select YOLOv5 🚀 logger {run: 'auto'}
logger = 'TensorBoard' #@param ['TensorBoard', 'Comet', 'ClearML']
if logger == 'TensorBoard':
%load_ext tensorboard
%tensorboard --logdir runs/train-seg
elif logger == 'Comet':
%pip install -q comet_ml
import comet_ml; comet_ml.init()
elif logger == 'ClearML':
%pip install -q clearml && clearml-initIn [7]:
# Train YOLOv5s on COCO128 for 3 epochs
!python segment/train.py --img 640 --batch 16 --epochs 3 --data coco128-seg.yaml --weights yolov5s-seg.pt --cache[34m[1msegment/train: [0mweights=yolov5s-seg.pt, cfg=, data=coco128-seg.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-seg, 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, mask_ratio=4, no_overlap=False
[34m[1mgithub: [0mup to date with https://github.com/ultralytics/yolov5 ✅
YOLOv5 🚀 v6.2-225-gf223cb2 Python-3.7.12 torch-1.12.1+cu102 CUDA:0 (Tesla V100-SXM2-16GB, 16161MiB)
[34m[1mhyperparameters: [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
[34m[1mTensorBoard: [0mStart with 'tensorboard --logdir runs/train-seg', view at http://localhost:6006/
from n params module arguments
0 -1 1 3520 models.common.Conv [3, 32, 6, 2, 2]
1 -1 1 18560 models.common.Conv [32, 64, 3, 2]
2 -1 1 18816 models.common.C3 [64, 64, 1]
3 -1 1 73984 models.common.Conv [64, 128, 3, 2]
4 -1 2 115712 models.common.C3 [128, 128, 2]
5 -1 1 295424 models.common.Conv [128, 256, 3, 2]
6 -1 3 625152 models.common.C3 [256, 256, 3]
7 -1 1 1180672 models.common.Conv [256, 512, 3, 2]
8 -1 1 1182720 models.common.C3 [512, 512, 1]
9 -1 1 656896 models.common.SPPF [512, 512, 5]
10 -1 1 131584 models.common.Conv [512, 256, 1, 1]
11 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest']
12 [-1, 6] 1 0 models.common.Concat [1]
13 -1 1 361984 models.common.C3 [512, 256, 1, False]
14 -1 1 33024 models.common.Conv [256, 128, 1, 1]
15 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest']
16 [-1, 4] 1 0 models.common.Concat [1]
17 -1 1 90880 models.common.C3 [256, 128, 1, False]
18 -1 1 147712 models.common.Conv [128, 128, 3, 2]
19 [-1, 14] 1 0 models.common.Concat [1]
20 -1 1 296448 models.common.C3 [256, 256, 1, False]
21 -1 1 590336 models.common.Conv [256, 256, 3, 2]
22 [-1, 10] 1 0 models.common.Concat [1]
23 -1 1 1182720 models.common.C3 [512, 512, 1, False]
24 [17, 20, 23] 1 615133 models.yolo.Segment [80, [[10, 13, 16, 30, 33, 23], [30, 61, 62, 45, 59, 119], [116, 90, 156, 198, 373, 326]], 32, 128, [128, 256, 512]]
Model summary: 225 layers, 7621277 parameters, 7621277 gradients, 26.6 GFLOPs
Transferred 367/367 items from yolov5s-seg.pt
[34m[1mAMP: [0mchecks passed ✅
[34m[1moptimizer:[0m SGD(lr=0.01) with parameter groups 60 weight(decay=0.0), 63 weight(decay=0.0005), 63 bias
[34m[1mtrain: [0mScanning '/home/paguerrie/datasets/coco128-seg/labels/train2017.cache' im[0m
[34m[1mtrain: [0mCaching images (0.1GB ram): 100%|██████████| 128/128 [00:00<00:00, 544.41[0m
[34m[1mval: [0mScanning '/home/paguerrie/datasets/coco128-seg/labels/train2017.cache' imag[0m
[34m[1mval: [0mCaching images (0.1GB ram): 100%|██████████| 128/128 [00:00<00:00, 138.66it[0m
[34m[1mAutoAnchor: [0m4.27 anchors/target, 0.994 Best Possible Recall (BPR). Current anchors are a good fit to dataset ✅
Plotting labels to runs/train-seg/exp/labels.jpg...
Image sizes 640 train, 640 val
Using 4 dataloader workers
Logging results to [1mruns/train-seg/exp[0m
Starting training for 3 epochs...
Epoch GPU_mem box_loss seg_loss obj_loss cls_loss Instances Size
0/2 4.67G 0.04464 0.05134 0.06548 0.01895 219
Class Images Instances Box(P R mAP50 m
all 128 929 0.727 0.661 0.725 0.496 0.688 0.629 0.673 0.413
Epoch GPU_mem box_loss seg_loss obj_loss cls_loss Instances Size
1/2 6.36G 0.04102 0.04702 0.06873 0.01734 263
Class Images Instances Box(P R mAP50 m
all 128 929 0.752 0.676 0.743 0.51 0.704 0.64 0.682 0.425
Epoch GPU_mem box_loss seg_loss obj_loss cls_loss Instances Size
2/2 6.36G 0.0421 0.04463 0.05951 0.01746 245
Class Images Instances Box(P R mAP50 m
all 128 929 0.776 0.674 0.757 0.514 0.72 0.632 0.684 0.429
3 epochs completed in 0.006 hours.
Optimizer stripped from runs/train-seg/exp/weights/last.pt, 15.6MB
Optimizer stripped from runs/train-seg/exp/weights/best.pt, 15.6MB
Validating runs/train-seg/exp/weights/best.pt...
Fusing layers...
Model summary: 165 layers, 7611485 parameters, 0 gradients, 26.4 GFLOPs
Class Images Instances Box(P R mAP50 m
all 128 929 0.775 0.673 0.758 0.515 0.72 0.632 0.684 0.427
person 128 254 0.829 0.745 0.833 0.545 0.776 0.697 0.764 0.406
bicycle 128 6 0.614 0.333 0.539 0.331 0.614 0.333 0.531 0.308
car 128 46 0.774 0.413 0.571 0.266 0.693 0.37 0.493 0.204
motorcycle 128 5 0.817 0.901 0.895 0.678 0.817 0.901 0.895 0.47
airplane 128 6 1 0.951 0.995 0.71 0.882 0.833 0.839 0.515
bus 128 7 0.695 0.714 0.757 0.661 0.695 0.714 0.757 0.627
train 128 3 1 0.935 0.995 0.566 1 0.935 0.995 0.731
truck 128 12 0.741 0.417 0.463 0.283 0.741 0.417 0.4 0.27
boat 128 6 0.653 0.32 0.452 0.17 0.653 0.32 0.328 0.149
traffic light 128 14 0.627 0.36 0.527 0.234 0.503 0.289 0.409 0.293
stop sign 128 2 0.829 1 0.995 0.747 0.829 1 0.995 0.821
bench 128 9 0.822 0.667 0.76 0.414 0.685 0.556 0.678 0.228
bird 128 16 0.967 1 0.995 0.675 0.906 0.938 0.909 0.516
cat 128 4 0.778 0.89 0.945 0.728 0.778 0.89 0.945 0.69
dog 128 9 1 0.65 0.973 0.697 1 0.65 0.939 0.615
horse 128 2 0.727 1 0.995 0.672 0.727 1 0.995 0.2
elephant 128 17 1 0.912 0.946 0.704 0.871 0.794 0.822 0.565
bear 128 1 0.626 1 0.995 0.895 0.626 1 0.995 0.895
zebra 128 4 0.865 1 0.995 0.934 0.865 1 0.995 0.822
giraffe 128 9 0.975 1 0.995 0.672 0.866 0.889 0.876 0.473
backpack 128 6 1 0.573 0.707 0.38 0.891 0.5 0.524 0.249
umbrella 128 18 0.744 0.889 0.926 0.552 0.465 0.556 0.483 0.262
handbag 128 19 0.799 0.209 0.432 0.225 0.799 0.209 0.403 0.201
tie 128 7 0.968 0.857 0.857 0.53 0.968 0.857 0.857 0.519
suitcase 128 4 0.821 1 0.995 0.696 0.821 1 0.995 0.665
frisbee 128 5 0.777 0.8 0.761 0.613 0.777 0.8 0.761 0.558
skis 128 1 0.721 1 0.995 0.497 0.721 1 0.995 0.398
snowboard 128 7 0.851 0.857 0.887 0.599 0.284 0.286 0.253 0.151
sports ball 128 6 0.961 0.667 0.687 0.429 0.721 0.5 0.481 0.476
kite 128 10 0.508 0.312 0.48 0.238 0.508 0.312 0.406 0.122
baseball bat 128 4 0.331 0.5 0.526 0.249 0.331 0.5 0.376 0.102
baseball glove 128 7 0.876 0.571 0.579 0.282 0.657 0.429 0.429 0.343
skateboard 128 5 1 0.697 0.824 0.471 0.707 0.497 0.552 0.299
tennis racket 128 7 0.524 0.714 0.646 0.426 0.524 0.714 0.646 0.452
bottle 128 18 0.657 0.389 0.531 0.359 0.657 0.389 0.569 0.362
wine glass 128 16 0.752 0.938 0.924 0.435 0.451 0.562 0.568 0.341
cup 128 36 0.859 0.676 0.848 0.503 0.823 0.648 0.793 0.496
fork 128 6 0.904 0.333 0.462 0.309 0.452 0.167 0.195 0.107
knife 128 16 0.749 0.5 0.665 0.413 0.655 0.438 0.523 0.314
spoon 128 22 0.787 0.409 0.577 0.275 0.787 0.409 0.528 0.236
bowl 128 28 0.793 0.679 0.744 0.577 0.751 0.643 0.688 0.366
banana 128 1 0.931 1 0.995 0.398 0.931 1 0.995 0.497
sandwich 128 2 1 0 0.828 0.713 1 0 0.498 0.449
orange 128 4 0.588 1 0.995 0.666 0.588 1 0.995 0.672
broccoli 128 11 0.563 0.455 0.356 0.258 0.563 0.455 0.362 0.259
carrot 128 24 0.683 0.75 0.753 0.489 0.758 0.833 0.835 0.451
hot dog 128 2 0.583 1 0.995 0.995 0.583 1 0.995 0.796
pizza 128 5 0.801 0.8 0.962 0.644 0.801 0.8 0.962 0.583
donut 128 14 0.704 1 0.889 0.759 0.704 1 0.889 0.683
cake 128 4 0.904 1 0.995 0.896 0.904 1 0.995 0.838
chair 128 35 0.672 0.543 0.629 0.333 0.708 0.571 0.583 0.284
couch 128 6 0.827 0.5 0.821 0.583 0.827 0.5 0.681 0.352
potted plant 128 14 0.809 0.908 0.884 0.584 0.809 0.908 0.884 0.474
bed 128 3 1 0.654 0.913 0.36 1 0.654 0.913 0.418
dining table 128 13 0.803 0.385 0.557 0.361 0.321 0.154 0.126 0.0487
toilet 128 2 0.802 1 0.995 0.921 0.802 1 0.995 0.698
tv 128 2 0.59 1 0.995 0.846 0.59 1 0.995 0.846
laptop 128 3 1 0 0.451 0.324 1 0 0.372 0.157
mouse 128 2 1 0 0 0 1 0 0 0
remote 128 8 0.831 0.5 0.625 0.495 0.831 0.5 0.629 0.436
cell phone 128 8 0.867 0.375 0.482 0.26 0.578 0.25 0.302 0.127
microwave 128 3 0.782 1 0.995 0.695 0.782 1 0.995 0.585
oven 128 5 0.389 0.4 0.432 0.299 0.584 0.6 0.642 0.411
sink 128 6 0.657 0.5 0.491 0.373 0.657 0.5 0.436 0.303
refrigerator 128 5 0.729 0.8 0.778 0.547 0.729 0.8 0.778 0.496
book 128 29 0.77 0.231 0.451 0.186 0.77 0.231 0.399 0.136
clock 128 9 0.798 0.889 0.956 0.747 0.798 0.889 0.926 0.68
vase 128 2 0.437 1 0.995 0.895 0.437 1 0.995 0.796
scissors 128 1 0 0 0.0226 0.0113 0 0 0 0
teddy bear 128 21 0.815 0.629 0.877 0.521 0.753 0.582 0.793 0.435
toothbrush 128 5 1 0.719 0.995 0.737 1 0.719 0.995 0.606
Results saved to [1mruns/train-seg/exp[0m
In [ ]:
# YOLOv5 PyTorch HUB Inference (DetectionModels only)
import torch
model = torch.hub.load('ultralytics/yolov5', 'yolov5s-seg') # yolov5n - yolov5x6 or custom
im = 'https://ultralytics.com/images/zidane.jpg' # file, Path, PIL.Image, OpenCV, nparray, list
results = model(im) # inference
results.print() # or .show(), .save(), .crop(), .pandas(), etc.





