YOLOP 训练+测试+模型评估


前言

本文将详细介绍YOLOP 训练+测试+模型评估的过程和个人遇到的所有报错。

一、环境搭建

必要环境:Windows10+python3.7+CUDA10.1+CUDNN7.6.5

  1. 创建yolop虚拟环境

    conda create -n yolo_p python=3.7
    
  2. 下载pytorch (pytorch版本>=1.7)

    conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=10.1 -c pytorch
    
  3. 下载YOLOP源码
    地址:https://github.com/hustvl/YOLOP

  4. 安装所需要的依赖包

    pip install -r requirements.txt
    

二、测试

  1. 运行 python tools/demo.py --source ./inference/videos/1.mp4
    测试图片:–source 图片路径 (或存放图片的文件夹路径)
    测试视频:–source 视频路径 (或存放视频的文件夹路径)
    相机实时:–source 0
    默认用cpu测试效果,如果想改成gpu,修改demo.py 198行如下。
    在这里插入图片描述
    效果如下:
    在这里插入图片描述
    在这里插入图片描述

三、训练

3.1 下载数据集

  1. 下载检测任务图片:
    https://bdd-data.berkeley.edu/portal.html#download

  2. 下载检测任务标签:
    https://drive.google.com/file/d/1Ge-R8NTxG1eqd4zbryFo-1Uonuh0Nxyl/view

  3. 下载可行驶区域分割任务标签:
    https://drive.google.com/file/d/1xy_DhUZRHR8yrZG3OwTQAHhYTnXn7URv/view

  4. 下载车道线分割任务标签:
    https://drive.google.com/file/d/1lDNTPIQj_YLNZVkksKM25CvCHuquJ8AP/view

    数据集结构
    在这里插入图片描述
    这里为了方便我自己划分了部分数据集进行训练
    下载地址:
    链接:https://pan.baidu.com/s/1XixhZtU3nNfxKLvV3RZqGQ
    提取码:ed8n

3.2 在./lib/config/default.py中修改相关参数

  1. 修改第九行_C.WORKERS = 0
    在这里插入图片描述

  2. 修改96行,121行_C.TRAIN.BATCH_SIZE_PER_GPU 为合适大小(博主电脑比较菜这里填的1)
    在这里插入图片描述

  3. 根据注释修改53-56行路径
    在这里插入图片描述

  4. 运行python tools/train.py 开始训练
    在这里插入图片描述

四、模型评估

  1. 运行 python tools/test.py --weights weights/End-to-end.pth
    在这里插入图片描述

五、可能遇到的报错

5.1 测试视频报错 IndexError: boolean index did not match indexed array along dimension 0; dimension is 1536 but corresponding boolean dimension is 1440

解决方案:

  1. 在tools/demo.py 128行前加入如下代码

    img_det=cv2.resize(img_det,(da_seg_mask.shape[1],da_seg_mask.shape[0]) ,interpolation=cv2.INTER_AREA)
    

    在这里插入图片描述

  2. 删除./lib/utils/plot.py 第60行的resize
    在这里插入图片描述

  3. 在demo.py 148行下加入如下代码,运行demo.py查看效果

    cv2.namedWindow("test", cv2.WINDOW_NORMAL)
    cv2.resizeWindow("test", int(img_det.shape[1] * 0.5), int(img_det.shape[0] * 0.5))
    cv2.imshow("test", img_det)
    cv2.waitKey(30)
    

    在这里插入图片描述
    效果
    在这里插入图片描述

5.2 训练报错 TypeError: can’t pickle generator objects,EOFError: Ran out of input

解决方案:

  1. 修改./lib/config/default.py第九行_C.WORKERS = 0
    在这里插入图片描述

5.3 调小batch_size后仍然RuntimeError: CUDA out of memory.

解决方案

  1. 修改./lib/config/default.py第19行_C.CUDNN.BENCHMARK = False
    在这里插入图片描述

5.4 AttributeError: ‘list’ object has no attribute ‘seek’. You can only torch.load from a file that is seekable. Please pre-load the data into a buffer like io.BytesIO and try to load from it

解决方案

  1. 暴力删除test.py39行的nargs=‘+’
    在这里插入图片描述

总结

困,想睡觉
在这里插入图片描述
有什么问题,欢迎评论区交流!

学习交流群:995760755


  • 51
    点赞
  • 244
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 103
    评论
评论 103
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

[空--白]

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值