在这个笔记本里:
https://colab.research.google.com/drive/1omLGQarT6-WOyQgoXK7d98rj01Ietphm#scrollTo=412Aa8kIs0mi
我正在尝试运行yolov5来操作对象检测。首先,我下载一个数据集(最初以coco格式创建,然后以yolov5格式转换)。然而,当我运行代码时,我得到了一个异常(在警告之前)
AssertionError: train: No labels in /content/datasets/roboflow/train/labels.cache. Can not train without labels.我认为通常文件夹训练/测试/验证应该包含一个“图像”和一个“标签”(我从带有"labelTxt“名称的机器人流子文件夹中获得),所以我创建了从"labelTxt”重命名为“标签”(参见第二个笔记本链接)。
然后我得到了警告,比如
train: WARNING: /content/datasets/roboflow/train/images/hybrid_rgb_0297__volcano_39_ero1_ecc1_rcrat1_png.rf.ab11b2a7ee4ef956fa1439b144057bc9.jpg: ignoring corrupt image/label: could not convert string to float: 'volcano'
train: WARNING: /content/datasets/roboflow/train/images/hybrid_rgb_0305__mountain_0_ero0_ecc0_rcrat0_png.rf.ece26ced043322846c804623ce4a44af.jpg: ignoring corrupt image/label: could not convert string to float: 'mountain'现在字符串“火山”和“山”是我的类名,来自data.yaml内容:
path: ../datasets/roboflow
train: train/images
val: valid/images
test: test/images
nc: 3
names: ['done', 'mountain', 'volcano']有什么想法吗?谢谢。
编辑: yolov5也可以操作实例分割,就像在https://blog.roboflow.com/train-yolov5-instance-segmentation-custom-dataset/中解释的那样(现在我改变了方法)。
发布于 2022-05-08 14:37:57
YOLOv5是一种对象检测模型。我能问问你为什么要用它来分割吗?
您可能希望在Roboflow上创建一个实例分段项目,然后对其进行培训。例如:https://blog.roboflow.com/detectron2-custom-instance-segmentation/
此外,如果您试图检测对象并错误地进行分段,下面是关于使用YOLOv5的培训教程--确保在生成用于模型培训的版本时,所有带有标签的图像都被添加到数据集中:在Roboflow上开始您的第一个项目
训练YOLOv5模型:US/roboflow-train/model-training-yolov5-video-tutorial
发布于 2022-05-09 09:09:40
我假定您正在使用的数据集已损坏。文件名还包括.png和.jpg扩展名,这很奇怪。我建议你下载你的数据集作为压缩文件,然后上传到contents/,这也不会损害图像质量。
还有为什么您的data.yaml显示不同的类而不是掩码?这也是个错误吗?请提供更多的信息,以获得更精确的答案。
https://stackoverflow.com/questions/72158814
复制相似问题