Open YangBo0411 opened 3 months ago
看姓名,我就直接用中文答复了哈: 参考数据集(https://github.com/SeaHifly/IST-A)里,图片和标签在一起,txt里的标签就是类别 中心x 中心y 目标w 和目标h,你自己生成对应格式的txt即可,然后修改MMRFF_TrainSE_LL01.py文件里的数据路径应该就能默认跑起来。(稍微看下数据集的读取方式就好了,虽然全部自己码的,有些代码写得很累赘,但我就一直那样用了)
另外: 如果是要对比的话注意这个算法专注于16×16以下的目标,大目标和密集目标无法回归; 如果是要优化的,你至少要考虑把GRO等换成直接最大值降采样或其他更优的方式,我是后期发现直接最大池化适当增加通道数其实更有意义。
当然类别部分是无意义的,只是我一直保留着那一列。当初我还想做根据飞行轨迹做多帧类型识别,有些人告诉我意义不大没有做
感谢您的及时回复,我会先按照您给的数据集格式进行转换,如果出现问题我再来向您请教。另外,我是想做对比实验,现通用的红外小目标公开数据集,如NUAA,IRSTD-1K这些,此方法能够收敛吗?里面应该绝大部分都是小于16*16的。
能,我想收敛都不会有问题,且不会存在特别离谱的训练结果,像近几年的分割方法可能会因为soft-iou有时训练会输出全黑的情况,但回归方法好像很少出现。只不过这些数据集的图像都偏少,每次训练测试的性能可能会有很大差别,当然主要是突出自己的好 所以这方面没有啥大碍。正常情况下这个方法在这些数据集上刷不出特别好的分数,这不仅仅是计算量的约束,也有设计上的问题。
好的,明白了
---Original--- From: @.> Date: Tue, Aug 6, 2024 22:28 PM To: @.>; Cc: "Yang @.**@.>; Subject: Re: [SeaHifly/Infrared-Small-Target] How to train own dataset? (Issue#3)
能,我想收敛都不会有问题,且不会存在特别离谱的训练结果,像近几年的分割方法可能会因为soft-iou有时训练会输出全黑的情况,但回归方法好像很少出现。只不过这些数据集的图像都偏少,每次训练测试的性能可能会有很大差别,当然主要是突出自己的好 所以这方面没有啥大碍。正常情况下这个方法在这些数据集上刷不出特别好的分数,这不仅仅是计算量的约束,也有设计上的问题。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>
作者您好,想请问下MMRFF_TrainSE_LL01.py在哪里,我在代码和数据集中都没有找到相关的文件。
代码那一栏中肯定有个包含train和test的两个py
---Original--- From: "Yang @.> Date: Wed, Aug 7, 2024 09:19 AM To: @.>; Cc: @.**@.>; Subject: Re: [SeaHifly/Infrared-Small-Target] How to train own dataset? (Issue#3)
作者您好,想请问下MMRFF_TrainSE_LL01.py在哪里,我在代码和数据集中都没有找到相关的文件。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>
看到了,不好意思,项目弄混了
还有个问题想请教下,代码是不能处理不同尺寸的数据集图片吗?我的数据集中图片尺寸不同,如果调整图片大小至相同尺寸,标签好像就对应不上了,您能给个建议吗?
你要转换新数据集的时候,将图片周边扩充全黑到相同尺寸,我后面的一些版本可以自动调整训练图大小,但早期我自己的图只有288*384的,所以这个版本不能自动调整大小。你就将图像统一填充0到相同的最大尺寸,注意尺寸是16的倍数,标签也对应写个代码调整,这样就可以训练了
---Original--- From: "Yang @.> Date: Wed, Aug 7, 2024 10:04 AM To: @.>; Cc: @.**@.>; Subject: Re: [SeaHifly/Infrared-Small-Target] How to train own dataset? (Issue#3)
还有个问题想请教下,代码是不能处理不同尺寸的数据集图片吗?我的数据集中图片尺寸不同,如果调整图片大小至相同尺寸,标签好像就对应不上了,您能给个建议吗?
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>
好的,明白,感谢。
先说报错问题,细节肯定得你自己调,我说下当时我自己的习惯。我现在所有该主题的代码都喜欢把模型存在一个model-results的路径下,这个是我固定存在的子路径,训练时会将模型存入该子路径下一个新创建的日期路径,测试时,修改的一个路径就是这个日期路径,然后再才是模型名称。因此测试时存在修改的路径和模型名称两个变量。createtimepath那个函数就是在指定路径下创建新的一个日期子文件夹,是不是这个导入模型的路径不存在。你得自己debug。
关于那个指标只是我当时自己想的一个值得参考的指标,不是其他论文喜欢用的。我的出发点是回归模型设置不同的置信度预置,其pd,fa等其他论文常用的指标都会变化,为了设置一个公平的基线,从ap曲线里截取了召回率为0.9或0.6的准确率作为参考指标,观察在一定召回率条件下,不同模型的准确率,因为我不喜欢重新训练模型,一直在试途构建一个足以满足现实需求的大数据集,所以那个时候只基于自己的数据集训练,不二次训练,导致mdvsfa那个数据集召回率低,所以设置了0.6。
---Original--- From: "Yang @.> Date: Thu, Aug 15, 2024 20:08 PM To: @.>; Cc: @.**@.>; Subject: Re: [SeaHifly/Infrared-Small-Target] How to train own dataset? (Issue#3)
您好,还有几个问题想请教一下,在测试更换了自己训练好的模型和测试集,但是老是报错,报错信息如下,另外想问下如何才能得到可视化结果吗?最后还想问下您论文中使用的acc(rec=0.9),acc(rec=0.6)表示什么意思?是recall和precision的意思吗?期待您的回信。 Traceback (most recent call last): File "/home/wuren123/yb/multi task/model contrast/Multi-scale Multi-level/MMRFF_TestSE_FL_02.py", line 121, in test_res_path = create_time_path(model_load_path) File "/home/wuren123/yb/multi task/model contrast/Multi-scale Multi-level/MMRFF_BasicOperate.py", line 57, in create_time_path os.mkdir(str_time_path) FileNotFoundError: [Errno 2] No such file or directory: '/home/wuren123/yb/multi task/model contrast/Multi-scale Multi-level/model_results/model_480.pkl/20240815195503'
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>
刚刚已经调试出来了,想请教下,我如果想取acc和recall以及ap50的性能指标,我应该取其中的哪一个值,因为我看到有好多值。
另外就是,我如果想要得到测试集的可视化检测结果,应该怎么操作?
我个人认为:评价问题非常依赖个人在认知上的“喜好”,实话实说,每个人,不论是审稿人还是你我都一定有不同程度的偏见。比如现在TGRS上不同论文的指标也不会完全一样,你应该基于自己的理解来决定什么指标是最正确和最合适的,而不是问别人什么指标最好。
比如一般物体检测里AP50是最常见的指标之一,这个在红外小目标里作为指标是否合适,我那个时候,包括现在也认为是不合适的,至少基于我的理解如果小目标的大小如果主体小于6×6甚至4×4就不太科学。你看看你是怎么理解你的任务的。其实不同学者的红外小目标任务也不一样,虽然我前面说过我定义16×16以下的,但其实我玩的主体在6×6以下,你上次说过的数据集里有很大的目标吧。所以,不同任务种类的红外小目标任务,可能就值得用不同的指标来评价,这与论文里的方法一样,在不同情况下会有优劣之分,很少有方法或指标能胜任一切。你只要是基于自己理性判断做出的选择就行,如果审稿人要求你增加其他他认为更合适的指标,你再增加就行。 至于如何修改评价指标,你自己根据test文件增加评价函数就好了。我现在是习惯所有模型都将结果输出,然后单独调用一个py来评价,这样所有模型的评价一定是相同基线,哪怕有错误也如此。
可视化结果的话你看看test.py里有没有b_save或者MMRFF_Show_Save_Res_Features函数,如果没有的话,你就自己写下个存结果的函数。gt_rect, gt_pos, detect_rect, obj, ori_img,这应该是我常用 的习惯性名称,分别代表真值(可能是相对栅格的坐标),真值所在栅格位置,检测结果,栅格置信度和原始图像。
xuhai_0513 @.***
原始邮件
发件人:"Yang Bo"< @.*** >;
发件时间:2024/8/15 20:22
收件人:"SeaHifly/Infrared-Small-Target"< @.*** >;
抄送人:"SeaHifly"< @. >;"Comment"< @. >;
主题:Re: [SeaHifly/Infrared-Small-Target] How to train own dataset? (Issue#3)
刚刚已经调试出来了,想请教下,我如果想取acc和recall以及ap50的性能指标,我应该取其中的哪一个值,因为我看到有好多值。 image.png (view on web)
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>
好的,感谢您的回复,明白了。
I want to train my own dataset, what should I do.