【深度学习】yolov 图片训练的时候的遇到的warning: corrupt JPEG restored and saved

报错原因

是图片在dataset.py 走验证时报的错误。


if im.format.lower() in ('jpg', 'jpeg'):
            with open(im_file, 'rb') as f:
                f.seek(-2, 2)
                if f.read() != b'\xff\xd9':  # corrupt JPEG
                    ImageOps.exif_transpose(Image.open(im_file)).save(im_file, 'JPEG', subsampling=0, quality=100)
                    msg = f'{prefix}WARNING: {im_file}: corrupt JPEG restored and saved'

ref:https://huggingface.co/spaces/nakamura196/yolov5-ndl-layout/blob/447b47ec77e6ea46fef0abba2594b11de7874676/ultralytics/yolov5/utils/datasets.py

【深度学习】yolov 图片训练的时候的遇到的warning: corrupt JPEG restored and saved_第1张图片
f.seek(-2, 2) 是2是从尾部开始,offset=2个,也就是找到文件结尾的最后两个字符。
在Python中,f.seek(offset, from_what)是一个文件对象的方法,用于在文件中移动读取/写入位置。其中,offset表示要移动的字节偏移量,from_what表示起始位置。
具体地,from_what可以取以下三个值:
0:从文件开头开始计算偏移量(默认值)。
1:从当前位置开始计算偏移量。
2:从文件末尾开始计算偏移量。
在给定的代码示例中,f.seek(-2, 2)表示从文件末尾开始向前移动2个字节的位置。也就是说,读取/写入操作将在文件的倒数第二个字节处进行。

ref:https://github.com/ultralytics/yolov5/issues/916

这里也有人提bug了,但作者说是告诉的info不是个bug,他说的也对,又不是人家的问题造成的。

那么,其实就需要我们在数据集处理的时候,提早发现,并修复它。

如何检查和修复

--------待定--------------------------------

你可能感兴趣的:(深度学习,pytorch,深度学习,人工智能)