yolopose训练

yolopose训练自己的数据集时发出警告:


Ignoring corrupted image and/or label ../yolopose/coco_kpts/images/train/0000023.jpg: cannot reshape array of size 49 into shape (2)

报错:


dataset = LoadImagesAndLabels(path, imgsz, batch_size,
  File "/root/yolopose/utils/datasets.py", line 415, in __init__
    labels, shapes, self.segments = zip(*cache.values())
ValueError: not enough values to unpack (expected 3, got 0)

在../yolopose/coco_kpts/labels这个路径下面有xxx.cache文件,删掉重新跑试试看,这里记录的是上一次你运行的一些数据集缓存,而这个缓存里面你目前的数据是空的就会这样。如果删除掉之后还是不行,说明你的数据集有问题了,也就是读取到的标签或者图片数量不对。
另外,你上面的报错图片../yolopose/coco_kpts/images/train/0000023.jpg这张图片长度不对,比如7x7大小的图片,你想把它reshape为row为2的图片就会报错,因为49无法整除2,就会导致他的col轴是多少无法自动计算,所以报错。我不清楚你是否改过什么,按理来说都是先resize或者padding为一个固定的尺寸之后再进行reshape操作的,这样就不会出现你这个问题。

引用chatGPT作答,
这个警告是由于在训练yolopose时,读取的图像或标签数据可能已损坏或格式不正确导致的。警告中提到的“cannot reshape array of size 49 into shape (2)”表示无法将一个大小为49的数组重新调整为大小为2的形状。

报错信息中的 "not enough values to unpack (expected 3, got 0)" 则表示从缓存中读取的标签数据不完整,期望得到3个值,但是实际上没有获取到任何值。

建议您检查一下训练数据集的图像和标签数据是否存在格式不正确、丢失或损坏等问题,尤其是针对报错中提到的那个具体的文件 ../yolopose/coco_kpts/images/train/0000023.jpg 进行仔细检查。您可以尝试打开该文件,或者尝试使用其他工具查看该文件的内容,以确定它是否存在问题。

如果数据存在问题,建议您尽快修复或替换这些文件,以确保训练能够正常进行

以下回答参考GPT,并由JoseKe整理完成,希望您能采纳:
根据你提供的信息,可以看出可能存在以下问题:

1. 图像或标签文件损坏或格式不正确,导致无法读取。建议检查一下图像与标签的格式和命名是否正确,是否损坏。

2. 数据集标注可能存在问题,例如有些标注格式不正确或者缺失关键点等。

3. 加载数据时的参数设置可能错误,建议检查一下参数设置是否正确。

针对第一个问题,可以尝试重新下载或使用其他来源的数据集或图像及标注文件。针对第二个问题,可以检查一下标注文件的格式和内容是否正确。针对第三个问题,可以检查一下代码中加载数据集的函数是否正确,以及参数设置是否正确。

同时,我注意到代码中有一个异常:not enough values to u。这可能是因为在执行zip(*cache.values())时,由于cache的值不够导致抛出的异常。具体原因需要根据完整代码和数据集来进一步分析。

希望以上分析对你有所帮助。