YoloV8简单使用

这篇具有很好参考价值的文章主要介绍了YoloV8简单使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        我们坐在阳光下,我们转眼间长大,Yolo系列都到V8了,来看看怎么个事。目标检测不能没有Yolo,就像西方不能没有耶路撒冷。这个万能的目标检测框架圈粉无数,经典的三段式改进也是改造出很多论文,可惜我念书时的研究方向不是纯粹的目标检测,所以在做研究的时候没有用到过,但是同学用到的多啊,彼此交流也大概能知道Yolo的架构,这次决定好好学一学这个绝版Yolo。

        先来看看它的自我介绍:

Ultralytics YOLOv8是由Ultralytics开发的YOLO物体检测和图像分割模型的最新版本。YOLOv8是一个尖端的、最先进的(SOTA)模型,它建立在以前YOLO版本的成功基础上,并引入了新的功能和改进,以进一步提升性能和灵活性。

YOLOv8的一个主要特点是其可扩展性。它被设计成一个框架,支持所有以前的YOLO版本,使其很容易在不同的版本之间切换,并比较其性能。这使得YOLOv8成为那些想利用最新的YOLO技术,同时又能使用他们现有的YOLO模型的用户的理想选择。

除了其可扩展性,YOLOv8还包括其他一些创新,使其成为广泛的物体检测和图像分割任务的吸引人的选择。这些创新包括一个新的骨干网络、一个新的无锚检测头和一个新的损失函数。YOLOv8的效率也很高,可以在各种硬件平台上运行,从CPU到GPU。

        我来总结一下吧。第一:可以目标检测、图像分割,是最强的Yolo。第二:做成了框架,可以和前几个版本的Yolo做对比,这个做过科研的都知道咋回事了。第三:框架里有新的细节,创新的骨干、无锚检测头、新损失,效率更高,不过以我的经验来讲,快就要牺牲精度,除非真的有针对性提取信息的创新。 

一、安装使用

1.1 安装

        YoloV8有两种下载方法:pip、git

pip:

pip install ultralytics

        or

git:

git clone https://github.com/ultralytics/ultralytics

cd ultralytics

pip install -e '.[dev]'

        不过我建议直接去github网址下载,这样快一些,下载完成后进入到ultralytics目录下pip install 需要的库:

执行:

 pip install -r requirements.txt -i https://pypi.douban.com/simple/

我加了豆瓣镜像会快一些,别忘了切换到自己的环境下去做这些事,不然白忙活。

1.2 数据处理       

下载自己的数据集,比如测试用的coco8:

https://ultralytics.com/assets/coco8.zip

        在yolov8目录下直接创建datasets文件夹,将coco8解压在下面就能使用,自己的数据集同样的格式就可以:

YoloV8简单使用

        

         其实这种加载文件的细节在dataloader中,修改dataloader中的:​​​​​​v5loader.py,另外可以在v5augmentations.py中加入自己想要的数据增强方法,在里面通过设置概率p来控制数据增强的轻度大小。

YoloV8简单使用

 二、Tasks(使用不同方式训练)

1.1 Detection

        老版Yolo做的都是Detection,也就是传统的目标检测。两个目标:定位位置,识别类别。这两个目标对应着两个检测头,如果我没记错的话,这里并没有最新的YoloV8论文。

YoloV8简单使用

        当你需要识别场景中感兴趣的物体,但又不需要知道物体的确切位置或其确切形状时,物体检测Detection方法是一个不错的选择。另外,YoloV8仍然将模型的结构定义在了yaml配置文件里。

tips:YOLOv8检测模型没有后缀,是 YOLOv8的默认模型,即 yolov8n.pt,预先在 COCO 上进行了训练。

1.1.1 Train

        训练有两种方式:

        一种是新建了py文件导入模型,另一种是命令启动。

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.yaml")  # build a new model from scratch
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco128.yaml", epochs=100, imgsz=640)

yolo task=detect mode=train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640

        我莫名觉得前者更好一点,哈哈哈哈。

        具体参数如何配置以及配置后的影响请看下面链接:

Configuration - Ultralytics YOLOv8 Docs

1.1.2 Val

        仍是两种方式:

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
results = model.val()  # no arguments needed, dataset and settings remembered
yolo task=detect mode=val model=yolov8n.pt  # val official model
yolo task=detect mode=val model=path/to/best.pt  # val custom model

1.1.3 Predict

        展示效果:

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image

1.1.4 Export(导出)

        导出这个简直太棒了,有开发框架果然还是方便啊。不然都得自己写。以导出onnx格式为例:

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained

# Export the model
model.export(format="onnx")

        看下面这个表格,不要太方便:

YoloV8简单使用

 1.2 Segmentation

        实例分割比目标检测分割更进一步,它涉及识别图像中的单个对象,并将它们与图像的其余部分分割开来。一般来说做实力分割好的网络都是U型,著名的UNet就是如此,因为需要判断每个像素点,所以使用全卷积神经网络,速度也慢很多。Yolo这种轻量的网络做Segmentation应该不如专业的Seger强,希望我被打脸。

YoloV8简单使用

         训练方式类似Detection,不做过多介绍。

1.3 Classification

        图像分类器的输出是一个单类标签和一个置信度评分。当您只需要知道图像属于哪个类,而不需要知道该类的对象位于何处或它们的确切形状时,图像分类非常有用。

        Classidication是传统的机器学习项目了,一般的卷积神经网络后置一个全联接层在minist数据集上就可以达到98%的准确率,所以对于yoloV8这根本不是问题,问题是谁用这个做calssification啊,难道是我肤浅了?

YoloV8简单使用

         那么至此,基本的介绍就到这。

二、网络结构

        关于网络结构可以参考YoloV5,都是定义在ymal里的参数,然后通过参数去调用模块,这块对模块自定义者完全不友好:

yolov5模型配置yaml文件详解_yolov5 yaml_LaLaLaLaXFF的博客-CSDN博客

        值得注意:Head不仅指检测头,还有关于图像融合的部分比如FPN、PAN等等,不过FPN、PAN也是通过小的组件实现的,所以完全可以通过配置参数组合自己想要的融合机制,也就是FPN的样子。

三、总结

        总之,YoloV8仍然是在YoloV5基础上做改进,下一篇看看如何玩转yaml定义的网络结构,实现自己的创新点。文章来源地址https://www.toymoban.com/news/detail-448022.html

到了这里,关于YoloV8简单使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【保姆级教程】【YOLOv8替换主干网络】【1】使用efficientViT替换YOLOV8主干网络结构

    《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌ 更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍 感谢小伙伴们点赞、关注! 《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】

    2024年02月02日
    浏览(46)
  • 使用yolov8的Dockerfile构建Docker

            因网络原因我先将需要下载的文件下载好存放在yolov8项目的 docker 文件夹中  1、Arial.ttf 下载地址:https://ultralytics.com/assets/Arial.ttf 2、 Arial.Unicode.ttf 下载地址: https://ultralytics.com/assets/Arial.Unicode.ttf 3、yolov8权重文件 下载地址:https://github.com/ultralytics/assets/releases/

    2024年02月04日
    浏览(43)
  • YOLOv8改进:RepBiPAN结构 + DETRHead检测头,为YOLOv8目标检测使用不一样的检测头,用于提升检测精度

    💡 本篇内容 :YOLOv8全新Neck改进:RepBiPAN 结构升级版,为目标检测打造全新融合网络,增强定位信号,对于小目标检测的定位具有重要意义 💡🚀🚀🚀本博客 改进源代码改进 适用于 YOLOv8 按步骤操作运行改进后的代码即可 💡本文改进 Neck部分和DETRHead系列检测头部分 方式

    2024年01月21日
    浏览(66)
  • 【AI】使用vscode编辑查看YOLOv8源码

    官网地址:https://code.visualstudio.com/ 针对ubuntu点击下载deb安装包,默认下载地址如下,下载速度很慢,而且会下载失败,解决方法如下: 将“https://az764295.vo.msecnd.net”改为“https://vscode.cdn.azure.cn”后,下载会很快。 例如,将: 改为 当前(2023-07-20)vscode的版本为1.80.1 1)安装

    2024年02月16日
    浏览(56)
  • 使用YOLOv8训练自己的【目标检测】数据集

    随着深度学习技术在计算机视觉领域的广泛应用,行人检测和车辆检测等任务已成为热门研究领域。然而,实际应用中,可用的预训练模型可能并不适用于所有应用场景。 例如,虽然预先训练的模型可以检测出行人,但它无法区分“好人”和“坏人”,因为它没有接受相关的

    2024年04月10日
    浏览(51)
  • YOLOv8测试3:在Python中将YOLOv8模型封装成API接口使用(上传测试图片并返回识别结果,附测试代码)

    记录时间 [2024-4-4] 本文讲述的是在 Windows 系统( Python + PyTorch + Conda + cpu )中 YOLOv8 模型的简单应用。这里附带上 YOLOv8 官方文档,里面记载了详细的使用方法,如果觉得看文档比较麻烦的话,可以直接看文章,需要用到的部分已经在文章中进行了摘录。 经过了前几次的尝试,

    2024年04月26日
    浏览(32)
  • 使用 YOLOv8 和 DeepSORT 进行对象检测和跟踪

    文末附源代码的免费下载链接 在本教程中,您将学习如何使用 YOLOv8 检测对象以及如何使用 DeepSORT 跟踪视频中的这些对象。 目录 安装 Python 包 项目结构 使用 YOLOv8 和 OpenCV 进行实时目标检测 使用 DeepSORT 和 OpenCV 进行实时对象跟踪/

    2024年02月12日
    浏览(44)
  • Yolov8_使用自定义数据集训练模型1

    前面几篇文章介绍了如何搭建Yolov8环境、使用默认的模型训练和推理图片及视频的效果、并使用GPU版本的torch加速推理、导出.engine格式的模型进一步利用GPU加速,本篇介绍如何自定义数据集,这样就可以训练出识别特定物体的模型。 《Yolov8_使用自定义数据集训练模型1》——

    2024年01月19日
    浏览(44)
  • 基于.Net6使用YoloV8的分割模型

    在目标检测一文中,我们学习了如何处理Onnx模型,并的到目标检测结果,在此基础上,本文实现基于.Net平台的实例分割任务。 执行YoloV8的分割任务后可以得到分割.pt模型。由于Python基本不用于工业软件的部署,最终还是希望能在.Net平台使用训练好的模型进行预测。我们可以

    2024年02月09日
    浏览(34)
  • 使用yolov8的dockerfile在ubuntu上部署环境

    首先进入doceker文件夹 cd yolov8/ultralytics-main/docker 执行命令 docker build -t yolov8:v1 . yolov8:v1(镜像名称:镜像标签,可以自己定义) 注意点: (1)原docekerfile中 ADD https://ultralytics.com/assets/Arial.ttf https://ultralytics.com/assets/Arial.Unicode.ttf /root/.config/Ultralytics/ 下载很慢,可以在外部下载好

    2024年02月10日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包