首页 > 其他分享 >pytorch下yolov8模型实现目标检测(全网最简洁快速,一眼懂)

pytorch下yolov8模型实现目标检测(全网最简洁快速,一眼懂)

时间:2024-07-15 12:56:58浏览次数:18  
标签:pt 模型 YOLO results yolov8 pytorch 实现目标 device import

最近研究了一个目标检测项目,需要对水稻进行检测,yolov8的模型官网都封装好了,官网地址:Home - Ultralytics YOLO Docs,本文给急需目标检测的同学参考,非常急的那种,废话少说,下面是所有代码:

import os
import torch
from ultralytics import YOLO

os.environ['KMP_DUPLICATE_LIB_OK']='True'
def main():

    device = 'cuda' if torch.cuda.is_available() else 'cpu'
    print(device)

    model = YOLO('yolov8n.pt').to(device)

    model.train(data='safehat.yaml', epochs=100, device=device, workers=0,batch=2)

    model.val(device=device)

if __name__ == '__main__':
    main()

还需要一个yolov8n.pt的模型文件,这个官网可以下载我就不给了,下载后把官网文件中的yolov8n.pt拿出来和代码放到同一文件夹下面就可以了,记得安装ultralytics库,该代码搭配一个配置文件safehat.yaml(修改路径就可以使用,重要的只有那个路径):

train: C:\Users\Desktop\ricedata\train
val: C:\Users\Desktop\ricedata\valid
test: C:\Users\Desktop\ricedata\test

nc: 3
#name: [Hardhat,Mask,NO-Hardhat,NO-Mask,NO-Safety Vest,Person,Safety Cone,Safety Vest,machinery,vehicle]
classes: [rice,animal,other]

最后是数据集的路径格式,他会自动获取符合规范路径下的数据,所以记得写好路径(.cache文件运行后才有):

数据集都是我自己做的,标签名和图片名需要一致,推荐一个制作数据集的网站Newtab (makesense.ai),运行后会自动在目录下生产文件夹,包含训练完的模型和训练过程的数据:

使用模型:

训练完成后会生成runs文件夹,包含两个训练文件夹,在其中一个里面找到best.pt的模型,这就是训练最好的目标检测模型(似乎还有个训练最差的模型)

import matplotlib.pyplot as plt
from ultralytics import YOLO

#加载已经训练好的模型
model = YOLO('runs/detect/train/weights/best.pt')

#选择要测试的图像路径
image_path = 'ricedata/test/images/0292.jpg'

results = model(image_path)
print(type(results))
print(results[0].orig_img)

plt.imshow(results[0].orig_img)
plt.show()
if isinstance(results, list):
    for result in results:
        # 显示检测结果
        result.show()
else:
    # 显示检测结果
   results.show()

下一篇文章我会对模型进行onnx打包,后续部署到安卓app上面

标签:pt,模型,YOLO,results,yolov8,pytorch,实现目标,device,import
From: https://blog.csdn.net/qq_64809150/article/details/140435678

相关文章

  • pytorch的expand函数
    PyTorch中的expand函数用于扩展张量的形状,使其在某些维度上“看起来”像被复制了多次,但实际上它不会复制数据,从而节省内存和计算资源。扩展后的张量共享原始张量的内存空间,因此原始张量和扩展后的张量是同一个数据的视图。以下是torch.expand函数的一些基本用法:1.扩展一维......
  • YOLOv8 with Attention 注意力机制
    本文来源于:YOLOv8-AM:YOLOv8withAttentionMechanismsforPediatricWristFractureDetection代码:github总的结构图,可以看到注意力机制模块被加载在neck部分,在upsample、C2f之后。相比yolov8的模型配置文件,根据以上结构图,在每次upsanple、C2f模块后,添加了注意力机......
  • YOLOv8中根据标签绘制真实框
    这个在写论文的过程中获取展示图片的时侯可能会需要用的。最近也是自己在弄目标检测方面的东西,然后这也是自己碰到的问题,想着能分享一下,希望对有需要的人有所帮助。也欢迎大家来讨论问题、交流心得。importcv2importos#定义输入文件夹和输出文件夹路径input_img_folder......
  • 深度学习第P6周:VGG-16算法-Pytorch实现人脸识别
    >-**......
  • 【深度学习入门篇 ⑤ 】PyTorch网络模型创建
    【......
  • PyTorch 分布式使用方式及代码解析
    一、PyTorch分布式DP与DDP1.1 PyTorch分布式支持数据并行 模型并行​​​​​​1.2 PyTorch分布式调用-DP 1.3 PyTorch分布式调用-DDP 1.4 PyTorch分布式-通信后端 gloo:具有各种原语的集体通信库,用于多机训练。Facebook......
  • PyTorch自学笔记——深度学习基础(1)
    PyTorch自学笔记。学习教程为ZerotoMasteryLearnPyTorchforDeepLearning,对应视频教程为https://www.youtube.com/watch?v=Z_ikDlimN6A概念(Whatisdeeplearning)机器学习(Machinelearning,ML)定义将事物(数据)转化为数字,并找出数字中的模式Machinelearning......
  • yolov8_pytorch目标检测和图像分割深度学习模型
    yolov8论文无模型结构yolov8是一种单阶段目标检测算法,该算法在YOLOV5的基础上添加了一些新的改进思路,使其速度与精度都得到了极大的性能提升。算法原理YOLOv8算法通过将图像划分为不同大小的网格,预测每个网格中的目标类别和边界框,利用特征金字塔结构和自适应的模型缩放......
  • 深度学习第P5周:Pytorch实现运动鞋识别
    >-**......
  • 【Pytorch】Conda环境下载慢换源/删源/恢复默认源
    文章目录背景临时换源永久换源打开conda配置condarc换源执行配置命令行修改源添加源查看源删源恢复默认源使用示范背景随着实验增多,需要分割创建环境的情况时有出现,在此情况下使用condacreate--namexxpython=3.10pytorchtorchvisionpytorch-cuda-cnvidia......