深度学习目标检测YOLOV8

V8简介
YOLOv8基于深度学习和计算机视觉的前沿进展,提供了无与伦比的速度和准确性表现。它的精简设计使其适用于各种应用,并且可以轻松适应不同的硬件平台,从边缘设备到云API。

  1. YOLO简史
    YOLO(You Only Look Once),由华盛顿大学的Joseph Redmon和Ali Farhadi开发的流行目标检测和图像分割模型,于2015年推出,由于其高速和准确性而迅速流行。

image-20231226193316154

YOLOv2在2016年发布,通过引入批量归一化、锚框和维度聚类来改进了原始模型。
YOLOv3 在2018年推出,进一步增强了模型的性能,使用了更高效的主干网络、多个锚点和空间金字塔池化。
YOLOv4 在2020年发布,引入了Mosaic数据增强、新的无锚检测头和新的损失函数等创新功能。
YOLOv5 进一步改进了模型的性能,并增加了新功能,如超参数优化、集成实验跟踪和自动导出到常用的导出格式。
YOLOv6在2022年由美团开源,现在正在该公司的许多自动送货机器人中使用。
YOLOv7在COCO关键点数据集上添加了额外的任务,如姿态估计。
YOLOv8是Ultralytics的YOLO的最新版本。作为一种前沿、最先进(SOTA)的模型,YOLOv8在之前版本的成功基础上引入了新功能和改进,以提高性能、灵活性和效率。YOLOv8支持全范围的视觉AI任务,包括检测, 分割, 姿态估计, 跟踪和分类。这种多功能性使用户能够利用YOLOv8的功能应对多种应用和领域的需求。
2.V8使用方法
YOLOv8是基于目标检测算法YOLOv5的改进版,它在YOLOv5的基础上进行了优化和改进,加入了一些新的特性和技术,如切片注意力机制、骨干网络的选择等。YOLOv8的目标检测速度非常快,可以达到实时检测的效果,并且在目标检测精度上也取得了不错的成绩。同时,YOLOv8的模型体积比较小,运行内存占用也很少,适合在嵌入式设备等资源受限的环境中应用。总的来说,YOLOv8是一种高效、快速、准确的目标检测算法,适合在多种场景中应用,包括智能家居、智能交通、安防监控等领域。

image-20231226194235565

它有哪些模型文件呢?

名称 模型文件 家族
检测 yolov8n.pt 8n、8s、8m、8l、8x
分割 yolov8n-seg.pt 8n、8s、8m、8l、8x
分类 yolov8n-cls.pt 8n、8s、8m、8l、8x
姿态 yolov8n-pose.pt 8n、8s、8m、8l、8x
每一类模型,还搞出一个家族。这就好比是同一款衣服的不同尺码。尺码不同,受众也不同。我们拿检测来做个对比。
在这里插入图片描述

我们看到从8n到8x,虽然准确值提高了,但是时间也提高了6倍。

我们执行pip install ultralytics安装平台支持库,就可以进行操作了。

2.1 命令行操作
我们利用下面这幅图进行目标检测:

image-20231226195337179

在终端运行如下命令:

yolo predict model=weights/yolov8n.pt source=images/cat.jpg
这表示使用yolo的yolov8n.pt模型对cat.jpg这张图进行预测。最后一句说,结果保存到了runs\detect\predict目录。我们打开一看,发现了一张cat.jpg。

cat

嗯,这就是目标检测的结果。

2.2 用代码处理
代码调用也很简单。

从平台库导入YOLO类

from ultralytics import YOLO

从模型文件构建model

model = YOLO(“weights/yolov8n.pt”)

对某张图片进行预测

results = model(“images/cat.jpg”,save=True)

打印识别结果

print(results)
输出结果:

image 1/1 /Users/mac/Desktop/智慧交通/yolov8/images/cat.jpg: 448x640 2 cars, 1 cat, 146.1ms
Speed: 4.7ms preprocess, 146.1ms inference, 1.2ms postprocess per image at shape (1, 3, 448, 640)
Results saved to runs/detect/predict2
[ultralytics.engine.results.Results object with attributes:

boxes: ultralytics.engine.results.Boxes object
keypoints: None
keys: [‘boxes’]
masks: None
names: {0: ‘person’, 1: ‘bicycle’, 2: ‘car’, 3: ‘motorcycle’, 4: ‘airplane’, 5: ‘bus’, 6: ‘train’, 7: ‘truck’, 8: ‘boat’, 9: ‘traffic light’, 10: ‘fire hydrant’, 11: ‘stop sign’, 12: ‘parking meter’, 13: ‘bench’, 14: ‘bird’, 15: ‘cat’, 16: ‘dog’, 17: ‘horse’, 18: ‘sheep’, 19: ‘cow’, 20: ‘elephant’, 21: ‘bear’, 22: ‘zebra’, 23: ‘giraffe’, 24: ‘backpack’, 25: ‘umbrella’, 26: ‘handbag’, 27: ‘tie’, 28: ‘suitcase’, 29: ‘frisbee’, 30: ‘skis’, 31: ‘snowboard’, 32: ‘sports ball’, 33: ‘kite’, 34: ‘baseball bat’, 35: ‘baseball glove’, 36: ‘skateboard’, 37: ‘surfboard’, 38: ‘tennis racket’, 39: ‘bottle’, 40: ‘wine glass’, 41: ‘cup’, 42: ‘fork’, 43: ‘knife’, 44: ‘spoon’, 45: ‘bowl’, 46: ‘banana’, 47: ‘apple’, 48: ‘sandwich’, 49: ‘orange’, 50: ‘broccoli’, 51: ‘carrot’, 52: ‘hot dog’, 53: ‘pizza’, 54: ‘donut’, 55: ‘cake’, 56: ‘chair’, 57: ‘couch’, 58: ‘potted plant’, 59: ‘bed’, 60: ‘dining table’, 61: ‘toilet’, 62: ‘tv’, 63: ‘laptop’, 64: ‘mouse’, 65: ‘remote’, 66: ‘keyboard’, 67: ‘cell phone’, 68: ‘microwave’, 69: ‘oven’, 70: ‘toaster’, 71: ‘sink’, 72: ‘refrigerator’, 73: ‘book’, 74: ‘clock’, 75: ‘vase’, 76: ‘scissors’, 77: ‘teddy bear’, 78: ‘hair drier’, 79: ‘toothbrush’}
orig_img: array([[[229, 250, 252],
[237, 252, 254],
[239, 251, 251],
…,
[ 46, 82, 76],
[ 45, 83, 77],
[ 45, 82, 78]],

   [[218, 244, 251],
    [227, 249, 255],
    [234, 250, 255],
    ...,
    [ 46,  82,  76],
    [ 45,  82,  78],
    [ 45,  82,  78]],

   [[206, 239, 254],
    [214, 241, 255],
    [218, 243, 253],
    ...,
    [ 45,  80,  76],
    [ 46,  81,  77],
    [ 45,  79,  78]],

   ...,

   [[ 80,  67,  69],
    [ 54,  43,  46],
    [ 39,  30,  33],
    ...,
    [141, 139, 139],
    [ 74,  66,  67],
    [ 24,  16,  17]],

   [[ 46,  35,  37],
    [ 44,  33,  36],
    [ 42,  33,  36],
    ...,
    [116, 114, 114],
    [ 22,  14,  15],
    [ 44,  36,  37]],

   [[ 34,  23,  25],
    [ 30,  22,  23],
    [ 30,  21,  24],
    ...,
    [  8,   6,   6],
    [ 23,  15,  16],
    [ 27,  19,  20]]], dtype=uint8)

orig_shape: (427, 640)
path: ‘/Users/mac/Desktop/智慧交通/yolov8/images/cat.jpg’
probs: None
save_dir: ‘runs/detect/predict2’
speed: {‘preprocess’: 4.662752151489258, ‘inference’: 146.13795280456543, ‘postprocess’: 1.2059211730957031}]
YOLOv8功能强大,除了目标检测,还支持分割、追踪等任务。执行所有功能的代码都是同一套,想换功能更换xx.pt模型文件就行。它的分析结果,也都存在同一个results结构中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr Robot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值