报错如下:
assert nf > 0 or not augment, f'{prefix}No labels found in {cache_path}, can not start training. {HELP_URL}' AssertionError: train: No labels found in D:\FSH\Datasets\ROSD_1227\train.cache, can not start training. See https://docs.ultralytics.com/yolov5/tutorials/train_custom_data
原因:
今天在做小目标数据集的时候将一些公开数据集进行缩放,之后为了与原始的数据集进行区分就修改了命名规则,将其改为0.5image(表示缩小0.5倍),但就是因为这个操作导致了在创建train.ache文件的时候读取不到图片的标签了,一步步debug找到报错的地方,发现了yolov5在读取图片对应的标签的时候用的是以下的代码:
在这个代码中将JPEGImages的图片文件夹名称替换为labels的标签名,我将图片的名称更换了所以自然在这一步是无法转换的,也正是因为这个原因所以造成了找不到标签的路径。
==============================================================
总结原因:
一方面是源码没有完全读完;另一方面是自己没有遵循yolo的命名规则随便就把图片文件夹的名称给改掉了。不过还好debug能很快找到问题的所在。