美文网首页人工智能
为YOLOv5搭建COCO数据集训练、验证和测试环境

为YOLOv5搭建COCO数据集训练、验证和测试环境

作者: LabVIEW_Python | 来源:发表于2022-03-29 17:50 被阅读0次

    问题:在使用Python train.py训练YOLOv5时,2个多小时没有动静,原因是数据集下载解压和加载。

    2个小时没有动静
    解决方案:手动下载COCO数据集,并按照YOLOv5训练、验证和测试程序的数据存储路径要求解压COCO数据集。

    相比于使用YOLOv5提供的download函数(from utils.general import download), 迅雷下载速度相当令人满意,资源也多,猜测大家都遇到类似问题,在手动下载。


    手动下载速度

    COCO数据集介绍。COCO全称是Microsoft Common Objects in Context,起源于微软于2014年出资标注的Microsoft COCO数据集;当在ImageNet竞赛停办后,COCO竞赛就成为是当前目标识别、检测等领域的一个最权威、最重要的标杆,也是目前该领域在国际上唯一能汇集Google、微软、Facebook以及国内外众多顶尖院校和优秀创新企业共同参与的大赛。YOLOv5算法采用的数据集就是COCO数据集

    COCO数据集有多个,应该选择哪个呢?根据官方的信息,应该选择2017 Train/Val/Test

    选择COCO2017

    2017 COCO数据集的特点

    名字 描述 下载链接
    train2017.zip 19G, 118k images http://images.cocodataset.org/zips/train2017.zip
    val2017.zip 1G, 5k images http://images.cocodataset.org/zips/val2017.zip
    test2017.zip 7G, 41k images http://images.cocodataset.org/zips/test2017.zip
    按照表格中的链接,手动下载图片数据 手动下载train2017.zip、val2017.zip和test2017.zip

    下载后,依据https://github.com/cocodataset/cocoapi 的要求,将图片解压到coco/images/,如下图所示。

    下载并按路径要求解压图片

    接着下载标注文件annotations_trainval2017.zip,并按cocoapi 的要求,将标注文件解压到coco/annotations/

    下载并按路径要求解压标注
    其中用于目标检测的是:instances_val2017.json和instances_train2017.json

    COCO数据集标注文件详解:

    “info”和“licenses”键值:说明数据集信息,与训练无关
    “categories"表示类别 “images"表示图像文件信息 “annotations"表示标注信息 一个完整的annotation信息

    YOLOv5把官方的json格式的标注文件解析成为txt文件,请从https://ultralytics.com/assets/coco2017val.zip下载,然后解压到../datasets文件夹

    上述数据都下载解压到指定文件夹后,就可以开始在COCO数据集上跑YOLOv5的验证、测试和训练了。

    运行验证功能val.py

    验证(Validation)通常在完成模型训练后,用于测试模型的精度。

    训练数据集和验证数据集都是有标注的,需要注意的是:YOLOv5把官方JSON标注转换成了YOLO(darknet)标注格式,所以需要下载:'https://ultralytics.com/assets/coco2017labels.zip',然后解压到../datasets文件夹下

    YOLO(darknet)标注格式

    在YOLOv5文件下,使用命令

    python val.py --weights yolov5x.pt --data coco.yaml --img 640 --iou 0.65 --half --batch-size 8

    运行结果 val.py运行结果

    注意:coco 里面大概有1%的图是无目标的,所以会提示有48missing

    运行测试功能test.py

    python val.py --weights yolov5x.pt --data coco.yaml --img 640 --iou 0.65 --half --task test --batch-size 8

    test运行结果

    根据COCO Detection Evaluation规定,获得的结果文件要以.zip形式提交到https://competitions.codalab.org/competitions/20794,从Evaluation server上获得判断结果

    Evaluation server的评估结果

    运行训练功能train.py

    首先安装wandb, 参考:https://wandb.ai/home,获得API key,完成注册

    然后运行:

    !python train.py --img 640 --batch-size 16 --epochs 3 --data coco.yaml --weights yolov5s.pt --optimizer Adam --workers 6

    --workers 数量设置为与CPU物理核数一致
    注意:若使用--cache, 计算机内存小于128G,会报错

    内存不够 另外,使用机械硬盘HDD来训练YOLOv5,在Scanning这步,也是非常耗费时间的 机械硬盘速度太慢!!!
    YOLOv5 train.py训练成功 Batch_Size=16的训练时间 batch-size=32,启动训练 batch-size=32,训练时间 batch-size=48,训练时间 Batch Size=64, 报错:CUDA out of memory

    另外,glenn-jocher也给出了训练结果

    YOLOv5各版本训练时间比较

    相关文章

      网友评论

        本文标题:为YOLOv5搭建COCO数据集训练、验证和测试环境

        本文链接:https://www.haomeiwen.com/subject/hdevjrtx.html