Dawn-LX/OpenVoc-VidVRD

Different traj_info_dir during train & eval stage

Opened this issue · 5 comments

Hi, I find that during object tracklet classification stage, traj_info_dir in config file (such as experiment/TrajCls_VidVRD/NoBgEmb/cfg_.py) is data0/VidVRD-II/tracklets_results/VidVRD_segment30_tracking_results_th-15-5. When comes to relation classification stage, traj_info_dir in config file (such as experiment/RelationCls_VidVRD/RePro/stage2/cfg_.py) is data0/VidVRD-II/tracklets_results/VidVRD_segment30_tracking_results. Why filtered trajs are only used for TrajCls module?

Hi, I find that during object tracklet classification stage, traj_info_dir in config file (such as experiment/TrajCls_VidVRD/NoBgEmb/cfg_.py) is data0/VidVRD-II/tracklets_results/VidVRD_segment30_tracking_results_th-15-5. When comes to relation classification stage, traj_info_dir in config file (such as experiment/RelationCls_VidVRD/RePro/stage2/cfg_.py) is data0/VidVRD-II/tracklets_results/VidVRD_segment30_tracking_results. Why filtered trajs are only used for TrajCls module?

Hi, sorry for this confusion. In fact we also use the filtered traj for training RelationCls Module.
in class VidVRDUnifiedDataset(object):, we assign relation cls's label based on the filtered traj. refer to

path_ = os.path.join(cache_dir,"{}VidVRDtrain_Labels_withGtTrainingData_th-{}-{}-{}.pkl".format(self.cache_tag,traj_len_th,min_region_th,vpoi_th))

also refer to

if self.is_filter_out(h,w,traj_len):

Hi, I find that during object tracklet classification stage, traj_info_dir in config file (such as experiment/TrajCls_VidVRD/NoBgEmb/cfg_.py) is data0/VidVRD-II/tracklets_results/VidVRD_segment30_tracking_results_th-15-5. When comes to relation classification stage, traj_info_dir in config file (such as experiment/RelationCls_VidVRD/RePro/stage2/cfg_.py) is data0/VidVRD-II/tracklets_results/VidVRD_segment30_tracking_results. Why filtered trajs are only used for TrajCls module?

Hi, sorry for this confusion. In fact we also use the filtered traj for training RelationCls Module. in class VidVRDUnifiedDataset(object):, we assign relation cls's label based on the filtered traj. refer to

path_ = os.path.join(cache_dir,"{}VidVRDtrain_Labels_withGtTrainingData_th-{}-{}-{}.pkl".format(self.cache_tag,traj_len_th,min_region_th,vpoi_th))

also refer to

if self.is_filter_out(h,w,traj_len):

Thank you for your explanation! So why not directly use the filtered traj_info as the same as in TrajCls Module (I mean set traj_info_dir in experiment/RelationCls_VidVRD/RePro/stage2/cfg_.py as data0/VidVRD-II/tracklets_results/VidVRD_segment30_tracking_results_th-15-5, and can save the time of filtering trajs during building datasets)? Or the filtered trajs are the same as the trajs in file VidVRD_segment30_tracking_results_th-15-5?

Hi, I find that during object tracklet classification stage, traj_info_dir in config file (such as experiment/TrajCls_VidVRD/NoBgEmb/cfg_.py) is data0/VidVRD-II/tracklets_results/VidVRD_segment30_tracking_results_th-15-5. When comes to relation classification stage, traj_info_dir in config file (such as experiment/RelationCls_VidVRD/RePro/stage2/cfg_.py) is data0/VidVRD-II/tracklets_results/VidVRD_segment30_tracking_results. Why filtered trajs are only used for TrajCls module?

Hi, sorry for this confusion. In fact we also use the filtered traj for training RelationCls Module. in class VidVRDUnifiedDataset(object):, we assign relation cls's label based on the filtered traj. refer to

path_ = os.path.join(cache_dir,"{}VidVRDtrain_Labels_withGtTrainingData_th-{}-{}-{}.pkl".format(self.cache_tag,traj_len_th,min_region_th,vpoi_th))

also refer to
if self.is_filter_out(h,w,traj_len):

Thank you for your explanation! So why not directly use the filtered traj_info as the same as in TrajCls Module (I mean set traj_info_dir in experiment/RelationCls_VidVRD/RePro/stage2/cfg_.py as data0/VidVRD-II/tracklets_results/VidVRD_segment30_tracking_results_th-15-5, and can save the time of filtering trajs during building datasets)? Or the filtered trajs are the same as the trajs in file VidVRD_segment30_tracking_results_th-15-5?

  1. They are indeed the same.
  2. actually, we directly use the cached assigned labels when training RelationCls module.

Hi, I find that during object tracklet classification stage, traj_info_dir in config file (such as experiment/TrajCls_VidVRD/NoBgEmb/cfg_.py) is data0/VidVRD-II/tracklets_results/VidVRD_segment30_tracking_results_th-15-5. When comes to relation classification stage, traj_info_dir in config file (such as experiment/RelationCls_VidVRD/RePro/stage2/cfg_.py) is data0/VidVRD-II/tracklets_results/VidVRD_segment30_tracking_results. Why filtered trajs are only used for TrajCls module?

Hi, sorry for this confusion. In fact we also use the filtered traj for training RelationCls Module. in class VidVRDUnifiedDataset(object):, we assign relation cls's label based on the filtered traj. refer to

path_ = os.path.join(cache_dir,"{}VidVRDtrain_Labels_withGtTrainingData_th-{}-{}-{}.pkl".format(self.cache_tag,traj_len_th,min_region_th,vpoi_th))

also refer to
if self.is_filter_out(h,w,traj_len):

Thank you for your explanation! So why not directly use the filtered traj_info as the same as in TrajCls Module (I mean set traj_info_dir in experiment/RelationCls_VidVRD/RePro/stage2/cfg_.py as data0/VidVRD-II/tracklets_results/VidVRD_segment30_tracking_results_th-15-5, and can save the time of filtering trajs during building datasets)? Or the filtered trajs are the same as the trajs in file VidVRD_segment30_tracking_results_th-15-5?

  1. They are indeed the same.
  2. actually, we directly use the cached assigned labels when training RelationCls module.

Thanks for your patient help!

Thank you for your help, @Dawn-LX If I want to use the unseen video and generate the subject-relationship-object triplet. Can I use the data preparing script from VidSGG-TrajDataPrepare and then evaluate it by eval_script from OpenVoc-VidVRD.

Which variable in this eval script can provide information about this triplet? Is it triplet_5tuple or triplets_topk? Is triplet_scores the probability obtained? Thank u so much