在训练自己的数据集的时候,出现corrupt JPEG restored and saved的问题
在网上查了一下原因
发现是直接将png图片扩展名修改成jpg,造成图片失真问题
解决: 使用OpenCV模块将图片读出再写入,具体代码如下
import os
import cv2
if __name__ == '__main__':
dataDir = r"E:\User\Desktop\ultralytics-main-2\myImage\oldimage"
saveDir = r"E:\User\Desktop\ultralytics-main-2\myImage\images"
# 创建目标文件
if not os.path.exists(saveDir):
os.makedirs(saveDir)
# 遍历源文件夹内的所有文件和文件夹
for pic in os.listdir(dataDir):
# 找出每个文件的完整路径
old_path = os.path.join(dataDir, pic)
# OpenCV的imread读取图片。
new_img = cv2.imread(old_path)
# 图片在新文件夹中的完整路径
new_path = os.path.join(saveDir, pic)
# 将图片保存到新路径
cv2.imwrite(new_path, new_img) #
print("图片转换成功!")
下面是对代码进行更改
1.将代码放到数据集路径下,创建一个新的文件transform.py用于存放代码
2.在路径下建立一个文件夹oldimage,将之前数据集image里的图片转移到里面
3.建立运行transform.py文件,将oldimag文件里的图片放到image里面
之后对数据集进行相应操作,运行代码,可以看到warning已经消失了
具体解决步骤
【yolov8 warning问题解决】 https://www.bilibili.com/video/BV14c3CeHEMb/?share_source=copy_web&vd_source=39c665a82c475df6c24bc91769b4d713