yoloair代码库下成功运行yolov7

环境搭建(TODO)

自定义数据集(TODO)

VOC数据集格式

github下载代码库

在代码仓库选择main版本的进行下载

https://github.com/iscyy/yoloair.git

yolov7权重下载

权重地址:https://github.com/WongKinYiu/yolov7 

放在yoloair的根目录下就行

原始代码存在的问题

1. 缺少timm模块

ModuleNotFoundError: No module named 'timm'

解决方案:pip安装即可

pip install timm -i https://pypi.tuna.tsinghua.edu.cn/simple

2. Dataset  'nc'  key missing

Traceback (most recent call last):
  File "train.py", line 695, in <module>
    main(opt)
  File "train.py", line 591, in main
    train(opt.hyp, opt, device, callbacks)
  File "train.py", line 112, in train
    data_dict = data_dict or check_dataset(data)  # check if None
  File "/home/nky/PycharmProjects/yoloair-main/utils/general.py", line 421, in check_dataset
    assert 'nc' in data, "Dataset 'nc' key missing."
AssertionError: Dataset 'nc' key missing.

解决方案:(代码主体跟yolov5大致相同,可以去yolov5代码中的general.py下的如下代码复制到yoloair/utils/general.py中的check_dataset函数中的#Resolve paths前面)

 # Checks
    for k in 'train', 'val', 'names':
        assert k in data, emojis(f"data.yaml '{k}:' field missing ❌")
    if isinstance(data['names'], (list, tuple)):  # old array format
        data['names'] = dict(enumerate(data['names']))  # convert to dict
    assert all(isinstance(k, int) for k in data['names'].keys()), 'data.yaml names keys must be integers, i.e. 2: car'
    data['nc'] = len(data['names'])

3. 缺少labels

Traceback (most recent call last):
  File "train.py", line 695, in <module>
    main(opt)
  File "train.py", line 591, in main
    train(opt.hyp, opt, device, callbacks)
  File "train.py", line 228, in train
    train_loader, dataset = create_dataloader(train_path, imgsz, batch_size // WORLD_SIZE, gs, single_cls,
  File "/home/nky/PycharmProjects/yoloair-main/utils/datasets.py", line 100, in create_dataloader
    dataset = LoadImagesAndLabels(path, imgsz, batch_size,
  File "/home/nky/PycharmProjects/yoloair-main/utils/datasets.py", line 433, in __init__
    assert nf > 0 or not augment, f'{prefix}No labels in {cache_path}. Can not train without labels. See {HELP_URL}'
AssertionError: train: No labels in /home/nky/VOCdevkit/VOC2007/ImageSets/Main/train.cache. Can not train without labels. 

解决方案:datasets.py的img2label_paths函数中将images改成JPEGImages即可。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值