OSError: image file is truncated (71 bytes not processed)

大型数据集含损坏图OSError: image file is truncated和PIL.UnidentifiedImageError: cannot identify image file解决方案 在训练深度学习网络模型时,所用大规模图像数据集(如万级、十万级、百万级等等)中包含有损毁或损坏的图像。在使用大型数据集包含损坏图片时,报错OSError: image file is truncated 和 PIL.UnidentifiedImageError: cannot identify image file的解决方案 阅读详情

在加载训练图像数据,准备训练模型的时候,报错如下:

OSError: image file is truncated (71 bytes not processed) 

搜索查了一下,有两种原因,一种说是图像太大,另一种说是图像不完整。找到的解决方式为如下:

from PIL import ImageFile

ImageFile.LOAD_TRUNCATED_IMAGES = True

这么设置,确实可以了,但是对于训练集中有多少有问题的图像,不清楚,而且这些图像如果比例太大,对训练效果会不会产生影响也不清楚。

所以还是想先确认一下,到底这种类型的图像有多少.

报错位置信息如下:

for i, (images, target) in enumerate(train_loader):

具体内部错误如下:

File "/opt/anaconda3/envs/yolov5/lib/python3.6/site-packages/PIL/ImageFile.py", line 260, in load
    "image file is truncated "
OSError: image file is truncated (34 bytes not processed)

所以写了一个测试脚本,就是对训练路径下面的所有图像都用pillow中的Image读取一下,看看哪个图像报错,结果遍历完图像发现一个报错的也没有,这个地方有些疑问。在网上查的时候,看到有人使用keras.preprocessing.image.load_img()找到了出问题的图像,所以打算试一下,结果安装虚拟环境下载需要好久,就先让它下载着,在另外一个环境中使用OpenCV进行读取测试一下,在imread的过程中,出现了几条Premature end of JPEG file提示,总共有三张图像,还好不多,看了下这三张图像确实显示不完整,就是图像下面的一部分是灰色的,看着就像是没有下载完。这样只要剔除这三张有问题的图像就可以了。

但在查询torchvision.datasets.ImageFolder的时候,发现其中有一个参数可以对加载的图像进行判断,is_valid_file:A function that takes path of an Image file and check if the file is a valid file (used to check of corrupt files)

def is_valid_jpg(jpg_file):      
    """判断JPG文件下载是否完整"""      
    if jpg_file.split('.')[-1].lower() == 'jpg':          
        with open(jpg_file, 'rb') as f:              
            f.seek(-2, 2)              
            return f.read() == '\xff\xd9'      
    else:          
        return True

通过这种方式就可以对训练数据集中出错的图像进行判断,剔除不满足要求的图像。

mmdetection 训练时 OSError: image file is truncated (** bytes not processed) 问题解决 使用 mmdetection 框架进行 swin transformer 模型训练时,训练到一定的步骤会报错“OSError: image file is truncated (** bytes not processed)”且训练中断和进程退出。这里有一个修复思路:https://blog.youkuaiyun.com/qq_34097715/article/details/109646082。如果增加配置:color_type=‘unchanged’,pillow 尝试用 numpy 读取图片,依然会报错。 阅读详情

相关推荐

解决批量图像处理过程中:OSError: image file is truncated

1:问题描述: 在进行图像处理过程中,批量读取图像进行处理的时候,遇到中间某个图像损坏,导致处理无法进行下去。并伴随着OSError: image file is truncated的异常。 字面自已,图像被截断,损坏,无法完成正常的读取。 2:问题分析 错误发生的代码位于python的site-package文件夹内,代码文件为ImageFile.py。具体代码: import io import struct import sys import warnings from ...

sunny 9386

image file is truncated 解决方法

问题描述 在使用PIL处理图像时: from PIL import Image im=Image.open("pic.jpg") r,g,b=im.split() pic_bgr=Image.merge('RGB',(b,g,r)) pic_bgr.save('pic_bgr.jpg') 可能会遇到image file is truncated报错 解决方法 添加如下2句代码:...

Yl 3008

Python程序中PIL Image "image file is truncated"问题分析与解决

Python程序中PIL Image "image file is truncated"问题分析与解决解决方案错误原因这就解决了?继续探索truncated image再试一次总结 解决方案 第一种、删除截断图片 第二种、添加两行代码,如下 from PIL import ImageFile ImageFile.LOAD_TRUNCATED_IMAGES = True 错误原因 首先看一下错误信...

楚小菜的博客 2万+

OSError: image file is truncated (7 bytes not processed)报错

OSError: image file is truncated (7 bytes not processed)报错

糖炒Li儿的博客 2165

芯片设计流程中的def文件

在实际的DEF文件中,每个部分都包含了与实际设计相关的详细信息,这个模板只展示了每个部分的基本结构。在实际应用中,DEF文件通常由EDA(电子设计自动化)工具在完成布局(Placement)和布线(Routing)步骤后自动生成,在集成电路设计中,DEF(Design Exchange Format)文件的模板具体内容会依设计的复杂性和特定需求而变化。简而言之,LEF文件提供了单元的物理特性和规则,而DEF文件使用这些规则来确定单元。)文件描述了特定设计中所有物理元素的精确放置和连线信息。

qq_36045093的博客 4860

(3万字深度解析)Kaggle《房价预测:高级回归技巧》详解复现攻略

在这篇教程式文章中,我们从零开始完成了 Kaggle《房价预测:高级回归技巧》比赛的复现工作,涵盖了数据预处理、特征工程、模型训练、调优、解释和融合的完整流程。深入理解数据:阅读数据描述,结合常识对每个特征作出合理处理(如缺失值填充’None’表示无此设施 、异常值剔除 等)。对目标和偏态特征进行对数变换,使分布更平滑,从而更好满足模型假设并提升准确度。特征工程:我们创造了总面积、总浴室等新特征,整合信息提高模型可学习性。

qq_38334677的博客 1768

OSError: image file is truncated解决思路及方案。

目录原因为啥会发生这个问题解决1.将无用的数据直接抛掉2.补全数据,继续用 原因 在python使用 PIL 的时候。有时候会因为一些莫名的数据操作使的数据发生一丢丢小问题,比如这个错误OSError: image file is truncated。 我windows打开图片就会这样显示,绿色部分是数据缺失的: 为啥会发生这个问题 任何数据都有自己的基本格式,就拿图片数据而言,归根到底就是一串二进制的数据,那么它就会有自己的格式,比如开头肯定是ff d8(图片按二进制打开) 结尾肯定得是ff d9 加

你悄悄的来到了我的博客 2万+

C#中的Chart控件——当数据源很多时可以显示进度条拉动观察,也可以记录到后台文本详细对照

C#中的Chart控件——当数据源很多时可以显示进度条拉动观察,也可以记录到后台文本详细对照下面进行详细步骤说明,感兴趣的同学可以看一下: 1简单示例(一条线): 2.数据源随着时间不断变化,进度条变化 。多条线: 3.看在整段时期内的数据大体图(消去或出现)进度条: 4.后台将时刻记录变化记录到一个txt文本里以供详细校验: 话不多说上码: using System; using Sys...

帅boy的博客 4308

python-----贴图 和 报错:OSError: image file is truncated (8 bytes not processed)的处理

python-----贴图 和 报错:OSError: image file is truncated (8 bytes not processed)的处理 将一张图片贴到另一张图片上,代码如下: from PIL import Image import os from PIL import ImageFile ImageFile.LO...

小呆丶的博客 6172

手把手教你用Simulink搭建PMSM FOC控制模型(附完整仿真文件下载)

本文手把手教你使用Simulink搭建完整的永磁同步电机(PMSM)磁场定向控制(FOC)仿真模型。内容涵盖从电机与逆变器建模、核心的坐标变换(Clark/Park变换)实现、电流环与速度环PID整定,到SVPWM调制与系统集成调试的全过程,并提供关键参数设置与实用调试技巧,帮助工程师快速掌握FOC的工程实现。

silver的专栏 862

记录思科cisco交换机升级iso步骤

Cisco Nexus 93180交换机版本升级

a635161812的博客 4376

OSError image file is truncated (XX bytes not processed) 报错解决指南

我在训练深度神经网络时遇到了如下报错······此处省略一万字关于这个报错,我在网络上找到了解决方案。美中不足的是大部分文章都是知其然而不知其所以然,写了两行代码草草了事。这是非常不严谨的,对于很多小白来说,直接会懵掉:代码啥意思?该写在哪里?下面我来尝试解决这些问题,希望对大家有帮助。

qq_46396470的博客 2175

OpenClaw人人养虾:配置通义千问(Qwen)

通义千问(Qwen)是阿里云推出的大语言模型系列。OpenClaw 支持通过 Qwen Portal 插件实现 OAuth 免费额度认证,每日可免费使用 2000 次请求,无需绑定支付方式。

王国平的博客 1255

【Bug解决】OSError: image file is truncated (7 bytes not processed)

PyTorch 代码,使用 MS COCO 数据集训练时报错: 报错内容:图像损坏,无法读取,具体就是括号里提示的,7 bytes 无法读取。报错原因:将一张正常的 格式图片用二进制打开,遵循的格式规则是图片开头为 ,图片结尾为 ,如果图片数据遭到损坏,通常是尾部的 不见了。最好是能将损坏的数据修复,针对 MS COCO 的训练数据, 这张图片已经损坏了,在https://msvocds.blob.core.windows.net/images/262993_z.jpg 可以下载到正常的图片,替换掉损坏

学习 & 分享 ~ 5680

吃透工业通信:C#工控机实现Modbus、OPC UA、Profinet、EtherCAT协议全适配

本文介绍了基于C#的工业通信协议全适配方案,采用分层架构设计实现Modbus、OPC UA、Profinet和EtherCAT四种主流协议的统一管理。核心包括:1)三层架构(应用层、抽象层、协议层)降低耦合;2)定义统一通信接口IIndustrialCommunication;3)工厂模式创建不同协议实例;4)以Modbus TCP为例展示具体实现。该方案经过实际项目验证,可简化多协议设备管理,提升工业自动化系统的开发效率。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 721

零基础教你学RDMA驱动开发--第8篇:队列对(QP)、完成队列(CQ)与工作请求(WR)机制剖析

本文深入剖析了RDMA(远程直接内存访问)中的核心机制:队列对(QP)、完成队列(CQ)和工作请求(WR)。QP作为通信端点包含发送队列(SQ)和接收队列(RQ);WR是用户提交的操作指令,转换为工作队列元素(WQE)后由网卡异步执行;CQ则提供完成通知机制。文章详细介绍了三者的协作原理,包括QP状态机、WR提交方式、CQ轮询机制,以及关键的信号控制技术(Signaled Mode)来优化性能。同时对比了SEND/RECV和RDMA WRITE两种模式的差异,提供了调试技巧和最佳实践。这些机制共同构成了RD

amy_mhd的博客 156

模型训练出现 OSError: image file is truncated (28 bytes not processed)

在训练模型的时候,我们有可能会出现 OSError: image file is truncated (28 bytes not processed)这样的错误, 造成这种错误的原因是数据集的问题,出现了数据缺失 eg: 出现这个问题呢,有两种方法: 跳过错误,抛弃本张图片,继续下面的训练 对图像进行补全 这里我们使用最简单的方法—抛弃数据,继续训练 我们在代码的最开头添加如下代码: 最开头 最开头 最开头 因为它最保险 from PIL import ImageFile ImageFile.LOA

qq_44936246的博客 1707

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

OSError: image file is truncated (40 bytes not processed)解决方法

https://www.cnblogs.com/hongfei/p/4436767.html

qq_40971025的博客 2019

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

OSError: image file is truncated (4 bytes not processed)

项目场景: labeme打开图像报OSError: image file is truncated (4 bytes not processed)错误: 例如:使用labelme标注文件时打开图片闪退,之后shell界面报OSError: image file is truncated (4 bytes not processed) 问题描述: 1.我们发现这个问题是图片格式出问题了,用opencv打开图片查看图片格式,有问题的图片格式是object,没有问题的图片格式是uint8: 2.直接对有问题的图

weixin_42578627的博客 1392

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Image.open()报错,提示 image file is truncated (XX bytes not processed)

论文阅读备份

learning notes 1万+

OSError: image file is truncated (X bytes not processed)错误处理

训练Yolo v3时遇到以下错误: OSError: image file is truncated (X bytes not processed) 原因: 图片太大超过限制,PIL处理不了,必须把图片删除一部分,导致报error。 解决方法: 错误信息发生的文件开头加上: from PIL import ImageFile ImageFile.LOAD_TRUNCATED_IMAGES = True 设为true,会导致你加载的图片少掉一部分。 参考链接:https://

hzs3237259的专栏 5084

OSError: image file is truncated

python

m0_57201352的博客 698

OSError: image file is truncated (28 bytes not processed)

解决办法: 在代码中添加两行 from PIL import ImageFile ImageFile.LOAD_TRUNCATED_IMAGES = True 转载于:https://www.cnblogs.com/wanghui-garcia/p/10796944.html

weixin_34130269的博客 3797

Python PIL Image “OSError: image file is truncated (41 bytes not processed)“问题解决

前言: 由于,最近项目所需,要一个pytorch版本的模型,用在服务器上,在调试pytorch1.2训练yolov4训练自己的数据报错,后续也将一一上传这个yolov4的代码,并讲解一下怎么训练自己的数据,现在在优化代码,优化之后,将上传分享给大家! 问题: OSError: image file is truncated (41 bytes not processed) 解决方法: 在主文件里设置: from PIL import ImageFile ImageFile.LOAD_TRUNCATED_IM

荪荪的博客 1865

OSError: image file is truncated (13 bytes not processed)

解决办法: 添加: from PIL import ImageFile ImageFile.LOAD_TRUNCATED_IMAGES = True 就可以解决了

sunny 853

OSError: image file is truncated (1 bytes not processed)

OSError: image file is truncated (1 bytes not processed) 在做深度学习图像分类任务时,偶然发现过这个错误,之前采取网上通用的增加 from PIL import ImageFile ImageFile.LOAD_TRUNCATED_IMAGES = True 的方式可以进行错误屏蔽。但这次在做模型测试时添加了这段代码依然无法解决这个问题。 经过调试发现可以尝试将代码中的 Dataloader模块里 num_workers设置进行修改,我直接设置为0,

dsnds03的博客 1004
上一篇: unsigned char*格式的bgr转rgb
下一篇: TypeError: __init__() got an unexpected keyword argument ‘is_valid_file‘
GeneralJing
博客等级 码龄15年 17粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值