1.要复现prepro_data.py首先阅读文中的README.MD
2.因为文章中的数据集都是要带有challenge tags的,所以你可以下载他已经标注好challenge tags的数据集,不然你一张图片一张图片的标challenge tags是非常麻烦的,尤其一个文件夹里面有几千张图片,下载好数据集后,运行prepro_data.py文件。
3.于是对prepro_data.py文件中的一系列路径进行修改:
①首先看自己是要训练什么数据集:如果是RGBT234数据集的话,set_type就改为’RGBT234’,如果是GTOT就改为GTOT
②seq_home就改为你存储数据集的前一个目录
③challenge_type就改为你想训练的特殊属性:
比如‘ALL’,‘FM’,'OCC’等,注意:他这些标签只有下载了他REDEME里面说的数据集才有,不然是需要自己标注的,原始数据集是没有这些标签的!!!且这个要执行五次,因为他有五种属性!!!
④修改seqlist_path和output_path的路径:
seqlist_path是数据集中自带的txt文件,他是数据集中文件夹的名字列表
output_path是该文件执行完之后保存的位置
4.至此prepro_data.py复现完毕,但注意训练的每一阶段都必须重新运行一次这个文件,并生成.pkl文件。
5.接下来开始复现训练阶段:
他训练一共分为了三轮,如他所说每一轮都需要改Pretrain_option.py里的训练参数,第一阶段使用第一个参数,第二个阶段使用第二个参数,第三阶段使用最后一个参数,这样才能每一阶段都生成不同的.pkl文件。
接着第一阶段只需要把五个不同的挑战属性进行五次训练,即FM、OCC、ILL、SV、TC,而不需要把ALL也进行训练了,他只保存五种挑战属性的模型参数;第二阶段它将主干网络和所有的挑战属性分支参数一起进行训练,进行融合,这个过程中你需要改module_stage2.py文件里的一些路径,这个路径是你第一阶段生成的五个.pth文件,这个需要根据你自己生成文件的路径来改,如下:(注意这个过程只需要运行一遍ALL就行了,我之前不知道,貌似也是把他当成第一阶段,分别训练了六遍,因为他有六个属性,一遍500轮,时间浪费的太多啦,当时还在想这训练一整遍不得一周啊?)
最后训练第三阶段,第三阶段也只用训练一遍,即第二阶段得到的结果,第三阶段训练一次就可以了,但.pkl文件还是要有所修改的!
写在最后,因为RGB-T是非常小的方向,如果有人需要的话,我在更新他的Train和Test的复现,没人需要,就当是自己复现文章做的一次简单的记录了,也希望研究这个方向的朋友可以留下自己的联系方式,我们一起交流交流!而且这是我的理解,如果有不对的地方,请帮我指出来,大家一起学习!
以下是复现Test的效果展示:
Attribute-Based