• 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数据集测试。

  • 相关阅读:
    可变参数的宏
    解决Visio复制绘图时虚框变实框的问题
    CSS选择器:伪类(图文详解)
    CSS属性:背景属性(图文详解)
    CSS样式----浮动(图文详解)
    CSS盒模型详解(图文教程)
    CSS样式----CSS样式表的继承性和层叠性(图文详解)
    Android UI组件----AppWidget控件入门详解
    Android UI控件----ExpandableListView的基本用法
    ListView中动态显示和隐藏Header&Footer
  • 原文地址:https://www.cnblogs.com/20183711PYD/p/14706131.html
Copyright © 2020-2023  润新知