YOLOv5推理时出现:assert im0 is not None, f‘Image Not Found {path}‘

一、问题展示

Traceback (most recent call last):File "/media/hadoop/yolov5-7.0/detect.py", line 259, in <module>main(opt)File "/media/hadoop//yolov5-7.0/detect.py", line 254, in mainrun(**vars(opt))File "/home/hadoop/anaconda3/envs/xxx/lib/python3.9/site-packages/torch/utils/_contextlib.py", line 115, in decorate_contextreturn func(*args, **kwargs)File "/media/hadoop/yolov5-7.0/detect.py", line 115, in runfor path, im, im0s, vid_cap, s in dataset:File "/media/hadoop/yolov5-7.0/utils/dataloaders.py", line 305, in __next__assert im0 is not None, f'Image Not Found {path}'
AssertionError: Image Not Found /media/hadoop/VOC/images/val/3070.jpg

二、问题分析

定位到此张图片是存在的,分析到此张图片的详细信息如下:

可以查看到此张图的位深度为8,按如下表格分析到此张图为位图模式、灰度图或者r\g\b单通道图片等

在yolon5模型训练、验证时如果遇到位深度不足24的图片则会出现如下图过滤信息,代表此张图不使用;datect.py推理则会直接报错停测,如出现标题主题的现象。

三、解决方案

方案一、.图片筛选:(我使用的方式)

   在图片批量使用前,使用文件位深度排序方式删除位深度不足24的图像数据,步骤如下;

 

方案二、yolo程序修改

将dataset中的第161行

p = str(Path(path).resolve())  # os-agnostic absolute path

改为

p = str(Path(path))  # os-agnostic absolute path

方案三、代码进行图片位深度转换

Python将8位的图片转为24位的图片

import numpy as np
from PIL import Image
import os
import syspath='XXXXXXXXX/'
newpath='XXXXXXXXX/'
def Img8to24(path):files = os.listdir(path)files = np.sort(files)i=0for file in files:imgpath = os.path.join(path, file)#转换img=Image.open(imgpath).convert('RGB')savepath = os.path.abspath(newpath,file)img.save(savepath)Img8to24(path)

完结*0*

参考链接:

python——PIL,Image,cv2读取、修改图片_img.load()-CSDN博客

YOLOv5 detect运行报错assert img0 is not None, f‘Image Not Found {path}‘解决方案_yolov5detect大量数据读取时报错assert im0 is not none, f'ima-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/485461.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT调教指南 | 咒语指南 | Prompts提示词教程(一)

在我们开始探索人工智能的世界时&#xff0c;了解如何与之有效沉浸交流是至关重要的。想象一下&#xff0c;你手中有一把钥匙&#xff0c;可以解锁与OpenAI的GPT模型沟通的无限可能。这把钥匙就是——正确的提示词&#xff08;prompts&#xff09;。无论你是AI领域的新手&#…

npm/nodejs安装、切换源

前言 发现自己电脑上没有npm也没有node很震惊&#xff0c;难道我没写过代码么&#xff1f;不扯了&#xff0c;进入正题哈哈…… 安装 一般没有npm的话会报错&#xff1a; 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称而且报这个错&#xff0c;我们执行…

python专业版破解激活(超详细)

python专业版破解激活 1.下载pycharm应用程序 这里我使用的版本是pycharm-professional-2023.3.2 下载pycharm程序的连接为&#xff1a; 百度网盘 请输入提取码 提取码为&#xff1a;nym0 2.安装 选择安装路径 下一步 这里全选 下一步 这里直接点击安装就可&#xff0c;其…

Java学习笔记2024/2/22

面向对象进阶部分学习方法&#xff1a; 特点&#xff1a; 逻辑性没有那么强&#xff0c;但是概念会比较多。 记忆部分重要的概念&#xff0c;理解课堂上讲解的需要大家掌握的概念&#xff0c;多多练习代码。 今日内容 复习回顾 static关键字 继承 教学目标 能够掌握st…

守护绿色屏障:智能高压森林应急消防泵|恒峰智慧科技

在茂密的森林中&#xff0c;树木蓊郁&#xff0c;绿意盎然。这里是大自然赋予我们的宝贵财富&#xff0c;是我们人类赖以生存的重要资源。然而&#xff0c;随着人类活动的增加&#xff0c;森林火灾频发&#xff0c;给我们的生活带来了极大的威胁。为了保护这片绿色屏障&#xf…

缓存篇—缓存雪崩、缓存击穿、缓存穿透

缓存异常会面临的三个问题&#xff1a;缓存雪崩、击穿和穿透。 其中&#xff0c;缓存雪崩和缓存击穿主要原因是数据不在缓存中&#xff0c;而导致大量请求访问了数据库&#xff0c;数据库压力骤增&#xff0c;容易引发一系列连锁反应&#xff0c;导致系统奔溃。不过&#xff0…

ChatGPT在数据处理中的应用

ChatGPT在数据处理中的应用 今天的这篇文章&#xff0c;让我不断体会AI的强大&#xff0c;愿人类社会在AI的助力下走向更加灿烂辉煌的明天。 扫描下面二维码注册 ​ 数据处理是贯穿整个数据分析过程的关键步骤&#xff0c;主要是对数据进行各种操作&#xff0c;以达到最终的…

【命令行工具kubectl】

如何在k8s的任意节点使用用kubectl # 正常在node节点上是无法执行kubectl命令 [rootk8s-node-01 ~]# kubectl get pods The connection to the server localhost:8080 was refused - did you specify the right host or port?1、将master节点中/etc/kubernetes/,admin.conf拷…

五分钟了解Python中的函数

函数&#xff1a;函数是组织好的&#xff0c;可重复使用的&#xff0c;用来实现单一&#xff0c;或相关联功能的代码段。 函数的定义 定是函数使用def关键字 def myfunc(x):if x > 0:return x else:return -x 空函数 def emptyfunc():pass 参数检查 def checkfunc(x):i…

2024 Sora来了!“手机Agent智能体”也来了!

近日&#xff0c;Open AI发布了能够根据文本生成超现实视频的工具Sora&#xff0c;多款震撼视频引爆科技圈刷屏&#xff0c;热度持续发酵占据AI领域话题中心&#xff0c;被认为是AGI实现过程里的重大里程碑事件。新一轮的人工智能浪潮给人类未来的生产和生活方式带来巨大而深远…

05 类和对象 3

目录 再谈构造函数static成员友元内部类匿名对象拷贝对象时一些编译器优化再次理解封装 1. 再谈构造函数 1.1 构造函数赋值 在创建对象时&#xff0c;编译器调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值 class Date { public: Date(int year, int month,…

DTV的LCN功能介绍

文章目录 LCN简介LCN获取LCN Conflict LCN简介 Logical Channel Number&#xff08;LCN&#xff09;是数字电视系统中用于标识和组织频道的逻辑编号。LCN的目的是为了方便用户浏览和选择频道&#xff0c;使得数字电视接收设备能够根据这些逻辑编号对频道进行排序和显示。 LCN…