cv2.error: color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function ‘cv::cvtColor‘

该文章主要解决使用coco格式数据报错!
将标注完成的数据集通过xml2coco(转换代码)后生成coco数据集格式。运行train.py,出现标题的报错,出现该错误的原因和解决办法如下:

1.打开该数据集的xml文件,具体信息如下图所示:
在这里插入图片描述
发现filename该项只有一个数字1,并没有图片后缀(jpg、bmp、png等)信息,而对应的图片名为1.jpg,因此需要在该项添加后缀jpg,由于图片共有三千多张,对应的xml文件也有这么多个,工作量巨大,而使用coco格式读取的代码最终只会读取xml生成的.json文件,故只需要在其内添加则可。
使用notepad++打开.json文件,将", “width"替换成.jpg”, “width”,选择全部替换,因为每一个图片对应字符width,上述替换的方法可保证100%准确率。

2.替换之后运行代码仍旧报错,原因在于有的图片本身自带了.jpg信息,如下:在这里插入图片描述
因此选择删除或若数量多的话,使用.jpg替换.jpg.jpg即可。

3.在一个epoch迭代的6%的时候仍旧出现上述错误,此时我心态还是有点崩的,然后对代码debug,发现有的xml信息里面的filename序号和其本身不对应,比如我是一个2840.xml文件,打开之后发现其filename是2841.jpg,因此将该文件删除可正常运行。

总结针对上面三个问题,其主要原因在于标注数据集时不规范,导致该有的信息丢失或重复,最后使得运行的代码找不到图片而出错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值