YOLO 算法系列

news2024/11/19 15:16:29

我们分享了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在人体姿态估计上的对比

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/543082.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

正版软件,官方授权。RadiAnt DICOM Viewer - 软件版 / CD/DVD版

灵活、简单、快速 RadiAnt 是一个医学图像的 PACS DICOM 浏览器 设计是为了给您独特体验,它界面直观,性能无与伦比,您的体验感一定爆棚! RadiAnt DICOM Viewer是一款专为医学影像浏览看图而设计的软件。它具有单个窗口界面&…

全屋智能,始终在等一双“究极手”

《塞尔达传说:王国之泪》是今年迄今为止最火爆的游戏,也是全球科技爱好者在这个5月里共同关注的热门话题。 游戏中,有一个广大玩家津津乐道的新功能,是主角林克具备了一种名为“究极手”的能力。它可以把游戏里的各种各样的物品组…

卷起来!Dr. LLaMA:通过生成数据增强改进特定领域 QA 中的小型语言模型,重点关注医学问答任务...

大家好,最近突然发现了一篇在专门应用于医学领域的LLaMA,名为Dr.LLaMA(太卷了太卷了),就此来分享下该语言模型的构建方法和最终的性能情况。 论文:Dr. LLaMA: Improving Small Language Models in Domain-S…

晶能转债,正元转02上市价格预测

晶能转债 基本信息 转债名称:晶能转债,评级:AA,发行规模:100.0亿元。 正股名称:晶科能源,今日收盘价:12.19元,转股价格:13.79元。 当前转股价值 转债面值 / …

word怎么转换pdf?提供几个思路

在现代互联网时代,我们经常需要将文档转换为PDF格式,以便于共享和打印。虽然Word文件是最常见的文档格式之一,但是许多人不知道如何将其转换为PDF格式。在本文中,我们将介绍如何使用不同的方法将Word文档转换为PDF格式。 使用第三…

Flutter实现PopupMenu(弹出设置菜单)

PopupMenuButton简介 PopupMenuButton是一个用于创建弹出菜单的小部件。它通常与IconButton或其他触发菜单显示的小部件一起使用。当用户点击触发按钮时,PopupMenuButton会在屏幕上方或下方弹出一个菜单,显示一组选项供用户选择。 PopupMenuButton常用…

测试的缺陷密度如何减少

测试的缺陷密度如何减少 随着软件开发的不断进步,测试已经成为一个非常重要的环节。测试的目的是发现空间中的缺陷,以确保软件的质量和稳定性。然而,缺陷密度的高低是影响测试效果的重要因素之一。高缺陷密度意味着测试人员需要更多的时间和精…

在 Ubuntu 22.04 上安装 KubeSphere 实战教程

作者:老 Z,中电信数智科技有限公司山东分公司运维架构师,云原生爱好者,目前专注于云原生运维,云原生领域技术栈涉及 Kubernetes、KubeSphere、DevOps、OpenStack、Ansible 等。 前言 导图 知识点 定级:入…

JavaScript中eval和with语句如何影响作用域链:探索深度知识

前言 系列首发于公众号『前端进阶圈』,若不想错过更多精彩内容,请“星标”一下,敬请关注公众号最新消息。 JavaScript中eval和with语句如何影响作用域链:探索深度知识 前言 在上篇文章中,我们介绍了深度剖析了作用域…

maxwell小白入门

执行同步binlog数据命令路径 maxwell安装目录下执行启动命令增量同步命令: ./bin/maxwell --config ./conf/meituan(文件目录)/具体配置文件名.properties --daemon采集历史数据 ./bin/maxwell-bootstrap --config ./conf/meituan(文件目录)/具体配置文件名.properties --da…

javaIO流之缓冲流

目录 简介1、字节缓冲流1.1构造方法1.2缓冲流的高效1.3为什么字节缓冲流会这么快?1.4byte & 0xFF 2、字符缓冲流2.1构造方法2.2字符缓冲流特有方法 3、练习 简介 Java 的缓冲流是对字节流和字符流的一种封装,通过在内存中开辟缓冲区来提高 I/O 操作…

Kotlin DSL 现已成为全新 Gradle 构建的默认设置

作者 / Kotlin 产品经理 James Ward、开发者关系工程师 Boris Farber 四年来,Android 一直贯彻 "Kotlin 优先" 的原则,许多 Android 开发者已经做出了改变,陆续推出了效率更高、性能更稳定的应用。然而,尽管 Kotlin (bu…

2023—Unity打包Pico4(3)全流程(Pico插件)

一、项目选择了2021.3.0版本的URP,把项目Build成Android 二、打开Project Setting→ 安装最下面的XR Plugin Management 安装完成后的界面,此时还没有Pico选项出现 三、我们需要在该网站下载Pico的SDK包 picoxr/VRTK-Support (github.com) 解压该文件到…

理解搜索引擎优化

我们需要了解搜索引擎如何对网站进行排名,并优化我们的网站以便于搜索引擎的抓取,这被称为SEO(搜索引擎优化)。 搜索引擎的工作分为三个阶段: •爬虫读取页面内容(HTML代码)并跟随超链接读取更多…

VR数字乡村:打造乡村振兴新通道,让乡村“走出去”

VR数字乡村是基于VR全景技术来振兴农村经济,并改善农村生活的一种发展模式。在建设数字化乡村的背景下,VR全景技术在改造升级农村农业、养殖管理、设备生产等多个方面都有积极的作用。 乡村振兴的难题就在于如何走出去,如何宣传自身&#xff…

聚观早报 |腾讯Q1营收重回两位数增长;特斯拉向印度政府提议建厂

今日要闻:腾讯Q1营收重回两位数增长;传特斯拉向印度政府提议建厂;ChatGPT创始人呼吁加强对AI监管;笑果被罚款1335万;药明康德联合创始人赵宁去世 腾讯Q1营收重回两位数增长 5 月 17 日,腾讯控股发布 2023 …

代理、正向代理与反向代理

一、代理 1.1 什么是代理 代理也被叫做网络代理,是一种比较特殊的网络服务,允许一个终端(通常指客户端)通过这个服务与另一个终端(通常指服务器端)进行非直接的连接。例如:一些网关、路由器等…

C语言递归算法实现经典例题

一.递归 1.什么是递归 递归是一种编程技术,它通过在函数内部反复调用自身来解决问题。当一个程序调用自己时,这就称为递归调用。递归可以有助于简化某些算法的实现和理解。在递归过程中,每个调用都会将一些数据保存在栈上,直到递…

【HISI IC萌新虚拟项目】Package Process Unit模块整体方案·PART1

1.背景 网络中包是个重要概念,很多信息在网络中以包的形式传输。而传输介质容易受到外界环境干扰导致传输错误,因此需要在传输过程中进行数据校验、过滤等包处理。包处理和包转发是信息传输的重要处理方式,本芯片实现简单的包处理和包转发机制。 包处理过程中需要用到缓存…

神经网络:Zero2Hero 1 - Simple Language Model

Zero → \to → Hero : 1 实现了一个字符级中文语言模型,数据采用的是开源中文姓名数据集中的一部分,主要内容如下: 字符的预处理 统计频次计算字符对频次矩阵 实现一个简单的先验概率模型 从训练数据中计算字符的先验概率根据先验概率通过…