Yolov5在训练模型时产生警告train: WARNING XXXX/XX.JPG:corrupt JPEG restored and saved

        最近在用YOLOv5跑一个图像检测的项目,在训练模型时出现以下警告内容:

train: WARNING C:\Users\ADMIN\Desktop\deeplearning\yolov5\data\images\train\0000234.jpg: corrupt JPEG restored and saved

        实际上该警告并不影响训练,因为我发现所有的图片还是正常被读取了的: 

train: Scanning 'C:\Users\ADMIN\Desktop\deeplearning\yolov5\data\labels\train.cache' images and labels... 450 found, 0 missing, 0 empty, 0 corrupted: 100%|██████████| 450/450 [00:00<?, ?it/s]

        但是有这么一大堆警告看着就是不舒服,为了不影响模型训练效果,因此想办法试着去解决掉这些警告。

        在进行资料查找之后发现了问题的关键,在模型训练时,他读取到的图片数据不符合图像原本所包含的数据,也就是出现了数据的丢失因此会弹出警告“corrupt JPEG restored and saved”。

        原因:这很多时候是因为我们下载过图像之后为了直接方便读取数据而简单地将文件后缀直接重命名来更改格式,比如将.png文件直接修改为.jpg文件,这样可能就会导致图像的失真,即代码警告中所说的“corrupt”。

Windows系统关于直接修改后缀的警告

        解决方式: 在读取图片时用openCV对图像数据进行读取,将原始的图片数据重组复现到新路径下,接着用新路径下的图片去进行模型训练,实践发现警告内容消失。

        具体操作代码:

import os
import cv2

dataDir = "pics/"    # 原始图像所在的路径
saveDir = "images/"  # 新图像需保存到的路径
if not os.path.exists(saveDir):
    os.makedirs(saveDir)

for one_pic in os.listdir(dataDir):
    one_path = dataDir + one_pic
    one_img = cv2.imread(one_path)
    new_path = saveDir + one_pic
    cv2.imwrite(new_path, one_img)

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值