Swin Transformer Object Detection 目标检测、问题汇总

必看:

  1. 问题每周总结一次。如果您对需要解决的问题有解决方案,欢迎在交流群和评论区提出(请注明需要解决的问题和方法)。
  2. 问题的分类可能并不完全准确,遇到问题可以翻遍整个博客。
  3. 本题总结了相关内容——完整版视频教程:我的教学视频[0]

目录

一、环境问题

1. unsupported Microsoft Visual Stadio version

【来源】:群友——cuprum
【问题描述】:VS版本不支持
【解决办法】:按照要求安装VS,再重新试一下

2. 报错提示找不到 tmp目录下的某个文件

【来源】:群友——cuprum
【问题描述】:在测试环境是否装好时,出现找不到C盘下某个tmp目录下的文件
【解决方法】:一般是中文用户名引起的。可以到环境变量位置,将路径替换为纯英文路径。

3. ImportError DDL load failed

【来源】:群友-
【问题描述】:ImportError DDL load failed

【解决办法】:环境问题,一般是mmcv安装问题,建议直接按照视频中安装,不用pip装过高版本,pip装可以试试1.4.0,如果官方有提供对应的whl文件的话。

4. 找不到指定目录下的 cl.exe

【来源】:群友——William Gao
【问题描述】:找不到指定目录下的 cl.exe

【Solution】:

  1. 环境变量的path配置错误,请与视频中和文档中的仔细对比,尤其X86和x64位置
  2. 群友——范:D:\Windows Kits\10\bin\x64 添加环境变量path rc.exe和rcdll.dll从D:\WindowsKits\10\bin\10.0.19041.0\x86 复制到D:\VS2019\IDE\VC\Tools\MSVC\14.29.30133\bin\Hostx86\x64
    根据情况改变自己的路径。
5. Linux 系统下的环境安装

【问题描述】:Linux 下如何安装环境
【Solution】:

  1. 可以考虑直接通过官网教程中的pip安装,1.4.0及以下的mmcv,如
    pip install mmcv-full==1.3.18 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.1/index.html
  2. 照着win的教程安装,但是免去VS和cl环境变量的部分,因为Linux自带GCC。
6. AssertionError top_pool_forward miss in module _ext

【来源】:群友——Quest.
【问题描述】:AssertionError top_pool_forward miss in module _ext

【解决办法】:mmcv的版本不对的问题,建议按照教程中的版本。

7. Apex 报错:IndexError tuple index out of range

【来源】:群友——补刀翁,青田
【问题描述】:Apex 报错:IndexError tuple index out of range

【解决办法】:Apex包问题,搜一下就能解决。

8. 装mmcv时,文件名、目录名或卷标语法不正确

【来源】:群友——Charile
【问题描述】:装mmcv时,文件名、目录名或卷标语法不正确

【解决办法】:要使用Anaconda的PowerShell不要使用Anaconda Prompt

9. NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin\nvcc.exe’ failed with exit code 2

【来源】:群友——等、Serein、补刀翁
【问题描述】:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin\nvcc.exe’ failed with exit code 2

【Solution】:

  1. 群友 – 粉丝: 粉丝:
    卸掉所有的 pytorch torch vision torchaudio,严格按照这里的 cuda版本的安装要求来安装,命令也 严格按照run this command来==
  2. 群友——等:这个问题,我这样解决的,我把mmcv的版本降低了,然后按照up主的教程就可以实现了最后的结果。运行项目时会提示说mmcv版本不小于1.3.17上面会说在具体的文件中具体的规定,我把这里的1.3.17改成了低版本的1.3.8就可以跑通环境了。
10. nms is not compiled with GPU support

【来源】:群友——Serein
【问题描述】:nms is not compiled with GPU support

【解决方案】:待解决

11. 安装mmdet时报错,关于pycocotools的错误,match 不到

【来源】:群友-时光之友
【问题描述】:

【解决办法】:将requirement.txt 中的pycocotools 注释掉,自己手动装一下

二、工程问题

1. 在用自己的数据集测试时,图片被标满了各种目标框

【来源】:群友-🐹
【问题描述】:训练模型后,在验证模型效果时,标记了很多不相关的目标框
【解决方法】:类别或型号与权重文件不匹配,导致

2. 训练过程中 loss好多都是nan

【来源】:群友——abu
【问题描述】:

【解决方案】:待解决

3. Gradient overflow Skipping step loss scalar0 reducing scale to xxx

【来源】:群友——abu
【问题描述】:梯度爆炸,提示Gradient overflow Skipping step loss scalar0 reducing scale to xxx

【解决办法】:不需要管,应该是模型在调整step,但是具体原理还有待研究。

4. TypeError ‘NoneType’ object is not subscriptable

【来源】:群友-补刀
【问题描述】:

【解决方案】:待解决

5. 给mmdetection工程的Swin Transformer YOLOv3、Faster RCNN配置预训练权重

【来源】:群友-
【问题描述】:不使用链接的形式配置 pretrained,而是直接配置下载好的 预训练权重。
【Solution】:

  1. 群友——mongkey-nut:把init_cfg的配置删了,加载预训练模型就相当于一个初始化的过程了。
6. data[‘category_id’] = self.cat_ids[label],IndexError: list out of range

【来源】:群友——只争朝夕

【问题描述】:data[‘category_id’] = self.cat_ids[label],IndexError: list out of range
【Solution】:

  1. 群友——庆天:Swin-Transformer-Object-Detection/mmdet/core/evaluation/class_names.py 的coco_classes改一下,改成自己的类别
6. AssertError The num_classes dose not match the length of CLASSES

【来源】:群友——jenson
【问题描述】:

【Solution】:

  1. 群友——天才哥哥~:修改 mmdet set-packet里面mmdet的classes
7. OSError,找不到权值文件

【来源】:群友-天才哥~
【问题描述】:OSError,找不到权值文件

【解决方法】:路径错误,如果不确定,绝对路径

8. 去掉工程中自带的数据翻转增强

【来源】:群友——只争朝夕
【问题描述】:想去掉自带的数据增强部分
【Solution】:

  1. 群友——monkey-nut:

三、数据集问题

1. 只有训练集和验证集怎么办

【问题描述】:我只有训练集和测试集或者只有训练集和验证集,怎么办?
【解决方法】:验证集和测试集可以直接使用同一个文件(项目中默认也是这样),配置时数据集路径和文件对应即可。

2. VOC转COCO、LabelMe转COCO

【问题描述】:如何转换,有提供脚本吗?
【Solution】:

  1. LabelMe转COCO:视频中提到了如何用LabelMe转COCO,但是视频中的教程有一点小问题,自己改一点点,原本生成的 json文件中格式为 “file_name”: “JPEGImages\000001.jpg” ,需要想办法把前面的 JPEGImages\ 去掉。方法一:尝试改igthub上那个脚本。方法二:尝试或者自己写脚本去掉这部分内容
  2. VOC转COCO:我的课程资料中提供了一个转换脚本,需要改成自己的目录就可以了

注意:这两个脚本都没办法自动划分测试集验证集和训练集,需要自己转3次。

3. The testing result of the whole datasets is empty

【问题详情】:train可以跑起来,但是不打印loss等信息,会报 mmdet The testing result of the whole datasets is empty 的错误
【解决方法】:检查数据集路径配置、分类数组、分类个数等,也很有可能是数据集格式不对

4. num_classes dose not matches the length of ‘CLASSES’

【来源】:群友-补刀
【问题详情】:训练时出现如下错误
【解决方法】:大概率因为数据集中的类别数(json文件中的类别部分)和工程中写的(num_classes)不一致,如一个是3一个是4。
群友补充:可能是标签没有文件名(待验证)

5. The testing result of the whole datasets is empty

【来源】:群友-🐹

6. list index out of range

【来源】:群友——abu、补刀翁
【问题描述】:训练了几个epoch后,在if isinstance(segms[i][‘count’)时报list index out of range,如下图:

【Solution】:

  1. 检查是不是数据集json的segmentation字段是空的,或者图片和json文件对应不上,有缺失。
  2. 群友——只争朝夕:mmdet的目录指向不明,导致类别读错,因为我之前训练都手动导入环境,mmdet指向的环境,你pip list看目录,他会有个安装路径,我每次导入的是当前工程下的路径,这样不会出问题,export PATHONPATH=…
  3. 群友-修理工:只屏蔽最后一行错误相关代码,一共四行
7. 视频中的数据集去哪下载,天池没找到

【来源】:Beyonderwei
【问题描述】:想下载视频中的数据集自己做测试
【解决办法】:去Kaggle下载,天池审核没过,不用特殊方法下载速度会稍慢,地址:examination-paper-mark-trace[0]

8. 有没有什么好的数据增强方法推荐

【来源】:群友——只争朝夕
【问题描述】:我想增强数据集,有什么推荐的方法吗?
【解决办法】:torchvision、albumentations、transform、imgaug、SMOTE等

9. TypeError function takes exactly exactly 5 arguments

【来源】:群友——OHhahaaa
【问题描述】:TypeError function takes exactly exactly 5 arguments

【解决方法】:标签有中文,解码有问题

10. ValueError:need at least one array to concatenate: indices = np.concatenate(indics)

【来源】:群友-

【问题描述】:ValueError:need at least one array to concatenate: indices = np.concatenate(indics)
【Solution】:

  1. 群友——肖X炜:voc2coco 数据集转换导致的问题,建议使用资料中的脚本。
11. LabelMe转COCO报QT4 Version的错误

【来源】:群友——钱X
【问题描述】:

【解决办法】:待解决,可尝试将QT4更新到QT5。

12. 训练时 acc很高,map没有什么提升

【来源】:群友——只争朝夕
【问题描述】:训练时 acc很高,map没有什么提升

【解决办法】:没办法,大概率是因为数据集不适用于该模型,目标太小,据说YOLOv5效果不错,或者使用更大输入的 Swin V2。

致谢

      感谢上述提出或提供解决办法的朋友们。如有需要可以私信提供CSDN账号主页链接,我会在下面位置添加。排名不分先后。

 
 

关于作者:

  • 个人网站:https://beyonderwei.com
  • 邮箱:beyonderwei@gmail.com

微信公众平台

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2022年4月27日
下一篇 2022年4月27日

相关推荐