栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

UserWarning: Possibly corrupt EXIF data.

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

UserWarning: Possibly corrupt EXIF data.

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录
  • 前言
  • 一、Exif是什么?
  • 二、出现问题警告
  • 三、问题分析
  • 四、解决方法


前言

既然看到了这篇博客,那说明你用的数据集出毛病了,让我猜一猜,用的肯定是SUN397场景数据集吧?什么?不是?那你肯定是从网上爬来的图片,不接受反驳!

一个概念两个警告三个分析四个解决办法丰上!!!


一、Exif是什么?

Exif文件格式与JPEG 文件格式相同,Exif按照JPEG的规格在JPEG中插入一些图像/数字相机的信息数据以及缩略图像,大致就是图片的附属信息,很容易泄露隐私啊!

二、出现问题警告

模型训练到中间突然自己中断了,然后蹦出来警告:

/app/anaconda3/envs/tensorflow/lib/python3.5/site-packages/PIL/TiffImagePlugin.py:763: UserWarning: Possibly corrupt EXIF data.Expecting to read 8 bytes but only got 4. Skipping tag 41486
  " Skipping tag %s" % (size, len(data), tag))

再或者处理掉部分有问题数据后,还有报错:

OSError: cannot identify image file <_io.BufferedReader name='E:SUN397\val\playground\sun_bvtjyvutqdbkcbus.jpg'>
三、问题分析
  • 图片损坏等原因,导致读取不完整;
  • 图片Exif信息与实际不符合;
  • 图片格式问题,PIL或者CV读取不了
四、解决方法
  • 1、简单粗暴型:直接删除数据集图片exif信息

下载piexif包:

pip install piexif -i https://pypi.douban.com/simple/

删掉图片exif信息:

import piexif
img_path = '*******'
piexif.remove(img_path)
  1. 无所畏惧型:无视警告信息

看警告信息其实不是报错,而且会自动skip有问题的图片,所以可以直接无视警告信息

import warnings
warnings.filterwarnings('ignore')
  1. 多才多艺型:跟警告战斗到底

将警告信息设置成报错:

import warnings
warnings.filterwarnings("error", category=UserWarning)

在打开图片后,捕获异常,并抛出异常:

try:
    img = Image.open(filePath)
except:
    print(filePath)

尝试了几次,反正我是没整明白,放弃。

  1. 完美无缺型:眼里容不得一粒沙子,要把它去掉(是我没错了)

好不容易下载的官方数据集,删掉exif信息总感觉不完美了,那我只能把有问题的图片找出来去掉了。

import glob
import os
import shutil
from PIL import Image

path = '**********/train/'

image = [path + x for x in os.listdir(path) if os.path.isdir(path + x)]
for f in image:
    print(f)
    for im in glob.glob(f + 'shanchu/')
            # os.remove(im)
      

遍历数据集,对所有图片进行读取,有问题的图片就会打印出来,并使用shutil移动到其他文件夹或者使用os.remove直接去除,不过因为数据集比较大,总感觉可能会漏掉或者没找完,可以多跑几遍,同时train一下模型检验一下,反正我是跑了好几遍才把毒瘤找完,找出来之后整个世界都清爽了。


福利放松时间,都看到这里了总得来点更简单的方法吧,你要是用的 SUN397 数据集,
得嘞,直接照着下图删吧,就是这十张图片的锅(看着也没毛病),这官方数据集真不让人省心。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/665790.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号