主要问题是发生了无法找到训练的标签的情况。自己也花了几个小时,因为普通的情况情况下理论上是应该是可以解决的,结果发现一直报错,将问题记录下来。
1.普通情况
一般是修改 data目录下找到相对于配置文件路径的包,进行更正即可
一般情况下都是自己的路径命名不正确导致的。
应该是数据图片与标签处于同一个文件夹之下,一般情况下默认的分别命名是:images labels
!!一定要注意单词不能有错误,s也是不能少的
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
train: E:\photo\train\images
# # val images (relative to 'path') 4952 images
val: E:\photo\bal\images
2.配置问题
这里的配置问题是自己的默认名称相对应的查询存在问题。如果上面情况修正之后仍然报错的话可以参考目前的这一种方法。
需要找到对于的配置文件在:utils/dataloader.py文件
然后修改如下即可
def img2label_paths(img_paths):
# Define label paths as a function of image paths
sa, sb = f'{os.sep}images{os.sep}', f'{os.sep}labels{os.sep}' # /images/, /labels/ substrings
return [sb.join(x.rsplit(sa, 1)).rsplit('.', 1)[0] + '.txt' for x in img_paths]
其实最重要的也是唯一需要关注的就是下面这行代码:
sa, sb = f'{os.sep}images{os.sep}', f'{os.sep}labels{os.sep}'
希望以上两种方法可以帮助到你,解决问题。