RT-detr报错:Image size (xx pixels) exceeds limit of xxx pixels, could be decompression bomb DOS attack

项目场景:

我们在通过RT-detr官方给出的源码的时候,会出现以下一个报错情况:PIL.Image.DecompressionBombError: Image size (xxx pixels) exceeds limit of xxx pixels, could be decompression bomb DOS attack.


问题描述

RT-detr程序在跑的时候,会突然停止训练,并且抛出下面这一条报错情况:

报错情况


原因分析:

这很明显是我们放入训练的图片过大,超过了178956970 pixels,通常意味着尝试加载的图像像素数量超过了Pillow库设置的安全限制。这个限制是为了防止所谓的“解压缩炸弹”攻击,这是一种恶意文件利用软件中的漏洞来消耗大量内存或处理能力的攻击方式,所以我们需要去压缩对应的图片大小来防止超出限制


解决方案:

1、通过代码操作

解决这个问题的方法是增加Pillow允许的最大像素限制。可以通过以下代码实现:

from PIL import Image
Image.MAX_IMAGE_PIXELS = None  # 或者设置一个更大的值

这样就可以加载更大的图像了,但请注意,这样做可能会增加内存消耗,如果图像来源不可信,还可能存在安全风险。如果在确定图像是安全的,并且自己的系统有足够的资源处理大图像,那么这种方法是可行的 。

2、通过画图操作(笔者推荐)

解决这个问题的方法是通过画图工具去压缩图片大小:

首先打开画图工具,然后全选图片
在这里插入图片描述
其次,选择调整大小和扭矩,选择像素选项,将水平值和垂直值改成自己要的小一倍的数字,注意:在你更改水平值和垂直值其中任意一个值的时候,系统会自动帮你更改另外一个值。
在这里插入图片描述
之后保存图片并使用新的图片去训练即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃饭团的饭桶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值