【目标检测】YOLOv5在voc.yaml使用txt作为目录无法训练的解决方案

解决YOLOv5使用txt文件指定训练集和验证集时的标签路径错误
文章讲述了在使用YOLOv5进行训练时,通过voc.yaml文件的第二种方式(txt文件)指定训练和验证集遇到的问题。当采用txt文件列出图片路径时,由于标签路径不正确导致报错。解决方法是修改dataset.py文件中的img2label_paths函数,确保图片路径与对应的标签路径匹配。
部署运行你感兴趣的模型镜像

问题描述

YOLOv5在voc.yaml文件提供了三种方式作为指向训练集和验证集的方式:

# train and val data as 
1) directory: path/images/, 
2) file: path/images.txt, 
or 3) list: [path1/images/, path2/images/]

第一种方式就是直接写文件的目录,第二种方式是写保存了图片文件目录的txt文件,其文件格式如图所示:
在这里插入图片描述

笔者在使用第二种方式时会报错,分析主要原因就是标签路径的问题。

解决方案

修改dataset.py文件的img2label_paths函数,该函数主要的作用是根据imgs图片的路径找到对应labels的路径。
在这里插入图片描述
注意这里的对应关系,没有对应就会报错。

您可能感兴趣的与本文相关的镜像

Yolo-v5

Yolo-v5

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

找不到这个: ultralytics/nn/modules/neck.py Attachments: D:\THESIS AUGUST 13\New yolo11 download\ultralytics\ultralytics>tree /f Folder PATH listing for volume 新加卷 Volume serial number is DE52-25E0 D:. │ __init__.py │ ├─assets │ bus.jpg │ zidane.jpg │ ├─cfg │ │ default.yaml │ │ __init__.py │ │ │ ├─datasets │ │ african-wildlife.yaml │ │ Argoverse.yaml │ │ brain-tumor.yaml │ │ carparts-seg.yaml │ │ coco-pose.yaml │ │ coco.yaml │ │ coco128-seg.yaml │ │ coco128.yaml │ │ coco8-grayscale.yaml │ │ coco8-multispectral.yaml │ │ coco8-pose.yaml │ │ coco8-seg.yaml │ │ coco8.yaml │ │ crack-seg.yaml │ │ dog-pose.yaml │ │ dota8-multispectral.yaml │ │ dota8.yaml │ │ DOTAv1.5.yaml │ │ DOTAv1.yaml │ │ GlobalWheat2020.yaml │ │ hand-keypoints.yaml │ │ HomeObjects-3K.yaml │ │ ImageNet.yaml │ │ lvis.yaml │ │ medical-pills.yaml │ │ Objects365.yaml │ │ open-images-v7.yaml │ │ package-seg.yaml │ │ signature.yaml │ │ SKU-110K.yaml │ │ tiger-pose.yaml │ │ VisDrone.yaml │ │ VOC.yaml │ │ xView.yaml │ │ │ ├─models │ │ │ README.md │ │ │ │ │ ├─11 │ │ │ yolo11-cls-resnet18.yaml │ │ │ yolo11-cls.yaml │ │ │ yolo11-obb.yaml │ │ │ yolo11-pose.yaml │ │ │ yolo11-seg.yaml │ │ │ yolo11.yaml │ │ │ yoloe-11-seg.yaml │ │ │ yoloe-11.yaml │ │ │ │ │ ├─12 │ │ │ yolo12-cls.yaml │ │ │ yolo12-obb.yaml │ │ │ yolo12-pose.yaml │ │ │ yolo12-seg.yaml │ │ │ yolo12.yaml │ │ │ │ │ ├─rt-detr │ │ │ rtdetr-l.yaml │ │ │ rtdetr-resnet101.yaml │ │ │ rtdetr-resnet50.yaml │ │ │ rtdetr-x.yaml │ │ │ │ │ ├─v10 │ │ │ yolov10b.yaml │ │ │ yolov10l.yaml │ │ │ yolov10m.yaml │ │ │ yolov10n.yaml │ │ │ yolov10s.yaml │ │ │ yolov10x.yaml │ │ │ │ │ ├─v3 │ │ │ yolov3-spp.yaml │ │ │ yolov3-tiny.yaml │ │ │ yolov3.yaml │ │ │ │ │ ├─v5 │ │ │ yolov5-p6.yaml │ │ │ yolov5.yaml │ │ │ │ │ ├─v6 │ │ │ yolov6.yaml │ │ │ │ │ ├─v8 │ │ │ yoloe-v8-seg.yaml │ │ │ yoloe-v8.yaml │ │ │ yolov8-cls-resnet101.yaml │ │ │ yolov8-cls-resnet50.yaml │ │ │ yolov8-cls.yaml │ │ │ yolov8-ghost-p2.yaml │ │ │ yolov8-ghost-p6.yaml │ │ │ yolov8-ghost.yaml │ │ │ yolov8-obb.yaml │ │ │ yolov8-p2.yaml │ │ │ yolov8-p6.yaml │ │ │ yolov8-pose-p6.yaml │ │ │ yolov8-pose.yaml │ │ │ yolov8-rtdetr.yaml │ │ │ yolov8-seg-p6.yaml │ │ │ yolov8-seg.yaml │ │ │ yolov8-world.yaml │ │ │ yolov8-worldv2.yaml │ │ │ yolov8.yaml │ │ │ │ │ └─v9 │ │ yolov9c-seg.yaml │ │ yolov9c.yaml │ │ yolov9e-seg.yaml │ │ yolov9e.yaml │ │ yolov9m.yaml │ │ yolov9s.yaml │ │ yolov9t.yaml │ │ │ └─trackers │ botsort.yaml │ bytetrack.yaml │ ├─data │ │ annotator.py │ │ augment.py │ │ base.py │ │ build.py │ │ converter.py │ │ dataset.py │ │ loaders.py │ │ split.py │ │ split_dota.py │ │ utils.py │ │ __init__.py │ │ │ └─scripts │ download_weights.sh │ get_coco.sh │ get_coco128.sh │ get_imagenet.sh │ ├─engine │ exporter.py │ model.py │ predictor.py │ results.py │ trainer.py │ tuner.py │ validator.py │ __init__.py │ ├─hub │ │ auth.py │ │ session.py │ │ utils.py │ │ __init__.py │ │ │ └─google │ __init__.py │ ├─models │ │ __init__.py │ │ │ ├─fastsam │ │ model.py │ │ predict.py │ │ utils.py │ │ val.py │ │ __init__.py │ │ │ ├─nas │ │ model.py │ │ predict.py │ │ val.py │ │ __init__.py │ │ │ ├─rtdetr │ │ model.py │ │ predict.py │ │ train.py │ │ val.py │ │ __init__.py │ │ │ ├─sam │ │ │ amg.py │ │ │ build.py │ │ │ model.py │ │ │ predict.py │ │ │ __init__.py │ │ │ │ │ └─modules │ │ blocks.py │ │ decoders.py │ │ encoders.py │ │ memory_attention.py │ │ sam.py │ │ tiny_encoder.py │ │ transformer.py │ │ utils.py │ │ __init__.py │ │ │ ├─utils │ │ loss.py │ │ ops.py │ │ __init__.py │ │ │ └─yolo │ │ model.py │ │ __init__.py │ │ │ ├─classify │ │ predict.py │ │ train.py │ │ val.py │ │ __init__.py │ │ │ ├─detect │ │ predict.py │ │ train.py │ │ val.py │ │ __init__.py │ │ │ ├─obb │ │ predict.py │ │ train.py │ │ val.py │ │ __init__.py │ │ │ ├─pose │ │ predict.py │ │ train.py │ │ val.py │ │ __init__.py │ │ │ ├─segment │ │ predict.py │ │ train.py │ │ val.py │ │ __init__.py │ │ │ ├─world │ │ train.py │ │ train_world.py │ │ __init__.py │ │ │ └─yoloe │ predict.py │ train.py │ train_seg.py │ val.py │ __init__.py │ ├─nn │ │ autobackend.py │ │ tasks.py │ │ text_model.py │ │ __init__.py │ │ │ └─modules │ activation.py │ block.py │ conv.py │ head.py │ transformer.py │ utils.py │ __init__.py │ ├─solutions │ │ ai_gym.py │ │ analytics.py │ │ config.py │ │ distance_calculation.py │ │ heatmap.py │ │ instance_segmentation.py │ │ object_blurrer.py │ │ object_counter.py │ │ object_cropper.py │ │ parking_management.py │ │ queue_management.py │ │ region_counter.py │ │ security_alarm.py │ │ similarity_search.py │ │ solutions.py │ │ speed_estimation.py │ │ streamlit_inference.py │ │ trackzone.py │ │ vision_eye.py │ │ __init__.py │ │ │ └─templates │ similarity-search.html │ ├─trackers │ │ basetrack.py │ │ bot_sort.py │ │ byte_tracker.py │ │ README.md │ │ track.py │ │ __init__.py │ │ │ └─utils │ gmc.py │ kalman_filter.py │ matching.py │ __init__.py │ └─utils │ autobatch.py │ autodevice.py │ benchmarks.py │ checks.py │ dist.py │ downloads.py │ errors.py │ export.py │ files.py │ instance.py │ loss.py │ metrics.py │ ops.py │ patches.py │ plotting.py │ tal.py │ torch_utils.py │ triton.py │ tuner.py │ __init__.py │ └─callbacks base.py clearml.py comet.py dvc.py hub.py mlflow.py neptune.py raytune.py tensorboard.py wb.py __init__.py
最新发布
08-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值