目标检测transform模型(Swin Transformer Object Detection 目标检测、问题汇总)
必看:
问题每周总结一次 ,如果待解决的问题中大家有了解决办法欢迎在交流群和评论区提出(请指明解决的问题和方法) 。 问题的分类可能不完全准确 ,遇到问题可以都过一遍整个博客 。 本问题汇总关联内容——视频教程完整版:我的教学视频一 、环境问题
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
【解决办法】:环境变量的path配置错误 ,请与视频中和文档中的仔细对比,尤其X86和x64位置 群友——范: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 下如何安装环境
【解决办法】:可以考虑直接通过官网教程中的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 照着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
【解决办法】:群友——范:范:
卸掉所有的 pytorch torch vision torchaudio ,严格按照这里的 cuda版本的安装要求来安装 ,命令也 严格按照run this command来== 群友——等:这个问题 ,我这样解决的 ,我把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 ,而是直接配置下载好的 预训练权重 。
【解决办法】: 群友——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
【解决办法】: 群友——庆天: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
【问题描述】:
【解决办法】: 群友——天才哥哥~:修改 mmdet set-packet里面mmdet的classes 7. OSError ,找不到权值文件【来源】:群友——天才哥哥~
【问题描述】:OSError ,找不到权值文件
【解决办法】:路径错误 ,如果不确定的话就绝对路径 8. 去掉工程中自带的数据翻转增强【来源】:群友——只争朝夕
【问题描述】:想去掉自带的数据增强部分
【解决办法】:群友——monkey-nut:
三 、数据集问题
1. 只有训练集和验证集怎么办【问题描述】:我只有训练集和测试集或者只有训练集和验证集,该怎么办
【解决办法】:可以直接把验证集和测试集使用同一份文件(工程里面默认也是这么做的) ,配置的时候数据集路径和文件对应上就可以。 2. VOC转COCO 、LabelMe转COCO【问题描述】:我该如何转换 ,有没有提供脚本
【解决方法】: LabelMe转COCO:视频中提到了如何用LabelMe转COCO,但是视频中的教程有一点小问题 ,自己改一点点 ,原本生成的 json文件中格式为 “file_name ”: “JPEGImages\000001.jpg ” ,需要想办法把前面的 JPEGImages\ 去掉 。方法一:尝试改igthub上那个脚本 。方法二:尝试或者自己写脚本去掉这部分内容
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,如下图:
【解决办法】:检查是不是数据集json的segmentation字段是空的 ,或者图片和json文件对应不上 ,有缺失 。 群友——只争朝夕:mmdet的目录指向不明,导致类别读错 ,因为我之前训练都手动导入环境 ,mmdet指向的环境,你pip list看目录 ,他会有个安装路径 ,我每次导入的是当前工程下的路径 ,这样不会出问题 ,export PATHONPATH=… 群友——补刀翁:把最后那行错误相关的代码屏蔽掉就行了 ,共四行
7. 视频中的数据集去哪下载 ,天池没找到【来源】:Beyonderwei
【问题描述】:想要下载视频中的数据集自己做一下测试
【解决办法】:去Kaggle下载 ,天池审核没过 ,不用特殊方法下载速度会稍慢 ,地址:examination-paper-mark-trace 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)
【解决办法】: 群友——肖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创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!