zoukankan      html  css  js  c++  java
  • YOLOv3测试

      昨天配置了YOLOv3的环境,今天用官方文档内的coco128数据集跑一下:

      本次YOLOv3的使用基本上跟调用api一样,就是把数据集格式处理好后使用大佬们写好的py文件,本人实力有限,实在是看不太懂源码。

       YOLOv3运行所使用的数据集是有严格的格式要求的,具体可以参考官方文档(有其他版本的YOLOv3实现,这里仅展示我使用的ultralytics/yolov3):

       以这张图为例,对应图片的txt文件内要有五个参数:类数(从0开始计,第一类为0,第二类为1...),X_center,Y_center(图片中心的XY坐标),Width,Height(宽高)。

      附上coco128的数据集格式对比:

    首先是coco128目录下,images和labels子文件夹,一个存放图片,一个存放标签

     两个文件夹下存放的.jpg文件和.txt文件名字要对应

     txt文件内就是刚才说的格式:

      明白数据集结构之后,再回到代码中:

     这三个文件是我们需要使用的,train.py是训练,test.py是测试,detect.py是用模型预测。图中没有画框的yolov3.pt就是我们训练后的模型文件,这个是官方源码中自带的,我们训练后的模型文件并不在这儿。

     这个地方改成自己的yaml文件(原来是coco.yaml)

    首次运行可能会给你报错:

    OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.

    这个时候在train.py开头加上这句:

     官方文档中给的运行示例都是用命令行实现的,我这里也不用pycharm跑了,打开Anaconda Powershell Prompt:

    切换到这个项目的目录下之后,运行代码:

    python train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov3.pt

     这里报错,大致意思就是我的显存不够(6G),带不动,现在还没租服务器,也没法换电脑,那就改运行参数:

    python train.py --img 320 --batch 8 --epochs 5 --data coco128.yaml --weights yolov3.pt

    img和batch各砍掉一半:

     运行成功,最后这段告诉了我们模型存储的位置:runs rainexp4weights,存了last.pt和best.pt,runs文件在yolov3这个项目里,exp4是因为我之前已经训练了三次模型:

     我们从网上下载一个图,使用训练好的模型做一下预测吧,coco128数据集有80个类,我们选择“斑马”类来预测一下:

    python detect.py --source data/images --weights yolov3.pt --conf 0.25

    source后写下图片地址,weights后写使用模型的地址,这里注意模型地址是相对地址,它以yolov3这个项目的地址为起点,所以直接从runs开始写,conf设置权重

     运行后的结果:

     图像:

       以上就是YOLOv3的coco128数据集测试。

  • 相关阅读:
    计算机网络 实验之 面向连接和无连接的套接字到底有什么区别?
    计算机网络 实验之 Internet 套接字
    计算机网络 实验之 socket是什么?套接字是什么?
    PepperLa's Boast(单调队列优化二维dp)
    理想的正方形(单调队列在二维的应用)
    移相器以及相控阵雷达移相器位数的选择
    盲速和频闪——雷达
    多普勒效应----雷达
    线性调频(LFM)脉冲压缩-----------雷达
    雷达----脉冲压缩
  • 原文地址:https://www.cnblogs.com/20183711PYD/p/14706131.html
Copyright © 2011-2022 走看看