YOLO 算法系列

2023-11-12

我们分享了YOLO系列的文章,包括前段时间刚刚发布的YOLOv7检测算法,虽然YOLOv7对象检测算法是YOLO最新的模型,且可以支持对象分割,人体姿态检测等,但是最新的YOLO系列检测模型也同步进行了更新,那就是刚刚开源的YOLOv8对象检测算法。只能说AI人工智能领域越来越卷了。

 

 

人工智能领域也卷了吗——YOLO系列又被刷新了,YOLOv7横空出世

模型对比

——1——

YOLO系列对象检测算法

YOLO(You Only Look Once)是由Joseph Redmon和Ali开发的一种对象检测和图像分割模型。YOLO的第一个版本于2015年发布,由于其高速度和准确性,瞬间得到了广大AI爱好者的喜爱。

YOLO

YOLOv2 于 2016 年发布,通过合并批量归一化、锚框和维度群集等技术,大大提高了其对象检测算法的精度与速度。

YOLOv3

YOLOv3 于 2018 年发布,通过使用更高效的骨干网络,添加特征金字塔,并利用焦点损失等技术,进一步提高了速度与精确度。

YOLOv4

2020 年,YOLOv4 发布,引入了许多创新,例如使用 Mosaic 数据增强,一个新的无锚检测头,以及新的损失函数等功能。

YOLOv5

2021 年,Ultralytics 发布了 YOLOv5,进一步改进了该模型的性能并添加了新功能,例如支持全景分割和对象跟踪。

YOLOv6

2022年,美团发布了YOLOv6,YOLOv6对Backbone 和 Neck 都进行了重新设计,Head层沿用了YOLO_x中的Decoupled Head并稍作修改。对YOLOv5而言,YOLOv6对网络模型结构进行了大量的更改。除了网络结构上的改进,作者还对训练策略进行了改进,应用了Anchor-free 无锚范式、SimOTA标签分配策略、SIOU边界框回归损失。

YOLOV7

2022年,WongKinYiu团队发布YOLOv7对象检测算法,E-ELAN 是 YOLOv7 主干中的计算块。E-ELAN使用expand、shuffle、merge cardinality来实现在不破坏原有梯度路径的情况下不断增强网络学习能力的能力。

——2——

YOLOv8对象检测算法

2023年,Ultralytics再次发布YOLO更新模型,YOLOv8模型。Ultralytics YOLOv8是YOLO对象检测和图像分割模型的最新版本。YOLOv8 是一种尖端的、最先进的 (SOTA) 模型。

YOLOv8的一个关键特性是它的可扩展性。它被设计为一个框架,支持所有以前版本的 YOLO,可以轻松地在不同版本之间切换并比较它们的性能。

除了可扩展性之外,YOLOv8 还包括许多其他创新,使其成广泛应用在对象检测和图像分割任务上。其中包括新的骨干网络,新的无锚网络检测头和新的损失函数功能。YOLOv8 也非常高效,可以在各种硬件平台(从 CPU 到 GPU)上运行。

YOLOv8 模型的每个类别中有五个模型,用于检测、分割和分类。YOLOv8 Nano是最快和最小的,而YOLOv8 Extra Large(YOLOv8x)是最准确但最慢的。

YOLOv8 使用了以下预训练模型:

  • 在 COCO 检测数据集上训练的对象检测,图像分辨率为 640。
  • 在 COCO 分割数据集上训练的实例分割,图像分辨率为 640。
  • 在 ImageNet 数据集上预训练的图像分类模型,图像分辨率为 224。

YOLOv8 对象检测与对象分割

——3——

YOLOv8对象检测算法的代码实现

YOLOv8对象检测算法的代码实现过程也很简单,官方提供了API接口以及python第三方包安装的方式进行代码的实现过程。

首先需要安装Python>=3.7.0 与PyTorch>=1.7,然后跟安装python第三方包类似的操作,来安装ultralytics库,这样,我们就可以使用YOLOv8对象检测算法了。

pip install ultralyticsyolo task=detect mode=predict model=yolov8n.pt source="images" name=yolov8x_det

YOLOv8对象检测

第一行代码是安装ultralytics,第二行代码便可以使用YOLO指令进行对象检测任务,好吧,我承认现在AI人工智能行业越来越卷了,2行代码就搞定了。

对象检测

 task=detect #执行对象检测任务 mode=predict #执行预测或者训练 model=yolov8n.pt #使用哪个模型进行预测或者训练 source="images" #检测的文件名,或者一个文件夹 name=yolov8x_det #保存的文件名,或者一个文件夹

检测完成后,会自动保存结果到指定的文件夹中,我们可以使用一个脚本来进行图片的显示。

def display(dir):    plt.figure(figsize=(20, 12))    image_names = glob.glob(os.path.join(result_dir, '*.jpg'))    for i, image_name in enumerate(image_names):        image = plt.imread(image_name)        plt.subplot(2, 2, i+1)        plt.imshow(image)        plt.axis('off')    plt.tight_layout()    plt.show()display(runs/detect/yolov8x_det/)

当然,YOLOv8对象检测算法跟YOLOv7类似,同样可以进行对象的分割任务与对象分类任务

对象分割

yolo task=segment mode=predict model=yolov8x-seg.pt source='images' name=yolov8x_segyolo task=classify mode=predict model=yolov8x-cls.pt source='images' name=yolov8x_clsdisplay('runs/segment/yolov8x_seg/')display('runs/classify/yolov8x_cls/')

from ultralytics import YOLO# Load a model#model = YOLO("yolov8n.yaml")  # build a new model from scratchmodel = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)# Use the modelresults = model.train(data="coco128.yaml", epochs=3)  # train the modelresults = model.val()  # evaluate model performance on the validation setresults = model.predict("https://ultralytics.com/images/bus.jpg")  # predict on an imagesuccess = model.export(format="onnx")  # export the model to ONNX format

对象分类

当然,官方提供了python代码来实现YOLOv8对象检测算法模型

第一行代码,我们导入YOLO模型

第5行代码,我们使用yolov8n预训练模型

第8行代码,我们首先在COCO128数据集上面训练YOLOv8对象检测算法模型

第9行代码,我们在验证集上进行模型的评估

第10行代码,我们进行模型的预测

最后,我们可以导出onnx格式的模型

更多参考:

https://github.com/ultralytics/ultralytics 开源链接

高大上的YOLOV3对象检测算法,使用python也可轻松实现

使用python轻松实现高大上的YOLOV4对象检测算法

基于python的YOLOV5对象检测模型实现

人工智能领域也卷了吗——YOLO系列又被刷新了,YOLOv7横空出世

YOLOv7与MediaPipe在人体姿态估计上的对比

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

YOLO 算法系列 的相关文章

随机推荐

  • pytorch:计算网络模型在gpu上的推理时间

    计算网络模型的推理时间 网络模型的推理过程是在gpu上进行的 方法一 import torch import time net net to cuda 网络模型 input input to cuda 输入 time start time
  • 最详细小白入门Python7-bug和调试

    bug调试工具的使用 打断点 在行号后边点击出现小红点 右键debug进入调试模式 代码执行暂停到断点位置代码执行之前 debugger 查看参数及变量在执行过程中的变化情况 console 查看控制台输出内容 step over 单步执行
  • pytorch图像检索评价指标MAP

    map是图像检索模型的一个评价指标 以图片中第一个计算AP值为例 P的分别是 1 2 3 3 6 4 9 5 10 R值分别是 1 5 2 5 3 5 4 5 1 AP计算结果 1 2 3 3 6 4 9 5 10 5 https blog
  • c语言蝴蝶图案代码,通达信指标公式,临界点蝴蝶图案出现,暴涨趋势出现(附源码)...

    暴涨临界点指标 如上图所示 保障临界点指标专门用于监控起爆买点 当临界点出现后期一定会有上升 一战成名主图 指标源码 DRAWGBK 1 RGB 36 38 40 RGB 24 16 51 0 1 0 VAR1B 100 EMA EMA C
  • UE4中英文语言切换的三种方式(当然也可以多种语言)

    一 用ue4的Localization Dashboard 1 2 3 4 5 最后 必须独立运行游戏才能看到效果 二 使用WidgetSwitcher 1 2 3 4 用一个按钮点击进行Index的修改 就可以完成中英文切换 三 用两个T
  • 2-软件生命周期模型

    软件生命周期模型 软件工程过程 工程项目的PDCA循环 戴明环 美国质量管理专家戴明博士针对工程项目的质量目标 将全面质量管理思想引入工程项目过程 提出了PDCA循环 也称为戴明环 即Plan 规划 Do 执行 Check 检查 Actio
  • PTA9文件操作(python3)

    python程序设计09 文件操作 9 1 从文件中查找最长的单词 20分 请勿修改 20 分 9 2 求文件行数 20 分 9 3 analyze the character distribution of a document 20 分
  • 最大报文段长度——MSS

    1 概念 MSS Maximum Segment Size 最大报文长度 是TCP协议定义的一个选项 MSS选项用于在TCP连接建立时 收发双方协商通信时每一个报文段所能承载的最大数据长度 在以太网环境下 MSS MTU 20字节TCP报头
  • unity按钮点击无响应的处理方法

    在程序中给Button控件添加了点击事件后无反应 可能由于下列原因导致 按钮的interactable false或者enable false 父节点如果有CanvasGroup组件 还必须把CanvasGroup组件上的interacta
  • 【CentOS 7.9】基于VMware虚拟机的详细安装教程

    一 下载CentOS 7 9 镜像文件 Linux版本大家自己选择 目前市面还是7 X版本用的多 这里我就以7 9版本为例进行演示 镜像下载地址 https mirrors tuna tsinghua edu cn centos 7 9 2
  • Ubuntu16.04LTS64位安装64JDK9.0.1

    第一步 去Oracle下载JDK 根据自己的需要选择不同的版本 这里选择的JDK9 0 1 下载地址 http www oracle com technetwork java javase downloads jdk9 downloads
  • yolov8保存结果

    找到predictor py文件加上如下代码 for result in self results path result path split images 1 split 0 boxes result boxes box boxes c
  • oracle 数据库truncate,Oracle中的truncate用法

    语法 TRUNCATE TABLE table 在使用truncate语句 DDL语言 可以删除表中的所有记录 使用truncate语句删除数据时 通常要比使用delete语句快得多 这是因为使用truncate语句删除数据时 不会产生任何
  • Spring中进行事务管理的两种方式

    1 Spring中事务管理的API 事务是指逻辑上要么全部成功 要么全部失败的一组操作 例如用户A给用户B转账 则用户A账户余额减少 用户B账户增加这两个操作就是一组事务 必须全部成功或失败撤回操作 不能出现A账户余额减少 B增加失败的情况
  • gvim 编译选项没支持Python. gvim is not python supported

    windows 安装 vim tux 该版本开启了所有的编译支持选项
  • 软件测试工程师工作总结

    1 为什么要在一个团队中开展软件测试工作 因为没有经过测试的软件很难在发布之前知道该软件的质量 就好比ISO质量认证一样 测试同样也需要质量的保证 这个时候就需要在团队中开展软件测试的工作 在测试的过程发现软件中存在的问题 及时让开发人员得
  • 三维物体追踪笔记(1)-基于边缘的三维物体追踪——理论、公式推导与实现

    1 基于边缘检测的三维跟踪建模 三维物体追踪是已知图像中某个物体在已知一系列空间三维点位置 或者是一个3D 模型面片集 的信息下 将这些点通过一个恰到好处的位姿 R t 进行转换后投影到图像上 问题的求解目标是这个位姿 R t 难点是并不知
  • 华院计算

    郭守敬 1231年 1316年 字若思 河北邢台人 郭守敬出生于金哀宗正大八年 1231年 时为宋朝 960年 1279年 但当年的河北地域属于女真族人管治的金国 他40岁那年 大蒙古国忽必烈 1215年 1294年 打败了西夏和金国 建立
  • 北大igem生物计算机,喜讯|北京大学iGEM团队在国际大赛中取得金牌

    原标题 喜讯 北京大学iGEM团队在国际大赛中取得金牌 美国东部时间2017年11月13日下午 在波士顿Hynes会议中心举办的国际基因工程机器大赛 International Genetically Engineered Machine
  • YOLO 算法系列

    我们分享了YOLO系列的文章 包括前段时间刚刚发布的YOLOv7检测算法 虽然YOLOv7对象检测算法是YOLO最新的模型 且可以支持对象分割 人体姿态检测等 但是最新的YOLO系列检测模型也同步进行了更新 那就是刚刚开源的YOLOv8对象