dawn-ech / YOLC

[TITS 2024] You Only Look Clusters for Tiny Object Detection in Aerial Images
https://arxiv.org/abs/2404.06180
Apache License 2.0
47 stars 13 forks source link

关于val和test #2

Closed leefly072 closed 2 weeks ago

leefly072 commented 1 month ago

您好,在训练的过程发现好像验证的时候出现了些问题,此外想问一下咱们的数据集做了crop处理吗,test如何进行呢,谢谢了 File "/var/lib/condor/execute/slot1/dir_2500534/YOLC-main/VisDrone_Dataset.py", line 252, in _det2json data['category_id'] = self.cat_ids[label] IndexError: list index out of range

dawn-ech commented 1 month ago

这个报错应该是类别数不太对应,检查下配置文件和annotation里的类别,现在解决了吗? 训练时为每张图进行了一次crop处理,就是LSM中k=1时的那张子图,和原图一起作为训练集,测试集没有做crop。目前代码中可以正常进行不加LSM的test,最近我更新一下加LSM的test脚本。

leefly072 commented 4 weeks ago

您好,我觉得您的工作非常优秀,想问一下,1)您这个的crop是怎么操作的,如果直接将VisDrone2019的数据进行训练是否会影响结果呢,2)如果我运行的使用val集的进行训练过程但不进行验证,就不会报错,只是在使用train集进行训练加入验证过程就会报错,不知道是不是依旧说明是val配置文件的问题,3)训练过程我发现加载的HRNet文件似乎存在参数不匹配,不知道您训练的时候是使用的pretrain的参数吗。对于上述问题,如果您能给予将十分感谢。谢谢了

GuoQiRen commented 4 weeks ago

他crop脚本感觉没有公开,不知道数据集经过怎样的处理过程,代码部分只能看到训练过程和测试过程。

dawn-ech commented 4 weeks ago

您好,我觉得您的工作非常优秀,想问一下,1)您这个的crop是怎么操作的,如果直接将VisDrone2019的数据进行训练是否会影响结果呢,2)如果我运行的使用val集的进行训练过程但不进行验证,就不会报错,只是在使用train集进行训练加入验证过程就会报错,不知道是不是依旧说明是val配置文件的问题,3)训练过程我发现加载的HRNet文件似乎存在参数不匹配,不知道您训练的时候是使用的pretrain的参数吗。对于上述问题,如果您能给予将十分感谢。谢谢了

  1. 利用LSM找出最大的crop,放大1.5x,然后padding到(1024, 640),最近会整理下这个脚本。直接用VisDrone2019也是可以正常训练的,结果会略低一点。
  2. 能否用train训练并且在train上验证呢
  3. 训练时加载的是pretrain参数,配置没有改。有问题的话可以贴个图看下
dawn-ech commented 4 weeks ago

@leefly072 @GuoQiRen crop的脚本已经上传了

Wu-Junbao commented 3 weeks ago

您好,我有个问题想请教一下,我的理解是 1)训练所用的crop是通过GT生成的heatmap进而通过LSM生成的crop,然后crop和原图一起进行训练,所以在训练过程中并没有使用LSM,对嘛? 2)那同样的在边训练边验证的过程中,验证时候也没有使用LSM,对吗? 3)只有在单独的test.py中使用了LSM根据heatmap进行裁剪,对吗? 可不可以更新一下训练的脚本文件呢,训练时候使用的裁剪部分应该怎样加入训练过程中,这是要原图和对应的裁剪同时送入的吧?

dawn-ech commented 3 weeks ago

您好,我有个问题想请教一下,我的理解是 1)训练所用的crop是通过GT生成的heatmap进而通过LSM生成的crop,然后crop和原图一起进行训练,所以在训练过程中并没有使用LSM,对嘛? 2)那同样的在边训练边验证的过程中,验证时候也没有使用LSM,对吗? 3)只有在单独的test.py中使用了LSM根据heatmap进行裁剪,对吗? 可不可以更新一下训练的脚本文件呢,训练时候使用的裁剪部分应该怎样加入训练过程中,这是要原图和对应的裁剪同时送入的吧?

gen_crop.py脚本生成crop这步本身用到LSM(k=1),只不过用的是GT而不是预测的heatmap。后面训练时没有用LSM。 默认的验证没有用到LSM,后续我会上传加LSM的验证脚本。 因为gen_crop.py生成训练集的crop+原图,把生成的数据集当成训练集直接使用即可。不需要在训练过程中动态生成crop了

Wu-Junbao commented 3 weeks ago

您好,我有个问题想请教一下,我的理解是 1)训练所用的crop是通过GT生成的heatmap进而通过LSM生成的crop,然后crop和原图一起进行训练,所以在训练过程中并没有使用LSM,对嘛? 2)那同样的在边训练边验证的过程中,验证时候也没有使用LSM,对吗? 3)只有在单独的test.py中使用了LSM根据heatmap进行裁剪,对吗? 可不可以更新一下训练的脚本文件呢,训练时候使用的裁剪部分应该怎样加入训练过程中,这是要原图和对应的裁剪同时送入的吧?

gen_crop.py脚本生成crop这步本身用到LSM(k=1),只不过用的是GT而不是预测的heatmap。后面训练时没有用LSM。 默认的验证没有用到LSM,后续我会上传加LSM的验证脚本。 因为gen_crop.py生成训练集的crop+原图,把生成的数据集当成训练集直接使用即可。不需要在训练过程中动态生成crop了

感谢解惑

Wu-Junbao commented 3 weeks ago

请教关于多尺度推理,在代码中的多尺度推理是指的用了多个尺度的特征层 还是将图像resize到不同的尺度呢?如果是resize 图像,训练中和测试中都使用了多尺度嘛?

dawn-ech commented 3 weeks ago

请教关于多尺度推理,在代码中的多尺度推理是指的用了多个尺度的特征层 还是将图像resize到不同的尺度呢?如果是resize 图像,训练中和测试中都使用了多尺度嘛?

@Wu-Junbao 多尺度推理是使用对图像做resize,和其他方法的多尺度推理一样。只在测试时用,训练没有用到。

QMLmulan commented 2 weeks ago

请问这个gen_crop.py这个代码里用到的数据集是怎么划分用的?我用自己的数据集好像有问题

dawn-ech commented 2 weeks ago

请问这个gen_crop.py这个代码里用到的数据集是怎么划分用的?我用自己的数据集好像有问题

@QMLmulan 这个脚本针对的是VisDrone的数据格式,不是COCO的。如果是COCO格式,需要改一下读入标注的逻辑

QMLmulan commented 2 weeks ago

已收到您的邮件,我会尽快给你回复。谢谢