From 76ccaa54e9a1aa224ffac27787498f7fab451bb6 Mon Sep 17 00:00:00 2001 From: unknown <365893829@qq.com> Date: Mon, 16 Jan 2023 16:56:38 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0mmaction2=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 +- .../.github/CODE_OF_CONDUCT.md | 76 + .../mmaction2-0.24.1/.github/CONTRIBUTING.md | 1 + .../.github/ISSUE_TEMPLATE/config.yml | 9 + .../.github/ISSUE_TEMPLATE/error-report.md | 49 + .../.github/ISSUE_TEMPLATE/feature_request.md | 27 + .../ISSUE_TEMPLATE/general_questions.md | 14 + .../reimplementation_questions.md | 69 + .../.github/pull_request_template.md | 26 + .../.github/workflows/build.yml | 248 +++ .../.github/workflows/deploy.yml | 26 + .../.github/workflows/lint.yml | 27 + .../.github/workflows/test_mim.yml | 47 + openmmlab_test/mmaction2-0.24.1/.gitignore | 140 ++ .../mmaction2-0.24.1/.pre-commit-config.yaml | 52 + openmmlab_test/mmaction2-0.24.1/.pylintrc | 624 ++++++ .../mmaction2-0.24.1/.readthedocs.yml | 7 + openmmlab_test/mmaction2-0.24.1/CITATION.cff | 8 + openmmlab_test/mmaction2-0.24.1/LICENSE | 203 ++ openmmlab_test/mmaction2-0.24.1/MANIFEST.in | 3 + openmmlab_test/mmaction2-0.24.1/README.md | 320 +++ .../mmaction2-0.24.1/README_zh-CN.md | 331 +++ .../configs/_base_/default_runtime.py | 18 + .../configs/_base_/models/audioonly_r50.py | 18 + .../configs/_base_/models/bmn_400x100.py | 12 + .../configs/_base_/models/bsn_pem.py | 13 + .../configs/_base_/models/bsn_tem.py | 8 + .../_base_/models/c3d_sports1m_pretrained.py | 23 + .../configs/_base_/models/i3d_r50.py | 27 + .../configs/_base_/models/ircsn_r152.py | 22 + .../configs/_base_/models/r2plus1d_r34.py | 28 + .../configs/_base_/models/slowfast_r50.py | 39 + .../configs/_base_/models/slowonly_r50.py | 22 + .../configs/_base_/models/tanet_r50.py | 20 + .../configs/_base_/models/tin_r50.py | 21 + .../configs/_base_/models/tpn_slowonly_r50.py | 40 + .../configs/_base_/models/tpn_tsm_r50.py | 36 + .../configs/_base_/models/trn_r50.py | 22 + .../configs/_base_/models/tsm_mobilenet_v2.py | 22 + .../configs/_base_/models/tsm_r50.py | 21 + .../configs/_base_/models/tsn_r50.py | 19 + .../configs/_base_/models/tsn_r50_audio.py | 13 + .../configs/_base_/models/x3d.py | 14 + .../configs/_base_/schedules/adam_20e.py | 7 + .../configs/_base_/schedules/sgd_100e.py | 10 + .../_base_/schedules/sgd_150e_warmup.py | 13 + .../configs/_base_/schedules/sgd_50e.py | 10 + .../configs/_base_/schedules/sgd_tsm_100e.py | 12 + .../configs/_base_/schedules/sgd_tsm_50e.py | 12 + .../schedules/sgd_tsm_mobilenet_v2_100e.py | 12 + .../schedules/sgd_tsm_mobilenet_v2_50e.py | 12 + .../detection/_base_/models/slowonly_r50.py | 43 + .../_base_/models/slowonly_r50_nl.py | 50 + .../configs/detection/acrn/README.md | 97 + .../configs/detection/acrn/README_zh-CN.md | 81 + .../configs/detection/acrn/metafile.yml | 49 + ...etrained_r50_8x8x1_cosine_10e_ava22_rgb.py | 170 ++ ...pretrained_r50_8x8x1_cosine_10e_ava_rgb.py | 170 ++ .../configs/detection/ava/README.md | 146 ++ .../configs/detection/ava/README_zh-CN.md | 129 ++ .../configs/detection/ava/metafile.yml | 259 +++ ...etics_pretrained_r50_4x16x1_20e_ava_rgb.py | 175 ++ ...etics_pretrained_r50_4x16x1_20e_ava_rgb.py | 174 ++ ...d_r50_4x16x1_20e_ava_rgb_custom_classes.py | 184 ++ ...netics_pretrained_r50_8x8x1_20e_ava_rgb.py | 175 ++ ...etrained_r50_8x8x1_cosine_10e_ava22_rgb.py | 168 ++ ...etrained_r50_8x8x1_cosine_10e_ava22_rgb.py | 171 ++ ...etrained_r50_8x8x1_cosine_10e_ava22_rgb.py | 169 ++ ...etics_pretrained_r101_8x8x1_20e_ava_rgb.py | 158 ++ ...etics_pretrained_r50_4x16x1_20e_ava_rgb.py | 158 ++ ...d_r50_4x16x1_20e_ava_rgb_custom_classes.py | 169 ++ ...etics_pretrained_r50_4x16x1_10e_ava_rgb.py | 120 ++ ...netics_pretrained_r50_8x8x1_10e_ava_rgb.py | 119 + ...ource_pretrained_r101_8x8x1_20e_ava_rgb.py | 158 ++ ...ource_pretrained_r50_4x16x1_20e_ava_rgb.py | 159 ++ .../configs/detection/lfb/README.md | 132 ++ .../configs/detection/lfb/README_zh-CN.md | 103 + ...trained_slowonly_r50_4x16x1_20e_ava_rgb.py | 137 ++ ...trained_slowonly_r50_4x16x1_20e_ava_rgb.py | 137 ++ ...trained_slowonly_r50_4x16x1_20e_ava_rgb.py | 147 ++ .../lfb/lfb_slowonly_r50_ava_infer.py | 65 + .../configs/detection/lfb/metafile.yml | 70 + .../configs/localization/bmn/README.md | 115 + .../configs/localization/bmn/README_zh-CN.md | 98 + .../bmn_400x100_2x8_9e_activitynet_feature.py | 88 + .../configs/localization/bmn/metafile.yml | 73 + .../configs/localization/bsn/README.md | 173 ++ .../configs/localization/bsn/README_zh-CN.md | 156 ++ ...em_400x100_1x16_20e_activitynet_feature.py | 95 + .../bsn_pgm_400x100_activitynet_feature.py | 32 + ...em_400x100_1x16_20e_activitynet_feature.py | 79 + .../configs/localization/bsn/metafile.yml | 85 + .../configs/localization/ssn/README.md | 79 + .../configs/localization/ssn/README_zh-CN.md | 63 + .../configs/localization/ssn/metafile.yml | 30 + .../ssn/ssn_r50_450e_thumos14_rgb_test.py | 109 + .../ssn/ssn_r50_450e_thumos14_rgb_train.py | 154 ++ .../configs/recognition/c3d/README.md | 87 + .../configs/recognition/c3d/README_zh-CN.md | 69 + .../c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb.py | 95 + .../configs/recognition/c3d/metafile.yml | 30 + .../configs/recognition/csn/README.md | 108 + .../configs/recognition/csn/README_zh-CN.md | 92 + ...frozen_r152_32x2x1_180e_kinetics400_rgb.py | 95 + ...nfrozen_r152_32x2x1_58e_kinetics400_rgb.py | 15 + ...nfrozen_r152_32x2x1_58e_kinetics400_rgb.py | 88 + ...frozen_r152_32x2x1_180e_kinetics400_rgb.py | 95 + ...nfrozen_r50_32x2x1_180e_kinetics400_rgb.py | 97 + ...nfrozen_r152_32x2x1_58e_kinetics400_rgb.py | 102 + ...bnfrozen_r50_32x2x1_58e_kinetics400_rgb.py | 103 + ...trained_r152_32x2x1_58e_kinetics400_rgb.py | 100 + ...nfrozen_r152_32x2x1_58e_kinetics400_rgb.py | 88 + .../configs/recognition/csn/metafile.yml | 204 ++ .../configs/recognition/i3d/README.md | 108 + .../configs/recognition/i3d/README_zh-CN.md | 91 + ...product_r50_32x2x1_100e_kinetics400_rgb.py | 96 + ...aussian_r50_32x2x1_100e_kinetics400_rgb.py | 13 + ...aussian_r50_32x2x1_100e_kinetics400_rgb.py | 13 + .../i3d_r50_32x2x1_100e_kinetics400_rgb.py | 86 + ...d_r50_dense_32x2x1_100e_kinetics400_rgb.py | 80 + ...3d_r50_heavy_8x8x1_100e_kinetics400_rgb.py | 88 + ...3d_r50_lazy_32x2x1_100e_kinetics400_rgb.py | 84 + ...d_r50_video_32x2x1_100e_kinetics400_rgb.py | 83 + ..._video_heavy_8x8x1_100e_kinetics400_rgb.py | 83 + ...ideo_imgaug_32x2x1_100e_kinetics400_rgb.py | 111 + ...o_inference_32x2x1_100e_kinetics400_rgb.py | 30 + .../configs/recognition/i3d/metafile.yml | 237 ++ .../configs/recognition/omnisource/README.md | 80 + .../recognition/omnisource/README_zh-CN.md | 72 + .../recognition/omnisource/metafile.yml | 388 ++++ .../recognition/omnisource/pipeline.png | Bin 0 -> 245041 bytes ...8x8x1_256e_minikinetics_googleimage_rgb.py | 130 ++ ...50_8x8x1_256e_minikinetics_insvideo_rgb.py | 134 ++ ...8x8x1_256e_minikinetics_kineticsraw_rgb.py | 133 ++ ..._8x8x1_256e_minikinetics_omnisource_rgb.py | 181 ++ ...lowonly_r50_8x8x1_256e_minikinetics_rgb.py | 108 + ...50_8x8x1_256e_minikinetics_webimage_rgb.py | 132 ++ ...1x1x8_100e_minikinetics_googleimage_rgb.py | 126 ++ ...50_1x1x8_100e_minikinetics_insvideo_rgb.py | 130 ++ ...1x1x8_100e_minikinetics_kineticsraw_rgb.py | 129 ++ ..._1x1x8_100e_minikinetics_omnisource_rgb.py | 177 ++ .../tsn_r50_1x1x8_100e_minikinetics_rgb.py | 100 + ...50_1x1x8_100e_minikinetics_webimage_rgb.py | 129 ++ .../configs/recognition/r2plus1d/README.md | 88 + .../recognition/r2plus1d/README_zh-CN.md | 73 + .../configs/recognition/r2plus1d/metafile.yml | 99 + ...2plus1d_r34_32x2x1_180e_kinetics400_rgb.py | 81 + ...r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py | 92 + ...1d_r34_video_8x8x1_180e_kinetics400_rgb.py | 87 + ...eo_inference_8x8x1_180e_kinetics400_rgb.py | 33 + .../configs/recognition/slowfast/README.md | 101 + .../recognition/slowfast/README_zh-CN.md | 86 + .../configs/recognition/slowfast/metafile.yml | 260 +++ ...ultigrid_r50_8x8x1_358e_kinetics400_rgb.py | 153 ++ ...t_prebn_r50_4x16x1_256e_kinetics400_rgb.py | 96 + ...n_r50_8x8x1_256e_kinetics400_rgb_steplr.py | 15 + ...lowfast_r101_8x8x1_256e_kinetics400_rgb.py | 137 ++ ...st_r101_r50_4x16x1_256e_kinetics400_rgb.py | 136 ++ ...st_r152_r50_4x16x1_256e_kinetics400_rgb.py | 136 ++ .../slowfast_r50_16x8x1_22e_sthv1_rgb.py | 111 + ...lowfast_r50_4x16x1_256e_kinetics400_rgb.py | 94 + ...slowfast_r50_8x8x1_256e_kinetics400_rgb.py | 10 + ...t_r50_8x8x1_256e_kinetics400_rgb_steplr.py | 13 + ...t_r50_video_4x16x1_256e_kinetics400_rgb.py | 85 + ...o_inference_4x16x1_256e_kinetics400_rgb.py | 32 + .../configs/recognition/slowonly/README.md | 160 ++ .../recognition/slowonly/README_zh-CN.md | 145 ++ ...edcrop_256p_4x16x1_256e_kinetics400_rgb.py | 115 + ...edcrop_320p_4x16x1_256e_kinetics400_rgb.py | 114 + ...rop_340x256_4x16x1_256e_kinetics400_rgb.py | 114 + .../configs/recognition/slowonly/metafile.yml | 550 +++++ ...et_pretrained_r50_4x16x1_120e_gym99_rgb.py | 89 + ...trained_r50_4x16x1_150e_kinetics400_rgb.py | 96 + ...net_pretrained_r50_8x4x1_64e_hmdb51_rgb.py | 93 + ...enet_pretrained_r50_8x4x1_64e_sthv1_rgb.py | 100 + ...enet_pretrained_r50_8x4x1_64e_sthv2_rgb.py | 97 + ...net_pretrained_r50_8x4x1_64e_ucf101_rgb.py | 93 + ...etrained_r50_8x8x1_150e_kinetics400_rgb.py | 96 + ...net_pretrained_r50_8x8x1_64e_jester_rgb.py | 97 + ...0_pretrained_r50_4x16x1_120e_gym99_flow.py | 101 + ...400_pretrained_r50_8x4x1_40e_hmdb51_rgb.py | 81 + ...400_pretrained_r50_8x4x1_40e_ucf101_rgb.py | 97 + ...aussian_r50_4x16x1_150e_kinetics400_rgb.py | 93 + ...gaussian_r50_8x8x1_150e_kinetics400_rgb.py | 98 + ...lowonly_r101_8x8x1_196e_kinetics400_rgb.py | 21 + ...owonly_r50_4x16x1_256e_kinetics400_flow.py | 103 + ...lowonly_r50_4x16x1_256e_kinetics400_rgb.py | 93 + ...lowonly_r50_8x8x1_256e_kinetics400_flow.py | 103 + ...slowonly_r50_8x8x1_256e_kinetics400_rgb.py | 93 + ..._r50_clip_feature_extraction_4x16x1_rgb.py | 45 + ...y_r50_video_4x16x1_256e_kinetics400_rgb.py | 96 + ...ly_r50_video_8x8x1_256e_kinetics600_rgb.py | 93 + ...ly_r50_video_8x8x1_256e_kinetics700_rgb.py | 92 + ...o_inference_4x16x1_256e_kinetics400_rgb.py | 33 + .../configs/recognition/tanet/README.md | 92 + .../configs/recognition/tanet/README_zh-CN.md | 77 + .../configs/recognition/tanet/metafile.yml | 80 + .../tanet/tanet_r50_1x1x16_50e_sthv1_rgb.py | 102 + .../tanet/tanet_r50_1x1x8_50e_sthv1_rgb.py | 100 + ...et_r50_dense_1x1x8_100e_kinetics400_rgb.py | 100 + .../configs/recognition/timesformer/README.md | 88 + .../recognition/timesformer/README_zh-CN.md | 72 + .../recognition/timesformer/metafile.yml | 70 + ...former_divST_8x32x1_15e_kinetics400_rgb.py | 120 ++ ...rmer_jointST_8x32x1_15e_kinetics400_rgb.py | 119 + ...er_spaceOnly_8x32x1_15e_kinetics400_rgb.py | 118 + .../configs/recognition/tin/README.md | 102 + .../configs/recognition/tin/README_zh-CN.md | 85 + .../configs/recognition/tin/metafile.yml | 76 + .../tin/tin_r50_1x1x8_40e_sthv1_rgb.py | 106 + .../tin/tin_r50_1x1x8_40e_sthv2_rgb.py | 103 + ..._finetune_r50_1x1x8_50e_kinetics400_rgb.py | 93 + .../configs/recognition/tpn/README.md | 92 + .../configs/recognition/tpn/README_zh-CN.md | 74 + .../configs/recognition/tpn/metafile.yml | 76 + ...ed_slowonly_r50_8x8x1_150e_kinetics_rgb.py | 89 + ...pn_slowonly_r50_8x8x1_150e_kinetics_rgb.py | 7 + .../tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb.py | 89 + .../configs/recognition/trn/README.md | 94 + .../configs/recognition/trn/README_zh-CN.md | 78 + .../configs/recognition/trn/metafile.yml | 55 + .../trn/trn_r50_1x1x8_50e_sthv1_rgb.py | 102 + .../trn/trn_r50_1x1x8_50e_sthv2_rgb.py | 99 + .../configs/recognition/tsm/README.md | 193 ++ .../configs/recognition/tsm/README_zh-CN.md | 184 ++ .../configs/recognition/tsm/metafile.yml | 830 +++++++ ...00_pretrained_r50_1x1x16_25e_hmdb51_rgb.py | 101 + ...00_pretrained_r50_1x1x16_25e_ucf101_rgb.py | 101 + ...400_pretrained_r50_1x1x8_25e_hmdb51_rgb.py | 101 + ...400_pretrained_r50_1x1x8_25e_ucf101_rgb.py | 101 + ...enetv2_dense_1x1x8_100e_kinetics400_rgb.py | 88 + ..._video_dense_1x1x8_100e_kinetics400_rgb.py | 96 + ...erence_dense_1x1x8_100e_kinetics400_rgb.py | 33 + ...t_product_r50_1x1x8_50e_kinetics400_rgb.py | 96 + ..._gaussian_r50_1x1x8_50e_kinetics400_rgb.py | 96 + ..._gaussian_r50_1x1x8_50e_kinetics400_rgb.py | 96 + .../tsm/tsm_r101_1x1x8_50e_sthv1_rgb.py | 7 + .../tsm/tsm_r101_1x1x8_50e_sthv2_rgb.py | 90 + .../tsm_r50_1x1x16_100e_kinetics400_rgb.py | 7 + .../tsm/tsm_r50_1x1x16_50e_kinetics400_rgb.py | 95 + .../tsm/tsm_r50_1x1x16_50e_sthv1_rgb.py | 99 + .../tsm/tsm_r50_1x1x16_50e_sthv2_rgb.py | 96 + .../tsm/tsm_r50_1x1x8_100e_kinetics400_rgb.py | 6 + .../tsm/tsm_r50_1x1x8_50e_jester_rgb.py | 91 + .../tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py | 87 + .../tsm/tsm_r50_1x1x8_50e_sthv1_rgb.py | 95 + .../tsm/tsm_r50_1x1x8_50e_sthv2_rgb.py | 94 + .../tsm/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb.py | 115 + ...sm_r50_dense_1x1x8_100e_kinetics400_rgb.py | 87 + ...tsm_r50_dense_1x1x8_50e_kinetics400_rgb.py | 7 + .../tsm/tsm_r50_flip_1x1x8_50e_sthv1_rgb.py | 99 + ...50_flip_randaugment_1x1x8_50e_sthv1_rgb.py | 100 + ...gpu_normalize_1x1x8_50e_kinetics400_rgb.py | 93 + .../tsm/tsm_r50_mixup_1x1x8_50e_sthv1_rgb.py | 114 + .../tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb.py | 96 + ...r50_ptv_randaugment_1x1x8_50e_sthv1_rgb.py | 96 + ...tsm_r50_randaugment_1x1x8_50e_sthv1_rgb.py | 96 + .../tsm_r50_video_1x1x16_50e_diving48_rgb.py | 102 + .../tsm_r50_video_1x1x8_50e_diving48_rgb.py | 100 + ...tsm_r50_video_1x1x8_50e_kinetics400_rgb.py | 94 + ...eo_inference_1x1x8_100e_kinetics400_rgb.py | 31 + ...oral_pool_r50_1x1x8_50e_kinetics400_rgb.py | 8 + .../configs/recognition/tsn/README.md | 248 +++ .../configs/recognition/tsn/README_zh-CN.md | 234 ++ ...ense161_320p_1x1x3_100e_kinetics400_rgb.py | 99 + ...1_32x4d_320p_1x1x3_100e_kinetics400_rgb.py | 108 + ...r_video_320p_1x1x3_100e_kinetics400_rgb.py | 103 + ...alecrop_256p_1x1x3_100e_kinetics400_rgb.py | 89 + ...alecrop_320p_1x1x3_100e_kinetics400_rgb.py | 89 + ...crop_340x256_1x1x3_100e_kinetics400_rgb.py | 88 + ...zedcrop_256p_1x1x3_100e_kinetics400_rgb.py | 83 + ...zedcrop_320p_1x1x3_100e_kinetics400_rgb.py | 83 + ...crop_340x256_1x1x3_100e_kinetics400_rgb.py | 84 + ...256p_1x1x25_10crop_100e_kinetics400_rgb.py | 32 + ..._256p_1x1x25_3crop_100e_kinetics400_rgb.py | 32 + ...320p_1x1x25_10crop_100e_kinetics400_rgb.py | 32 + ..._320p_1x1x25_3crop_100e_kinetics400_rgb.py | 32 + ...x256_1x1x25_10crop_100e_kinetics400_rgb.py | 32 + ...0x256_1x1x25_3crop_100e_kinetics400_rgb.py | 32 + .../hvu/tsn_r18_1x1x8_100e_hvu_action_rgb.py | 102 + .../tsn_r18_1x1x8_100e_hvu_attribute_rgb.py | 102 + .../hvu/tsn_r18_1x1x8_100e_hvu_concept_rgb.py | 102 + .../hvu/tsn_r18_1x1x8_100e_hvu_event_rgb.py | 102 + .../hvu/tsn_r18_1x1x8_100e_hvu_object_rgb.py | 102 + .../hvu/tsn_r18_1x1x8_100e_hvu_scene_rgb.py | 102 + .../configs/recognition/tsn/metafile.yml | 960 +++++++++ ...tsn_fp16_r50_1x1x3_100e_kinetics400_rgb.py | 89 + .../tsn/tsn_r101_1x1x5_50e_mmit_rgb.py | 116 + .../tsn/tsn_r50_1x1x16_50e_sthv1_rgb.py | 94 + .../tsn/tsn_r50_1x1x16_50e_sthv2_rgb.py | 92 + .../tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py | 86 + .../tsn/tsn_r50_1x1x3_75e_ucf101_rgb.py | 91 + .../tsn/tsn_r50_1x1x6_100e_mit_rgb.py | 95 + .../tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb.py | 90 + ...sn_r50_1x1x8_50e_hmdb51_kinetics400_rgb.py | 91 + .../tsn/tsn_r50_1x1x8_50e_hmdb51_mit_rgb.py | 90 + .../tsn/tsn_r50_1x1x8_50e_sthv1_rgb.py | 101 + .../tsn/tsn_r50_1x1x8_50e_sthv2_rgb.py | 93 + ...tsn_r50_320p_1x1x3_100e_kinetics400_rgb.py | 75 + ...sn_r50_320p_1x1x3_110e_kinetics400_flow.py | 96 + ...tsn_r50_320p_1x1x8_100e_kinetics400_rgb.py | 85 + ...sn_r50_320p_1x1x8_110e_kinetics400_flow.py | 96 + ...0_320p_1x1x8_150e_activitynet_clip_flow.py | 107 + ..._320p_1x1x8_150e_activitynet_video_flow.py | 105 + ...r50_320p_1x1x8_50e_activitynet_clip_rgb.py | 98 + ...50_320p_1x1x8_50e_activitynet_video_rgb.py | 88 + ...n_r50_clip_feature_extraction_1x1x3_rgb.py | 42 + ...sn_r50_dense_1x1x5_100e_kinetics400_rgb.py | 96 + ...sn_r50_dense_1x1x8_100e_kinetics400_rgb.py | 91 + ...50_inference_1x1x3_100e_kinetics400_rgb.py | 29 + .../tsn_r50_video_1x1x16_100e_diving48_rgb.py | 98 + .../tsn_r50_video_1x1x8_100e_diving48_rgb.py | 98 + ...sn_r50_video_1x1x8_100e_kinetics400_rgb.py | 87 + ...sn_r50_video_1x1x8_100e_kinetics600_rgb.py | 91 + ...sn_r50_video_1x1x8_100e_kinetics700_rgb.py | 91 + ...0_video_320p_1x1x3_100e_kinetics400_rgb.py | 82 + ..._video_dense_1x1x8_100e_kinetics400_rgb.py | 88 + ...video_imgaug_1x1x8_100e_kinetics400_rgb.py | 126 ++ ...eo_inference_1x1x3_100e_kinetics400_rgb.py | 30 + ..._video_mixup_1x1x8_100e_kinetics400_rgb.py | 107 + .../configs/recognition/x3d/README.md | 68 + .../configs/recognition/x3d/README_zh-CN.md | 52 + .../configs/recognition/x3d/metafile.yml | 51 + .../x3d_m_16x5x1_facebook_kinetics400_rgb.py | 33 + .../x3d_s_13x6x1_facebook_kinetics400_rgb.py | 33 + ...0_64x1x1_100e_kinetics400_audio_feature.py | 80 + .../recognition_audio/resnet/README.md | 97 + .../recognition_audio/resnet/README_zh-CN.md | 81 + .../recognition_audio/resnet/metafile.yml | 27 + ...8_64x1x1_100e_kinetics400_audio_feature.py | 89 + .../tsn_r50_64x1x1_100e_kinetics400_audio.py | 84 + .../2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d.py | 79 + .../2sagcn_80e_ntu60_xsub_keypoint_3d.py | 76 + .../configs/skeleton/2s-agcn/README.md | 90 + .../configs/skeleton/2s-agcn/README_zh-CN.md | 76 + .../configs/skeleton/2s-agcn/metafile.yml | 40 + .../configs/skeleton/posec3d/README.md | 149 ++ .../configs/skeleton/posec3d/README_zh-CN.md | 133 ++ .../posec3d/custom_dataset_training.md | 41 + .../configs/skeleton/posec3d/metafile.yml | 159 ++ ...ned_r50_u48_120e_hmdb51_split1_keypoint.py | 131 ++ ...ned_r50_u48_120e_ucf101_split1_keypoint.py | 131 ++ .../slowonly_r50_u48_240e_gym_keypoint.py | 128 ++ .../posec3d/slowonly_r50_u48_240e_gym_limb.py | 134 ++ ...wonly_r50_u48_240e_ntu120_xsub_keypoint.py | 130 ++ .../slowonly_r50_u48_240e_ntu120_xsub_limb.py | 136 ++ ...owonly_r50_u48_240e_ntu60_xsub_keypoint.py | 128 ++ .../slowonly_r50_u48_240e_ntu60_xsub_limb.py | 134 ++ .../configs/skeleton/stgcn/README.md | 84 + .../configs/skeleton/stgcn/README_zh-CN.md | 70 + .../configs/skeleton/stgcn/metafile.yml | 112 + .../skeleton/stgcn/stgcn_80e_babel120.py | 78 + .../skeleton/stgcn/stgcn_80e_babel120_wfl.py | 89 + .../skeleton/stgcn/stgcn_80e_babel60.py | 78 + .../skeleton/stgcn/stgcn_80e_babel60_wfl.py | 86 + .../stgcn/stgcn_80e_ntu60_xsub_keypoint.py | 80 + .../stgcn/stgcn_80e_ntu60_xsub_keypoint_3d.py | 77 + .../mmaction2-0.24.1/demo/README.md | 674 ++++++ openmmlab_test/mmaction2-0.24.1/demo/demo.gif | Bin 0 -> 1642286 bytes .../mmaction2-0.24.1/demo/demo.ipynb | 128 ++ openmmlab_test/mmaction2-0.24.1/demo/demo.mp4 | Bin 0 -> 635539 bytes openmmlab_test/mmaction2-0.24.1/demo/demo.py | 207 ++ .../mmaction2-0.24.1/demo/demo_audio.py | 51 + .../mmaction2-0.24.1/demo/demo_gradcam.gif | Bin 0 -> 424951 bytes .../mmaction2-0.24.1/demo/demo_gradcam.py | 208 ++ .../mmaction2-0.24.1/demo/demo_out.mp4 | Bin 0 -> 423540 bytes .../mmaction2-0.24.1/demo/demo_skeleton.py | 253 +++ .../demo/demo_spatiotemporal_det.py | 421 ++++ .../demo/demo_video_structuralize.py | 786 +++++++ .../demo/faster_rcnn_r50_fpn_2x_coco.py | 182 ++ .../mmaction2-0.24.1/demo/fuse/data_list.txt | 100 + .../demo/hrnet_w32_coco_256x192.py | 174 ++ .../mmaction2-0.24.1/demo/long_video_demo.py | 265 +++ .../demo/mmaction2_tutorial.ipynb | 1461 +++++++++++++ .../demo/mmaction2_tutorial_zh-CN.ipynb | 1665 ++++++++++++++ .../mmaction2-0.24.1/demo/ntu_sample.avi | Bin 0 -> 1119546 bytes .../demo/test_video_structuralize.mp4 | Bin 0 -> 579876 bytes .../demo/visualize_heatmap_volume.ipynb | 403 ++++ .../mmaction2-0.24.1/demo/webcam_demo.py | 223 ++ .../demo/webcam_demo_spatiotemporal_det.py | 856 ++++++++ .../mmaction2-0.24.1/docker/Dockerfile | 25 + .../mmaction2-0.24.1/docker/serve/Dockerfile | 51 + .../docker/serve/config.properties | 5 + .../docker/serve/entrypoint.sh | 12 + openmmlab_test/mmaction2-0.24.1/docs/Makefile | 20 + .../docs/_static/css/readthedocs.css | 6 + .../docs/_static/images/mmaction2.png | Bin 0 -> 31100 bytes openmmlab_test/mmaction2-0.24.1/docs/api.rst | 101 + .../mmaction2-0.24.1/docs/benchmark.md | 160 ++ .../mmaction2-0.24.1/docs/changelog.md | 792 +++++++ openmmlab_test/mmaction2-0.24.1/docs/conf.py | 136 ++ .../mmaction2-0.24.1/docs/data_preparation.md | 154 ++ openmmlab_test/mmaction2-0.24.1/docs/faq.md | 132 ++ .../docs/feature_extraction.md | 70 + .../mmaction2-0.24.1/docs/getting_started.md | 468 ++++ .../mmaction2-0.24.1/docs/index.rst | 75 + .../mmaction2-0.24.1/docs/install.md | 255 +++ openmmlab_test/mmaction2-0.24.1/docs/make.bat | 35 + .../mmaction2-0.24.1/docs/merge_docs.sh | 48 + .../mmaction2-0.24.1/docs/projects.md | 23 + openmmlab_test/mmaction2-0.24.1/docs/stat.py | 174 ++ .../docs/supported_datasets.md | 36 + .../mmaction2-0.24.1/docs/switch_language.md | 3 + .../docs/tutorials/1_config.md | 757 +++++++ .../docs/tutorials/2_finetune.md | 99 + .../docs/tutorials/3_new_dataset.md | 252 +++ .../docs/tutorials/4_data_pipeline.md | 262 +++ .../docs/tutorials/5_new_modules.md | 291 +++ .../docs/tutorials/6_export_model.md | 74 + .../docs/tutorials/7_customize_runtime.md | 350 +++ .../mmaction2-0.24.1/docs/useful_tools.md | 230 ++ .../mmaction2-0.24.1/docs_zh_CN/Makefile | 20 + .../mmaction2-0.24.1/docs_zh_CN/README.md | 1 + .../mmaction2-0.24.1/docs_zh_CN/api.rst | 101 + .../mmaction2-0.24.1/docs_zh_CN/benchmark.md | 157 ++ .../mmaction2-0.24.1/docs_zh_CN/conf.py | 132 ++ .../docs_zh_CN/data_preparation.md | 155 ++ .../mmaction2-0.24.1/docs_zh_CN/demo.md | 630 ++++++ .../mmaction2-0.24.1/docs_zh_CN/faq.md | 112 + .../docs_zh_CN/feature_extraction.md | 70 + .../docs_zh_CN/getting_started.md | 457 ++++ .../mmaction2-0.24.1/docs_zh_CN/index.rst | 74 + .../mmaction2-0.24.1/docs_zh_CN/install.md | 244 +++ .../mmaction2-0.24.1/docs_zh_CN/make.bat | 35 + .../mmaction2-0.24.1/docs_zh_CN/merge_docs.sh | 41 + .../mmaction2-0.24.1/docs_zh_CN/stat.py | 173 ++ .../docs_zh_CN/supported_datasets.md | 34 + .../docs_zh_CN/switch_language.md | 3 + .../docs_zh_CN/tutorials/1_config.md | 748 +++++++ .../docs_zh_CN/tutorials/2_finetune.md | 93 + .../docs_zh_CN/tutorials/3_new_dataset.md | 245 +++ .../docs_zh_CN/tutorials/4_data_pipeline.md | 257 +++ .../docs_zh_CN/tutorials/5_new_modules.md | 279 +++ .../docs_zh_CN/tutorials/6_export_model.md | 75 + .../tutorials/7_customize_runtime.md | 347 +++ .../docs_zh_CN/useful_tools.md | 161 ++ .../mmaction2-0.24.1/mmaction/__init__.py | 16 + .../mmaction/apis/__init__.py | 9 + .../mmaction/apis/inference.py | 192 ++ .../mmaction2-0.24.1/mmaction/apis/test.py | 206 ++ .../mmaction2-0.24.1/mmaction/apis/train.py | 304 +++ .../mmaction/core/__init__.py | 9 + .../mmaction/core/bbox/__init__.py | 6 + .../mmaction/core/bbox/assigners/__init__.py | 4 + .../bbox/assigners/max_iou_assigner_ava.py | 142 ++ .../mmaction/core/bbox/bbox_target.py | 42 + .../mmaction/core/bbox/transforms.py | 57 + .../mmaction/core/dist_utils.py | 43 + .../mmaction/core/evaluation/__init__.py | 18 + .../mmaction/core/evaluation/accuracy.py | 568 +++++ .../core/evaluation/ava_evaluation/README.md | 2 + .../evaluation/ava_evaluation/__init__.py | 1 + .../core/evaluation/ava_evaluation/metrics.py | 142 ++ .../evaluation/ava_evaluation/np_box_list.py | 139 ++ .../evaluation/ava_evaluation/np_box_ops.py | 98 + .../object_detection_evaluation.py | 574 +++++ .../ava_evaluation/per_image_evaluation.py | 358 ++++ .../ava_evaluation/standard_fields.py | 115 + .../mmaction/core/evaluation/ava_utils.py | 240 +++ .../core/evaluation/eval_detection.py | 234 ++ .../mmaction/core/evaluation/eval_hooks.py | 391 ++++ .../mmaction/core/hooks/__init__.py | 4 + .../mmaction/core/hooks/output.py | 68 + .../mmaction/core/lr/__init__.py | 4 + .../mmaction/core/lr/multigridlr.py | 41 + .../mmaction/core/optimizer/__init__.py | 5 + .../mmaction/core/optimizer/copy_of_sgd.py | 12 + .../optimizer/tsm_optimizer_constructor.py | 110 + .../mmaction/core/runner/__init__.py | 4 + .../mmaction/core/runner/omnisource_runner.py | 162 ++ .../mmaction/core/scheduler/__init__.py | 4 + .../mmaction/core/scheduler/lr_updater.py | 40 + .../mmaction/datasets/__init__.py | 28 + .../mmaction/datasets/activitynet_dataset.py | 270 +++ .../mmaction/datasets/audio_dataset.py | 70 + .../datasets/audio_feature_dataset.py | 71 + .../mmaction/datasets/audio_visual_dataset.py | 77 + .../mmaction/datasets/ava_dataset.py | 393 ++++ .../mmaction/datasets/base.py | 289 +++ .../mmaction/datasets/blending_utils.py | 143 ++ .../mmaction/datasets/builder.py | 168 ++ .../mmaction/datasets/dataset_wrappers.py | 71 + .../mmaction/datasets/hvu_dataset.py | 192 ++ .../mmaction/datasets/image_dataset.py | 46 + .../mmaction/datasets/pipelines/__init__.py | 41 + .../datasets/pipelines/augmentations.py | 1905 +++++++++++++++++ .../mmaction/datasets/pipelines/compose.py | 61 + .../mmaction/datasets/pipelines/formatting.py | 490 +++++ .../mmaction/datasets/pipelines/loading.py | 1850 ++++++++++++++++ .../datasets/pipelines/pose_loading.py | 695 ++++++ .../mmaction/datasets/pose_dataset.py | 113 + .../mmaction/datasets/rawframe_dataset.py | 212 ++ .../mmaction/datasets/rawvideo_dataset.py | 147 ++ .../mmaction/datasets/samplers/__init__.py | 5 + .../datasets/samplers/distributed_sampler.py | 142 ++ .../mmaction/datasets/ssn_dataset.py | 882 ++++++++ .../mmaction/datasets/video_dataset.py | 61 + .../mmaction/localization/__init__.py | 11 + .../mmaction/localization/bsn_utils.py | 268 +++ .../mmaction/localization/proposal_utils.py | 95 + .../mmaction/localization/ssn_utils.py | 169 ++ .../mmaction/models/__init__.py | 45 + .../mmaction/models/backbones/__init__.py | 25 + .../mmaction/models/backbones/agcn.py | 338 +++ .../mmaction/models/backbones/c3d.py | 143 ++ .../mmaction/models/backbones/mobilenet_v2.py | 301 +++ .../models/backbones/mobilenet_v2_tsm.py | 41 + .../mmaction/models/backbones/resnet.py | 591 +++++ .../models/backbones/resnet2plus1d.py | 50 + .../mmaction/models/backbones/resnet3d.py | 1034 +++++++++ .../mmaction/models/backbones/resnet3d_csn.py | 157 ++ .../models/backbones/resnet3d_slowfast.py | 531 +++++ .../models/backbones/resnet3d_slowonly.py | 53 + .../mmaction/models/backbones/resnet_audio.py | 374 ++++ .../mmaction/models/backbones/resnet_tin.py | 377 ++++ .../mmaction/models/backbones/resnet_tsm.py | 295 +++ .../mmaction/models/backbones/stgcn.py | 281 +++ .../mmaction/models/backbones/tanet.py | 115 + .../mmaction/models/backbones/timesformer.py | 285 +++ .../mmaction/models/backbones/x3d.py | 524 +++++ .../mmaction/models/builder.py | 92 + .../mmaction/models/common/__init__.py | 14 + .../mmaction/models/common/conv2plus1d.py | 105 + .../mmaction/models/common/conv_audio.py | 105 + .../mmaction/models/common/lfb.py | 189 ++ .../mmaction/models/common/sub_batchnorm3d.py | 75 + .../mmaction/models/common/tam.py | 122 ++ .../mmaction/models/common/transformer.py | 216 ++ .../mmaction/models/heads/__init__.py | 25 + .../mmaction/models/heads/audio_tsn_head.py | 74 + .../mmaction/models/heads/base.py | 117 + .../mmaction/models/heads/bbox_head.py | 306 +++ .../mmaction/models/heads/fbo_head.py | 401 ++++ .../mmaction/models/heads/i3d_head.py | 74 + .../mmaction/models/heads/lfb_infer_head.py | 148 ++ .../mmaction/models/heads/misc_head.py | 134 ++ .../mmaction/models/heads/roi_head.py | 128 ++ .../mmaction/models/heads/slowfast_head.py | 80 + .../mmaction/models/heads/ssn_head.py | 413 ++++ .../mmaction/models/heads/stgcn_head.py | 65 + .../mmaction/models/heads/timesformer_head.py | 41 + .../mmaction/models/heads/tpn_head.py | 91 + .../mmaction/models/heads/trn_head.py | 211 ++ .../mmaction/models/heads/tsm_head.py | 112 + .../mmaction/models/heads/tsn_head.py | 95 + .../mmaction/models/heads/x3d_head.py | 90 + .../mmaction/models/localizers/__init__.py | 7 + .../mmaction/models/localizers/base.py | 262 +++ .../mmaction/models/localizers/bmn.py | 417 ++++ .../mmaction/models/localizers/bsn.py | 395 ++++ .../mmaction/models/localizers/ssn.py | 136 ++ .../models/localizers/utils/__init__.py | 4 + .../localizers/utils/post_processing.py | 45 + .../mmaction/models/losses/__init__.py | 16 + .../mmaction/models/losses/base.py | 45 + .../losses/binary_logistic_regression_loss.py | 62 + .../mmaction/models/losses/bmn_loss.py | 181 ++ .../models/losses/cross_entropy_loss.py | 191 ++ .../mmaction/models/losses/hvu_loss.py | 142 ++ .../mmaction/models/losses/nll_loss.py | 27 + .../mmaction/models/losses/ohem_hinge_loss.py | 65 + .../mmaction/models/losses/ssn_loss.py | 180 ++ .../mmaction/models/necks/__init__.py | 4 + .../mmaction/models/necks/tpn.py | 449 ++++ .../mmaction/models/recognizers/__init__.py | 7 + .../models/recognizers/audio_recognizer.py | 102 + .../mmaction/models/recognizers/base.py | 335 +++ .../models/recognizers/recognizer2d.py | 186 ++ .../models/recognizers/recognizer3d.py | 128 ++ .../models/roi_extractors/__init__.py | 4 + .../roi_extractors/single_straight3d.py | 121 ++ .../mmaction/models/skeleton_gcn/__init__.py | 5 + .../mmaction/models/skeleton_gcn/base.py | 176 ++ .../models/skeleton_gcn/skeletongcn.py | 30 + .../models/skeleton_gcn/utils/__init__.py | 4 + .../models/skeleton_gcn/utils/graph.py | 196 ++ .../mmaction/utils/__init__.py | 15 + .../mmaction/utils/collect_env.py | 17 + .../mmaction/utils/distribution_env.py | 94 + .../mmaction/utils/gradcam_utils.py | 232 ++ .../mmaction2-0.24.1/mmaction/utils/logger.py | 25 + .../mmaction2-0.24.1/mmaction/utils/misc.py | 27 + .../mmaction/utils/module_hooks.py | 88 + .../mmaction/utils/multigrid/__init__.py | 8 + .../utils/multigrid/longshortcyclehook.py | 257 +++ .../mmaction/utils/multigrid/short_sampler.py | 61 + .../utils/multigrid/subbn_aggregate.py | 22 + .../mmaction/utils/precise_bn.py | 155 ++ .../mmaction/utils/setup_env.py | 47 + .../mmaction2-0.24.1/mmaction/version.py | 18 + .../mmaction2-0.24.1/model-index.yml | 24 + .../mmaction2-0.24.1/requirements.txt | 3 + .../mmaction2-0.24.1/requirements/build.txt | 8 + .../mmaction2-0.24.1/requirements/docs.txt | 17 + .../requirements/mminstall.txt | 1 + .../requirements/optional.txt | 11 + .../requirements/readthedocs.txt | 4 + .../mmaction2-0.24.1/requirements/tests.txt | 9 + .../mmaction2-0.24.1/resources/acc_curve.png | Bin 0 -> 39921 bytes .../resources/data_pipeline.png | Bin 0 -> 117332 bytes .../resources/mmaction2_logo.png | Bin 0 -> 31100 bytes .../resources/mmaction2_overview.gif | Bin 0 -> 1701421 bytes .../resources/qq_group_qrcode.png | Bin 0 -> 158874 bytes .../resources/spatio-temporal-det.gif | Bin 0 -> 1302833 bytes .../resources/zhihu_qrcode.jpg | Bin 0 -> 397245 bytes openmmlab_test/mmaction2-0.24.1/setup.cfg | 24 + openmmlab_test/mmaction2-0.24.1/setup.py | 196 ++ .../data/activitynet_features/v_test1.csv | 6 + .../data/activitynet_features/v_test2.csv | 6 + .../data/annotations/action_test_anno.json | 34 + .../annotations/audio_feature_test_list.txt | 2 + .../data/annotations/audio_test_list.txt | 2 + .../data/annotations/hvu_frame_test_anno.json | 24 + .../annotations/hvu_video_eval_test_anno.json | 18 + .../data/annotations/hvu_video_test_anno.json | 22 + .../annotations/proposal_normalized_list.txt | 18 + .../data/annotations/proposal_test_list.txt | 18 + .../data/annotations/rawframe_test_list.txt | 2 + .../rawframe_test_list_multi_label.txt | 2 + .../rawframe_test_list_with_offset.txt | 2 + .../data/annotations/rawvideo_test_anno.json | 8 + .../data/annotations/rawvideo_test_anno.txt | 1 + .../tests/data/annotations/sample.pkl | Bin 0 -> 284438 bytes .../data/annotations/video_test_list.txt | 2 + .../video_test_list_multi_label.txt | 2 + .../tests/data/ava_dataset/action_list.txt | 16 + .../ava_excluded_timestamps_sample.csv | 2 + .../data/ava_dataset/ava_proposals_sample.pkl | Bin 0 -> 476 bytes .../tests/data/ava_dataset/ava_sample.csv | 8 + .../tests/data/bsp_features/v_test1.npy | Bin 0 -> 170368 bytes .../tests/data/eval_detection/action_list.txt | 12 + .../tests/data/eval_detection/gt.csv | 12 + .../tests/data/eval_detection/pred.csv | 30 + .../tests/data/eval_detection/proposal.pkl | Bin 0 -> 2085 bytes .../tests/data/eval_localization/gt.json | 46 + .../tests/data/eval_localization/result.json | 120 ++ .../tests/data/imgs/img_00001.jpg | Bin 0 -> 19241 bytes .../tests/data/imgs/img_00002.jpg | Bin 0 -> 20094 bytes .../tests/data/imgs/img_00003.jpg | Bin 0 -> 20135 bytes .../tests/data/imgs/img_00004.jpg | Bin 0 -> 20386 bytes .../tests/data/imgs/img_00005.jpg | Bin 0 -> 20364 bytes .../tests/data/imgs/img_00006.jpg | Bin 0 -> 20500 bytes .../tests/data/imgs/img_00007.jpg | Bin 0 -> 20522 bytes .../tests/data/imgs/img_00008.jpg | Bin 0 -> 20547 bytes .../tests/data/imgs/img_00009.jpg | Bin 0 -> 20527 bytes .../tests/data/imgs/img_00010.jpg | Bin 0 -> 20762 bytes .../tests/data/imgs/x_00001.jpg | Bin 0 -> 3888 bytes .../tests/data/imgs/x_00002.jpg | Bin 0 -> 5472 bytes .../tests/data/imgs/x_00003.jpg | Bin 0 -> 5625 bytes .../tests/data/imgs/x_00004.jpg | Bin 0 -> 5317 bytes .../tests/data/imgs/x_00005.jpg | Bin 0 -> 4999 bytes .../tests/data/imgs/y_00001.jpg | Bin 0 -> 3921 bytes .../tests/data/imgs/y_00002.jpg | Bin 0 -> 5547 bytes .../tests/data/imgs/y_00003.jpg | Bin 0 -> 5352 bytes .../tests/data/imgs/y_00004.jpg | Bin 0 -> 5489 bytes .../tests/data/imgs/y_00005.jpg | Bin 0 -> 4722 bytes .../tests/data/lfb/lfb_unittest.pkl | Bin 0 -> 81082 bytes .../tests/data/proposals/v_test1.csv | 10 + .../tests/data/proposals/v_test2.csv | 7 + .../tests/data/rawvideo_dataset/part_0.mp4 | Bin 0 -> 158581 bytes .../tests/data/rawvideo_dataset/part_1.mp4 | Bin 0 -> 158581 bytes .../tests/data/tem_results/v_test1.csv | 11 + .../tests/data/tem_results/v_test2.csv | 11 + .../mmaction2-0.24.1/tests/data/test.avi | Bin 0 -> 294566 bytes .../mmaction2-0.24.1/tests/data/test.jpg | Bin 0 -> 18486 bytes .../mmaction2-0.24.1/tests/data/test.mp4 | Bin 0 -> 1352828 bytes .../mmaction2-0.24.1/tests/data/test.wav | Bin 0 -> 419710 bytes .../tests/test_data/test_blending.py | 42 + .../tests/test_data/test_compose.py | 72 + .../tests/test_data/test_datasets/__init__.py | 4 + .../tests/test_data/test_datasets/base.py | 150 ++ .../test_datasets/test_activitynet_dataset.py | 176 ++ .../test_datasets/test_audio_dataset.py | 78 + .../test_audio_feature_dataset.py | 78 + .../test_audio_visual_dataset.py | 29 + .../test_datasets/test_ava_dataset.py | 221 ++ .../test_datasets/test_concat_dataset.py | 34 + .../test_datasets/test_hvu_dataset.py | 82 + .../test_datasets/test_pose_dataset.py | 62 + .../test_datasets/test_rawframe_dataset.py | 165 ++ .../test_datasets/test_rawvideo_dataset.py | 30 + .../test_datasets/test_repeat_dataset.py | 30 + .../test_datasets/test_ssn_dataset.py | 176 ++ .../test_datasets/test_video_dataset.py | 100 + .../tests/test_data/test_formating.py | 227 ++ .../test_augmentations/__init__.py | 4 + .../test_pipelines/test_augmentations/base.py | 70 + .../test_augmentations/test_audio.py | 54 + .../test_augmentations/test_color.py | 35 + .../test_augmentations/test_crop.py | 294 +++ .../test_augmentations/test_flip.py | 136 ++ .../test_augmentations/test_imgaug.py | 101 + .../test_augmentations/test_lazy.py | 373 ++++ .../test_augmentations/test_misc.py | 19 + .../test_augmentations/test_normalization.py | 71 + .../test_augmentations/test_pytorchvideo.py | 71 + .../test_augmentations/test_transform.py | 160 ++ .../test_pipelines/test_loadings/__init__.py | 4 + .../test_pipelines/test_loadings/base.py | 93 + .../test_loadings/test_decode.py | 498 +++++ .../test_pipelines/test_loadings/test_load.py | 152 ++ .../test_loadings/test_localization.py | 28 + .../test_loadings/test_pose_loading.py | 391 ++++ .../test_loadings/test_sampling.py | 757 +++++++ .../tests/test_data/test_sampler.py | 96 + .../tests/test_metrics/test_accuracy.py | 343 +++ .../tests/test_metrics/test_losses.py | 332 +++ .../tests/test_models/__init__.py | 13 + .../tests/test_models/base.py | 167 ++ .../tests/test_models/test_backbones.py | 931 ++++++++ .../tests/test_models/test_common.py | 149 ++ .../test_common_modules/__init__.py | 1 + .../test_common_modules/test_base_head.py | 73 + .../test_base_recognizers.py | 66 + .../test_common_modules/test_mobilenet_v2.py | 218 ++ .../test_common_modules/test_resnet.py | 128 ++ .../test_common_modules/test_resnet3d.py | 335 +++ .../test_models/test_detectors/__init__.py | 1 + .../test_detectors/test_detectors.py | 42 + .../tests/test_models/test_gradcam.py | 230 ++ .../tests/test_models/test_head.py | 608 ++++++ .../test_models/test_localizers/__init__.py | 1 + .../test_models/test_localizers/test_bmn.py | 68 + .../test_localizers/test_localizers.py | 34 + .../test_models/test_localizers/test_pem.py | 49 + .../test_models/test_localizers/test_ssn.py | 206 ++ .../test_models/test_localizers/test_tem.py | 28 + .../tests/test_models/test_neck.py | 87 + .../test_models/test_recognizers/__init__.py | 1 + .../test_recognizers/test_audio_recognizer.py | 29 + .../test_recognizers/test_recognizer2d.py | 282 +++ .../test_recognizers/test_recognizer3d.py | 314 +++ .../test_recognizers/test_skeletongcn.py | 51 + .../tests/test_models/test_roi_extractor.py | 58 + .../tests/test_runtime/test_apis_test.py | 119 + .../tests/test_runtime/test_config.py | 74 + .../tests/test_runtime/test_eval_hook.py | 347 +++ .../tests/test_runtime/test_inference.py | 149 ++ .../tests/test_runtime/test_lr.py | 121 ++ .../tests/test_runtime/test_optimizer.py | 214 ++ .../tests/test_runtime/test_precise_bn.py | 205 ++ .../tests/test_runtime/test_train.py | 125 ++ .../tests/test_utils/__init__.py | 1 + .../tests/test_utils/test_bbox.py | 151 ++ .../test_utils/test_localization_utils.py | 204 ++ .../tests/test_utils/test_module_hooks.py | 144 ++ .../tests/test_utils/test_onnx.py | 33 + .../tests/test_utils/test_setup_env.py | 68 + .../mmaction2-0.24.1/tools/__init__.py | 5 + .../tools/analysis/analyze_logs.py | 167 ++ .../tools/analysis/bench_processing.py | 65 + .../tools/analysis/benchmark.py | 94 + .../tools/analysis/check_videos.py | 158 ++ .../tools/analysis/eval_metric.py | 66 + .../tools/analysis/get_flops.py | 73 + .../tools/analysis/print_config.py | 27 + .../tools/analysis/report_accuracy.py | 57 + .../tools/analysis/report_map.py | 87 + .../mmaction2-0.24.1/tools/argparse.bash | 103 + .../tools/data/activitynet/README.md | 171 ++ .../tools/data/activitynet/README_zh-CN.md | 169 ++ .../tools/data/activitynet/action_name.csv | 201 ++ .../activitynet_feature_postprocessing.py | 99 + .../activitynet/convert_proposal_format.py | 162 ++ .../tools/data/activitynet/download.py | 148 ++ .../data/activitynet/download_annotations.sh | 12 + .../data/activitynet/download_bsn_videos.sh | 13 + .../download_feature_annotations.sh | 16 + .../data/activitynet/download_features.sh | 11 + .../tools/data/activitynet/download_videos.sh | 13 + .../tools/data/activitynet/environment.yml | 36 + .../tools/data/activitynet/extract_frames.sh | 6 + .../generate_rawframes_filelist.py | 113 + .../tools/data/activitynet/label_map.txt | 200 ++ .../data/activitynet/process_annotations.py | 54 + .../activitynet/tsn_feature_extraction.py | 149 ++ .../tools/data/anno_txt2json.py | 103 + .../data/ava/AVA_annotation_explained.md | 34 + .../mmaction2-0.24.1/tools/data/ava/README.md | 148 ++ .../tools/data/ava/README_zh-CN.md | 134 ++ .../tools/data/ava/cut_videos.sh | 34 + .../tools/data/ava/download_annotations.sh | 15 + .../tools/data/ava/download_videos.sh | 19 + .../data/ava/download_videos_gnu_parallel.sh | 20 + .../data/ava/download_videos_parallel.py | 66 + .../data/ava/download_videos_parallel.sh | 15 + .../tools/data/ava/extract_frames.sh | 6 + .../tools/data/ava/extract_rgb_frames.sh | 7 + .../data/ava/extract_rgb_frames_ffmpeg.sh | 44 + .../tools/data/ava/fetch_ava_proposals.sh | 9 + .../tools/data/ava/label_map.txt | 60 + .../tools/data/build_audio_features.py | 316 +++ .../tools/data/build_file_list.py | 269 +++ .../tools/data/build_rawframes.py | 278 +++ .../tools/data/build_videos.py | 127 ++ .../tools/data/denormalize_proposal_file.py | 82 + .../tools/data/diving48/README.md | 123 ++ .../tools/data/diving48/README_zh-CN.md | 123 ++ .../data/diving48/download_annotations.sh | 16 + .../tools/data/diving48/download_videos.sh | 16 + .../tools/data/diving48/extract_frames.sh | 6 + .../tools/data/diving48/extract_rgb_frames.sh | 7 + .../diving48/extract_rgb_frames_opencv.sh | 7 + .../diving48/generate_rawframes_filelist.sh | 8 + .../data/diving48/generate_videos_filelist.sh | 8 + .../tools/data/diving48/label_map.txt | 48 + .../tools/data/extract_audio.py | 61 + .../mmaction2-0.24.1/tools/data/gym/README.md | 109 + .../tools/data/gym/README_zh-CN.md | 109 + .../tools/data/gym/download.py | 100 + .../tools/data/gym/download_annotations.sh | 14 + .../tools/data/gym/download_videos.sh | 14 + .../tools/data/gym/environment.yml | 36 + .../tools/data/gym/extract_frames.sh | 7 + .../tools/data/gym/generate_file_list.py | 49 + .../tools/data/gym/label_map.txt | 99 + .../tools/data/gym/trim_event.py | 58 + .../tools/data/gym/trim_subaction.py | 52 + .../tools/data/hmdb51/README.md | 125 ++ .../tools/data/hmdb51/README_zh-CN.md | 121 ++ .../tools/data/hmdb51/download_annotations.sh | 22 + .../tools/data/hmdb51/download_videos.sh | 27 + .../tools/data/hmdb51/extract_frames.sh | 6 + .../tools/data/hmdb51/extract_rgb_frames.sh | 7 + .../data/hmdb51/extract_rgb_frames_opencv.sh | 7 + .../hmdb51/generate_rawframes_filelist.sh | 8 + .../data/hmdb51/generate_videos_filelist.sh | 8 + .../tools/data/hmdb51/label_map.txt | 51 + .../mmaction2-0.24.1/tools/data/hvu/README.md | 123 ++ .../tools/data/hvu/README_zh-CN.md | 110 + .../tools/data/hvu/download.py | 203 ++ .../tools/data/hvu/download_annotations.sh | 22 + .../tools/data/hvu/download_videos.sh | 15 + .../tools/data/hvu/environment.yml | 36 + .../tools/data/hvu/extract_frames.sh | 10 + .../tools/data/hvu/generate_file_list.py | 152 ++ .../data/hvu/generate_rawframes_filelist.sh | 5 + .../tools/data/hvu/generate_sub_file_list.py | 42 + .../data/hvu/generate_videos_filelist.sh | 5 + .../tools/data/hvu/label_map.json | 1 + .../tools/data/hvu/parse_tag_list.py | 16 + .../tools/data/jester/README.md | 143 ++ .../tools/data/jester/README_zh-CN.md | 143 ++ .../tools/data/jester/encode_videos.sh | 7 + .../tools/data/jester/extract_flow.sh | 6 + .../jester/generate_rawframes_filelist.sh | 8 + .../data/jester/generate_videos_filelist.sh | 8 + .../tools/data/jester/label_map.txt | 27 + .../tools/data/jhmdb/README.md | 101 + .../tools/data/jhmdb/README_zh-CN.md | 98 + .../tools/data/kinetics/README.md | 150 ++ .../tools/data/kinetics/README_zh-CN.md | 142 ++ .../tools/data/kinetics/download.py | 230 ++ .../data/kinetics/download_annotations.sh | 26 + .../kinetics/download_backup_annotations.sh | 25 + .../tools/data/kinetics/download_videos.sh | 22 + .../tools/data/kinetics/environment.yml | 36 + .../tools/data/kinetics/extract_frames.sh | 18 + .../tools/data/kinetics/extract_rgb_frames.sh | 18 + .../kinetics/extract_rgb_frames_opencv.sh | 18 + .../kinetics/generate_rawframes_filelist.sh | 17 + .../data/kinetics/generate_videos_filelist.sh | 17 + .../tools/data/kinetics/label_map_k400.txt | 400 ++++ .../tools/data/kinetics/label_map_k600.txt | 600 ++++++ .../tools/data/kinetics/label_map_k700.txt | 700 ++++++ .../tools/data/kinetics/rename_classnames.sh | 29 + .../mmaction2-0.24.1/tools/data/mit/README.md | 128 ++ .../tools/data/mit/README_zh-CN.md | 130 ++ .../tools/data/mit/extract_frames.sh | 10 + .../tools/data/mit/extract_rgb_frames.sh | 10 + .../data/mit/extract_rgb_frames_opencv.sh | 10 + .../data/mit/generate_rawframes_filelist.sh | 9 + .../data/mit/generate_videos_filelist.sh | 9 + .../tools/data/mit/label_map.txt | 339 +++ .../tools/data/mit/preprocess_data.sh | 27 + .../tools/data/mmit/README.md | 113 + .../tools/data/mmit/README_zh-CN.md | 115 + .../tools/data/mmit/extract_frames.sh | 6 + .../tools/data/mmit/extract_rgb_frames.sh | 8 + .../data/mmit/extract_rgb_frames_opencv.sh | 8 + .../data/mmit/generate_rawframes_filelist.sh | 9 + .../data/mmit/generate_videos_filelist.sh | 9 + .../tools/data/mmit/label_map.txt | 313 +++ .../tools/data/mmit/preprocess_data.sh | 20 + .../tools/data/omnisource/README.md | 150 ++ .../tools/data/omnisource/README_zh-CN.md | 149 ++ .../tools/data/omnisource/trim_raw_video.py | 45 + .../tools/data/parse_file_list.py | 535 +++++ .../tools/data/resize_videos.py | 126 ++ ...RGBD120_samples_with_missing_skeletons.txt | 535 +++++ ...TU_RGBD_samples_with_missing_skeletons.txt | 302 +++ .../tools/data/skeleton/README.md | 131 ++ .../tools/data/skeleton/README_zh-CN.md | 135 ++ .../skeleton/S001C001P001R001A001_rgb.avi | Bin 0 -> 987146 bytes .../tools/data/skeleton/babel2mma2.py | 25 + .../data/skeleton/download_annotations.sh | 22 + .../tools/data/skeleton/gen_ntu_rgbd_raw.py | 355 +++ .../tools/data/skeleton/label_map_gym99.txt | 99 + .../tools/data/skeleton/label_map_ntu120.txt | 120 ++ .../data/skeleton/ntu_pose_extraction.py | 347 +++ .../tools/data/sthv1/README.md | 144 ++ .../tools/data/sthv1/README_zh-CN.md | 142 ++ .../tools/data/sthv1/encode_videos.sh | 7 + .../tools/data/sthv1/extract_flow.sh | 6 + .../data/sthv1/generate_rawframes_filelist.sh | 8 + .../data/sthv1/generate_videos_filelist.sh | 8 + .../tools/data/sthv1/label_map.txt | 174 ++ .../tools/data/sthv2/README.md | 118 + .../tools/data/sthv2/README_zh-CN.md | 118 + .../tools/data/sthv2/extract_frames.sh | 6 + .../tools/data/sthv2/extract_rgb_frames.sh | 7 + .../data/sthv2/extract_rgb_frames_opencv.sh | 7 + .../data/sthv2/generate_rawframes_filelist.sh | 8 + .../data/sthv2/generate_videos_filelist.sh | 8 + .../tools/data/sthv2/label_map.txt | 174 ++ .../tools/data/thumos14/README.md | 142 ++ .../tools/data/thumos14/README_zh-CN.md | 139 ++ .../thumos14/denormalize_proposal_file.sh | 10 + .../data/thumos14/download_annotations.sh | 27 + .../tools/data/thumos14/download_videos.sh | 25 + .../tools/data/thumos14/extract_frames.sh | 10 + .../tools/data/thumos14/extract_rgb_frames.sh | 10 + .../thumos14/extract_rgb_frames_opencv.sh | 10 + .../data/thumos14/fetch_tag_proposals.sh | 11 + .../tools/data/ucf101/README.md | 127 ++ .../tools/data/ucf101/README_zh-CN.md | 125 ++ .../tools/data/ucf101/download_annotations.sh | 13 + .../tools/data/ucf101/download_videos.sh | 16 + .../tools/data/ucf101/extract_frames.sh | 6 + .../tools/data/ucf101/extract_rgb_frames.sh | 7 + .../data/ucf101/extract_rgb_frames_opencv.sh | 7 + .../ucf101/generate_rawframes_filelist.sh | 8 + .../data/ucf101/generate_videos_filelist.sh | 8 + .../tools/data/ucf101/label_map.txt | 101 + .../tools/data/ucf101_24/README.md | 89 + .../tools/data/ucf101_24/README_zh-CN.md | 84 + .../tools/deployment/mmaction2torchserve.py | 109 + .../tools/deployment/mmaction_handler.py | 79 + .../tools/deployment/publish_model.py | 47 + .../tools/deployment/pytorch2onnx.py | 183 ++ .../mmaction2-0.24.1/tools/dist_test.sh | 14 + .../mmaction2-0.24.1/tools/dist_train.sh | 13 + .../tools/misc/bsn_proposal_generation.py | 198 ++ .../tools/misc/clip_feature_extraction.py | 229 ++ .../misc/dist_clip_feature_extraction.sh | 12 + .../tools/misc/flow_extraction.py | 187 ++ .../mmaction2-0.24.1/tools/slurm_test.sh | 24 + .../mmaction2-0.24.1/tools/slurm_train | 56 + .../mmaction2-0.24.1/tools/slurm_train.sh | 24 + openmmlab_test/mmaction2-0.24.1/tools/test.py | 371 ++++ .../mmaction2-0.24.1/tools/train.py | 222 ++ openmmlab_test/mmaction2-0.24.1/train.md | 65 + 952 files changed, 110142 insertions(+), 4 deletions(-) create mode 100644 openmmlab_test/mmaction2-0.24.1/.github/CODE_OF_CONDUCT.md create mode 100644 openmmlab_test/mmaction2-0.24.1/.github/CONTRIBUTING.md create mode 100644 openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/config.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/error-report.md create mode 100644 openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/feature_request.md create mode 100644 openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/general_questions.md create mode 100644 openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/reimplementation_questions.md create mode 100644 openmmlab_test/mmaction2-0.24.1/.github/pull_request_template.md create mode 100644 openmmlab_test/mmaction2-0.24.1/.github/workflows/build.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/.github/workflows/deploy.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/.github/workflows/lint.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/.github/workflows/test_mim.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/.gitignore create mode 100644 openmmlab_test/mmaction2-0.24.1/.pre-commit-config.yaml create mode 100644 openmmlab_test/mmaction2-0.24.1/.pylintrc create mode 100644 openmmlab_test/mmaction2-0.24.1/.readthedocs.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/CITATION.cff create mode 100644 openmmlab_test/mmaction2-0.24.1/LICENSE create mode 100644 openmmlab_test/mmaction2-0.24.1/MANIFEST.in create mode 100644 openmmlab_test/mmaction2-0.24.1/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/default_runtime.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/audioonly_r50.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/bmn_400x100.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/bsn_pem.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/bsn_tem.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/c3d_sports1m_pretrained.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/i3d_r50.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/ircsn_r152.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/r2plus1d_r34.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/slowfast_r50.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/slowonly_r50.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tanet_r50.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tin_r50.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tpn_slowonly_r50.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tpn_tsm_r50.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/trn_r50.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tsm_mobilenet_v2.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tsm_r50.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tsn_r50.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tsn_r50_audio.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/models/x3d.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/adam_20e.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_100e.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_150e_warmup.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_50e.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_tsm_100e.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_tsm_50e.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_tsm_mobilenet_v2_100e.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_tsm_mobilenet_v2_50e.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/_base_/models/slowonly_r50.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/_base_/models/slowonly_r50_nl.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/ava/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/ava/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/ava/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/lfb_slowonly_r50_ava_infer.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/localization/bmn/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/localization/bmn/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/localization/bmn/bmn_400x100_2x8_9e_activitynet_feature.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/localization/bmn/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/bsn_pgm_400x100_activitynet_feature.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/ssn_r50_450e_thumos14_rgb_test.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/ssn_r50_450e_thumos14_rgb_train.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/c3d/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/c3d/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/c3d/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ipcsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ipcsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ipcsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r50_32x2x1_58e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_heavy_8x8x1_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_lazy_32x2x1_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_video_32x2x1_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_video_heavy_8x8x1_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_video_imgaug_32x2x1_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_video_inference_32x2x1_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/pipeline.png create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_insvideo_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_kineticsraw_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_omnisource_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_webimage_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_googleimage_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_insvideo_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_kineticsraw_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_omnisource_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_webimage_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/r2plus1d_r34_32x2x1_180e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/r2plus1d_r34_video_inference_8x8x1_180e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_prebn_r50_4x16x1_256e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r101_8x8x1_256e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r101_r50_4x16x1_256e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r152_r50_4x16x1_256e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_16x8x1_22e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_video_inference_4x16x1_256e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_256p_4x16x1_256e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_320p_4x16x1_256e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv2_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_k400_pretrained_r50_4x16x1_120e_gym99_flow.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r101_8x8x1_196e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_flow.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_flow.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_clip_feature_extraction_4x16x1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_video_4x16x1_256e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics600_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics700_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_video_inference_4x16x1_256e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/tanet_r50_1x1x16_50e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/tanet_r50_1x1x8_50e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/timesformer_jointST_8x32x1_15e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/tin_r50_1x1x8_40e_sthv2_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/trn_r50_1x1x8_50e_sthv2_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_mobilenetv2_video_dense_1x1x8_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_mobilenetv2_video_inference_dense_1x1x8_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r101_1x1x8_50e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r101_1x1x8_50e_sthv2_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x16_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x16_50e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x16_50e_sthv2_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_50e_jester_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_50e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_dense_1x1x8_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_dense_1x1x8_50e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_flip_1x1x8_50e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_mixup_1x1x8_50e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_video_1x1x8_50e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_video_inference_1x1x8_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_temporal_pool_r50_1x1x8_50e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/custom_backbones/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/custom_backbones/tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/custom_backbones/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_256p_1x1x3_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_340x256_1x1x3_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_256p_1x1x3_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_320p_1x1x3_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_256p_1x1x25_10crop_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_256p_1x1x25_3crop_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_320p_1x1x25_10crop_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_320p_1x1x25_3crop_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_340x256_1x1x25_10crop_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_340x256_1x1x25_3crop_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_action_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_attribute_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_concept_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_event_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_object_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_scene_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_fp16_r50_1x1x3_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r101_1x1x5_50e_mmit_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x16_50e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x16_50e_sthv2_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x3_75e_ucf101_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x6_100e_mit_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_mit_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_sthv2_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x3_110e_kinetics400_flow.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_110e_kinetics400_flow.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_video_flow.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_clip_feature_extraction_1x1x3_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_dense_1x1x5_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_dense_1x1x8_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_inference_1x1x3_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x16_100e_diving48_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_diving48_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics600_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics700_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_imgaug_1x1x8_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_mixup_1x1x8_100e_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/x3d_m_16x5x1_facebook_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/x3d_s_13x6x1_facebook_kinetics400_rgb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/audioonly/audioonly_r50_64x1x1_100e_kinetics400_audio_feature.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/tsn_r18_64x1x1_100e_kinetics400_audio_feature.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/tsn_r50_64x1x1_100e_kinetics400_audio.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/custom_dataset_training.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_limb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_limb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_keypoint.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_limb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/metafile.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_babel120.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_babel120_wfl.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_babel60.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_babel60_wfl.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py create mode 100644 openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint_3d.py create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/demo.gif create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/demo.ipynb create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/demo.mp4 create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/demo.py create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/demo_audio.py create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/demo_gradcam.gif create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/demo_gradcam.py create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/demo_out.mp4 create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/demo_skeleton.py create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/demo_spatiotemporal_det.py create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/demo_video_structuralize.py create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/faster_rcnn_r50_fpn_2x_coco.py create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/fuse/data_list.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/hrnet_w32_coco_256x192.py create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/long_video_demo.py create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/mmaction2_tutorial.ipynb create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/mmaction2_tutorial_zh-CN.ipynb create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/ntu_sample.avi create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/test_video_structuralize.mp4 create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/visualize_heatmap_volume.ipynb create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/webcam_demo.py create mode 100644 openmmlab_test/mmaction2-0.24.1/demo/webcam_demo_spatiotemporal_det.py create mode 100644 openmmlab_test/mmaction2-0.24.1/docker/Dockerfile create mode 100644 openmmlab_test/mmaction2-0.24.1/docker/serve/Dockerfile create mode 100644 openmmlab_test/mmaction2-0.24.1/docker/serve/config.properties create mode 100644 openmmlab_test/mmaction2-0.24.1/docker/serve/entrypoint.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/Makefile create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/_static/css/readthedocs.css create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/_static/images/mmaction2.png create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/api.rst create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/benchmark.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/changelog.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/conf.py create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/data_preparation.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/faq.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/feature_extraction.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/getting_started.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/index.rst create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/install.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/make.bat create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/merge_docs.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/projects.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/stat.py create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/supported_datasets.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/switch_language.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/tutorials/1_config.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/tutorials/2_finetune.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/tutorials/3_new_dataset.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/tutorials/4_data_pipeline.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/tutorials/5_new_modules.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/tutorials/6_export_model.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/tutorials/7_customize_runtime.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs/useful_tools.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/Makefile create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/api.rst create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/benchmark.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/conf.py create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/data_preparation.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/demo.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/faq.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/feature_extraction.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/getting_started.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/index.rst create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/install.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/make.bat create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/merge_docs.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/stat.py create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/supported_datasets.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/switch_language.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/1_config.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/2_finetune.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/3_new_dataset.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/4_data_pipeline.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/5_new_modules.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/6_export_model.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/7_customize_runtime.md create mode 100644 openmmlab_test/mmaction2-0.24.1/docs_zh_CN/useful_tools.md create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/apis/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/apis/inference.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/apis/test.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/apis/train.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/assigners/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/assigners/max_iou_assigner_ava.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/bbox_target.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/transforms.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/dist_utils.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/accuracy.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/metrics.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/np_box_list.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/np_box_ops.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/object_detection_evaluation.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/per_image_evaluation.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/standard_fields.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_utils.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/eval_detection.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/eval_hooks.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/hooks/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/hooks/output.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/lr/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/lr/multigridlr.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/optimizer/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/optimizer/copy_of_sgd.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/optimizer/tsm_optimizer_constructor.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/runner/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/runner/omnisource_runner.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/scheduler/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/core/scheduler/lr_updater.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/activitynet_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/audio_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/audio_feature_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/audio_visual_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/ava_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/base.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/blending_utils.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/builder.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/dataset_wrappers.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/hvu_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/image_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/augmentations.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/compose.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/formatting.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/loading.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/pose_loading.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pose_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/rawframe_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/rawvideo_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/samplers/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/samplers/distributed_sampler.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/ssn_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/datasets/video_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/localization/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/localization/bsn_utils.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/localization/proposal_utils.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/localization/ssn_utils.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/agcn.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/c3d.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/mobilenet_v2.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/mobilenet_v2_tsm.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet2plus1d.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet3d.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet3d_csn.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet3d_slowfast.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet3d_slowonly.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet_audio.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet_tin.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet_tsm.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/stgcn.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/tanet.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/timesformer.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/x3d.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/builder.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/common/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/common/conv2plus1d.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/common/conv_audio.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/common/lfb.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/common/sub_batchnorm3d.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/common/tam.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/common/transformer.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/audio_tsn_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/base.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/bbox_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/fbo_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/i3d_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/lfb_infer_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/misc_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/roi_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/slowfast_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/ssn_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/stgcn_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/timesformer_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/tpn_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/trn_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/tsm_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/tsn_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/x3d_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/base.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/bmn.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/bsn.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/ssn.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/utils/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/utils/post_processing.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/base.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/binary_logistic_regression_loss.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/bmn_loss.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/cross_entropy_loss.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/hvu_loss.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/nll_loss.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/ohem_hinge_loss.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/ssn_loss.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/necks/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/necks/tpn.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/audio_recognizer.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/base.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/recognizer2d.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/recognizer3d.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/roi_extractors/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/roi_extractors/single_straight3d.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/base.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/skeletongcn.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/utils/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/utils/graph.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/utils/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/utils/collect_env.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/utils/distribution_env.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/utils/gradcam_utils.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/utils/logger.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/utils/misc.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/utils/module_hooks.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/utils/multigrid/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/utils/multigrid/longshortcyclehook.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/utils/multigrid/short_sampler.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/utils/multigrid/subbn_aggregate.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/utils/precise_bn.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/utils/setup_env.py create mode 100644 openmmlab_test/mmaction2-0.24.1/mmaction/version.py create mode 100644 openmmlab_test/mmaction2-0.24.1/model-index.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/requirements.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/requirements/build.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/requirements/docs.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/requirements/mminstall.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/requirements/optional.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/requirements/readthedocs.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/requirements/tests.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/resources/acc_curve.png create mode 100644 openmmlab_test/mmaction2-0.24.1/resources/data_pipeline.png create mode 100644 openmmlab_test/mmaction2-0.24.1/resources/mmaction2_logo.png create mode 100644 openmmlab_test/mmaction2-0.24.1/resources/mmaction2_overview.gif create mode 100644 openmmlab_test/mmaction2-0.24.1/resources/qq_group_qrcode.png create mode 100644 openmmlab_test/mmaction2-0.24.1/resources/spatio-temporal-det.gif create mode 100644 openmmlab_test/mmaction2-0.24.1/resources/zhihu_qrcode.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/setup.cfg create mode 100644 openmmlab_test/mmaction2-0.24.1/setup.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/activitynet_features/v_test1.csv create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/activitynet_features/v_test2.csv create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/annotations/action_test_anno.json create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/annotations/audio_feature_test_list.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/annotations/audio_test_list.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/annotations/hvu_frame_test_anno.json create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/annotations/hvu_video_eval_test_anno.json create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/annotations/hvu_video_test_anno.json create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/annotations/proposal_normalized_list.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/annotations/proposal_test_list.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawframe_test_list.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawframe_test_list_multi_label.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawframe_test_list_with_offset.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawvideo_test_anno.json create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawvideo_test_anno.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/annotations/sample.pkl create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/annotations/video_test_list.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/annotations/video_test_list_multi_label.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/ava_dataset/action_list.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/ava_dataset/ava_excluded_timestamps_sample.csv create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/ava_dataset/ava_proposals_sample.pkl create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/ava_dataset/ava_sample.csv create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/bsp_features/v_test1.npy create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/eval_detection/action_list.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/eval_detection/gt.csv create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/eval_detection/pred.csv create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/eval_detection/proposal.pkl create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/eval_localization/gt.json create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/eval_localization/result.json create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00001.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00002.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00003.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00004.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00005.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00006.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00007.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00008.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00009.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00010.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/x_00001.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/x_00002.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/x_00003.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/x_00004.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/x_00005.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/y_00001.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/y_00002.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/y_00003.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/y_00004.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/imgs/y_00005.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/lfb/lfb_unittest.pkl create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/proposals/v_test1.csv create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/proposals/v_test2.csv create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/rawvideo_dataset/part_0.mp4 create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/rawvideo_dataset/part_1.mp4 create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/tem_results/v_test1.csv create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/tem_results/v_test2.csv create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/test.avi create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/test.jpg create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/test.mp4 create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/data/test.wav create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_blending.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_compose.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/base.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_activitynet_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_audio_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_audio_feature_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_audio_visual_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_ava_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_concat_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_hvu_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_pose_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_rawframe_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_rawvideo_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_repeat_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_ssn_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_video_dataset.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_formating.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/base.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_audio.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_color.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_crop.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_flip.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_imgaug.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_lazy.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_misc.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_normalization.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_pytorchvideo.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_transform.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/base.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_decode.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_load.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_localization.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_pose_loading.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_sampling.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_data/test_sampler.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_metrics/test_accuracy.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_metrics/test_losses.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/base.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_backbones.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_base_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_base_recognizers.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_mobilenet_v2.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_resnet.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_resnet3d.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_detectors/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_detectors/test_detectors.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_gradcam.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_head.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_bmn.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_localizers.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_pem.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_ssn.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_tem.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_neck.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/test_audio_recognizer.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/test_recognizer2d.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/test_recognizer3d.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/test_skeletongcn.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_models/test_roi_extractor.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_apis_test.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_config.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_eval_hook.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_inference.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_lr.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_optimizer.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_precise_bn.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_train.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_utils/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_bbox.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_localization_utils.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_module_hooks.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_onnx.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_setup_env.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/__init__.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/analysis/analyze_logs.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/analysis/bench_processing.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/analysis/benchmark.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/analysis/check_videos.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/analysis/eval_metric.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/analysis/get_flops.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/analysis/print_config.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/analysis/report_accuracy.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/analysis/report_map.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/argparse.bash create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/action_name.csv create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/activitynet_feature_postprocessing.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/convert_proposal_format.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_annotations.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_bsn_videos.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_feature_annotations.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_features.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_videos.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/environment.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/extract_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/generate_rawframes_filelist.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/label_map.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/process_annotations.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/tsn_feature_extraction.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/anno_txt2json.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ava/AVA_annotation_explained.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ava/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ava/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ava/cut_videos.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_annotations.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_videos.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_videos_gnu_parallel.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_videos_parallel.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_videos_parallel.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ava/extract_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ava/extract_rgb_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ava/extract_rgb_frames_ffmpeg.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ava/fetch_ava_proposals.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ava/label_map.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/build_audio_features.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/build_file_list.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/build_rawframes.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/build_videos.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/denormalize_proposal_file.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/diving48/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/diving48/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/diving48/download_annotations.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/diving48/download_videos.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/diving48/extract_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/diving48/extract_rgb_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/diving48/extract_rgb_frames_opencv.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/diving48/generate_rawframes_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/diving48/generate_videos_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/diving48/label_map.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/extract_audio.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/gym/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/gym/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/gym/download.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/gym/download_annotations.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/gym/download_videos.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/gym/environment.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/gym/extract_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/gym/generate_file_list.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/gym/label_map.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/gym/trim_event.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/gym/trim_subaction.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/download_annotations.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/download_videos.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/extract_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/extract_rgb_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/extract_rgb_frames_opencv.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/generate_rawframes_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/generate_videos_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/label_map.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hvu/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hvu/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hvu/download.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hvu/download_annotations.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hvu/download_videos.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hvu/environment.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hvu/extract_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hvu/generate_file_list.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hvu/generate_rawframes_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hvu/generate_sub_file_list.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hvu/generate_videos_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hvu/label_map.json create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/hvu/parse_tag_list.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/jester/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/jester/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/jester/encode_videos.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/jester/extract_flow.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/jester/generate_rawframes_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/jester/generate_videos_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/jester/label_map.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/jhmdb/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/jhmdb/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/download.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/download_annotations.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/download_backup_annotations.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/download_videos.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/environment.yml create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/extract_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/extract_rgb_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/extract_rgb_frames_opencv.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/generate_rawframes_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/generate_videos_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/label_map_k400.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/label_map_k600.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/label_map_k700.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/rename_classnames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mit/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mit/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mit/extract_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mit/extract_rgb_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mit/extract_rgb_frames_opencv.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mit/generate_rawframes_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mit/generate_videos_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mit/label_map.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mit/preprocess_data.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mmit/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mmit/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mmit/extract_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mmit/extract_rgb_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mmit/extract_rgb_frames_opencv.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mmit/generate_rawframes_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mmit/generate_videos_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mmit/label_map.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/mmit/preprocess_data.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/omnisource/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/omnisource/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/omnisource/trim_raw_video.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/parse_file_list.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/resize_videos.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/NTU_RGBD120_samples_with_missing_skeletons.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/NTU_RGBD_samples_with_missing_skeletons.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/S001C001P001R001A001_rgb.avi create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/babel2mma2.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/download_annotations.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/gen_ntu_rgbd_raw.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/label_map_gym99.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/label_map_ntu120.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/ntu_pose_extraction.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/encode_videos.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/extract_flow.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/generate_rawframes_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/generate_videos_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/label_map.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/extract_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/extract_rgb_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/extract_rgb_frames_opencv.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/generate_rawframes_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/generate_videos_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/label_map.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/denormalize_proposal_file.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/download_annotations.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/download_videos.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/extract_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/extract_rgb_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/extract_rgb_frames_opencv.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/fetch_tag_proposals.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/download_annotations.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/download_videos.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/extract_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/extract_rgb_frames.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/extract_rgb_frames_opencv.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/generate_rawframes_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/generate_videos_filelist.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/label_map.txt create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ucf101_24/README.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/data/ucf101_24/README_zh-CN.md create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/deployment/mmaction2torchserve.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/deployment/mmaction_handler.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/deployment/publish_model.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/deployment/pytorch2onnx.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/dist_test.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/dist_train.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/misc/bsn_proposal_generation.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/misc/clip_feature_extraction.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/misc/dist_clip_feature_extraction.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/misc/flow_extraction.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/slurm_test.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/slurm_train create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/slurm_train.sh create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/test.py create mode 100644 openmmlab_test/mmaction2-0.24.1/tools/train.py create mode 100644 openmmlab_test/mmaction2-0.24.1/train.md diff --git a/README.md b/README.md index 7a7ca50f..f93ae9e2 100644 --- a/README.md +++ b/README.md @@ -95,8 +95,9 @@ DCU深度学习样例 | 类别 | 版本 | DCU | 精度 | 多DCU | 支持网络 | 代码位置| | :----------: | :----------: | :----------: | :----------: | :----------: | :----------: | :----------: | -| mmclassification | v0.24.0 | Yes | FP32/FP16 | Yes | ResNet18/ResNet34/ResNet50/ResNet152/Vgg11/SeresNet50/ResNext50/MobileNet-v2/ShuffleNet-v1/ShuffleNet-v2 | [mmclassfication](http://10.0.50.24/dcutoolkit/deeplearing/dlexamples_new/-/tree/main/openmmlab_test/mmclassification-speed-benchmark) | -| mmdetection | v2.25.2 | Yes | FP32/FP16 | Yes | Faster-Rcnn/Mask-Rcnn/Double-Heads/Cascade-Mask-Rcnn/ResNest/Dcn/RetinaNet/VfNet/Ssd/Yolov3 | [mmdetection](http://10.0.50.24/dcutoolkit/deeplearing/dlexamples_new/-/tree/main/openmmlab_test/mmdetection-speed_xinpian) | -| mmpose | v0.28.1 | Yes | FP32/FP16 | Yes | ResNet50-Top-Down/ResNet50-Bottom-Up/HrNet-Top-Down | [mmpose](http://10.0.50.24/dcutoolkit/deeplearing/dlexamples_new/-/tree/main/openmmlab_test/mmpose-speed_test) | -| mmsegmentation | v0.29.1 | Yes | FP32/FP16 | Yes | PspNet-R50/DeepLab-V3-R50/Fcn-R50/UperNet-R50/DeepLab-V3plus-R50 | [mmsegmentation](http://10.0.50.24/dcutoolkit/deeplearing/dlexamples_new/-/tree/main/openmmlab_test/mmsegmentation) | +| mmclassification | v0.24.0 | Yes | FP32/FP16 | Yes | ResNet18/ResNet34/ResNet50/ResNet152/Vgg11/SeresNet50/ResNext50/MobileNet-v2/ShuffleNet-v1/ShuffleNet-v2 | [mmclassfication](http://10.0.50.24/dcutoolkit/deeplearing/dlexamples_new/-/tree/main/openmmlab_test/mmclassification-0.24.1) | +| mmdetection | v2.25.2 | Yes | FP32/FP16 | Yes | Faster-Rcnn/Mask-Rcnn/Double-Heads/Cascade-Mask-Rcnn/ResNest/Dcn/RetinaNet/VfNet/Ssd/Yolov3 | [mmdetection](http://10.0.50.24/dcutoolkit/deeplearing/dlexamples_new/-/tree/main/openmmlab_test/mmdetection-2.25.2) | +| mmpose | v0.28.1 | Yes | FP32/FP16 | Yes | ResNet50-Top-Down/ResNet50-Bottom-Up/HrNet-Top-Down | [mmpose](http://10.0.50.24/dcutoolkit/deeplearing/dlexamples_new/-/tree/main/openmmlab_test/mmpose-0.28.1) | +| mmsegmentation | v0.29.1 | Yes | FP32/FP16 | Yes | PspNet-R50/DeepLab-V3-R50/Fcn-R50/UperNet-R50/DeepLab-V3plus-R50 | [mmsegmentation](http://10.0.50.24/dcutoolkit/deeplearing/dlexamples_new/-/tree/main/openmmlab_test/mmsegmentation-0.29.1) | +| mmaction2 | v0.24.1 | Yes | FP32/FP16 | Yes | ST-GCN/C3D/R(2+1)D | [mmaction2](http://10.0.50.24/dcutoolkit/deeplearing/dlexamples_new/-/tree/main/openmmlab_test/mmaction2-0.24.1) | diff --git a/openmmlab_test/mmaction2-0.24.1/.github/CODE_OF_CONDUCT.md b/openmmlab_test/mmaction2-0.24.1/.github/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..92afad1c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +- The use of sexualized language or imagery and unwelcome sexual attention or + advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic + address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at chenkaidev@gmail.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq + +[homepage]: https://www.contributor-covenant.org diff --git a/openmmlab_test/mmaction2-0.24.1/.github/CONTRIBUTING.md b/openmmlab_test/mmaction2-0.24.1/.github/CONTRIBUTING.md new file mode 100644 index 00000000..fb894baf --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/.github/CONTRIBUTING.md @@ -0,0 +1 @@ +We appreciate all contributions to improve MMAction2. Please refer to [CONTRIBUTING.md](https://github.com/open-mmlab/mmcv/blob/master/CONTRIBUTING.md) in MMCV for more details about the contributing guideline. diff --git a/openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/config.yml b/openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..a7722204 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,9 @@ +blank_issues_enabled: false + +contact_links: + - name: Common Issues + url: https://mmaction2.readthedocs.io/en/latest/faq.html + about: Check if your issue already has solutions + - name: MMAction2 Documentation + url: https://mmaction2.readthedocs.io/en/latest/ + about: Check if your question is answered in docs diff --git a/openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/error-report.md b/openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/error-report.md new file mode 100644 index 00000000..cab4b1b5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/error-report.md @@ -0,0 +1,49 @@ +--- +name: Error report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' +--- + +Thanks for your error report and we appreciate it a lot. +If you feel we have help you, give us a STAR! :satisfied: + +**Checklist** + +1. I have searched related issues but cannot get the expected help. +2. The bug has not been fixed in the latest version. + +**Describe the bug** + +A clear and concise description of what the bug is. + +**Reproduction** + +1. What command or script did you run? + +``` +A placeholder for the command. +``` + +2. Did you make any modifications on the code or config? Did you understand what you have modified? +3. What dataset did you use? + +**Environment** + +1. Please run `PYTHONPATH=${PWD}:$PYTHONPATH python mmaction/utils/collect_env.py` to collect necessary environment information and paste it here. +2. You may add addition that may be helpful for locating the problem, such as + - How you installed PyTorch \[e.g., pip, conda, source\] + - Other environment variables that may be related (such as `$PATH`, `$LD_LIBRARY_PATH`, `$PYTHONPATH`, etc.) + +**Error traceback** + +If applicable, paste the error traceback here. + +``` +A placeholder for traceback. +``` + +**Bug fix** + +If you have already identified the reason, you can provide the information here. If you are willing to create a PR to fix it, please also leave a comment here and that would be much appreciated! diff --git a/openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/feature_request.md b/openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..9b5bc408 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,27 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' +--- + +Thanks for your feature request and we will review and plan for it when necessary. +If you feel we have help you, give us a STAR! :satisfied: + +**Describe the feature** + +**Motivation** + +A clear and concise description of the motivation of the feature. +Ex1. It is inconvenient when \[....\]. +Ex2. There is a recent paper \[....\], which is very helpful for \[....\]. + +**Related resources** + +If there is an official code released or third-party implementations, please also provide the information here, which would be very helpful. + +**Additional context** + +Add any other context or screenshots about the feature request here. +If you would like to implement the feature and create a PR, please leave a comment here and that would be much appreciated. diff --git a/openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/general_questions.md b/openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/general_questions.md new file mode 100644 index 00000000..5aa583cb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/general_questions.md @@ -0,0 +1,14 @@ +--- +name: General questions +about: Ask general questions to get help +title: '' +labels: '' +assignees: '' +--- + +Before raising a question, you may need to check the following listed items. + +**Checklist** + +1. I have searched related issues but cannot get the expected help. +2. I have read the [FAQ documentation](https://mmaction2.readthedocs.io/en/latest/faq.html) but cannot get the expected help. diff --git a/openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/reimplementation_questions.md b/openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/reimplementation_questions.md new file mode 100644 index 00000000..babbaeb8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/.github/ISSUE_TEMPLATE/reimplementation_questions.md @@ -0,0 +1,69 @@ +--- +name: Reimplementation Questions +about: Ask about questions during model reimplementation +title: '' +labels: reimplementation +assignees: '' +--- + +If you feel we have help you, give us a STAR! :satisfied: + +**Notice** + +There are several common situations in the reimplementation issues as below + +1. Reimplement a model in the model zoo using the provided configs +2. Reimplement a model in the model zoo on other dataset (e.g., custom datasets) +3. Reimplement a custom model but all the components are implemented in MMAction2 +4. Reimplement a custom model with new modules implemented by yourself + +There are several things to do for different cases as below. + +- For case 1 & 3, please follow the steps in the following sections thus we could help to quick identify the issue. +- For case 2 & 4, please understand that we are not able to do much help here because we usually do not know the full code and the users should be responsible to the code they write. +- One suggestion for case 2 & 4 is that the users should first check whether the bug lies in the self-implemented code or the original code. For example, users can first make sure that the same model runs well on supported datasets. If you still need help, please describe what you have done and what you obtain in the issue, and follow the steps in the following sections and try as clear as possible so that we can better help you. + +**Checklist** + +1. I have searched related issues but cannot get the expected help. +2. The issue has not been fixed in the latest version. + +**Describe the issue** + +A clear and concise description of what the problem you meet and what have you done. + +**Reproduction** + +1. What command or script did you run? + +``` +A placeholder for the command. +``` + +2. What config dir you run? + +``` +A placeholder for the config. +``` + +3. Did you make any modifications on the code or config? Did you understand what you have modified? +4. What dataset did you use? + +**Environment** + +1. Please run `PYTHONPATH=${PWD}:$PYTHONPATH python mmaction/utils/collect_env.py` to collect necessary environment information and paste it here. +2. You may add addition that may be helpful for locating the problem, such as + 1. How you installed PyTorch \[e.g., pip, conda, source\] + 2. Other environment variables that may be related (such as `$PATH`, `$LD_LIBRARY_PATH`, `$PYTHONPATH`, etc.) + +**Results** + +If applicable, paste the related results here, e.g., what you expect and what you get. + +``` +A placeholder for results comparison +``` + +**Issue fix** + +If you have already identified the reason, you can provide the information here. If you are willing to create a PR to fix it, please also leave a comment here and that would be much appreciated! diff --git a/openmmlab_test/mmaction2-0.24.1/.github/pull_request_template.md b/openmmlab_test/mmaction2-0.24.1/.github/pull_request_template.md new file mode 100644 index 00000000..63052769 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/.github/pull_request_template.md @@ -0,0 +1,26 @@ +Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily got feedback. +If you do not understand some items, don't worry, just make the pull request and seek help from maintainers. + +## Motivation + +Please describe the motivation of this PR and the goal you want to achieve through this PR. + +## Modification + +Please briefly describe what modification is made in this PR. + +## BC-breaking (Optional) + +Does the modification introduces changes that break the back-compatibility of this repo? +If so, please describe how it breaks the compatibility and how users should modify their codes to keep compatibility with this PR. + +## Use cases (Optional) + +If this PR introduces a new feature, it is better to list some use cases here, and update the documentation. + +## Checklist + +1. Pre-commit or other linting tools should be used to fix the potential lint issues. +2. The modification should be covered by complete unit tests. If not, please add more unit tests to ensure the correctness. +3. If the modification has potential influence on downstream projects, this PR should be tested with downstream projects, like MMDet or MMCls. +4. The documentation should be modified accordingly, like docstring or example tutorials. diff --git a/openmmlab_test/mmaction2-0.24.1/.github/workflows/build.yml b/openmmlab_test/mmaction2-0.24.1/.github/workflows/build.yml new file mode 100644 index 00000000..30d72c90 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/.github/workflows/build.yml @@ -0,0 +1,248 @@ +name: build + +on: + push: + paths-ignore: + - ".github/**.md" + - "demo/**" + - "docker/**" + - "tools/**" + - "README.md" + - "README_zh-CN.md" + + pull_request: + paths-ignore: + - ".github/**.md" + - "demo/**" + - "docker/**" + - "docs/**" + - "docs_zh-CN/**" + - "tools/**" + - "README.md" + - "README_zh-CN.md" + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build_cpu: + runs-on: ubuntu-18.04 + strategy: + matrix: + python-version: [3.7] + torch: [1.5.0, 1.7.0, 1.9.0] + include: + - torch: 1.5.0 + torchvision: 0.6.0 + - torch: 1.7.0 + torchvision: 0.8.1 + - torch: 1.9.0 + torchvision: 0.10.0 + python-version: 3.7 + - torch: 1.9.0 + torchvision: 0.10.0 + python-version: 3.8 + - torch: 1.9.0 + torchvision: 0.10.0 + python-version: 3.9 + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Upgrade pip + run: pip install pip --upgrade + - name: Install soundfile lib + run: sudo apt-get install -y libsndfile1 + - name: Install onnx + run: pip install onnx + - name: Install librosa and soundfile + run: pip install librosa soundfile + - name: Install lmdb + run: pip install lmdb + - name: Install TurboJpeg lib + run: sudo apt-get install -y libturbojpeg + - name: Install PyTorch + run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html + - name: Install MMCV + run: pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cpu/torch${{matrix.torch}}/index.html + - name: Install MMDet + run: pip install git+https://github.com/open-mmlab/mmdetection/ + - name: Install MMCls + run: pip install git+https://github.com/open-mmlab/mmclassification/ + - name: Install unittest dependencies + run: pip install -r requirements/tests.txt -r requirements/optional.txt + - name: Install PytorchVideo + run: pip install pytorchvideo + if: ${{matrix.torchvision == '0.10.0'}} + - name: Build and install + run: rm -rf .eggs && pip install -e . + - name: Run unittests and generate coverage report + run: | + coverage run --branch --source mmaction -m pytest tests/ + coverage xml + coverage report -m + build_cu101: + runs-on: ubuntu-18.04 + container: + image: pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel + + strategy: + matrix: + python-version: [3.7] + torch: [1.5.0+cu101, 1.6.0+cu101, 1.7.0+cu101] + include: + - torch: 1.5.0+cu101 + torch_version: torch1.5 + torchvision: 0.6.0+cu101 + - torch: 1.6.0+cu101 + torch_version: torch1.6 + torchvision: 0.7.0+cu101 + - torch: 1.7.0+cu101 + torch_version: torch1.7 + torchvision: 0.8.1+cu101 + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Upgrade pip + run: pip install pip --upgrade + - name: Fetch GPG keys + run: | + apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub + apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub + - name: Install CUDA + run: | + apt-get update && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libturbojpeg libsndfile1 libsm6 libxrender-dev libxext6 python${{matrix.python-version}}-dev + apt-get clean + rm -rf /var/lib/apt/lists/* + - name: Install librosa and soundfile + run: python -m pip install librosa soundfile + - name: Install lmdb + run: python -m pip install lmdb + - name: Install PyTorch + run: python -m pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html + - name: Install mmaction dependencies + run: | + python -V + python -m pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/${{matrix.torch_version}}/index.html + python -m pip install -q git+https://github.com/open-mmlab/mmdetection/ + python -m pip install -q git+https://github.com/open-mmlab/mmclassification/ + python -m pip install -r requirements.txt + python -c 'import mmcv; print(mmcv.__version__)' + - name: Build and install + run: rm -rf .eggs && pip install -e . + - name: Run unittests and generate coverage report + run: | + coverage run --branch --source mmaction -m pytest tests/ + coverage xml + coverage report -m + # Only upload coverage report for python3.7 && pytorch1.5 + - name: Upload coverage to Codecov + if: ${{matrix.torch == '1.5.0+cu101' && matrix.python-version == '3.7'}} + uses: codecov/codecov-action@v1.0.14 + with: + file: ./coverage.xml + flags: unittests + env_vars: OS,PYTHON + name: codecov-umbrella + fail_ci_if_error: false + + build_cu102: + runs-on: ubuntu-18.04 + container: + image: pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel + + strategy: + matrix: + python-version: [3.7] + torch: [1.9.0+cu102] + include: + - torch: 1.9.0+cu102 + torch_version: torch1.9 + torchvision: 0.10.0+cu102 + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Upgrade pip + run: pip install pip --upgrade + - name: Fetch GPG keys + run: | + apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub + apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub + - name: Install CUDA + run: | + apt-get update && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libturbojpeg libsndfile1 libsm6 libxrender-dev libxext6 python${{matrix.python-version}}-dev + apt-get clean + rm -rf /var/lib/apt/lists/* + - name: Install librosa and soundfile + run: python -m pip install librosa soundfile + - name: Install lmdb + run: python -m pip install lmdb + - name: Install PyTorch + run: python -m pip install torch==${{matrix.torch}} torchvision==${{matrix.torchvision}} -f https://download.pytorch.org/whl/torch_stable.html + - name: Install mmaction dependencies + run: | + python -V + python -m pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/${{matrix.torch_version}}/index.html + python -m pip install -q git+https://github.com/open-mmlab/mmdetection/ + python -m pip install -q git+https://github.com/open-mmlab/mmclassification/ + python -m pip install -r requirements.txt + python -c 'import mmcv; print(mmcv.__version__)' + - name: Install PytorchVideo + run: python -m pip install pytorchvideo + if: ${{matrix.torchvision == '0.10.0+cu102'}} + - name: Build and install + run: rm -rf .eggs && pip install -e . + - name: Run unittests and generate coverage report + run: | + coverage run --branch --source mmaction -m pytest tests/ + coverage xml + coverage report -m + + test_windows: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [windows-2022] + python: [3.8] + platform: [cpu] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python }} + - name: Upgrade pip + run: python -m pip install pip --upgrade --user + - name: Install librosa and soundfile + run: python -m pip install librosa soundfile + - name: Install lmdb + run: python -m pip install lmdb + - name: Install PyTorch + # As a complement to Linux CI, we test on PyTorch LTS version + run: pip install torch==1.8.2+${{ matrix.platform }} torchvision==0.9.2+${{ matrix.platform }} -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html + - name: Install MMCV + run: pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cpu/torch1.8/index.html --only-binary mmcv-full + - name: Install mmaction dependencies + run: | + python -V + python -m pip install -q git+https://github.com/open-mmlab/mmdetection/ + python -m pip install -q git+https://github.com/open-mmlab/mmclassification/ + python -m pip install -r requirements.txt + python -c 'import mmcv; print(mmcv.__version__)' + - name: Install PytorchVideo + run: python -m pip install pytorchvideo + - name: Show pip list + run: pip list + - name: Build and install + run: pip install -e . + - name: Run unittests + run: coverage run --branch --source mmedit -m pytest tests -sv diff --git a/openmmlab_test/mmaction2-0.24.1/.github/workflows/deploy.yml b/openmmlab_test/mmaction2-0.24.1/.github/workflows/deploy.yml new file mode 100644 index 00000000..a136e0cc --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/.github/workflows/deploy.yml @@ -0,0 +1,26 @@ +name: deploy + +on: push + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build-n-publish: + runs-on: ubuntu-latest + if: startsWith(github.event.ref, 'refs/tags') + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.7 + uses: actions/setup-python@v2 + with: + python-version: 3.7 + - name: Build MMAction2 + run: | + pip install wheel + python setup.py sdist bdist_wheel + - name: Publish distribution to PyPI + run: | + pip install twine + twine upload dist/* -u __token__ -p ${{ secrets.pypi_password }} diff --git a/openmmlab_test/mmaction2-0.24.1/.github/workflows/lint.yml b/openmmlab_test/mmaction2-0.24.1/.github/workflows/lint.yml new file mode 100644 index 00000000..68b58a2b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/.github/workflows/lint.yml @@ -0,0 +1,27 @@ +name: lint + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.7 + uses: actions/setup-python@v2 + with: + python-version: 3.7 + - name: Install pre-commit hook + run: | + pip install pre-commit + pre-commit install + - name: Linting + run: pre-commit run --all-files + - name: Check docstring coverage + run: | + pip install interrogate + interrogate -v --ignore-init-method --ignore-module --ignore-nested-functions --ignore-regex "__repr__" --fail-under 80 mmaction diff --git a/openmmlab_test/mmaction2-0.24.1/.github/workflows/test_mim.yml b/openmmlab_test/mmaction2-0.24.1/.github/workflows/test_mim.yml new file mode 100644 index 00000000..88594d0e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/.github/workflows/test_mim.yml @@ -0,0 +1,47 @@ +name: test-mim + +on: + push: + paths: + - 'model-index.yml' + - 'configs/**' + + pull_request: + paths: + - 'model-index.yml' + - 'configs/**' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build_cpu: + runs-on: ubuntu-18.04 + strategy: + matrix: + python-version: [3.7] + torch: [1.8.0] + include: + - torch: 1.8.0 + torch_version: torch1.8 + torchvision: 0.9.0 + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Upgrade pip + run: pip install pip --upgrade + - name: Install Pillow + run: pip install Pillow==6.2.2 + if: ${{matrix.torchvision == '0.4.2'}} + - name: Install PyTorch + run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html + - name: Install openmim + run: pip install openmim + - name: Build and install + run: rm -rf .eggs && mim install -e . + - name: test commands of mim + run: mim search mmaction2 diff --git a/openmmlab_test/mmaction2-0.24.1/.gitignore b/openmmlab_test/mmaction2-0.24.1/.gitignore new file mode 100644 index 00000000..587b2964 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/.gitignore @@ -0,0 +1,140 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class +**/*.pyc + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ + +# custom +/data +.vscode +.idea +*.pkl +*.pkl.json +*.log.json +benchlist.txt +work_dirs/ + +# Pytorch +*.pth + +# Profile +*.prof + +# lmdb +*.mdb + +# unignore some data file in tests/data +!tests/data/**/*.pkl +!tests/data/**/*.pkl.json +!tests/data/**/*.log.json +!tests/data/**/*.pth + +# avoid soft links created by MIM +mmaction/configs/* +mmaction/tools/* + +*.ipynb + +# unignore ipython notebook files in demo +!demo/*.ipynb +mmaction/.mim diff --git a/openmmlab_test/mmaction2-0.24.1/.pre-commit-config.yaml b/openmmlab_test/mmaction2-0.24.1/.pre-commit-config.yaml new file mode 100644 index 00000000..5b8740eb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/.pre-commit-config.yaml @@ -0,0 +1,52 @@ +exclude: ^tests/data/ +repos: + - repo: https://github.com/PyCQA/flake8 + rev: 3.8.3 + hooks: + - id: flake8 + - repo: https://github.com/PyCQA/isort + rev: 5.10.1 + hooks: + - id: isort + - repo: https://github.com/pre-commit/mirrors-yapf + rev: v0.30.0 + hooks: + - id: yapf + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v3.1.0 + hooks: + - id: trailing-whitespace + - id: check-yaml + - id: end-of-file-fixer + - id: requirements-txt-fixer + - id: double-quote-string-fixer + - id: check-merge-conflict + - id: fix-encoding-pragma + args: ["--remove"] + - id: mixed-line-ending + args: ["--fix=lf"] + - repo: https://github.com/executablebooks/mdformat + rev: 0.7.9 + hooks: + - id: mdformat + args: ["--number"] + additional_dependencies: + - mdformat-openmmlab + - mdformat_frontmatter + - linkify-it-py + - repo: https://github.com/myint/docformatter + rev: v1.3.1 + hooks: + - id: docformatter + args: ["--in-place", "--wrap-descriptions", "79"] + - repo: https://github.com/codespell-project/codespell + rev: v2.1.0 + hooks: + - id: codespell + args: ["--skip", "*.ipynb,tools/data/hvu/label_map.json,docs_zh_CN/*", "-L", "te,nd,thre,Gool,gool"] + - repo: https://github.com/open-mmlab/pre-commit-hooks + rev: v0.2.0 # Use the ref you want to point at + hooks: + - id: check-algo-readme + - id: check-copyright + args: ["mmaction", "tests", "demo", "tools"] # these directories will be checked diff --git a/openmmlab_test/mmaction2-0.24.1/.pylintrc b/openmmlab_test/mmaction2-0.24.1/.pylintrc new file mode 100644 index 00000000..b1add44f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/.pylintrc @@ -0,0 +1,624 @@ +[MASTER] + +# A comma-separated list of package or module names from where C extensions may +# be loaded. Extensions are loading into the active Python interpreter and may +# run arbitrary code. +extension-pkg-whitelist= + +# Specify a score threshold to be exceeded before program exits with error. +fail-under=10 + +# Add files or directories to the blacklist. They should be base names, not +# paths. +ignore=CVS,configs + +# Add files or directories matching the regex patterns to the blacklist. The +# regex matches against base names, not paths. +ignore-patterns= + +# Python code to execute, usually for sys.path manipulation such as +# pygtk.require(). +#init-hook= + +# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the +# number of processors available to use. +jobs=1 + +# Control the amount of potential inferred values when inferring a single +# object. This can help the performance when dealing with large functions or +# complex, nested conditions. +limit-inference-results=100 + +# List of plugins (as comma separated values of python module names) to load, +# usually to register additional checkers. +load-plugins= + +# Pickle collected data for later comparisons. +persistent=yes + +# When enabled, pylint would attempt to guess common misconfiguration and emit +# user-friendly hints instead of false-positive error messages. +suggestion-mode=yes + +# Allow loading of arbitrary C extensions. Extensions are imported into the +# active Python interpreter and may run arbitrary code. +unsafe-load-any-extension=no + + +[MESSAGES CONTROL] + +# Only show warnings with the listed confidence levels. Leave empty to show +# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED. +confidence= + +# Disable the message, report, category or checker with the given id(s). You +# can either give multiple identifiers separated by comma (,) or put this +# option multiple times (only on the command line, not in the configuration +# file where it should appear only once). You can also use "--disable=all" to +# disable everything first and then reenable specific checks. For example, if +# you want to run only the similarities checker, you can use "--disable=all +# --enable=similarities". If you want to run only the classes checker, but have +# no Warning level messages displayed, use "--disable=all --enable=classes +# --disable=W". +disable=import-outside-toplevel + redefined-outer-name + print-statement, + parameter-unpacking, + unpacking-in-except, + old-raise-syntax, + backtick, + long-suffix, + old-ne-operator, + old-octal-literal, + import-star-module-level, + non-ascii-bytes-literal, + raw-checker-failed, + bad-inline-option, + locally-disabled, + file-ignored, + suppressed-message, + useless-suppression, + deprecated-pragma, + use-symbolic-message-instead, + apply-builtin, + basestring-builtin, + buffer-builtin, + cmp-builtin, + coerce-builtin, + execfile-builtin, + file-builtin, + long-builtin, + raw_input-builtin, + reduce-builtin, + standarderror-builtin, + unicode-builtin, + xrange-builtin, + coerce-method, + delslice-method, + getslice-method, + setslice-method, + no-absolute-import, + old-division, + dict-iter-method, + dict-view-method, + next-method-called, + metaclass-assignment, + indexing-exception, + raising-string, + reload-builtin, + oct-method, + hex-method, + nonzero-method, + cmp-method, + input-builtin, + round-builtin, + intern-builtin, + unichr-builtin, + map-builtin-not-iterating, + zip-builtin-not-iterating, + range-builtin-not-iterating, + filter-builtin-not-iterating, + using-cmp-argument, + eq-without-hash, + div-method, + idiv-method, + rdiv-method, + exception-message-attribute, + invalid-str-codec, + sys-max-int, + bad-python3-import, + deprecated-string-function, + deprecated-str-translate-call, + deprecated-itertools-function, + deprecated-types-field, + next-method-defined, + dict-items-not-iterating, + dict-keys-not-iterating, + dict-values-not-iterating, + deprecated-operator-function, + deprecated-urllib-function, + xreadlines-attribute, + deprecated-sys-function, + exception-escape, + comprehension-escape, + no-member, + invalid-name, + too-many-branches, + wrong-import-order, + too-many-arguments, + missing-function-docstring, + missing-module-docstring, + too-many-locals, + too-few-public-methods, + abstract-method, + broad-except, + too-many-nested-blocks, + too-many-instance-attributes, + missing-class-docstring, + duplicate-code, + not-callable, + protected-access, + dangerous-default-value, + no-name-in-module, + logging-fstring-interpolation, + super-init-not-called, + redefined-builtin, + attribute-defined-outside-init, + arguments-differ, + cyclic-import, + bad-super-call, + too-many-statements, + line-too-long + +# Enable the message, report, category or checker with the given id(s). You can +# either give multiple identifier separated by comma (,) or put this option +# multiple time (only on the command line, not in the configuration file where +# it should appear only once). See also the "--disable" option for examples. +enable=c-extension-no-member + + +[REPORTS] + +# Python expression which should return a score less than or equal to 10. You +# have access to the variables 'error', 'warning', 'refactor', and 'convention' +# which contain the number of messages in each category, as well as 'statement' +# which is the total number of statements analyzed. This score is used by the +# global evaluation report (RP0004). +evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) + +# Template used to display messages. This is a python new-style format string +# used to format the message information. See doc for all details. +#msg-template= + +# Set the output format. Available formats are text, parseable, colorized, json +# and msvs (visual studio). You can also give a reporter class, e.g. +# mypackage.mymodule.MyReporterClass. +output-format=text + +# Tells whether to display a full report or only the messages. +reports=no + +# Activate the evaluation score. +score=yes + + +[REFACTORING] + +# Maximum number of nested blocks for function / method body +max-nested-blocks=5 + +# Complete name of functions that never returns. When checking for +# inconsistent-return-statements if a never returning function is called then +# it will be considered as an explicit return statement and no message will be +# printed. +never-returning-functions=sys.exit + + +[TYPECHECK] + +# List of decorators that produce context managers, such as +# contextlib.contextmanager. Add to this list to register other decorators that +# produce valid context managers. +contextmanager-decorators=contextlib.contextmanager + +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E1101 when accessed. Python regular +# expressions are accepted. +generated-members= + +# Tells whether missing members accessed in mixin class should be ignored. A +# mixin class is detected if its name ends with "mixin" (case insensitive). +ignore-mixin-members=yes + +# Tells whether to warn about missing members when the owner of the attribute +# is inferred to be None. +ignore-none=yes + +# This flag controls whether pylint should warn about no-member and similar +# checks whenever an opaque object is returned when inferring. The inference +# can return multiple potential results while evaluating a Python object, but +# some branches might not be evaluated, which results in partial inference. In +# that case, it might be useful to still emit no-member and other checks for +# the rest of the inferred objects. +ignore-on-opaque-inference=yes + +# List of class names for which member attributes should not be checked (useful +# for classes with dynamically set attributes). This supports the use of +# qualified names. +ignored-classes=optparse.Values,thread._local,_thread._local + +# List of module names for which member attributes should not be checked +# (useful for modules/projects where namespaces are manipulated during runtime +# and thus existing member attributes cannot be deduced by static analysis). It +# supports qualified module names, as well as Unix pattern matching. +ignored-modules= + +# Show a hint with possible names when a member name was not found. The aspect +# of finding the hint is based on edit distance. +missing-member-hint=yes + +# The minimum edit distance a name should have in order to be considered a +# similar match for a missing member name. +missing-member-hint-distance=1 + +# The total number of similar names that should be taken in consideration when +# showing a hint for a missing member. +missing-member-max-choices=1 + +# List of decorators that change the signature of a decorated function. +signature-mutators= + + +[SPELLING] + +# Limits count of emitted suggestions for spelling mistakes. +max-spelling-suggestions=4 + +# Spelling dictionary name. Available dictionaries: none. To make it work, +# install the python-enchant package. +spelling-dict= + +# List of comma separated words that should not be checked. +spelling-ignore-words= + +# A path to a file that contains the private dictionary; one word per line. +spelling-private-dict-file= + +# Tells whether to store unknown words to the private dictionary (see the +# --spelling-private-dict-file option) instead of raising a message. +spelling-store-unknown-words=no + + +[LOGGING] + +# The type of string formatting that logging methods do. `old` means using % +# formatting, `new` is for `{}` formatting. +logging-format-style=old + +# Logging modules to check that the string format arguments are in logging +# function parameter format. +logging-modules=logging + + +[VARIABLES] + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid defining new builtins when possible. +additional-builtins= + +# Tells whether unused global variables should be treated as a violation. +allow-global-unused-variables=yes + +# List of strings which can identify a callback function by name. A callback +# name must start or end with one of those strings. +callbacks=cb_, + _cb + +# A regular expression matching the name of dummy variables (i.e. expected to +# not be used). +dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_ + +# Argument names that match this expression will be ignored. Default to name +# with leading underscore. +ignored-argument-names=_.*|^ignored_|^unused_ + +# Tells whether we should check for unused import in __init__ files. +init-import=no + +# List of qualified module names which can have objects that can redefine +# builtins. +redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io + + +[FORMAT] + +# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. +expected-line-ending-format= + +# Regexp for a line that is allowed to be longer than the limit. +ignore-long-lines=^\s*(# )??$ + +# Number of spaces of indent required inside a hanging or continued line. +indent-after-paren=4 + +# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 +# tab). +indent-string=' ' + +# Maximum number of characters on a single line. +max-line-length=100 + +# Maximum number of lines in a module. +max-module-lines=1000 + +# Allow the body of a class to be on the same line as the declaration if body +# contains single statement. +single-line-class-stmt=no + +# Allow the body of an if to be on the same line as the test if there is no +# else. +single-line-if-stmt=no + + +[STRING] + +# This flag controls whether inconsistent-quotes generates a warning when the +# character used as a quote delimiter is used inconsistently within a module. +check-quote-consistency=no + +# This flag controls whether the implicit-str-concat should generate a warning +# on implicit string concatenation in sequences defined over several lines. +check-str-concat-over-line-jumps=no + + +[SIMILARITIES] + +# Ignore comments when computing similarities. +ignore-comments=yes + +# Ignore docstrings when computing similarities. +ignore-docstrings=yes + +# Ignore imports when computing similarities. +ignore-imports=no + +# Minimum lines number of a similarity. +min-similarity-lines=4 + + +[MISCELLANEOUS] + +# List of note tags to take in consideration, separated by a comma. +notes=FIXME, + XXX, + TODO + +# Regular expression of note tags to take in consideration. +#notes-rgx= + + +[BASIC] + +# Naming style matching correct argument names. +argument-naming-style=snake_case + +# Regular expression matching correct argument names. Overrides argument- +# naming-style. +#argument-rgx= + +# Naming style matching correct attribute names. +attr-naming-style=snake_case + +# Regular expression matching correct attribute names. Overrides attr-naming- +# style. +#attr-rgx= + +# Bad variable names which should always be refused, separated by a comma. +bad-names=foo, + bar, + baz, + toto, + tutu, + tata + +# Bad variable names regexes, separated by a comma. If names match any regex, +# they will always be refused +bad-names-rgxs= + +# Naming style matching correct class attribute names. +class-attribute-naming-style=any + +# Regular expression matching correct class attribute names. Overrides class- +# attribute-naming-style. +#class-attribute-rgx= + +# Naming style matching correct class names. +class-naming-style=PascalCase + +# Regular expression matching correct class names. Overrides class-naming- +# style. +#class-rgx= + +# Naming style matching correct constant names. +const-naming-style=UPPER_CASE + +# Regular expression matching correct constant names. Overrides const-naming- +# style. +#const-rgx= + +# Minimum line length for functions/classes that require docstrings, shorter +# ones are exempt. +docstring-min-length=-1 + +# Naming style matching correct function names. +function-naming-style=snake_case + +# Regular expression matching correct function names. Overrides function- +# naming-style. +#function-rgx= + +# Good variable names which should always be accepted, separated by a comma. +good-names=i, + j, + k, + ex, + Run, + _, + x, + y, + w, + h, + a, + b + +# Good variable names regexes, separated by a comma. If names match any regex, +# they will always be accepted +good-names-rgxs= + +# Include a hint for the correct naming format with invalid-name. +include-naming-hint=no + +# Naming style matching correct inline iteration names. +inlinevar-naming-style=any + +# Regular expression matching correct inline iteration names. Overrides +# inlinevar-naming-style. +#inlinevar-rgx= + +# Naming style matching correct method names. +method-naming-style=snake_case + +# Regular expression matching correct method names. Overrides method-naming- +# style. +#method-rgx= + +# Naming style matching correct module names. +module-naming-style=snake_case + +# Regular expression matching correct module names. Overrides module-naming- +# style. +#module-rgx= + +# Colon-delimited sets of names that determine each other's naming style when +# the name regexes allow several styles. +name-group= + +# Regular expression which should only match function or class names that do +# not require a docstring. +no-docstring-rgx=^_ + +# List of decorators that produce properties, such as abc.abstractproperty. Add +# to this list to register other decorators that produce valid properties. +# These decorators are taken in consideration only for invalid-name. +property-classes=abc.abstractproperty + +# Naming style matching correct variable names. +variable-naming-style=snake_case + +# Regular expression matching correct variable names. Overrides variable- +# naming-style. +#variable-rgx= + + +[DESIGN] + +# Maximum number of arguments for function / method. +max-args=5 + +# Maximum number of attributes for a class (see R0902). +max-attributes=7 + +# Maximum number of boolean expressions in an if statement (see R0916). +max-bool-expr=5 + +# Maximum number of branch for function / method body. +max-branches=12 + +# Maximum number of locals for function / method body. +max-locals=15 + +# Maximum number of parents for a class (see R0901). +max-parents=7 + +# Maximum number of public methods for a class (see R0904). +max-public-methods=20 + +# Maximum number of return / yield for function / method body. +max-returns=6 + +# Maximum number of statements in function / method body. +max-statements=50 + +# Minimum number of public methods for a class (see R0903). +min-public-methods=2 + + +[IMPORTS] + +# List of modules that can be imported at any level, not just the top level +# one. +allow-any-import-level= + +# Allow wildcard imports from modules that define __all__. +allow-wildcard-with-all=no + +# Analyse import fallback blocks. This can be used to support both Python 2 and +# 3 compatible code, which means that the block might have code that exists +# only in one or another interpreter, leading to false positives when analysed. +analyse-fallback-blocks=no + +# Deprecated modules which should not be used, separated by a comma. +deprecated-modules=optparse,tkinter.tix + +# Create a graph of external dependencies in the given file (report RP0402 must +# not be disabled). +ext-import-graph= + +# Create a graph of every (i.e. internal and external) dependencies in the +# given file (report RP0402 must not be disabled). +import-graph= + +# Create a graph of internal dependencies in the given file (report RP0402 must +# not be disabled). +int-import-graph= + +# Force import order to recognize a module as part of the standard +# compatibility libraries. +known-standard-library= + +# Force import order to recognize a module as part of a third party library. +known-third-party=enchant + +# Couples of modules and preferred modules, separated by a comma. +preferred-modules= + + +[CLASSES] + +# List of method names used to declare (i.e. assign) instance attributes. +defining-attr-methods=__init__, + __new__, + setUp, + __post_init__ + +# List of member names, which should be excluded from the protected access +# warning. +exclude-protected=_asdict, + _fields, + _replace, + _source, + _make + +# List of valid names for the first argument in a class method. +valid-classmethod-first-arg=cls + +# List of valid names for the first argument in a metaclass class method. +valid-metaclass-classmethod-first-arg=cls + + +[EXCEPTIONS] + +# Exceptions that will emit a warning when being caught. Defaults to +# "BaseException, Exception". +overgeneral-exceptions=BaseException, + Exception diff --git a/openmmlab_test/mmaction2-0.24.1/.readthedocs.yml b/openmmlab_test/mmaction2-0.24.1/.readthedocs.yml new file mode 100644 index 00000000..73ea4cb7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/.readthedocs.yml @@ -0,0 +1,7 @@ +version: 2 + +python: + version: 3.7 + install: + - requirements: requirements/docs.txt + - requirements: requirements/readthedocs.txt diff --git a/openmmlab_test/mmaction2-0.24.1/CITATION.cff b/openmmlab_test/mmaction2-0.24.1/CITATION.cff new file mode 100644 index 00000000..93a03304 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/CITATION.cff @@ -0,0 +1,8 @@ +cff-version: 1.2.0 +message: "If you use this software, please cite it as below." +authors: + - name: "MMAction2 Contributors" +title: "OpenMMLab's Next Generation Video Understanding Toolbox and Benchmark" +date-released: 2020-07-21 +url: "https://github.com/open-mmlab/mmaction2" +license: Apache-2.0 diff --git a/openmmlab_test/mmaction2-0.24.1/LICENSE b/openmmlab_test/mmaction2-0.24.1/LICENSE new file mode 100644 index 00000000..04adf5cb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/LICENSE @@ -0,0 +1,203 @@ +Copyright 2018-2019 Open-MMLab. All rights reserved. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018-2019 Open-MMLab. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/openmmlab_test/mmaction2-0.24.1/MANIFEST.in b/openmmlab_test/mmaction2-0.24.1/MANIFEST.in new file mode 100644 index 00000000..258c4e01 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/MANIFEST.in @@ -0,0 +1,3 @@ +include mmaction/.mim/model-index.yml +recursive-include mmaction/.mim/configs *.py *.yml +recursive-include mmaction/.mim/tools *.sh *.py diff --git a/openmmlab_test/mmaction2-0.24.1/README.md b/openmmlab_test/mmaction2-0.24.1/README.md new file mode 100644 index 00000000..95617f05 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/README.md @@ -0,0 +1,320 @@ +
+ +
 
+
+ OpenMMLab website + + + HOT + + +      + OpenMMLab platform + + + TRY IT OUT + + +
+ +[![Documentation](https://readthedocs.org/projects/mmaction2/badge/?version=latest)](https://mmaction2.readthedocs.io/en/latest/) +[![actions](https://github.com/open-mmlab/mmaction2/workflows/build/badge.svg)](https://github.com/open-mmlab/mmaction2/actions) +[![codecov](https://codecov.io/gh/open-mmlab/mmaction2/branch/master/graph/badge.svg)](https://codecov.io/gh/open-mmlab/mmaction2) +[![PyPI](https://img.shields.io/pypi/v/mmaction2)](https://pypi.org/project/mmaction2/) +[![LICENSE](https://img.shields.io/github/license/open-mmlab/mmaction2.svg)](https://github.com/open-mmlab/mmaction2/blob/master/LICENSE) +[![Average time to resolve an issue](https://isitmaintained.com/badge/resolution/open-mmlab/mmaction2.svg)](https://github.com/open-mmlab/mmaction2/issues) +[![Percentage of issues still open](https://isitmaintained.com/badge/open/open-mmlab/mmaction2.svg)](https://github.com/open-mmlab/mmaction2/issues) + +[📘Documentation](https://mmaction2.readthedocs.io/en/latest/) | +[🛠️Installation](https://mmaction2.readthedocs.io/en/latest/install.html) | +[👀Model Zoo](https://mmaction2.readthedocs.io/en/latest/modelzoo.html) | +[🆕Update News](https://mmaction2.readthedocs.io/en/latest/changelog.html) | +[🚀Ongoing Projects](https://github.com/open-mmlab/mmaction2/projects) | +[🤔Reporting Issues](https://github.com/open-mmlab/mmaction2/issues/new/choose) + +
+ +English | [简体中文](/README_zh-CN.md) + +## Introduction + +MMAction2 is an open-source toolbox for video understanding based on PyTorch. +It is a part of the [OpenMMLab](http://openmmlab.org/) project. + +The master branch works with **PyTorch 1.5+**. + +
+
+
+

Action Recognition Results on Kinetics-400

+
+
+
+

Skeleton-base Action Recognition Results on NTU-RGB+D-120

+
+
+
+
+

Skeleton-based Spatio-Temporal Action Detection and Action Recognition Results on Kinetics-400

+
+
+
+

Spatio-Temporal Action Detection Results on AVA-2.1

+
+ +## Major Features + +- **Modular design**: We decompose a video understanding framework into different components. One can easily construct a customized video understanding framework by combining different modules. + +- **Support four major video understanding tasks**: MMAction2 implements various algorithms for multiple video understanding tasks, including action recognition, action localization, spatio-temporal action detection, and skeleton-based action detection. We support **27** different algorithms and **20** different datasets for the four major tasks. + +- **Well tested and documented**: We provide detailed documentation and API reference, as well as unit tests. + +## What's New + +- (2022-03-04) We support **Multigrid** on Kinetics400, achieve 76.07% Top-1 accuracy and accelerate training speed. +- (2021-11-24) We support **2s-AGCN** on NTU60 XSub, achieve 86.06% Top-1 accuracy on joint stream and 86.89% Top-1 accuracy on bone stream respectively. +- (2021-10-29) We provide a demo for skeleton-based and rgb-based spatio-temporal detection and action recognition (demo/demo_video_structuralize.py). +- (2021-10-26) We train and test **ST-GCN** on NTU60 with 3D keypoint annotations, achieve 84.61% Top-1 accuracy (higher than 81.5% in the [paper](https://www.aaai.org/ocs/index.php/AAAI/AAAI18/paper/viewPaper/17135)). +- (2021-10-25) We provide a script(tools/data/skeleton/gen_ntu_rgbd_raw.py) to convert the NTU60 and NTU120 3D raw skeleton data to our format. +- (2021-10-25) We provide a [guide](https://github.com/open-mmlab/mmaction2/blob/master/configs/skeleton/posec3d/custom_dataset_training.md) on how to train PoseC3D with custom datasets, [bit-scientist](https://github.com/bit-scientist) authored this PR! +- (2021-10-16) We support **PoseC3D** on UCF101 and HMDB51, achieves 87.0% and 69.3% Top-1 accuracy with 2D skeletons only. Pre-extracted 2D skeletons are also available. + +**Release**: v0.24.0 was released in 05/05/2022. Please refer to [changelog.md](docs/changelog.md) for details and release history. + +## Installation + +MMAction2 depends on [PyTorch](https://pytorch.org/), [MMCV](https://github.com/open-mmlab/mmcv), [MMDetection](https://github.com/open-mmlab/mmdetection) (optional), and [MMPose](https://github.com/open-mmlab/mmdetection)(optional). +Below are quick steps for installation. +Please refer to [install.md](docs/install.md) for more detailed instruction. + +```shell +conda create -n open-mmlab python=3.8 pytorch=1.10 cudatoolkit=11.3 torchvision -c pytorch -y +conda activate open-mmlab +pip3 install openmim +mim install mmcv-full +mim install mmdet # optional +mim install mmpose # optional +git clone https://github.com/open-mmlab/mmaction2.git +cd mmaction2 +pip3 install -e . +``` + +## Get Started + +Please see [getting_started.md](docs/getting_started.md) for the basic usage of MMAction2. +There are also tutorials: + +- [learn about configs](docs/tutorials/1_config.md) +- [finetuning models](docs/tutorials/2_finetune.md) +- [adding new dataset](docs/tutorials/3_new_dataset.md) +- [designing data pipeline](docs/tutorials/4_data_pipeline.md) +- [adding new modules](docs/tutorials/5_new_modules.md) +- [exporting model to onnx](docs/tutorials/6_export_model.md) +- [customizing runtime settings](docs/tutorials/7_customize_runtime.md) + +A Colab tutorial is also provided. You may preview the notebook [here](demo/mmaction2_tutorial.ipynb) or directly [run](https://colab.research.google.com/github/open-mmlab/mmaction2/blob/master/demo/mmaction2_tutorial.ipynb) on Colab. + +## Supported Methods + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Action Recognition
C3D (CVPR'2014)TSN (ECCV'2016)I3D (CVPR'2017)I3D Non-Local (CVPR'2018)R(2+1)D (CVPR'2018)
TRN (ECCV'2018)TSM (ICCV'2019)TSM Non-Local (ICCV'2019)SlowOnly (ICCV'2019)SlowFast (ICCV'2019)
CSN (ICCV'2019)TIN (AAAI'2020)TPN (CVPR'2020)X3D (CVPR'2020)OmniSource (ECCV'2020)
MultiModality: Audio (ArXiv'2020)TANet (ArXiv'2020)TimeSformer (ICML'2021)
Action Localization
SSN (ICCV'2017)BSN (ECCV'2018)BMN (ICCV'2019)
Spatio-Temporal Action Detection
ACRN (ECCV'2018)SlowOnly+Fast R-CNN (ICCV'2019)SlowFast+Fast R-CNN (ICCV'2019)LFB (CVPR'2019)
Skeleton-based Action Recognition
ST-GCN (AAAI'2018)2s-AGCN (CVPR'2019)PoseC3D (ArXiv'2021)
+ +Results and models are available in the *README.md* of each method's config directory. +A summary can be found on the [**model zoo**](https://mmaction2.readthedocs.io/en/latest/recognition_models.html) page. + +We will keep up with the latest progress of the community and support more popular algorithms and frameworks. +If you have any feature requests, please feel free to leave a comment in [Issues](https://github.com/open-mmlab/mmaction2/issues/19). + +## Supported Datasets + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Action Recognition
HMDB51 (Homepage) (ICCV'2011)UCF101 (Homepage) (CRCV-IR-12-01)ActivityNet (Homepage) (CVPR'2015)Kinetics-[400/600/700] (Homepage) (CVPR'2017)
SthV1 (Homepage) (ICCV'2017)SthV2 (Homepage) (ICCV'2017)Diving48 (Homepage) (ECCV'2018)Jester (Homepage) (ICCV'2019)
Moments in Time (Homepage) (TPAMI'2019)Multi-Moments in Time (Homepage) (ArXiv'2019)HVU (Homepage) (ECCV'2020)OmniSource (Homepage) (ECCV'2020)
FineGYM (Homepage) (CVPR'2020)
Action Localization
THUMOS14 (Homepage) (THUMOS Challenge 2014)ActivityNet (Homepage) (CVPR'2015)
Spatio-Temporal Action Detection
UCF101-24* (Homepage) (CRCV-IR-12-01)JHMDB* (Homepage) (ICCV'2015)AVA (Homepage) (CVPR'2018)
Skeleton-based Action Recognition
PoseC3D-FineGYM (Homepage) (ArXiv'2021)PoseC3D-NTURGB+D (Homepage) (ArXiv'2021)PoseC3D-UCF101 (Homepage) (ArXiv'2021)PoseC3D-HMDB51 (Homepage) (ArXiv'2021)
+ +Datasets marked with * are not fully supported yet, but related dataset preparation steps are provided. A summary can be found on the [**Supported Datasets**](https://mmaction2.readthedocs.io/en/latest/supported_datasets.html) page. + +## Benchmark + +To demonstrate the efficacy and efficiency of our framework, we compare MMAction2 with some other popular frameworks and official releases in terms of speed. Details can be found in [benchmark](docs/benchmark.md). + +## Data Preparation + +Please refer to [data_preparation.md](docs/data_preparation.md) for a general knowledge of data preparation. +The supported datasets are listed in [supported_datasets.md](docs/supported_datasets.md) + +## FAQ + +Please refer to [FAQ](docs/faq.md) for frequently asked questions. + +## Projects built on MMAction2 + +Currently, there are many research works and projects built on MMAction2 by users from community, such as: + +- Video Swin Transformer. [\[paper\]](https://arxiv.org/abs/2106.13230)[\[github\]](https://github.com/SwinTransformer/Video-Swin-Transformer) +- Evidential Deep Learning for Open Set Action Recognition, ICCV 2021 **Oral**. [\[paper\]](https://arxiv.org/abs/2107.10161)[\[github\]](https://github.com/Cogito2012/DEAR) +- Rethinking Self-supervised Correspondence Learning: A Video Frame-level Similarity Perspective, ICCV 2021 **Oral**. [\[paper\]](https://arxiv.org/abs/2103.17263)[\[github\]](https://github.com/xvjiarui/VFS) + +etc., check [projects.md](docs/projects.md) to see all related projects. + +## Contributing + +We appreciate all contributions to improve MMAction2. Please refer to [CONTRIBUTING.md](https://github.com/open-mmlab/mmcv/blob/master/CONTRIBUTING.md) in MMCV for more details about the contributing guideline. + +## Acknowledgement + +MMAction2 is an open-source project that is contributed by researchers and engineers from various colleges and companies. +We appreciate all the contributors who implement their methods or add new features and users who give valuable feedback. +We wish that the toolbox and benchmark could serve the growing research community by providing a flexible toolkit to reimplement existing methods and develop their new models. + +## Citation + +If you find this project useful in your research, please consider cite: + +```BibTeX +@misc{2020mmaction2, + title={OpenMMLab's Next Generation Video Understanding Toolbox and Benchmark}, + author={MMAction2 Contributors}, + howpublished = {\url{https://github.com/open-mmlab/mmaction2}}, + year={2020} +} +``` + +## License + +This project is released under the [Apache 2.0 license](LICENSE). + +## Projects in OpenMMLab + +- [MIM](https://github.com/open-mmlab/mim): MIM installs OpenMMLab packages. +- [MMClassification](https://github.com/open-mmlab/mmclassification): OpenMMLab image classification toolbox and benchmark. +- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab detection toolbox and benchmark. +- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab's next-generation platform for general 3D object detection. +- [MMRotate](https://github.com/open-mmlab/mmrotate): OpenMMLab rotated object detection toolbox and benchmark. +- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab semantic segmentation toolbox and benchmark. +- [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab text detection, recognition, and understanding toolbox. +- [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab pose estimation toolbox and benchmark. +- [MMHuman3D](https://github.com/open-mmlab/mmhuman3d): OpenMMLab 3D human parametric model toolbox and benchmark. +- [MMSelfSup](https://github.com/open-mmlab/mmselfsup): OpenMMLab self-supervised learning toolbox and benchmark. +- [MMRazor](https://github.com/open-mmlab/mmrazor): OpenMMLab model compression toolbox and benchmark. +- [MMFewShot](https://github.com/open-mmlab/mmfewshot): OpenMMLab fewshot learning toolbox and benchmark. +- [MMAction2](https://github.com/open-mmlab/mmaction2): OpenMMLab's next-generation action understanding toolbox and benchmark. +- [MMTracking](https://github.com/open-mmlab/mmtracking): OpenMMLab video perception toolbox and benchmark. +- [MMFlow](https://github.com/open-mmlab/mmflow): OpenMMLab optical flow toolbox and benchmark. +- [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab image and video editing toolbox. +- [MMGeneration](https://github.com/open-mmlab/mmgeneration): OpenMMLab image and video generative models toolbox. +- [MMDeploy](https://github.com/open-mmlab/mmdeploy): OpenMMLab model deployment framework. diff --git a/openmmlab_test/mmaction2-0.24.1/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/README_zh-CN.md new file mode 100644 index 00000000..d6a1e2af --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/README_zh-CN.md @@ -0,0 +1,331 @@ +
+ +
 
+
+ OpenMMLab 官网 + + + HOT + + +      + OpenMMLab 开放平台 + + + TRY IT OUT + + +
+ +[![Documentation](https://readthedocs.org/projects/mmaction2/badge/?version=latest)](https://mmaction2.readthedocs.io/zh_CN/latest/) +[![actions](https://github.com/open-mmlab/mmaction2/workflows/build/badge.svg)](https://github.com/open-mmlab/mmaction2/actions) +[![codecov](https://codecov.io/gh/open-mmlab/mmaction2/branch/master/graph/badge.svg)](https://codecov.io/gh/open-mmlab/mmaction2) +[![PyPI](https://img.shields.io/pypi/v/mmaction2)](https://pypi.org/project/mmaction2/) +[![LICENSE](https://img.shields.io/github/license/open-mmlab/mmaction2.svg)](https://github.com/open-mmlab/mmaction2/blob/master/LICENSE) +[![Average time to resolve an issue](https://isitmaintained.com/badge/resolution/open-mmlab/mmaction2.svg)](https://github.com/open-mmlab/mmaction2/issues) +[![Percentage of issues still open](https://isitmaintained.com/badge/open/open-mmlab/mmaction2.svg)](https://github.com/open-mmlab/mmaction2/issues) + +[📘文档](https://mmaction2.readthedocs.io/en/latest/) | +[🛠️安装指南](https://mmaction2.readthedocs.io/en/latest/install.html) | +[👀模型库](https://mmaction2.readthedocs.io/en/latest/modelzoo.html) | +[🆕更新](https://mmaction2.readthedocs.io/en/latest/changelog.html) | +[🚀进行中项目](https://github.com/open-mmlab/mmaction2/projects) | +[🤔问题反馈](https://github.com/open-mmlab/mmaction2/issues/new/choose) + +
+ +[English](/README.md) | 简体中文 + +## 简介 + +MMAction2 是一款基于 PyTorch 的视频理解开源工具箱,是 [OpenMMLab](http://openmmlab.org/) 项目的成员之一 + +主分支代码目前支持 **PyTorch 1.5 以上**的版本 + +
+
+
+

Kinetics-400 上的动作识别

+
+
+
+

NTURGB+D-120 上的基于人体姿态的动作识别

+
+
+
+
+

Kinetics-400 上的基于 skeleton 的时空动作检测和动作识别

+
+
+
+

AVA-2.1 上的时空动作检测

+
+ +## 主要特性 + +- **模块化设计**:MMAction2 将统一的视频理解框架解耦成不同的模块组件,通过组合不同的模块组件,用户可以便捷地构建自定义的视频理解模型 + +- **支持多种任务和数据集**:MMAction2 支持多种视频理解任务,包括动作识别,时序动作检测,时空动作检测以及基于人体姿态的动作识别,总共支持 **27** 种算法和 **20** 种数据集 + +- **详尽的单元测试和文档**:MMAction2 提供了详尽的说明文档,API 接口说明,全面的单元测试,以供社区参考 + +## 更新记录 + +- (2021-11-24) 在 NTU60 XSub 上支持 **2s-AGCN**, 在 joint stream 和 bone stream 上分别达到 86.06% 和 86.89% 的识别准确率。 +- (2021-10-29) 支持基于 skeleton 模态和 rgb 模态的时空动作检测和行为识别 demo (demo/demo_video_structuralize.py)。 +- (2021-10-26) 在 NTU60 3d 关键点标注数据集上训练测试 **STGCN**, 可达到 84.61% (高于 [paper](https://www.aaai.org/ocs/index.php/AAAI/AAAI18/paper/viewPaper/17135) 中的 81.5%) 的识别准确率。 +- (2021-10-25) 提供将 NTU60 和 NTU120 的 3d 骨骼点数据转换成我们项目的格式的脚本(tools/data/skeleton/gen_ntu_rgbd_raw.py)。 +- (2021-10-25) 提供使用自定义数据集训练 PoseC3D 的 [教程](https://github.com/open-mmlab/mmaction2/blob/master/configs/skeleton/posec3d/custom_dataset_training.md),此 PR 由用户 [bit-scientist](https://github.com/bit-scientist) 完成! +- (2021-10-16) 在 UCF101, HMDB51 上支持 **PoseC3D**,仅用 2D 关键点就可分别达到 87.0% 和 69.3% 的识别准确率。两数据集的预提取骨架特征可以公开下载。 + +v0.24.0 版本已于 2022 年 5 月 5 日发布,可通过查阅 [更新日志](/docs/changelog.md) 了解更多细节以及发布历史 + +## 安装 + +MMAction2 依赖 [PyTorch](https://pytorch.org/), [MMCV](https://github.com/open-mmlab/mmcv), [MMDetection](https://github.com/open-mmlab/mmdetection)(可选), [MMPose](https://github.com/open-mmlab/mmpose)(可选),以下是安装的简要步骤。 +更详细的安装指南请参考 [install.md](docs_zh_CN/install.md)。 + +```shell +conda create -n open-mmlab python=3.8 pytorch=1.10 cudatoolkit=11.3 torchvision -c pytorch -y +conda activate open-mmlab +pip3 install openmim +mim install mmcv-full +mim install mmdet # 可选 +mim install mmpose # 可选 +git clone https://github.com/open-mmlab/mmaction2.git +cd mmaction2 +pip3 install -e . +``` + +## 教程 + +请参考 [基础教程](/docs_zh_CN/getting_started.md) 了解 MMAction2 的基本使用。MMAction2也提供了其他更详细的教程: + +- [如何编写配置文件](/docs_zh_CN/tutorials/1_config.md) +- [如何微调模型](/docs_zh_CN/tutorials/2_finetune.md) +- [如何增加新数据集](/docs_zh_CN/tutorials/3_new_dataset.md) +- [如何设计数据处理流程](/docs_zh_CN/tutorials/4_data_pipeline.md) +- [如何增加新模块](/docs_zh_CN/tutorials/5_new_modules.md) +- [如何导出模型为 onnx 格式](/docs_zh_CN/tutorials/6_export_model.md) +- [如何自定义模型运行参数](/docs_zh_CN/tutorials/7_customize_runtime.md) + +MMAction2 也提供了相应的中文 Colab 教程,可以点击 [这里](https://colab.research.google.com/github/open-mmlab/mmaction2/blob/master/demo/mmaction2_tutorial_zh-CN.ipynb) 进行体验! + +## 模型库 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
行为识别方法
C3D (CVPR'2014)TSN (ECCV'2016)I3D (CVPR'2017)I3D Non-Local (CVPR'2018)R(2+1)D (CVPR'2018)
TRN (ECCV'2018)TSM (ICCV'2019)TSM Non-Local (ICCV'2019)SlowOnly (ICCV'2019)SlowFast (ICCV'2019)
CSN (ICCV'2019)TIN (AAAI'2020)TPN (CVPR'2020)X3D (CVPR'2020)OmniSource (ECCV'2020)
MultiModality: Audio (ArXiv'2020)TANet (ArXiv'2020)TimeSformer (ICML'2021)
时序动作检测方法
SSN (ICCV'2017)BSN (ECCV'2018)BMN (ICCV'2019)
时空动作检测方法
ACRN (ECCV'2018)SlowOnly+Fast R-CNN (ICCV'2019)SlowFast+Fast R-CNN (ICCV'2019)LFB (CVPR'2019)
基于骨骼点的动作识别方法
ST-GCN (AAAI'2018)2s-AGCN (CVPR'2019)PoseC3D (ArXiv'2021)
+ +各个模型的结果和设置都可以在对应的 config 目录下的 *README_zh-CN.md* 中查看。整体的概况也可也在 [**模型库**](https://mmaction2.readthedocs.io/zh_CN/latest/recognition_models.html) 页面中查看 + +MMAction2 将跟进学界的最新进展,并支持更多算法和框架。如果您对 MMAction2 有任何功能需求,请随时在 [问题](https://github.com/open-mmlab/mmaction2/issues/19) 中留言。 + +## 数据集 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
动作识别数据集
HMDB51 (主页) (ICCV'2011)UCF101 (主页) (CRCV-IR-12-01)ActivityNet (主页) (CVPR'2015)Kinetics-[400/600/700] (主页) (CVPR'2017)
SthV1 (主页) (ICCV'2017)SthV2 (主页) (ICCV'2017)Diving48 (主页) (ECCV'2018)Jester (主页) (ICCV'2019)
Moments in Time (主页) (TPAMI'2019)Multi-Moments in Time (主页) (ArXiv'2019)HVU (主页) (ECCV'2020)OmniSource (主页) (ECCV'2020)
FineGYM (主页) (CVPR'2020)
时序动作检测数据集
THUMOS14 (主页) (THUMOS Challenge 2014)ActivityNet (主页) (CVPR'2015)
时空动作检测数据集
UCF101-24* (主页) (CRCV-IR-12-01)JHMDB* (主页) (ICCV'2015)AVA (主页) (CVPR'2018)
基于骨骼点的动作识别数据集
PoseC3D-FineGYM (主页) (ArXiv'2021)PoseC3D-NTURGB+D (主页) (ArXiv'2021)PoseC3D-UCF101 (主页) (ArXiv'2021)PoseC3D-HMDB51 (主页) (ArXiv'2021)
+ +标记 * 代表对应数据集并未被完全支持,但提供相应的数据准备步骤。整体的概况也可也在 [**数据集**](https://mmaction2.readthedocs.io/en/latest/supported_datasets.html) 页面中查看 + +## 基准测试 + +为了验证 MMAction2 框架的高精度和高效率,开发成员将其与当前其他主流框架进行速度对比。更多详情可见 [基准测试](/docs_zh_CN/benchmark.md) + +## 数据集准备 + +请参考 [数据准备](/docs_zh_CN/data_preparation.md) 了解数据集准备概况。所有支持的数据集都列于 [数据集清单](/docs_zh_CN/supported_datasets.md) 中 + +## 常见问题 + +请参考 [FAQ](/docs_zh_CN/faq.md) 了解其他用户的常见问题 + +## 相关工作 + +目前有许多研究工作或工程项目基于 MMAction2 搭建,例如: + +- Evidential Deep Learning for Open Set Action Recognition, ICCV 2021 **Oral**. [\[论文\]](https://arxiv.org/abs/2107.10161)[\[代码\]](https://github.com/Cogito2012/DEAR) +- Rethinking Self-supervised Correspondence Learning: A Video Frame-level Similarity Perspective, ICCV 2021 **Oral**. [\[论文\]](https://arxiv.org/abs/2103.17263)[\[代码\]](https://github.com/xvjiarui/VFS) +- Video Swin Transformer. [\[论文\]](https://arxiv.org/abs/2106.13230)[\[代码\]](https://github.com/SwinTransformer/Video-Swin-Transformer) + +更多详情可见 [相关工作](docs/projects.md) + +## 参与贡献 + +我们非常欢迎用户对于 MMAction2 做出的任何贡献,可以参考 [贡献指南](/.github/CONTRIBUTING.md) 文件了解更多细节 + +## 致谢 + +MMAction2 是一款由不同学校和公司共同贡献的开源项目。我们感谢所有为项目提供算法复现和新功能支持的贡献者,以及提供宝贵反馈的用户。 +我们希望该工具箱和基准测试可以为社区提供灵活的代码工具,供用户复现现有算法并开发自己的新模型,从而不断为开源社区提供贡献。 + +## 引用 + +如果你觉得 MMAction2 对你的研究有所帮助,可以考虑引用它: + +```BibTeX +@misc{2020mmaction2, + title={OpenMMLab's Next Generation Video Understanding Toolbox and Benchmark}, + author={MMAction2 Contributors}, + howpublished = {\url{https://github.com/open-mmlab/mmaction2}}, + year={2020} +} +``` + +## 许可 + +该项目开源自 [Apache 2.0 license](/LICENSE) + +## OpenMMLab 的其他项目 + +- [MIM](https://github.com/open-mmlab/mim): MIM 是 OpenMMlab 项目、算法、模型的统一入口 +- [MMClassification](https://github.com/open-mmlab/mmclassification): OpenMMLab 图像分类工具箱 +- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab 目标检测工具箱 +- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab 新一代通用 3D 目标检测平台 +- [MMRotate](https://github.com/open-mmlab/mmrotate): OpenMMLab 旋转框检测工具箱与测试基准 +- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab 语义分割工具箱 +- [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab 全流程文字检测识别理解工具箱 +- [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab 姿态估计工具箱 +- [MMHuman3D](https://github.com/open-mmlab/mmhuman3d): OpenMMLab 人体参数化模型工具箱与测试基准 +- [MMSelfSup](https://github.com/open-mmlab/mmselfsup): OpenMMLab 自监督学习工具箱与测试基准 +- [MMRazor](https://github.com/open-mmlab/mmrazor): OpenMMLab 模型压缩工具箱与测试基准 +- [MMFewShot](https://github.com/open-mmlab/mmfewshot): OpenMMLab 少样本学习工具箱与测试基准 +- [MMAction2](https://github.com/open-mmlab/mmaction2): OpenMMLab 新一代视频理解工具箱 +- [MMTracking](https://github.com/open-mmlab/mmtracking): OpenMMLab 一体化视频目标感知平台 +- [MMFlow](https://github.com/open-mmlab/mmflow): OpenMMLab 光流估计工具箱与测试基准 +- [MMEditing](https://github.com/open-mmlab/mmediting): OpenMMLab 图像视频编辑工具箱 +- [MMGeneration](https://github.com/open-mmlab/mmgeneration): OpenMMLab 图片视频生成模型工具箱 +- [MMDeploy](https://github.com/open-mmlab/mmdeploy): OpenMMLab 模型部署框架 + +## 欢迎加入 OpenMMLab 社区 + +扫描下方的二维码可关注 OpenMMLab 团队的 [知乎官方账号](https://www.zhihu.com/people/openmmlab),加入 OpenMMLab 团队的 [官方交流 QQ 群](https://jq.qq.com/?_wv=1027&k=aCvMxdr3) + +
+ +
+ +我们会在 OpenMMLab 社区为大家 + +- 📢 分享 AI 框架的前沿核心技术 +- 💻 解读 PyTorch 常用模块源码 +- 📰 发布 OpenMMLab 的相关新闻 +- 🚀 介绍 OpenMMLab 开发的前沿算法 +- 🏃 获取更高效的问题答疑和意见反馈 +- 🔥 提供与各行各业开发者充分交流的平台 + +干货满满 📘,等你来撩 💗,OpenMMLab 社区期待您的加入 👬 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/default_runtime.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/default_runtime.py new file mode 100644 index 00000000..3bfa9752 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/default_runtime.py @@ -0,0 +1,18 @@ +checkpoint_config = dict(interval=1) +log_config = dict( + interval=20, + hooks=[ + dict(type='TextLoggerHook'), + # dict(type='TensorboardLoggerHook'), + ]) +# runtime settings +dist_params = dict(backend='nccl') +log_level = 'INFO' +load_from = None +resume_from = None +workflow = [('train', 1)] + +# disable opencv multithreading to avoid system being overloaded +opencv_num_threads = 0 +# set multi-process start method as `fork` to speed up the training +mp_start_method = 'fork' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/audioonly_r50.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/audioonly_r50.py new file mode 100644 index 00000000..d4a190c8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/audioonly_r50.py @@ -0,0 +1,18 @@ +# model settings +model = dict( + type='AudioRecognizer', + backbone=dict( + type='ResNetAudio', + depth=50, + pretrained=None, + in_channels=1, + norm_eval=False), + cls_head=dict( + type='AudioTSNHead', + num_classes=400, + in_channels=1024, + dropout_ratio=0.5, + init_std=0.01), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob')) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/bmn_400x100.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/bmn_400x100.py new file mode 100644 index 00000000..edaccb98 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/bmn_400x100.py @@ -0,0 +1,12 @@ +# model settings +model = dict( + type='BMN', + temporal_dim=100, + boundary_ratio=0.5, + num_samples=32, + num_samples_per_bin=3, + feat_dim=400, + soft_nms_alpha=0.4, + soft_nms_low_threshold=0.5, + soft_nms_high_threshold=0.9, + post_process_top_k=100) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/bsn_pem.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/bsn_pem.py new file mode 100644 index 00000000..7acb7d31 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/bsn_pem.py @@ -0,0 +1,13 @@ +# model settings +model = dict( + type='PEM', + pem_feat_dim=32, + pem_hidden_dim=256, + pem_u_ratio_m=1, + pem_u_ratio_l=2, + pem_high_temporal_iou_threshold=0.6, + pem_low_temporal_iou_threshold=0.2, + soft_nms_alpha=0.75, + soft_nms_low_threshold=0.65, + soft_nms_high_threshold=0.9, + post_process_top_k=100) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/bsn_tem.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/bsn_tem.py new file mode 100644 index 00000000..84a2b699 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/bsn_tem.py @@ -0,0 +1,8 @@ +# model settings +model = dict( + type='TEM', + temporal_dim=100, + boundary_ratio=0.1, + tem_feat_dim=400, + tem_hidden_dim=512, + tem_match_threshold=0.5) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/c3d_sports1m_pretrained.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/c3d_sports1m_pretrained.py new file mode 100644 index 00000000..1cdc3d49 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/c3d_sports1m_pretrained.py @@ -0,0 +1,23 @@ +# model settings +model = dict( + type='Recognizer3D', + backbone=dict( + type='C3D', + pretrained= # noqa: E251 + 'https://download.openmmlab.com/mmaction/recognition/c3d/c3d_sports1m_pretrain_20201016-dcc47ddc.pth', # noqa: E501 + style='pytorch', + conv_cfg=dict(type='Conv3d'), + norm_cfg=None, + act_cfg=dict(type='ReLU'), + dropout_ratio=0.5, + init_std=0.005), + cls_head=dict( + type='I3DHead', + num_classes=101, + in_channels=4096, + spatial_type=None, + dropout_ratio=0.5, + init_std=0.01), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='score')) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/i3d_r50.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/i3d_r50.py new file mode 100644 index 00000000..fee08bc2 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/i3d_r50.py @@ -0,0 +1,27 @@ +# model settings +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3d', + pretrained2d=True, + pretrained='torchvision://resnet50', + depth=50, + conv1_kernel=(5, 7, 7), + conv1_stride_t=2, + pool1_stride_t=2, + conv_cfg=dict(type='Conv3d'), + norm_eval=False, + inflate=((1, 1, 1), (1, 0, 1, 0), (1, 0, 1, 0, 1, 0), (0, 1, 0)), + zero_init_residual=False), + cls_head=dict( + type='I3DHead', + num_classes=400, + in_channels=2048, + spatial_type='avg', + dropout_ratio=0.5, + init_std=0.01), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob')) + +# This setting refers to https://github.com/open-mmlab/mmaction/blob/master/mmaction/models/tenons/backbones/resnet_i3d.py#L329-L332 # noqa: E501 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/ircsn_r152.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/ircsn_r152.py new file mode 100644 index 00000000..36e700c3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/ircsn_r152.py @@ -0,0 +1,22 @@ +# model settings +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dCSN', + pretrained2d=False, + pretrained=None, + depth=152, + with_pool2=False, + bottleneck_mode='ir', + norm_eval=False, + zero_init_residual=False), + cls_head=dict( + type='I3DHead', + num_classes=400, + in_channels=2048, + spatial_type='avg', + dropout_ratio=0.5, + init_std=0.01), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob', max_testing_views=10)) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/r2plus1d_r34.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/r2plus1d_r34.py new file mode 100644 index 00000000..b5bcdac0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/r2plus1d_r34.py @@ -0,0 +1,28 @@ +# model settings +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet2Plus1d', + depth=34, + pretrained=None, + pretrained2d=False, + norm_eval=False, + conv_cfg=dict(type='Conv2plus1d'), + norm_cfg=dict(type='SyncBN', requires_grad=True, eps=1e-3), + conv1_kernel=(3, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(1, 1, 1, 1), + spatial_strides=(1, 2, 2, 2), + temporal_strides=(1, 2, 2, 2), + zero_init_residual=False), + cls_head=dict( + type='I3DHead', + num_classes=400, + in_channels=512, + spatial_type='avg', + dropout_ratio=0.5, + init_std=0.01), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob')) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/slowfast_r50.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/slowfast_r50.py new file mode 100644 index 00000000..afa8aab0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/slowfast_r50.py @@ -0,0 +1,39 @@ +# model settings +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowFast', + pretrained=None, + resample_rate=8, # tau + speed_ratio=8, # alpha + channel_ratio=8, # beta_inv + slow_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=True, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + norm_eval=False), + fast_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=False, + base_channels=8, + conv1_kernel=(5, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + norm_eval=False)), + cls_head=dict( + type='SlowFastHead', + in_channels=2304, # 2048+256 + num_classes=400, + spatial_type='avg', + dropout_ratio=0.5), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob')) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/slowonly_r50.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/slowonly_r50.py new file mode 100644 index 00000000..13081786 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/slowonly_r50.py @@ -0,0 +1,22 @@ +# model settings +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained='torchvision://resnet50', + lateral=False, + conv1_kernel=(1, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + norm_eval=False), + cls_head=dict( + type='I3DHead', + in_channels=2048, + num_classes=400, + spatial_type='avg', + dropout_ratio=0.5), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob')) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tanet_r50.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tanet_r50.py new file mode 100644 index 00000000..b20ea822 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tanet_r50.py @@ -0,0 +1,20 @@ +# model settings +model = dict( + type='Recognizer2D', + backbone=dict( + type='TANet', + pretrained='torchvision://resnet50', + depth=50, + num_segments=8, + tam_cfg=dict()), + cls_head=dict( + type='TSMHead', + num_classes=400, + in_channels=2048, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.5, + init_std=0.001), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob')) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tin_r50.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tin_r50.py new file mode 100644 index 00000000..af9ac373 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tin_r50.py @@ -0,0 +1,21 @@ +# model settings +model = dict( + type='Recognizer2D', + backbone=dict( + type='ResNetTIN', + pretrained='torchvision://resnet50', + depth=50, + norm_eval=False, + shift_div=4), + cls_head=dict( + type='TSMHead', + num_classes=400, + in_channels=2048, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.5, + init_std=0.001, + is_shift=False), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips=None)) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tpn_slowonly_r50.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tpn_slowonly_r50.py new file mode 100644 index 00000000..072e5e88 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tpn_slowonly_r50.py @@ -0,0 +1,40 @@ +# model settings +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained='torchvision://resnet50', + lateral=False, + out_indices=(2, 3), + conv1_kernel=(1, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + norm_eval=False), + neck=dict( + type='TPN', + in_channels=(1024, 2048), + out_channels=1024, + spatial_modulation_cfg=dict( + in_channels=(1024, 2048), out_channels=2048), + temporal_modulation_cfg=dict(downsample_scales=(8, 8)), + upsample_cfg=dict(scale_factor=(1, 1, 1)), + downsample_cfg=dict(downsample_scale=(1, 1, 1)), + level_fusion_cfg=dict( + in_channels=(1024, 1024), + mid_channels=(1024, 1024), + out_channels=2048, + downsample_scales=((1, 1, 1), (1, 1, 1))), + aux_head_cfg=dict(out_channels=400, loss_weight=0.5)), + cls_head=dict( + type='TPNHead', + num_classes=400, + in_channels=2048, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.5, + init_std=0.01), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob')) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tpn_tsm_r50.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tpn_tsm_r50.py new file mode 100644 index 00000000..4a038669 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tpn_tsm_r50.py @@ -0,0 +1,36 @@ +# model settings +model = dict( + type='Recognizer2D', + backbone=dict( + type='ResNetTSM', + pretrained='torchvision://resnet50', + depth=50, + out_indices=(2, 3), + norm_eval=False, + shift_div=8), + neck=dict( + type='TPN', + in_channels=(1024, 2048), + out_channels=1024, + spatial_modulation_cfg=dict( + in_channels=(1024, 2048), out_channels=2048), + temporal_modulation_cfg=dict(downsample_scales=(8, 8)), + upsample_cfg=dict(scale_factor=(1, 1, 1)), + downsample_cfg=dict(downsample_scale=(1, 1, 1)), + level_fusion_cfg=dict( + in_channels=(1024, 1024), + mid_channels=(1024, 1024), + out_channels=2048, + downsample_scales=((1, 1, 1), (1, 1, 1))), + aux_head_cfg=dict(out_channels=174, loss_weight=0.5)), + cls_head=dict( + type='TPNHead', + num_classes=174, + in_channels=2048, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.5, + init_std=0.01), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob', fcn_test=True)) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/trn_r50.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/trn_r50.py new file mode 100644 index 00000000..ff84e78c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/trn_r50.py @@ -0,0 +1,22 @@ +# model settings +model = dict( + type='Recognizer2D', + backbone=dict( + type='ResNet', + pretrained='torchvision://resnet50', + depth=50, + norm_eval=False, + partial_bn=True), + cls_head=dict( + type='TRNHead', + num_classes=400, + in_channels=2048, + num_segments=8, + spatial_type='avg', + relation_type='TRNMultiScale', + hidden_dim=256, + dropout_ratio=0.8, + init_std=0.001), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob')) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tsm_mobilenet_v2.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tsm_mobilenet_v2.py new file mode 100644 index 00000000..bce81074 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tsm_mobilenet_v2.py @@ -0,0 +1,22 @@ +# model settings +model = dict( + type='Recognizer2D', + backbone=dict( + type='MobileNetV2TSM', + shift_div=8, + num_segments=8, + is_shift=True, + pretrained='mmcls://mobilenet_v2'), + cls_head=dict( + type='TSMHead', + num_segments=8, + num_classes=400, + in_channels=1280, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.5, + init_std=0.001, + is_shift=True), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob')) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tsm_r50.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tsm_r50.py new file mode 100644 index 00000000..477497b6 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tsm_r50.py @@ -0,0 +1,21 @@ +# model settings +model = dict( + type='Recognizer2D', + backbone=dict( + type='ResNetTSM', + pretrained='torchvision://resnet50', + depth=50, + norm_eval=False, + shift_div=8), + cls_head=dict( + type='TSMHead', + num_classes=400, + in_channels=2048, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.5, + init_std=0.001, + is_shift=True), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob')) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tsn_r50.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tsn_r50.py new file mode 100644 index 00000000..d879ea69 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tsn_r50.py @@ -0,0 +1,19 @@ +# model settings +model = dict( + type='Recognizer2D', + backbone=dict( + type='ResNet', + pretrained='torchvision://resnet50', + depth=50, + norm_eval=False), + cls_head=dict( + type='TSNHead', + num_classes=400, + in_channels=2048, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.4, + init_std=0.01), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips=None)) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tsn_r50_audio.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tsn_r50_audio.py new file mode 100644 index 00000000..2c3ab0df --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/tsn_r50_audio.py @@ -0,0 +1,13 @@ +# model settings +model = dict( + type='AudioRecognizer', + backbone=dict(type='ResNet', depth=50, in_channels=1, norm_eval=False), + cls_head=dict( + type='AudioTSNHead', + num_classes=400, + in_channels=2048, + dropout_ratio=0.5, + init_std=0.01), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob')) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/x3d.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/x3d.py new file mode 100644 index 00000000..10e30205 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/models/x3d.py @@ -0,0 +1,14 @@ +# model settings +model = dict( + type='Recognizer3D', + backbone=dict(type='X3D', gamma_w=1, gamma_b=2.25, gamma_d=2.2), + cls_head=dict( + type='X3DHead', + in_channels=432, + num_classes=400, + spatial_type='avg', + dropout_ratio=0.5, + fc1_bias=False), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob')) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/adam_20e.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/adam_20e.py new file mode 100644 index 00000000..baa535f7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/adam_20e.py @@ -0,0 +1,7 @@ +# optimizer +optimizer = dict( + type='Adam', lr=0.01, weight_decay=0.00001) # this lr is used for 1 gpus +optimizer_config = dict(grad_clip=None) +# learning policy +lr_config = dict(policy='step', step=10) +total_epochs = 20 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_100e.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_100e.py new file mode 100644 index 00000000..de37742b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_100e.py @@ -0,0 +1,10 @@ +# optimizer +optimizer = dict( + type='SGD', + lr=0.01, # this lr is used for 8 gpus + momentum=0.9, + weight_decay=0.0001) +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[40, 80]) +total_epochs = 100 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_150e_warmup.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_150e_warmup.py new file mode 100644 index 00000000..af33a7c4 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_150e_warmup.py @@ -0,0 +1,13 @@ +# optimizer +optimizer = dict( + type='SGD', lr=0.01, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='step', + step=[90, 130], + warmup='linear', + warmup_by_epoch=True, + warmup_iters=10) +total_epochs = 150 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_50e.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_50e.py new file mode 100644 index 00000000..9345715d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_50e.py @@ -0,0 +1,10 @@ +# optimizer +optimizer = dict( + type='SGD', + lr=0.01, # this lr is used for 8 gpus + momentum=0.9, + weight_decay=0.0001) +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[20, 40]) +total_epochs = 50 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_tsm_100e.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_tsm_100e.py new file mode 100644 index 00000000..dbdc4739 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_tsm_100e.py @@ -0,0 +1,12 @@ +# optimizer +optimizer = dict( + type='SGD', + constructor='TSMOptimizerConstructor', + paramwise_cfg=dict(fc_lr5=True), + lr=0.01, # this lr is used for 8 gpus + momentum=0.9, + weight_decay=0.0001) +optimizer_config = dict(grad_clip=dict(max_norm=20, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[40, 80]) +total_epochs = 100 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_tsm_50e.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_tsm_50e.py new file mode 100644 index 00000000..24f4f344 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_tsm_50e.py @@ -0,0 +1,12 @@ +# optimizer +optimizer = dict( + type='SGD', + constructor='TSMOptimizerConstructor', + paramwise_cfg=dict(fc_lr5=True), + lr=0.01, # this lr is used for 8 gpus + momentum=0.9, + weight_decay=0.0001) +optimizer_config = dict(grad_clip=dict(max_norm=20, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[20, 40]) +total_epochs = 50 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_tsm_mobilenet_v2_100e.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_tsm_mobilenet_v2_100e.py new file mode 100644 index 00000000..63ed3f27 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_tsm_mobilenet_v2_100e.py @@ -0,0 +1,12 @@ +# optimizer +optimizer = dict( + type='SGD', + constructor='TSMOptimizerConstructor', + paramwise_cfg=dict(fc_lr5=True), + lr=0.01, # this lr is used for 8 gpus + momentum=0.9, + weight_decay=0.00002) +optimizer_config = dict(grad_clip=dict(max_norm=20, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[40, 80]) +total_epochs = 100 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_tsm_mobilenet_v2_50e.py b/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_tsm_mobilenet_v2_50e.py new file mode 100644 index 00000000..78612def --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/_base_/schedules/sgd_tsm_mobilenet_v2_50e.py @@ -0,0 +1,12 @@ +# optimizer +optimizer = dict( + type='SGD', + constructor='TSMOptimizerConstructor', + paramwise_cfg=dict(fc_lr5=True), + lr=0.01, # this lr is used for 8 gpus + momentum=0.9, + weight_decay=0.00002) +optimizer_config = dict(grad_clip=dict(max_norm=20, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[20, 40]) +total_epochs = 50 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/_base_/models/slowonly_r50.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/_base_/models/slowonly_r50.py new file mode 100644 index 00000000..965338ea --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/_base_/models/slowonly_r50.py @@ -0,0 +1,43 @@ +# model setting +model = dict( + type='FastRCNN', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained=None, + pretrained2d=False, + lateral=False, + num_stages=4, + conv1_kernel=(1, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + spatial_strides=(1, 2, 2, 1)), + roi_head=dict( + type='AVARoIHead', + bbox_roi_extractor=dict( + type='SingleRoIExtractor3D', + roi_layer_type='RoIAlign', + output_size=8, + with_temporal_pool=True), + bbox_head=dict( + type='BBoxHeadAVA', + in_channels=2048, + num_classes=81, + multilabel=True, + dropout_ratio=0.5)), + train_cfg=dict( + rcnn=dict( + assigner=dict( + type='MaxIoUAssignerAVA', + pos_iou_thr=0.9, + neg_iou_thr=0.9, + min_pos_iou=0.9), + sampler=dict( + type='RandomSampler', + num=32, + pos_fraction=1, + neg_pos_ub=-1, + add_gt_as_proposals=True), + pos_weight=1.0, + debug=False)), + test_cfg=dict(rcnn=dict(action_thr=0.002))) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/_base_/models/slowonly_r50_nl.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/_base_/models/slowonly_r50_nl.py new file mode 100644 index 00000000..fd2f739d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/_base_/models/slowonly_r50_nl.py @@ -0,0 +1,50 @@ +# model setting +model = dict( + type='FastRCNN', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained=None, + pretrained2d=False, + lateral=False, + num_stages=4, + conv1_kernel=(1, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + spatial_strides=(1, 2, 2, 1), + norm_cfg=dict(type='BN3d', requires_grad=True), + non_local=((0, 0, 0), (1, 0, 1, 0), (1, 0, 1, 0, 1, 0), (0, 0, 0)), + non_local_cfg=dict( + sub_sample=True, + use_scale=True, + norm_cfg=dict(type='BN3d', requires_grad=True), + mode='embedded_gaussian')), + roi_head=dict( + type='AVARoIHead', + bbox_roi_extractor=dict( + type='SingleRoIExtractor3D', + roi_layer_type='RoIAlign', + output_size=8, + with_temporal_pool=True), + bbox_head=dict( + type='BBoxHeadAVA', + in_channels=2048, + num_classes=81, + multilabel=True, + dropout_ratio=0.5)), + train_cfg=dict( + rcnn=dict( + assigner=dict( + type='MaxIoUAssignerAVA', + pos_iou_thr=0.9, + neg_iou_thr=0.9, + min_pos_iou=0.9), + sampler=dict( + type='RandomSampler', + num=32, + pos_fraction=1, + neg_pos_ub=-1, + add_gt_as_proposals=True), + pos_weight=1.0, + debug=False)), + test_cfg=dict(rcnn=dict(action_thr=0.002))) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/README.md b/openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/README.md new file mode 100644 index 00000000..18574fcb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/README.md @@ -0,0 +1,97 @@ +# ACRN + +[Actor-centric relation network](https://openaccess.thecvf.com/content_ECCV_2018/html/Chen_Sun_Actor-centric_Relation_Network_ECCV_2018_paper.html) + + + +## Abstract + + + +Current state-of-the-art approaches for spatio-temporal action localization rely on detections at the frame level and model temporal context with 3D ConvNets. Here, we go one step further and model spatio-temporal relations to capture the interactions between human actors, relevant objects and scene elements essential to differentiate similar human actions. Our approach is weakly supervised and mines the relevant elements automatically with an actor-centric relational network (ACRN). ACRN computes and accumulates pair-wise relation information from actor and global scene features, and generates relation features for action classification. It is implemented as neural networks and can be trained jointly with an existing action detection system. We show that ACRN outperforms alternative approaches which capture relation information, and that the proposed framework improves upon the state-of-the-art performance on JHMDB and AVA. A visualization of the learned relation features confirms that our approach is able to attend to the relevant relations for each action. + + + +
+ +
+ +## Results and Models + +### AVA2.1 + +| Model | Modality | Pretrained | Backbone | Input | gpus | mAP | log | json | ckpt | +| :---------------------------------------------------------------------------------------------------------------------------------------------------------: | :------: | :----------: | :------: | :---: | :--: | :--: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb](/configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb.py) | RGB | Kinetics-400 | ResNet50 | 32x2 | 8 | 27.1 | [log](https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb.log) | [json](https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb-49b07bf2.pth) | + +### AVA2.2 + +| Model | Modality | Pretrained | Backbone | Input | gpus | mAP | log | json | ckpt | +| :-------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------: | :----------: | :------: | :---: | :--: | :--: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb](/configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py) | RGB | Kinetics-400 | ResNet50 | 32x2 | 8 | 27.8 | [log](https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.log) | [json](https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb-2be32625.pth) | + +:::{note} + +1. The **gpus** indicates the number of gpu we used to get the checkpoint. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. + +::: + +For more details on data preparation, you can refer to AVA in [Data Preparation](/docs/data_preparation.md). + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train ACRN with SlowFast backbone on AVA with periodic validation. + +```shell +python tools/train.py configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py --validate +``` + +For more details and optional arguments infos, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test ACRN with SlowFast backbone on AVA and dump the result to a csv file. + +```shell +python tools/test.py configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py checkpoints/SOME_CHECKPOINT.pth --eval mAP --out results.csv +``` + +For more details and optional arguments infos, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset) . + +## Citation + + + +```BibTeX +@inproceedings{gu2018ava, + title={Ava: A video dataset of spatio-temporally localized atomic visual actions}, + author={Gu, Chunhui and Sun, Chen and Ross, David A and Vondrick, Carl and Pantofaru, Caroline and Li, Yeqing and Vijayanarasimhan, Sudheendra and Toderici, George and Ricco, Susanna and Sukthankar, Rahul and others}, + booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition}, + pages={6047--6056}, + year={2018} +} +``` + +```BibTeX +@inproceedings{sun2018actor, + title={Actor-centric relation network}, + author={Sun, Chen and Shrivastava, Abhinav and Vondrick, Carl and Murphy, Kevin and Sukthankar, Rahul and Schmid, Cordelia}, + booktitle={Proceedings of the European Conference on Computer Vision (ECCV)}, + pages={318--334}, + year={2018} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/README_zh-CN.md new file mode 100644 index 00000000..23ceb9fc --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/README_zh-CN.md @@ -0,0 +1,81 @@ +# ACRN + +## 简介 + + + +```BibTeX +@inproceedings{gu2018ava, + title={Ava: A video dataset of spatio-temporally localized atomic visual actions}, + author={Gu, Chunhui and Sun, Chen and Ross, David A and Vondrick, Carl and Pantofaru, Caroline and Li, Yeqing and Vijayanarasimhan, Sudheendra and Toderici, George and Ricco, Susanna and Sukthankar, Rahul and others}, + booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition}, + pages={6047--6056}, + year={2018} +} +``` + + + +```BibTeX +@inproceedings{sun2018actor, + title={Actor-centric relation network}, + author={Sun, Chen and Shrivastava, Abhinav and Vondrick, Carl and Murphy, Kevin and Sukthankar, Rahul and Schmid, Cordelia}, + booktitle={Proceedings of the European Conference on Computer Vision (ECCV)}, + pages={318--334}, + year={2018} +} +``` + +## 模型库 + +### AVA2.1 + +| 配置文件 | 模态 | 预训练 | 主干网络 | 输入 | GPU 数量 | mAP | log | json | ckpt | +| :---------------------------------------------------------------------------------------------------------------------------------------------------------: | :--: | :----------: | :------: | :--: | :------: | :--: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb](/configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb.py) | RGB | Kinetics-400 | ResNet50 | 32x2 | 8 | 27.1 | [log](https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb.log) | [json](https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb-49b07bf2.pth) | + +### AVA2.2 + +| 配置文件 | 模态 | 预训练 | 主干网络 | 输入 | GPU 数量 | mAP | log | json | ckpt | +| :-------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--: | :----------: | :------: | :--: | :------: | :--: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb](/configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py) | RGB | Kinetics-400 | ResNet50 | 32x2 | 8 | 27.8 | [log](https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.log) | [json](https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb-2be32625.pth) | + +- 注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 + +对于数据集准备的细节,用户可参考 [数据准备](/docs_zh_CN/data_preparation.md)。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:在 AVA 数据集上训练 ACRN 辅以 SlowFast 主干网络,并定期验证。 + +```shell +python tools/train.py configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py --validate +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 AVA 上测试 ACRN 辅以 SlowFast 主干网络,并将结果存为 csv 文件。 + +```shell +python tools/test.py configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py checkpoints/SOME_CHECKPOINT.pth --eval mAP --out results.csv +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/metafile.yml new file mode 100644 index 00000000..50cacc7f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/metafile.yml @@ -0,0 +1,49 @@ +Collections: +- Name: ACRN + README: configs/detection/acrn/README.md + Paper: + URL: https://arxiv.org/abs/1807.10982 + Title: Actor-Centric Relation Network +Models: +- Config: configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb.py + In Collection: ACRN + Metadata: + Architecture: ResNet50 + Batch Size: 6 + Epochs: 10 + Input: 32x2 + Modality: RGB + Parameters: 92232057 + Pretrained: Kinetics-400 + Training Data: AVA v2.1 + Training Resources: 8 GPUs + Name: slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb + Results: + - Dataset: AVA v2.1 + Metrics: + mAP: 27.1 + Task: Spatial Temporal Action Detection + Training Json Log: https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb.json + Training Log: https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb.log + Weights: https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb-49b07bf2.pth +- Config: configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py + In Collection: ACRN + Metadata: + Architecture: ResNet50 + Batch Size: 6 + Epochs: 10 + Input: 32x2 + Modality: RGB + Parameters: 92232057 + Pretrained: Kinetics-400 + Training Data: AVA v2.2 + Training Resources: 8 GPUs + Name: slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb + Results: + - Dataset: AVA v2.2 + Metrics: + mAP: 27.8 + Task: Spatial Temporal Action Detection + Training Json Log: https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.json + Training Log: https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.log + Weights: https://download.openmmlab.com/mmaction/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb-2be32625.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py new file mode 100644 index 00000000..d42ef11e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py @@ -0,0 +1,170 @@ +model = dict( + type='FastRCNN', + backbone=dict( + type='ResNet3dSlowFast', + pretrained=None, + resample_rate=4, + speed_ratio=4, + channel_ratio=8, + slow_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=True, + fusion_kernel=7, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + spatial_strides=(1, 2, 2, 1)), + fast_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=False, + base_channels=8, + conv1_kernel=(5, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + spatial_strides=(1, 2, 2, 1))), + roi_head=dict( + type='AVARoIHead', + bbox_roi_extractor=dict( + type='SingleRoIExtractor3D', + roi_layer_type='RoIAlign', + output_size=8, + with_temporal_pool=True, + temporal_pool_mode='max'), + shared_head=dict(type='ACRNHead', in_channels=4608, out_channels=2304), + bbox_head=dict( + type='BBoxHeadAVA', + dropout_ratio=0.5, + in_channels=2304, + num_classes=81, + multilabel=True)), + train_cfg=dict( + rcnn=dict( + assigner=dict( + type='MaxIoUAssignerAVA', + pos_iou_thr=0.9, + neg_iou_thr=0.9, + min_pos_iou=0.9), + sampler=dict( + type='RandomSampler', + num=32, + pos_fraction=1, + neg_pos_ub=-1, + add_gt_as_proposals=True), + pos_weight=1.0, + debug=False)), + test_cfg=dict(rcnn=dict(action_thr=0.002))) + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.2.csv' +ann_file_val = f'{anno_root}/ava_val_v2.2.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.2.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.2.csv' + +label_file = f'{anno_root}/ava_action_list_v2.2_for_activitynet_2019.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=32, frame_interval=2), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict( + type='SampleAVAFrames', clip_len=32, frame_interval=2, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape'], + nested=True) +] + +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) +data['test'] = data['val'] +# optimizer +optimizer = dict(type='SGD', lr=0.075, momentum=0.9, weight_decay=0.00001) +# this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='CosineAnnealing', + by_epoch=False, + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=2, + warmup_ratio=0.1) +total_epochs = 10 +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict(interval=1) +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb' # noqa: E501 +load_from = 'https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb/slowfast_r50_8x8x1_256e_kinetics400_rgb_20200716-73547d2b.pth' # noqa: E501 +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb.py new file mode 100644 index 00000000..4d069cbb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/acrn/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava_rgb.py @@ -0,0 +1,170 @@ +model = dict( + type='FastRCNN', + backbone=dict( + type='ResNet3dSlowFast', + pretrained=None, + resample_rate=4, + speed_ratio=4, + channel_ratio=8, + slow_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=True, + fusion_kernel=7, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + spatial_strides=(1, 2, 2, 1)), + fast_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=False, + base_channels=8, + conv1_kernel=(5, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + spatial_strides=(1, 2, 2, 1))), + roi_head=dict( + type='AVARoIHead', + bbox_roi_extractor=dict( + type='SingleRoIExtractor3D', + roi_layer_type='RoIAlign', + output_size=8, + with_temporal_pool=True, + temporal_pool_mode='max'), + shared_head=dict(type='ACRNHead', in_channels=4608, out_channels=2304), + bbox_head=dict( + type='BBoxHeadAVA', + dropout_ratio=0.5, + in_channels=2304, + num_classes=81, + multilabel=True)), + train_cfg=dict( + rcnn=dict( + assigner=dict( + type='MaxIoUAssignerAVA', + pos_iou_thr=0.9, + neg_iou_thr=0.9, + min_pos_iou=0.9), + sampler=dict( + type='RandomSampler', + num=32, + pos_fraction=1, + neg_pos_ub=-1, + add_gt_as_proposals=True), + pos_weight=1.0, + debug=False)), + test_cfg=dict(rcnn=dict(action_thr=0.002))) + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.1.csv' +ann_file_val = f'{anno_root}/ava_val_v2.1.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.1.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.1.csv' + +label_file = f'{anno_root}/ava_action_list_v2.1_for_activitynet_2018.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=32, frame_interval=2), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict( + type='SampleAVAFrames', clip_len=32, frame_interval=2, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape'], + nested=True) +] + +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) +data['test'] = data['val'] +# optimizer +optimizer = dict(type='SGD', lr=0.075, momentum=0.9, weight_decay=0.00001) +# this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='CosineAnnealing', + by_epoch=False, + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=2, + warmup_ratio=0.1) +total_epochs = 10 +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict(interval=1) +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/slowfast_acrn_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb' # noqa: E501 +load_from = 'https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb/slowfast_r50_8x8x1_256e_kinetics400_rgb_20200716-73547d2b.pth' # noqa: E501 +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/README.md b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/README.md new file mode 100644 index 00000000..f46a3961 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/README.md @@ -0,0 +1,146 @@ +# AVA + +[Ava: A video dataset of spatio-temporally localized atomic visual actions](https://openaccess.thecvf.com/content_cvpr_2018/html/Gu_AVA_A_Video_CVPR_2018_paper.html) + + + +
+ +
+ +## Abstract + + + +This paper introduces a video dataset of spatio-temporally localized Atomic Visual Actions (AVA). The AVA dataset densely annotates 80 atomic visual actions in 430 15-minute video clips, where actions are localized in space and time, resulting in 1.58M action labels with multiple labels per person occurring frequently. The key characteristics of our dataset are: (1) the definition of atomic visual actions, rather than composite actions; (2) precise spatio-temporal annotations with possibly multiple annotations for each person; (3) exhaustive annotation of these atomic actions over 15-minute video clips; (4) people temporally linked across consecutive segments; and (5) using movies to gather a varied set of action representations. This departs from existing datasets for spatio-temporal action recognition, which typically provide sparse annotations for composite actions in short video clips. We will release the dataset publicly. +AVA, with its realistic scene and action complexity, exposes the intrinsic difficulty of action recognition. To benchmark this, we present a novel approach for action localization that builds upon the current state-of-the-art methods, and demonstrates better performance on JHMDB and UCF101-24 categories. While setting a new state of the art on existing datasets, the overall results on AVA are low at 15.6% mAP, underscoring the need for developing new approaches for video understanding. + + + +
+ +
+ + + +```BibTeX +@inproceedings{feichtenhofer2019slowfast, + title={Slowfast networks for video recognition}, + author={Feichtenhofer, Christoph and Fan, Haoqi and Malik, Jitendra and He, Kaiming}, + booktitle={Proceedings of the IEEE international conference on computer vision}, + pages={6202--6211}, + year={2019} +} +``` + +## Results and Models + +### AVA2.1 + +| Model | Modality | Pretrained | Backbone | Input | gpus | Resolution | mAP | log | json | ckpt | +| :--------------------------------------------------------------------------------------------------------------------------------------------------: | :------: | :----------: | :-------: | :---: | :--: | :------------: | :---: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb](/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) | RGB | Kinetics-400 | ResNet50 | 4x16 | 8 | short-side 256 | 20.1 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201127.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201127.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217-40061d5f.pth) | +| [slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb](/configs/detection/ava/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb.py) | RGB | OmniSource | ResNet50 | 4x16 | 8 | short-side 256 | 21.8 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb_20201127.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb_20201127.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb_20201217-0c6d2e98.pth) | +| [slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb](/configs/detection/ava/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb.py) | RGB | Kinetics-400 | ResNet50 | 4x16 | 8 | short-side 256 | 21.75 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb/20210316_122517.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb/20210316_122517.log.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb_20210316-959829ec.pth) | +| [slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb](/configs/detection/ava/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb.py) | RGB | Kinetics-400 | ResNet50 | 8x8 | 8x2 | short-side 256 | 23.79 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb/20210316_122517.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb/20210316_122517.log.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb_20210316-5742e4dd.pth) | +| [slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb](/configs/detection/ava/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb.py) | RGB | Kinetics-400 | ResNet101 | 8x8 | 8x2 | short-side 256 | 24.6 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb_20201127.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb_20201127.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb_20201217-1c9b4117.pth) | +| [slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb](/configs/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py) | RGB | OmniSource | ResNet101 | 8x8 | 8x2 | short-side 256 | 25.9 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201127.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201127.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201217-16378594.pth) | +| [slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb](/configs/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) | RGB | Kinetics-400 | ResNet50 | 32x2 | 8x2 | short-side 256 | 24.4 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217-6e7c704d.pth) | +| [slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb](/configs/detection/ava/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) | RGB | Kinetics-400 | ResNet50 | 32x2 | 8x2 | short-side 256 | 25.4 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201222.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201222.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201222-f4d209c9.pth) | +| [slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb](/configs/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb.py) | RGB | Kinetics-400 | ResNet50 | 32x2 | 8x2 | short-side 256 | 25.5 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb_20201217.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb_20201217.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb_20201217-ae225e97.pth) | + +### AVA2.2 + +| Model | Modality | Pretrained | Backbone | Input | gpus | mAP | log | json | ckpt | +| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------: | :----------: | :------: | :---: | :--: | :--: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb](/configs/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py) | RGB | Kinetics-400 | ResNet50 | 32x2 | 8 | 26.1 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb-b987b516.pth) | +| [slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb](/configs/detection/ava/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py) | RGB | Kinetics-400 | ResNet50 | 32x2 | 8 | 26.4 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb-874e0845.pth) | +| [slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb](/configs/detection/ava/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py) | RGB | Kinetics-400 | ResNet50 | 32x2 | 8 | 26.8 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb-345618cd.pth) | + +:::{note} + +1. The **gpus** indicates the number of gpu we used to get the checkpoint. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. +2. **Context** indicates that using both RoI feature and global pooled feature for classification, which leads to around 1% mAP improvement in general. + +::: + +For more details on data preparation, you can refer to AVA in [Data Preparation](/docs/data_preparation.md). + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train SlowOnly model on AVA with periodic validation. + +```shell +python tools/train.py configs/detection/ava/slowonly_kinetics_pretrained_r50_8x8x1_20e_ava_rgb.py --validate +``` + +For more details and optional arguments infos, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting) . + +### Train Custom Classes From Ava Dataset + +You can train custom classes from ava. Ava suffers from class imbalance. There are more then 100,000 samples for classes like `stand`/`listen to (a person)`/`talk to (e.g., self, a person, a group)`/`watch (a person)`, whereas half of all classes has less than 500 samples. In most cases, training custom classes with fewer samples only will lead to better results. + +Three steps to train custom classes: + +- Step 1: Select custom classes from original classes, named `custom_classes`. Class `0` should not be selected since it is reserved for further usage (to identify whether a proposal is positive or negative, not implemented yet) and will be added automatically. +- Step 2: Set `num_classes`. In order to be compatible with current codes, Please make sure `num_classes == len(custom_classes) + 1`. + - The new class `0` corresponds to original class `0`. The new class `i`(i > 0) corresponds to original class `custom_classes[i-1]`. + - There are three `num_classes` in ava config, `model -> roi_head -> bbox_head -> num_classes`, `data -> train -> num_classes` and `data -> val -> num_classes`. + - If `num_classes <= 5`, input arg `topk` of `BBoxHeadAVA` should be modified. The default value of `topk` is `(3, 5)`, and all elements of `topk` must be smaller than `num_classes`. +- Step 3: Make sure all custom classes are in `label_file`. It is worth mentioning that there are two label files, `ava_action_list_v2.1_for_activitynet_2018.pbtxt`(contains 60 classes, 20 classes are missing) and `ava_action_list_v2.1.pbtxt`(contains all 80 classes). + +Take `slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb` as an example, training custom classes with AP in range `(0.1, 0.3)`, aka `[3, 6, 10, 27, 29, 38, 41, 48, 51, 53, 54, 59, 61, 64, 70, 72]`. Please note that, the previously mentioned AP is calculated by original ckpt, which is trained by all 80 classes. The results are listed as follows. + +| training classes | mAP(custom classes) | config | log | json | ckpt | +| :--------------: | :-----------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| All 80 classes | 0.1948 | [slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb](/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) | [log](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201127.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201127.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217-40061d5f.pth) | +| custom classes | 0.3311 | [slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes](/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes.py) | [log](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes-4ab80419.pth) | +| All 80 classes | 0.1864 | [slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py](/configs/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) | [log](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217-6e7c704d.pth) | +| custom classes | 0.3785 | [slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes](/configs/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes.py) | [log](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes_20210305.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes_20210305.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes_20210305-c6225546.pth) | + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test SlowOnly model on AVA and dump the result to a csv file. + +```shell +python tools/test.py configs/detection/ava/slowonly_kinetics_pretrained_r50_8x8x1_20e_ava_rgb.py checkpoints/SOME_CHECKPOINT.pth --eval mAP --out results.csv +``` + +For more details and optional arguments infos, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset) . + +## Citation + + + +```BibTeX +@inproceedings{gu2018ava, + title={Ava: A video dataset of spatio-temporally localized atomic visual actions}, + author={Gu, Chunhui and Sun, Chen and Ross, David A and Vondrick, Carl and Pantofaru, Caroline and Li, Yeqing and Vijayanarasimhan, Sudheendra and Toderici, George and Ricco, Susanna and Sukthankar, Rahul and others}, + booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition}, + pages={6047--6056}, + year={2018} +} +``` + +```BibTeX +@article{duan2020omni, + title={Omni-sourced Webly-supervised Learning for Video Recognition}, + author={Duan, Haodong and Zhao, Yue and Xiong, Yuanjun and Liu, Wentao and Lin, Dahua}, + journal={arXiv preprint arXiv:2003.13042}, + year={2020} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/README_zh-CN.md new file mode 100644 index 00000000..1b4b2b08 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/README_zh-CN.md @@ -0,0 +1,129 @@ +# AVA + +
+ +
+ +## 简介 + + + +```BibTeX +@inproceedings{gu2018ava, + title={Ava: A video dataset of spatio-temporally localized atomic visual actions}, + author={Gu, Chunhui and Sun, Chen and Ross, David A and Vondrick, Carl and Pantofaru, Caroline and Li, Yeqing and Vijayanarasimhan, Sudheendra and Toderici, George and Ricco, Susanna and Sukthankar, Rahul and others}, + booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition}, + pages={6047--6056}, + year={2018} +} +``` + + + +```BibTeX +@article{duan2020omni, + title={Omni-sourced Webly-supervised Learning for Video Recognition}, + author={Duan, Haodong and Zhao, Yue and Xiong, Yuanjun and Liu, Wentao and Lin, Dahua}, + journal={arXiv preprint arXiv:2003.13042}, + year={2020} +} +``` + + + +```BibTeX +@inproceedings{feichtenhofer2019slowfast, + title={Slowfast networks for video recognition}, + author={Feichtenhofer, Christoph and Fan, Haoqi and Malik, Jitendra and He, Kaiming}, + booktitle={Proceedings of the IEEE international conference on computer vision}, + pages={6202--6211}, + year={2019} +} +``` + +## 模型库 + +### AVA2.1 + +| 配置文件 | 模态 | 预训练 | 主干网络 | 输入 | GPU 数量 | 分辨率 | mAP | log | json | ckpt | +| :--------------------------------------------------------------------------------------------------------------------------------------------------: | :--: | :----------: | :-------: | :--: | :------: | :------: | :---: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb](/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) | RGB | Kinetics-400 | ResNet50 | 4x16 | 8 | 短边 256 | 20.1 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201127.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201127.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217-40061d5f.pth) | +| [slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb](/configs/detection/ava/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb.py) | RGB | OmniSource | ResNet50 | 4x16 | 8 | 短边 256 | 21.8 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb_20201127.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb_20201127.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb_20201217-0c6d2e98.pth) | +| [slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb](/configs/detection/ava/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb.py) | RGB | Kinetics-400 | ResNet50 | 4x16 | 8 | 短边 256 | 21.75 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb/20210316_122517.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb/20210316_122517.log.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb_20210316-959829ec.pth) | +| [slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb](/configs/detection/ava/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb.py) | RGB | Kinetics-400 | ResNet50 | 8x8 | 8x2 | 短边 256 | 23.79 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb/20210316_122517.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb/20210316_122517.log.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb_20210316-5742e4dd.pth) | +| [slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb](/configs/detection/ava/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb.py) | RGB | Kinetics-400 | ResNet101 | 8x8 | 8x2 | 短边 256 | 24.6 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb_20201127.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb_20201127.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb_20201217-1c9b4117.pth) | +| [slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb](/configs/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py) | RGB | OmniSource | ResNet101 | 8x8 | 8x2 | 短边 256 | 25.9 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201127.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201127.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201217-16378594.pth) | +| [slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb](/configs/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) | RGB | Kinetics-400 | ResNet50 | 32x2 | 8x2 | 短边 256 | 24.4 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217-6e7c704d.pth) | +| [slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb](/configs/detection/ava/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) | RGB | Kinetics-400 | ResNet50 | 32x2 | 8x2 | 短边 256 | 25.4 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201222.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201222.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201222-f4d209c9.pth) | +| [slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb](/configs/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb.py) | RGB | Kinetics-400 | ResNet50 | 32x2 | 8x2 | 短边 256 | 25.5 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb_20201217.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb_20201217.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb_20201217-ae225e97.pth) | + +### AVA2.2 + +| 配置文件 | 模态 | 预训练 | 主干网络 | 输入 | GPU 数量 | mAP | log | json | ckpt | +| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--: | :----------: | :------: | :--: | :------: | :--: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb](/configs/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py) | RGB | Kinetics-400 | ResNet50 | 32x2 | 8 | 26.1 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb-b987b516.pth) | +| [slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb](/configs/detection/ava/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py) | RGB | Kinetics-400 | ResNet50 | 32x2 | 8 | 26.4 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb-874e0845.pth) | +| [slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb](/configs/detection/ava/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py) | RGB | Kinetics-400 | ResNet50 | 32x2 | 8 | 26.8 | [log](https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb-345618cd.pth) | + +注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +2. **Context** 表示同时使用 RoI 特征与全局特征进行分类,可带来约 1% mAP 的提升。 + +对于数据集准备的细节,用户可参考 [数据准备](/docs_zh_CN/data_preparation.md)。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:在 AVA 数据集上训练 SlowOnly,并定期验证。 + +```shell +python tools/train.py configs/detection/ava/slowonly_kinetics_pretrained_r50_8x8x1_20e_ava_rgb.py --validate +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +### 训练 AVA 数据集中的自定义类别 + +用户可以训练 AVA 数据集中的自定义类别。AVA 中不同类别的样本量很不平衡:其中有超过 100000 样本的类别: `stand`/`listen to (a person)`/`talk to (e.g., self, a person, a group)`/`watch (a person)`,也有样本较少的类别(半数类别不足 500 样本)。大多数情况下,仅使用样本较少的类别进行训练将在这些类别上得到更好精度。 + +训练 AVA 数据集中的自定义类别包含 3 个步骤: + +1. 从原先的类别中选择希望训练的类别,将其填写至配置文件的 `custom_classes` 域中。其中 `0` 不表示具体的动作类别,不应被选择。 +2. 将 `num_classes` 设置为 `num_classes = len(custom_classes) + 1`。 + - 在新的类别到编号的对应中,编号 `0` 仍对应原类别 `0`,编号 `i` (i > 0) 对应原类别 `custom_classes[i-1]`。 + - 配置文件中 3 处涉及 `num_classes` 需要修改:`model -> roi_head -> bbox_head -> num_classes`, `data -> train -> num_classes`, `data -> val -> num_classes`. + - 若 `num_classes <= 5`, 配置文件 `BBoxHeadAVA` 中的 `topk` 参数应被修改。`topk` 的默认值为 `(3, 5)`,`topk` 中的所有元素应小于 `num_classes`。 +3. 确认所有自定义类别在 `label_file` 中。 + +以 `slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb` 为例,这一配置文件训练所有 AP 在 `(0.1, 0.3)` 间的类别(这里的 AP 为 AVA 80 类训出模型的表现),即 `[3, 6, 10, 27, 29, 38, 41, 48, 51, 53, 54, 59, 61, 64, 70, 72]`。下表列出了自定义类别训练的模型精度: + +| 训练类别 | mAP (自定义类别) | 配置文件 | log | json | ckpt | +| :--------: | :----------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| 全部 80 类 | 0.1948 | [slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb](/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) | [log](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201127.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201127.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217-40061d5f.pth) | +| 自定义类别 | 0.3311 | [slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes](/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes.py) | [log](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes-4ab80419.pth) | +| 全部 80 类 | 0.1864 | [slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb](/configs/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) | [log](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217-6e7c704d.pth) | +| 自定义类别 | 0.3785 | [slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes](/configs/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes.py) | [log](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes_20210305.log) | [json](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes_20210305.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes_20210305-c6225546.pth) | + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 AVA 上测试 SlowOnly 模型,并将结果存为 csv 文件。 + +```shell +python tools/test.py configs/detection/ava/slowonly_kinetics_pretrained_r50_8x8x1_20e_ava_rgb.py checkpoints/SOME_CHECKPOINT.pth --eval mAP --out results.csv +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/metafile.yml new file mode 100644 index 00000000..971abd7b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/metafile.yml @@ -0,0 +1,259 @@ +Collections: +- Name: AVA + README: configs/detection/ava/README.md + Paper: + URL: https://arxiv.org/abs/1705.08421 + Title: "AVA: A Video Dataset of Spatio-temporally Localized Atomic Visual Actions" +Models: +- Config: configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py + In Collection: AVA + Metadata: + Architecture: ResNet50 + Batch Size: 16 + Epochs: 20 + Input: 4x16 + Pretrained: Kinetics-400 + Resolution: short-side 256 + Training Data: AVA v2.1 + Training Resources: 8 GPUs + Modality: RGB + Name: slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb + Results: + - Dataset: AVA v2.1 + Metrics: + mAP: 20.1 + Task: Spatial Temporal Action Detection + Training Json Log: https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201127.json + Training Log: https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201127.log + Weights: https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217-40061d5f.pth +- Config: configs/detection/ava/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb.py + In Collection: AVA + Metadata: + Architecture: ResNet50 + Batch Size: 16 + Epochs: 20 + Input: 4x16 + Pretrained: OmniSource + Resolution: short-side 256 + Training Data: AVA v2.1 + Training Resources: 8 GPUs + Modality: RGB + Name: slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb + Results: + - Dataset: AVA v2.1 + Metrics: + mAP: 21.8 + Task: Spatial Temporal Action Detection + Training Json Log: https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb_20201127.json + Training Log: https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb_20201127.log + Weights: https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb_20201217-0c6d2e98.pth +- Config: configs/detection/ava/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb.py + In Collection: AVA + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 10 + Input: 4x16 + Pretrained: Kinetics-400 + Resolution: short-side 256 + Training Data: AVA v2.1 + Training Resources: 8 GPUs + Modality: RGB + Name: slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb + Results: + - Dataset: AVA v2.1 + Metrics: + mAP: 21.75 + Task: Spatial Temporal Action Detection + Training Json Log: https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb/20210316_122517.log.json + Training Log: https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb/20210316_122517.log + Weights: https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb_20210316-959829ec.pth +- Config: configs/detection/ava/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb.py + In Collection: AVA + Metadata: + Architecture: ResNet50 + Batch Size: 6 + Epochs: 10 + Input: 8x8 + Pretrained: Kinetics-400 + Resolution: short-side 256 + Training Data: AVA v2.1 + Training Resources: 16 GPUs + Modality: RGB + Name: slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb + Results: + - Dataset: AVA v2.1 + Metrics: + mAP: 23.79 + Task: Spatial Temporal Action Detection + Training Json Log: https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb/20210316_122517.log.json + Training Log: https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb/20210316_122517.log + Weights: https://download.openmmlab.com/mmaction/detection/ava/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb_20210316-5742e4dd.pth +- Config: configs/detection/ava/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb.py + In Collection: AVA + Metadata: + Architecture: ResNet101 + Batch Size: 6 + Epochs: 20 + Input: 8x8 + Pretrained: Kinetics-400 + Resolution: short-side 256 + Training Data: AVA v2.1 + Training Resources: 16 GPUs + Modality: RGB + Name: slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb + Results: + - Dataset: AVA v2.1 + Metrics: + mAP: 24.6 + Task: Spatial Temporal Action Detection + Training Json Log: https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb_20201127.json + Training Log: https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb_20201127.log + Weights: https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb_20201217-1c9b4117.pth +- Config: configs/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py + In Collection: AVA + Metadata: + Architecture: ResNet101 + Batch Size: 6 + Epochs: 20 + Input: 8x8 + Pretrained: OmniSource + Resolution: short-side 256 + Training Data: AVA v2.1 + Training Resources: 16 GPUs + Modality: RGB + Name: slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb + Results: + - Dataset: AVA v2.1 + Metrics: + mAP: 25.9 + Task: Spatial Temporal Action Detection + Training Json Log: https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201127.json + Training Log: https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201127.log + Weights: https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201217-16378594.pth +- Config: configs/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py + In Collection: AVA + Metadata: + Architecture: ResNet50 + Batch Size: 9 + Epochs: 20 + Input: 32x2 + Pretrained: Kinetics-400 + Resolution: short-side 256 + Training Data: AVA v2.1 + Training Resources: 16 GPUs + Modality: RGB + Name: slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb + Results: + - Dataset: AVA v2.1 + Metrics: + mAP: 24.4 + Task: Spatial Temporal Action Detection + Training Json Log: https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217.json + Training Log: https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217.log + Weights: https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217-6e7c704d.pth +- Config: configs/detection/ava/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py + In Collection: AVA + Metadata: + Architecture: ResNet50 + Batch Size: 9 + Epochs: 20 + Input: 32x2 + Pretrained: Kinetics-400 + Resolution: short-side 256 + Training Data: AVA v2.1 + Training Resources: 16 GPUs + Modality: RGB + Name: slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb + Results: + - Dataset: AVA v2.1 + Metrics: + mAP: 25.4 + Task: Spatial Temporal Action Detection + Training Json Log: https://download.openmmlab.com/mmaction/detection/ava/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201222.json + Training Log: https://download.openmmlab.com/mmaction/detection/ava/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201222.log + Weights: https://download.openmmlab.com/mmaction/detection/ava/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201222-f4d209c9.pth +- Config: configs/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb.py + In Collection: AVA + Metadata: + Architecture: ResNet50 + Batch Size: 5 + Epochs: 20 + Input: 32x2 + Pretrained: Kinetics-400 + Resolution: short-side 256 + Training Data: AVA v2.1 + Training Resources: 16 GPUs + Modality: RGB + Name: slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb + Results: + - Dataset: AVA v2.1 + Metrics: + mAP: 25.5 + Task: Spatial Temporal Action Detection + Training Json Log: https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb_20201217.json + Training Log: https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb_20201217.log + Weights: https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb_20201217-ae225e97.pth +- Config: configs/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py + In Collection: AVA + Metadata: + Architecture: ResNet50 + Batch Size: 6 + Epochs: 10 + Input: 32x2 + Pretrained: Kinetics-400 + Resolution: short-side 256 + Training Data: AVA v2.2 + Training Resources: 8 GPUs + Modality: RGB + Name: slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb + Results: + - Dataset: AVA v2.2 + Metrics: + mAP: 26.1 + Task: Spatial Temporal Action Detection + Training Json Log: https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.json + Training Log: https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.log + Weights: https://download.openmmlab.com/mmaction/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb-b987b516.pth +- Config: configs/detection/ava/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py + In Collection: AVA + Metadata: + Architecture: ResNet50 + Batch Size: 6 + Epochs: 10 + Input: 32x2 + Pretrained: Kinetics-400 + Resolution: short-side 256 + Training Data: AVA v2.2 + Training Resources: 8 GPUs + Modality: RGB + Name: slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb + Results: + - Dataset: AVA v2.2 + Metrics: + mAP: 26.8 + Task: Spatial Temporal Action Detection + Training Json Log: https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.json + Training Log: https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.log + Weights: https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb-345618cd.pth +- Config: configs/detection/ava/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py + In Collection: AVA + Metadata: + Architecture: ResNet50 + Batch Size: 6 + Epochs: 10 + Input: 32x2 + Pretrained: Kinetics-400 + Resolution: short-side 256 + Training Data: AVA v2.2 + Training Resources: 8 GPUs + Modality: RGB + Name: slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb + Results: + - Dataset: AVA v2.2 + Metrics: + mAP: 26.4 + Task: Spatial Temporal Action Detection + Training Json Log: https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.json + Training Log: https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.log + Weights: https://download.openmmlab.com/mmaction/detection/ava/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb-874e0845.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py new file mode 100644 index 00000000..a180bb91 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py @@ -0,0 +1,175 @@ +# model setting +model = dict( + type='FastRCNN', + backbone=dict( + type='ResNet3dSlowFast', + pretrained=None, + resample_rate=8, + speed_ratio=8, + channel_ratio=8, + slow_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=True, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + spatial_strides=(1, 2, 2, 1)), + fast_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=False, + base_channels=8, + conv1_kernel=(5, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + spatial_strides=(1, 2, 2, 1))), + roi_head=dict( + type='AVARoIHead', + bbox_roi_extractor=dict( + type='SingleRoIExtractor3D', + roi_layer_type='RoIAlign', + output_size=8, + with_temporal_pool=True, + with_global=True), + bbox_head=dict( + type='BBoxHeadAVA', + in_channels=4608, + num_classes=81, + multilabel=True, + dropout_ratio=0.5)), + train_cfg=dict( + rcnn=dict( + assigner=dict( + type='MaxIoUAssignerAVA', + pos_iou_thr=0.9, + neg_iou_thr=0.9, + min_pos_iou=0.9), + sampler=dict( + type='RandomSampler', + num=32, + pos_fraction=1, + neg_pos_ub=-1, + add_gt_as_proposals=True), + pos_weight=1.0, + debug=False)), + test_cfg=dict(rcnn=dict(action_thr=0.002))) + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.1.csv' +ann_file_val = f'{anno_root}/ava_val_v2.1.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.1.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.1.csv' + +label_file = f'{anno_root}/ava_action_list_v2.1_for_activitynet_2018.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=32, frame_interval=2), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict( + type='SampleAVAFrames', clip_len=32, frame_interval=2, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape'], + nested=True) +] + +data = dict( + videos_per_gpu=9, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) +data['test'] = data['val'] + +optimizer = dict(type='SGD', lr=0.1125, momentum=0.9, weight_decay=0.00001) +# this lr is used for 8 gpus + +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy + +lr_config = dict( + policy='step', + step=[10, 15], + warmup='linear', + warmup_by_epoch=True, + warmup_iters=5, + warmup_ratio=0.1) +total_epochs = 20 +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict(interval=1, save_best='mAP@0.5IOU') +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = ('./work_dirs/ava/' + 'slowfast_context_kinetics_pretrained_r50_4x16x1_20e_ava_rgb') +load_from = ('https://download.openmmlab.com/mmaction/recognition/slowfast/' + 'slowfast_r50_4x16x1_256e_kinetics400_rgb/' + 'slowfast_r50_4x16x1_256e_kinetics400_rgb_20200704-bcde7ed7.pth') +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py new file mode 100644 index 00000000..f649374a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py @@ -0,0 +1,174 @@ +# model setting +model = dict( + type='FastRCNN', + backbone=dict( + type='ResNet3dSlowFast', + pretrained=None, + resample_rate=8, + speed_ratio=8, + channel_ratio=8, + slow_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=True, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + spatial_strides=(1, 2, 2, 1)), + fast_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=False, + base_channels=8, + conv1_kernel=(5, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + spatial_strides=(1, 2, 2, 1))), + roi_head=dict( + type='AVARoIHead', + bbox_roi_extractor=dict( + type='SingleRoIExtractor3D', + roi_layer_type='RoIAlign', + output_size=8, + with_temporal_pool=True), + bbox_head=dict( + type='BBoxHeadAVA', + in_channels=2304, + num_classes=81, + multilabel=True, + dropout_ratio=0.5)), + train_cfg=dict( + rcnn=dict( + assigner=dict( + type='MaxIoUAssignerAVA', + pos_iou_thr=0.9, + neg_iou_thr=0.9, + min_pos_iou=0.9), + sampler=dict( + type='RandomSampler', + num=32, + pos_fraction=1, + neg_pos_ub=-1, + add_gt_as_proposals=True), + pos_weight=1.0, + debug=False)), + test_cfg=dict(rcnn=dict(action_thr=0.002))) + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.1.csv' +ann_file_val = f'{anno_root}/ava_val_v2.1.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.1.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.1.csv' + +label_file = f'{anno_root}/ava_action_list_v2.1_for_activitynet_2018.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=32, frame_interval=2), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict( + type='SampleAVAFrames', clip_len=32, frame_interval=2, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape'], + nested=True) +] + +data = dict( + videos_per_gpu=9, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) +data['test'] = data['val'] + +optimizer = dict(type='SGD', lr=0.1125, momentum=0.9, weight_decay=0.00001) +# this lr is used for 8 gpus + +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy + +lr_config = dict( + policy='step', + step=[10, 15], + warmup='linear', + warmup_by_epoch=True, + warmup_iters=5, + warmup_ratio=0.1) +total_epochs = 20 +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict(interval=1, save_best='mAP@0.5IOU') +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = ('./work_dirs/ava/' + 'slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb') +load_from = ('https://download.openmmlab.com/mmaction/recognition/slowfast/' + 'slowfast_r50_4x16x1_256e_kinetics400_rgb/' + 'slowfast_r50_4x16x1_256e_kinetics400_rgb_20200704-bcde7ed7.pth') +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes.py new file mode 100644 index 00000000..413065cb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes.py @@ -0,0 +1,184 @@ +# custom classes of ava dataset +# Here we choose classes with AP in range [0.1, 0.3) +# AP is calculated by **slowonly** ckpt, which is trained by all 80 classes +custom_classes = [3, 6, 10, 27, 29, 38, 41, 48, 51, 53, 54, 59, 61, 64, 70, 72] +num_classes = len(custom_classes) + 1 + +# model setting +model = dict( + type='FastRCNN', + backbone=dict( + type='ResNet3dSlowFast', + pretrained=None, + resample_rate=8, + speed_ratio=8, + channel_ratio=8, + slow_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=True, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + spatial_strides=(1, 2, 2, 1)), + fast_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=False, + base_channels=8, + conv1_kernel=(5, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + spatial_strides=(1, 2, 2, 1))), + roi_head=dict( + type='AVARoIHead', + bbox_roi_extractor=dict( + type='SingleRoIExtractor3D', + roi_layer_type='RoIAlign', + output_size=8, + with_temporal_pool=True), + bbox_head=dict( + type='BBoxHeadAVA', + in_channels=2304, + num_classes=num_classes, + multilabel=True, + dropout_ratio=0.5)), + train_cfg=dict( + rcnn=dict( + assigner=dict( + type='MaxIoUAssignerAVA', + pos_iou_thr=0.9, + neg_iou_thr=0.9, + min_pos_iou=0.9), + sampler=dict( + type='RandomSampler', + num=32, + pos_fraction=1, + neg_pos_ub=-1, + add_gt_as_proposals=True), + pos_weight=1.0, + debug=False)), + test_cfg=dict(rcnn=dict(action_thr=0.002))) + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.1.csv' +ann_file_val = f'{anno_root}/ava_val_v2.1.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.1.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.1.csv' + +label_file = f'{anno_root}/ava_action_list_v2.1.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=32, frame_interval=2), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict( + type='SampleAVAFrames', clip_len=32, frame_interval=2, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape'], + nested=True) +] + +data = dict( + videos_per_gpu=9, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + num_classes=num_classes, + custom_classes=custom_classes, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + num_classes=num_classes, + custom_classes=custom_classes, + data_prefix=data_root)) +data['test'] = data['val'] + +optimizer = dict(type='SGD', lr=0.1125, momentum=0.9, weight_decay=0.00001) +# this lr is used for 8 gpus + +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy + +lr_config = dict( + policy='step', + step=[10, 15], + warmup='linear', + warmup_by_epoch=True, + warmup_iters=5, + warmup_ratio=0.05) +total_epochs = 20 +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict(interval=1, save_best='mAP@0.5IOU') +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = ('./work_dirs/ava/' + 'slowfast_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom') +load_from = ('https://download.openmmlab.com/mmaction/recognition/slowfast/' + 'slowfast_r50_4x16x1_256e_kinetics400_rgb/' + 'slowfast_r50_4x16x1_256e_kinetics400_rgb_20200704-bcde7ed7.pth') +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb.py new file mode 100644 index 00000000..7c3826d8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb.py @@ -0,0 +1,175 @@ +# model setting +model = dict( + type='FastRCNN', + backbone=dict( + type='ResNet3dSlowFast', + pretrained=None, + resample_rate=4, + speed_ratio=4, + channel_ratio=8, + slow_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=True, + fusion_kernel=7, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + spatial_strides=(1, 2, 2, 1)), + fast_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=False, + base_channels=8, + conv1_kernel=(5, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + spatial_strides=(1, 2, 2, 1))), + roi_head=dict( + type='AVARoIHead', + bbox_roi_extractor=dict( + type='SingleRoIExtractor3D', + roi_layer_type='RoIAlign', + output_size=8, + with_temporal_pool=True), + bbox_head=dict( + type='BBoxHeadAVA', + in_channels=2304, + num_classes=81, + multilabel=True, + dropout_ratio=0.5)), + train_cfg=dict( + rcnn=dict( + assigner=dict( + type='MaxIoUAssignerAVA', + pos_iou_thr=0.9, + neg_iou_thr=0.9, + min_pos_iou=0.9), + sampler=dict( + type='RandomSampler', + num=32, + pos_fraction=1, + neg_pos_ub=-1, + add_gt_as_proposals=True), + pos_weight=1.0, + debug=False)), + test_cfg=dict(rcnn=dict(action_thr=0.002))) + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.1.csv' +ann_file_val = f'{anno_root}/ava_val_v2.1.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.1.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.1.csv' + +label_file = f'{anno_root}/ava_action_list_v2.1_for_activitynet_2018.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=32, frame_interval=2), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict( + type='SampleAVAFrames', clip_len=32, frame_interval=2, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape'], + nested=True) +] + +data = dict( + videos_per_gpu=5, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) +data['test'] = data['val'] + +optimizer = dict(type='SGD', lr=0.075, momentum=0.9, weight_decay=0.00001) +# this lr is used for 8 gpus + +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy + +lr_config = dict( + policy='step', + step=[10, 15], + warmup='linear', + warmup_by_epoch=True, + warmup_iters=5, + warmup_ratio=0.1) +total_epochs = 20 +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict(interval=1, save_best='mAP@0.5IOU') +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = ('./work_dirs/ava/' + 'slowfast_kinetics_pretrained_r50_8x8x1_20e_ava_rgb') +load_from = ('https://download.openmmlab.com/mmaction/recognition/slowfast/' + 'slowfast_r50_8x8x1_256e_kinetics400_rgb/' + 'slowfast_r50_8x8x1_256e_kinetics400_rgb_20200704-73547d2b.pth') +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py new file mode 100644 index 00000000..9fa024f2 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py @@ -0,0 +1,168 @@ +model = dict( + type='FastRCNN', + backbone=dict( + type='ResNet3dSlowFast', + pretrained=None, + resample_rate=4, + speed_ratio=4, + channel_ratio=8, + slow_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=True, + fusion_kernel=7, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + spatial_strides=(1, 2, 2, 1)), + fast_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=False, + base_channels=8, + conv1_kernel=(5, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + spatial_strides=(1, 2, 2, 1))), + roi_head=dict( + type='AVARoIHead', + bbox_roi_extractor=dict( + type='SingleRoIExtractor3D', + roi_layer_type='RoIAlign', + output_size=8, + with_temporal_pool=True), + bbox_head=dict( + type='BBoxHeadAVA', + dropout_ratio=0.5, + in_channels=2304, + num_classes=81, + multilabel=True)), + train_cfg=dict( + rcnn=dict( + assigner=dict( + type='MaxIoUAssignerAVA', + pos_iou_thr=0.9, + neg_iou_thr=0.9, + min_pos_iou=0.9), + sampler=dict( + type='RandomSampler', + num=32, + pos_fraction=1, + neg_pos_ub=-1, + add_gt_as_proposals=True), + pos_weight=1.0, + debug=False)), + test_cfg=dict(rcnn=dict(action_thr=0.002))) + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.2.csv' +ann_file_val = f'{anno_root}/ava_val_v2.2.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.2.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.2.csv' + +label_file = f'{anno_root}/ava_action_list_v2.2_for_activitynet_2019.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=32, frame_interval=2), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict( + type='SampleAVAFrames', clip_len=32, frame_interval=2, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape'], + nested=True) +] + +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) +data['test'] = data['val'] +# optimizer +optimizer = dict(type='SGD', lr=0.075, momentum=0.9, weight_decay=0.00001) +# this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='CosineAnnealing', + by_epoch=False, + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=2, + warmup_ratio=0.1) +total_epochs = 10 +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict(interval=1) +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/slowfast_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb' # noqa: E501 +load_from = 'https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb/slowfast_r50_8x8x1_256e_kinetics400_rgb_20200716-73547d2b.pth' # noqa: E501 +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py new file mode 100644 index 00000000..71af48e1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py @@ -0,0 +1,171 @@ +model = dict( + type='FastRCNN', + backbone=dict( + type='ResNet3dSlowFast', + pretrained=None, + resample_rate=4, + speed_ratio=4, + channel_ratio=8, + slow_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=True, + fusion_kernel=7, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + spatial_strides=(1, 2, 2, 1)), + fast_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=False, + base_channels=8, + conv1_kernel=(5, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + spatial_strides=(1, 2, 2, 1))), + roi_head=dict( + type='AVARoIHead', + bbox_roi_extractor=dict( + type='SingleRoIExtractor3D', + roi_layer_type='RoIAlign', + output_size=8, + with_temporal_pool=True, + temporal_pool_mode='max'), + bbox_head=dict( + type='BBoxHeadAVA', + dropout_ratio=0.5, + in_channels=2304, + focal_alpha=3.0, + focal_gamma=1.0, + num_classes=81, + multilabel=True)), + train_cfg=dict( + rcnn=dict( + assigner=dict( + type='MaxIoUAssignerAVA', + pos_iou_thr=0.9, + neg_iou_thr=0.9, + min_pos_iou=0.9), + sampler=dict( + type='RandomSampler', + num=32, + pos_fraction=1, + neg_pos_ub=-1, + add_gt_as_proposals=True), + pos_weight=1.0, + debug=False)), + test_cfg=dict(rcnn=dict(action_thr=0.002))) + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.2.csv' +ann_file_val = f'{anno_root}/ava_val_v2.2.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.2.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.2.csv' + +label_file = f'{anno_root}/ava_action_list_v2.2_for_activitynet_2019.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=32, frame_interval=2), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict( + type='SampleAVAFrames', clip_len=32, frame_interval=2, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape'], + nested=True) +] + +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) +data['test'] = data['val'] +# optimizer +optimizer = dict(type='SGD', lr=0.075, momentum=0.9, weight_decay=0.00001) +# this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='CosineAnnealing', + by_epoch=False, + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=2, + warmup_ratio=0.1) +total_epochs = 10 +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict(interval=1) +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/slowfast_temporal_max_focal_alpha3_gamma1_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb' # noqa: E501 +load_from = 'https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb/slowfast_r50_8x8x1_256e_kinetics400_rgb_20200716-73547d2b.pth' # noqa: E501 +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py new file mode 100644 index 00000000..a4979d9b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb.py @@ -0,0 +1,169 @@ +model = dict( + type='FastRCNN', + backbone=dict( + type='ResNet3dSlowFast', + pretrained=None, + resample_rate=4, + speed_ratio=4, + channel_ratio=8, + slow_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=True, + fusion_kernel=7, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + spatial_strides=(1, 2, 2, 1)), + fast_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=False, + base_channels=8, + conv1_kernel=(5, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + spatial_strides=(1, 2, 2, 1))), + roi_head=dict( + type='AVARoIHead', + bbox_roi_extractor=dict( + type='SingleRoIExtractor3D', + roi_layer_type='RoIAlign', + output_size=8, + with_temporal_pool=True, + temporal_pool_mode='max'), + bbox_head=dict( + type='BBoxHeadAVA', + dropout_ratio=0.5, + in_channels=2304, + num_classes=81, + multilabel=True)), + train_cfg=dict( + rcnn=dict( + assigner=dict( + type='MaxIoUAssignerAVA', + pos_iou_thr=0.9, + neg_iou_thr=0.9, + min_pos_iou=0.9), + sampler=dict( + type='RandomSampler', + num=32, + pos_fraction=1, + neg_pos_ub=-1, + add_gt_as_proposals=True), + pos_weight=1.0, + debug=False)), + test_cfg=dict(rcnn=dict(action_thr=0.002))) + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.2.csv' +ann_file_val = f'{anno_root}/ava_val_v2.2.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.2.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.2.csv' + +label_file = f'{anno_root}/ava_action_list_v2.2_for_activitynet_2019.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=32, frame_interval=2), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict( + type='SampleAVAFrames', clip_len=32, frame_interval=2, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape'], + nested=True) +] + +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) +data['test'] = data['val'] +# optimizer +optimizer = dict(type='SGD', lr=0.075, momentum=0.9, weight_decay=0.00001) +# this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='CosineAnnealing', + by_epoch=False, + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=2, + warmup_ratio=0.1) +total_epochs = 10 +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict(interval=1) +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/slowfast_temporal_max_kinetics_pretrained_r50_8x8x1_cosine_10e_ava22_rgb' # noqa: E501 +load_from = 'https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb/slowfast_r50_8x8x1_256e_kinetics400_rgb_20200716-73547d2b.pth' # noqa: E501 +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb.py new file mode 100644 index 00000000..ecc89f7a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb.py @@ -0,0 +1,158 @@ +# model setting +model = dict( + type='FastRCNN', + backbone=dict( + type='ResNet3dSlowOnly', + depth=101, + pretrained=None, + pretrained2d=False, + lateral=False, + num_stages=4, + conv1_kernel=(1, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + spatial_strides=(1, 2, 2, 1)), + roi_head=dict( + type='AVARoIHead', + bbox_roi_extractor=dict( + type='SingleRoIExtractor3D', + roi_layer_type='RoIAlign', + output_size=8, + with_temporal_pool=True), + bbox_head=dict( + type='BBoxHeadAVA', + in_channels=2048, + num_classes=81, + multilabel=True, + dropout_ratio=0.5)), + train_cfg=dict( + rcnn=dict( + assigner=dict( + type='MaxIoUAssignerAVA', + pos_iou_thr=0.9, + neg_iou_thr=0.9, + min_pos_iou=0.9), + sampler=dict( + type='RandomSampler', + num=32, + pos_fraction=1, + neg_pos_ub=-1, + add_gt_as_proposals=True), + pos_weight=1.0, + debug=False)), + test_cfg=dict(rcnn=dict(action_thr=0.002))) + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.1.csv' +ann_file_val = f'{anno_root}/ava_val_v2.1.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.1.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.1.csv' + +label_file = f'{anno_root}/ava_action_list_v2.1_for_activitynet_2018.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=8, frame_interval=8), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict(type='SampleAVAFrames', clip_len=8, frame_interval=8, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape'], + nested=True) +] + +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + # During testing, each video may have different shape + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) +data['test'] = data['val'] + +optimizer = dict(type='SGD', lr=0.075, momentum=0.9, weight_decay=0.00001) +# this lr is used for 8 gpus + +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy + +lr_config = dict( + policy='step', + step=[10, 15], + warmup='linear', + warmup_by_epoch=True, + warmup_iters=5, + warmup_ratio=0.1) +total_epochs = 20 +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict(interval=1, save_best='mAP@0.5IOU') +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = ('./work_dirs/ava/' + 'slowonly_kinetics_pretrained_r101_8x8x1_20e_ava_rgb') +load_from = ('https://download.openmmlab.com/mmaction/recognition/slowonly/' + 'omni/slowonly_r101_without_omni_8x8x1_' + 'kinetics400_rgb_20200926-0c730aef.pth') +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py new file mode 100644 index 00000000..54df99e5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py @@ -0,0 +1,158 @@ +# model setting +model = dict( + type='FastRCNN', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained=None, + pretrained2d=False, + lateral=False, + num_stages=4, + conv1_kernel=(1, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + spatial_strides=(1, 2, 2, 1)), + roi_head=dict( + type='AVARoIHead', + bbox_roi_extractor=dict( + type='SingleRoIExtractor3D', + roi_layer_type='RoIAlign', + output_size=8, + with_temporal_pool=True), + bbox_head=dict( + type='BBoxHeadAVA', + in_channels=2048, + num_classes=81, + multilabel=True, + dropout_ratio=0.5)), + train_cfg=dict( + rcnn=dict( + assigner=dict( + type='MaxIoUAssignerAVA', + pos_iou_thr=0.9, + neg_iou_thr=0.9, + min_pos_iou=0.9), + sampler=dict( + type='RandomSampler', + num=32, + pos_fraction=1, + neg_pos_ub=-1, + add_gt_as_proposals=True), + pos_weight=1.0, + debug=False)), + test_cfg=dict(rcnn=dict(action_thr=0.002))) + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.1.csv' +ann_file_val = f'{anno_root}/ava_val_v2.1.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.1.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.1.csv' + +label_file = f'{anno_root}/ava_action_list_v2.1_for_activitynet_2018.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=4, frame_interval=16), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict( + type='SampleAVAFrames', clip_len=4, frame_interval=16, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape'], + nested=True) +] + +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) +data['test'] = data['val'] + +optimizer = dict(type='SGD', lr=0.2, momentum=0.9, weight_decay=0.00001) +# this lr is used for 8 gpus + +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy + +lr_config = dict( + policy='step', + step=[10, 15], + warmup='linear', + warmup_by_epoch=True, + warmup_iters=5, + warmup_ratio=0.1) +total_epochs = 20 +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict(interval=1, save_best='mAP@0.5IOU') +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = ('./work_dirs/ava/' + 'slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb') +load_from = ('https://download.openmmlab.com/mmaction/recognition/slowonly/' + 'slowonly_r50_4x16x1_256e_kinetics400_rgb/' + 'slowonly_r50_4x16x1_256e_kinetics400_rgb_20200704-a69556c6.pth') +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes.py new file mode 100644 index 00000000..30d9ba82 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom_classes.py @@ -0,0 +1,169 @@ +# custom classes of ava dataset +# Here we choose classes with AP in range [0.1, 0.3) +# AP is calculated by original ckpt, which is trained by all 80 classes +custom_classes = [3, 6, 10, 27, 29, 38, 41, 48, 51, 53, 54, 59, 61, 64, 70, 72] +num_classes = len(custom_classes) + 1 + +# model setting +model = dict( + type='FastRCNN', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained=None, + pretrained2d=False, + lateral=False, + num_stages=4, + conv1_kernel=(1, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + spatial_strides=(1, 2, 2, 1)), + roi_head=dict( + type='AVARoIHead', + bbox_roi_extractor=dict( + type='SingleRoIExtractor3D', + roi_layer_type='RoIAlign', + output_size=8, + with_temporal_pool=True), + bbox_head=dict( + type='BBoxHeadAVA', + in_channels=2048, + num_classes=num_classes, + multilabel=True, + topk=(3, 5), + dropout_ratio=0.5)), + train_cfg=dict( + rcnn=dict( + assigner=dict( + type='MaxIoUAssignerAVA', + pos_iou_thr=0.9, + neg_iou_thr=0.9, + min_pos_iou=0.9), + sampler=dict( + type='RandomSampler', + num=32, + pos_fraction=1, + neg_pos_ub=-1, + add_gt_as_proposals=True), + pos_weight=1.0, + debug=False)), + test_cfg=dict(rcnn=dict(action_thr=0.002))) + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.1.csv' +ann_file_val = f'{anno_root}/ava_val_v2.1.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.1.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.1.csv' + +label_file = f'{anno_root}/ava_action_list_v2.1.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=4, frame_interval=16), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict( + type='SampleAVAFrames', clip_len=4, frame_interval=16, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape'], + nested=True) +] + +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + num_classes=num_classes, + custom_classes=custom_classes, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + num_classes=num_classes, + custom_classes=custom_classes, + data_prefix=data_root)) +data['test'] = data['val'] + +optimizer = dict(type='SGD', lr=0.2, momentum=0.9, weight_decay=0.00001) +# this lr is used for 8 gpus + +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy + +lr_config = dict( + policy='step', + step=[10, 15], + warmup='linear', + warmup_by_epoch=True, + warmup_iters=5, + warmup_ratio=0.1) +total_epochs = 20 +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict(interval=1, save_best='mAP@0.5IOU') +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = ('./work_dirs/ava/' + 'slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_custom') +load_from = ('https://download.openmmlab.com/mmaction/recognition/slowonly/' + 'slowonly_r50_4x16x1_256e_kinetics400_rgb/' + 'slowonly_r50_4x16x1_256e_kinetics400_rgb_20200704-a69556c6.pth') +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb.py new file mode 100644 index 00000000..e0a05510 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb.py @@ -0,0 +1,120 @@ +_base_ = ['../_base_/models/slowonly_r50_nl.py'] + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.1.csv' +ann_file_val = f'{anno_root}/ava_val_v2.1.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.1.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.1.csv' + +label_file = f'{anno_root}/ava_action_list_v2.1_for_activitynet_2018.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=4, frame_interval=16), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict( + type='SampleAVAFrames', clip_len=4, frame_interval=16, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape'], + nested=True) +] + +data = dict( + videos_per_gpu=12, + workers_per_gpu=2, + # During testing, each video may have different shape + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) +data['test'] = data['val'] + +optimizer = dict( + type='SGD', lr=0.3, momentum=0.9, weight_decay=1e-06, nesterov=True) +# this lr is used for 8 gpus + +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy + +lr_config = dict( + policy='step', + step=[4, 6, 8], + warmup='linear', + warmup_iters=800, + warmup_ratio=0.01) +total_epochs = 10 + +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict(interval=1, save_best='mAP@0.5IOU') +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = ('./work_dirs/ava/' + 'slowonly_nl_kinetics_pretrained_r50_4x16x1_10e_ava_rgb') +load_from = ( + 'https://download.openmmlab.com/mmaction/recognition/slowonly/' + 'slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb/' + 'slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb_20210308-0d6e5a69.pth' # noqa: E501 +) +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb.py new file mode 100644 index 00000000..105b8320 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb.py @@ -0,0 +1,119 @@ +_base_ = ['../_base_/models/slowonly_r50_nl.py'] + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.1.csv' +ann_file_val = f'{anno_root}/ava_val_v2.1.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.1.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.1.csv' + +label_file = f'{anno_root}/ava_action_list_v2.1_for_activitynet_2018.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=8, frame_interval=8), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict(type='SampleAVAFrames', clip_len=8, frame_interval=8, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape'], + nested=True) +] + +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + # During testing, each video may have different shape + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) +data['test'] = data['val'] + +optimizer = dict( + type='SGD', lr=0.15, momentum=0.9, weight_decay=1e-06, nesterov=True) +# this lr is used for 8x2 gpus + +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy + +lr_config = dict( + policy='step', + step=[4, 6, 8], + warmup='linear', + warmup_iters=1600, + warmup_ratio=0.01) +total_epochs = 10 + +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict(interval=1, save_best='mAP@0.5IOU') +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = ('./work_dirs/ava/' + 'slowonly_nl_kinetics_pretrained_r50_8x8x1_10e_ava_rgb') +load_from = ( + 'https://download.openmmlab.com/mmaction/recognition/slowonly/' + 'slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb/' + 'slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb_20210308-e8dd9e82.pth' # noqa: E501 +) +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py new file mode 100644 index 00000000..23f3aaf5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py @@ -0,0 +1,158 @@ +# model setting +model = dict( + type='FastRCNN', + backbone=dict( + type='ResNet3dSlowOnly', + depth=101, + pretrained=None, + pretrained2d=False, + lateral=False, + num_stages=4, + conv1_kernel=(1, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + spatial_strides=(1, 2, 2, 1)), + roi_head=dict( + type='AVARoIHead', + bbox_roi_extractor=dict( + type='SingleRoIExtractor3D', + roi_layer_type='RoIAlign', + output_size=8, + with_temporal_pool=True), + bbox_head=dict( + type='BBoxHeadAVA', + in_channels=2048, + num_classes=81, + multilabel=True, + dropout_ratio=0.5)), + train_cfg=dict( + rcnn=dict( + assigner=dict( + type='MaxIoUAssignerAVA', + pos_iou_thr=0.9, + neg_iou_thr=0.9, + min_pos_iou=0.9), + sampler=dict( + type='RandomSampler', + num=32, + pos_fraction=1, + neg_pos_ub=-1, + add_gt_as_proposals=True), + pos_weight=1.0, + debug=False)), + test_cfg=dict(rcnn=dict(action_thr=0.002))) + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.1.csv' +ann_file_val = f'{anno_root}/ava_val_v2.1.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.1.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.1.csv' + +label_file = f'{anno_root}/ava_action_list_v2.1_for_activitynet_2018.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=8, frame_interval=8), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict(type='SampleAVAFrames', clip_len=8, frame_interval=8, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape'], + nested=True) +] +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + # During testing, each video may have different shape + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) +data['test'] = data['val'] + +optimizer = dict(type='SGD', lr=0.075, momentum=0.9, weight_decay=0.00001) +# this lr is used for 8 gpus + +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy + +lr_config = dict( + policy='step', + step=[10, 15], + warmup='linear', + warmup_by_epoch=True, + warmup_iters=5, + warmup_ratio=0.1) +total_epochs = 20 +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict(interval=1, save_best='mAP@0.5IOU') +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = ('./work_dirs/ava/' + 'slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb') +load_from = ('https://download.openmmlab.com/mmaction/recognition/slowonly/' + 'omni/' + 'slowonly_r101_omni_8x8x1_kinetics400_rgb_20200926-b5dbb701.pth') + +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb.py new file mode 100644 index 00000000..067e1745 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/ava/slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb.py @@ -0,0 +1,159 @@ +# model setting +model = dict( + type='FastRCNN', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained=None, + pretrained2d=False, + lateral=False, + num_stages=4, + conv1_kernel=(1, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + spatial_strides=(1, 2, 2, 1)), + roi_head=dict( + type='AVARoIHead', + bbox_roi_extractor=dict( + type='SingleRoIExtractor3D', + roi_layer_type='RoIAlign', + output_size=8, + with_temporal_pool=True), + bbox_head=dict( + type='BBoxHeadAVA', + in_channels=2048, + num_classes=81, + multilabel=True, + dropout_ratio=0.5)), + train_cfg=dict( + rcnn=dict( + assigner=dict( + type='MaxIoUAssignerAVA', + pos_iou_thr=0.9, + neg_iou_thr=0.9, + min_pos_iou=0.9), + sampler=dict( + type='RandomSampler', + num=32, + pos_fraction=1, + neg_pos_ub=-1, + add_gt_as_proposals=True), + pos_weight=1.0, + debug=False)), + test_cfg=dict(rcnn=dict(action_thr=0.002))) + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.1.csv' +ann_file_val = f'{anno_root}/ava_val_v2.1.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.1.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.1.csv' + +label_file = f'{anno_root}/ava_action_list_v2.1_for_activitynet_2018.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=4, frame_interval=16), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict( + type='SampleAVAFrames', clip_len=4, frame_interval=16, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape'], + nested=True) +] + +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + # During testing, each video may have different shape + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) +data['test'] = data['val'] + +optimizer = dict(type='SGD', lr=0.2, momentum=0.9, weight_decay=0.00001) +# this lr is used for 8 gpus + +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy + +lr_config = dict( + policy='step', + step=[10, 15], + warmup='linear', + warmup_by_epoch=True, + warmup_iters=5, + warmup_ratio=0.1) +total_epochs = 20 +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict(interval=1, save_best='mAP@0.5IOU') +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = ('./work_dirs/ava/' + 'slowonly_omnisource_pretrained_r50_4x16x1_20e_ava_rgb') +load_from = ('https://download.openmmlab.com/mmaction/recognition/slowonly/' + 'omni/' + 'slowonly_r50_omni_4x16x1_kinetics400_rgb_20200926-51b1f7ea.pth') +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/README.md b/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/README.md new file mode 100644 index 00000000..0658acc9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/README.md @@ -0,0 +1,132 @@ +# LFB + +[Long-term feature banks for detailed video understanding](https://openaccess.thecvf.com/content_CVPR_2019/html/Wu_Long-Term_Feature_Banks_for_Detailed_Video_Understanding_CVPR_2019_paper.html) + + + +## Abstract + + + +To understand the world, we humans constantly need to relate the present to the past, and put events in context. In this paper, we enable existing video models to do the same. We propose a long-term feature bank---supportive information extracted over the entire span of a video---to augment state-of-the-art video models that otherwise would only view short clips of 2-5 seconds. Our experiments demonstrate that augmenting 3D convolutional networks with a long-term feature bank yields state-of-the-art results on three challenging video datasets: AVA, EPIC-Kitchens, and Charades. + + + +
+ +
+ +## Results and Models + +### AVA2.1 + +| Model | Modality | Pretrained | Backbone | Input | gpus | Resolution | mAP | log | json | ckpt | +| :-----------------------------------------------------------------------------------------------------------------------------------------------------: | :------: | :----------: | :--------------------------------------------------------------------------------------------------: | :---: | :--: | :------------: | :---: | :------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py](/configs/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py) | RGB | Kinetics-400 | [slowonly_r50_4x16x1](/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) | 4x16 | 8 | short-side 256 | 24.11 | [log](https://download.openmmlab.com/mmaction/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210224_125052.log) | [json](https://download.openmmlab.com/mmaction/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210224_125052.log.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb_20210224-2ae136d9.pth) | +| [lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py](/configs/detection/lfb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py) | RGB | Kinetics-400 | [slowonly_r50_4x16x1](/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) | 4x16 | 8 | short-side 256 | 20.17 | [log](https://download.openmmlab.com/mmaction/detection/lfb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210301_124812.log) | [json](https://download.openmmlab.com/mmaction/detection/lfb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210301_124812.log.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/lfb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb_20210301-19c330b7.pth) | +| [lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py](/configs/detection/lfb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py) | RGB | Kinetics-400 | [slowonly_r50_4x16x1](/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) | 4x16 | 8 | short-side 256 | 22.15 | [log](https://download.openmmlab.com/mmaction/detection/lfb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210301_124812.log) | [json](https://download.openmmlab.com/mmaction/detection/lfb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210301_124812.log.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/lfb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb_20210301-37efcd15.pth) | + +:::{note} + +1. The **gpus** indicates the number of gpu we used to get the checkpoint. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. +2. We use `slowonly_r50_4x16x1` instead of `I3D-R50-NL` in the original paper as the backbone of LFB, but we have achieved the similar improvement: (ours: 20.1 -> 24.11 vs. author: 22.1 -> 25.8). +3. Because the long-term features are randomly sampled in testing, the test accuracy may have some differences. +4. Before train or test lfb, you need to infer feature bank with the [lfb_slowonly_r50_ava_infer.py](/configs/detection/lfb/lfb_slowonly_r50_ava_infer.py). For more details on infer feature bank, you can refer to [Train](#Train) part. +5. You can also dowonload long-term feature bank from [AVA_train_val_float32_lfb](https://download.openmmlab.com/mmaction/detection/lfb/AVA_train_val_float32_lfb.rar) or [AVA_train_val_float16_lfb](https://download.openmmlab.com/mmaction/detection/lfb/AVA_train_val_float16_lfb.rar), and then put them on `lfb_prefix_path`. +6. The ROIHead now supports single-label classification (i.e. the network outputs at most + one-label per actor). This can be done by (a) setting multilabel=False during training and + the test_cfg.rcnn.action_thr for testing. + +::: + +## Train + +### a. Infer long-term feature bank for training + +Before train or test lfb, you need to infer long-term feature bank first. + +Specifically, run the test on the training, validation, testing dataset with the config file [lfb_slowonly_r50_ava_infer](/configs/detection/lfb/lfb_slowonly_r50_ava_infer.py) (The config file will only infer the feature bank of training dataset and you need set `dataset_mode = 'val'` to infer the feature bank of validation dataset in the config file.), and the shared head [LFBInferHead](/mmaction/models/heads/lfb_infer_head.py) will generate the feature bank. + +A long-term feature bank file of AVA training and validation datasets with float32 precision occupies 3.3 GB. If store the features with float16 precision, the feature bank occupies 1.65 GB. + +You can use the following command to infer feature bank of AVA training and validation dataset and the feature bank will be stored in `lfb_prefix_path/lfb_train.pkl` and `lfb_prefix_path/lfb_val.pkl`. + +```shell +# set `dataset_mode = 'train'` in lfb_slowonly_r50_ava_infer.py +python tools/test.py configs/detection/lfb/lfb_slowonly_r50_ava_infer.py \ + checkpoints/YOUR_BASELINE_CHECKPOINT.pth --eval mAP + +# set `dataset_mode = 'val'` in lfb_slowonly_r50_ava_infer.py +python tools/test.py configs/detection/lfb/lfb_slowonly_r50_ava_infer.py \ + checkpoints/YOUR_BASELINE_CHECKPOINT.pth --eval mAP +``` + +We use [slowonly_r50_4x16x1 checkpoint](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217-40061d5f.pth) from [slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb](/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) to infer feature bank. + +### b. Train LFB + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train LFB model on AVA with half-precision long-term feature bank. + +```shell +python tools/train.py configs/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py \ + --validate --seed 0 --deterministic +``` + +For more details and optional arguments infos, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +### a. Infer long-term feature bank for testing + +Before train or test lfb, you also need to infer long-term feature bank first. If you have generated the feature bank file, you can skip it. + +The step is the same with **Infer long-term feature bank for training** part in [Train](#Train). + +### b. Test LFB + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test LFB model on AVA with half-precision long-term feature bank and dump the result to a csv file. + +```shell +python tools/test.py configs/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval mAP --out results.csv +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + + + +```BibTeX +@inproceedings{gu2018ava, + title={Ava: A video dataset of spatio-temporally localized atomic visual actions}, + author={Gu, Chunhui and Sun, Chen and Ross, David A and Vondrick, Carl and Pantofaru, Caroline and Li, Yeqing and Vijayanarasimhan, Sudheendra and Toderici, George and Ricco, Susanna and Sukthankar, Rahul and others}, + booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition}, + pages={6047--6056}, + year={2018} +} +``` + +```BibTeX +@inproceedings{wu2019long, + title={Long-term feature banks for detailed video understanding}, + author={Wu, Chao-Yuan and Feichtenhofer, Christoph and Fan, Haoqi and He, Kaiming and Krahenbuhl, Philipp and Girshick, Ross}, + booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition}, + pages={284--293}, + year={2019} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/README_zh-CN.md new file mode 100644 index 00000000..2f42c393 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/README_zh-CN.md @@ -0,0 +1,103 @@ +# LFB + +## 简介 + + + +```BibTeX +@inproceedings{wu2019long, + title={Long-term feature banks for detailed video understanding}, + author={Wu, Chao-Yuan and Feichtenhofer, Christoph and Fan, Haoqi and He, Kaiming and Krahenbuhl, Philipp and Girshick, Ross}, + booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition}, + pages={284--293}, + year={2019} +} +``` + +## 模型库 + +### AVA2.1 + +| 配置文件 | 模态 | 预训练 | 主干网络 | 输入 | GPU 数量 | 分辨率 | 平均精度 | log | json | ckpt | +| :-----------------------------------------------------------------------------------------------------------------------------------------------------: | :--: | :----------: | :--------------------------------------------------------------------------------------------------: | :--: | :------: | :------: | :------: | :------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py](/configs/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py) | RGB | Kinetics-400 | [slowonly_r50_4x16x1](/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) | 4x16 | 8 | 短边 256 | 24.11 | [log](https://download.openmmlab.com/mmaction/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210224_125052.log) | [json](https://download.openmmlab.com/mmaction/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210224_125052.log.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb_20210224-2ae136d9.pth) | +| [lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py](/configs/detection/lfb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py) | RGB | Kinetics-400 | [slowonly_r50_4x16x1](/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) | 4x16 | 8 | 短边 256 | 20.17 | [log](https://download.openmmlab.com/mmaction/detection/lfb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210301_124812.log) | [json](https://download.openmmlab.com/mmaction/detection/lfb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210301_124812.log.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/lfb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb_20210301-19c330b7.pth) | +| [lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py](/configs/detection/lfb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py) | RGB | Kinetics-400 | [slowonly_r50_4x16x1](/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) | 4x16 | 8 | 短边 256 | 22.15 | [log](https://download.openmmlab.com/mmaction/detection/lfb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210301_124812.log) | [json](https://download.openmmlab.com/mmaction/detection/lfb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210301_124812.log.json) | [ckpt](https://download.openmmlab.com/mmaction/detection/lfb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb_20210301-37efcd15.pth) | + +- 注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +2. 本 LFB 模型暂没有使用原论文中的 `I3D-R50-NL` 作为主干网络,而是用 `slowonly_r50_4x16x1` 替代,但取得了同样的提升效果:(本模型:20.1 -> 24.11 而原论文模型:22.1 -> 25.8)。 +3. 因为测试时,长时特征是被随机采样的,所以测试精度可能有一些偏差。 +4. 在训练或测试 LFB 之前,用户需要使用配置文件特征库 [lfb_slowonly_r50_ava_infer.py](/configs/detection/lfb/lfb_slowonly_r50_ava_infer.py) 来推导长时特征库。有关推导长时特征库的更多细节,请参照[训练部分](#%E8%AE%AD%E7%BB%83)。 +5. 用户也可以直接从 [AVA_train_val_float32_lfb](https://download.openmmlab.com/mmaction/detection/lfb/AVA_train_val_float32_lfb.rar) 或者 [AVA_train_val_float16_lfb](https://download.openmmlab.com/mmaction/detection/lfb/AVA_train_val_float16_lfb.rar) 下载 float32 或 float16 的长时特征库,并把它们放在 `lfb_prefix_path` 上。 + +## 训练 + +### a. 为训练 LFB 推导长时特征库 + +在训练或测试 LFB 之前,用户首先需要推导长时特征库。 + +具体来说,使用配置文件 [lfb_slowonly_r50_ava_infer](/configs/detection/lfb/lfb_slowonly_r50_ava_infer.py),在训练集、验证集、测试集上都运行一次模型测试。 + +配置文件的默认设置是推导训练集的长时特征库,用户需要将 `dataset_mode` 设置成 `'val'` 来推导验证集的长时特征库,在推导过程中。共享头 [LFBInferHead](/mmaction/models/heads/lfb_infer_head.py) 会生成长时特征库。 + +AVA 训练集和验证集的 float32 精度的长时特征库文件大约占 3.3 GB。如果以半精度来存储长时特征,文件大约占 1.65 GB。 + +用户可以使用以下命令来推导 AVA 训练集和验证集的长时特征库,而特征库会被存储为 `lfb_prefix_path/lfb_train.pkl` 和 `lfb_prefix_path/lfb_val.pkl`。 + +```shell +# 在 lfb_slowonly_r50_ava_infer.py 中 设置 `dataset_mode = 'train'` +python tools/test.py configs/detection/lfb/lfb_slowonly_r50_ava_infer.py \ + checkpoints/YOUR_BASELINE_CHECKPOINT.pth --eval mAP + +# 在 lfb_slowonly_r50_ava_infer.py 中 设置 `dataset_mode = 'val'` +python tools/test.py configs/detection/lfb/lfb_slowonly_r50_ava_infer.py \ + checkpoints/YOUR_BASELINE_CHECKPOINT.pth --eval mAP +``` + +MMAction2 使用来自配置文件 [slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb](/configs/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb.py) 的模型权重文件 [slowonly_r50_4x16x1 checkpoint](https://download.openmmlab.com/mmaction/detection/ava/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb/slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb_20201217-40061d5f.pth)作为推导长时特征库的 LFB 模型的主干网络的预训练模型。 + +### b. 训练 LFB + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:使用半精度的长时特征库在 AVA 数据集上训练 LFB 模型。 + +```shell +python tools/train.py configs/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py \ + --validate --seed 0 --deterministic +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 测试 + +### a. 为测试 LFB 推导长时特征库 + +在训练或测试 LFB 之前,用户首先需要推导长时特征库。如果用户之前已经生成了特征库文件,可以跳过这一步。 + +这一步做法与[训练部分](#Train)中的 **为训练 LFB 推导长时特征库** 相同。 + +### b. 测试 LFB + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:使用半精度的长时特征库在 AVA 数据集上测试 LFB 模型,并将结果导出为一个 json 文件。 + +```shell +python tools/test.py configs/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval mAP --out results.csv +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py new file mode 100644 index 00000000..6ba6a8fc --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py @@ -0,0 +1,137 @@ +_base_ = ['../_base_/models/slowonly_r50.py'] + +# model settings +lfb_prefix_path = 'data/ava/lfb_half' +max_num_sampled_feat = 5 +window_size = 60 +lfb_channels = 2048 +dataset_modes = ('train', 'val') + +model = dict( + roi_head=dict( + shared_head=dict( + type='FBOHead', + lfb_cfg=dict( + lfb_prefix_path=lfb_prefix_path, + max_num_sampled_feat=max_num_sampled_feat, + window_size=window_size, + lfb_channels=lfb_channels, + dataset_modes=dataset_modes, + device='gpu'), + fbo_cfg=dict(type='avg')), + bbox_head=dict(in_channels=4096))) + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.1.csv' +ann_file_val = f'{anno_root}/ava_val_v2.1.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.1.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.1.csv' + +label_file = f'{anno_root}/ava_action_list_v2.1_for_activitynet_2018.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=4, frame_interval=16), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids', 'img_key']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict( + type='SampleAVAFrames', clip_len=4, frame_interval=16, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape', 'img_key'], + nested=True) +] + +data = dict( + videos_per_gpu=12, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) +data['test'] = data['val'] +evaluation = dict(interval=1, save_best='mAP@0.5IOU') + +optimizer = dict(type='SGD', lr=0.15, momentum=0.9, weight_decay=1e-05) +# this lr is used for 8 gpus + +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy + +lr_config = dict( + policy='step', + step=[10, 15], + warmup='linear', + warmup_by_epoch=True, + warmup_iters=5, + warmup_ratio=0.1) +total_epochs = 20 + +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/lfb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb' # noqa E501 +load_from = ('https://download.openmmlab.com/mmaction/recognition/slowonly/' + 'slowonly_r50_4x16x1_256e_kinetics400_rgb/' + 'slowonly_r50_4x16x1_256e_kinetics400_rgb_20200704-a69556c6.pth') +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py new file mode 100644 index 00000000..6c4dc19d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py @@ -0,0 +1,137 @@ +_base_ = ['../_base_/models/slowonly_r50.py'] + +# model settings +lfb_prefix_path = 'data/ava/lfb_half' +max_num_sampled_feat = 5 +window_size = 60 +lfb_channels = 2048 +dataset_modes = ('train', 'val') + +model = dict( + roi_head=dict( + shared_head=dict( + type='FBOHead', + lfb_cfg=dict( + lfb_prefix_path=lfb_prefix_path, + max_num_sampled_feat=max_num_sampled_feat, + window_size=window_size, + lfb_channels=lfb_channels, + dataset_modes=dataset_modes, + device='gpu'), + fbo_cfg=dict(type='max')), + bbox_head=dict(in_channels=4096))) + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.1.csv' +ann_file_val = f'{anno_root}/ava_val_v2.1.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.1.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.1.csv' + +label_file = f'{anno_root}/ava_action_list_v2.1_for_activitynet_2018.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=4, frame_interval=16), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids', 'img_key']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict( + type='SampleAVAFrames', clip_len=4, frame_interval=16, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape', 'img_key'], + nested=True) +] + +data = dict( + videos_per_gpu=12, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) +data['test'] = data['val'] +evaluation = dict(interval=1, save_best='mAP@0.5IOU') + +optimizer = dict(type='SGD', lr=0.15, momentum=0.9, weight_decay=1e-05) +# this lr is used for 8 gpus + +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy + +lr_config = dict( + policy='step', + step=[10, 15], + warmup='linear', + warmup_by_epoch=True, + warmup_iters=5, + warmup_ratio=0.1) +total_epochs = 20 + +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/lfb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb' # noqa E501 +load_from = ('https://download.openmmlab.com/mmaction/recognition/slowonly/' + 'slowonly_r50_4x16x1_256e_kinetics400_rgb/' + 'slowonly_r50_4x16x1_256e_kinetics400_rgb_20200704-a69556c6.pth') +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py new file mode 100644 index 00000000..bdd90ce6 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py @@ -0,0 +1,147 @@ +_base_ = ['../_base_/models/slowonly_r50.py'] + +# model settings +lfb_prefix_path = 'data/ava/lfb_half' +max_num_sampled_feat = 5 +window_size = 60 +lfb_channels = 2048 +dataset_modes = ('train', 'val') + +model = dict( + roi_head=dict( + shared_head=dict( + type='FBOHead', + lfb_cfg=dict( + lfb_prefix_path=lfb_prefix_path, + max_num_sampled_feat=max_num_sampled_feat, + window_size=window_size, + lfb_channels=lfb_channels, + dataset_modes=dataset_modes, + device='gpu'), + fbo_cfg=dict( + type='non_local', + st_feat_channels=2048, + lt_feat_channels=lfb_channels, + latent_channels=512, + num_st_feat=1, + num_lt_feat=window_size * max_num_sampled_feat, + num_non_local_layers=2, + st_feat_dropout_ratio=0.2, + lt_feat_dropout_ratio=0.2, + pre_activate=True)), + bbox_head=dict(in_channels=2560))) + +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_train = f'{anno_root}/ava_train_v2.1.csv' +ann_file_val = f'{anno_root}/ava_val_v2.1.csv' + +exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.1.csv' +exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.1.csv' + +label_file = f'{anno_root}/ava_action_list_v2.1_for_activitynet_2018.pbtxt' + +proposal_file_train = (f'{anno_root}/ava_dense_proposals_train.FAIR.' + 'recall_93.9.pkl') +proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleAVAFrames', clip_len=4, frame_interval=16), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=256), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), + dict( + type='ToDataContainer', + fields=[ + dict(key=['proposals', 'gt_bboxes', 'gt_labels'], stack=False) + ]), + dict( + type='Collect', + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], + meta_keys=['scores', 'entity_ids', 'img_key']) +] +# The testing is w/o. any cropping / flipping +val_pipeline = [ + dict( + type='SampleAVAFrames', clip_len=4, frame_interval=16, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape', 'img_key'], + nested=True) +] + +data = dict( + videos_per_gpu=12, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) +data['test'] = data['val'] +evaluation = dict(interval=1, save_best='mAP@0.5IOU') + +optimizer = dict(type='SGD', lr=0.15, momentum=0.9, weight_decay=1e-05) +# this lr is used for 8 gpus + +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy + +lr_config = dict( + policy='step', + step=[10, 15], + warmup='linear', + warmup_by_epoch=True, + warmup_iters=5, + warmup_ratio=0.1) +total_epochs = 20 + +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb' # noqa E501 +load_from = ('https://download.openmmlab.com/mmaction/recognition/slowonly/' + 'slowonly_r50_4x16x1_256e_kinetics400_rgb/' + 'slowonly_r50_4x16x1_256e_kinetics400_rgb_20200704-a69556c6.pth') +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/lfb_slowonly_r50_ava_infer.py b/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/lfb_slowonly_r50_ava_infer.py new file mode 100644 index 00000000..568f0765 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/lfb_slowonly_r50_ava_infer.py @@ -0,0 +1,65 @@ +# This config is used to generate long-term feature bank. +_base_ = ['../_base_/models/slowonly_r50.py'] + +# model settings +lfb_prefix_path = 'data/ava/lfb_half' +dataset_mode = 'train' # ['train', 'val', 'test'] + +model = dict( + roi_head=dict( + shared_head=dict( + type='LFBInferHead', + lfb_prefix_path=lfb_prefix_path, + dataset_mode=dataset_mode, + use_half_precision=True))) + +# dataset settings +dataset_type = 'AVADataset' +data_root = 'data/ava/rawframes' +anno_root = 'data/ava/annotations' + +ann_file_infer = f'{anno_root}/ava_{dataset_mode}_v2.1.csv' + +exclude_file_infer = ( + f'{anno_root}/ava_{dataset_mode}_excluded_timestamps_v2.1.csv') + +label_file = f'{anno_root}/ava_action_list_v2.1_for_activitynet_2018.pbtxt' + +proposal_file_infer = ( + f'{anno_root}/ava_dense_proposals_{dataset_mode}.FAIR.recall_93.9.pkl') + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +infer_pipeline = [ + dict( + type='SampleAVAFrames', clip_len=4, frame_interval=16, test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW', collapse=True), + # Rename is needed to use mmdet detectors + dict(type='Rename', mapping=dict(imgs='img')), + dict(type='ToTensor', keys=['img', 'proposals']), + dict(type='ToDataContainer', fields=[dict(key='proposals', stack=False)]), + dict( + type='Collect', + keys=['img', 'proposals'], + meta_keys=['scores', 'img_shape', 'img_key'], + nested=True) +] + +data = dict( + videos_per_gpu=1, + workers_per_gpu=2, + test=dict( + type=dataset_type, + ann_file=ann_file_infer, + exclude_file=exclude_file_infer, + pipeline=infer_pipeline, + label_file=label_file, + proposal_file=proposal_file_infer, + person_det_score_thr=0.9, + data_prefix=data_root)) + +dist_params = dict(backend='nccl') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/metafile.yml new file mode 100644 index 00000000..90ec931e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/detection/lfb/metafile.yml @@ -0,0 +1,70 @@ +Collections: +- Name: LFB + README: configs/detection/lfb/README.md + Paper: + URL: https://arxiv.org/abs/1812.05038 + Title: Long-Term Feature Banks for Detailed Video Understanding +Models: +- Config: configs/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py + In Collection: LFB + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 20 + Input: 4x16 + Pretrained: Kinetics-400 + Resolution: short-side 256 + Training Data: AVA v2.1 + Training Resources: 8 GPUs + Modality: RGB + Name: lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py + Results: + - Dataset: AVA v2.1 + Metrics: + mAP: 24.11 + Task: Spatial Temporal Action Detection + Training Json Log: https://download.openmmlab.com/mmaction/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210224_125052.log.json + Training Log: https://download.openmmlab.com/mmaction/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210224_125052.log + Weights: https://download.openmmlab.com/mmaction/detection/lfb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/lfb_nl_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb_20210224-2ae136d9.pth +- Config: configs/detection/lfb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py + In Collection: LFB + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 20 + Input: 4x16 + Pretrained: Kinetics-400 + Resolution: short-side 256 + Training Data: AVA v2.1 + Training Resources: 8 GPUs + Modality: RGB + Name: lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py + Results: + - Dataset: AVA v2.1 + Metrics: + mAP: 20.17 + Task: Spatial Temporal Action Detection + Training Json Log: https://download.openmmlab.com/mmaction/detection/lfb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210301_124812.log.json + Training Log: https://download.openmmlab.com/mmaction/detection/lfb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210301_124812.log + Weights: https://download.openmmlab.com/mmaction/detection/lfb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/lfb_avg_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb_20210301-19c330b7.pth +- Config: configs/detection/lfb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py + In Collection: LFB + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 20 + Input: 4x16 + Pretrained: Kinetics-400 + Resolution: short-side 256 + Training Data: AVA v2.1 + Training Resources: 8 GPUs + Modality: RGB + Name: lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb.py + Results: + - Dataset: AVA v2.1 + Metrics: + mAP: 22.15 + Task: Spatial Temporal Action Detection + Training Json Log: https://download.openmmlab.com/mmaction/detection/lfb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210301_124812.log.json + Training Log: https://download.openmmlab.com/mmaction/detection/lfb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/20210301_124812.log + Weights: https://download.openmmlab.com/mmaction/detection/lfb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb/lfb_max_kinetics_pretrained_slowonly_r50_4x16x1_20e_ava_rgb_20210301-37efcd15.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/localization/bmn/README.md b/openmmlab_test/mmaction2-0.24.1/configs/localization/bmn/README.md new file mode 100644 index 00000000..ccf07450 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/localization/bmn/README.md @@ -0,0 +1,115 @@ +# BMN + +[Bmn: Boundary-matching network for temporal action proposal generation](https://openaccess.thecvf.com/content_ICCV_2019/html/Lin_BMN_Boundary-Matching_Network_for_Temporal_Action_Proposal_Generation_ICCV_2019_paper.html) + + + +## Abstract + + + +Temporal action proposal generation is an challenging and promising task which aims to locate temporal regions in real-world videos where action or event may occur. Current bottom-up proposal generation methods can generate proposals with precise boundary, but cannot efficiently generate adequately reliable confidence scores for retrieving proposals. To address these difficulties, we introduce the Boundary-Matching (BM) mechanism to evaluate confidence scores of densely distributed proposals, which denote a proposal as a matching pair of starting and ending boundaries and combine all densely distributed BM pairs into the BM confidence map. Based on BM mechanism, we propose an effective, efficient and end-to-end proposal generation method, named Boundary-Matching Network (BMN), which generates proposals with precise temporal boundaries as well as reliable confidence scores simultaneously. The two-branches of BMN are jointly trained in an unified framework. We conduct experiments on two challenging datasets: THUMOS-14 and ActivityNet-1.3, where BMN shows significant performance improvement with remarkable efficiency and generalizability. Further, combining with existing action classifier, BMN can achieve state-of-the-art temporal action detection performance. + + + +
+ +
+ +## Results and Models + +### ActivityNet feature + +| config | feature | gpus | AR@100 | AUC | AP@0.5 | AP@0.75 | AP@0.95 | mAP | gpu_mem(M) | iter time(s) | ckpt | log | json | +| :-----------------------------------------------------------------------------------------------------------: | :------------: | :--: | :----: | :---: | :----: | :-----: | :-----: | :---: | :--------: | ------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| [bmn_400x100_9e_2x8_activitynet_feature](/configs/localization/bmn/bmn_400x100_2x8_9e_activitynet_feature.py) | cuhk_mean_100 | 2 | 75.28 | 67.22 | 42.47 | 31.31 | 9.92 | 30.34 | 5420 | 3.27 | [ckpt](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_9e_activitynet_feature/bmn_400x100_9e_activitynet_feature_20200619-42a3b111.pth) | [log](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_9e_activitynet_feature/bmn_400x100_9e_activitynet_feature.log) | [json](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_9e_activitynet_feature/bmn_400x100_9e_activitynet_feature.log.json) | +| | mmaction_video | 2 | 75.43 | 67.22 | 42.62 | 31.56 | 10.86 | 30.77 | 5420 | 3.27 | [ckpt](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_video/bmn_400x100_2x8_9e_mmaction_video_20200809-c9fd14d2.pth) | [log](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_video/bmn_400x100_2x8_9e_mmaction_video_20200809.log) | [json](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_video/bmn_400x100_2x8_9e_mmaction_video_20200809.json) | +| | mmaction_clip | 2 | 75.35 | 67.38 | 43.08 | 32.19 | 10.73 | 31.15 | 5420 | 3.27 | [ckpt](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_clip/bmn_400x100_2x8_9e_mmaction_clip_20200809-10d803ce.pth) | [log](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_clip/bmn_400x100_2x8_9e_mmaction_clip_20200809.log) | [json](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_clip/bmn_400x100_2x8_9e_mmaction_clip_20200809.json) | +| [BMN-official](https://github.com/JJBOY/BMN-Boundary-Matching-Network) (for reference)\* | cuhk_mean_100 | - | 75.27 | 67.49 | 42.22 | 30.98 | 9.22 | 30.00 | - | - | - | - | - | + +:::{note} + +1. The **gpus** indicates the number of gpu we used to get the checkpoint. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. +2. For feature column, cuhk_mean_100 denotes the widely used cuhk activitynet feature extracted by [anet2016-cuhk](https://github.com/yjxiong/anet2016-cuhk), mmaction_video and mmaction_clip denote feature extracted by mmaction, with video-level activitynet finetuned model or clip-level activitynet finetuned model respectively. +3. We evaluate the action detection performance of BMN, using [anet_cuhk_2017](https://download.openmmlab.com/mmaction/localization/cuhk_anet17_pred.json) submission for ActivityNet2017 Untrimmed Video Classification Track to assign label for each action proposal. + +::: + +\*We train BMN with the [official repo](https://github.com/JJBOY/BMN-Boundary-Matching-Network), evaluate its proposal generation and action detection performance with [anet_cuhk_2017](https://download.openmmlab.com/mmaction/localization/cuhk_anet17_pred.json) for label assigning. + +For more details on data preparation, you can refer to ActivityNet feature in [Data Preparation](/docs/data_preparation.md). + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train BMN model on ActivityNet features dataset. + +```shell +python tools/train.py configs/localization/bmn/bmn_400x100_2x8_9e_activitynet_feature.py +``` + +For more details and optional arguments infos, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting) . + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test BMN on ActivityNet feature dataset. + +```shell +# Note: If evaluated, then please make sure the annotation file for test data contains groundtruth. +python tools/test.py configs/localization/bmn/bmn_400x100_2x8_9e_activitynet_feature.py checkpoints/SOME_CHECKPOINT.pth --eval AR@AN --out results.json +``` + +You can also test the action detection performance of the model, with [anet_cuhk_2017](https://download.openmmlab.com/mmaction/localization/cuhk_anet17_pred.json) prediction file and generated proposal file (`results.json` in last command). + +```shell +python tools/analysis/report_map.py --proposal path/to/proposal_file +``` + +:::{note} + +1. (Optional) You can use the following command to generate a formatted proposal file, which will be fed into the action classifier (Currently supports SSN and P-GCN, not including TSN, I3D etc.) to get the classification result of proposals. + + ```shell + python tools/data/activitynet/convert_proposal_format.py + ``` + +::: + +For more details and optional arguments infos, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset) . + +## Citation + +```BibTeX +@inproceedings{lin2019bmn, + title={Bmn: Boundary-matching network for temporal action proposal generation}, + author={Lin, Tianwei and Liu, Xiao and Li, Xin and Ding, Errui and Wen, Shilei}, + booktitle={Proceedings of the IEEE International Conference on Computer Vision}, + pages={3889--3898}, + year={2019} +} +``` + + + +```BibTeX +@article{zhao2017cuhk, + title={Cuhk \& ethz \& siat submission to activitynet challenge 2017}, + author={Zhao, Y and Zhang, B and Wu, Z and Yang, S and Zhou, L and Yan, S and Wang, L and Xiong, Y and Lin, D and Qiao, Y and others}, + journal={arXiv preprint arXiv:1710.08011}, + volume={8}, + year={2017} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/localization/bmn/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/localization/bmn/README_zh-CN.md new file mode 100644 index 00000000..72c4f3fe --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/localization/bmn/README_zh-CN.md @@ -0,0 +1,98 @@ +# BMN + +## 简介 + + + +```BibTeX +@inproceedings{lin2019bmn, + title={Bmn: Boundary-matching network for temporal action proposal generation}, + author={Lin, Tianwei and Liu, Xiao and Li, Xin and Ding, Errui and Wen, Shilei}, + booktitle={Proceedings of the IEEE International Conference on Computer Vision}, + pages={3889--3898}, + year={2019} +} +``` + + + +```BibTeX +@article{zhao2017cuhk, + title={Cuhk \& ethz \& siat submission to activitynet challenge 2017}, + author={Zhao, Y and Zhang, B and Wu, Z and Yang, S and Zhou, L and Yan, S and Wang, L and Xiong, Y and Lin, D and Qiao, Y and others}, + journal={arXiv preprint arXiv:1710.08011}, + volume={8}, + year={2017} +} +``` + +## 模型库 + +### ActivityNet feature + +| 配置文件 | 特征 | GPU 数量 | AR@100 | AUC | AP@0.5 | AP@0.75 | AP@0.95 | mAP | GPU 显存占用 (M) | 推理时间 (s) | ckpt | log | json | +| :-----------------------------------------------------------------------------------------------------------: | :------------: | :------: | :----: | :---: | :----: | :-----: | :-----: | :---: | :--------------: | ------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| [bmn_400x100_9e_2x8_activitynet_feature](/configs/localization/bmn/bmn_400x100_2x8_9e_activitynet_feature.py) | cuhk_mean_100 | 2 | 75.28 | 67.22 | 42.47 | 31.31 | 9.92 | 30.34 | 5420 | 3.27 | [ckpt](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_9e_activitynet_feature/bmn_400x100_9e_activitynet_feature_20200619-42a3b111.pth) | [log](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_9e_activitynet_feature/bmn_400x100_9e_activitynet_feature.log) | [json](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_9e_activitynet_feature/bmn_400x100_9e_activitynet_feature.log.json) | +| | mmaction_video | 2 | 75.43 | 67.22 | 42.62 | 31.56 | 10.86 | 30.77 | 5420 | 3.27 | [ckpt](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_video/bmn_400x100_2x8_9e_mmaction_video_20200809-c9fd14d2.pth) | [log](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_video/bmn_400x100_2x8_9e_mmaction_video_20200809.log) | [json](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_video/bmn_400x100_2x8_9e_mmaction_video_20200809.json) | +| | mmaction_clip | 2 | 75.35 | 67.38 | 43.08 | 32.19 | 10.73 | 31.15 | 5420 | 3.27 | [ckpt](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_clip/bmn_400x100_2x8_9e_mmaction_clip_20200809-10d803ce.pth) | [log](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_clip/bmn_400x100_2x8_9e_mmaction_clip_20200809.log) | [json](https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_clip/bmn_400x100_2x8_9e_mmaction_clip_20200809.json) | +| [BMN-official](https://github.com/JJBOY/BMN-Boundary-Matching-Network) (for reference)\* | cuhk_mean_100 | - | 75.27 | 67.49 | 42.22 | 30.98 | 9.22 | 30.00 | - | - | - | - | - | + +- 注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +2. 对于 **特征** 这一列,`cuhk_mean_100` 表示所使用的特征为利用 [anet2016-cuhk](https://github.com/yjxiong/anet2016-cuhk) 代码库抽取的,被广泛利用的 CUHK ActivityNet 特征, + `mmaction_video` 和 `mmaction_clip` 分布表示所使用的特征为利用 MMAction 抽取的,视频级别 ActivityNet 预训练模型的特征;视频片段级别 ActivityNet 预训练模型的特征。 +3. MMAction2 使用 ActivityNet2017 未剪辑视频分类赛道上 [anet_cuhk_2017](https://download.openmmlab.com/mmaction/localization/cuhk_anet17_pred.json) 所提交的结果来为每个视频的时序动作候选指定标签,以用于 BMN 模型评估。 + +\*MMAction2 在 [原始代码库](https://github.com/JJBOY/BMN-Boundary-Matching-Network) 上训练 BMN,并且在 [anet_cuhk_2017](https://download.openmmlab.com/mmaction/localization/cuhk_anet17_pred.json) 的对应标签上评估时序动作候选生成和时序检测的结果。 + +对于数据集准备的细节,用户可参考 [数据集准备文档](/docs_zh_CN/data_preparation.md) 中的 ActivityNet 特征部分。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:在 ActivityNet 特征上训练 BMN。 + +```shell +python tools/train.py configs/localization/bmn/bmn_400x100_2x8_9e_activitynet_feature.py +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 ActivityNet 特征上测试 BMN 模型。 + +```shell +# 注:如果需要进行指标验证,需确测试数据的保标注文件包含真实标签 +python tools/test.py configs/localization/bmn/bmn_400x100_2x8_9e_activitynet_feature.py checkpoints/SOME_CHECKPOINT.pth --eval AR@AN --out results.json +``` + +用户也可以利用 [anet_cuhk_2017](https://download.openmmlab.com/mmaction/localization/cuhk_anet17_pred.json) 的预测文件评估模型时序检测的结果,并生成时序动作候选文件(即命令中的 `results.json`) + +```shell +python tools/analysis/report_map.py --proposal path/to/proposal_file +``` + +注: + +1. (可选项) 用户可以使用以下指令生成格式化的时序动作候选文件,该文件可被送入动作识别器中(目前只支持 SSN 和 P-GCN,不包括 TSN, I3D 等),以获得时序动作候选的分类结果。 + + ```shell + python tools/data/activitynet/convert_proposal_format.py + ``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/localization/bmn/bmn_400x100_2x8_9e_activitynet_feature.py b/openmmlab_test/mmaction2-0.24.1/configs/localization/bmn/bmn_400x100_2x8_9e_activitynet_feature.py new file mode 100644 index 00000000..6e27661f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/localization/bmn/bmn_400x100_2x8_9e_activitynet_feature.py @@ -0,0 +1,88 @@ +_base_ = [ + '../../_base_/models/bmn_400x100.py', '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'ActivityNetDataset' +data_root = 'data/ActivityNet/activitynet_feature_cuhk/csv_mean_100/' +data_root_val = 'data/ActivityNet/activitynet_feature_cuhk/csv_mean_100/' +ann_file_train = 'data/ActivityNet/anet_anno_train.json' +ann_file_val = 'data/ActivityNet/anet_anno_val.json' +ann_file_test = 'data/ActivityNet/anet_anno_val.json' + +test_pipeline = [ + dict(type='LoadLocalizationFeature'), + dict( + type='Collect', + keys=['raw_feature'], + meta_name='video_meta', + meta_keys=[ + 'video_name', 'duration_second', 'duration_frame', 'annotations', + 'feature_frame' + ]), + dict(type='ToTensor', keys=['raw_feature']), +] +train_pipeline = [ + dict(type='LoadLocalizationFeature'), + dict(type='GenerateLocalizationLabels'), + dict( + type='Collect', + keys=['raw_feature', 'gt_bbox'], + meta_name='video_meta', + meta_keys=['video_name']), + dict(type='ToTensor', keys=['raw_feature', 'gt_bbox']), + dict( + type='ToDataContainer', + fields=[dict(key='gt_bbox', stack=False, cpu_only=True)]) +] +val_pipeline = [ + dict(type='LoadLocalizationFeature'), + dict(type='GenerateLocalizationLabels'), + dict( + type='Collect', + keys=['raw_feature', 'gt_bbox'], + meta_name='video_meta', + meta_keys=[ + 'video_name', 'duration_second', 'duration_frame', 'annotations', + 'feature_frame' + ]), + dict(type='ToTensor', keys=['raw_feature', 'gt_bbox']), + dict( + type='ToDataContainer', + fields=[dict(key='gt_bbox', stack=False, cpu_only=True)]) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=8, + train_dataloader=dict(drop_last=True), + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + pipeline=test_pipeline, + data_prefix=data_root_val), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + pipeline=val_pipeline, + data_prefix=data_root_val), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + pipeline=train_pipeline, + data_prefix=data_root)) +evaluation = dict(interval=1, metrics=['AR@AN']) + +# optimizer +optimizer = dict( + type='Adam', lr=0.001, weight_decay=0.0001) # this lr is used for 2 gpus +optimizer_config = dict(grad_clip=None) +# learning policy +lr_config = dict(policy='step', step=7) +total_epochs = 9 + +# runtime settings +log_config = dict(interval=50, hooks=[dict(type='TextLoggerHook')]) +work_dir = './work_dirs/bmn_400x100_2x8_9e_activitynet_feature/' +output_config = dict(out=f'{work_dir}/results.json', output_format='json') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/localization/bmn/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/localization/bmn/metafile.yml new file mode 100644 index 00000000..40eafd4f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/localization/bmn/metafile.yml @@ -0,0 +1,73 @@ +Collections: +- Name: BMN + README: configs/localization/bmn/README.md + Paper: + URL: https://arxiv.org/abs/1907.09702 + Title: "BMN: Boundary-Matching Network for Temporal Action Proposal Generation" +Models: +- Config: configs/localization/bmn/bmn_400x100_2x8_9e_activitynet_feature.py + In Collection: BMN + Metadata: + Batch Size: 8 + Epochs: 9 + Training Data: ActivityNet v1.3 + Training Resources: 2 GPUs + feature: cuhk_mean_100 + Name: bmn_400x100_9e_2x8_activitynet_feature (cuhk_mean_100) + Results: + - Dataset: ActivityNet v1.3 + Metrics: + AP@0.5: 42.47 + AP@0.75: 31.31 + AP@0.95: 9.92 + AR@100: 75.28 + AUC: 67.22 + mAP: 30.34 + Task: Temporal Action Localization + Training Json Log: https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_9e_activitynet_feature/bmn_400x100_9e_activitynet_feature.log.json + Training Log: https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_9e_activitynet_feature/bmn_400x100_9e_activitynet_feature.log + Weights: https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_9e_activitynet_feature/bmn_400x100_9e_activitynet_feature_20200619-42a3b111.pth +- Config: configs/localization/bmn/bmn_400x100_2x8_9e_activitynet_feature.py + In Collection: BMN + Metadata: + Batch Size: 8 + Epochs: 9 + Training Data: ActivityNet v1.3 + Training Resources: 2 GPUs + feature: mmaction_video + Name: bmn_400x100_9e_2x8_activitynet_feature (mmaction_video) + Results: + - Dataset: ActivityNet v1.3 + Metrics: + AP@0.5: 42.62 + AP@0.75: 31.56 + AP@0.95: 10.86 + AR@100: 75.43 + AUC: 67.22 + mAP: 30.77 + Task: Temporal Action Localization + Training Json Log: https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_video/bmn_400x100_2x8_9e_mmaction_video_20200809.json + Training Log: https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_video/bmn_400x100_2x8_9e_mmaction_video_20200809.log + Weights: https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_video/bmn_400x100_2x8_9e_mmaction_video_20200809-c9fd14d2.pth +- Config: configs/localization/bmn/bmn_400x100_2x8_9e_activitynet_feature.py + In Collection: BMN + Metadata: + Batch Size: 8 + Epochs: 9 + Training Data: ActivityNet v1.3 + Training Resources: 2 GPUs + feature: mmaction_clip + Name: bmn_400x100_9e_2x8_activitynet_feature (mmaction_clip) + Results: + - Dataset: ActivityNet v1.3 + Metrics: + AP@0.5: 43.08 + AP@0.75: 32.19 + AP@0.95: 10.73 + AR@100: 75.35 + AUC: 67.38 + mAP: 31.15 + Task: Temporal Action Localization + Training Json Log: https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_clip/bmn_400x100_2x8_9e_mmaction_clip_20200809.json + Training Log: https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_clip/bmn_400x100_2x8_9e_mmaction_clip_20200809.log + Weights: https://download.openmmlab.com/mmaction/localization/bmn/bmn_400x100_2x8_9e_mmaction_clip/bmn_400x100_2x8_9e_mmaction_clip_20200809-10d803ce.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/README.md b/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/README.md new file mode 100644 index 00000000..c307cb15 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/README.md @@ -0,0 +1,173 @@ +# BSN + +[Bsn: Boundary sensitive network for temporal action proposal generation](https://openaccess.thecvf.com/content_ECCV_2018/html/Tianwei_Lin_BSN_Boundary_Sensitive_ECCV_2018_paper.html) + + + +## Abstract + + + +Temporal action proposal generation is an important yet challenging problem, since temporal proposals with rich action content are indispensable for analysing real-world videos with long duration and high proportion irrelevant content. This problem requires methods not only generating proposals with precise temporal boundaries, but also retrieving proposals to cover truth action instances with high recall and high overlap using relatively fewer proposals. To address these difficulties, we introduce an effective proposal generation method, named Boundary-Sensitive Network (BSN), which adopts "local to global" fashion. Locally, BSN first locates temporal boundaries with high probabilities, then directly combines these boundaries as proposals. Globally, with Boundary-Sensitive Proposal feature, BSN retrieves proposals by evaluating the confidence of whether a proposal contains an action within its region. We conduct experiments on two challenging datasets: ActivityNet-1.3 and THUMOS14, where BSN outperforms other state-of-the-art temporal action proposal generation methods with high recall and high temporal precision. Finally, further experiments demonstrate that by combining existing action classifiers, our method significantly improves the state-of-the-art temporal action detection performance. + + + +
+ +
+ +## Results and Models + +### ActivityNet feature + +| config | feature | gpus | pretrain | AR@100 | AUC | gpu_mem(M) | iter time(s) | ckpt | log | json | +| :--------------------------------------- | :------------: | :--: | :------: | :----: | :---: | :-------------: | :-------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| bsn_400x100_1x16_20e_activitynet_feature | cuhk_mean_100 | 1 | None | 74.66 | 66.45 | 41(TEM)+25(PEM) | 0.074(TEM)+0.036(PEM) | [ckpt_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature/bsn_tem_400x100_1x16_20e_activitynet_feature_20200619-cd6accc3.pth) [ckpt_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature/bsn_pem_400x100_1x16_20e_activitynet_feature_20210203-1c27763d.pth) | [log_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature/bsn_tem_400x100_1x16_20e_activitynet_feature.log) [log_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature/bsn_pem_400x100_1x16_20e_activitynet_feature.log) | [json_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature/bsn_tem_400x100_1x16_20e_activitynet_feature.log.json) [json_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature/bsn_pem_400x100_1x16_20e_activitynet_feature.log.json) | +| | mmaction_video | 1 | None | 74.93 | 66.74 | 41(TEM)+25(PEM) | 0.074(TEM)+0.036(PEM) | [ckpt_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_video/bsn_tem_400x100_1x16_20e_mmaction_video_20200809-ad6ec626.pth) [ckpt_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_video/bsn_pem_400x100_1x16_20e_mmaction_video_20200809-aa861b26.pth) | [log_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_video/bsn_tem_400x100_1x16_20e_mmaction_video_20200809.log) [log_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_video/bsn_pem_400x100_1x16_20e_mmaction_video_20200809.log) | [json_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_video/bsn_tem_400x100_1x16_20e_mmaction_video_20200809.json) [json_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_video/bsn_pem_400x100_1x16_20e_mmaction_video_20200809.json) | +| | mmaction_clip | 1 | None | 75.19 | 66.81 | 41(TEM)+25(PEM) | 0.074(TEM)+0.036(PEM) | [ckpt_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_clip/bsn_tem_400x100_1x16_20e_mmaction_clip_20200809-0a563554.pth) [ckpt_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_clip/bsn_pem_400x100_1x16_20e_mmaction_clip_20200809-e32f61e6.pth) | [log_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_clip/bsn_tem_400x100_1x16_20e_mmaction_clip_20200809.log) [log_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_clip/bsn_pem_400x100_1x16_20e_mmaction_clip_20200809.log) | [json_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_clip/bsn_tem_400x100_1x16_20e_mmaction_clip_20200809.json) [json_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_clip/bsn_pem_400x100_1x16_20e_mmaction_clip_20200809.json) | + +:::{note} + +1. The **gpus** indicates the number of gpu we used to get the checkpoint. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. +2. For feature column, cuhk_mean_100 denotes the widely used cuhk activitynet feature extracted by [anet2016-cuhk](https://github.com/yjxiong/anet2016-cuhk), mmaction_video and mmaction_clip denote feature extracted by mmaction, with video-level activitynet finetuned model or clip-level activitynet finetuned model respectively. + +::: + +For more details on data preparation, you can refer to ActivityNet feature in [Data Preparation](/docs/data_preparation.md). + +## Train + +You can use the following commands to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Examples: + +1. train BSN(TEM) on ActivityNet features dataset. + + ```shell + python tools/train.py configs/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature.py + ``` + +2. train BSN(PEM) on PGM results. + + ```shell + python tools/train.py configs/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature.py + ``` + +For more details and optional arguments infos, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Inference + +You can use the following commands to inference a model. + +1. For TEM Inference + + ```shell + # Note: This could not be evaluated. + python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] + ``` + +2. For PGM Inference + + ```shell + python tools/misc/bsn_proposal_generation.py ${CONFIG_FILE} [--mode ${MODE}] + ``` + +3. For PEM Inference + + ```shell + python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] + ``` + +Examples: + +1. Inference BSN(TEM) with pretrained model. + + ```shell + python tools/test.py configs/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature.py checkpoints/SOME_CHECKPOINT.pth + ``` + +2. Inference BSN(PGM) with pretrained model. + + ```shell + python tools/misc/bsn_proposal_generation.py configs/localization/bsn/bsn_pgm_400x100_activitynet_feature.py --mode train + ``` + +3. Inference BSN(PEM) with evaluation metric 'AR@AN' and output the results. + + ```shell + # Note: If evaluated, then please make sure the annotation file for test data contains groundtruth. + python tools/test.py configs/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature.py checkpoints/SOME_CHECKPOINT.pth --eval AR@AN --out results.json + ``` + +## Test + +You can use the following commands to test a model. + +1. TEM + + ```shell + # Note: This could not be evaluated. + python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] + ``` + +2. PGM + + ```shell + python tools/misc/bsn_proposal_generation.py ${CONFIG_FILE} [--mode ${MODE}] + ``` + +3. PEM + + ```shell + python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] + ``` + +Examples: + +1. Test a TEM model on ActivityNet dataset. + + ```shell + python tools/test.py configs/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature.py checkpoints/SOME_CHECKPOINT.pth + ``` + +2. Test a PGM model on ActivityNet dataset. + + ```shell + python tools/misc/bsn_proposal_generation.py configs/localization/bsn/bsn_pgm_400x100_activitynet_feature.py --mode test + ``` + +3. Test a PEM model with with evaluation metric 'AR@AN' and output the results. + + ```shell + python tools/test.py configs/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature.py checkpoints/SOME_CHECKPOINT.pth --eval AR@AN --out results.json + ``` + +:::{note} + +1. (Optional) You can use the following command to generate a formatted proposal file, which will be fed into the action classifier (Currently supports only SSN and P-GCN, not including TSN, I3D etc.) to get the classification result of proposals. + + ```shell + python tools/data/activitynet/convert_proposal_format.py + ``` + +::: + +For more details and optional arguments infos, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@inproceedings{lin2018bsn, + title={Bsn: Boundary sensitive network for temporal action proposal generation}, + author={Lin, Tianwei and Zhao, Xu and Su, Haisheng and Wang, Chongjing and Yang, Ming}, + booktitle={Proceedings of the European Conference on Computer Vision (ECCV)}, + pages={3--19}, + year={2018} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/README_zh-CN.md new file mode 100644 index 00000000..14e6251a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/README_zh-CN.md @@ -0,0 +1,156 @@ +# BSN + +## 简介 + + + +```BibTeX +@inproceedings{lin2018bsn, + title={Bsn: Boundary sensitive network for temporal action proposal generation}, + author={Lin, Tianwei and Zhao, Xu and Su, Haisheng and Wang, Chongjing and Yang, Ming}, + booktitle={Proceedings of the European Conference on Computer Vision (ECCV)}, + pages={3--19}, + year={2018} +} +``` + +## 模型库 + +### ActivityNet feature + +| 配置文件 | 特征 | GPU 数量 | 预训练 | AR@100 | AUC | GPU 显存占用 (M) | 迭代时间 (s) | ckpt | log | json | +| :--------------------------------------- | :------------: | :------: | :----: | :----: | :---: | :--------------: | :-------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| bsn_400x100_1x16_20e_activitynet_feature | cuhk_mean_100 | 1 | None | 74.66 | 66.45 | 41(TEM)+25(PEM) | 0.074(TEM)+0.036(PEM) | [ckpt_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature/bsn_tem_400x100_1x16_20e_activitynet_feature_20200619-cd6accc3.pth) [ckpt_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature/bsn_pem_400x100_1x16_20e_activitynet_feature_20210203-1c27763d.pth) | [log_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature/bsn_tem_400x100_1x16_20e_activitynet_feature.log) [log_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature/bsn_pem_400x100_1x16_20e_activitynet_feature.log) | [json_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature/bsn_tem_400x100_1x16_20e_activitynet_feature.log.json) [json_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature/bsn_pem_400x100_1x16_20e_activitynet_feature.log.json) | +| | mmaction_video | 1 | None | 74.93 | 66.74 | 41(TEM)+25(PEM) | 0.074(TEM)+0.036(PEM) | [ckpt_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_video/bsn_tem_400x100_1x16_20e_mmaction_video_20200809-ad6ec626.pth) [ckpt_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_video/bsn_pem_400x100_1x16_20e_mmaction_video_20200809-aa861b26.pth) | [log_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_video/bsn_tem_400x100_1x16_20e_mmaction_video_20200809.log) [log_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_video/bsn_pem_400x100_1x16_20e_mmaction_video_20200809.log) | [json_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_video/bsn_tem_400x100_1x16_20e_mmaction_video_20200809.json) [json_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_video/bsn_pem_400x100_1x16_20e_mmaction_video_20200809.json) | +| | mmaction_clip | 1 | None | 75.19 | 66.81 | 41(TEM)+25(PEM) | 0.074(TEM)+0.036(PEM) | [ckpt_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_clip/bsn_tem_400x100_1x16_20e_mmaction_clip_20200809-0a563554.pth) [ckpt_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_clip/bsn_pem_400x100_1x16_20e_mmaction_clip_20200809-e32f61e6.pth) | [log_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_clip/bsn_tem_400x100_1x16_20e_mmaction_clip_20200809.log) [log_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_clip/bsn_pem_400x100_1x16_20e_mmaction_clip_20200809.log) | [json_tem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_clip/bsn_tem_400x100_1x16_20e_mmaction_clip_20200809.json) [json_pem](https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_clip/bsn_pem_400x100_1x16_20e_mmaction_clip_20200809.json) | + +注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +2. 对于 **特征** 这一列,`cuhk_mean_100` 表示所使用的特征为利用 [anet2016-cuhk](https://github.com/yjxiong/anet2016-cuhk) 代码库抽取的,被广泛利用的 CUHK ActivityNet 特征, + `mmaction_video` 和 `mmaction_clip` 分布表示所使用的特征为利用 MMAction 抽取的,视频级别 ActivityNet 预训练模型的特征;视频片段级别 ActivityNet 预训练模型的特征。 + +对于数据集准备的细节,用户可参考 [数据集准备文档](/docs_zh_CN/data_preparation.md) 中的 ActivityNet 特征部分。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如: + +1. 在 ActivityNet 特征上训练 BSN(TEM) 模型。 + + ```shell + python tools/train.py configs/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature.py + ``` + +2. 基于 PGM 的结果训练 BSN(PEM)。 + + ```shell + python tools/train.py configs/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature.py + ``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何进行推理 + +用户可以使用以下指令进行模型推理。 + +1. 推理 TEM 模型。 + + ```shell + # Note: This could not be evaluated. + python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] + ``` + +2. 推理 PGM 模型 + + ```shell + python tools/misc/bsn_proposal_generation.py ${CONFIG_FILE} [--mode ${MODE}] + ``` + +3. 推理 PEM 模型 + + ```shell + python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] + ``` + +例如 + +1. 利用预训练模型进行 BSN(TEM) 模型的推理。 + + ```shell + python tools/test.py configs/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature.py checkpoints/SOME_CHECKPOINT.pth + ``` + +2. 利用预训练模型进行 BSN(PGM) 模型的推理 + + ```shell + python tools/misc/bsn_proposal_generation.py configs/localization/bsn/bsn_pgm_400x100_activitynet_feature.py --mode train + ``` + +3. 推理 BSN(PEM) 模型,并计算 'AR@AN' 指标,输出结果文件。 + + ```shell + # 注:如果需要进行指标验证,需确测试数据的保标注文件包含真实标签 + python tools/test.py configs/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature.py checkpoints/SOME_CHECKPOINT.pth --eval AR@AN --out results.json + ``` + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +1. TEM + + ```shell + # 注:该命令无法进行指标验证 + python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] + ``` + +2. PGM + + ```shell + python tools/misc/bsn_proposal_generation.py ${CONFIG_FILE} [--mode ${MODE}] + ``` + +3. PEM + + ```shell + python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] + ``` + +例如: + +1. 在 ActivityNet 数据集上测试 TEM 模型。 + + ```shell + python tools/test.py configs/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature.py checkpoints/SOME_CHECKPOINT.pth + ``` + +2. 在 ActivityNet 数据集上测试 PGM 模型。 + + ```shell + python tools/misc/bsn_proposal_generation.py configs/localization/bsn/bsn_pgm_400x100_activitynet_feature.py --mode test + ``` + +3. 测试 PEM 模型,并计算 'AR@AN' 指标,输出结果文件。 + + ```shell + python tools/test.py configs/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature.py checkpoints/SOME_CHECKPOINT.pth --eval AR@AN --out results.json + ``` + +注: + +1. (可选项) 用户可以使用以下指令生成格式化的时序动作候选文件,该文件可被送入动作识别器中(目前只支持 SSN 和 P-GCN,不包括 TSN, I3D 等),以获得时序动作候选的分类结果。 + + ```shell + python tools/data/activitynet/convert_proposal_format.py + ``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature.py b/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature.py new file mode 100644 index 00000000..429d2284 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature.py @@ -0,0 +1,95 @@ +_base_ = [ + '../../_base_/models/bsn_pem.py', '../../_base_/schedules/adam_20e.py', + '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'ActivityNetDataset' +data_root = 'data/ActivityNet/activitynet_feature_cuhk/csv_mean_100/' +data_root_val = 'data/ActivityNet/activitynet_feature_cuhk/csv_mean_100/' +ann_file_train = 'data/ActivityNet/anet_anno_train.json' +ann_file_val = 'data/ActivityNet/anet_anno_val.json' +ann_file_test = 'data/ActivityNet/anet_anno_val.json' + +work_dir = 'work_dirs/bsn_400x100_20e_1x16_activitynet_feature/' +pgm_proposals_dir = f'{work_dir}/pgm_proposals/' +pgm_features_dir = f'{work_dir}/pgm_features/' + +test_pipeline = [ + dict( + type='LoadProposals', + top_k=1000, + pgm_proposals_dir=pgm_proposals_dir, + pgm_features_dir=pgm_features_dir), + dict( + type='Collect', + keys=['bsp_feature', 'tmin', 'tmax', 'tmin_score', 'tmax_score'], + meta_name='video_meta', + meta_keys=[ + 'video_name', 'duration_second', 'duration_frame', 'annotations', + 'feature_frame' + ]), + dict(type='ToTensor', keys=['bsp_feature']) +] + +train_pipeline = [ + dict( + type='LoadProposals', + top_k=500, + pgm_proposals_dir=pgm_proposals_dir, + pgm_features_dir=pgm_features_dir), + dict( + type='Collect', + keys=['bsp_feature', 'reference_temporal_iou'], + meta_name='video_meta', + meta_keys=[]), + dict(type='ToTensor', keys=['bsp_feature', 'reference_temporal_iou']), + dict( + type='ToDataContainer', + fields=(dict(key='bsp_feature', stack=False), + dict(key='reference_temporal_iou', stack=False))) +] + +val_pipeline = [ + dict( + type='LoadProposals', + top_k=1000, + pgm_proposals_dir=pgm_proposals_dir, + pgm_features_dir=pgm_features_dir), + dict( + type='Collect', + keys=['bsp_feature', 'tmin', 'tmax', 'tmin_score', 'tmax_score'], + meta_name='video_meta', + meta_keys=[ + 'video_name', 'duration_second', 'duration_frame', 'annotations', + 'feature_frame' + ]), + dict(type='ToTensor', keys=['bsp_feature']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=8, + train_dataloader=dict(drop_last=True), + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + pipeline=test_pipeline, + data_prefix=data_root_val), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + pipeline=val_pipeline, + data_prefix=data_root_val), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + pipeline=train_pipeline, + data_prefix=data_root)) +evaluation = dict(interval=1, metrics=['AR@AN']) + +# runtime settings +checkpoint_config = dict(interval=1, filename_tmpl='pem_epoch_{}.pth') +log_config = dict(interval=50, hooks=[dict(type='TextLoggerHook')]) +output_config = dict(out=f'{work_dir}/results.json', output_format='json') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/bsn_pgm_400x100_activitynet_feature.py b/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/bsn_pgm_400x100_activitynet_feature.py new file mode 100644 index 00000000..2c5f7a03 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/bsn_pgm_400x100_activitynet_feature.py @@ -0,0 +1,32 @@ +# dataset settings +dataset_type = 'ActivityNetDataset' +data_root = 'data/ActivityNet/activitynet_feature_cuhk/csv_mean_100/' +data_root_val = 'data/ActivityNet/activitynet_feature_cuhk/csv_mean_100/' +ann_file_train = 'data/ActivityNet/anet_anno_train.json' +ann_file_val = 'data/ActivityNet/anet_anno_val.json' +ann_file_test = 'data/ActivityNet/anet_anno_test.json' + +work_dir = 'work_dirs/bsn_400x100_20e_1x16_activitynet_feature/' +tem_results_dir = f'{work_dir}/tem_results/' +pgm_proposals_dir = f'{work_dir}/pgm_proposals/' +pgm_features_dir = f'{work_dir}/pgm_features/' + +temporal_scale = 100 +pgm_proposals_cfg = dict( + pgm_proposals_thread=8, temporal_scale=temporal_scale, peak_threshold=0.5) +pgm_features_test_cfg = dict( + pgm_features_thread=4, + top_k=1000, + num_sample_start=8, + num_sample_end=8, + num_sample_action=16, + num_sample_interp=3, + bsp_boundary_ratio=0.2) +pgm_features_train_cfg = dict( + pgm_features_thread=4, + top_k=500, + num_sample_start=8, + num_sample_end=8, + num_sample_action=16, + num_sample_interp=3, + bsp_boundary_ratio=0.2) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature.py b/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature.py new file mode 100644 index 00000000..60093cf4 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature.py @@ -0,0 +1,79 @@ +_base_ = ['../../_base_/models/bsn_tem.py', '../../_base_/default_runtime.py'] + +# dataset settings +dataset_type = 'ActivityNetDataset' +data_root = 'data/ActivityNet/activitynet_feature_cuhk/csv_mean_100/' +data_root_val = 'data/ActivityNet/activitynet_feature_cuhk/csv_mean_100/' +ann_file_train = 'data/ActivityNet/anet_anno_train.json' +ann_file_val = 'data/ActivityNet/anet_anno_val.json' +ann_file_test = 'data/ActivityNet/anet_anno_full.json' + +test_pipeline = [ + dict(type='LoadLocalizationFeature'), + dict( + type='Collect', + keys=['raw_feature'], + meta_name='video_meta', + meta_keys=['video_name']), + dict(type='ToTensor', keys=['raw_feature']) +] +train_pipeline = [ + dict(type='LoadLocalizationFeature'), + dict(type='GenerateLocalizationLabels'), + dict( + type='Collect', + keys=['raw_feature', 'gt_bbox'], + meta_name='video_meta', + meta_keys=['video_name']), + dict(type='ToTensor', keys=['raw_feature', 'gt_bbox']), + dict(type='ToDataContainer', fields=[dict(key='gt_bbox', stack=False)]) +] +val_pipeline = [ + dict(type='LoadLocalizationFeature'), + dict(type='GenerateLocalizationLabels'), + dict( + type='Collect', + keys=['raw_feature', 'gt_bbox'], + meta_name='video_meta', + meta_keys=['video_name']), + dict(type='ToTensor', keys=['raw_feature', 'gt_bbox']), + dict(type='ToDataContainer', fields=[dict(key='gt_bbox', stack=False)]) +] + +data = dict( + videos_per_gpu=16, + workers_per_gpu=8, + train_dataloader=dict(drop_last=True), + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + pipeline=test_pipeline, + data_prefix=data_root_val), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + pipeline=val_pipeline, + data_prefix=data_root_val), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + pipeline=train_pipeline, + data_prefix=data_root)) + +# optimizer +optimizer = dict( + type='Adam', lr=0.001, weight_decay=0.0001) # this lr is used for 1 gpus +optimizer_config = dict(grad_clip=None) +# learning policy +lr_config = dict(policy='step', step=7) +total_epochs = 20 + +# runtime settings +checkpoint_config = dict(interval=1, filename_tmpl='tem_epoch_{}.pth') +log_config = dict(interval=50, hooks=[dict(type='TextLoggerHook')]) +workflow = [('train', 1), ('val', 1)] +work_dir = 'work_dirs/bsn_400x100_20e_1x16_activitynet_feature/' +tem_results_dir = f'{work_dir}/tem_results/' +output_config = dict(out=tem_results_dir, output_format='csv') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/metafile.yml new file mode 100644 index 00000000..e1bddeb9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/localization/bsn/metafile.yml @@ -0,0 +1,85 @@ +Collections: +- Name: BSN + README: configs/localization/bsn/README.md + Paper: + URL: https://arxiv.org/abs/1806.02964 + Title: "BSN: Boundary Sensitive Network for Temporal Action Proposal Generation" +Models: +- Config: + - configs/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature.py + - configs/localization/bsn/bsn_pgm_400x100_activitynet_feature.py + - configs/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature.py + In Collection: BSN + Metadata: + Pretrained: None + Training Data: ActivityNet v1.3 + Training Resources: 1 GPUs + feature: cuhk_mean_100 + Name: bsn_400x100_1x16_20e_activitynet_feature (cuhk_mean_100) + Results: + - Dataset: ActivityNet v1.3 + Metrics: + AR@100: 74.66 + AUC: 66.45 + Task: Temporal Action Localization + Training Json Log: + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature/bsn_tem_400x100_1x16_20e_activitynet_feature.log.json + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature/bsn_pem_400x100_1x16_20e_activitynet_feature.log.json + Training Log: + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature/bsn_tem_400x100_1x16_20e_activitynet_feature.log + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature/bsn_pem_400x100_1x16_20e_activitynet_feature.log + Weights: + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature/bsn_tem_400x100_1x16_20e_activitynet_feature_20200619-cd6accc3.pth + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature/bsn_pem_400x100_1x16_20e_activitynet_feature_20210203-1c27763d.pth +- Config: + - configs/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature.py + - configs/localization/bsn/bsn_pgm_400x100_activitynet_feature.py + - configs/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature.py + In Collection: BSN + Metadata: + Pretrained: None + Training Data: ActivityNet v1.3 + Training Resources: 1 GPUs + feature: mmaction_video + Name: bsn_400x100_1x16_20e_activitynet_feature (mmaction_video) + Results: + - Dataset: ActivityNet v1.3 + Metrics: + AR@100: 74.93 + AUC: 66.74 + Task: Temporal Action Localization + Training Json Log: + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_video/bsn_tem_400x100_1x16_20e_mmaction_video_20200809.json + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_video/bsn_pem_400x100_1x16_20e_mmaction_video_20200809.json + Training Log: + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_video/bsn_tem_400x100_1x16_20e_mmaction_video_20200809.log + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_video/bsn_pem_400x100_1x16_20e_mmaction_video_20200809.log + Weights: + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_video/bsn_tem_400x100_1x16_20e_mmaction_video_20200809-ad6ec626.pth + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_video/bsn_pem_400x100_1x16_20e_mmaction_video_20200809-aa861b26.pth +- Config: + - configs/localization/bsn/bsn_pem_400x100_1x16_20e_activitynet_feature.py + - configs/localization/bsn/bsn_pgm_400x100_activitynet_feature.py + - configs/localization/bsn/bsn_tem_400x100_1x16_20e_activitynet_feature.py + In Collection: BSN + Metadata: + Pretrained: None + Training Data: ActivityNet v1.3 + Training Resources: 1 GPUs + feature: mmaction_clip + Name: bsn_400x100_1x16_20e_activitynet_feature (mmaction_clip) + Results: + - Dataset: ActivityNet v1.3 + Metrics: + AR@100: 75.19 + AUC: 66.81 + Task: Temporal Action Localization + Training Json Log: + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_clip/bsn_tem_400x100_1x16_20e_mmaction_clip_20200809.json + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_clip/bsn_pem_400x100_1x16_20e_mmaction_clip_20200809.json + Training Log: + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_clip/bsn_tem_400x100_1x16_20e_mmaction_clip_20200809.log + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_clip/bsn_pem_400x100_1x16_20e_mmaction_clip_20200809.log + Weights: + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_tem_400x100_1x16_20e_mmaction_clip/bsn_tem_400x100_1x16_20e_mmaction_clip_20200809-0a563554.pth + - https://download.openmmlab.com/mmaction/localization/bsn/bsn_pem_400x100_1x16_20e_mmaction_clip/bsn_pem_400x100_1x16_20e_mmaction_clip_20200809-e32f61e6.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/README.md b/openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/README.md new file mode 100644 index 00000000..7eb73213 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/README.md @@ -0,0 +1,79 @@ +# SSN + +[Temporal Action Detection With Structured Segment Networks](https://openaccess.thecvf.com/content_iccv_2017/html/Zhao_Temporal_Action_Detection_ICCV_2017_paper.html) + + + +## Abstract + + + +Detecting actions in untrimmed videos is an important yet challenging task. In this paper, we present the structured segment network (SSN), a novel framework which models the temporal structure of each action instance via a structured temporal pyramid. On top of the pyramid, we further introduce a decomposed discriminative model comprising two classifiers, respectively for classifying actions and determining completeness. This allows the framework to effectively distinguish positive proposals from background or incomplete ones, thus leading to both accurate recognition and localization. These components are integrated into a unified network that can be efficiently trained in an end-to-end fashion. Additionally, a simple yet effective temporal action proposal scheme, dubbed temporal actionness grouping (TAG) is devised to generate high quality action proposals. On two challenging benchmarks, THUMOS14 and ActivityNet, our method remarkably outperforms previous state-of-the-art methods, demonstrating superior accuracy and strong adaptivity in handling actions with various temporal structures. + + + +
+ +
+ +## Results and Models + +| config | gpus | backbone | pretrain | mAP@0.3 | mAP@0.4 | mAP@0.5 | reference mAP@0.3 | reference mAP@0.4 | reference mAP@0.5 | gpu_mem(M) | ckpt | log | json | reference ckpt | reference json | +| :---------------------------------------------------------------------------------------: | :--: | :------: | :------: | :-----: | :-----: | :-----: | :---------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------: | :--------: | :----------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------: | +| [ssn_r50_450e_thumos14_rgb](/configs/localization/ssn/ssn_r50_450e_thumos14_rgb_train.py) | 8 | ResNet50 | ImageNet | 29.37 | 22.15 | 15.69 | [27.61](https://github.com/open-mmlab/mmaction/tree/c7e3b7c11fb94131be9b48a8e3d510589addc3ce#Get%20started) | [21.28](https://github.com/open-mmlab/mmaction/tree/c7e3b7c11fb94131be9b48a8e3d510589addc3ce#Get%20started) | [14.57](https://github.com/open-mmlab/mmaction/tree/c7e3b7c11fb94131be9b48a8e3d510589addc3ce#Get%20started) | 6352 | [ckpt](https://download.openmmlab.com/mmaction/localization/ssn/ssn_r50_450e_thumos14_rgb/ssn_r50_450e_thumos14_rgb_20201012-1920ab16.pth) | [log](https://download.openmmlab.com/mmaction/localization/ssn/ssn_r50_450e_thumos14_rgb/20201005_144656.log) | [json](https://download.openmmlab.com/mmaction/localization/ssn/ssn_r50_450e_thumos14_rgb/20201005_144656.log.json) | [ckpt](https://download.openmmlab.com/mmaction/localization/ssn/mmaction_reference/ssn_r50_450e_thumos14_rgb_ref/ssn_r50_450e_thumos14_rgb_ref_20201014-b6f48f68.pth) | [json](https://download.openmmlab.com/mmaction/localization/ssn/mmaction_reference/ssn_r50_450e_thumos14_rgb_ref/20201008_103258.log.json) | + +:::{note} + +1. The **gpus** indicates the number of gpu we used to get the checkpoint. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. +2. Since SSN utilizes different structured temporal pyramid pooling methods at training and testing, please refer to [ssn_r50_450e_thumos14_rgb_train](/configs/localization/ssn/ssn_r50_450e_thumos14_rgb_train.py) at training and [ssn_r50_450e_thumos14_rgb_test](/configs/localization/ssn/ssn_r50_450e_thumos14_rgb_test.py) at testing. +3. We evaluate the action detection performance of SSN, using action proposals of TAG. For more details on data preparation, you can refer to thumos14 TAG proposals in [Data Preparation](/docs/data_preparation.md). +4. The reference SSN in is evaluated with `ResNet50` backbone in MMAction, which is the same backbone with ours. Note that the original setting of MMAction SSN uses the `BNInception` backbone. + +::: + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train SSN model on thumos14 dataset. + +```shell +python tools/train.py configs/localization/ssn/ssn_r50_450e_thumos14_rgb_train.py +``` + +For more details and optional arguments infos, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test BMN on ActivityNet feature dataset. + +```shell +# Note: If evaluated, then please make sure the annotation file for test data contains groundtruth. +python tools/test.py configs/localization/ssn/ssn_r50_450e_thumos14_rgb_test.py checkpoints/SOME_CHECKPOINT.pth --eval mAP +``` + +For more details and optional arguments infos, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@InProceedings{Zhao_2017_ICCV, +author = {Zhao, Yue and Xiong, Yuanjun and Wang, Limin and Wu, Zhirong and Tang, Xiaoou and Lin, Dahua}, +title = {Temporal Action Detection With Structured Segment Networks}, +booktitle = {Proceedings of the IEEE International Conference on Computer Vision (ICCV)}, +month = {Oct}, +year = {2017} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/README_zh-CN.md new file mode 100644 index 00000000..62ccc2ca --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/README_zh-CN.md @@ -0,0 +1,63 @@ +# SSN + +## 简介 + + + +```BibTeX +@InProceedings{Zhao_2017_ICCV, +author = {Zhao, Yue and Xiong, Yuanjun and Wang, Limin and Wu, Zhirong and Tang, Xiaoou and Lin, Dahua}, +title = {Temporal Action Detection With Structured Segment Networks}, +booktitle = {Proceedings of the IEEE International Conference on Computer Vision (ICCV)}, +month = {Oct}, +year = {2017} +} +``` + +## 模型库 + +| 配置文件 | GPU 数量 | 主干网络 | 预训练 | mAP@0.3 | mAP@0.4 | mAP@0.5 | 参考代码的 mAP@0.3 | 参考代码的 mAP@0.4 | 参考代码的 mAP@0.5 | GPU 显存占用 (M) | ckpt | log | json | 参考代码的 ckpt | 参考代码的 json | +| :---------------------------------------------------------------------------------------: | :------: | :------: | :------: | :-----: | :-----: | :-----: | :---------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------: | :--------------: | :----------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------: | +| [ssn_r50_450e_thumos14_rgb](/configs/localization/ssn/ssn_r50_450e_thumos14_rgb_train.py) | 8 | ResNet50 | ImageNet | 29.37 | 22.15 | 15.69 | [27.61](https://github.com/open-mmlab/mmaction/tree/c7e3b7c11fb94131be9b48a8e3d510589addc3ce#Get%20started) | [21.28](https://github.com/open-mmlab/mmaction/tree/c7e3b7c11fb94131be9b48a8e3d510589addc3ce#Get%20started) | [14.57](https://github.com/open-mmlab/mmaction/tree/c7e3b7c11fb94131be9b48a8e3d510589addc3ce#Get%20started) | 6352 | [ckpt](https://download.openmmlab.com/mmaction/localization/ssn/ssn_r50_450e_thumos14_rgb/ssn_r50_450e_thumos14_rgb_20201012-1920ab16.pth) | [log](https://download.openmmlab.com/mmaction/localization/ssn/ssn_r50_450e_thumos14_rgb/20201005_144656.log) | [json](https://download.openmmlab.com/mmaction/localization/ssn/ssn_r50_450e_thumos14_rgb/20201005_144656.log.json) | [ckpt](https://download.openmmlab.com/mmaction/localization/ssn/mmaction_reference/ssn_r50_450e_thumos14_rgb_ref/ssn_r50_450e_thumos14_rgb_ref_20201014-b6f48f68.pth) | [json](https://download.openmmlab.com/mmaction/localization/ssn/mmaction_reference/ssn_r50_450e_thumos14_rgb_ref/20201008_103258.log.json) | + +注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +2. 由于 SSN 在训练和测试阶段使用不同的结构化时序金字塔池化方法(structured temporal pyramid pooling methods),请分别参考 [ssn_r50_450e_thumos14_rgb_train](/configs/localization/ssn/ssn_r50_450e_thumos14_rgb_train.py) 和 [ssn_r50_450e_thumos14_rgb_test](/configs/localization/ssn/ssn_r50_450e_thumos14_rgb_test.py)。 +3. MMAction2 使用 TAG 的时序动作候选进行 SSN 模型的精度验证。关于数据准备的更多细节,用户可参考 [Data 数据集准备文档](/docs_zh_CN/data_preparation.md) 准备 thumos14 的 TAG 时序动作候选。 +4. 参考代码的 SSN 模型是和 MMAction2 一样在 `ResNet50` 主干网络上验证的。注意,这里的 SSN 的初始设置与原代码库的 `BNInception` 骨干网络的设置相同。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:在 thumos14 数据集上训练 SSN 模型。 + +```shell +python tools/train.py configs/localization/ssn/ssn_r50_450e_thumos14_rgb_train.py +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 ActivityNet 特征上测试 BMN。 + +```shell +# 注:如果需要进行指标验证,需确测试数据的保标注文件包含真实标签 +python tools/test.py configs/localization/ssn/ssn_r50_450e_thumos14_rgb_test.py checkpoints/SOME_CHECKPOINT.pth --eval mAP +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/metafile.yml new file mode 100644 index 00000000..d2b58800 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/metafile.yml @@ -0,0 +1,30 @@ +Collections: +- Name: SSN + README: configs/localization/ssn/README.md + Paper: + URL: https://arxiv.org/abs/1704.06228 + Title: Temporal Action Detection with Structured Segment Networks +Models: +- Config: configs/localization/ssn/ssn_r50_450e_thumos14_rgb_train.py + In Collection: SSN + Metadata: + Architecture: ResNet50 + Pretrained: ImageNet + Training Data: THUMOS 14 + Training Resources: 8 GPUs + Name: ssn_r50_450e_thumos14_rgb + Results: + - Dataset: THUMOS 14 + Metrics: + mAP@0.3: 29.37 + mAP@0.4: 22.15 + mAP@0.5: 15.69 + Task: Temporal Action Localization + Training Json Log: https://download.openmmlab.com/mmaction/localization/ssn/ssn_r50_450e_thumos14_rgb/20201005_144656.log.json + Training Log: https://download.openmmlab.com/mmaction/localization/ssn/ssn_r50_450e_thumos14_rgb/20201005_144656.log + Weights: https://download.openmmlab.com/mmaction/localization/ssn/ssn_r50_450e_thumos14_rgb/ssn_r50_450e_thumos14_rgb_20201012-1920ab16.pth + reference mAP@0.3: '[27.61](https://github.com/open-mmlab/mmaction/tree/c7e3b7c11fb94131be9b48a8e3d510589addc3ce#Get%20started)' + reference mAP@0.4: '[21.28](https://github.com/open-mmlab/mmaction/tree/c7e3b7c11fb94131be9b48a8e3d510589addc3ce#Get%20started)' + reference mAP@0.5: '[14.57](https://github.com/open-mmlab/mmaction/tree/c7e3b7c11fb94131be9b48a8e3d510589addc3ce#Get%20started)' + reference ckpt: '[ckpt](https://download.openmmlab.com/mmaction/localization/ssn/mmaction_reference/ssn_r50_450e_thumos14_rgb_ref/ssn_r50_450e_thumos14_rgb_ref_20201014-b6f48f68.pth)' + reference json: '[json](https://download.openmmlab.com/mmaction/localization/ssn/mmaction_reference/ssn_r50_450e_thumos14_rgb_ref/20201008_103258.log.json)' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/ssn_r50_450e_thumos14_rgb_test.py b/openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/ssn_r50_450e_thumos14_rgb_test.py new file mode 100644 index 00000000..b9ed3979 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/ssn_r50_450e_thumos14_rgb_test.py @@ -0,0 +1,109 @@ +# model training and testing settings +train_cfg_ = dict( + ssn=dict( + assigner=dict( + positive_iou_threshold=0.7, + background_iou_threshold=0.01, + incomplete_iou_threshold=0.3, + background_coverage_threshold=0.02, + incomplete_overlap_threshold=0.01), + sampler=dict( + num_per_video=8, + positive_ratio=1, + background_ratio=1, + incomplete_ratio=6, + add_gt_as_proposals=True), + loss_weight=dict(comp_loss_weight=0.1, reg_loss_weight=0.1), + debug=False)) +test_cfg_ = dict( + ssn=dict( + sampler=dict(test_interval=6, batch_size=16), + evaluater=dict( + top_k=2000, + nms=0.2, + softmax_before_filter=True, + cls_score_dict=None, + cls_top_k=2))) +# model settings +model = dict( + type='SSN', + backbone=dict( + type='ResNet', + pretrained='torchvision://resnet50', + depth=50, + norm_eval=False, + partial_bn=True), + spatial_type='avg', + dropout_ratio=0.8, + cls_head=dict( + type='SSNHead', + dropout_ratio=0., + in_channels=2048, + num_classes=20, + consensus=dict(type='STPPTest', stpp_stage=(1, 1, 1)), + use_regression=True), + test_cfg=test_cfg_) +# dataset settings +dataset_type = 'SSNDataset' +data_root = './data/thumos14/rawframes/' +data_root_val = './data/thumos14/rawframes/' +ann_file_train = 'data/thumos14/thumos14_tag_val_proposal_list.txt' +ann_file_val = 'data/thumos14/thumos14_tag_val_proposal_list.txt' +ann_file_test = 'data/thumos14/thumos14_tag_test_proposal_list.txt' +img_norm_cfg = dict(mean=[104, 117, 128], std=[1, 1, 1], to_bgr=True) +test_pipeline = [ + dict( + type='SampleProposalFrames', + clip_len=1, + body_segments=5, + aug_segments=(2, 2), + aug_ratio=0.5, + mode='test'), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(340, 256), keep_ratio=True), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict( + type='Collect', + keys=[ + 'imgs', 'relative_proposal_list', 'scale_factor_list', + 'proposal_tick_list', 'reg_norm_consts' + ], + meta_keys=[]), + dict( + type='ToTensor', + keys=[ + 'imgs', 'relative_proposal_list', 'scale_factor_list', + 'proposal_tick_list', 'reg_norm_consts' + ]) +] +data = dict( + videos_per_gpu=1, + workers_per_gpu=2, + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root, + train_cfg=train_cfg_, + test_cfg=test_cfg_, + aug_ratio=0.5, + test_mode=True, + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.001, momentum=0.9, + weight_decay=1e-6) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[200, 400]) +checkpoint_config = dict(interval=5) +log_config = dict(interval=5, hooks=[dict(type='TextLoggerHook')]) +# runtime settings +total_epochs = 450 +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/ssn_r50_1x5_450e_thumos14_rgb' +load_from = None +resume_from = None +workflow = [('train', 1)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/ssn_r50_450e_thumos14_rgb_train.py b/openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/ssn_r50_450e_thumos14_rgb_train.py new file mode 100644 index 00000000..75d927a7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/localization/ssn/ssn_r50_450e_thumos14_rgb_train.py @@ -0,0 +1,154 @@ +# model training and testing settings +train_cfg_ = dict( + ssn=dict( + assigner=dict( + positive_iou_threshold=0.7, + background_iou_threshold=0.01, + incomplete_iou_threshold=0.3, + background_coverage_threshold=0.02, + incomplete_overlap_threshold=0.01), + sampler=dict( + num_per_video=8, + positive_ratio=1, + background_ratio=1, + incomplete_ratio=6, + add_gt_as_proposals=True), + loss_weight=dict(comp_loss_weight=0.1, reg_loss_weight=0.1), + debug=False)) +test_cfg_ = dict( + ssn=dict( + sampler=dict(test_interval=6, batch_size=16), + evaluater=dict( + top_k=2000, + nms=0.2, + softmax_before_filter=True, + cls_score_dict=None, + cls_top_k=2))) +# model settings +model = dict( + type='SSN', + backbone=dict( + type='ResNet', + pretrained='torchvision://resnet50', + depth=50, + norm_eval=False, + partial_bn=True), + spatial_type='avg', + dropout_ratio=0.8, + loss_cls=dict(type='SSNLoss'), + cls_head=dict( + type='SSNHead', + dropout_ratio=0., + in_channels=2048, + num_classes=20, + consensus=dict( + type='STPPTrain', + stpp_stage=(1, 1, 1), + num_segments_list=(2, 5, 2)), + use_regression=True), + train_cfg=train_cfg_) +# dataset settings +dataset_type = 'SSNDataset' +data_root = './data/thumos14/rawframes/' +data_root_val = './data/thumos14/rawframes/' +ann_file_train = 'data/thumos14/thumos14_tag_val_proposal_list.txt' +ann_file_val = 'data/thumos14/thumos14_tag_val_proposal_list.txt' +ann_file_test = 'data/thumos14/thumos14_tag_test_proposal_list.txt' +img_norm_cfg = dict(mean=[104, 117, 128], std=[1, 1, 1], to_bgr=True) +train_pipeline = [ + dict( + type='SampleProposalFrames', + clip_len=1, + body_segments=5, + aug_segments=(2, 2), + aug_ratio=0.5), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(340, 256), keep_ratio=True), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NPTCHW'), + dict( + type='Collect', + keys=[ + 'imgs', 'reg_targets', 'proposal_scale_factor', 'proposal_labels', + 'proposal_type' + ], + meta_keys=[]), + dict( + type='ToTensor', + keys=[ + 'imgs', 'reg_targets', 'proposal_scale_factor', 'proposal_labels', + 'proposal_type' + ]) +] +val_pipeline = [ + dict( + type='SampleProposalFrames', + clip_len=1, + body_segments=5, + aug_segments=(2, 2), + aug_ratio=0.5), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(340, 256), keep_ratio=True), + dict(type='CenterCrop', crop_size=224), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NPTCHW'), + dict( + type='Collect', + keys=[ + 'imgs', 'reg_targets', 'proposal_scale_factor', 'proposal_labels', + 'proposal_type' + ], + meta_keys=[]), + dict( + type='ToTensor', + keys=[ + 'imgs', 'reg_targets', 'proposal_scale_factor', 'proposal_labels', + 'proposal_type' + ]) +] +data = dict( + videos_per_gpu=1, + workers_per_gpu=2, + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + train_cfg=train_cfg_, + test_cfg=test_cfg_, + body_segments=5, + aug_segments=(2, 2), + aug_ratio=0.5, + test_mode=False, + verbose=True, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root, + train_cfg=train_cfg_, + test_cfg=test_cfg_, + body_segments=5, + aug_segments=(2, 2), + aug_ratio=0.5, + test_mode=False, + pipeline=val_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.001, momentum=0.9, + weight_decay=1e-6) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[200, 400]) +checkpoint_config = dict(interval=5) +log_config = dict(interval=1, hooks=[dict(type='TextLoggerHook')]) +# runtime settings +total_epochs = 450 +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/ssn_r50_1x5_450e_thumos14_rgb' +load_from = None +resume_from = None +workflow = [('train', 1)] +find_unused_parameters = True diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/c3d/README.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/c3d/README.md new file mode 100644 index 00000000..859890c1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/c3d/README.md @@ -0,0 +1,87 @@ +# C3D + +[Learning Spatiotemporal Features with 3D Convolutional Networks](https://openaccess.thecvf.com/content_iccv_2015/html/Tran_Learning_Spatiotemporal_Features_ICCV_2015_paper.html) + + + +## Abstract + + + +We propose a simple, yet effective approach for spatiotemporal feature learning using deep 3-dimensional convolutional networks (3D ConvNets) trained on a large scale supervised video dataset. Our findings are three-fold: 1) 3D ConvNets are more suitable for spatiotemporal feature learning compared to 2D ConvNets; 2) A homogeneous architecture with small 3x3x3 convolution kernels in all layers is among the best performing architectures for 3D ConvNets; and 3) Our learned features, namely C3D (Convolutional 3D), with a simple linear classifier outperform state-of-the-art methods on 4 different benchmarks and are comparable with current best methods on the other 2 benchmarks. In addition, the features are compact: achieving 52.8% accuracy on UCF101 dataset with only 10 dimensions and also very efficient to compute due to the fast inference of ConvNets. Finally, they are conceptually very simple and easy to train and use. + + + +
+ +
+ +## Results and Models + +### UCF-101 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | testing protocol | inference_time(video/s) | gpu_mem(M) | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------ | :--------: | :--: | :------: | :------: | :------: | :------: | :---------------: | :---------------------: | :--------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------: | +| [c3d_sports1m_16x1x1_45e_ucf101_rgb.py](/configs/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb.py) | 128x171 | 8 | c3d | sports1m | 83.27 | 95.90 | 10 clips x 1 crop | x | 6053 | [ckpt](https://download.openmmlab.com/mmaction/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb/c3d_sports1m_16x1x1_45e_ucf101_rgb_20201021-26655025.pth) | [log](https://download.openmmlab.com/mmaction/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb/20201021_140429.log) | [json](https://download.openmmlab.com/mmaction/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb/20201021_140429.log.json) | + +:::{note} + +1. The author of C3D normalized UCF-101 with volume mean and used SVM to classify videos, while we normalized the dataset with RGB mean value and used a linear classifier. +2. The **gpus** indicates the number of gpu (32G V100) we used to get the checkpoint. It is noteworthy that the configs we provide are used for 8 gpus as default. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. +3. The **inference_time** is got by this [benchmark script](/tools/analysis/benchmark.py), where we use the sampling frames strategy of the test setting and only care about the model inference time, + not including the IO time and pre-processing time. For each setting, we use 1 gpu and set batch size (videos per gpu) to 1 to calculate the inference time. + +::: + +For more details on data preparation, you can refer to UCF-101 in [Data Preparation](/docs/data_preparation.md). + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train C3D model on UCF-101 dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb.py \ + --validate --seed 0 --deterministic +``` + +For more details, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test C3D model on UCF-101 dataset and dump the result to a json file. + +```shell +python tools/test.py configs/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + + + +```BibTeX +@ARTICLE{2014arXiv1412.0767T, +author = {Tran, Du and Bourdev, Lubomir and Fergus, Rob and Torresani, Lorenzo and Paluri, Manohar}, +title = {Learning Spatiotemporal Features with 3D Convolutional Networks}, +keywords = {Computer Science - Computer Vision and Pattern Recognition}, +year = 2014, +month = dec, +eid = {arXiv:1412.0767} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/c3d/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/c3d/README_zh-CN.md new file mode 100644 index 00000000..3344f7d0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/c3d/README_zh-CN.md @@ -0,0 +1,69 @@ +# C3D + +## 简介 + + + +```BibTeX +@ARTICLE{2014arXiv1412.0767T, +author = {Tran, Du and Bourdev, Lubomir and Fergus, Rob and Torresani, Lorenzo and Paluri, Manohar}, +title = {Learning Spatiotemporal Features with 3D Convolutional Networks}, +keywords = {Computer Science - Computer Vision and Pattern Recognition}, +year = 2014, +month = dec, +eid = {arXiv:1412.0767} +} +``` + +## 模型库 + +### UCF-101 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 测试方案 | 推理时间 (video/s) | GPU 显存占用 (M) | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------ | :-----: | :------: | :------: | :------: | :---------: | :---------: | :---------------: | :----------------: | :--------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------: | +| [c3d_sports1m_16x1x1_45e_ucf101_rgb.py](/configs/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb.py) | 128x171 | 8 | c3d | sports1m | 83.27 | 95.90 | 10 clips x 1 crop | x | 6053 | [ckpt](https://download.openmmlab.com/mmaction/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb/c3d_sports1m_16x1x1_45e_ucf101_rgb_20201021-26655025.pth) | [log](https://download.openmmlab.com/mmaction/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb/20201021_140429.log) | [json](https://download.openmmlab.com/mmaction/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb/20201021_140429.log.json) | + +注: + +1. C3D 的原论文使用 UCF-101 的数据均值进行数据正则化,并且使用 SVM 进行视频分类。MMAction2 使用 ImageNet 的 RGB 均值进行数据正则化,并且使用线性分类器。 +2. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +3. 这里的 **推理时间** 是根据 [基准测试脚本](/tools/analysis/benchmark.py) 获得的,采用测试时的采帧策略,且只考虑模型的推理时间, + 并不包括 IO 时间以及预处理时间。对于每个配置,MMAction2 使用 1 块 GPU 并设置批大小(每块 GPU 处理的视频个数)为 1 来计算推理时间。 + +对于数据集准备的细节,用户可参考 [数据集准备文档](/docs_zh_CN/data_preparation.md) 中的 UCF-101 部分。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:以一个确定性的训练方式,辅以定期的验证过程进行 C3D 模型在 UCF-101 数据集上的训练。 + +```shell +python tools/train.py configs/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb.py \ + --validate --seed 0 --deterministic +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 UCF-101 数据集上测试 C3D 模型,并将结果导出为一个 json 文件。 + +```shell +python tools/test.py configs/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb.py new file mode 100644 index 00000000..cd96fca8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb.py @@ -0,0 +1,95 @@ +_base_ = '../../_base_/models/c3d_sports1m_pretrained.py' + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/ucf101/rawframes' +data_root_val = 'data/ucf101/rawframes' +split = 1 # official train/test splits. valid numbers: 1, 2, 3 +ann_file_train = f'data/ucf101/ucf101_train_split_{split}_rawframes.txt' +ann_file_val = f'data/ucf101/ucf101_val_split_{split}_rawframes.txt' +ann_file_test = f'data/ucf101/ucf101_val_split_{split}_rawframes.txt' +img_norm_cfg = dict(mean=[104, 117, 128], std=[1, 1, 1], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=16, frame_interval=1, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(128, 171)), + dict(type='RandomCrop', size=112), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=16, + frame_interval=1, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(128, 171)), + dict(type='CenterCrop', crop_size=112), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=16, + frame_interval=1, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(128, 171)), + dict(type='CenterCrop', crop_size=112), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +data = dict( + videos_per_gpu=30, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.001, momentum=0.9, + weight_decay=0.0005) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[20, 40]) +total_epochs = 45 +checkpoint_config = dict(interval=5) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) +log_config = dict( + interval=20, + hooks=[ + dict(type='TextLoggerHook'), + # dict(type='TensorboardLoggerHook'), + ]) +# runtime settings +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = f'./work_dirs/c3d_sports1m_16x1x1_45e_ucf101_split_{split}_rgb/' +load_from = None +resume_from = None +workflow = [('train', 1)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/c3d/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/recognition/c3d/metafile.yml new file mode 100644 index 00000000..f3e7ec9a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/c3d/metafile.yml @@ -0,0 +1,30 @@ +Collections: +- Name: C3D + README: configs/recognition/c3d/README.md + Paper: + URL: https://arxiv.org/abs/1412.0767 + Title: Learning Spatiotemporal Features with 3D Convolutional Networks +Models: +- Config: configs/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb.py + In Collection: C3D + Metadata: + Architecture: c3d + Batch Size: 30 + Epochs: 45 + FLOPs: 38615475200 + Parameters: 78409573 + Pretrained: sports1m + Resolution: 128x171 + Training Data: UCF101 + Training Resources: 8 GPUs + Modality: RGB + Name: c3d_sports1m_16x1x1_45e_ucf101_rgb + Results: + - Dataset: UCF101 + Metrics: + Top 1 Accuracy: 83.27 + Top 5 Accuracy: 95.9 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb/20201021_140429.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb/20201021_140429.log + Weights: https://download.openmmlab.com/mmaction/recognition/c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb/c3d_sports1m_16x1x1_45e_ucf101_rgb_20201021-26655025.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/README.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/README.md new file mode 100644 index 00000000..5fa387e5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/README.md @@ -0,0 +1,108 @@ +# CSN + +[Video Classification With Channel-Separated Convolutional Networks](https://openaccess.thecvf.com/content_ICCV_2019/html/Tran_Video_Classification_With_Channel-Separated_Convolutional_Networks_ICCV_2019_paper.html) + + + +## Abstract + + + +Group convolution has been shown to offer great computational savings in various 2D convolutional architectures for image classification. It is natural to ask: 1) if group convolution can help to alleviate the high computational cost of video classification networks; 2) what factors matter the most in 3D group convolutional networks; and 3) what are good computation/accuracy trade-offs with 3D group convolutional networks. This paper studies the effects of different design choices in 3D group convolutional networks for video classification. We empirically demonstrate that the amount of channel interactions plays an important role in the accuracy of 3D group convolutional networks. Our experiments suggest two main findings. First, it is a good practice to factorize 3D convolutions by separating channel interactions and spatiotemporal interactions as this leads to improved accuracy and lower computational cost. Second, 3D channel-separated convolutions provide a form of regularization, yielding lower training accuracy but higher test accuracy compared to 3D convolutions. These two empirical findings lead us to design an architecture -- Channel-Separated Convolutional Network (CSN) -- which is simple, efficient, yet accurate. On Sports1M, Kinetics, and Something-Something, our CSNs are comparable with or better than the state-of-the-art while being 2-3 times more efficient. + + + +
+ +
+ +## Results and Models + +### Kinetics-400 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | inference_time(video/s) | gpu_mem(M) | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------: | :--: | :-------: | :------: | :--------: | :--------: | :---------------------: | :--------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb](/configs/recognition/csn/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb.py) | short-side 320 | x | ResNet50 | None | 73.6 | 91.3 | x | x | [ckpt](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb_20210618-4e29e2e8.pth) | [log](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb/20210618_182414.log) | [json](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb/20210618_182414.log.json) | +| [ircsn_ig65m_pretrained_bnfrozen_r50_32x2x1_58e_kinetics400_rgb](/configs/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r50_32x2x1_58e_kinetics400_rgb.py) | short-side 320 | x | ResNet50 | IG65M | 79.0 | 94.2 | x | x | [infer_ckpt](https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ircsn_ig65m_pretrained_r50_32x2x1_58e_kinetics400_rgb_20210617-86d33018.pth) | x | x | +| [ircsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb](/configs/recognition/csn/ircsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb.py) | short-side 320 | x | ResNet152 | None | 76.5 | 92.1 | x | x | [infer_ckpt](https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ircsn_from_scratch_r152_32x2x1_180e_kinetics400_rgb_20210617-5c933ae1.pth) | x | x | +| [ircsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb](/configs/recognition/csn/ircsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py) | short-side 320 | x | ResNet152 | Sports1M | 78.2 | 93.0 | x | x | [infer_ckpt](https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ircsn_sports1m_pretrained_r152_32x2x1_58e_kinetics400_rgb_20210617-b9b10241.pth) | x | x | +| [ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py](/configs/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py) | short-side 320 | 8x4 | ResNet152 | IG65M | 82.76/82.6 | 95.68/95.3 | x | 8516 | [ckpt](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb_20200812-9037a758.pth)/[infer_ckpt](https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb_20210617-e63ee1bd.pth) | [log](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb/20200809_053132.log) | [json](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb/20200809_053132.log.json) | +| [ipcsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb](/configs/recognition/csn/ipcsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb.py) | short-side 320 | x | ResNet152 | None | 77.8 | 92.8 | x | x | [infer_ckpt](https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ipcsn_from_scratch_r152_32x2x1_180e_kinetics400_rgb_20210617-d565828d.pth) | x | x | +| [ipcsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb](/configs/recognition/csn/ipcsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py) | short-side 320 | x | ResNet152 | Sports1M | 78.8 | 93.5 | x | x | [infer_ckpt](https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ipcsn_sports1m_pretrained_r152_32x2x1_58e_kinetics400_rgb_20210617-3367437a.pth) | x | x | +| [ipcsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb](/configs/recognition/csn/ipcsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py) | short-side 320 | x | ResNet152 | IG65M | 82.5 | 95.3 | x | x | [infer_ckpt](https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ipcsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb_20210617-c3be9793.pth) | x | x | +| [ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb.py](/configs/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb.py) | short-side 320 | 8x4 | ResNet152 | IG65M | 80.14 | 94.93 | x | 8517 | [ckpt](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb_20200803-fc66ce8d.pth) | [log](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb/20200728_031952.log) | [json](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb/20200728_031952.log.json) | + +:::{note} + +1. The **gpus** indicates the number of gpu (32G V100) we used to get the checkpoint. It is noteworthy that the configs we provide are used for 8 gpus as default. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. +2. The **inference_time** is got by this [benchmark script](/tools/analysis/benchmark.py), where we use the sampling frames strategy of the test setting and only care about the model inference time, + not including the IO time and pre-processing time. For each setting, we use 1 gpu and set batch size (videos per gpu) to 1 to calculate the inference time. +3. The validation set of Kinetics400 we used consists of 19796 videos. These videos are available at [Kinetics400-Validation](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB). The corresponding [data list](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (each line is of the format 'video_id, num_frames, label_index') and the [label map](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) are also available. +4. The **infer_ckpt** means those checkpoints are ported from [VMZ](https://github.com/facebookresearch/VMZ). + +::: + +For more details on data preparation, you can refer to Kinetics400 in [Data Preparation](/docs/data_preparation.md). + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train CSN model on Kinetics-400 dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb.py \ + --work-dir work_dirs/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb \ + --validate --seed 0 --deterministic +``` + +For more details, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test CSN model on Kinetics-400 dataset and dump the result to a json file. + +```shell +python tools/test.py configs/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json --average-clips prob +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@inproceedings{inproceedings, +author = {Wang, Heng and Feiszli, Matt and Torresani, Lorenzo}, +year = {2019}, +month = {10}, +pages = {5551-5560}, +title = {Video Classification With Channel-Separated Convolutional Networks}, +doi = {10.1109/ICCV.2019.00565} +} +``` + + + +```BibTeX +@inproceedings{ghadiyaram2019large, + title={Large-scale weakly-supervised pre-training for video action recognition}, + author={Ghadiyaram, Deepti and Tran, Du and Mahajan, Dhruv}, + booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition}, + pages={12046--12055}, + year={2019} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/README_zh-CN.md new file mode 100644 index 00000000..24f964db --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/README_zh-CN.md @@ -0,0 +1,92 @@ +# CSN + +## 简介 + + + +```BibTeX +@inproceedings{inproceedings, +author = {Wang, Heng and Feiszli, Matt and Torresani, Lorenzo}, +year = {2019}, +month = {10}, +pages = {5551-5560}, +title = {Video Classification With Channel-Separated Convolutional Networks}, +doi = {10.1109/ICCV.2019.00565} +} +``` + + + +```BibTeX +@inproceedings{ghadiyaram2019large, + title={Large-scale weakly-supervised pre-training for video action recognition}, + author={Ghadiyaram, Deepti and Tran, Du and Mahajan, Dhruv}, + booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition}, + pages={12046--12055}, + year={2019} +} +``` + +## 模型库 + +### Kinetics-400 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 推理时间 (video/s) | GPU 显存占用 (M) | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :-------: | :------: | :---------: | :---------: | :----------------: | :--------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb](/configs/recognition/csn/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb.py) | 短边 320 | x | ResNet50 | None | 73.6 | 91.3 | x | x | [ckpt](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb_20210618-4e29e2e8.pth) | [log](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb/20210618_182414.log) | [json](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb/20210618_182414.log.json) | +| [ircsn_ig65m_pretrained_bnfrozen_r50_32x2x1_58e_kinetics400_rgb](/configs/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r50_32x2x1_58e_kinetics400_rgb.py) | 短边 320 | x | ResNet50 | IG65M | 79.0 | 94.2 | x | x | [infer_ckpt](https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ircsn_ig65m_pretrained_r50_32x2x1_58e_kinetics400_rgb_20210617-86d33018.pth) | x | x | +| [ircsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb](/configs/recognition/csn/ircsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb.py) | 短边 320 | x | ResNet152 | None | 76.5 | 92.1 | x | x | [infer_ckpt](https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ircsn_from_scratch_r152_32x2x1_180e_kinetics400_rgb_20210617-5c933ae1.pth) | x | x | +| [ircsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb](/configs/recognition/csn/ircsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py) | 短边 320 | x | ResNet152 | Sports1M | 78.2 | 93.0 | x | x | [infer_ckpt](https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ircsn_sports1m_pretrained_r152_32x2x1_58e_kinetics400_rgb_20210617-b9b10241.pth) | x | x | +| [ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py](/configs/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py) | 短边 320 | 8x4 | ResNet152 | IG65M | 82.76/82.6 | 95.68/95.3 | x | 8516 | [ckpt](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb_20200812-9037a758.pth)/[infer_ckpt](https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb_20210617-e63ee1bd.pth) | [log](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb/20200809_053132.log) | [json](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb/20200809_053132.log.json) | +| [ipcsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb](/configs/recognition/csn/ipcsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb.py) | 短边 320 | x | ResNet152 | None | 77.8 | 92.8 | x | x | [infer_ckpt](https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ipcsn_from_scratch_r152_32x2x1_180e_kinetics400_rgb_20210617-d565828d.pth) | x | x | +| [ipcsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb](/configs/recognition/csn/ipcsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py) | 短边 320 | x | ResNet152 | Sports1M | 78.8 | 93.5 | x | x | [infer_ckpt](https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ipcsn_sports1m_pretrained_r152_32x2x1_58e_kinetics400_rgb_20210617-3367437a.pth) | x | x | +| [ipcsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb](/configs/recognition/csn/ipcsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py) | 短边 320 | x | ResNet152 | IG65M | 82.5 | 95.3 | x | x | [infer_ckpt](https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ipcsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb_20210617-c3be9793.pth) | x | x | +| [ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb.py](/configs/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb.py) | 短边 320 | 8x4 | ResNet152 | IG65M | 80.14 | 94.93 | x | 8517 | [ckpt](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb_20200803-fc66ce8d.pth) | [log](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb/20200728_031952.log) | [json](https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb/20200728_031952.log.json) | + +注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +2. 这里的 **推理时间** 是根据 [基准测试脚本](/tools/analysis/benchmark.py) 获得的,采用测试时的采帧策略,且只考虑模型的推理时间, + 并不包括 IO 时间以及预处理时间。对于每个配置,MMAction2 使用 1 块 GPU 并设置批大小(每块 GPU 处理的视频个数)为 1 来计算推理时间。 +3. 这里使用的 Kinetics400 验证集包含 19796 个视频,用户可以从 [验证集视频](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB) 下载这些视频。同时也提供了对应的 [数据列表](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (每行格式为:视频 ID,视频帧数目,类别序号)以及 [标签映射](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) (类别序号到类别名称)。 +4. 这里的 **infer_ckpt** 表示该模型权重文件是从 [VMZ](https://github.com/facebookresearch/VMZ) 导入的。 + +对于数据集准备的细节,用户可参考 [数据集准备文档](/docs_zh_CN/data_preparation.md) 中的 Kinetics400 部分。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:以一个确定性的训练方式,辅以定期的验证过程进行 CSN 模型在 Kinetics400 数据集上的训练。 + +```shell +python tools/train.py configs/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb.py \ + --work-dir work_dirs/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb \ + --validate --seed 0 --deterministic +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 Kinetics400 数据集上测试 CSN 模型,并将结果导出为一个 json 文件。 + +```shell +python tools/test.py configs/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json --average-clips prob +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ipcsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ipcsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb.py new file mode 100644 index 00000000..7cd96b72 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ipcsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb.py @@ -0,0 +1,95 @@ +_base_ = [ + './ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py' +] + +# model settings +model = dict( + backbone=dict( + norm_eval=True, bn_frozen=True, bottleneck_mode='ip', pretrained=None)) + +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[110.2008, 100.63983, 95.99475], + std=[58.14765, 56.46975, 55.332195], + to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=4, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +optimizer = dict( + type='SGD', lr=0.08, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='CosineAnnealing', + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=40) +total_epochs = 180 + +work_dir = './work_dirs/ipcsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb' # noqa: E501 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ipcsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ipcsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py new file mode 100644 index 00000000..7aed801a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ipcsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py @@ -0,0 +1,15 @@ +_base_ = [ + './ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py' +] + +# model settings +model = dict( + backbone=dict( + norm_eval=True, + bn_frozen=True, + bottleneck_mode='ip', + pretrained= # noqa: E251 + 'https://download.openmmlab.com/mmaction/recognition/csn/ipcsn_from_scratch_r152_ig65m_20210617-c4b99d38.pth' # noqa: E501 + )) + +work_dir = './work_dirs/ipcsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb' # noqa: E501 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ipcsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ipcsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py new file mode 100644 index 00000000..fc5372a8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ipcsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py @@ -0,0 +1,88 @@ +_base_ = [ + './ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py' +] + +# model settings +model = dict( + backbone=dict( + norm_eval=True, + bn_frozen=True, + bottleneck_mode='ip', + pretrained= # noqa: E251 + 'https://download.openmmlab.com/mmaction/recognition/csn/ipcsn_from_scratch_r152_sports1m_20210617-7a7cc5b9.pth' # noqa: E501 + )) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[110.2008, 100.63983, 95.99475], + std=[58.14765, 56.46975, 55.332195], + to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=3, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +work_dir = './work_dirs/ipcsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb' # noqa: E501 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb.py new file mode 100644 index 00000000..777b2c0c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb.py @@ -0,0 +1,95 @@ +_base_ = [ + './ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py' +] + +# model settings +model = dict( + backbone=dict( + norm_eval=True, bn_frozen=True, bottleneck_mode='ir', pretrained=None)) + +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[110.2008, 100.63983, 95.99475], + std=[58.14765, 56.46975, 55.332195], + to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=4, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +optimizer = dict( + type='SGD', lr=0.08, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='CosineAnnealing', + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=40) +total_epochs = 180 + +work_dir = './work_dirs/ircsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb' # noqa: E501 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb.py new file mode 100644 index 00000000..cef9d5de --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb.py @@ -0,0 +1,97 @@ +_base_ = [ + './ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py' +] + +# model settings +model = dict( + backbone=dict( + depth=50, + norm_eval=True, + bn_frozen=True, + bottleneck_mode='ir', + pretrained=None)) + +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=4, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +optimizer = dict( + type='SGD', lr=0.08, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='CosineAnnealing', + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=40) +total_epochs = 180 + +work_dir = './work_dirs/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb' # noqa: E501 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py new file mode 100644 index 00000000..54bc5b01 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py @@ -0,0 +1,102 @@ +_base_ = [ + '../../_base_/models/ircsn_r152.py', '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + backbone=dict( + norm_eval=True, + bn_frozen=True, + pretrained= # noqa: E251 + 'https://download.openmmlab.com/mmaction/recognition/csn/ircsn_from_scratch_r152_ig65m_20200807-771c4135.pth' # noqa: E501 + )) +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=3, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.000125, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='step', + step=[32, 48], + warmup='linear', + warmup_ratio=0.1, + warmup_by_epoch=True, + warmup_iters=16) +total_epochs = 58 + +work_dir = './work_dirs/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb' # noqa: E501 +find_unused_parameters = True diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r50_32x2x1_58e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r50_32x2x1_58e_kinetics400_rgb.py new file mode 100644 index 00000000..fc44dc42 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r50_32x2x1_58e_kinetics400_rgb.py @@ -0,0 +1,103 @@ +_base_ = [ + '../../_base_/models/ircsn_r152.py', '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + backbone=dict( + depth=50, + norm_eval=True, + bn_frozen=True, + pretrained= # noqa: E251 + 'https://download.openmmlab.com/mmaction/recognition/csn/ircsn_from_scratch_r50_ig65m_20210617-ce545a37.pth' # noqa: E501 + )) +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=3, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.000125, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='step', + step=[32, 48], + warmup='linear', + warmup_ratio=0.1, + warmup_by_epoch=True, + warmup_iters=16) +total_epochs = 58 + +work_dir = './work_dirs/ircsn_ig65m_pretrained_bnfrozen_r50_32x2x1_58e_kinetics400_rgb' # noqa: E501 +find_unused_parameters = True diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb.py new file mode 100644 index 00000000..015526cc --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb.py @@ -0,0 +1,100 @@ +_base_ = [ + '../../_base_/models/ircsn_r152.py', '../../_base_/default_runtime.py' +] + +model = dict( + backbone=dict( + pretrained= # noqa: E251 + 'https://download.openmmlab.com/mmaction/recognition/csn/ircsn_from_scratch_r152_ig65m_20200807-771c4135.pth' # noqa: E501 + )) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=3, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.000125, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='step', + step=[32, 48], + warmup='linear', + warmup_ratio=0.1, + warmup_by_epoch=True, + warmup_iters=16) +total_epochs = 58 + +work_dir = './work_dirs/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb' +find_unused_parameters = True diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py new file mode 100644 index 00000000..b4601839 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/ircsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py @@ -0,0 +1,88 @@ +_base_ = [ + './ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py' +] + +# model settings +model = dict( + backbone=dict( + norm_eval=True, + bn_frozen=True, + bottleneck_mode='ir', + pretrained= # noqa: E251 + 'https://download.openmmlab.com/mmaction/recognition/csn/ircsn_from_scratch_r152_sports1m_20210617-bcc9c0dd.pth' # noqa: E501 + )) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[110.2008, 100.63983, 95.99475], + std=[58.14765, 56.46975, 55.332195], + to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=3, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +work_dir = './work_dirs/ipcsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb' # noqa: E501 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/metafile.yml new file mode 100644 index 00000000..408e1194 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/csn/metafile.yml @@ -0,0 +1,204 @@ +Collections: +- Name: CSN + README: configs/recognition/csn/README.md + Paper: + URL: https://arxiv.org/abs/1904.02811 + Title: Video Classification with Channel-Separated Convolutional Networks +Models: +- Config: configs/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb.py + In Collection: CSN + Metadata: + Architecture: ResNet152 + Batch Size: 3 + Epochs: 58 + FLOPs: 98096676864 + Parameters: 29703568 + Pretrained: IG65M + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 80.14 + Top 5 Accuracy: 94.93 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb/20200728_031952.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb/20200728_031952.log + Weights: https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb_20200803-fc66ce8d.pth +- Config: configs/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py + In Collection: CSN + Metadata: + Architecture: ResNet152 + Batch Size: 3 + Epochs: 58 + FLOPs: 98096676864 + Parameters: 29703568 + Pretrained: IG65M + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 82.76 + Top 5 Accuracy: 95.68 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb/20200809_053132.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb/20200809_053132.log + Weights: https://download.openmmlab.com/mmaction/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb/ircsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb_20200812-9037a758.pth +- Config: configs/recognition/csn/ipcsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb.py + In Collection: CSN + Metadata: + Architecture: ResNet152 + Epochs: 180 + FLOPs: 110337228800 + Parameters: 33016592 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Modality: RGB + Name: ipcsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb + Converted From: + Weights: https://www.dropbox.com/s/3fihu6ti60047mu/ipCSN_152_kinetics_from_scratch_f129594342.pkl?dl=0 + Code: https://github.com/facebookresearch/VMZ/tree/b61b08194bc3273bef4c45fdfdd36c56c8579ff3 + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 77.8 + Top 5 Accuracy: 92.8 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ipcsn_from_scratch_r152_32x2x1_180e_kinetics400_rgb_20210617-d565828d.pth +- Config: configs/recognition/csn/ipcsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py + In Collection: CSN + Metadata: + Architecture: ResNet152 + Epochs: 58 + FLOPs: 110337228800 + Parameters: 33016592 + Pretrained: IG65M + Resolution: short-side 320 + Training Data: Kinetics-400 + Modality: RGB + Name: ipcsn_ig65m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb + Converted From: + Weights: https://www.dropbox.com/s/zpp3p0vn2i7bibl/ipCSN_152_ft_kinetics_from_ig65m_f133090949.pkl?dl=0 + Code: https://github.com/facebookresearch/VMZ/tree/b61b08194bc3273bef4c45fdfdd36c56c8579ff3 + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 82.5 + Top 5 Accuracy: 95.3 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ipcsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb_20210617-c3be9793.pth +- Config: configs/recognition/csn/ipcsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py + In Collection: CSN + Metadata: + Architecture: ResNet152 + Epochs: 58 + FLOPs: 110337228800 + Parameters: 33016592 + Pretrained: Sports1M + Resolution: short-side 320 + Training Data: Kinetics-400 + Modality: RGB + Name: ipcsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb + Converted From: + Weights: https://www.dropbox.com/s/ir7cr0hda36knux/ipCSN_152_ft_kinetics_from_sports1m_f111279053.pkl?dl=0 + Code: https://github.com/facebookresearch/VMZ/tree/b61b08194bc3273bef4c45fdfdd36c56c8579ff3 + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 78.8 + Top 5 Accuracy: 93.5 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ipcsn_sports1m_pretrained_r152_32x2x1_58e_kinetics400_rgb_20210617-3367437a.pth +- Config: configs/recognition/csn/ircsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb.py + In Collection: CSN + Metadata: + Architecture: ResNet152 + Epochs: 180 + FLOPs: 98096676864 + Parameters: 29703568 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Modality: RGB + Name: ircsn_bnfrozen_r152_32x2x1_180e_kinetics400_rgb + Converted From: + Weights: https://www.dropbox.com/s/46gcm7up60ssx5c/irCSN_152_kinetics_from_scratch_f98268019.pkl?dl=0 + Code: https://github.com/facebookresearch/VMZ/tree/b61b08194bc3273bef4c45fdfdd36c56c8579ff3 + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 76.5 + Top 5 Accuracy: 92.1 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ircsn_from_scratch_r152_32x2x1_180e_kinetics400_rgb_20210617-5c933ae1.pth +- Config: configs/recognition/csn/ircsn_ig65m_pretrained_bnfrozen_r50_32x2x1_58e_kinetics400_rgb.py + In Collection: CSN + Metadata: + Architecture: ResNet50 + Epochs: 58 + FLOPs: 56209211392 + Parameters: 13131152 + Pretrained: IG65M + Resolution: short-side 320 + Training Data: Kinetics-400 + Modality: RGB + Name: ircsn_ig65m_pretrained_bnfrozen_r50_32x2x1_58e_kinetics400_rgb + Converted From: + Weights: https://www.dropbox.com/s/gmd8r87l3wmkn3h/irCSN_152_ft_kinetics_from_ig65m_f126851907.pkl?dl=0 + Code: https://github.com/facebookresearch/VMZ/tree/b61b08194bc3273bef4c45fdfdd36c56c8579ff3 + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 79.0 + Top 5 Accuracy: 94.2 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ircsn_ig65m_pretrained_r50_32x2x1_58e_kinetics400_rgb_20210617-86d33018.pth +- Config: configs/recognition/csn/ircsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb.py + In Collection: CSN + Metadata: + Architecture: ResNet152 + Epochs: 58 + FLOPs: 98096676864 + Parameters: 29703568 + Pretrained: Sports1M + Resolution: short-side 320 + Training Data: Kinetics-400 + Modality: RGB + Name: ircsn_sports1m_pretrained_bnfrozen_r152_32x2x1_58e_kinetics400_rgb + Converted From: + Weights: https://www.dropbox.com/s/zuoj1aqouh6bo6k/irCSN_152_ft_kinetics_from_sports1m_f101599884.pkl?dl=0 + Code: https://github.com/facebookresearch/VMZ/tree/b61b08194bc3273bef4c45fdfdd36c56c8579ff3 + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 78.2 + Top 5 Accuracy: 93.0 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/csn/vmz/vmz_ircsn_sports1m_pretrained_r152_32x2x1_58e_kinetics400_rgb_20210617-b9b10241.pth +- Config: configs/recognition/csn/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb.py + In Collection: CSN + Metadata: + Architecture: ResNet50 + Epochs: 58 + FLOPs: 56209211392 + Parameters: 13131152 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Modality: RGB + Name: ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 73.6 + top5 accuracy: 91.3 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/csn/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb/ircsn_bnfrozen_r50_32x2x1_180e_kinetics400_rgb_20210618-4e29e2e8.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/README.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/README.md new file mode 100644 index 00000000..37fee079 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/README.md @@ -0,0 +1,108 @@ +# I3D + +[Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset](https://openaccess.thecvf.com/content_cvpr_2017/html/Carreira_Quo_Vadis_Action_CVPR_2017_paper.html) + +[Non-local Neural Networks](https://openaccess.thecvf.com/content_cvpr_2018/html/Wang_Non-Local_Neural_Networks_CVPR_2018_paper.html) + + + +## Abstract + + + +The paucity of videos in current action classification datasets (UCF-101 and HMDB-51) has made it difficult to identify good video architectures, as most methods obtain similar performance on existing small-scale benchmarks. This paper re-evaluates state-of-the-art architectures in light of the new Kinetics Human Action Video dataset. Kinetics has two orders of magnitude more data, with 400 human action classes and over 400 clips per class, and is collected from realistic, challenging YouTube videos. We provide an analysis on how current architectures fare on the task of action classification on this dataset and how much performance improves on the smaller benchmark datasets after pre-training on Kinetics. We also introduce a new Two-Stream Inflated 3D ConvNet (I3D) that is based on 2D ConvNet inflation: filters and pooling kernels of very deep image classification ConvNets are expanded into 3D, making it possible to learn seamless spatio-temporal feature extractors from video while leveraging successful ImageNet architecture designs and even their parameters. We show that, after pre-training on Kinetics, I3D models considerably improve upon the state-of-the-art in action classification, reaching 80.9% on HMDB-51 and 98.0% on UCF-101. + + + +
+ +
+ +## Results and Models + +### Kinetics-400 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | inference_time(video/s) | gpu_mem(M) | ckpt | log | json | +| :----------------------------------------------------------------------------------------------------------------------------------------------- | :-------------: | :--: | :------: | :------: | :------: | :------: | :---------------------: | :--------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------: | +| [i3d_r50_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py) | 340x256 | 8 | ResNet50 | ImageNet | 72.68 | 90.78 | 1.7 (320x3 frames) | 5170 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb/i3d_r50_32x2x1_100e_kinetics400_rgb_20200614-c25ef9a4.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb/20200614_060456.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb/20200614_060456.log.json) | +| [i3d_r50_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py) | short-side 256 | 8 | ResNet50 | ImageNet | 73.27 | 90.92 | x | 5170 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_256p_32x2x1_100e_kinetics400_rgb/i3d_r50_256p_32x2x1_100e_kinetics400_rgb_20200801-7d9f44de.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_256p_32x2x1_100e_kinetics400_rgb/20200725_031555.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_256p_32x2x1_100e_kinetics400_rgb/20200725_031555.log.json) | +| [i3d_r50_video_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_r50_video_32x2x1_100e_kinetics400_rgb.py) | short-side 256p | 8 | ResNet50 | ImageNet | 72.85 | 90.75 | x | 5170 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_video_32x2x1_100e_kinetics400_rgb/i3d_r50_video_32x2x1_100e_kinetics400_rgb_20200826-e31c6f52.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_video_32x2x1_100e_kinetics400_rgb/20200706_143014.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_video_32x2x1_100e_kinetics400_rgb/20200706_143014.log.json) | +| [i3d_r50_dense_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb.py) | 340x256 | 8x2 | ResNet50 | ImageNet | 72.77 | 90.57 | 1.7 (320x3 frames) | 5170 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb/i3d_r50_dense_32x2x1_100e_kinetics400_rgb_20200616-2bbb4361.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb/20200616_230011.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb/20200616_230011.log.json) | +| [i3d_r50_dense_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb.py) | short-side 256 | 8 | ResNet50 | ImageNet | 73.48 | 91.00 | x | 5170 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_256p_32x2x1_100e_kinetics400_rgb/i3d_r50_dense_256p_32x2x1_100e_kinetics400_rgb_20200725-24eb54cc.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_256p_32x2x1_100e_kinetics400_rgb/20200725_031604.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_256p_32x2x1_100e_kinetics400_rgb/20200725_031604.log.json) | +| [i3d_r50_lazy_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_r50_lazy_32x2x1_100e_kinetics400_rgb.py) | 340x256 | 8 | ResNet50 | ImageNet | 72.32 | 90.72 | 1.8 (320x3 frames) | 5170 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_32x2x1_100e_kinetics400_rgb/i3d_r50_fast_32x2x1_100e_kinetics400_rgb_20200612-000e4d2a.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_32x2x1_100e_kinetics400_rgb/20200612_233836.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_32x2x1_100e_kinetics400_rgb/20200612_233836.log.json) | +| [i3d_r50_lazy_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_r50_lazy_32x2x1_100e_kinetics400_rgb.py) | short-side 256 | 8 | ResNet50 | ImageNet | 73.24 | 90.99 | x | 5170 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_256p_32x2x1_100e_kinetics400_rgb/i3d_r50_fast_256p_32x2x1_100e_kinetics400_rgb_20200817-4e90d1d5.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_256p_32x2x1_100e_kinetics400_rgb/20200725_031457.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_256p_32x2x1_100e_kinetics400_rgb/20200725_031457.log.json) | +| [i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb.py) | short-side 256p | 8x4 | ResNet50 | ImageNet | 74.71 | 91.81 | x | 6438 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb_20200813-6e6aef1b.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb/20200813_034054.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb/20200813_034054.log.json) | +| [i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb.py) | short-side 256p | 8x4 | ResNet50 | ImageNet | 73.37 | 91.26 | x | 4944 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb_20200815-17f84aa2.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb/20200813_034909.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb/20200813_034909.log.json) | +| [i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb.py) | short-side 256p | 8x4 | ResNet50 | ImageNet | 73.92 | 91.59 | x | 4832 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb_20200814-7c30d5bb.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb/20200814_044208.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb/20200814_044208.log.json) | + +:::{note} + +1. The **gpus** indicates the number of gpu we used to get the checkpoint. It is noteworthy that the configs we provide are used for 8 gpus as default. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. +2. The **inference_time** is got by this [benchmark script](/tools/analysis/benchmark.py), where we use the sampling frames strategy of the test setting and only care about the model inference time, not including the IO time and pre-processing time. For each setting, we use 1 gpu and set batch size (videos per gpu) to 1 to calculate the inference time. +3. The validation set of Kinetics400 we used consists of 19796 videos. These videos are available at [Kinetics400-Validation](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB). The corresponding [data list](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (each line is of the format 'video_id, num_frames, label_index') and the [label map](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) are also available. + +::: + +For more details on data preparation, you can refer to Kinetics400 in [Data Preparation](/docs/data_preparation.md). + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train I3D model on Kinetics-400 dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py \ + --work-dir work_dirs/i3d_r50_32x2x1_100e_kinetics400_rgb \ + --validate --seed 0 --deterministic +``` + +For more details, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test I3D model on Kinetics-400 dataset and dump the result to a json file. + +```shell +python tools/test.py configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json --average-clips prob +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@inproceedings{inproceedings, + author = {Carreira, J. and Zisserman, Andrew}, + year = {2017}, + month = {07}, + pages = {4724-4733}, + title = {Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset}, + doi = {10.1109/CVPR.2017.502} +} +``` + + + +```BibTeX +@article{NonLocal2018, + author = {Xiaolong Wang and Ross Girshick and Abhinav Gupta and Kaiming He}, + title = {Non-local Neural Networks}, + journal = {CVPR}, + year = {2018} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/README_zh-CN.md new file mode 100644 index 00000000..c04a7e50 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/README_zh-CN.md @@ -0,0 +1,91 @@ +# I3D + +## 简介 + + + +```BibTeX +@inproceedings{inproceedings, + author = {Carreira, J. and Zisserman, Andrew}, + year = {2017}, + month = {07}, + pages = {4724-4733}, + title = {Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset}, + doi = {10.1109/CVPR.2017.502} +} +``` + + + +```BibTeX +@article{NonLocal2018, + author = {Xiaolong Wang and Ross Girshick and Abhinav Gupta and Kaiming He}, + title = {Non-local Neural Networks}, + journal = {CVPR}, + year = {2018} +} +``` + +## 模型库 + +### Kinetics-400 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 推理时间 (video/s) | GPU 显存占用 (M) | ckpt | log | json | +| :----------------------------------------------------------------------------------------------------------------------------------------------- | :-------: | :------: | :------: | :------: | :---------: | :---------: | :----------------: | :--------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------: | +| [i3d_r50_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py) | 340x256 | 8 | ResNet50 | ImageNet | 72.68 | 90.78 | 1.7 (320x3 frames) | 5170 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb/i3d_r50_32x2x1_100e_kinetics400_rgb_20200614-c25ef9a4.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb/20200614_060456.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb/20200614_060456.log.json) | +| [i3d_r50_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py) | 短边 256 | 8 | ResNet50 | ImageNet | 73.27 | 90.92 | x | 5170 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_256p_32x2x1_100e_kinetics400_rgb/i3d_r50_256p_32x2x1_100e_kinetics400_rgb_20200801-7d9f44de.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_256p_32x2x1_100e_kinetics400_rgb/20200725_031555.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_256p_32x2x1_100e_kinetics400_rgb/20200725_031555.log.json) | +| [i3d_r50_video_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_r50_video_32x2x1_100e_kinetics400_rgb.py) | 短边 256p | 8 | ResNet50 | ImageNet | 72.85 | 90.75 | x | 5170 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_video_32x2x1_100e_kinetics400_rgb/i3d_r50_video_32x2x1_100e_kinetics400_rgb_20200826-e31c6f52.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_video_32x2x1_100e_kinetics400_rgb/20200706_143014.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_video_32x2x1_100e_kinetics400_rgb/20200706_143014.log.json) | +| [i3d_r50_dense_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb.py) | 340x256 | 8x2 | ResNet50 | ImageNet | 72.77 | 90.57 | 1.7 (320x3 frames) | 5170 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb/i3d_r50_dense_32x2x1_100e_kinetics400_rgb_20200616-2bbb4361.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb/20200616_230011.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb/20200616_230011.log.json) | +| [i3d_r50_dense_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb.py) | 短边 256 | 8 | ResNet50 | ImageNet | 73.48 | 91.00 | x | 5170 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_256p_32x2x1_100e_kinetics400_rgb/i3d_r50_dense_256p_32x2x1_100e_kinetics400_rgb_20200725-24eb54cc.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_256p_32x2x1_100e_kinetics400_rgb/20200725_031604.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_256p_32x2x1_100e_kinetics400_rgb/20200725_031604.log.json) | +| [i3d_r50_lazy_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_r50_lazy_32x2x1_100e_kinetics400_rgb.py) | 340x256 | 8 | ResNet50 | ImageNet | 72.32 | 90.72 | 1.8 (320x3 frames) | 5170 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_32x2x1_100e_kinetics400_rgb/i3d_r50_fast_32x2x1_100e_kinetics400_rgb_20200612-000e4d2a.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_32x2x1_100e_kinetics400_rgb/20200612_233836.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_32x2x1_100e_kinetics400_rgb/20200612_233836.log.json) | +| [i3d_r50_lazy_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_r50_lazy_32x2x1_100e_kinetics400_rgb.py) | 短边 256 | 8 | ResNet50 | ImageNet | 73.24 | 90.99 | x | 5170 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_256p_32x2x1_100e_kinetics400_rgb/i3d_r50_fast_256p_32x2x1_100e_kinetics400_rgb_20200817-4e90d1d5.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_256p_32x2x1_100e_kinetics400_rgb/20200725_031457.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_256p_32x2x1_100e_kinetics400_rgb/20200725_031457.log.json) | +| [i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb.py) | 短边 256p | 8x4 | ResNet50 | ImageNet | 74.71 | 91.81 | x | 6438 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb_20200813-6e6aef1b.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb/20200813_034054.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb/20200813_034054.log.json) | +| [i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb.py) | 短边 256p | 8x4 | ResNet50 | ImageNet | 73.37 | 91.26 | x | 4944 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb_20200815-17f84aa2.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb/20200813_034909.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb/20200813_034909.log.json) | +| [i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb](/configs/recognition/i3d/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb.py) | 短边 256p | 8x4 | ResNet50 | ImageNet | 73.92 | 91.59 | x | 4832 | [ckpt](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb_20200814-7c30d5bb.pth) | [log](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb/20200814_044208.log) | [json](https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb/20200814_044208.log.json) | + +注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +2. 这里的 **推理时间** 是根据 [基准测试脚本](/tools/analysis/benchmark.py) 获得的,采用测试时的采帧策略,且只考虑模型的推理时间, + 并不包括 IO 时间以及预处理时间。对于每个配置,MMAction2 使用 1 块 GPU 并设置批大小(每块 GPU 处理的视频个数)为 1 来计算推理时间。 +3. 我们使用的 Kinetics400 验证集包含 19796 个视频,用户可以从 [验证集视频](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB) 下载这些视频。同时也提供了对应的 [数据列表](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (每行格式为:视频 ID,视频帧数目,类别序号)以及 [标签映射](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) (类别序号到类别名称)。 + +对于数据集准备的细节,用户可参考 [数据集准备文档](/docs_zh_CN/data_preparation.md) 中的 Kinetics400 部分。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:以一个确定性的训练方式,辅以定期的验证过程进行 I3D 模型在 Kinetics400 数据集上的训练。 + +```shell +python tools/train.py configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py \ + --work-dir work_dirs/i3d_r50_32x2x1_100e_kinetics400_rgb \ + --validate --seed 0 --deterministic +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 Kinetics400 数据集上测试 I3D 模型,并将结果导出为一个 json 文件。 + +```shell +python tools/test.py configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json --average-clips prob +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb.py new file mode 100644 index 00000000..46628500 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb.py @@ -0,0 +1,96 @@ +_base_ = [ + '../../_base_/models/i3d_r50.py', '../../_base_/schedules/sgd_100e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + backbone=dict( + non_local=((0, 0, 0), (0, 1, 0, 1), (0, 1, 0, 1, 0, 1), (0, 0, 0)), + non_local_cfg=dict( + sub_sample=True, + use_scale=False, + norm_cfg=dict(type='BN3d', requires_grad=True), + mode='dot_product'))) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.8), + random_crop=False, + max_wh_scale_gap=0), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb.py new file mode 100644 index 00000000..969e42a0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb.py @@ -0,0 +1,13 @@ +_base_ = ['./i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb.py'] + +# model settings +model = dict( + backbone=dict( + non_local_cfg=dict( + sub_sample=True, + use_scale=False, + norm_cfg=dict(type='BN3d', requires_grad=True), + mode='embedded_gaussian'))) + +# runtime settings +work_dir = './work_dirs/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb/' # noqa: E501 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb.py new file mode 100644 index 00000000..f2377587 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb.py @@ -0,0 +1,13 @@ +_base_ = ['./i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb.py'] + +# model settings +model = dict( + backbone=dict( + non_local_cfg=dict( + sub_sample=True, + use_scale=False, + norm_cfg=dict(type='BN3d', requires_grad=True), + mode='gaussian'))) + +# runtime settings +work_dir = './work_dirs/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py new file mode 100644 index 00000000..aa0e523f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py @@ -0,0 +1,86 @@ +_base_ = [ + '../../_base_/models/i3d_r50.py', '../../_base_/schedules/sgd_100e.py', + '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.8), + random_crop=False, + max_wh_scale_gap=0), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/i3d_r50_32x2x1_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb.py new file mode 100644 index 00000000..17ea4303 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb.py @@ -0,0 +1,80 @@ +_base_ = ['./i3d_r50_32x2x1_100e_kinetics400_rgb.py'] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DenseSampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.8), + random_crop=False, + max_wh_scale_gap=0), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='DenseSampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='DenseSampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +# runtime settings +work_dir = './work_dirs/i3d_r50_dense_32x2x1_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_heavy_8x8x1_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_heavy_8x8x1_100e_kinetics400_rgb.py new file mode 100644 index 00000000..f21feb2a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_heavy_8x8x1_100e_kinetics400_rgb.py @@ -0,0 +1,88 @@ +_base_ = ['./i3d_r50_32x2x1_100e_kinetics400_rgb.py'] + +# model settings +model = dict( + backbone=dict( + inflate=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + with_pool2=True)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=8, frame_interval=8, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.8), + random_crop=False, + max_wh_scale_gap=0), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +# runtime settings +work_dir = './work_dirs/i3d_r50_heavy_8x8x1_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_lazy_32x2x1_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_lazy_32x2x1_100e_kinetics400_rgb.py new file mode 100644 index 00000000..de84b8fe --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_lazy_32x2x1_100e_kinetics400_rgb.py @@ -0,0 +1,84 @@ +_base_ = ['./i3d_r50_32x2x1_100e_kinetics400_rgb.py'] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode', decoding_backend='turbojpeg'), + dict(type='Resize', scale=(-1, 256), lazy=True), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.8), + random_crop=False, + max_wh_scale_gap=0, + lazy=True), + dict(type='Resize', scale=(224, 224), keep_ratio=False, lazy=True), + dict(type='Flip', flip_ratio=0.5, lazy=True), + dict(type='Fuse'), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode', decoding_backend='turbojpeg'), + dict(type='Resize', scale=(-1, 256), lazy=True), + dict(type='CenterCrop', crop_size=224, lazy=True), + dict(type='Flip', flip_ratio=0, lazy=True), + dict(type='Fuse'), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode', decoding_backend='turbojpeg'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +# runtime settings +work_dir = './work_dirs/i3d_r50_lazy_32x2x1_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_video_32x2x1_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_video_32x2x1_100e_kinetics400_rgb.py new file mode 100644 index 00000000..1477ac2a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_video_32x2x1_100e_kinetics400_rgb.py @@ -0,0 +1,83 @@ +_base_ = ['./i3d_r50_32x2x1_100e_kinetics400_rgb.py'] + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/kinetics400/videos_train' +data_root_val = 'data/kinetics400/videos_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_videos.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_videos.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.8), + random_crop=False, + max_wh_scale_gap=0), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +# runtime settings +work_dir = './work_dirs/i3d_r50_video_3d_32x2x1_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_video_heavy_8x8x1_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_video_heavy_8x8x1_100e_kinetics400_rgb.py new file mode 100644 index 00000000..973f7fb8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_video_heavy_8x8x1_100e_kinetics400_rgb.py @@ -0,0 +1,83 @@ +_base_ = ['./i3d_r50_heavy_8x8x1_100e_kinetics400_rgb.py'] + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/kinetics400/videos_train' +data_root_val = 'data/kinetics400/videos_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_videos.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_videos.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=8, frame_interval=8, num_clips=1), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.8), + random_crop=False, + max_wh_scale_gap=0), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=1, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=10, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) +# +# runtime settings +work_dir = './work_dirs/i3d_r50_video_heavy_8x8x1_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_video_imgaug_32x2x1_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_video_imgaug_32x2x1_100e_kinetics400_rgb.py new file mode 100644 index 00000000..86baa028 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_video_imgaug_32x2x1_100e_kinetics400_rgb.py @@ -0,0 +1,111 @@ +_base_ = ['../../_base_/models/i3d_r50.py'] + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/kinetics400/videos_train' +data_root_val = 'data/kinetics400/videos_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_videos.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_videos.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.8), + random_crop=False, + max_wh_scale_gap=0), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict( + type='Imgaug', + transforms=[ + dict(type='Fliplr', p=0.5), + dict(type='Rotate', rotate=(-20, 20)), + dict(type='Dropout', p=(0, 0.05)) + ]), + # dict(type='Imgaug', transforms='default'), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.01, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[40, 80]) +total_epochs = 100 +checkpoint_config = dict(interval=5) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) +log_config = dict( + interval=20, + hooks=[ + dict(type='TextLoggerHook'), + # dict(type='TensorboardLoggerHook'), + ]) +# runtime settings +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/i3d_r50_video_3d_32x2x1_100e_kinetics400_rgb/' +load_from = None +resume_from = None +workflow = [('train', 1)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_video_inference_32x2x1_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_video_inference_32x2x1_100e_kinetics400_rgb.py new file mode 100644 index 00000000..497c0135 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/i3d_r50_video_inference_32x2x1_100e_kinetics400_rgb.py @@ -0,0 +1,30 @@ +_base_ = ['../../_base_/models/i3d_r50.py'] + +# dataset settings +dataset_type = 'VideoDataset' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +test_pipeline = [ + dict(type='DecordInit', num_threads=1), + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=1, + workers_per_gpu=2, + test=dict( + type=dataset_type, + ann_file=None, + data_prefix=None, + pipeline=test_pipeline)) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/metafile.yml new file mode 100644 index 00000000..22a7bfe3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/i3d/metafile.yml @@ -0,0 +1,237 @@ +Collections: +- Name: I3D + README: configs/recognition/i3d/README.md + Paper: + URL: https://arxiv.org/abs/1705.07750 + Title: Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset +Models: +- Config: configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py + In Collection: I3D + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 100 + FLOPs: 43564040192 + Parameters: 28043472 + Pretrained: ImageNet + Resolution: 340x256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: i3d_r50_32x2x1_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 72.68 + Top 5 Accuracy: 90.78 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb/20200614_060456.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb/20200614_060456.log + Weights: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb/i3d_r50_32x2x1_100e_kinetics400_rgb_20200614-c25ef9a4.pth +- Config: configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py + In Collection: I3D + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 100 + FLOPs: 43564040192 + Parameters: 28043472 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: i3d_r50_32x2x1_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 73.27 + Top 5 Accuracy: 90.92 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_256p_32x2x1_100e_kinetics400_rgb/20200725_031555.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_256p_32x2x1_100e_kinetics400_rgb/20200725_031555.log + Weights: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_256p_32x2x1_100e_kinetics400_rgb/i3d_r50_256p_32x2x1_100e_kinetics400_rgb_20200801-7d9f44de.pth +- Config: configs/recognition/i3d/i3d_r50_video_32x2x1_100e_kinetics400_rgb.py + In Collection: I3D + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 100 + FLOPs: 43564040192 + Parameters: 28043472 + Pretrained: ImageNet + Resolution: short-side 256p + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: i3d_r50_video_32x2x1_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 72.85 + Top 5 Accuracy: 90.75 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_video_32x2x1_100e_kinetics400_rgb/20200706_143014.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_video_32x2x1_100e_kinetics400_rgb/20200706_143014.log + Weights: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_video_32x2x1_100e_kinetics400_rgb/i3d_r50_video_32x2x1_100e_kinetics400_rgb_20200826-e31c6f52.pth +- Config: configs/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb.py + In Collection: I3D + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 100 + FLOPs: 43564040192 + Parameters: 28043472 + Pretrained: ImageNet + Resolution: 340x256 + Training Data: Kinetics-400 + Training Resources: 16 GPUs + Modality: RGB + Name: i3d_r50_dense_32x2x1_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 72.77 + Top 5 Accuracy: 90.57 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb/20200616_230011.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb/20200616_230011.log + Weights: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb/i3d_r50_dense_32x2x1_100e_kinetics400_rgb_20200616-2bbb4361.pth +- Config: configs/recognition/i3d/i3d_r50_dense_32x2x1_100e_kinetics400_rgb.py + In Collection: I3D + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 100 + FLOPs: 43564040192 + Parameters: 28043472 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: i3d_r50_dense_32x2x1_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 73.48 + Top 5 Accuracy: 91.0 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_256p_32x2x1_100e_kinetics400_rgb/20200725_031604.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_256p_32x2x1_100e_kinetics400_rgb/20200725_031604.log + Weights: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_dense_256p_32x2x1_100e_kinetics400_rgb/i3d_r50_dense_256p_32x2x1_100e_kinetics400_rgb_20200725-24eb54cc.pth +- Config: configs/recognition/i3d/i3d_r50_lazy_32x2x1_100e_kinetics400_rgb.py + In Collection: I3D + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 100 + FLOPs: 43564040192 + Parameters: 28043472 + Pretrained: ImageNet + Resolution: 340x256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: i3d_r50_lazy_32x2x1_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 72.32 + Top 5 Accuracy: 90.72 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_32x2x1_100e_kinetics400_rgb/20200612_233836.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_32x2x1_100e_kinetics400_rgb/20200612_233836.log + Weights: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_32x2x1_100e_kinetics400_rgb/i3d_r50_fast_32x2x1_100e_kinetics400_rgb_20200612-000e4d2a.pth +- Config: configs/recognition/i3d/i3d_r50_lazy_32x2x1_100e_kinetics400_rgb.py + In Collection: I3D + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 100 + FLOPs: 43564040192 + Parameters: 28043472 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: i3d_r50_lazy_32x2x1_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 73.24 + Top 5 Accuracy: 90.99 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_256p_32x2x1_100e_kinetics400_rgb/20200725_031457.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_256p_32x2x1_100e_kinetics400_rgb/20200725_031457.log + Weights: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_r50_fast_256p_32x2x1_100e_kinetics400_rgb/i3d_r50_fast_256p_32x2x1_100e_kinetics400_rgb_20200817-4e90d1d5.pth +- Config: configs/recognition/i3d/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb.py + In Collection: I3D + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 100 + FLOPs: 54334488576 + Parameters: 35397840 + Pretrained: ImageNet + Resolution: short-side 256p + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 74.71 + Top 5 Accuracy: 91.81 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb/20200813_034054.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb/20200813_034054.log + Weights: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb/i3d_nl_embedded_gaussian_r50_32x2x1_100e_kinetics400_rgb_20200813-6e6aef1b.pth +- Config: configs/recognition/i3d/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb.py + In Collection: I3D + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 100 + FLOPs: 48962109440 + Parameters: 31723728 + Pretrained: ImageNet + Resolution: short-side 256p + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 73.37 + Top 5 Accuracy: 91.26 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb/20200813_034909.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb/20200813_034909.log + Weights: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb/i3d_nl_gaussian_r50_32x2x1_100e_kinetics400_rgb_20200815-17f84aa2.pth +- Config: configs/recognition/i3d/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb.py + In Collection: I3D + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 100 + FLOPs: 54334488576 + Parameters: 35397840 + Pretrained: ImageNet + Resolution: short-side 256p + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 73.92 + Top 5 Accuracy: 91.59 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb/20200814_044208.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb/20200814_044208.log + Weights: https://download.openmmlab.com/mmaction/recognition/i3d/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb/i3d_nl_dot_product_r50_32x2x1_100e_kinetics400_rgb_20200814-7c30d5bb.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/README.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/README.md new file mode 100644 index 00000000..daeda154 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/README.md @@ -0,0 +1,80 @@ +# Omni-sourced Webly-supervised Learning for Video Recognition + +[Omni-sourced Webly-supervised Learning for Video Recognition](https://arxiv.org/abs/2003.13042) + +[Dataset](https://docs.google.com/forms/d/e/1FAIpQLSd8_GlmHzG8FcDbW-OEu__G7qLgOSYZpH-i5vYVJcu7wcb_TQ/viewform?usp=sf_link) + +## Abstract + + + +We introduce OmniSource, a novel framework for leveraging web data to train video recognition models. OmniSource overcomes the barriers between data formats, such as images, short videos, and long untrimmed videos for webly-supervised learning. First, data samples with multiple formats, curated by task-specific data collection and automatically filtered by a teacher model, are transformed into a unified form. Then a joint-training strategy is proposed to deal with the domain gaps between multiple data sources and formats in webly-supervised learning. Several good practices, including data balancing, resampling, and cross-dataset mixup are adopted in joint training. Experiments show that by utilizing data from multiple sources and formats, OmniSource is more data-efficient in training. With only 3.5M images and 800K minutes videos crawled from the internet without human labeling (less than 2% of prior works), our models learned with OmniSource improve Top-1 accuracy of 2D- and 3D-ConvNet baseline models by 3.0% and 3.9%, respectively, on the Kinetics-400 benchmark. With OmniSource, we establish new records with different pretraining strategies for video recognition. Our best models achieve 80.4%, 80.5%, and 83.6 Top-1 accuracies on the Kinetics-400 benchmark respectively for training-from-scratch, ImageNet pre-training and IG-65M pre-training. + + + +
+ +
+ +## Results and Models + +### Kinetics-400 Model Release + +We currently released 4 models trained with OmniSource framework, including both 2D and 3D architectures. We compare the performance of models trained with or without OmniSource in the following table. + +| Model | Modality | Pretrained | Backbone | Input | Resolution | Top-1 (Baseline / OmniSource (Delta)) | Top-5 (Baseline / OmniSource (Delta))) | Download | +| :------: | :------: | :--------: | :-------: | :---: | :------------: | :-----------------------------------: | :------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| TSN | RGB | ImageNet | ResNet50 | 3seg | 340x256 | 70.6 / 73.6 (+ 3.0) | 89.4 / 91.0 (+ 1.6) | [Baseline](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth) / [OmniSource](https://download.openmmlab.com/mmaction/recognition/tsn/omni/tsn_imagenet_pretrained_r50_omni_1x1x3_kinetics400_rgb_20200926-54192355.pth) | +| TSN | RGB | IG-1B | ResNet50 | 3seg | short-side 320 | 73.1 / 75.7 (+ 2.6) | 90.4 / 91.9 (+ 1.5) | [Baseline](https://download.openmmlab.com/mmaction/recognition/tsn/omni/tsn_1G1B_pretrained_r50_without_omni_1x1x3_kinetics400_rgb_20200926-c133dd49.pth) / [OmniSource](https://download.openmmlab.com/mmaction/recognition/tsn/omni/tsn_1G1B_pretrained_r50_omni_1x1x3_kinetics400_rgb_20200926-2863fed0.pth) | +| SlowOnly | RGB | Scratch | ResNet50 | 4x16 | short-side 320 | 72.9 / 76.8 (+ 3.9) | 90.9 / 92.5 (+ 1.6) | [Baseline](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/slowonly_r50_4x16x1_256e_kinetics400_rgb_20200704-a69556c6.pth) / [OmniSource](https://download.openmmlab.com/mmaction/recognition/slowonly/omni/slowonly_r50_omni_4x16x1_kinetics400_rgb_20200926-51b1f7ea.pth) | +| SlowOnly | RGB | Scratch | ResNet101 | 8x8 | short-side 320 | 76.5 / 80.4 (+ 3.9) | 92.7 / 94.4 (+ 1.7) | [Baseline](https://download.openmmlab.com/mmaction/recognition/slowonly/omni/slowonly_r101_without_omni_8x8x1_kinetics400_rgb_20200926-0c730aef.pth) / [OmniSource](https://download.openmmlab.com/mmaction/recognition/slowonly/omni/slowonly_r101_omni_8x8x1_kinetics400_rgb_20200926-b5dbb701.pth) | + +1. The validation set of Kinetics400 we used consists of 19796 videos. These videos are available at [Kinetics400-Validation](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB). The corresponding [data list](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (each line is of the format 'video_id, num_frames, label_index') and the [label map](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) are also available. + +## Benchmark on Mini-Kinetics + +We release a subset of web dataset used in the OmniSource paper. Specifically, we release the web data in the 200 classes of [Mini-Kinetics](https://arxiv.org/pdf/1712.04851.pdf). The statistics of those datasets is detailed in [preparing_omnisource](/tools/data/omnisource/README.md). To obtain those data, you need to fill in a [data request form](https://docs.google.com/forms/d/e/1FAIpQLSd8_GlmHzG8FcDbW-OEu__G7qLgOSYZpH-i5vYVJcu7wcb_TQ/viewform?usp=sf_link). After we received your request, the download link of these data will be send to you. For more details on the released OmniSource web dataset, please refer to [preparing_omnisource](/tools/data/omnisource/README.md). + +We benchmark the OmniSource framework on the released subset, results are listed in the following table (we report the Top-1 and Top-5 accuracy on Mini-Kinetics validation). The benchmark can be used as a baseline for video recognition with web data. + +### TSN-8seg-ResNet50 + +| Model | Modality | Pretrained | Backbone | Input | Resolution | top1 acc | top5 acc | ckpt | json | log | +| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -------- | ---------- | -------- | ----- | -------------- | :------: | :------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_1x1x8_100e_minikinetics_rgb](/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_rgb.py) | RGB | ImageNet | ResNet50 | 3seg | short-side 320 | 77.4 | 93.6 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/baseline/tsn_r50_1x1x8_100e_minikinetics_rgb_20201030-b4eaf92b.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/baseline/tsn_r50_1x1x8_100e_minikinetics_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/baseline/tsn_r50_1x1x8_100e_minikinetics_rgb_20201030.log) | +| [tsn_r50_1x1x8_100e_minikinetics_googleimage_rgb](/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_googleimage_rgb.py) | RGB | ImageNet | ResNet50 | 3seg | short-side 320 | 78.0 | 93.6 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/googleimage/tsn_r50_1x1x8_100e_minikinetics_googleimage_rgb_20201030-23966b4b.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/googleimage/tsn_r50_1x1x8_100e_minikinetics_googleimage_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/googleimage/tsn_r50_1x1x8_100e_minikinetics_googleimage_rgb_20201030.log) | +| [tsn_r50_1x1x8_100e_minikinetics_webimage_rgb](/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_webimage_rgb.py) | RGB | ImageNet | ResNet50 | 3seg | short-side 320 | 78.6 | 93.6 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/webimage/tsn_r50_1x1x8_100e_minikinetics_webimage_rgb_20201030-66f5e046.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/webimage/tsn_r50_1x1x8_100e_minikinetics_webimage_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/webimage/tsn_r50_1x1x8_100e_minikinetics_webimage_rgb_20201030.log) | +| [tsn_r50_1x1x8_100e_minikinetics_insvideo_rgb](/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_insvideo_rgb.py) | RGB | ImageNet | ResNet50 | 3seg | short-side 320 | 80.6 | 95.0 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/insvideo/tsn_r50_1x1x8_100e_minikinetics_insvideo_rgb_20201030-011f984d.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/insvideo/tsn_r50_1x1x8_100e_minikinetics_insvideo_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/insvideo/tsn_r50_1x1x8_100e_minikinetics_insvideo_rgb_20201030.log) | +| [tsn_r50_1x1x8_100e_minikinetics_kineticsraw_rgb](/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_kineticsraw_rgb.py) | RGB | ImageNet | ResNet50 | 3seg | short-side 320 | 78.6 | 93.2 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/kineticsraw/tsn_r50_1x1x8_100e_minikinetics_kineticsraw_rgb_20201030-59f5d064.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/kineticsraw/tsn_r50_1x1x8_100e_minikinetics_kineticsraw_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/kineticsraw/tsn_r50_1x1x8_100e_minikinetics_kineticsraw_rgb_20201030.log) | +| [tsn_r50_1x1x8_100e_minikinetics_omnisource_rgb](/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_omnisource_rgb.py) | RGB | ImageNet | ResNet50 | 3seg | short-side 320 | 81.3 | 94.8 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/omnisource/tsn_r50_1x1x8_100e_minikinetics_omnisource_rgb_20201030-0f56ef51.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/omnisource/tsn_r50_1x1x8_100e_minikinetics_omnisource_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/omnisource/tsn_r50_1x1x8_100e_minikinetics_omnisource_rgb_20201030.log) | + +### SlowOnly-8x8-ResNet50 + +| Model | Modality | Pretrained | Backbone | Input | Resolution | top1 acc | top5 acc | ckpt | json | log | +| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | -------- | ---------- | -------- | ----- | -------------- | :------: | :------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_8x8x1_256e_minikinetics_rgb](/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_rgb.py) | RGB | None | ResNet50 | 8x8 | short-side 320 | 78.6 | 93.9 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/baseline/slowonly_r50_8x8x1_256e_minikinetics_rgb_20201030-168eb098.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/baseline/slowonly_r50_8x8x1_256e_minikinetics_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/baseline/slowonly_r50_8x8x1_256e_minikinetics_rgb_20201030.log) | +| [slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb](/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb.py) | RGB | None | ResNet50 | 8x8 | short-side 320 | 80.8 | 95.0 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/googleimage/slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb_20201030-7da6dfc3.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/googleimage/slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/googleimage/slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb_20201030.log) | +| [slowonly_r50_8x8x1_256e_minikinetics_webimage_rgb](/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_webimage_rgb.py) | RGB | None | ResNet50 | 8x8 | short-side 320 | 81.3 | 95.2 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/webimage/slowonly_r50_8x8x1_256e_minikinetics_webimage_rgb_20201030-c36616e9.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/webimage/slowonly_r50_8x8x1_256e_minikinetics_webimage_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/webimage/slowonly_r50_8x8x1_256e_minikinetics_webimage_rgb_20201030.log) | +| [slowonly_r50_8x8x1_256e_minikinetics_insvideo_rgb](/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_insvideo_rgb.py) | RGB | None | ResNet50 | 8x8 | short-side 320 | 82.4 | 95.6 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/insvideo/slowonly_r50_8x8x1_256e_minikinetics_insvideo_rgb_20201030-e2890e8d.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/insvideo/slowonly_r50_8x8x1_256e_minikinetics_insvideo_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/insvideo/slowonly_r50_8x8x1_256e_minikinetics_insvideo_rgb_20201030.log) | +| [slowonly_r50_8x8x1_256e_minikinetics_kineticsraw_rgb](/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_kineticsraw_rgb.py) | RGB | None | ResNet50 | 8x8 | short-side 320 | 80.3 | 94.5 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/kineticsraw/slowonly_r50_8x8x1_256e_minikinetics_kineticsraw_rgb_20201030-62974bac.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/kineticsraw/slowonly_r50_8x8x1_256e_minikinetics_kineticsraw_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/kineticsraw/slowonly_r50_8x8x1_256e_minikinetics_kineticsraw_rgb_20201030.log) | +| [slowonly_r50_8x8x1_256e_minikinetics_omnisource_rgb](/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb.py) | RGB | None | ResNet50 | 8x8 | short-side 320 | 82.9 | 95.8 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/omnisource/slowonly_r50_8x8x1_256e_minikinetics_omnisource_rgb_20201030-284cfd3b.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/omnisource/slowonly_r50_8x8x1_256e_minikinetics_omnisource_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/omnisource/slowonly_r50_8x8x1_256e_minikinetics_omnisource_rgb_20201030.log) | + +We also list the benchmark in the original paper which run on Kinetics-400 for comparison: + +| Model | Baseline | +GG-img | +\[GG-IG\]-img | +IG-vid | +KRaw | OmniSource | +| :--------------------: | :---------: | :---------: | :------------: | :---------: | :---------: | :---------: | +| TSN-3seg-ResNet50 | 70.6 / 89.4 | 71.5 / 89.5 | 72.0 / 90.0 | 72.0 / 90.3 | 71.7 / 89.6 | 73.6 / 91.0 | +| SlowOnly-4x16-ResNet50 | 73.8 / 90.9 | 74.5 / 91.4 | 75.2 / 91.6 | 75.2 / 91.7 | 74.5 / 91.1 | 76.6 / 92.5 | + +## Citation + + + +```BibTeX +@article{duan2020omni, + title={Omni-sourced Webly-supervised Learning for Video Recognition}, + author={Duan, Haodong and Zhao, Yue and Xiong, Yuanjun and Liu, Wentao and Lin, Dahua}, + journal={arXiv preprint arXiv:2003.13042}, + year={2020} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/README_zh-CN.md new file mode 100644 index 00000000..ac872587 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/README_zh-CN.md @@ -0,0 +1,72 @@ +# Omni-sourced Webly-supervised Learning for Video Recognition + +[Haodong Duan](https://github.com/kennymckormick), [Yue Zhao](https://github.com/zhaoyue-zephyrus), [Yuanjun Xiong](https://github.com/yjxiong), Wentao Liu, [Dahua Lin](https://github.com/lindahua) + +In ECCV, 2020. [Paper](https://arxiv.org/abs/2003.13042), [Dataset](https://docs.google.com/forms/d/e/1FAIpQLSd8_GlmHzG8FcDbW-OEu__G7qLgOSYZpH-i5vYVJcu7wcb_TQ/viewform?usp=sf_link) + +![pipeline](https://github.com/open-mmlab/mmaction2/blob/master/configs/recognition/omnisource/pipeline.png?raw=true) + +## 模型库 + +### Kinetics-400 + +MMAction2 当前公开了 4 个 OmniSource 框架训练的模型,包含 2D 架构与 3D 架构。下表比较了使用或不适用 OmniSource 框架训练得的模型在 Kinetics-400 上的精度: + +| 模型 | 模态 | 预训练 | 主干网络 | 输入 | 分辨率 | Top-1 准确率(Baseline / OmniSource (Delta)) | Top-5 准确率(Baseline / OmniSource (Delta))) | 模型下载链接 | +| :------: | :--: | :------: | :-------: | :--: | :------------: | :-----------------------------------------: | :------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| TSN | RGB | ImageNet | ResNet50 | 3seg | 340x256 | 70.6 / 73.6 (+ 3.0) | 89.4 / 91.0 (+ 1.6) | [Baseline](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth) / [OmniSource](https://download.openmmlab.com/mmaction/recognition/tsn/omni/tsn_imagenet_pretrained_r50_omni_1x1x3_kinetics400_rgb_20200926-54192355.pth) | +| TSN | RGB | IG-1B | ResNet50 | 3seg | short-side 320 | 73.1 / 75.7 (+ 2.6) | 90.4 / 91.9 (+ 1.5) | [Baseline](https://download.openmmlab.com/mmaction/recognition/tsn/omni/tsn_1G1B_pretrained_r50_without_omni_1x1x3_kinetics400_rgb_20200926-c133dd49.pth) / [OmniSource](https://download.openmmlab.com/mmaction/recognition/tsn/omni/tsn_1G1B_pretrained_r50_omni_1x1x3_kinetics400_rgb_20200926-2863fed0.pth) | +| SlowOnly | RGB | None | ResNet50 | 4x16 | short-side 320 | 72.9 / 76.8 (+ 3.9) | 90.9 / 92.5 (+ 1.6) | [Baseline](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/slowonly_r50_4x16x1_256e_kinetics400_rgb_20200704-a69556c6.pth) / [OmniSource](https://download.openmmlab.com/mmaction/recognition/slowonly/omni/slowonly_r50_omni_4x16x1_kinetics400_rgb_20200926-51b1f7ea.pth) | +| SlowOnly | RGB | None | ResNet101 | 8x8 | short-side 320 | 76.5 / 80.4 (+ 3.9) | 92.7 / 94.4 (+ 1.7) | [Baseline](https://download.openmmlab.com/mmaction/recognition/slowonly/omni/slowonly_r101_without_omni_8x8x1_kinetics400_rgb_20200926-0c730aef.pth) / [OmniSource](https://download.openmmlab.com/mmaction/recognition/slowonly/omni/slowonly_r101_omni_8x8x1_kinetics400_rgb_20200926-b5dbb701.pth) | + +1. 我们使用的 Kinetics400 验证集包含 19796 个视频,用户可以从 [验证集视频](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB) 下载这些视频。同时也提供了对应的 [数据列表](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (每行格式为:视频 ID,视频帧数目,类别序号)以及 [标签映射](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) (类别序号到类别名称)。 + +## Mini-Kinetics 上的基准测试 + +OmniSource 项目当前公开了所采集网络数据的一个子集,涉及 [Mini-Kinetics](https://arxiv.org/pdf/1712.04851.pdf) 中的 200 个动作类别。[OmniSource 数据集准备](/tools/data/omnisource/README_zh-CN.md) 中记录了这些数据集的详细统计信息。用户可以通过填写 [申请表](https://docs.google.com/forms/d/e/1FAIpQLSd8_GlmHzG8FcDbW-OEu__G7qLgOSYZpH-i5vYVJcu7wcb_TQ/viewform?usp=sf_link) 获取这些数据,在完成填写后,数据下载链接会被发送至用户邮箱。更多关于 OmniSource 网络数据集的信息请参照 [OmniSource 数据集准备](/tools/data/omnisource/README_zh-CN.md)。 + +MMAction2 在公开的数据集上进行了 OmniSource 框架的基准测试,下表记录了详细的结果(在 Mini-Kinetics 验证集上的精度),这些结果可以作为使用网络数据训练视频识别任务的基线。 + +### TSN-8seg-ResNet50 + +| 模型 | 模态 | 预训练 | 主干网络 | 输入 | 分辨率 | Top-1 准确率 | Top-5 准确率 | ckpt | json | log | +| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--: | :------: | :------: | :--: | :------------: | :----------: | :----------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_1x1x8_100e_minikinetics_rgb](/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_rgb.py) | RGB | ImageNet | ResNet50 | 3seg | short-side 320 | 77.4 | 93.6 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/baseline/tsn_r50_1x1x8_100e_minikinetics_rgb_20201030-b4eaf92b.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/baseline/tsn_r50_1x1x8_100e_minikinetics_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/baseline/tsn_r50_1x1x8_100e_minikinetics_rgb_20201030.log) | +| [tsn_r50_1x1x8_100e_minikinetics_googleimage_rgb](/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_googleimage_rgb.py) | RGB | ImageNet | ResNet50 | 3seg | short-side 320 | 78.0 | 93.6 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/googleimage/tsn_r50_1x1x8_100e_minikinetics_googleimage_rgb_20201030-23966b4b.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/googleimage/tsn_r50_1x1x8_100e_minikinetics_googleimage_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/googleimage/tsn_r50_1x1x8_100e_minikinetics_googleimage_rgb_20201030.log) | +| [tsn_r50_1x1x8_100e_minikinetics_webimage_rgb](/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_webimage_rgb.py) | RGB | ImageNet | ResNet50 | 3seg | short-side 320 | 78.6 | 93.6 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/webimage/tsn_r50_1x1x8_100e_minikinetics_webimage_rgb_20201030-66f5e046.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/webimage/tsn_r50_1x1x8_100e_minikinetics_webimage_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/webimage/tsn_r50_1x1x8_100e_minikinetics_webimage_rgb_20201030.log) | +| [tsn_r50_1x1x8_100e_minikinetics_insvideo_rgb](/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_insvideo_rgb.py) | RGB | ImageNet | ResNet50 | 3seg | short-side 320 | 80.6 | 95.0 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/insvideo/tsn_r50_1x1x8_100e_minikinetics_insvideo_rgb_20201030-011f984d.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/insvideo/tsn_r50_1x1x8_100e_minikinetics_insvideo_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/insvideo/tsn_r50_1x1x8_100e_minikinetics_insvideo_rgb_20201030.log) | +| [tsn_r50_1x1x8_100e_minikinetics_kineticsraw_rgb](/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_kineticsraw_rgb.py) | RGB | ImageNet | ResNet50 | 3seg | short-side 320 | 78.6 | 93.2 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/kineticsraw/tsn_r50_1x1x8_100e_minikinetics_kineticsraw_rgb_20201030-59f5d064.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/kineticsraw/tsn_r50_1x1x8_100e_minikinetics_kineticsraw_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/kineticsraw/tsn_r50_1x1x8_100e_minikinetics_kineticsraw_rgb_20201030.log) | +| [tsn_r50_1x1x8_100e_minikinetics_omnisource_rgb](/configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_omnisource_rgb.py) | RGB | ImageNet | ResNet50 | 3seg | short-side 320 | 81.3 | 94.8 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/omnisource/tsn_r50_1x1x8_100e_minikinetics_omnisource_rgb_20201030-0f56ef51.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/omnisource/tsn_r50_1x1x8_100e_minikinetics_omnisource_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/omnisource/tsn_r50_1x1x8_100e_minikinetics_omnisource_rgb_20201030.log) | + +### SlowOnly-8x8-ResNet50 + +| 模型 | 模态 | 预训练 | 主干网络 | 输入 | 分辨率 | Top-1 准确率 | Top-5 准确率 | ckpt | json | log | +| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--: | :----: | :------: | :--: | :------------: | :----------: | :----------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_8x8x1_256e_minikinetics_rgb](/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_rgb.py) | RGB | None | ResNet50 | 8x8 | short-side 320 | 78.6 | 93.9 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/baseline/slowonly_r50_8x8x1_256e_minikinetics_rgb_20201030-168eb098.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/baseline/slowonly_r50_8x8x1_256e_minikinetics_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/baseline/slowonly_r50_8x8x1_256e_minikinetics_rgb_20201030.log) | +| [slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb](/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb.py) | RGB | None | ResNet50 | 8x8 | short-side 320 | 80.8 | 95.0 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/googleimage/slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb_20201030-7da6dfc3.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/googleimage/slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/googleimage/slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb_20201030.log) | +| [slowonly_r50_8x8x1_256e_minikinetics_webimage_rgb](/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_webimage_rgb.py) | RGB | None | ResNet50 | 8x8 | short-side 320 | 81.3 | 95.2 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/webimage/slowonly_r50_8x8x1_256e_minikinetics_webimage_rgb_20201030-c36616e9.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/webimage/slowonly_r50_8x8x1_256e_minikinetics_webimage_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/webimage/slowonly_r50_8x8x1_256e_minikinetics_webimage_rgb_20201030.log) | +| [slowonly_r50_8x8x1_256e_minikinetics_insvideo_rgb](/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_insvideo_rgb.py) | RGB | None | ResNet50 | 8x8 | short-side 320 | 82.4 | 95.6 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/insvideo/slowonly_r50_8x8x1_256e_minikinetics_insvideo_rgb_20201030-e2890e8d.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/insvideo/slowonly_r50_8x8x1_256e_minikinetics_insvideo_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/insvideo/slowonly_r50_8x8x1_256e_minikinetics_insvideo_rgb_20201030.log) | +| [slowonly_r50_8x8x1_256e_minikinetics_kineticsraw_rgb](/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_kineticsraw_rgb.py) | RGB | None | ResNet50 | 8x8 | short-side 320 | 80.3 | 94.5 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/kineticsraw/slowonly_r50_8x8x1_256e_minikinetics_kineticsraw_rgb_20201030-62974bac.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/kineticsraw/slowonly_r50_8x8x1_256e_minikinetics_kineticsraw_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/kineticsraw/slowonly_r50_8x8x1_256e_minikinetics_kineticsraw_rgb_20201030.log) | +| [slowonly_r50_8x8x1_256e_minikinetics_omnisource_rgb](/configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb.py) | RGB | None | ResNet50 | 8x8 | short-side 320 | 82.9 | 95.8 | [ckpt](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/omnisource/slowonly_r50_8x8x1_256e_minikinetics_omnisource_rgb_20201030-284cfd3b.pth) | [json](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/omnisource/slowonly_r50_8x8x1_256e_minikinetics_omnisource_rgb_20201030.json) | [log](https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/omnisource/slowonly_r50_8x8x1_256e_minikinetics_omnisource_rgb_20201030.log) | + +下表列出了原论文中在 Kinetics-400 上进行基准测试的结果供参考: + +| Model | Baseline | +GG-img | +\[GG-IG\]-img | +IG-vid | +KRaw | OmniSource | +| :--------------------: | :---------: | :---------: | :------------: | :---------: | :---------: | :---------: | +| TSN-3seg-ResNet50 | 70.6 / 89.4 | 71.5 / 89.5 | 72.0 / 90.0 | 72.0 / 90.3 | 71.7 / 89.6 | 73.6 / 91.0 | +| SlowOnly-4x16-ResNet50 | 73.8 / 90.9 | 74.5 / 91.4 | 75.2 / 91.6 | 75.2 / 91.7 | 74.5 / 91.1 | 76.6 / 92.5 | + +## 注: + +如果 OmniSource 项目对您的研究有所帮助,请使用以下 BibTex 项进行引用: + + + +```BibTeX +@article{duan2020omni, + title={Omni-sourced Webly-supervised Learning for Video Recognition}, + author={Duan, Haodong and Zhao, Yue and Xiong, Yuanjun and Liu, Wentao and Lin, Dahua}, + journal={arXiv preprint arXiv:2003.13042}, + year={2020} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/metafile.yml new file mode 100644 index 00000000..ae3db16e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/metafile.yml @@ -0,0 +1,388 @@ +Collections: +- Name: OmniSource + README: configs/recognition/omnisource/README.md + Paper: + URL: https://arxiv.org/abs/2003.13042 + Title: Omni-sourced Webly-supervised Learning for Video Recognition + +Models: +- Config: configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_rgb.py + In Collection: OmniSource + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 100 + FLOPs: 134526976000 + Input: 3seg + Modality: RGB + Parameters: 23917832 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: MiniKinetics + Modality: RGB + Name: tsn_r50_1x1x8_100e_minikinetics_rgb + Results: + - Dataset: MiniKinetics + Metrics: + Top 1 Accuracy: 77.4 + Top 5 Accuracy: 93.6 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/baseline/tsn_r50_1x1x8_100e_minikinetics_rgb_20201030.json + Training Log: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/baseline/tsn_r50_1x1x8_100e_minikinetics_rgb_20201030.log + Weights: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/baseline/tsn_r50_1x1x8_100e_minikinetics_rgb_20201030-b4eaf92b.pth +- Config: configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_googleimage_rgb.py + In Collection: OmniSource + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 100 + FLOPs: 134526976000 + Input: 3seg + Modality: RGB + Parameters: 23917832 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: MiniKinetics + Modality: RGB + Name: tsn_r50_1x1x8_100e_minikinetics_googleimage_rgb + Results: + - Dataset: MiniKinetics + Metrics: + Top 1 Accuracy: 78.0 + Top 5 Accuracy: 93.6 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/googleimage/tsn_r50_1x1x8_100e_minikinetics_googleimage_rgb_20201030.json + Training Log: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/googleimage/tsn_r50_1x1x8_100e_minikinetics_googleimage_rgb_20201030.log + Weights: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/googleimage/tsn_r50_1x1x8_100e_minikinetics_googleimage_rgb_20201030-23966b4b.pth +- Config: configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_webimage_rgb.py + In Collection: OmniSource + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 100 + FLOPs: 134526976000 + Input: 3seg + Modality: RGB + Parameters: 23917832 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: MiniKinetics + Modality: RGB + Name: tsn_r50_1x1x8_100e_minikinetics_webimage_rgb + Results: + - Dataset: MiniKinetics + Metrics: + Top 1 Accuracy: 78.6 + Top 5 Accuracy: 93.6 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/webimage/tsn_r50_1x1x8_100e_minikinetics_webimage_rgb_20201030.json + Training Log: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/webimage/tsn_r50_1x1x8_100e_minikinetics_webimage_rgb_20201030.log + Weights: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/webimage/tsn_r50_1x1x8_100e_minikinetics_webimage_rgb_20201030-66f5e046.pth +- Config: configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_insvideo_rgb.py + In Collection: OmniSource + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 100 + FLOPs: 134526976000 + Input: 3seg + Modality: RGB + Parameters: 23917832 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: MiniKinetics + Modality: RGB + Name: tsn_r50_1x1x8_100e_minikinetics_insvideo_rgb + Results: + - Dataset: MiniKinetics + Metrics: + Top 1 Accuracy: 80.6 + Top 5 Accuracy: 95.0 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/insvideo/tsn_r50_1x1x8_100e_minikinetics_insvideo_rgb_20201030.json + Training Log: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/insvideo/tsn_r50_1x1x8_100e_minikinetics_insvideo_rgb_20201030.log + Weights: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/insvideo/tsn_r50_1x1x8_100e_minikinetics_insvideo_rgb_20201030-011f984d.pth +- Config: configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_kineticsraw_rgb.py + In Collection: OmniSource + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 100 + FLOPs: 134526976000 + Input: 3seg + Modality: RGB + Parameters: 23917832 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: MiniKinetics + Modality: RGB + Name: tsn_r50_1x1x8_100e_minikinetics_kineticsraw_rgb + Results: + - Dataset: MiniKinetics + Metrics: + Top 1 Accuracy: 78.6 + Top 5 Accuracy: 93.2 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/kineticsraw/tsn_r50_1x1x8_100e_minikinetics_kineticsraw_rgb_20201030.json + Training Log: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/kineticsraw/tsn_r50_1x1x8_100e_minikinetics_kineticsraw_rgb_20201030.log + Weights: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/kineticsraw/tsn_r50_1x1x8_100e_minikinetics_kineticsraw_rgb_20201030-59f5d064.pth +- Config: configs/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics/tsn_r50_1x1x8_100e_minikinetics_omnisource_rgb.py + In Collection: OmniSource + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 100 + FLOPs: 134526976000 + Input: 3seg + Modality: RGB + Parameters: 23917832 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: MiniKinetics + Modality: RGB + Name: tsn_r50_1x1x8_100e_minikinetics_omnisource_rgb + Results: + - Dataset: MiniKinetics + Metrics: + Top 1 Accuracy: 81.3 + Top 5 Accuracy: 94.8 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/omnisource/tsn_r50_1x1x8_100e_minikinetics_omnisource_rgb_20201030.json + Training Log: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/omnisource/tsn_r50_1x1x8_100e_minikinetics_omnisource_rgb_20201030.log + Weights: https://download.openmmlab.com/mmaction/recognition/omnisource/tsn_r50_1x1x8_100e_minikinetics_rgb/omnisource/tsn_r50_1x1x8_100e_minikinetics_omnisource_rgb_20201030-0f56ef51.pth +- Config: configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_rgb.py + In Collection: OmniSource + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 256 + FLOPs: 54860070912 + Input: 8x8 + Modality: RGB + Parameters: 32044296 + Pretrained: None + Resolution: short-side 320 + Training Data: MiniKinetics + Modality: RGB + Name: slowonly_r50_8x8x1_256e_minikinetics_rgb + Results: + - Dataset: MiniKinetics + Metrics: + Top 1 Accuracy: 78.6 + Top 5 Accuracy: 93.9 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/baseline/slowonly_r50_8x8x1_256e_minikinetics_rgb_20201030.json + Training Log: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/baseline/slowonly_r50_8x8x1_256e_minikinetics_rgb_20201030.log + Weights: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/baseline/slowonly_r50_8x8x1_256e_minikinetics_rgb_20201030-168eb098.pth +- Config: configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb.py + In Collection: OmniSource + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 256 + FLOPs: 54860070912 + Input: 8x8 + Modality: RGB + Parameters: 32044296 + Pretrained: None + Resolution: short-side 320 + Training Data: MiniKinetics + Modality: RGB + Name: slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb + Results: + - Dataset: MiniKinetics + Metrics: + Top 1 Accuracy: 80.8 + Top 5 Accuracy: 95.0 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/googleimage/slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb_20201030.json + Training Log: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/googleimage/slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb_20201030.log + Weights: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/googleimage/slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb_20201030-7da6dfc3.pth +- Config: configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_webimage_rgb.py + In Collection: OmniSource + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 256 + FLOPs: 54860070912 + Input: 8x8 + Modality: RGB + Parameters: 32044296 + Pretrained: None + Resolution: short-side 320 + Training Data: MiniKinetics + Modality: RGB + Name: slowonly_r50_8x8x1_256e_minikinetics_webimage_rgb + Results: + - Dataset: MiniKinetics + Metrics: + Top 1 Accuracy: 81.3 + Top 5 Accuracy: 95.2 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/webimage/slowonly_r50_8x8x1_256e_minikinetics_webimage_rgb_20201030.json + Training Log: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/webimage/slowonly_r50_8x8x1_256e_minikinetics_webimage_rgb_20201030.log + Weights: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/webimage/slowonly_r50_8x8x1_256e_minikinetics_webimage_rgb_20201030-c36616e9.pth +- Config: configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_insvideo_rgb.py + In Collection: OmniSource + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 256 + FLOPs: 54860070912 + Input: 8x8 + Modality: RGB + Parameters: 32044296 + Pretrained: None + Resolution: short-side 320 + Training Data: MiniKinetics + Modality: RGB + Name: slowonly_r50_8x8x1_256e_minikinetics_insvideo_rgb + Results: + - Dataset: MiniKinetics + Metrics: + Top 1 Accuracy: 82.4 + Top 5 Accuracy: 95.6 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/insvideo/slowonly_r50_8x8x1_256e_minikinetics_insvideo_rgb_20201030.json + Training Log: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/insvideo/slowonly_r50_8x8x1_256e_minikinetics_insvideo_rgb_20201030.log + Weights: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/insvideo/slowonly_r50_8x8x1_256e_minikinetics_insvideo_rgb_20201030-e2890e8d.pth +- Config: configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_kineticsraw_rgb.py + In Collection: OmniSource + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 256 + FLOPs: 54860070912 + Input: 8x8 + Modality: RGB + Parameters: 32044296 + Pretrained: None + Resolution: short-side 320 + Training Data: MiniKinetics + Modality: RGB + Name: slowonly_r50_8x8x1_256e_minikinetics_kineticsraw_rgb + Results: + - Dataset: MiniKinetics + Metrics: + Top 1 Accuracy: 80.3 + Top 5 Accuracy: 94.5 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/kineticsraw/slowonly_r50_8x8x1_256e_minikinetics_kineticsraw_rgb_20201030.json + Training Log: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/kineticsraw/slowonly_r50_8x8x1_256e_minikinetics_kineticsraw_rgb_20201030.log + Weights: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/kineticsraw/slowonly_r50_8x8x1_256e_minikinetics_kineticsraw_rgb_20201030-62974bac.pth +- Config: configs/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics/slowonly_r50_8x8x1_256e_minikinetics_googleimage_rgb.py + In Collection: OmniSource + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 256 + FLOPs: 54860070912 + Input: 8x8 + Modality: RGB + Parameters: 32044296 + Pretrained: None + Resolution: short-side 320 + Training Data: MiniKinetics + Modality: RGB + Name: slowonly_r50_8x8x1_256e_minikinetics_omnisource_rgb + Results: + - Dataset: MiniKinetics + Metrics: + Top 1 Accuracy: 82.9 + Top 5 Accuracy: 95.8 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/omnisource/slowonly_r50_8x8x1_256e_minikinetics_omnisource_rgb_20201030.json + Training Log: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/omnisource/slowonly_r50_8x8x1_256e_minikinetics_omnisource_rgb_20201030.log + Weights: https://download.openmmlab.com/mmaction/recognition/omnisource/slowonly_r50_8x8x1_256e_minikinetics_rgb/omnisource/slowonly_r50_8x8x1_256e_minikinetics_omnisource_rgb_20201030-284cfd3b.pth +- Config: configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py + In Collection: OmniSource + Metadata: + Architecture: ResNet50 + Batch Size: 32 + Epochs: 100 + FLOPs: 102997721600 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: 340x256 + Training Data: Kinetics-400 + Modality: RGB + Name: tsn_omnisource_r50_1x1x3_100e_kinetics_rgb + Converted From: + Weights: https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmaction/models/kinetics400/omnisource/tsn_OmniSource_kinetics400_se_rgb_r50_seg3_f1s1_imagenet-4066cb7e.pth + Code: https://github.com/open-mmlab/mmaction + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 73.6 + Top 5 Accuracy: 91.0 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/omni/tsn_imagenet_pretrained_r50_omni_1x1x3_kinetics400_rgb_20200926-54192355.pth +- Config: configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py + In Collection: OmniSource + Metadata: + Architecture: ResNet50 + Batch Size: 32 + Epochs: 100 + FLOPs: 102997721600 + Parameters: 24327632 + Pretrained: IG-1B + Resolution: short-side 320 + Training Data: Kinetics-400 + Modality: RGB + Name: tsn_IG1B_pretrained_omnisource_r50_1x1x3_100e_kinetics_rgb + Converted From: + Weights: https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmaction/models/kinetics400/omnisource/tsn_OmniSource_kinetics400_se_rgb_r50_seg3_f1s1_IG1B-25fc136b.pth + Code: https://github.com/open-mmlab/mmaction/ + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 75.7 + Top 5 Accuracy: 91.9 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/omni/tsn_1G1B_pretrained_r50_omni_1x1x3_kinetics400_rgb_20200926-2863fed0.pth +- Config: configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py + In Collection: OmniSource + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 256 + FLOPs: 27430649856 + Parameters: 32454096 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Modality: RGB + Name: slowonly_r50_omnisource_4x16x1_256e_kinetics400_rgb + Converted From: + Weights: https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmaction/models/kinetics400/omnisource/slowonly_OmniSource_kinetics400_se_rgb_r50_seg1_4x16_scratch-71f7b8ee.pth + Code: https://github.com/open-mmlab/mmaction/ + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 76.8 + Top 5 Accuracy: 92.5 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/omni/slowonly_r50_omni_4x16x1_kinetics400_rgb_20200926-51b1f7ea.pth +- Config: configs/recognition/slowonly/slowonly_r101_8x8x1_196e_kinetics400_rgb.py + In Collection: OmniSource + Metadata: + Architecture: ResNet101 + Batch Size: 8 + Epochs: 196 + FLOPs: 112063447040 + Parameters: 60359120 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Modality: RGB + Name: slowonly_r101_omnisource_8x8x1_196e_kinetics400_rgb + Converted From: + Weights: https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmaction/models/kinetics400/omnisource/slowonly_OmniSource_kinetics400_se_rgb_r101_seg1_8x8_scratch-2f838cb0.pth + Code: https://github.com/open-mmlab/mmaction/ + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 80.4 + Top 5 Accuracy: 94.4 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/omni/slowonly_r101_omni_8x8x1_kinetics400_rgb_20200926-b5dbb701.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/pipeline.png b/openmmlab_test/mmaction2-0.24.1/configs/recognition/omnisource/pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..a3e3a2a046b04ea3f18dd26f007e97d268361b16 GIT binary patch literal 245041 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�iyYd?V|td;gLCDJ-ByI1y;8_P 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

!bj{;~ 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 }_;^A# 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 + +## Abstract + + + +In this paper we discuss several forms of spatiotemporal convolutions for video analysis and study their effects on action recognition. Our motivation stems from the observation that 2D CNNs applied to individual frames of the video have remained solid performers in action recognition. In this work we empirically demonstrate the accuracy advantages of 3D CNNs over 2D CNNs within the framework of residual learning. Furthermore, we show that factorizing the 3D convolutional filters into separate spatial and temporal components yields significantly advantages in accuracy. Our empirical study leads to the design of a new spatiotemporal convolutional block "R(2+1)D" which gives rise to CNNs that achieve results comparable or superior to the state-of-the-art on Sports-1M, Kinetics, UCF101 and HMDB51. + + + +

+ +## Results and Models + +### Kinetics-400 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | inference_time(video/s) | gpu_mem(M) | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------------ | :------------: | :--: | :------: | :------: | :------: | :------: | :---------------------: | :--------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------: | +| [r2plus1d_r34_8x8x1_180e_kinetics400_rgb](/configs/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py) | short-side 256 | 8x4 | ResNet34 | None | 67.30 | 87.65 | x | 5019 | [ckpt](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_256p_8x8x1_180e_kinetics400_rgb/r2plus1d_r34_256p_8x8x1_180e_kinetics400_rgb_20200729-aa94765e.pth) | [log](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_256p_8x8x1_180e_kinetics400_rgb/20200728_021421.log) | [json](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_256p_8x8x1_180e_kinetics400_rgb/20200728_021421.log.json) | +| [r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb](/configs/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb.py) | short-side 256 | 8 | ResNet34 | None | 67.3 | 87.8 | x | 5019 | [ckpt](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb_20200826-ab35a529.pth) | [log](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb/20200724_201360.log.json) | [json](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb/20200724_201360.log) | +| [r2plus1d_r34_8x8x1_180e_kinetics400_rgb](/configs/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py) | short-side 320 | 8x2 | ResNet34 | None | 68.68 | 88.36 | 1.6 (80x3 frames) | 5019 | [ckpt](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb/r2plus1d_r34_8x8x1_180e_kinetics400_rgb_20200618-3fce5629.pth) | [log](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb/r21d_8x8.log) | [json](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb/r2plus1d_r34_8x8_69.58_88.36.log.json) | +| [r2plus1d_r34_32x2x1_180e_kinetics400_rgb](/configs/recognition/r2plus1d/r2plus1d_r34_32x2x1_180e_kinetics400_rgb.py) | short-side 320 | 8x2 | ResNet34 | None | 74.60 | 91.59 | 0.5 (320x3 frames) | 12975 | [ckpt](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_32x2x1_180e_kinetics400_rgb/r2plus1d_r34_32x2x1_180e_kinetics400_rgb_20200618-63462eb3.pth) | [log](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_32x2x1_180e_kinetics400_rgb/r21d_32x2.log) | [json](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_32x2x1_180e_kinetics400_rgb/r2plus1d_r34_32x2_74.6_91.6.log.json) | + +:::{note} + +1. The **gpus** indicates the number of gpu we used to get the checkpoint. It is noteworthy that the configs we provide are used for 8 gpus as default. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. +2. The **inference_time** is got by this [benchmark script](/tools/analysis/benchmark.py), where we use the sampling frames strategy of the test setting and only care about the model inference time, not including the IO time and pre-processing time. For each setting, we use 1 gpu and set batch size (videos per gpu) to 1 to calculate the inference time. +3. The validation set of Kinetics400 we used consists of 19796 videos. These videos are available at [Kinetics400-Validation](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB). The corresponding [data list](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (each line is of the format 'video_id, num_frames, label_index') and the [label map](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) are also available. + +::: + +For more details on data preparation, you can refer to Kinetics400 in [Data Preparation](/docs/data_preparation.md). + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train R(2+1)D model on Kinetics-400 dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py \ + --work-dir work_dirs/r2plus1d_r34_3d_8x8x1_180e_kinetics400_rgb \ + --validate --seed 0 --deterministic +``` + +For more details, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test R(2+1)D model on Kinetics-400 dataset and dump the result to a json file. + +```shell +python tools/test.py configs/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json --average-clips=prob +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@inproceedings{tran2018closer, + title={A closer look at spatiotemporal convolutions for action recognition}, + author={Tran, Du and Wang, Heng and Torresani, Lorenzo and Ray, Jamie and LeCun, Yann and Paluri, Manohar}, + booktitle={Proceedings of the IEEE conference on Computer Vision and Pattern Recognition}, + pages={6450--6459}, + year={2018} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/README_zh-CN.md new file mode 100644 index 00000000..0d2e1e22 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/README_zh-CN.md @@ -0,0 +1,73 @@ +# R2plus1D + +## 简介 + + + +```BibTeX +@inproceedings{tran2018closer, + title={A closer look at spatiotemporal convolutions for action recognition}, + author={Tran, Du and Wang, Heng and Torresani, Lorenzo and Ray, Jamie and LeCun, Yann and Paluri, Manohar}, + booktitle={Proceedings of the IEEE conference on Computer Vision and Pattern Recognition}, + pages={6450--6459}, + year={2018} +} +``` + +## 模型库 + +### Kinetics-400 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 推理时间 (video/s) | GPU 显存占用 (M) | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------------ | :------: | :------: | :------: | :----: | :---------: | :---------: | :----------------: | :--------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------: | +| [r2plus1d_r34_8x8x1_180e_kinetics400_rgb](/configs/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py) | 短边 256 | 8x4 | ResNet34 | None | 67.30 | 87.65 | x | 5019 | [ckpt](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_256p_8x8x1_180e_kinetics400_rgb/r2plus1d_r34_256p_8x8x1_180e_kinetics400_rgb_20200729-aa94765e.pth) | [log](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_256p_8x8x1_180e_kinetics400_rgb/20200728_021421.log) | [json](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_256p_8x8x1_180e_kinetics400_rgb/20200728_021421.log.json) | +| [r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb](/configs/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb.py) | 短边 256 | 8 | ResNet34 | None | 67.3 | 87.8 | x | 5019 | [ckpt](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb_20200826-ab35a529.pth) | [log](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb/20200724_201360.log.json) | [json](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb/20200724_201360.log) | +| [r2plus1d_r34_8x8x1_180e_kinetics400_rgb](/configs/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py) | 短边 320 | 8x2 | ResNet34 | None | 68.68 | 88.36 | 1.6 (80x3 frames) | 5019 | [ckpt](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb/r2plus1d_r34_8x8x1_180e_kinetics400_rgb_20200618-3fce5629.pth) | [log](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb/r21d_8x8.log) | [json](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb/r2plus1d_r34_8x8_69.58_88.36.log.json) | +| [r2plus1d_r34_32x2x1_180e_kinetics400_rgb](/configs/recognition/r2plus1d/r2plus1d_r34_32x2x1_180e_kinetics400_rgb.py) | 短边 320 | 8x2 | ResNet34 | None | 74.60 | 91.59 | 0.5 (320x3 frames) | 12975 | [ckpt](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_32x2x1_180e_kinetics400_rgb/r2plus1d_r34_32x2x1_180e_kinetics400_rgb_20200618-63462eb3.pth) | [log](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_32x2x1_180e_kinetics400_rgb/r21d_32x2.log) | [json](https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_32x2x1_180e_kinetics400_rgb/r2plus1d_r34_32x2_74.6_91.6.log.json) | + +注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +2. 这里的 **推理时间** 是根据 [基准测试脚本](/tools/analysis/benchmark.py) 获得的,采用测试时的采帧策略,且只考虑模型的推理时间, + 并不包括 IO 时间以及预处理时间。对于每个配置,MMAction2 使用 1 块 GPU 并设置批大小(每块 GPU 处理的视频个数)为 1 来计算推理时间。 +3. 我们使用的 Kinetics400 验证集包含 19796 个视频,用户可以从 [验证集视频](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB) 下载这些视频。同时也提供了对应的 [数据列表](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (每行格式为:视频 ID,视频帧数目,类别序号)以及 [标签映射](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) (类别序号到类别名称)。 + +对于数据集准备的细节,用户可参考 [数据集准备文档](/docs_zh_CN/data_preparation.md) 中的 Kinetics400 部分。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:以一个确定性的训练方式,辅以定期的验证过程进行 R(2+1)D 模型在 Kinetics400 数据集上的训练。 + +```shell +python tools/train.py configs/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py \ + --work-dir work_dirs/r2plus1d_r34_3d_8x8x1_180e_kinetics400_rgb \ + --validate --seed 0 --deterministic +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 Kinetics400 数据集上测试 R(2+1)D 模型,并将结果导出为一个 json 文件。 + +```shell +python tools/test.py configs/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json --average-clips=prob +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/metafile.yml new file mode 100644 index 00000000..f7056af4 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/metafile.yml @@ -0,0 +1,99 @@ +Collections: +- Name: R2Plus1D + README: configs/recognition/r2plus1d/README.md + Paper: + URL: https://arxiv.org/abs/1711.11248 + Title: A Closer Look at Spatiotemporal Convolutions for Action Recognition +Models: +- Config: configs/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py + In Collection: R2Plus1D + Metadata: + Architecture: ResNet34 + Batch Size: 8 + Epochs: 180 + FLOPs: 53175572992 + Parameters: 63759281 + Pretrained: None + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: r2plus1d_r34_8x8x1_180e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 67.3 + Top 5 Accuracy: 87.65 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_256p_8x8x1_180e_kinetics400_rgb/20200728_021421.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_256p_8x8x1_180e_kinetics400_rgb/20200728_021421.log + Weights: https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_256p_8x8x1_180e_kinetics400_rgb/r2plus1d_r34_256p_8x8x1_180e_kinetics400_rgb_20200729-aa94765e.pth +- Config: configs/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb.py + In Collection: R2Plus1D + Metadata: + Architecture: ResNet34 + Batch Size: 16 + Epochs: 180 + FLOPs: 53175572992 + Parameters: 63759281 + Pretrained: None + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 67.3 + Top 5 Accuracy: 87.8 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb/20200724_201360.log + Training Log: https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb/20200724_201360.log.json + Weights: https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb_20200826-ab35a529.pth +- Config: configs/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py + In Collection: R2Plus1D + Metadata: + Architecture: ResNet34 + Batch Size: 8 + Epochs: 180 + FLOPs: 53175572992 + Parameters: 63759281 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 16 GPUs + Modality: RGB + Name: r2plus1d_r34_8x8x1_180e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 68.68 + Top 5 Accuracy: 88.36 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb/r2plus1d_r34_8x8_69.58_88.36.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb/r21d_8x8.log + Weights: https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb/r2plus1d_r34_8x8x1_180e_kinetics400_rgb_20200618-3fce5629.pth +- Config: configs/recognition/r2plus1d/r2plus1d_r34_32x2x1_180e_kinetics400_rgb.py + In Collection: R2Plus1D + Metadata: + Architecture: ResNet34 + Batch Size: 6 + Epochs: 180 + FLOPs: 212701677568 + Parameters: 63759281 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 16 GPUs + Modality: RGB + Name: r2plus1d_r34_32x2x1_180e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 74.6 + Top 5 Accuracy: 91.59 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_32x2x1_180e_kinetics400_rgb/r2plus1d_r34_32x2_74.6_91.6.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_32x2x1_180e_kinetics400_rgb/r21d_32x2.log + Weights: https://download.openmmlab.com/mmaction/recognition/r2plus1d/r2plus1d_r34_32x2x1_180e_kinetics400_rgb/r2plus1d_r34_32x2x1_180e_kinetics400_rgb_20200618-63462eb3.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/r2plus1d_r34_32x2x1_180e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/r2plus1d_r34_32x2x1_180e_kinetics400_rgb.py new file mode 100644 index 00000000..53b17630 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/r2plus1d_r34_32x2x1_180e_kinetics400_rgb.py @@ -0,0 +1,81 @@ +_base_ = ['./r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py'] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline, + test_mode=True), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline, + test_mode=True)) +# optimizer +optimizer = dict( + type='SGD', lr=0.075, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus + +# runtime settings +work_dir = './work_dirs/r2plus1d_r34_3d_32x2x1_180e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py new file mode 100644 index 00000000..f06d5696 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py @@ -0,0 +1,92 @@ +_base_ = [ + '../../_base_/models/r2plus1d_r34.py', '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=8, frame_interval=8, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline, + test_mode=True), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline, + test_mode=True)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', min_lr=0) +total_epochs = 180 + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/r2plus1d_r34_8x8x1_180e_kinetics400_rgb/' +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb.py new file mode 100644 index 00000000..49c85c2a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb.py @@ -0,0 +1,87 @@ +_base_ = ['./r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py'] + +# model settings +model = dict(backbone=dict(act_cfg=dict(type='ReLU'))) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/kinetics400/videos_train' +data_root_val = 'data/kinetics400/videos_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_videos.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_videos.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=8, frame_interval=8, num_clips=1), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=1, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=10, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline, + test_mode=True), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline, + test_mode=True)) +# optimizer +optimizer = dict( + type='SGD', lr=0.2, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus + +# runtime settings +work_dir = './work_dirs/r2plus1d_r34_video_3d_8x8x1_180e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/r2plus1d_r34_video_inference_8x8x1_180e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/r2plus1d_r34_video_inference_8x8x1_180e_kinetics400_rgb.py new file mode 100644 index 00000000..cb4bb161 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/r2plus1d/r2plus1d_r34_video_inference_8x8x1_180e_kinetics400_rgb.py @@ -0,0 +1,33 @@ +_base_ = ['../../_base_/models/r2plus1d_r34.py'] + +# model settings +model = dict(backbone=dict(act_cfg=dict(type='ReLU'))) + +# dataset settings +dataset_type = 'VideoDataset' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=10, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=1, + workers_per_gpu=2, + test=dict( + type=dataset_type, + ann_file=None, + data_prefix=None, + pipeline=test_pipeline)) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/README.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/README.md new file mode 100644 index 00000000..35fbc3f3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/README.md @@ -0,0 +1,101 @@ +# SlowFast + +[SlowFast Networks for Video Recognition](https://openaccess.thecvf.com/content_ICCV_2019/html/Feichtenhofer_SlowFast_Networks_for_Video_Recognition_ICCV_2019_paper.html) + + + +## Abstract + + + +We present SlowFast networks for video recognition. Our model involves (i) a Slow pathway, operating at low frame rate, to capture spatial semantics, and (ii) a Fast pathway, operating at high frame rate, to capture motion at fine temporal resolution. The Fast pathway can be made very lightweight by reducing its channel capacity, yet can learn useful temporal information for video recognition. Our models achieve strong performance for both action classification and detection in video, and large improvements are pin-pointed as contributions by our SlowFast concept. We report state-of-the-art accuracy on major video recognition benchmarks, Kinetics, Charades and AVA. + + + +
+ +
+ +## Results and Models + +### Kinetics-400 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | inference_time(video/s) | gpu_mem(M) | ckpt | log | json | +| :-------------------------------------------------------------------------------------------------------------------------------------------- | :------------: | :--: | :------------------: | :------: | :------: | :------: | :----------------------: | :--------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowfast_r50_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb.py) | short-side 256 | 8x4 | ResNet50 | None | 74.75 | 91.73 | x | 6203 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_256p_4x16x1_256e_kinetics400_rgb/slowfast_r50_256p_4x16x1_256e_kinetics400_rgb_20200728-145f1097.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_256p_4x16x1_256e_kinetics400_rgb/20200731_151706.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_256p_4x16x1_256e_kinetics400_rgb/20200731_151706.log.json) | +| [slowfast_r50_video_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb.py) | short-side 256 | 8 | ResNet50 | None | 73.95 | 91.50 | x | 6203 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb/slowfast_r50_video_4x16x1_256e_kinetics400_rgb_20200826-f85b90c5.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb/20200812_160237.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb/20200812_160237.log.json) | +| [slowfast_r50_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb.py) | short-side 320 | 8x2 | ResNet50 | None | 76.0 | 92.54 | 1.6 ((32+4)x10x3 frames) | 6203 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb/slowfast_r50_4x16x1_256e_kinetics400_rgb_20210722-04e43ed4.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb/slowfast_r50_4x16x1_20210722.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb/slowfast_r50_4x16x1_20210722.log.json) | +| [slowfast_prebn_r50_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_prebn_r50_4x16x1_256e_kinetics400_rgb.py) | short-side 320 | 8x2 | ResNet50 | None | 76.34 | 92.67 | x | 6203 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_prebn_r50_4x16x1_256e_kinetics400_rgb/slowfast_prebn_r50_4x16x1_256e_kinetics400_rgb_20210722-bb725050.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_prebn_r50_4x16x1_256e_kinetics400_rgb/slowfast_prebn_r50_4x16x1_20210722.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_prebn_r50_4x16x1_256e_kinetics400_rgb/slowfast_prebn_r50_4x16x1_20210722.log.json) | +| [slowfast_r50_8x8x1_256e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb.py) | short-side 320 | 8x3 | ResNet50 | None | 76.94 | 92.8 | 1.3 ((32+8)x10x3 frames) | 9062 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb/slowfast_r50_8x8x1_256e_kinetics400_rgb_20200716-73547d2b.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb/20200716_192653.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb/20200716_192653.log.json) | +| [slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr](/configs/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr.py) | short-side 320 | 8x4 | ResNet50 | None | 76.34 | 92.61 | | 9062 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr-43988bac.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr.json) | +| [slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb.py) | short-side 320 | 8x2 | ResNet50 | None | 76.07 | 92.21 | x | 9062 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb-f82bd304.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb.json) | +| [slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr](/configs/recognition/slowfast/slowfast_perbn_r50_8x8x1_256e_kinetics400_rgb_steplr.py) | short-side 320 | 8x4 | ResNet50 | None | 76.58 | 92.85 | | 9062 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr-28474e54.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr.json) | +| [slowfast_r101_r50_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_r101_r50_4x16x1_256e_kinetics400_rgb.py) | short-side 256 | 8x1 | ResNet101 + ResNet50 | None | 76.69 | 93.07 | | 16628 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_4x16x1_256e_kinetics400_rgb/slowfast_r101_4x16x1_256e_kinetics400_rgb_20210218-d8b58813.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_4x16x1_256e_kinetics400_rgb/20210118_133528.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_4x16x1_256e_kinetics400_rgb/20210118_133528.log.json) | +| [slowfast_r101_8x8x1_256e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_r101_8x8x1_256e_kinetics400_rgb.py) | short-side 256 | 8x4 | ResNet101 | None | 77.90 | 93.51 | | 25994 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_8x8x1_256e_kinetics400_rgb/slowfast_r101_8x8x1_256e_kinetics400_rgb_20210218-0dd54025.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_8x8x1_256e_kinetics400_rgb/20210218_121513.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_8x8x1_256e_kinetics400_rgb/20210218_121513.log.json) | +| [slowfast_r152_r50_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_r152_r50_4x16x1_256e_kinetics400_rgb.py) | short-side 256 | 8x1 | ResNet152 + ResNet50 | None | 77.13 | 93.20 | | 10077 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r152_4x16x1_256e_kinetics400_rgb/slowfast_r152_4x16x1_256e_kinetics400_rgb_20210122-bdeb6b87.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r152_4x16x1_256e_kinetics400_rgb/20210122_131321.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r152_4x16x1_256e_kinetics400_rgb/20210122_131321.log.json) | + +### Something-Something V1 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | inference_time(video/s) | gpu_mem(M) | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------ | :--------: | :--: | :------: | :---------: | :------: | :------: | :---------------------: | :--------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowfast_r50_16x8x1_22e_sthv1_rgb](/configs/recognition/slowfast/slowfast_r50_16x8x1_22e_sthv1_rgb.py) | height 100 | 8 | ResNet50 | Kinetics400 | 49.67 | 79.00 | x | 9293 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_16x8x1_22e_sthv1_rgb/slowfast_r50_16x8x1_22e_sthv1_rgb_20211202-aaaf9279.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_16x8x1_22e_sthv1_rgb/slowfast_r50_16x8x1_22e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_16x8x1_22e_sthv1_rgb/slowfast_r50_16x8x1_22e_sthv1_rgb.json) | + +:::{note} + +1. The **gpus** indicates the number of gpu we used to get the checkpoint. It is noteworthy that the configs we provide are used for 8 gpus as default. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. +2. The **inference_time** is got by this [benchmark script](/tools/analysis/benchmark.py), where we use the sampling frames strategy of the test setting and only care about the model inference time, not including the IO time and pre-processing time. For each setting, we use 1 gpu and set batch size (videos per gpu) to 1 to calculate the inference time. +3. The validation set of Kinetics400 we used consists of 19796 videos. These videos are available at [Kinetics400-Validation](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB). The corresponding [data list](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (each line is of the format 'video_id, num_frames, label_index') and the [label map](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) are also available. + +::: + +For more details on data preparation, you can refer to Kinetics400 in [Data Preparation](/docs/data_preparation.md). + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train SlowFast model on Kinetics-400 dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb.py \ + --work-dir work_dirs/slowfast_r50_4x16x1_256e_kinetics400_rgb \ + --validate --seed 0 --deterministic +``` + +For more details, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test SlowFast model on Kinetics-400 dataset and dump the result to a json file. + +```shell +python tools/test.py configs/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json --average-clips=prob +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@inproceedings{feichtenhofer2019slowfast, + title={Slowfast networks for video recognition}, + author={Feichtenhofer, Christoph and Fan, Haoqi and Malik, Jitendra and He, Kaiming}, + booktitle={Proceedings of the IEEE international conference on computer vision}, + pages={6202--6211}, + year={2019} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/README_zh-CN.md new file mode 100644 index 00000000..47966459 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/README_zh-CN.md @@ -0,0 +1,86 @@ +# SlowFast + +## 简介 + + + +```BibTeX +@inproceedings{feichtenhofer2019slowfast, + title={Slowfast networks for video recognition}, + author={Feichtenhofer, Christoph and Fan, Haoqi and Malik, Jitendra and He, Kaiming}, + booktitle={Proceedings of the IEEE international conference on computer vision}, + pages={6202--6211}, + year={2019} +} +``` + +## 模型库 + +### Kinetics-400 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 推理时间 (video/s) | GPU 显存占用 (M) | ckpt | log | json | +| :-------------------------------------------------------------------------------------------------------------------------------------- | :-----: | :------: | :------------------: | :----: | :---------: | :---------: | :----------------------: | :--------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowfast_r50_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb.py) | 短边256 | 8x4 | ResNet50 | None | 74.75 | 91.73 | x | 6203 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_256p_4x16x1_256e_kinetics400_rgb/slowfast_r50_256p_4x16x1_256e_kinetics400_rgb_20200728-145f1097.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_256p_4x16x1_256e_kinetics400_rgb/20200731_151706.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_256p_4x16x1_256e_kinetics400_rgb/20200731_151706.log.json) | +| [slowfast_r50_video_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb.py) | 短边256 | 8 | ResNet50 | None | 73.95 | 91.50 | x | 6203 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb/slowfast_r50_video_4x16x1_256e_kinetics400_rgb_20200826-f85b90c5.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb/20200812_160237.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb/20200812_160237.log.json) | +| [slowfast_r50_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb.py) | 短边320 | 8x2 | ResNet50 | None | 76.0 | 92.54 | 1.6 ((32+4)x10x3 frames) | 6203 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb/slowfast_r50_4x16x1_256e_kinetics400_rgb_20210722-04e43ed4.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb/slowfast_r50_4x16x1_20210722.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb/slowfast_r50_4x16x1_20210722.log.json) | +| [slowfast_prebn_r50_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_prebn_r50_4x16x1_256e_kinetics400_rgb.py) | 短边320 | 8x2 | ResNet50 | None | 76.34 | 92.67 | x | 6203 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_prebn_r50_4x16x1_256e_kinetics400_rgb/slowfast_prebn_r50_4x16x1_256e_kinetics400_rgb_20210722-bb725050.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_prebn_r50_4x16x1_256e_kinetics400_rgb/slowfast_prebn_r50_4x16x1_20210722.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_prebn_r50_4x16x1_256e_kinetics400_rgb/slowfast_prebn_r50_4x16x1_20210722.log.json) | +| [slowfast_r50_8x8x1_256e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb.py) | 短边320 | 8x3 | ResNet50 | None | 76.94 | 92.8 | 1.3 ((32+8)x10x3 frames) | 9062 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb/slowfast_r50_8x8x1_256e_kinetics400_rgb_20200716-73547d2b.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb/20200716_192653.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb/20200716_192653.log.json) | +| [slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr](/configs/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb.py) | 短边320 | 8x4 | ResNet50 | None | 76.34 | 92.61 | 1.3 ((32+8)x10x3 frames) | 9062 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr-43988bac.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr.json) | +| [slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb.py) | 短边320 | 8x2 | ResNet50 | None | 76.07 | 92.21 | x | 9062 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb-f82bd304.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb.json) | +| [slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr](/configs/recognition/slowfast/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb.py) | 短边320 | 8x4 | ResNet50 | None | 76.58 | 92.85 | 1.3 ((32+8)x10x3 frames) | 9062 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr-28474e54.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr.json) | +| [slowfast_r101_r50_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_r101_r50_4x16x1_256e_kinetics400_rgb.py) | 短边256 | 8x1 | ResNet101 + ResNet50 | None | 76.69 | 93.07 | | 16628 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_4x16x1_256e_kinetics400_rgb/slowfast_r101_4x16x1_256e_kinetics400_rgb_20210218-d8b58813.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_4x16x1_256e_kinetics400_rgb/20210118_133528.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_4x16x1_256e_kinetics400_rgb/20210118_133528.log.json) | +| [slowfast_r101_8x8x1_256e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_r101_8x8x1_256e_kinetics400_rgb.py) | 短边256 | 8x4 | ResNet101 | None | 77.90 | 93.51 | | 25994 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_8x8x1_256e_kinetics400_rgb/slowfast_r101_8x8x1_256e_kinetics400_rgb_20210218-0dd54025.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_8x8x1_256e_kinetics400_rgb/20210218_121513.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_8x8x1_256e_kinetics400_rgb/20210218_121513.log.json) | +| [slowfast_r152_r50_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowfast/slowfast_r152_r50_4x16x1_256e_kinetics400_rgb.py) | 短边256 | 8x1 | ResNet152 + ResNet50 | None | 77.13 | 93.20 | | 10077 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r152_4x16x1_256e_kinetics400_rgb/slowfast_r152_4x16x1_256e_kinetics400_rgb_20210122-bdeb6b87.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r152_4x16x1_256e_kinetics400_rgb/20210122_131321.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r152_4x16x1_256e_kinetics400_rgb/20210122_131321.log.json) | + +### Something-Something V1 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 推理时间 (video/s) | GPU 显存占用 (M) | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------ | :----: | :------: | :------: | :---------: | :---------: | :---------: | :----------------: | :--------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowfast_r50_16x8x1_22e_sthv1_rgb](/configs/recognition/slowfast/slowfast_r50_16x8x1_22e_sthv1_rgb.py) | 高 100 | 8 | ResNet50 | Kinetics400 | 49.67 | 79.00 | x | 9293 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_16x8x1_22e_sthv1_rgb/slowfast_r50_16x8x1_22e_sthv1_rgb_20211202-aaaf9279.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_16x8x1_22e_sthv1_rgb/slowfast_r50_16x8x1_22e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_16x8x1_22e_sthv1_rgb/slowfast_r50_16x8x1_22e_sthv1_rgb.json) | + +注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +2. 这里的 **推理时间** 是根据 [基准测试脚本](/tools/analysis/benchmark.py) 获得的,采用测试时的采帧策略,且只考虑模型的推理时间, + 并不包括 IO 时间以及预处理时间。对于每个配置,MMAction2 使用 1 块 GPU 并设置批大小(每块 GPU 处理的视频个数)为 1 来计算推理时间。 +3. 我们使用的 Kinetics400 验证集包含 19796 个视频,用户可以从 [验证集视频](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB) 下载这些视频。同时也提供了对应的 [数据列表](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (每行格式为:视频 ID,视频帧数目,类别序号)以及 [标签映射](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) (类别序号到类别名称)。 + +对于数据集准备的细节,用户可参考 [数据集准备文档](/docs_zh_CN/data_preparation.md) 中的 Kinetics400 部分。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:以一个确定性的训练方式,辅以定期的验证过程进行 SlowFast 模型在 Kinetics400 数据集上的训练。 + +```shell +python tools/train.py configs/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb.py \ + --work-dir work_dirs/slowfast_r50_4x16x1_256e_kinetics400_rgb \ + --validate --seed 0 --deterministic +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 SlowFast 数据集上测试 CSN 模型,并将结果导出为一个 json 文件。 + +```shell +python tools/test.py configs/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json --average-clips=prob +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/metafile.yml new file mode 100644 index 00000000..353631e3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/metafile.yml @@ -0,0 +1,260 @@ +Collections: +- Name: SlowFast + README: configs/recognition/slowfast/README.md + Paper: + URL: https://arxiv.org/abs/1812.03982 + Title: SlowFast Networks for Video Recognition +Models: +- Config: configs/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb.py + In Collection: SlowFast + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 256 + FLOPs: 36441296896 + Parameters: 34479288 + Pretrained: None + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: slowfast_r50_4x16x1_256e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 74.75 + Top 5 Accuracy: 91.73 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_256p_4x16x1_256e_kinetics400_rgb/20200731_151706.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_256p_4x16x1_256e_kinetics400_rgb/20200731_151706.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_256p_4x16x1_256e_kinetics400_rgb/slowfast_r50_256p_4x16x1_256e_kinetics400_rgb_20200728-145f1097.pth +- Config: configs/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb.py + In Collection: SlowFast + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 256 + FLOPs: 36441296896 + Parameters: 34479288 + Pretrained: None + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: slowfast_r50_video_4x16x1_256e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 73.95 + Top 5 Accuracy: 91.50 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb/20200812_160237.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb/20200812_160237.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb/slowfast_r50_video_4x16x1_256e_kinetics400_rgb_20200826-f85b90c5.pth +- Config: configs/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb.py + In Collection: SlowFast + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 256 + FLOPs: 36441296896 + Parameters: 34479288 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 24 GPUs + Modality: RGB + Name: slowfast_r50_4x16x1_256e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 75.64 + Top 5 Accuracy: 92.3 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb/20200704_232901.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb/20200704_232901.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb/slowfast_r50_4x16x1_256e_kinetics400_rgb_20200704-bcde7ed7.pth +- Config: configs/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb.py + In Collection: SlowFast + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 256 + FLOPs: 66222034944 + Parameters: 34565560 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 24 GPUs + Modality: RGB + Name: slowfast_r50_8x8x1_256e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 76.94 + Top 5 Accuracy: 92.8 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb/20200716_192653.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb/20200716_192653.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb/slowfast_r50_8x8x1_256e_kinetics400_rgb_20200716-73547d2b.pth +- Config: configs/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr.py + In Collection: SlowFast + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 256 + FLOPs: 66222034944 + Parameters: 34565560 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 76.34 + Top 5 Accuracy: 92.61 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr-43988bac.pth +- Config: configs/recognition/slowfast/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb.py + In Collection: SlowFast + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 256 + FLOPs: 66222034944 + Parameters: 34565560 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 16 GPUs + Modality: RGB + Name: slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 76.07 + Top 5 Accuracy: 92.21 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb-f82bd304.pth +- Config: configs/recognition/slowfast/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr.py + In Collection: SlowFast + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 256 + FLOPs: 66222034944 + Parameters: 34565560 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 76.58 + Top 5 Accuracy: 92.85 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr-28474e54.pth +- Config: configs/recognition/slowfast/slowfast_r101_r50_4x16x1_256e_kinetics400_rgb.py + In Collection: SlowFast + Metadata: + Architecture: ResNet101 + ResNet50 + Batch Size: 8 + Epochs: 256 + FLOPs: 65042780160 + Parameters: 62384312 + Pretrained: None + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: slowfast_r101_r50_4x16x1_256e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 76.69 + Top 5 Accuracy: 93.07 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_4x16x1_256e_kinetics400_rgb/20210118_133528.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_4x16x1_256e_kinetics400_rgb/20210118_133528.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_4x16x1_256e_kinetics400_rgb/slowfast_r101_4x16x1_256e_kinetics400_rgb_20210218-d8b58813.pth +- Config: configs/recognition/slowfast/slowfast_r101_8x8x1_256e_kinetics400_rgb.py + In Collection: SlowFast + Metadata: + Architecture: ResNet101 + Batch Size: 8 + Epochs: 256 + FLOPs: 127070375936 + Parameters: 62912312 + Pretrained: None + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: slowfast_r101_8x8x1_256e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 77.9 + Top 5 Accuracy: 93.51 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_8x8x1_256e_kinetics400_rgb/20210218_121513.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_8x8x1_256e_kinetics400_rgb/20210218_121513.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r101_8x8x1_256e_kinetics400_rgb/slowfast_r101_8x8x1_256e_kinetics400_rgb_20210218-0dd54025.pth +- Config: configs/recognition/slowfast/slowfast_r152_r50_4x16x1_256e_kinetics400_rgb.py + In Collection: SlowFast + Metadata: + Architecture: ResNet152 + ResNet50 + Batch Size: 8 + Epochs: 256 + FLOPs: 91515654144 + Parameters: 84843704 + Pretrained: None + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: slowfast_r152_r50_4x16x1_256e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 77.13 + Top 5 Accuracy: 93.2 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r152_4x16x1_256e_kinetics400_rgb/20210122_131321.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r152_4x16x1_256e_kinetics400_rgb/20210122_131321.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r152_4x16x1_256e_kinetics400_rgb/slowfast_r152_4x16x1_256e_kinetics400_rgb_20210122-bdeb6b87.pth +- Config: configs/recognition/slowfast/slowfast_r50_16x8x1_22e_sthv1_rgb.py + In Collection: SlowFast + Metadata: + Architecture: ResNet50 + Batch Size: 4 + Epochs: 22 + FLOPs: 132442627584 + Parameters: 34044630 + Pretrained: Kinetics400 + Resolution: height 100 + Training Data: SthV1 + Training Resources: 8 GPUs + Modality: RGB + Name: slowfast_r50_16x8x1_22e_sthv1_rgb + Results: + - Dataset: SthV1 + Metrics: + Top 1 Accuracy: 49.67 + Top 5 Accuracy: 79.00 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_16x8x1_22e_sthv1_rgb/slowfast_r50_16x8x1_22e_sthv1_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_16x8x1_22e_sthv1_rgb/slowfast_r50_16x8x1_22e_sthv1_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_16x8x1_22e_sthv1_rgb/slowfast_r50_16x8x1_22e_sthv1_rgb_20211202-aaaf9279.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb.py new file mode 100644 index 00000000..7abce40f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb.py @@ -0,0 +1,153 @@ +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowFast', + pretrained=None, + resample_rate=4, # tau + speed_ratio=4, # alpha + channel_ratio=8, # beta_inv + slow_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=True, + lateral_norm=True, + fusion_kernel=7, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + norm_eval=False), + fast_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=False, + base_channels=8, + conv1_kernel=(5, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + norm_eval=False)), + cls_head=dict( + type='SlowFastHead', + in_channels=2304, # 2048+256 + num_classes=400, + spatial_type='avg', + dropout_ratio=0.5), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob')) + +train_cfg = None +test_cfg = dict(average_clips='prob') + +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=4, + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001) # 16gpu 0.1->0.2 +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +lr_config = dict(policy='step', step=[94, 154, 196]) + +total_epochs = 239 + +evaluation = dict( + interval=3, metrics=['top_k_accuracy', 'mean_class_accuracy']) +log_config = dict( + interval=20, + hooks=[ + dict(type='TextLoggerHook'), + # dict(type='TensorboardLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' + +checkpoint_config = dict(interval=3) +workflow = [('train', 1)] + +find_unused_parameters = False + +multigrid = dict( + long_cycle=True, + short_cycle=True, + epoch_factor=1.5, + long_cycle_factors=[[0.25, 0.7071], [0.5, 0.7071], [0.5, 1], [1, 1]], + short_cycle_factors=[0.5, 0.7071], + default_s=(224, 224), +) + +precise_bn = dict(num_iters=200, interval=3) + +load_from = None +resume_from = None + +work_dir = './work_dirs/slowfast_multigrid_r50_8x8x1_358e_kinetics400_rgb' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_prebn_r50_4x16x1_256e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_prebn_r50_4x16x1_256e_kinetics400_rgb.py new file mode 100644 index 00000000..b407bc15 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_prebn_r50_4x16x1_256e_kinetics400_rgb.py @@ -0,0 +1,96 @@ +_base_ = [ + '../../_base_/models/slowfast_r50.py', '../../_base_/default_runtime.py' +] + +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=4, + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='CosineAnnealing', + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=34) +total_epochs = 256 + +# precise bn +precise_bn = dict(num_iters=200, interval=1) + +# runtime settings +checkpoint_config = dict(interval=4) +work_dir = './work_dirs/slowfast_prebn_r50_4x16x1_256e_kinetics400_rgb' +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr.py new file mode 100644 index 00000000..392990c7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr.py @@ -0,0 +1,15 @@ +_base_ = ['./slowfast_r50_8x8x1_256e_kinetics400_rgb.py'] + +model = dict(backbone=dict(slow_pathway=dict(lateral_norm=True))) + +lr_config = dict( + policy='step', + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=34, + step=[94, 154, 196]) + +precise_bn = dict(num_iters=200, interval=5) + +work_dir = './work_dirs/slowfast_prebn_r50_8x8x1_256e_kinetics400_rgb_steplr' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r101_8x8x1_256e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r101_8x8x1_256e_kinetics400_rgb.py new file mode 100644 index 00000000..31c52441 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r101_8x8x1_256e_kinetics400_rgb.py @@ -0,0 +1,137 @@ +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowFast', + pretrained=None, + resample_rate=4, # tau + speed_ratio=4, # alpha + channel_ratio=8, # beta_inv + slow_pathway=dict( + type='resnet3d', + depth=101, + pretrained=None, + lateral=True, + fusion_kernel=7, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + norm_eval=False), + fast_pathway=dict( + type='resnet3d', + depth=101, + pretrained=None, + lateral=False, + base_channels=8, + conv1_kernel=(5, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + norm_eval=False)), + cls_head=dict( + type='SlowFastHead', + in_channels=2304, # 2048+256 + num_classes=400, + spatial_type='avg', + dropout_ratio=0.5), + train_cfg=None, + test_cfg=dict(average_clips='prob', max_testing_views=10)) + +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='CosineAnnealing', + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=34) +total_epochs = 256 +checkpoint_config = dict(interval=4) +workflow = [('train', 1)] +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) +log_config = dict( + interval=20, + hooks=[ + dict(type='TextLoggerHook'), + # dict(type='TensorboardLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/slowfast_r101_8x8x1_256e_kinetics400_rgb' +load_from = None +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r101_r50_4x16x1_256e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r101_r50_4x16x1_256e_kinetics400_rgb.py new file mode 100644 index 00000000..b8da9030 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r101_r50_4x16x1_256e_kinetics400_rgb.py @@ -0,0 +1,136 @@ +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowFast', + pretrained=None, + resample_rate=8, # tau + speed_ratio=8, # alpha + channel_ratio=8, # beta_inv + slow_pathway=dict( + type='resnet3d', + depth=101, + pretrained=None, + lateral=True, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + norm_eval=False), + fast_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=False, + base_channels=8, + conv1_kernel=(5, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + norm_eval=False)), + cls_head=dict( + type='SlowFastHead', + in_channels=2304, # 2048+256 + num_classes=400, + spatial_type='avg', + dropout_ratio=0.5), + train_cfg=None, + test_cfg=dict(average_clips='prob', max_testing_views=10)) + +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='CosineAnnealing', + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=34) +total_epochs = 256 +checkpoint_config = dict(interval=4) +workflow = [('train', 1)] +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) +log_config = dict( + interval=20, + hooks=[ + dict(type='TextLoggerHook'), + # dict(type='TensorboardLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/slowfast_r101_r50_4x16x1_256e_kinetics400_rgb' +load_from = None +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r152_r50_4x16x1_256e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r152_r50_4x16x1_256e_kinetics400_rgb.py new file mode 100644 index 00000000..0d9cd7ee --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r152_r50_4x16x1_256e_kinetics400_rgb.py @@ -0,0 +1,136 @@ +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowFast', + pretrained=None, + resample_rate=8, # tau + speed_ratio=8, # alpha + channel_ratio=8, # beta_inv + slow_pathway=dict( + type='resnet3d', + depth=152, + pretrained=None, + lateral=True, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + norm_eval=False), + fast_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=False, + base_channels=8, + conv1_kernel=(5, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + norm_eval=False)), + cls_head=dict( + type='SlowFastHead', + in_channels=2304, # 2048+256 + num_classes=400, + spatial_type='avg', + dropout_ratio=0.5), + train_cfg=None, + test_cfg=dict(average_clips='prob', max_testing_views=8)) + +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='CosineAnnealing', + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=34) +total_epochs = 256 +checkpoint_config = dict(interval=4) +workflow = [('train', 1)] +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) +log_config = dict( + interval=20, + hooks=[ + dict(type='TextLoggerHook'), + # dict(type='TensorboardLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/slowfast_r152_r50_4x16x1_256e_kinetics400_rgb' +load_from = None +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_16x8x1_22e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_16x8x1_22e_sthv1_rgb.py new file mode 100644 index 00000000..6cc79902 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_16x8x1_22e_sthv1_rgb.py @@ -0,0 +1,111 @@ +_base_ = [ + '../../_base_/models/slowfast_r50.py', '../../_base_/default_runtime.py' +] + +model = dict( + backbone=dict( + resample_rate=4, # tau + speed_ratio=4, # alpha + channel_ratio=8, # beta_inv + slow_pathway=dict(fusion_kernel=7)), + cls_head=dict(num_classes=174)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' + +sthv1_flip_label_map = {2: 4, 4: 2, 30: 41, 41: 30, 52: 66, 66: 52} +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=64, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5, flip_label_map=sthv1_flip_label_map), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=64, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=64, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] + +data = dict( + videos_per_gpu=4, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) + +evaluation = dict( + interval=1, metrics=['top_k_accuracy'], start=18, gpu_collect=True) + +# optimizer +optimizer = dict( + type='SGD', lr=0.06, momentum=0.9, + weight_decay=0.000001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='step', + step=[14, 18], + warmup='linear', + warmup_by_epoch=False, + warmup_iters=16343 // 32) +total_epochs = 22 + +# runtime settings +checkpoint_config = dict(interval=1) +work_dir = './work_dirs/slowfast_r50_16x8x1_22e_sthv1_rgb' +load_from = 'https://download.openmmlab.com/mmaction/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb/slowfast_r50_8x8x1_256e_kinetics400_rgb_20200716-73547d2b.pth' # noqa: E501 +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb.py new file mode 100644 index 00000000..7e455a7c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb.py @@ -0,0 +1,94 @@ +_base_ = [ + '../../_base_/models/slowfast_r50.py', '../../_base_/default_runtime.py' +] + +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='CosineAnnealing', + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=34) +total_epochs = 256 + +# runtime settings +checkpoint_config = dict(interval=4) +work_dir = './work_dirs/slowfast_r50_3d_4x16x1_256e_kinetics400_rgb' +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb.py new file mode 100644 index 00000000..49a30be6 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb.py @@ -0,0 +1,10 @@ +_base_ = ['./slowfast_r50_4x16x1_256e_kinetics400_rgb.py'] + +model = dict( + backbone=dict( + resample_rate=4, # tau + speed_ratio=4, # alpha + channel_ratio=8, # beta_inv + slow_pathway=dict(fusion_kernel=7))) + +work_dir = './work_dirs/slowfast_r50_3d_8x8x1_256e_kinetics400_rgb' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr.py new file mode 100644 index 00000000..284e1070 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr.py @@ -0,0 +1,13 @@ +_base_ = ['./slowfast_r50_8x8x1_256e_kinetics400_rgb.py'] + +model = dict(backbone=dict(slow_pathway=dict(lateral_norm=True))) + +lr_config = dict( + policy='step', + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=34, + step=[94, 154, 196]) + +work_dir = './work_dirs/slowfast_r50_8x8x1_256e_kinetics400_rgb_steplr' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb.py new file mode 100644 index 00000000..7335b3e7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb.py @@ -0,0 +1,85 @@ +_base_ = ['./slowfast_r50_4x16x1_256e_kinetics400_rgb.py'] + +model = dict( + backbone=dict( + resample_rate=8, # tau + speed_ratio=8, # alpha + channel_ratio=8 # beta_inv + )) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/kinetics400/videos_train' +data_root_val = 'data/kinetics400/videos_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_videos.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_videos.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +# runtime settings +work_dir = './work_dirs/slowfast_r50_video_3d_4x16x1_256e_kinetics400_rgb' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_video_inference_4x16x1_256e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_video_inference_4x16x1_256e_kinetics400_rgb.py new file mode 100644 index 00000000..aac3615f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowfast/slowfast_r50_video_inference_4x16x1_256e_kinetics400_rgb.py @@ -0,0 +1,32 @@ +_base_ = ['../../_base_/models/slowfast_r50.py'] + +# dataset settings +dataset_type = 'VideoDataset' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] + +data = dict( + videos_per_gpu=1, + workers_per_gpu=2, + test=dict( + type=dataset_type, + ann_file=None, + data_prefix=None, + pipeline=test_pipeline)) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/README.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/README.md new file mode 100644 index 00000000..6e18ffc1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/README.md @@ -0,0 +1,160 @@ +# SlowOnly + +[Slowfast networks for video recognition](https://openaccess.thecvf.com/content_ICCV_2019/html/Feichtenhofer_SlowFast_Networks_for_Video_Recognition_ICCV_2019_paper.html) + + + +## Abstract + + + +We present SlowFast networks for video recognition. Our model involves (i) a Slow pathway, operating at low frame rate, to capture spatial semantics, and (ii) a Fast pathway, operating at high frame rate, to capture motion at fine temporal resolution. The Fast pathway can be made very lightweight by reducing its channel capacity, yet can learn useful temporal information for video recognition. Our models achieve strong performance for both action classification and detection in video, and large improvements are pin-pointed as contributions by our SlowFast concept. We report state-of-the-art accuracy on major video recognition benchmarks, Kinetics, Charades and AVA. + + + +
+ +
+ +## Results and Models + +### Kinetics-400 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | inference_time(video/s) | gpu_mem(M) | ckpt | log | json | +| :-------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------: | :--: | :------: | :------: | :------: | :------: | :---------------------: | :--------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py) | short-side 256 | 8x4 | ResNet50 | None | 72.76 | 90.51 | x | 3168 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb_20200820-bea7701f.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb/20200817_001411.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb/20200817_001411.log.json) | +| [slowonly_r50_video_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_r50_video_4x16x1_256e_kinetics400_rgb.py) | short-side 320 | 8x2 | ResNet50 | None | 72.90 | 90.82 | x | 8472 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb_20201014-c9cdc656.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb_20201014.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb_20201014.json) | +| [slowonly_r50_8x8x1_256e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb.py) | short-side 256 | 8x4 | ResNet50 | None | 74.42 | 91.49 | x | 5820 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_8x8x1_256e_kinetics400_rgb/slowonly_r50_256p_8x8x1_256e_kinetics400_rgb_20200820-75851a7d.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_8x8x1_256e_kinetics400_rgb/20200817_003320.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_8x8x1_256e_kinetics400_rgb/20200817_003320.log.json) | +| [slowonly_r50_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py) | short-side 320 | 8x2 | ResNet50 | None | 73.02 | 90.77 | 4.0 (40x3 frames) | 3168 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/slowonly_r50_4x16x1_256e_kinetics400_rgb_20200704-a69556c6.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/so_4x16.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/slowonly_r50_4x16_73.02_90.77.log.json) | +| [slowonly_r50_8x8x1_256e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb.py) | short-side 320 | 8x3 | ResNet50 | None | 74.93 | 91.92 | 2.3 (80x3 frames) | 5820 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb/slowonly_r50_8x8x1_256e_kinetics400_rgb_20200703-a79c555a.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb/so_8x8.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb/slowonly_r50_8x8_74.93_91.92.log.json) | +| [slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb.py) | short-side 320 | 8x2 | ResNet50 | ImageNet | 73.39 | 91.12 | x | 3168 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb_20200912-1e8fc736.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb_20200912.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb_20200912.json) | +| [slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb.py) | short-side 320 | 8x4 | ResNet50 | ImageNet | 75.55 | 92.04 | x | 5820 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb_20200912-3f9ce182.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb_20200912.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb_20200912.json) | +| [slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb.py) | short-side 320 | 8x2 | ResNet50 | ImageNet | 74.54 | 91.73 | x | 4435 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb_20210308-0d6e5a69.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb/20210305_152630.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb/20210305_152630.log.json) | +| [slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb.py) | short-side 320 | 8x4 | ResNet50 | ImageNet | 76.07 | 92.42 | x | 8895 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb_20210308-e8dd9e82.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb/20210308_212250.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb/20210308_212250.log.json) | +| [slowonly_r50_4x16x1_256e_kinetics400_flow](/configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_flow.py) | short-side 320 | 8x2 | ResNet50 | ImageNet | 61.79 | 83.62 | x | 8450 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_flow/slowonly_r50_4x16x1_256e_kinetics400_flow_20200704-decb8568.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_flow/slowonly_r50_4x16x1_256e_kinetics400_flow_61.8_83.6.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_flow/slowonly_r50_4x16x1_256e_kinetics400_flow_61.8_83.6.log.json) | +| [slowonly_r50_8x8x1_196e_kinetics400_flow](/configs/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_flow.py) | short-side 320 | 8x4 | ResNet50 | ImageNet | 65.76 | 86.25 | x | 8455 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_flow/slowonly_r50_8x8x1_256e_kinetics400_flow_20200704-6b384243.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_flow/slowonly_r50_8x8x1_196e_kinetics400_flow_65.8_86.3.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_flow/slowonly_r50_8x8x1_196e_kinetics400_flow_65.8_86.3.log.json) | + +### Kinetics-400 Data Benchmark + +In data benchmark, we compare two different data preprocessing methods: (1) Resize video to 340x256, (2) Resize the short edge of video to 320px, (3) Resize the short edge of video to 256px. + +| config | resolution | gpus | backbone | Input | pretrain | top1 acc | top5 acc | testing protocol | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------: | :--: | :------: | :---: | :------: | :------: | :------: | :----------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb.py) | 340x256 | 8x2 | ResNet50 | 4x16 | None | 71.61 | 90.05 | 10 clips x 3 crops | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb_20200803-dadca1a3.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb_20200803.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb_20200803.json) | +| [slowonly_r50_randomresizedcrop_320p_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_320p_4x16x1_256e_kinetics400_rgb.py) | short-side 320 | 8x2 | ResNet50 | 4x16 | None | 73.02 | 90.77 | 10 clips x 3 crops | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/slowonly_r50_4x16x1_256e_kinetics400_rgb_20200704-a69556c6.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/so_4x16.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/slowonly_r50_4x16_73.02_90.77.log.json) | +| [slowonly_r50_randomresizedcrop_256p_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_256p_4x16x1_256e_kinetics400_rgb.py) | short-side 256 | 8x4 | ResNet50 | 4x16 | None | 72.76 | 90.51 | 10 clips x 3 crops | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb_20200820-bea7701f.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb/20200817_001411.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb/20200817_001411.log.json) | + +### Kinetics-400 OmniSource Experiments + +| config | resolution | backbone | pretrain | w. OmniSource | top1 acc | top5 acc | ckpt | log | json | +| :-------------------------------------------------------------------------------------------------------------------: | :------------: | :-------: | :------: | :----------------: | :------: | :------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py) | short-side 320 | ResNet50 | None | :x: | 73.0 | 90.8 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/slowonly_r50_4x16x1_256e_kinetics400_rgb_20200704-a69556c6.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/so_4x16.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/slowonly_r50_4x16_73.02_90.77.log.json) | +| x | x | ResNet50 | None | :heavy_check_mark: | 76.8 | 92.5 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/omni/slowonly_r50_omni_4x16x1_kinetics400_rgb_20200926-51b1f7ea.pth) | x | x | +| [slowonly_r101_8x8x1_196e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_r101_8x8x1_196e_kinetics400_rgb.py) | x | ResNet101 | None | :x: | 76.5 | 92.7 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/omni/slowonly_r101_without_omni_8x8x1_kinetics400_rgb_20200926-0c730aef.pth) | x | x | +| x | x | ResNet101 | None | :heavy_check_mark: | 80.4 | 94.4 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/omni/slowonly_r101_omni_8x8x1_kinetics400_rgb_20200926-b5dbb701.pth) | x | x | + +### Kinetics-600 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------------ | :------------: | :--: | :------: | :------: | :------: | :------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_video_8x8x1_256e_kinetics600_rgb](/configs/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics600_rgb.py) | short-side 256 | 8x4 | ResNet50 | None | 77.5 | 93.7 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics600_rgb/slowonly_r50_video_8x8x1_256e_kinetics600_rgb_20201015-81e5153e.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics600_rgb/slowonly_r50_video_8x8x1_256e_kinetics600_rgb_20201015.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics600_rgb/slowonly_r50_video_8x8x1_256e_kinetics600_rgb_20201015.json) | + +### Kinetics-700 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------------ | :------------: | :--: | :------: | :------: | :------: | :------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_video_8x8x1_256e_kinetics700_rgb](/configs/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics700_rgb.py) | short-side 256 | 8x4 | ResNet50 | None | 65.0 | 86.1 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics700_rgb/slowonly_r50_video_8x8x1_256e_kinetics700_rgb_20201015-9250f662.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics700_rgb/slowonly_r50_video_8x8x1_256e_kinetics700_rgb_20201015.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics700_rgb/slowonly_r50_video_8x8x1_256e_kinetics700_rgb_20201015.json) | + +### GYM99 + +| config | resolution | gpus | backbone | pretrain | top1 acc | mean class acc | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------------------------------ | :------------: | :--: | :------: | :------: | :------: | :------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb](/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb.py) | short-side 256 | 8x2 | ResNet50 | ImageNet | 79.3 | 70.2 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb_20201111-a9c34b54.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb_20201111.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb_20201111.json) | +| [slowonly_k400_pretrained_r50_4x16x1_120e_gym99_flow](/configs/recognition/slowonly/slowonly_k400_pretrained_r50_4x16x1_120e_gym99_flow.py) | short-side 256 | 8x2 | ResNet50 | Kinetics | 80.3 | 71.0 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow_20201111-66ecdb3c.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow_20201111.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow_20201111.json) | +| 1: 1 Fusion | | | | | 83.7 | 74.8 | | | | + +### Jester + +| config | resolution | gpus | backbone | pretrain | top1 acc | ckpt | log | json | +| :---------------------------------------------------------------------------------------------------------------------------------------------- | :--------: | :--: | :------: | :------: | :------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb](/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb.py) | height 100 | 8 | ResNet50 | ImageNet | 97.2 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb-b56a5389.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb.json) | + +### HMDB51 + +| config | gpus | backbone | pretrain | top1 acc | top5 acc | gpu_mem(M) | ckpt | log | json | +| :---------------------------------------------------------------------------------------------------------------------------------------------- | :--: | :------: | :---------: | :------: | :------: | :--------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb](/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb.py) | 8 | ResNet50 | ImageNet | 37.52 | 71.50 | 5812 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb_20210630-16faeb6a.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb/20210605_185256.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb/20210605_185256.log.json) | +| [slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb](/configs/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb.py) | 8 | ResNet50 | Kinetics400 | 65.95 | 91.05 | 5812 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb_20210630-cee5f725.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb/20210606_010153.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb/20210606_010153.log.json) | + +### UCF101 + +| config | gpus | backbone | pretrain | top1 acc | top5 acc | gpu_mem(M) | ckpt | log | json | +| :---------------------------------------------------------------------------------------------------------------------------------------------- | :--: | :------: | :---------: | :------: | :------: | :--------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb](/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb.py) | 8 | ResNet50 | ImageNet | 71.35 | 89.35 | 5812 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb_20210630-181e1661.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb/20210605_213503.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb/20210605_213503.log.json) | +| [slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb](/configs/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb.py) | 8 | ResNet50 | Kinetics400 | 92.78 | 99.42 | 5812 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb_20210630-ee8c850f.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb/20210606_010231.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb/20210606_010231.log.json) | + +### Something-Something V1 + +| config | gpus | backbone | pretrain | top1 acc | top5 acc | gpu_mem(M) | ckpt | log | json | +| :-------------------------------------------------------------------------------------------------------------------------------------------- | :--: | :------: | :------: | :------: | :------: | :--------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb](/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb.py) | 8 | ResNet50 | ImageNet | 47.76 | 77.49 | 7759 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb_20211202-d034ff12.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb.json) | + +:::{note} + +1. The **gpus** indicates the number of gpu we used to get the checkpoint. It is noteworthy that the configs we provide are used for 8 gpus as default. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. +2. The **inference_time** is got by this [benchmark script](/tools/analysis/benchmark.py), where we use the sampling frames strategy of the test setting and only care about the model inference time, not including the IO time and pre-processing time. For each setting, we use 1 gpu and set batch size (videos per gpu) to 1 to calculate the inference time. +3. The validation set of Kinetics400 we used consists of 19796 videos. These videos are available at [Kinetics400-Validation](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB). The corresponding [data list](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (each line is of the format 'video_id, num_frames, label_index') and the [label map](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) are also available. + +::: + +For more details on data preparation, you can refer to corresponding parts in [Data Preparation](/docs/data_preparation.md). + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train SlowOnly model on Kinetics-400 dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py \ + --work-dir work_dirs/slowonly_r50_4x16x1_256e_kinetics400_rgb \ + --validate --seed 0 --deterministic +``` + +For more details, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test SlowOnly model on Kinetics-400 dataset and dump the result to a json file. + +```shell +python tools/test.py configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json --average-clips=prob +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@inproceedings{feichtenhofer2019slowfast, + title={Slowfast networks for video recognition}, + author={Feichtenhofer, Christoph and Fan, Haoqi and Malik, Jitendra and He, Kaiming}, + booktitle={Proceedings of the IEEE international conference on computer vision}, + pages={6202--6211}, + year={2019} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/README_zh-CN.md new file mode 100644 index 00000000..a9d341b9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/README_zh-CN.md @@ -0,0 +1,145 @@ +# SlowOnly + +## 简介 + + + +```BibTeX +@inproceedings{feichtenhofer2019slowfast, + title={Slowfast networks for video recognition}, + author={Feichtenhofer, Christoph and Fan, Haoqi and Malik, Jitendra and He, Kaiming}, + booktitle={Proceedings of the IEEE international conference on computer vision}, + pages={6202--6211}, + year={2019} +} +``` + +## 模型库 + +### Kinetics-400 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 推理时间 (video/s) | GPU 显存占用 (M) | ckpt | log | json | +| :-------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :------: | :------: | :---------: | :---------: | :----------------: | :--------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py) | 短边 256 | 8x4 | ResNet50 | None | 72.76 | 90.51 | x | 3168 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb_20200820-bea7701f.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb/20200817_001411.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb/20200817_001411.log.json) | +| [slowonly_r50_video_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_r50_video_4x16x1_256e_kinetics400_rgb.py) | 短边 320 | 8x2 | ResNet50 | None | 72.90 | 90.82 | x | 8472 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb_20201014-c9cdc656.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb_20201014.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb_20201014.json) | +| [slowonly_r50_8x8x1_256e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb.py) | 短边 256 | 8x4 | ResNet50 | None | 74.42 | 91.49 | x | 5820 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_8x8x1_256e_kinetics400_rgb/slowonly_r50_256p_8x8x1_256e_kinetics400_rgb_20200820-75851a7d.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_8x8x1_256e_kinetics400_rgb/20200817_003320.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_8x8x1_256e_kinetics400_rgb/20200817_003320.log.json) | +| [slowonly_r50_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py) | 短边 320 | 8x2 | ResNet50 | None | 73.02 | 90.77 | 4.0 (40x3 frames) | 3168 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/slowonly_r50_4x16x1_256e_kinetics400_rgb_20200704-a69556c6.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/so_4x16.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/slowonly_r50_4x16_73.02_90.77.log.json) | +| [slowonly_r50_8x8x1_256e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb.py) | 短边 320 | 8x3 | ResNet50 | None | 74.93 | 91.92 | 2.3 (80x3 frames) | 5820 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb/slowonly_r50_8x8x1_256e_kinetics400_rgb_20200703-a79c555a.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb/so_8x8.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb/slowonly_r50_8x8_74.93_91.92.log.json) | +| [slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb.py) | 短边 320 | 8x2 | ResNet50 | ImageNet | 73.39 | 91.12 | x | 3168 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb_20200912-1e8fc736.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb_20200912.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb_20200912.json) | +| [slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb.py) | 短边 320 | 8x4 | ResNet50 | ImageNet | 75.55 | 92.04 | x | 5820 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb_20200912-3f9ce182.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb_20200912.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb_20200912.json) | +| [slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb.py) | 短边 320 | 8x2 | ResNet50 | ImageNet | 74.54 | 91.73 | x | 4435 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb_20210308-0d6e5a69.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb/20210305_152630.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb/20210305_152630.log.json) | +| [slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb.py) | 短边 320 | 8x4 | ResNet50 | ImageNet | 76.07 | 92.42 | x | 8895 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb_20210308-e8dd9e82.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb/20210308_212250.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb/20210308_212250.log.json) | +| [slowonly_r50_4x16x1_256e_kinetics400_flow](/configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_flow.py) | 短边 320 | 8x2 | ResNet50 | ImageNet | 61.79 | 83.62 | x | 8450 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_flow/slowonly_r50_4x16x1_256e_kinetics400_flow_20200704-decb8568.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_flow/slowonly_r50_4x16x1_256e_kinetics400_flow_61.8_83.6.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_flow/slowonly_r50_4x16x1_256e_kinetics400_flow_61.8_83.6.log.json) | +| [slowonly_r50_8x8x1_196e_kinetics400_flow](/configs/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_flow.py) | 短边 320 | 8x4 | ResNet50 | ImageNet | 65.76 | 86.25 | x | 8455 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_flow/slowonly_r50_8x8x1_256e_kinetics400_flow_20200704-6b384243.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_flow/slowonly_r50_8x8x1_196e_kinetics400_flow_65.8_86.3.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_flow/slowonly_r50_8x8x1_196e_kinetics400_flow_65.8_86.3.log.json) | + +### Kinetics-400 数据基准测试 + +在数据基准测试中,比较两种不同的数据预处理方法 (1) 视频分辨率为 340x256, (2) 视频分辨率为短边 320px, (3) 视频分辨率为短边 256px. + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 输入 | 预训练 | top1 准确率 | top5 准确率 | 测试方案 | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :------: | :--: | :----: | :---------: | :---------: | :----------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb.py) | 340x256 | 8x2 | ResNet50 | 4x16 | None | 71.61 | 90.05 | 10 clips x 3 crops | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb_20200803-dadca1a3.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb_20200803.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb_20200803.json) | +| [slowonly_r50_randomresizedcrop_320p_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_320p_4x16x1_256e_kinetics400_rgb.py) | 短边 320 | 8x2 | ResNet50 | 4x16 | None | 73.02 | 90.77 | 10 clips x 3 crops | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/slowonly_r50_4x16x1_256e_kinetics400_rgb_20200704-a69556c6.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/so_4x16.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/slowonly_r50_4x16_73.02_90.77.log.json) | +| [slowonly_r50_randomresizedcrop_256p_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_256p_4x16x1_256e_kinetics400_rgb.py) | 短边 256 | 8x4 | ResNet50 | 4x16 | None | 72.76 | 90.51 | 10 clips x 3 crops | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb_20200820-bea7701f.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb/20200817_001411.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb/20200817_001411.log.json) | + +### Kinetics-400 OmniSource Experiments + +| 配置文件 | 分辨率 | 主干网络 | 预训练 | w. OmniSource | top1 准确率 | top5 准确率 | ckpt | log | json | +| :-------------------------------------------------------------------------------------------------------------------: | :------: | :-------: | :----: | :----------------: | :---------: | :---------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_4x16x1_256e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py) | 短边 320 | ResNet50 | None | :x: | 73.0 | 90.8 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/slowonly_r50_4x16x1_256e_kinetics400_rgb_20200704-a69556c6.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/so_4x16.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/slowonly_r50_4x16_73.02_90.77.log.json) | +| x | x | ResNet50 | None | :heavy_check_mark: | 76.8 | 92.5 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/omni/slowonly_r50_omni_4x16x1_kinetics400_rgb_20200926-51b1f7ea.pth) | x | x | +| [slowonly_r101_8x8x1_196e_kinetics400_rgb](/configs/recognition/slowonly/slowonly_r101_8x8x1_196e_kinetics400_rgb.py) | x | ResNet101 | None | :x: | 76.5 | 92.7 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/omni/slowonly_r101_without_omni_8x8x1_kinetics400_rgb_20200926-0c730aef.pth) | x | x | +| x | x | ResNet101 | None | :heavy_check_mark: | 80.4 | 94.4 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/omni/slowonly_r101_omni_8x8x1_kinetics400_rgb_20200926-b5dbb701.pth) | x | x | + +### Kinetics-600 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------------ | :------: | :------: | :------: | :----: | :---------: | :---------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_video_8x8x1_256e_kinetics600_rgb](/configs/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics600_rgb.py) | 短边 256 | 8x4 | ResNet50 | None | 77.5 | 93.7 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics600_rgb/slowonly_r50_video_8x8x1_256e_kinetics600_rgb_20201015-81e5153e.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics600_rgb/slowonly_r50_video_8x8x1_256e_kinetics600_rgb_20201015.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics600_rgb/slowonly_r50_video_8x8x1_256e_kinetics600_rgb_20201015.json) | + +### Kinetics-700 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------------ | :------: | :------: | :------: | :----: | :---------: | :---------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_video_8x8x1_256e_kinetics700_rgb](/configs/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics700_rgb.py) | 短边 256 | 8x4 | ResNet50 | None | 65.0 | 86.1 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics700_rgb/slowonly_r50_video_8x8x1_256e_kinetics700_rgb_20201015-9250f662.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics700_rgb/slowonly_r50_video_8x8x1_256e_kinetics700_rgb_20201015.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics700_rgb/slowonly_r50_video_8x8x1_256e_kinetics700_rgb_20201015.json) | + +### GYM99 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | 类别平均准确率 | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------------------------------ | :------: | :------: | :------: | :------: | :---------: | :------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb](/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb.py) | 短边 256 | 8x2 | ResNet50 | ImageNet | 79.3 | 70.2 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb_20201111-a9c34b54.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb_20201111.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb_20201111.json) | +| [slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow](/configs/recognition/slowonly/slowonly_k400_pretrained_r50_4x16x1_120e_gym99_flow.py) | 短边 256 | 8x2 | ResNet50 | Kinetics | 80.3 | 71.0 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow_20201111-66ecdb3c.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow_20201111.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow_20201111.json) | +| 1: 1 融合 | | | | | 83.7 | 74.8 | | | | + +### Jester + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | ckpt | log | json | +| :---------------------------------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :------: | :------: | :---------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb](/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb.py) | 高 100 | 8 | ResNet50 | ImageNet | 97.2 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb-b56a5389.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb.json) | + +### HMDB51 + +| 配置文件 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | GPU 显存占用 (M) | ckpt | log | json | +| :---------------------------------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :---------: | :---------: | :---------: | :--------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb](/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb.py) | 8 | ResNet50 | ImageNet | 37.52 | 71.50 | 5812 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb_20210630-16faeb6a.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb/20210605_185256.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb/20210605_185256.log.json) | +| [slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb](/configs/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb.py) | 8 | ResNet50 | Kinetics400 | 65.95 | 91.05 | 5812 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb_20210630-cee5f725.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb/20210606_010153.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb/20210606_010153.log.json) | + +### UCF101 + +| 配置文件 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | GPU 显存占用 (M) | ckpt | log | json | +| :---------------------------------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :---------: | :---------: | :---------: | :--------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb](/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb.py) | 8 | ResNet50 | ImageNet | 71.35 | 89.35 | 5812 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb_20210630-181e1661.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb/20210605_213503.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb/20210605_213503.log.json) | +| [slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb](/configs/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb.py) | 8 | ResNet50 | Kinetics400 | 92.78 | 99.42 | 5812 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb_20210630-ee8c850f.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb/20210606_010231.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb/20210606_010231.log.json) | + +### Something-Something V1 + +| 配置文件 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | GPU 显存占用 (M) | ckpt | log | json | +| :-------------------------------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :------: | :---------: | :---------: | :--------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb](/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb.py) | 8 | ResNet50 | ImageNet | 47.76 | 77.49 | 7759 | [ckpt](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb_20211202-d034ff12.pth) | [log](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb.json) | + +注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +2. 这里的 **推理时间** 是根据 [基准测试脚本](/tools/analysis/benchmark.py) 获得的,采用测试时的采帧策略,且只考虑模型的推理时间, + 并不包括 IO 时间以及预处理时间。对于每个配置,MMAction2 使用 1 块 GPU 并设置批大小(每块 GPU 处理的视频个数)为 1 来计算推理时间。 +3. 我们使用的 Kinetics400 验证集包含 19796 个视频,用户可以从 [验证集视频](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB) 下载这些视频。同时也提供了对应的 [数据列表](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (每行格式为:视频 ID,视频帧数目,类别序号)以及 [标签映射](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) (类别序号到类别名称)。 + +对于数据集准备的细节,用户可参考 [数据集准备文档](/docs_zh_CN/data_preparation.md) 中的 Kinetics400 部分。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:以一个确定性的训练方式,辅以定期的验证过程进行 SlowOnly 模型在 Kinetics400 数据集上的训练。 + +```shell +python tools/train.py configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py \ + --work-dir work_dirs/slowonly_r50_4x16x1_256e_kinetics400_rgb \ + --validate --seed 0 --deterministic +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 Kinetics400 数据集上测试 SlowOnly 模型,并将结果导出为一个 json 文件。 + +```shell +python tools/test.py configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json --average-clips=prob +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_256p_4x16x1_256e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_256p_4x16x1_256e_kinetics400_rgb.py new file mode 100644 index 00000000..e79543a5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_256p_4x16x1_256e_kinetics400_rgb.py @@ -0,0 +1,115 @@ +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained=None, + lateral=False, + conv1_kernel=(1, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + norm_eval=False), + cls_head=dict( + type='I3DHead', + in_channels=2048, + num_classes=400, + spatial_type='avg', + dropout_ratio=0.5), + train_cfg=None, + test_cfg=dict(average_clips='prob')) + +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train_256p' +data_root_val = 'data/kinetics400/rawframes_val_256p' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes_256p.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes_256p.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes_256p.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=4, frame_interval=16, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.6, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', min_lr=0) +total_epochs = 256 +checkpoint_config = dict(interval=4) +workflow = [('train', 1)] +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) +log_config = dict( + interval=20, + hooks=[ + dict(type='TextLoggerHook'), + # dict(type='TensorboardLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = ('./work_dirs/slowonly_r50_randomresizedcrop_256p_4x16x1' + '_256e_kinetics400_rgb') +load_from = None +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_320p_4x16x1_256e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_320p_4x16x1_256e_kinetics400_rgb.py new file mode 100644 index 00000000..b2d55cef --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_320p_4x16x1_256e_kinetics400_rgb.py @@ -0,0 +1,114 @@ +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained=None, + lateral=False, + conv1_kernel=(1, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + norm_eval=False), + cls_head=dict( + type='I3DHead', + in_channels=2048, + num_classes=400, + spatial_type='avg', + dropout_ratio=0.5), + train_cfg=None, + test_cfg=dict(average_clips='prob')) +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train_320p' +data_root_val = 'data/kinetics400/rawframes_val_320p' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes_320p.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes_320p.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes_320p.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=4, frame_interval=16, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.6, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', min_lr=0) +total_epochs = 256 +checkpoint_config = dict(interval=4) +workflow = [('train', 1)] +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) +log_config = dict( + interval=20, + hooks=[ + dict(type='TextLoggerHook'), + # dict(type='TensorboardLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = ('./work_dirs/slowonly_r50_randomresizedcrop_320p_4x16x1' + '_256e_kinetics400_rgb') +load_from = None +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb.py new file mode 100644 index 00000000..d5c38635 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/data_benchmark/slowonly_r50_randomresizedcrop_340x256_4x16x1_256e_kinetics400_rgb.py @@ -0,0 +1,114 @@ +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained=None, + lateral=False, + conv1_kernel=(1, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + norm_eval=False), + cls_head=dict( + type='I3DHead', + in_channels=2048, + num_classes=400, + spatial_type='avg', + dropout_ratio=0.5), + train_cfg=None, + test_cfg=dict(average_clips='prob')) +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=4, frame_interval=16, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.6, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', min_lr=0) +total_epochs = 256 +checkpoint_config = dict(interval=4) +workflow = [('train', 1)] +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) +log_config = dict( + interval=20, + hooks=[ + dict(type='TextLoggerHook'), + # dict(type='TensorboardLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = ('slowonly_r50_randomresizedcrop_320p_4x16x1' + '_256e_kinetics400_rgb') +load_from = None +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/metafile.yml new file mode 100644 index 00000000..9e4110ea --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/metafile.yml @@ -0,0 +1,550 @@ +Collections: +- Name: SlowOnly + README: configs/recognition/slowonly/README.md + Paper: + URL: https://arxiv.org/abs/1812.03982 + Title: SlowFast Networks for Video Recognition +Models: +- Config: configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 256 + FLOPs: 27430649856 + Parameters: 32454096 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Modality: RGB + Name: slowonly_r50_omnisource_4x16x1_256e_kinetics400_rgb + Converted From: + Weights: https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmaction/models/kinetics400/omnisource/slowonly_OmniSource_kinetics400_se_rgb_r50_seg1_4x16_scratch-71f7b8ee.pth + Code: https://github.com/open-mmlab/mmaction/ + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 76.8 + Top 5 Accuracy: 92.5 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/omni/slowonly_r50_omni_4x16x1_kinetics400_rgb_20200926-51b1f7ea.pth +- Config: configs/recognition/slowonly/slowonly_r101_8x8x1_196e_kinetics400_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet101 + Batch Size: 8 + Epochs: 196 + FLOPs: 112063447040 + Parameters: 60359120 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Modality: RGB + Name: slowonly_r101_8x8x1_196e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 76.5 + Top 5 Accuracy: 92.7 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/omni/slowonly_r101_without_omni_8x8x1_kinetics400_rgb_20200926-0c730aef.pth +- Config: configs/recognition/slowonly/slowonly_r101_8x8x1_196e_kinetics400_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet101 + Batch Size: 8 + Epochs: 196 + FLOPs: 112063447040 + Parameters: 60359120 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Modality: RGB + Name: slowonly_r101_omnisource_8x8x1_196e_kinetics400_rgb + Converted From: + Weights: https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmaction/models/kinetics400/omnisource/slowonly_OmniSource_kinetics400_se_rgb_r101_seg1_8x8_scratch-2f838cb0.pth + Code: https://github.com/open-mmlab/mmaction/ + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 80.4 + Top 5 Accuracy: 94.4 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/omni/slowonly_r101_omni_8x8x1_kinetics400_rgb_20200926-b5dbb701.pth +- Config: configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 256 + FLOPs: 27430649856 + Parameters: 32454096 + Pretrained: None + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: slowonly_r50_4x16x1_256e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 72.76 + Top 5 Accuracy: 90.51 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb/20200817_001411.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb/20200817_001411.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb/slowonly_r50_256p_4x16x1_256e_kinetics400_rgb_20200820-bea7701f.pth +- Config: configs/recognition/slowonly/slowonly_r50_video_4x16x1_256e_kinetics400_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 24 + Epochs: 256 + FLOPs: 27430649856 + Parameters: 32454096 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 16 GPUs + Modality: RGB + Name: slowonly_r50_video_4x16x1_256e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 72.9 + Top 5 Accuracy: 90.82 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb_20201014.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb_20201014.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb_20201014-c9cdc656.pth +- Config: configs/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 256 + FLOPs: 54860480512 + Parameters: 32454096 + Pretrained: None + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: slowonly_r50_8x8x1_256e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 74.42 + Top 5 Accuracy: 91.49 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_8x8x1_256e_kinetics400_rgb/20200817_003320.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_8x8x1_256e_kinetics400_rgb/20200817_003320.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_256p_8x8x1_256e_kinetics400_rgb/slowonly_r50_256p_8x8x1_256e_kinetics400_rgb_20200820-75851a7d.pth +- Config: configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 256 + FLOPs: 27430649856 + Parameters: 32454096 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 16 GPUs + Modality: RGB + Name: slowonly_r50_4x16x1_256e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 73.02 + Top 5 Accuracy: 90.77 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/slowonly_r50_4x16_73.02_90.77.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/so_4x16.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb/slowonly_r50_4x16x1_256e_kinetics400_rgb_20200704-a69556c6.pth +- Config: configs/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 256 + FLOPs: 54860480512 + Parameters: 32454096 + Pretrained: None + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 24 GPUs + Modality: RGB + Name: slowonly_r50_8x8x1_256e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 74.93 + Top 5 Accuracy: 91.92 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb/slowonly_r50_8x8_74.93_91.92.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb/so_8x8.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb/slowonly_r50_8x8x1_256e_kinetics400_rgb_20200703-a79c555a.pth +- Config: configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 150 + FLOPs: 27430649856 + Parameters: 32454096 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 16 GPUs + Modality: RGB + Name: slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 73.39 + Top 5 Accuracy: 91.12 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb_20200912.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb_20200912.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb_20200912-1e8fc736.pth +- Config: configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 150 + FLOPs: 54860480512 + Parameters: 32454096 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 75.55 + Top 5 Accuracy: 92.04 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb_20200912.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb_20200912.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb_20200912-3f9ce182.pth +- Config: configs/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 150 + FLOPs: 38201098240 + Parameters: 39808464 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 16 GPUs + Modality: RGB + Name: slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 74.54 + Top 5 Accuracy: 91.73 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb/20210305_152630.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb/20210305_152630.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb_20210308-0d6e5a69.pth +- Config: configs/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 150 + FLOPs: 76401377280 + Parameters: 39808464 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 76.07 + Top 5 Accuracy: 92.42 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb/20210308_212250.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb/20210308_212250.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb_20210308-e8dd9e82.pth +- Config: configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_flow.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 24 + Epochs: 256 + FLOPs: 27225128960 + Parameters: 32450960 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 16 GPUs + Modality: Flow + Name: slowonly_r50_4x16x1_256e_kinetics400_flow + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 61.79 + Top 5 Accuracy: 83.62 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_flow/slowonly_r50_4x16x1_256e_kinetics400_flow_61.8_83.6.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_flow/slowonly_r50_4x16x1_256e_kinetics400_flow_61.8_83.6.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_flow/slowonly_r50_4x16x1_256e_kinetics400_flow_20200704-decb8568.pth +- Config: configs/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_flow.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 196 + FLOPs: 54449438720 + Parameters: 32450960 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: Flow + Name: slowonly_r50_8x8x1_196e_kinetics400_flow + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 65.76 + Top 5 Accuracy: 86.25 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_flow/slowonly_r50_8x8x1_196e_kinetics400_flow_65.8_86.3.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_flow/slowonly_r50_8x8x1_196e_kinetics400_flow_65.8_86.3.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_flow/slowonly_r50_8x8x1_256e_kinetics400_flow_20200704-6b384243.pth +- Config: configs/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics600_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 256 + FLOPs: 54860890112 + Parameters: 32863896 + Pretrained: None + Resolution: short-side 256 + Training Data: Kinetics-600 + Training Resources: 32 GPUs + Modality: RGB + Name: slowonly_r50_video_8x8x1_256e_kinetics600_rgb + Results: + - Dataset: Kinetics-600 + Metrics: + Top 1 Accuracy: 77.5 + Top 5 Accuracy: 93.7 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics600_rgb/slowonly_r50_video_8x8x1_256e_kinetics600_rgb_20201015.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics600_rgb/slowonly_r50_video_8x8x1_256e_kinetics600_rgb_20201015.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics600_rgb/slowonly_r50_video_8x8x1_256e_kinetics600_rgb_20201015-81e5153e.pth +- Config: configs/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics700_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 256 + FLOPs: 54861094912 + Parameters: 33068796 + Pretrained: None + Resolution: short-side 256 + Training Data: Kinetics-700 + Training Resources: 32 GPUs + Modality: RGB + Name: slowonly_r50_video_8x8x1_256e_kinetics700_rgb + Results: + - Dataset: Kinetics-700 + Metrics: + Top 1 Accuracy: 65.0 + Top 5 Accuracy: 86.1 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics700_rgb/slowonly_r50_video_8x8x1_256e_kinetics700_rgb_20201015.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics700_rgb/slowonly_r50_video_8x8x1_256e_kinetics700_rgb_20201015.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics700_rgb/slowonly_r50_video_8x8x1_256e_kinetics700_rgb_20201015-9250f662.pth +- Config: configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 24 + Epochs: 120 + FLOPs: 27430649856 + Parameters: 32454096 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: GYM99 + Training Resources: 16 GPUs + Modality: RGB + Name: slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb + Results: + - Dataset: GYM99 + Metrics: + Top 1 Accuracy: 79.3 + mean Top 1 Accuracy: 70.2 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb_20201111.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb_20201111.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb_20201111-a9c34b54.pth +- Config: configs/recognition/slowonly/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 24 + Epochs: 120 + FLOPs: 27225128960 + Parameters: 32450960 + Pretrained: Kinetics + Resolution: short-side 256 + Training Data: GYM99 + Training Resources: 16 GPUs + Modality: Flow + Name: slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow + Results: + - Dataset: GYM99 + Metrics: + Top 1 Accuracy: 80.3 + mean Top 1 Accuracy: 71.0 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow_20201111.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow_20201111.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow/slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow_20201111-66ecdb3c.pth +- Config: configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 64 + FLOPs: 54859716608 + Parameters: 31689819 + Pretrained: ImageNet + Resolution: height 100 + Training Data: Jester + Training Resources: 8 GPUs + Modality: RGB + Name: slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb + Results: + - Dataset: Jester + Metrics: + Top 1 Accuracy: 97.2 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb-b56a5389.pth +- Config: configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 64 + FLOPs: 54859765760 + Parameters: 31738995 + Pretrained: ImageNet + Training Data: HMDB51 + Training Resources: 8 GPUs + Modality: RGB + Name: slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb + Results: + - Dataset: HMDB51 + Metrics: + Top 1 Accuracy: 37.52 + Top 5 Accuracy: 71.5 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb/20210605_185256.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb/20210605_185256.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb_20210630-16faeb6a.pth +- Config: configs/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 40 + FLOPs: 54859765760 + Parameters: 31738995 + Pretrained: Kinetics400 + Training Data: HMDB51 + Training Resources: 8 GPUs + Modality: RGB + Name: slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb + Results: + - Dataset: HMDB51 + Metrics: + Top 1 Accuracy: 65.95 + Top 5 Accuracy: 91.05 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb/20210606_010153.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb/20210606_010153.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb_20210630-cee5f725.pth +- Config: configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 64 + FLOPs: 54859868160 + Parameters: 31841445 + Pretrained: ImageNet + Training Data: UCF101 + Training Resources: 8 GPUs + Modality: RGB + Name: slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb + Results: + - Dataset: UCF101 + Metrics: + Top 1 Accuracy: 71.35 + Top 5 Accuracy: 89.35 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb/20210605_213503.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb/20210605_213503.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb_20210630-181e1661.pth +- Config: configs/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 40 + FLOPs: 54859868160 + Parameters: 31841445 + Pretrained: Kinetics400 + Training Data: UCF101 + Training Resources: 8 GPUs + Modality: RGB + Name: slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb + Results: + - Dataset: UCF101 + Metrics: + Top 1 Accuracy: 92.78 + Top 5 Accuracy: 99.42 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb/20210606_010231.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb/20210606_010231.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb_20210630-ee8c850f.pth +- Config: configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb.py + In Collection: SlowOnly + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 64 + FLOPs: 53907910656 + Parameters: 31991022 + Pretrained: ImageNet + Training Data: SthV1 + Training Resources: 8 GPUs + Modality: RGB + Name: slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb + Results: + - Dataset: SthV1 + Metrics: + Top 1 Accuracy: 47.76 + Top 5 Accuracy: 77.49 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb_20211202-d034ff12.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb.py new file mode 100644 index 00000000..f5c3d79f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb.py @@ -0,0 +1,89 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/gym/rawframes' +data_root_val = 'data/gym/rawframes' +ann_file_train = 'data/gym/annotations/gym99_train_list_rawframes.txt' +ann_file_val = 'data/gym/annotations/gym99_val_list_rawframes.txt' +ann_file_test = 'data/gym/annotations/gym99_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=4, frame_interval=16, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=24, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.03, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[90, 110]) +total_epochs = 120 + +# runtime settings +work_dir = './work_dirs/slowonly_imagenet_pretrained_r50_4x16x1_120e_gym99_rgb' +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb.py new file mode 100644 index 00000000..750d01b8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_4x16x1_150e_kinetics400_rgb.py @@ -0,0 +1,96 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=4, frame_interval=16, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.01, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='step', + step=[90, 130], + warmup='linear', + warmup_by_epoch=True, + warmup_iters=10) +total_epochs = 150 + +# runtime settings +checkpoint_config = dict(interval=4) +work_dir = ('./work_dirs/slowonly_imagenet_pretrained_r50_4x16x1_150e' + '_kinetics400_rgb') +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb.py new file mode 100644 index 00000000..0305527d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_hmdb51_rgb.py @@ -0,0 +1,93 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', + '../../_base_/schedules/sgd_150e_warmup.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=51)) + +# dataset settings +split = 1 +dataset_type = 'RawframeDataset' +data_root = 'data/hmdb51/rawframes' +data_root_val = 'data/hmdb51/rawframes' +ann_file_train = f'data/hmdb51/hmdb51_train_split_{split}_rawframes.txt' +ann_file_val = f'data/hmdb51/hmdb51_val_split_{split}_rawframes.txt' +ann_file_test = f'data/hmdb51/hmdb51_val_split_{split}_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=8, frame_interval=4, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=4, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=4, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] + +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(lr=0.1) # this lr is used for 8 gpus +# learning policy +lr_config = dict(policy='CosineAnnealing', min_lr=0, by_epoch=False) +total_epochs = 64 + +# runtime settings +work_dir = './work_dirs/slowonly_r50_8x4x1_64e_hmdb51_rgb' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb.py new file mode 100644 index 00000000..89457ddf --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv1_rgb.py @@ -0,0 +1,100 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', + '../../_base_/schedules/sgd_150e_warmup.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(backbone=dict(with_pool1=False), cls_head=dict(num_classes=174)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=8, frame_interval=4, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 128)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(112, 112), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=4, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 128)), + dict(type='CenterCrop', crop_size=112), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=4, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 128)), + dict(type='ThreeCrop', crop_size=128), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] + +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + filename_tmpl='{:05}.jpg', + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + filename_tmpl='{:05}.jpg', + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + filename_tmpl='{:05}.jpg', + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(lr=0.1) # this lr is used for 8 gpus +# learning policy +lr_config = dict( + policy='CosineAnnealing', + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=10) +total_epochs = 64 + +# runtime settings +work_dir = './work_dirs/slowonly_r50_8x4x1_64e_sthv1_rgb' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv2_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv2_rgb.py new file mode 100644 index 00000000..65720cff --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_sthv2_rgb.py @@ -0,0 +1,97 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', + '../../_base_/schedules/sgd_150e_warmup.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(backbone=dict(with_pool1=False), cls_head=dict(num_classes=174)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv2/rawframes' +data_root_val = 'data/sthv2/rawframes' +ann_file_train = 'data/sthv2/sthv2_train_list_rawframes.txt' +ann_file_val = 'data/sthv2/sthv2_val_list_rawframes.txt' +ann_file_test = 'data/sthv2/sthv2_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=8, frame_interval=4, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 128)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(112, 112), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=4, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 128)), + dict(type='CenterCrop', crop_size=112), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=4, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 128)), + dict(type='ThreeCrop', crop_size=128), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] + +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(lr=0.1) # this lr is used for 8 gpus +# learning policy +lr_config = dict( + policy='CosineAnnealing', + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=10) +total_epochs = 64 + +# runtime settings +work_dir = './work_dirs/slowonly_r50_8x4x1_64e_sthv2_rgb' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb.py new file mode 100644 index 00000000..48df87cc --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x4x1_64e_ucf101_rgb.py @@ -0,0 +1,93 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', + '../../_base_/schedules/sgd_150e_warmup.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=101)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/ucf101/rawframes/' +data_root_val = 'data/ucf101/rawframes/' +split = 1 # official train/test splits. valid numbers: 1, 2, 3 +ann_file_train = f'data/ucf101/ucf101_train_split_{split}_rawframes.txt' +ann_file_val = f'data/ucf101/ucf101_val_split_{split}_rawframes.txt' +ann_file_test = f'data/ucf101/ucf101_val_split_{split}_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=8, frame_interval=4, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=4, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=4, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] + +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(lr=0.1) # this lr is used for 8 gpus +# learning policy +lr_config = dict(policy='CosineAnnealing', min_lr=0, by_epoch=False) +total_epochs = 64 + +# runtime settings +work_dir = './work_dirs/slowonly_r50_8x4x1_64e_ucf101_rgb' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb.py new file mode 100644 index 00000000..0e34eda9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_150e_kinetics400_rgb.py @@ -0,0 +1,96 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=8, frame_interval=8, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.01, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='step', + step=[90, 130], + warmup='linear', + warmup_by_epoch=True, + warmup_iters=10) +total_epochs = 150 + +# runtime settings +checkpoint_config = dict(interval=4) +work_dir = ('./work_dirs/slowonly_imagenet_pretrained_r50_8x8x1_150e' + '_kinetics400_rgb') +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb.py new file mode 100644 index 00000000..6e4e7fbc --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb.py @@ -0,0 +1,97 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=27)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/jester/rawframes' +data_root_val = 'data/jester/rawframes' +ann_file_train = 'data/jester/jester_train_list_rawframes.txt' +ann_file_val = 'data/jester/jester_val_list_rawframes.txt' +ann_file_test = 'data/jester/jester_val_list_rawframes.txt' +jester_flip_label_map = {0: 1, 1: 0, 6: 7, 7: 6} +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=8, frame_interval=4, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5, flip_label_map=jester_flip_label_map), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=4, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=4, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', min_lr=0, by_epoch=False) +total_epochs = 64 + +# runtime settings +checkpoint_config = dict(interval=4) +work_dir = './work_dirs/slowonly_imagenet_pretrained_r50_8x8x1_64e_jester_rgb' +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_k400_pretrained_r50_4x16x1_120e_gym99_flow.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_k400_pretrained_r50_4x16x1_120e_gym99_flow.py new file mode 100644 index 00000000..b561287f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_k400_pretrained_r50_4x16x1_120e_gym99_flow.py @@ -0,0 +1,101 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', '../../_base_/default_runtime.py' +] + +# model settings +model = dict(backbone=dict(pretrained=None, in_channels=2, with_pool2=False)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/gym/rawframes' +data_root_val = 'data/gym/rawframes' +ann_file_train = 'data/gym/annotations/gym99_train_list_rawframes.txt' +ann_file_val = 'data/gym/annotations/gym99_val_list_rawframes.txt' +ann_file_test = 'data/gym/annotations/gym99_val_list_rawframes.txt' +img_norm_cfg = dict(mean=[128, 128], std=[128, 128]) +train_pipeline = [ + dict(type='SampleFrames', clip_len=4, frame_interval=16, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=24, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + modality='Flow', + filename_tmpl='{}_{:05d}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + modality='Flow', + filename_tmpl='{}_{:05d}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + modality='Flow', + filename_tmpl='{}_{:05d}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.03, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[90, 110]) +total_epochs = 120 + +# runtime settings +work_dir = ('./work_dirs/' + 'slowonly_kinetics_pretrained_r50_4x16x1_120e_gym99_flow') +load_from = ('https://download.openmmlab.com/mmaction/recognition/slowonly/' + 'slowonly_r50_4x16x1_256e_kinetics400_flow/' + 'slowonly_r50_4x16x1_256e_kinetics400_flow_20200704-decb8568.pth') +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb.py new file mode 100644 index 00000000..53832d7d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb.py @@ -0,0 +1,81 @@ +_base_ = ['./slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb.py'] + +# model settings +model = dict(cls_head=dict(num_classes=51)) + +# dataset settings +split = 1 +dataset_type = 'RawframeDataset' +data_root = 'data/hmdb51/rawframes' +data_root_val = 'data/hmdb51/rawframes' +ann_file_train = f'data/hmdb51/hmdb51_train_split_{split}_rawframes.txt' +ann_file_val = f'data/hmdb51/hmdb51_val_split_{split}_rawframes.txt' +ann_file_test = f'data/hmdb51/hmdb51_val_split_{split}_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=8, frame_interval=4, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=4, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=4, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] + +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +# runtime settings +work_dir = './work_dirs/slowonly_k400_pretrained_r50_8x4x1_40e_hmdb51_rgb' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb.py new file mode 100644 index 00000000..c4e5be47 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb.py @@ -0,0 +1,97 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', '../../_base_/schedules/sgd_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=101)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/ucf101/rawframes/' +data_root_val = 'data/ucf101/rawframes/' +split = 1 # official train/test splits. valid numbers: 1, 2, 3 +ann_file_train = f'data/ucf101/ucf101_train_split_{split}_rawframes.txt' +ann_file_val = f'data/ucf101/ucf101_val_split_{split}_rawframes.txt' +ann_file_test = f'data/ucf101/ucf101_val_split_{split}_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=8, frame_interval=4, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=4, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=4, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] + +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + lr=0.001, # this lr is used for 8 gpus +) +optimizer_config = dict(grad_clip=dict(max_norm=20, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[15, 30]) +total_epochs = 40 + +# runtime settings +work_dir = './work_dirs/slowonly_k400_pretrained_r50_8x4x1_40e_ucf101_rgb' +load_from = 'https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb/slowonly_r50_8x8x1_256e_kinetics400_rgb_20200703-a79c555a.pth' # noqa: E501 +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb.py new file mode 100644 index 00000000..85d8b7f2 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb.py @@ -0,0 +1,93 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', + '../../_base_/schedules/sgd_150e_warmup.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + backbone=dict( + non_local=((0, 0, 0), (1, 0, 1, 0), (1, 0, 1, 0, 1, 0), (0, 0, 0)), + non_local_cfg=dict( + sub_sample=True, + use_scale=True, + norm_cfg=dict(type='BN3d', requires_grad=True), + mode='embedded_gaussian'))) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=4, frame_interval=16, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +work_dir = './work_dirs/slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb' # noqa E501 +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb.py new file mode 100644 index 00000000..4f71e890 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb.py @@ -0,0 +1,98 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', + '../../_base_/schedules/sgd_150e_warmup.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + backbone=dict( + non_local=((0, 0, 0), (1, 0, 1, 0), (1, 0, 1, 0, 1, 0), (0, 0, 0)), + non_local_cfg=dict( + sub_sample=True, + use_scale=True, + norm_cfg=dict(type='BN3d', requires_grad=True), + mode='embedded_gaussian'))) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=8, frame_interval=8, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.01, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus + +# runtime settings +work_dir = './work_dirs/slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb' # noqa E501 +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r101_8x8x1_196e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r101_8x8x1_196e_kinetics400_rgb.py new file mode 100644 index 00000000..9b3f8903 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r101_8x8x1_196e_kinetics400_rgb.py @@ -0,0 +1,21 @@ +_base_ = ['./slowonly_r50_8x8x1_256e_kinetics400_rgb.py'] + +# model settings +model = dict(backbone=dict(depth=101, pretrained=None)) + +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +# learning policy +lr_config = dict( + policy='CosineAnnealing', + min_lr=0, + warmup='linear', + warmup_ratio=0.1, + warmup_by_epoch=True, + warmup_iters=34) +total_epochs = 196 + +# runtime settings +work_dir = './work_dirs/slowonly_r101_8x8x1_196e_kinetics400_rgb' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_flow.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_flow.py new file mode 100644 index 00000000..02a3faf6 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_flow.py @@ -0,0 +1,103 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', '../../_base_/default_runtime.py' +] + +# model settings +model = dict(backbone=dict(in_channels=2, with_pool2=False)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics_flow_train_list.txt' +ann_file_val = 'data/kinetics400/kinetics_flow_val_list.txt' +ann_file_test = 'data/kinetics400/kinetics_flow_val_list.txt' +img_norm_cfg = dict(mean=[128, 128], std=[128, 128]) +train_pipeline = [ + dict(type='SampleFrames', clip_len=4, frame_interval=16, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=24, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + modality='Flow', + filename_tmpl='{}_{:05d}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + modality='Flow', + filename_tmpl='{}_{:05d}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + modality='Flow', + filename_tmpl='{}_{:05d}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.06, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='CosineAnnealing', + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=34) +total_epochs = 256 + +# runtime settings +checkpoint_config = dict(interval=4) +work_dir = './work_dirs/slowonly_r50_4x16x1_256e_kinetics400_flow' +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py new file mode 100644 index 00000000..a68c8efa --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_4x16x1_256e_kinetics400_rgb.py @@ -0,0 +1,93 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', '../../_base_/default_runtime.py' +] + +# model settings +model = dict(backbone=dict(pretrained=None)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=4, frame_interval=16, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', min_lr=0) +total_epochs = 256 + +# runtime settings +checkpoint_config = dict(interval=4) +work_dir = './work_dirs/slowonly_r50_4x16x1_256e_kinetics400_rgb' +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_flow.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_flow.py new file mode 100644 index 00000000..2cba67d9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_flow.py @@ -0,0 +1,103 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', '../../_base_/default_runtime.py' +] + +# model settings +model = dict(backbone=dict(in_channels=2, with_pool2=False)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics_flow_train_list.txt' +ann_file_val = 'data/kinetics400/kinetics_flow_val_list.txt' +ann_file_test = 'data/kinetics400/kinetics_flow_val_list.txt' +img_norm_cfg = dict(mean=[128, 128], std=[128, 128]) +train_pipeline = [ + dict(type='SampleFrames', clip_len=8, frame_interval=8, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=12, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + modality='Flow', + filename_tmpl='{}_{:05d}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + modality='Flow', + filename_tmpl='{}_{:05d}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + modality='Flow', + filename_tmpl='{}_{:05d}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.06, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict( + policy='CosineAnnealing', + min_lr=0, + warmup='linear', + warmup_by_epoch=True, + warmup_iters=34) +total_epochs = 196 + +# runtime settings +checkpoint_config = dict(interval=4) +work_dir = './work_dirs/slowonly_r50_8x8x1_256e_kinetics400_flow' +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb.py new file mode 100644 index 00000000..eec3694e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_8x8x1_256e_kinetics400_rgb.py @@ -0,0 +1,93 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', '../../_base_/default_runtime.py' +] + +# model settings +model = dict(backbone=dict(pretrained=None)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=8, frame_interval=8, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', min_lr=0) +total_epochs = 256 + +# runtime settings +checkpoint_config = dict(interval=4) +work_dir = './work_dirs/slowonly_r50_8x8x1_256e_kinetics400_rgb' +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_clip_feature_extraction_4x16x1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_clip_feature_extraction_4x16x1_rgb.py new file mode 100644 index 00000000..90d8087f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_clip_feature_extraction_4x16x1_rgb.py @@ -0,0 +1,45 @@ +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained=None, + lateral=False, + conv1_kernel=(1, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + norm_eval=False), + train_cfg=None, + test_cfg=dict(feature_extraction=True)) + +# dataset settings +dataset_type = 'VideoDataset' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=10, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=1, + workers_per_gpu=2, + test=dict( + type=dataset_type, + ann_file=None, + data_prefix=None, + pipeline=test_pipeline)) + +dist_params = dict(backend='nccl') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_video_4x16x1_256e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_video_4x16x1_256e_kinetics400_rgb.py new file mode 100644 index 00000000..202fa4e3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_video_4x16x1_256e_kinetics400_rgb.py @@ -0,0 +1,96 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', '../../_base_/default_runtime.py' +] + +# model settings +model = dict(backbone=dict(pretrained=None)) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/kinetics400/videos_train' +data_root_val = 'data/kinetics400/videos_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_videos.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_videos.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=4, frame_interval=16, num_clips=1), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=1, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=10, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=24, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.3, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', min_lr=0) +total_epochs = 256 + +# runtime settings +checkpoint_config = dict(interval=4) +work_dir = './work_dirs/slowonly_r50_video_4x16x1_256e_kinetics400_rgb' +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics600_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics600_rgb.py new file mode 100644 index 00000000..4b2b987b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics600_rgb.py @@ -0,0 +1,93 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', '../../_base_/default_runtime.py' +] + +# model settings +model = dict(backbone=dict(pretrained=None), cls_head=dict(num_classes=600)) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/kinetics600/videos_train' +data_root_val = 'data/kinetics600/videos_val' +ann_file_train = 'data/kinetics600/kinetics600_train_list_videos.txt' +ann_file_val = 'data/kinetics600/kinetics600_val_list_videos.txt' +ann_file_test = 'data/kinetics600/kinetics600_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=8, frame_interval=8, num_clips=1), + dict(type='DecordDecode'), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=1, + test_mode=True), + dict(type='DecordDecode'), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=10, + test_mode=True), + dict(type='DecordDecode'), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=12, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.15, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', min_lr=0) +total_epochs = 256 + +# runtime settings +checkpoint_config = dict(interval=4) +work_dir = './work_dirs/slowonly_r50_video_8x8x1_256e_kinetics600_rgb' +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics700_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics700_rgb.py new file mode 100644 index 00000000..4cbc9018 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_video_8x8x1_256e_kinetics700_rgb.py @@ -0,0 +1,92 @@ +_base_ = [ + '../../_base_/models/slowonly_r50.py', '../../_base_/default_runtime.py' +] + +# model settings +model = dict(backbone=dict(pretrained=None), cls_head=dict(num_classes=700)) + +dataset_type = 'VideoDataset' +data_root = 'data/kinetics700/videos_train' +data_root_val = 'data/kinetics700/videos_val' +ann_file_train = 'data/kinetics700/kinetics700_train_list_videos.txt' +ann_file_val = 'data/kinetics700/kinetics700_val_list_videos.txt' +ann_file_test = 'data/kinetics700/kinetics700_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=8, frame_interval=8, num_clips=1), + dict(type='DecordDecode'), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=1, + test_mode=True), + dict(type='DecordDecode'), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=10, + test_mode=True), + dict(type='DecordDecode'), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=12, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.15, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', min_lr=0) +total_epochs = 256 + +# runtime settings +checkpoint_config = dict(interval=4) +work_dir = './work_dirs/slowonly_r50_video_8x8x1_256e_kinetics700_rgb' +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_video_inference_4x16x1_256e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_video_inference_4x16x1_256e_kinetics400_rgb.py new file mode 100644 index 00000000..bd61b766 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/slowonly/slowonly_r50_video_inference_4x16x1_256e_kinetics400_rgb.py @@ -0,0 +1,33 @@ +_base_ = ['../../_base_/models/slowonly_r50.py'] + +# model settings +model = dict(backbone=dict(pretrained=None)) + +# dataset settings +dataset_type = 'VideoDataset' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=4, + frame_interval=16, + num_clips=10, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=1, + workers_per_gpu=2, + test=dict( + type=dataset_type, + ann_file=None, + data_prefix=None, + pipeline=test_pipeline)) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/README.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/README.md new file mode 100644 index 00000000..25d224ea --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/README.md @@ -0,0 +1,92 @@ +# TANet + +[TAM: Temporal Adaptive Module for Video Recognition](https://openaccess.thecvf.com/content/ICCV2021/html/Liu_TAM_Temporal_Adaptive_Module_for_Video_Recognition_ICCV_2021_paper.html) + + + +## Abstract + + + +Video data is with complex temporal dynamics due to various factors such as camera motion, speed variation, and different activities. To effectively capture this diverse motion pattern, this paper presents a new temporal adaptive module ({\\bf TAM}) to generate video-specific temporal kernels based on its own feature map. TAM proposes a unique two-level adaptive modeling scheme by decoupling the dynamic kernel into a location sensitive importance map and a location invariant aggregation weight. The importance map is learned in a local temporal window to capture short-term information, while the aggregation weight is generated from a global view with a focus on long-term structure. TAM is a modular block and could be integrated into 2D CNNs to yield a powerful video architecture (TANet) with a very small extra computational cost. The extensive experiments on Kinetics-400 and Something-Something datasets demonstrate that our TAM outperforms other temporal modeling methods consistently, and achieves the state-of-the-art performance under the similar complexity. + + + +
+ +
+ +## Results and Models + +### Kinetics-400 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | reference top1 acc | reference top5 acc | inference_time(video/s) | gpu_mem(M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------------- | :------------: | :--: | :------: | :------: | :------: | :------: | :----------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------: | :---------------------: | :--------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tanet_r50_dense_1x1x8_100e_kinetics400_rgb](/configs/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb.py) | short-side 320 | 8 | TANet | ImageNet | 76.28 | 92.60 | [76.22](https://github.com/liu-zhy/temporal-adaptive-module/blob/master/scripts/test_tam_kinetics_rgb_8f.sh) | [92.53](https://github.com/liu-zhy/temporal-adaptive-module/blob/master/scripts/test_tam_kinetics_rgb_8f.sh) | x | 7124 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb/tanet_r50_dense_1x1x8_100e_kinetics400_rgb_20210219-032c8e94.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb/tanet_r50_dense_1x1x8_100e_kinetics400_rgb_20210219.log) | [json](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb/tanet_r50_dense_1x1x8_100e_kinetics400_rgb_20210219.json) | + +### Something-Something V1 + +| config | resolution | gpus | backbone | pretrain | top1 acc (efficient/accurate) | top5 acc (efficient/accurate) | gpu_mem(M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------- | :--------: | :--: | :------: | :------: | :---------------------------: | :---------------------------: | :--------: | :---------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------: | +| [tanet_r50_1x1x8_50e_sthv1_rgb](/configs/recognition/tanet/tanet_r50_1x1x8_50e_sthv1_rgb.py) | height 100 | 8 | TANet | ImageNet | 47.34/49.58 | 75.72/77.31 | 7127 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x8_50e_sthv1_rgb/tanet_r50_1x1x8_50e_sthv1_rgb_20210630-f4a48609.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x8_50e_sthv1_rgb/20210606_205006.log) | [ckpt](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x8_50e_sthv1_rgb/20210606_205006.log.json) | +| [tanet_r50_1x1x16_50e_sthv1_rgb](/configs/recognition/tanet/tanet_r50_1x1x16_50e_sthv1_rgb.py) | height 100 | 8 | TANet | ImageNet | 49.05/50.91 | 77.90/79.13 | 7127 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x16_50e_sthv1_rgb/tanet_r50_1x1x16_50e_sthv1_rgb_20211202-370c2128.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x16_50e_sthv1_rgb/tanet_r50_1x1x16_50e_sthv1_rgb.log) | [ckpt](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x16_50e_sthv1_rgb/tanet_r50_1x1x16_50e_sthv1_rgb.json) | + +:::{note} + +1. The **gpus** indicates the number of gpu we used to get the checkpoint. It is noteworthy that the configs we provide are used for 8 gpus as default. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 8 GPUs x 8 videos/gpu and lr=0.04 for 16 GPUs x 16 videos/gpu. +2. The **inference_time** is got by this [benchmark script](/tools/analysis/benchmark.py), where we use the sampling frames strategy of the test setting and only care about the model inference time, not including the IO time and pre-processing time. For each setting, we use 1 gpu and set batch size (videos per gpu) to 1 to calculate the inference time. +3. The values in columns named after "reference" are the results got by testing on our dataset, using the checkpoints provided by the author with same model settings. The checkpoints for reference repo can be downloaded [here](https://drive.google.com/drive/folders/1sFfmP3yrfc7IzRshEELOby7-aEoymIFL?usp=sharing). +4. The validation set of Kinetics400 we used consists of 19796 videos. These videos are available at [Kinetics400-Validation](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB). The corresponding [data list](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (each line is of the format 'video_id, num_frames, label_index') and the [label map](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) are also available. + +::: + +For more details on data preparation, you can refer to corresponding parts in [Data Preparation](/docs/data_preparation.md). + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train TANet model on Kinetics-400 dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb.py \ + --work-dir work_dirs/tanet_r50_dense_1x1x8_100e_kinetics400_rgb \ + --validate --seed 0 --deterministic +``` + +For more details, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test TANet model on Kinetics-400 dataset and dump the result to a json file. + +```shell +python tools/test.py configs/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@article{liu2020tam, + title={TAM: Temporal Adaptive Module for Video Recognition}, + author={Liu, Zhaoyang and Wang, Limin and Wu, Wayne and Qian, Chen and Lu, Tong}, + journal={arXiv preprint arXiv:2005.06803}, + year={2020} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/README_zh-CN.md new file mode 100644 index 00000000..c99ddf85 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/README_zh-CN.md @@ -0,0 +1,77 @@ +# TANet + +## 简介 + + + +```BibTeX +@article{liu2020tam, + title={TAM: Temporal Adaptive Module for Video Recognition}, + author={Liu, Zhaoyang and Wang, Limin and Wu, Wayne and Qian, Chen and Lu, Tong}, + journal={arXiv preprint arXiv:2005.06803}, + year={2020} +} +``` + +## 模型库 + +### Kinetics-400 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 参考代码的 top1 准确率 | 参考代码的 top5 准确率 | 推理时间 (video/s) | GPU 显存占用 (M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :------: | :------: | :---------: | :---------: | :----------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------: | :----------------: | :--------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tanet_r50_dense_1x1x8_100e_kinetics400_rgb](/configs/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb.py) | 短边 320 | 8 | TANet | ImageNet | 76.28 | 92.60 | [76.22](https://github.com/liu-zhy/temporal-adaptive-module/blob/master/scripts/test_tam_kinetics_rgb_8f.sh) | [92.53](https://github.com/liu-zhy/temporal-adaptive-module/blob/master/scripts/test_tam_kinetics_rgb_8f.sh) | x | 7124 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb/tanet_r50_dense_1x1x8_100e_kinetics400_rgb_20210219-032c8e94.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb/tanet_r50_dense_1x1x8_100e_kinetics400_rgb_20210219.log) | [json](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb/tanet_r50_dense_1x1x8_100e_kinetics400_rgb_20210219.json) | + +### Something-Something V1 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 (efficient/accurate) | top5 准确率 (efficient/accurate) | GPU 显存占用 (M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------- | :----: | :------: | :------: | :------: | :------------------------------: | :------------------------------: | :--------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------: | +| [tanet_r50_1x1x8_50e_sthv1_rgb](/configs/recognition/tanet/tanet_r50_1x1x8_50e_sthv1_rgb.py) | 高 100 | 8 | TANet | ImageNet | 47.34/49.58 | 75.72/77.31 | 7127 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x8_50e_sthv1_rgb/tanet_r50_1x1x8_50e_sthv1_rgb_20210630-f4a48609.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x8_50e_sthv1_rgb/20210606_205006.log) | [ckpt](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x8_50e_sthv1_rgb/20210606_205006.log.json) | +| [tanet_r50_1x1x16_50e_sthv1_rgb](/configs/recognition/tanet/tanet_r50_1x1x16_50e_sthv1_rgb.py) | 高 100 | 8 | TANet | ImageNet | 49.05/50.91 | 77.90/79.13 | 7127 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x16_50e_sthv1_rgb/tanet_r50_1x1x16_50e_sthv1_rgb_20211202-370c2128.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x16_50e_sthv1_rgb/tanet_r50_1x1x16_50e_sthv1_rgb.log) | [ckpt](https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x16_50e_sthv1_rgb/tanet_r50_1x1x16_50e_sthv1_rgb.json) | + +注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +2. 这里的 **推理时间** 是根据 [基准测试脚本](/tools/analysis/benchmark.py) 获得的,采用测试时的采帧策略,且只考虑模型的推理时间, + 并不包括 IO 时间以及预处理时间。对于每个配置,MMAction2 使用 1 块 GPU 并设置批大小(每块 GPU 处理的视频个数)为 1 来计算推理时间。 +3. 参考代码的结果是通过使用相同的模型配置在原来的代码库上训练得到的。对应的模型权重文件可从 [这里](https://drive.google.com/drive/folders/1sFfmP3yrfc7IzRshEELOby7-aEoymIFL?usp=sharing) 下载。 +4. 我们使用的 Kinetics400 验证集包含 19796 个视频,用户可以从 [验证集视频](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB) 下载这些视频。同时也提供了对应的 [数据列表](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (每行格式为:视频 ID,视频帧数目,类别序号)以及 [标签映射](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) (类别序号到类别名称)。 + +对于数据集准备的细节,用户可参考 [数据集准备文档](/docs_zh_CN/data_preparation.md) 中的 Kinetics400 部分。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:以一个确定性的训练方式,辅以定期的验证过程进行 TANet 模型在 Kinetics400 数据集上的训练。 + +```shell +python tools/train.py configs/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb.py \ + --work-dir work_dirs/tanet_r50_dense_1x1x8_100e_kinetics400_rgb \ + --validate --seed 0 --deterministic +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 Kinetics400 数据集上测试 TANet 模型,并将结果导出为一个 json 文件。 + +```shell +python tools/test.py configs/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/metafile.yml new file mode 100644 index 00000000..4e5746bf --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/metafile.yml @@ -0,0 +1,80 @@ +Collections: +- Name: TANet + README: configs/recognition/tanet/README.md + Paper: + URL: https://arxiv.org/abs/2005.06803 + Title: "TAM: Temporal Adaptive Module for Video Recognition" +Models: +- Config: configs/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb.py + In Collection: TANet + Metadata: + Architecture: TANet + Batch Size: 8 + Epochs: 100 + FLOPs: 43065983104 + Parameters: 25590320 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tanet_r50_dense_1x1x8_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 76.28 + Top 5 Accuracy: 92.6 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb/tanet_r50_dense_1x1x8_100e_kinetics400_rgb_20210219.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb/tanet_r50_dense_1x1x8_100e_kinetics400_rgb_20210219.log + Weights: https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb/tanet_r50_dense_1x1x8_100e_kinetics400_rgb_20210219-032c8e94.pth +- Config: configs/recognition/tanet/tanet_r50_1x1x8_50e_sthv1_rgb.py + In Collection: TANet + Metadata: + Architecture: TANet + Batch Size: 8 + Epochs: 50 + FLOPs: 32972787840 + Parameters: 25127246 + Pretrained: ImageNet + Resolution: height 100 + Training Data: SthV1 + Training Resources: 8 GPUs + Modality: RGB + Name: tanet_r50_1x1x8_50e_sthv1_rgb + Results: + - Dataset: SthV1 + Metrics: + Top 1 Accuracy: 49.58 + Top 1 Accuracy (efficient): 47.34 + Top 5 Accuracy: 77.31 + Top 5 Accuracy (efficient): 75.72 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x8_50e_sthv1_rgb/20210606_205006.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x8_50e_sthv1_rgb/20210606_205006.log + Weights: https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x8_50e_sthv1_rgb/tanet_r50_1x1x8_50e_sthv1_rgb_20210630-f4a48609.pth +- Config: configs/recognition/tanet/tanet_r50_1x1x16_50e_sthv1_rgb.py + In Collection: TANet + Metadata: + Architecture: TANet + Batch Size: 8 + Epochs: 50 + FLOPs: 65946542336 + Parameters: 25134670 + Pretrained: ImageNet + Resolution: height 100 + Training Data: SthV1 + gpus: 4 + Modality: RGB + Name: tanet_r50_1x1x16_50e_sthv1_rgb + Results: + - Dataset: SthV1 + Metrics: + Top 1 Accuracy: 50.91 + Top 1 Accuracy (efficient): 49.05 + Top 5 Accuracy: 79.13 + Top 5 Accuracy (efficient): 77.90 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x16_50e_sthv1_rgb/tanet_r50_1x1x16_50e_sthv1_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x16_50e_sthv1_rgb/tanet_r50_1x1x16_50e_sthv1_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/tanet/tanet_r50_1x1x16_50e_sthv1_rgb/tanet_r50_1x1x16_50e_sthv1_rgb_20211202-370c2128.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/tanet_r50_1x1x16_50e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/tanet_r50_1x1x16_50e_sthv1_rgb.py new file mode 100644 index 00000000..741bd4db --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/tanet_r50_1x1x16_50e_sthv1_rgb.py @@ -0,0 +1,102 @@ +_base_ = [ + '../../_base_/models/tanet_r50.py', '../../_base_/default_runtime.py', + '../../_base_/schedules/sgd_tsm_50e.py' +] + +# model settings +model = dict( + backbone=dict(num_segments=16), + cls_head=dict(num_classes=174, num_segments=16, dropout_ratio=0.6)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' + +sthv1_flip_label_map = {2: 4, 4: 2, 30: 41, 41: 30, 52: 66, 66: 52} +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=16), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5, flip_label_map=sthv1_flip_label_map), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=4, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(lr=0.005, weight_decay=0.001) +lr_config = dict(policy='step', step=[30, 40, 45]) + +# runtime settings +work_dir = './work_dirs/tanet_r50_1x1x16_50e_sthv1_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/tanet_r50_1x1x8_50e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/tanet_r50_1x1x8_50e_sthv1_rgb.py new file mode 100644 index 00000000..2aa497dc --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/tanet_r50_1x1x8_50e_sthv1_rgb.py @@ -0,0 +1,100 @@ +_base_ = [ + '../../_base_/models/tanet_r50.py', '../../_base_/default_runtime.py', + '../../_base_/schedules/sgd_tsm_50e.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=174, dropout_ratio=0.6)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' + +sthv1_flip_label_map = {2: 4, 4: 2, 30: 41, 41: 30, 52: 66, 66: 52} +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5, flip_label_map=sthv1_flip_label_map), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(weight_decay=0.001) +lr_config = dict(policy='step', step=[30, 40, 45]) + +# runtime settings +work_dir = './work_dirs/tanet_r50_1x1x8_50e_sthv1_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb.py new file mode 100644 index 00000000..3ac78366 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb.py @@ -0,0 +1,100 @@ +_base_ = [ + '../../_base_/models/tanet_r50.py', '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='DenseSampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='DenseSampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='DenseSampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', + constructor='TSMOptimizerConstructor', + paramwise_cfg=dict(fc_lr5=True), + lr=0.01, # this lr is used for 8 gpus + momentum=0.9, + weight_decay=0.0001) +optimizer_config = dict(grad_clip=dict(max_norm=20, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[50, 75, 90]) +total_epochs = 100 + +# runtime settings +work_dir = './work_dirs/tanet_r50_dense_1x1x8_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/README.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/README.md new file mode 100644 index 00000000..71168eef --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/README.md @@ -0,0 +1,88 @@ +# TimeSformer + +[Is Space-Time Attention All You Need for Video Understanding?](https://arxiv.org/abs/2102.05095) + + + +## Abstract + + + +We present a convolution-free approach to video classification built exclusively on self-attention over space and time. Our method, named "TimeSformer," adapts the standard Transformer architecture to video by enabling spatiotemporal feature learning directly from a sequence of frame-level patches. Our experimental study compares different self-attention schemes and suggests that "divided attention," where temporal attention and spatial attention are separately applied within each block, leads to the best video classification accuracy among the design choices considered. Despite the radically new design, TimeSformer achieves state-of-the-art results on several action recognition benchmarks, including the best reported accuracy on Kinetics-400 and Kinetics-600. Finally, compared to 3D convolutional networks, our model is faster to train, it can achieve dramatically higher test efficiency (at a small drop in accuracy), and it can also be applied to much longer video clips (over one minute long). + + + +
+ +
+ +## Results and Models + +### Kinetics-400 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | inference_time(video/s) | gpu_mem(M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------------------------------- | :------------: | :--: | :---------: | :----------: | :------: | :------: | :---------------------: | :--------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [timesformer_divST_8x32x1_15e_kinetics400_rgb](/configs/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb.py) | short-side 320 | 8 | TimeSformer | ImageNet-21K | 77.92 | 93.29 | x | 17874 | [ckpt](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb/timesformer_divST_8x32x1_15e_kinetics400_rgb-3f8e5d03.pth) | [log](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb/timesformer_divST_8x32x1_15e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb/timesformer_divST_8x32x1_15e_kinetics400_rgb.json) | +| [timesformer_jointST_8x32x1_15e_kinetics400_rgb](/configs/recognition/timesformer/timesformer_jointST_8x32x1_15e_kinetics400_rgb.py) | short-side 320 | 8 | TimeSformer | ImageNet-21K | 77.01 | 93.08 | x | 25658 | [ckpt](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_jointST_8x32x1_15e_kinetics400_rgb/timesformer_jointST_8x32x1_15e_kinetics400_rgb-0d6e3984.pth) | [log](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_jointST_8x32x1_15e_kinetics400_rgb/timesformer_jointST_8x32x1_15e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_jointST_8x32x1_15e_kinetics400_rgb/timesformer_jointST_8x32x1_15e_kinetics400_rgb.json) | +| [timesformer_sapceOnly_8x32x1_15e_kinetics400_rgb](/configs/recognition/timesformer/timesformer_sapceOnly_8x32x1_15e_kinetics400_rgb.py) | short-side 320 | 8 | TimeSformer | ImageNet-21K | 76.93 | 92.90 | x | 12750 | [ckpt](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb-0cf829cd.pth) | [log](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb.json) | + +:::{note} + +1. The **gpus** indicates the number of gpu (32G V100) we used to get the checkpoint. It is noteworthy that the configs we provide are used for 8 gpus as default. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.005 for 8 GPUs x 8 videos/gpu and lr=0.00375 for 8 GPUs x 6 videos/gpu. +2. We keep the test setting with the [original repo](https://github.com/facebookresearch/TimeSformer) (three crop x 1 clip). +3. The pretrained model `vit_base_patch16_224.pth` used by TimeSformer was converted from [vision_transformer](https://github.com/google-research/vision_transformer). + +::: + +For more details on data preparation, you can refer to Kinetics400 in [Data Preparation](/docs/data_preparation.md). + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train TimeSformer model on Kinetics-400 dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb.py \ + --work-dir work_dirs/timesformer_divST_8x32x1_15e_kinetics400_rgb.py \ + --validate --seed 0 --deterministic +``` + +For more details, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test TimeSformer model on Kinetics-400 dataset and dump the result to a json file. + +```shell +python tools/test.py configs/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@misc{bertasius2021spacetime, + title = {Is Space-Time Attention All You Need for Video Understanding?}, + author = {Gedas Bertasius and Heng Wang and Lorenzo Torresani}, + year = {2021}, + eprint = {2102.05095}, + archivePrefix = {arXiv}, + primaryClass = {cs.CV} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/README_zh-CN.md new file mode 100644 index 00000000..43d55114 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/README_zh-CN.md @@ -0,0 +1,72 @@ +# TimeSformer + +## 简介 + + + +```BibTeX +@misc{bertasius2021spacetime, + title = {Is Space-Time Attention All You Need for Video Understanding?}, + author = {Gedas Bertasius and Heng Wang and Lorenzo Torresani}, + year = {2021}, + eprint = {2102.05095}, + archivePrefix = {arXiv}, + primaryClass = {cs.CV} +} +``` + +## 模型库 + +### Kinetics-400 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 推理时间 (video/s) | GPU 显存占用 (M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :---------: | :----------: | :---------: | :---------: | :----------------: | :--------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [timesformer_divST_8x32x1_15e_kinetics400_rgb](/configs/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb.py) | 短边 320 | 8 | TimeSformer | ImageNet-21K | 77.92 | 93.29 | x | 17874 | [ckpt](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb/timesformer_divST_8x32x1_15e_kinetics400_rgb-3f8e5d03.pth) | [log](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb/timesformer_divST_8x32x1_15e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb/timesformer_divST_8x32x1_15e_kinetics400_rgb.json) | +| [timesformer_jointST_8x32x1_15e_kinetics400_rgb](/configs/recognition/timesformer/timesformer_jointST_8x32x1_15e_kinetics400_rgb.py) | 短边 320 | 8 | TimeSformer | ImageNet-21K | 77.01 | 93.08 | x | 25658 | [ckpt](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_jointST_8x32x1_15e_kinetics400_rgb/timesformer_jointST_8x32x1_15e_kinetics400_rgb-0d6e3984.pth) | [log](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_jointST_8x32x1_15e_kinetics400_rgb/timesformer_jointST_8x32x1_15e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_jointST_8x32x1_15e_kinetics400_rgb/timesformer_jointST_8x32x1_15e_kinetics400_rgb.json) | +| [timesformer_sapceOnly_8x32x1_15e_kinetics400_rgb](/configs/recognition/timesformer/timesformer_sapceOnly_8x32x1_15e_kinetics400_rgb.py) | 短边 320 | 8 | TimeSformer | ImageNet-21K | 76.93 | 92.90 | x | 12750 | [ckpt](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb-0cf829cd.pth) | [log](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb.json) | + +注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数 (32G V100)。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.005 对应 8 GPUs x 8 video/gpu,以及 lr=0.004375 对应 8 GPUs x 7 video/gpu。 +2. MMAction2 保持与 [原代码](https://github.com/facebookresearch/TimeSformer) 的测试设置一致(three crop x 1 clip)。 +3. TimeSformer 使用的预训练模型 `vit_base_patch16_224.pth` 转换自 [vision_transformer](https://github.com/google-research/vision_transformer)。 + +对于数据集准备的细节,用户可参考 [数据集准备文档](/docs_zh_CN/data_preparation.md) 中的 Kinetics400 部分。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:以一个确定性的训练方式,辅以定期的验证过程进行 TimeSformer 模型在 Kinetics400 数据集上的训练。 + +```shell +python tools/train.py configs/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb.py \ + --work-dir work_dirs/timesformer_divST_8x32x1_15e_kinetics400_rgb.py \ + --validate --seed 0 --deterministic +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 Kinetics400 数据集上测试 TimeSformer 模型,并将结果导出为一个 json 文件。 + +```shell +python tools/test.py configs/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/metafile.yml new file mode 100644 index 00000000..a93c57b3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/metafile.yml @@ -0,0 +1,70 @@ +Collections: +- Name: TimeSformer + README: configs/recognition/timesformer/README.md + Paper: + URL: https://arxiv.org/abs/2102.05095 + Title: Is Space-Time Attention All You Need for Video Understanding +Models: +- Config: configs/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb.py + In Collection: TimeSformer + Metadata: + Architecture: TimeSformer + Batch Size: 8 + Epochs: 15 + Pretrained: ImageNet-21K + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: timesformer_divST_8x32x1_15e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 77.92 + Top 5 Accuracy: 93.29 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb/timesformer_divST_8x32x1_15e_kinetics400_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb/timesformer_divST_8x32x1_15e_kinetics400_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb/timesformer_divST_8x32x1_15e_kinetics400_rgb-3f8e5d03.pth +- Config: configs/recognition/timesformer/timesformer_jointST_8x32x1_15e_kinetics400_rgb.py + In Collection: TimeSformer + Metadata: + Architecture: TimeSformer + Batch Size: 7 + Epochs: 15 + Pretrained: ImageNet-21K + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: timesformer_jointST_8x32x1_15e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 77.01 + Top 5 Accuracy: 93.08 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_jointST_8x32x1_15e_kinetics400_rgb/timesformer_jointST_8x32x1_15e_kinetics400_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_jointST_8x32x1_15e_kinetics400_rgb/timesformer_jointST_8x32x1_15e_kinetics400_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_jointST_8x32x1_15e_kinetics400_rgb/timesformer_jointST_8x32x1_15e_kinetics400_rgb-0d6e3984.pth +- Config: configs/recognition/timesformer/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb.py + In Collection: TimeSformer + Metadata: + Architecture: TimeSformer + Batch Size: 8 + Epochs: 15 + Pretrained: ImageNet-21K + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 76.93 + Top 5 Accuracy: 92.90 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/timesformer/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb-0cf829cd.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb.py new file mode 100644 index 00000000..8772ad95 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb.py @@ -0,0 +1,120 @@ +_base_ = ['../../_base_/default_runtime.py'] + +# model settings +model = dict( + type='Recognizer3D', + backbone=dict( + type='TimeSformer', + pretrained= # noqa: E251 + 'https://download.openmmlab.com/mmaction/recognition/timesformer/vit_base_patch16_224.pth', # noqa: E501 + num_frames=8, + img_size=224, + patch_size=16, + embed_dims=768, + in_channels=3, + dropout_ratio=0., + transformer_layers=None, + attention_type='divided_space_time', + norm_cfg=dict(type='LN', eps=1e-6)), + cls_head=dict(type='TimeSformerHead', num_classes=400, in_channels=768), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob')) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' + +img_norm_cfg = dict( + mean=[127.5, 127.5, 127.5], std=[127.5, 127.5, 127.5], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=8, frame_interval=32, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=224), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=32, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=32, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 224)), + dict(type='ThreeCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', + lr=0.005, + momentum=0.9, + paramwise_cfg=dict( + custom_keys={ + '.backbone.cls_token': dict(decay_mult=0.0), + '.backbone.pos_embed': dict(decay_mult=0.0), + '.backbone.time_embed': dict(decay_mult=0.0) + }), + weight_decay=1e-4, + nesterov=True) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) + +# learning policy +lr_config = dict(policy='step', step=[5, 10]) +total_epochs = 15 + +# runtime settings +checkpoint_config = dict(interval=1) +work_dir = './work_dirs/timesformer_divST_8x32x1_15e_kinetics400_rgb' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/timesformer_jointST_8x32x1_15e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/timesformer_jointST_8x32x1_15e_kinetics400_rgb.py new file mode 100644 index 00000000..4f4fdf7c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/timesformer_jointST_8x32x1_15e_kinetics400_rgb.py @@ -0,0 +1,119 @@ +_base_ = ['../../_base_/default_runtime.py'] + +# model settings +model = dict( + type='Recognizer3D', + backbone=dict( + type='TimeSformer', + pretrained= # noqa: E251 + 'https://download.openmmlab.com/mmaction/recognition/timesformer/vit_base_patch16_224.pth', # noqa: E501 + num_frames=8, + img_size=224, + patch_size=16, + embed_dims=768, + in_channels=3, + dropout_ratio=0., + transformer_layers=None, + attention_type='joint_space_time', + norm_cfg=dict(type='LN', eps=1e-6)), + cls_head=dict(type='TimeSformerHead', num_classes=400, in_channels=768), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob')) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' + +img_norm_cfg = dict( + mean=[127.5, 127.5, 127.5], std=[127.5, 127.5, 127.5], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=8, frame_interval=32, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=224), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=32, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=32, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 224)), + dict(type='ThreeCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +data = dict( + videos_per_gpu=7, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', + lr=0.004375, + momentum=0.9, + paramwise_cfg=dict( + custom_keys={ + '.backbone.cls_token': dict(decay_mult=0.0), + '.backbone.pos_embed': dict(decay_mult=0.0), + '.backbone.time_embed': dict(decay_mult=0.0) + }), + weight_decay=1e-4, + nesterov=True) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[5, 10]) +total_epochs = 15 + +# runtime settings +checkpoint_config = dict(interval=1) +work_dir = './work_dirs/timesformer_divST_8x32x1_15e_kinetics400_rgb' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb.py new file mode 100644 index 00000000..a6207d95 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/timesformer/timesformer_spaceOnly_8x32x1_15e_kinetics400_rgb.py @@ -0,0 +1,118 @@ +_base_ = ['../../_base_/default_runtime.py'] + +# model settings +model = dict( + type='Recognizer3D', + backbone=dict( + type='TimeSformer', + pretrained= # noqa: E251 + 'https://download.openmmlab.com/mmaction/recognition/timesformer/vit_base_patch16_224.pth', # noqa: E501 + num_frames=8, + img_size=224, + patch_size=16, + embed_dims=768, + in_channels=3, + dropout_ratio=0., + transformer_layers=None, + attention_type='space_only', + norm_cfg=dict(type='LN', eps=1e-6)), + cls_head=dict(type='TimeSformerHead', num_classes=400, in_channels=768), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob')) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' + +img_norm_cfg = dict( + mean=[127.5, 127.5, 127.5], std=[127.5, 127.5, 127.5], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=8, frame_interval=32, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='RandomRescale', scale_range=(256, 320)), + dict(type='RandomCrop', size=224), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=32, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=32, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 224)), + dict(type='ThreeCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', + lr=0.005, + momentum=0.9, + paramwise_cfg=dict( + custom_keys={ + '.backbone.cls_token': dict(decay_mult=0.0), + '.backbone.pos_embed': dict(decay_mult=0.0) + }), + weight_decay=1e-4, + nesterov=True) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[5, 10]) +total_epochs = 15 + +# runtime settings +checkpoint_config = dict(interval=1) +work_dir = './work_dirs/timesformer_divST_8x32x1_15e_kinetics400_rgb' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/README.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/README.md new file mode 100644 index 00000000..72aa5190 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/README.md @@ -0,0 +1,102 @@ +# TIN + +[Temporal Interlacing Network](https://ojs.aaai.org/index.php/AAAI/article/view/6872) + + + +## Abstract + + + +For a long time, the vision community tries to learn the spatio-temporal representation by combining convolutional neural network together with various temporal models, such as the families of Markov chain, optical flow, RNN and temporal convolution. However, these pipelines consume enormous computing resources due to the alternately learning process for spatial and temporal information. One natural question is whether we can embed the temporal information into the spatial one so the information in the two domains can be jointly learned once-only. In this work, we answer this question by presenting a simple yet powerful operator -- temporal interlacing network (TIN). Instead of learning the temporal features, TIN fuses the two kinds of information by interlacing spatial representations from the past to the future, and vice versa. A differentiable interlacing target can be learned to control the interlacing process. In this way, a heavy temporal model is replaced by a simple interlacing operator. We theoretically prove that with a learnable interlacing target, TIN performs equivalently to the regularized temporal convolution network (r-TCN), but gains 4% more accuracy with 6x less latency on 6 challenging benchmarks. These results push the state-of-the-art performances of video understanding by a considerable margin. Not surprising, the ensemble model of the proposed TIN won the 1st place in the ICCV19 - Multi Moments in Time challenge. + + + +
+ +
+ +## Results and Models + +### Something-Something V1 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | reference top1 acc | reference top5 acc | gpu_mem(M) | ckpt | log | json | +| :------------------------------------------------------------------------------------- | :--------: | :--: | :------: | :------: | :------: | :------: | :----------------: | :----------------: | :--------: | :-------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------: | +| [tin_r50_1x1x8_40e_sthv1_rgb](/configs/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb.py) | height 100 | 8x4 | ResNet50 | ImageNet | 44.25 | 73.94 | 44.04 | 72.72 | 6181 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb/tin_r50_1x1x8_40e_sthv1_rgb_20200729-4a33db86.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb/20200729_034132.log) | [json](https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb/20200729_034132.log.json) | + +### Something-Something V2 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | reference top1 acc | reference top5 acc | gpu_mem(M) | ckpt | log | json | +| :------------------------------------------------------------------------------------- | :--------: | :--: | :------: | :------: | :------: | :------: | :----------------: | :----------------: | :--------: | :-------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------: | +| [tin_r50_1x1x8_40e_sthv2_rgb](/configs/recognition/tin/tin_r50_1x1x8_40e_sthv2_rgb.py) | height 240 | 8x4 | ResNet50 | ImageNet | 56.70 | 83.62 | 56.48 | 83.45 | 6185 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv2_rgb/tin_r50_1x1x8_40e_sthv2_rgb_20200912-b27a7337.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv2_rgb/20200912_225451.log) | [json](https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv2_rgb/20200912_225451.log.json) | + +### Kinetics-400 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | gpu_mem(M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------------------- | :------------: | :--: | :------: | :-------------: | :------: | :------: | :--------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------: | +| [tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb](/configs/recognition/tin/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb.py) | short-side 256 | 8x4 | ResNet50 | TSM-Kinetics400 | 70.89 | 89.89 | 6187 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tin/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb_20200810-4a146a70.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tin/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb/20200809_142447.log) | [json](https://download.openmmlab.com/mmaction/recognition/tin/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb/20200809_142447.log.json) | + +Here, we use `finetune` to indicate that we use [TSM model](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/tsm_r50_1x1x8_50e_kinetics400_rgb_20200607-af7fb746.pth) trained on Kinetics-400 to finetune the TIN model on Kinetics-400. + +:::{note} + +1. The **reference topk acc** are got by training the [original repo #1aacd0c](https://github.com/deepcs233/TIN/tree/1aacd0c4c30d5e1d334bf023e55b855b59f158db) with no [AverageMeter issue](https://github.com/deepcs233/TIN/issues/4). + The [AverageMeter issue](https://github.com/deepcs233/TIN/issues/4) will lead to incorrect performance, so we fix it before running. +2. The **gpus** indicates the number of gpu we used to get the checkpoint. It is noteworthy that the configs we provide are used for 8 gpus as default. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. +3. The **inference_time** is got by this [benchmark script](/tools/analysis/benchmark.py), where we use the sampling frames strategy of the test setting and only care about the model inference time, + not including the IO time and pre-processing time. For each setting, we use 1 gpu and set batch size (videos per gpu) to 1 to calculate the inference time. +4. The values in columns named after "reference" are the results got by training on the original repo, using the same model settings. +5. The validation set of Kinetics400 we used consists of 19796 videos. These videos are available at [Kinetics400-Validation](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB). The corresponding [data list](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (each line is of the format 'video_id, num_frames, label_index') and the [label map](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) are also available. + +::: + +For more details on data preparation, you can refer to Kinetics400, Something-Something V1 and Something-Something V2 in [Data Preparation](/docs/data_preparation.md). + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train TIN model on Something-Something V1 dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb.py \ + --work-dir work_dirs/tin_r50_1x1x8_40e_sthv1_rgb \ + --validate --seed 0 --deterministic +``` + +For more details, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test TIN model on Something-Something V1 dataset and dump the result to a json file. + +```shell +python tools/test.py configs/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@article{shao2020temporal, + title={Temporal Interlacing Network}, + author={Hao Shao and Shengju Qian and Yu Liu}, + year={2020}, + journal={AAAI}, +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/README_zh-CN.md new file mode 100644 index 00000000..7e7e85d1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/README_zh-CN.md @@ -0,0 +1,85 @@ +# TIN + +## 简介 + + + +```BibTeX +@article{shao2020temporal, + title={Temporal Interlacing Network}, + author={Hao Shao and Shengju Qian and Yu Liu}, + year={2020}, + journal={AAAI}, +} +``` + +## 模型库 + +### Something-Something V1 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 参考代码的 top1 准确率 | 参考代码的 top5 准确率 | GPU 显存占用 (M) | ckpt | log | json | +| :------------------------------------------------------------------------------------- | :----: | :------: | :------: | :------: | :---------: | :---------: | :--------------------: | :--------------------: | :--------------: | :-------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------: | +| [tin_r50_1x1x8_40e_sthv1_rgb](/configs/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb.py) | 高 100 | 8x4 | ResNet50 | ImageNet | 44.25 | 73.94 | 44.04 | 72.72 | 6181 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb/tin_r50_1x1x8_40e_sthv1_rgb_20200729-4a33db86.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb/20200729_034132.log) | [json](https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb/20200729_034132.log.json) | + +### Something-Something V2 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 参考代码的 top1 准确率 | 参考代码的 top5 准确率 | GPU 显存占用 (M) | ckpt | log | json | +| :------------------------------------------------------------------------------------- | :----: | :------: | :------: | :------: | :---------: | :---------: | :--------------------: | :--------------------: | :--------------: | :-------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------: | +| [tin_r50_1x1x8_40e_sthv2_rgb](/configs/recognition/tin/tin_r50_1x1x8_40e_sthv2_rgb.py) | 高 240 | 8x4 | ResNet50 | ImageNet | 56.70 | 83.62 | 56.48 | 83.45 | 6185 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv2_rgb/tin_r50_1x1x8_40e_sthv2_rgb_20200912-b27a7337.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv2_rgb/20200912_225451.log) | [json](https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv2_rgb/20200912_225451.log.json) | + +### Kinetics-400 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | GPU 显存占用 (M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :------: | :-------------: | :---------: | :---------: | :--------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------: | +| [tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb](/configs/recognition/tin/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb.py) | 短边 256 | 8x4 | ResNet50 | TSM-Kinetics400 | 70.89 | 89.89 | 6187 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tin/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb_20200810-4a146a70.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tin/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb/20200809_142447.log) | [json](https://download.openmmlab.com/mmaction/recognition/tin/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb/20200809_142447.log.json) | + +这里,MMAction2 使用 `finetune` 一词表示 TIN 模型使用 Kinetics400 上的 [TSM 模型](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/tsm_r50_1x1x8_50e_kinetics400_rgb_20200607-af7fb746.pth) 进行微调。 + +注: + +1. 参考代码的结果是通过 [原始 repo](https://github.com/deepcs233/TIN/tree/1aacd0c4c30d5e1d334bf023e55b855b59f158db) 解决 [AverageMeter 相关问题](https://github.com/deepcs233/TIN/issues/4) 后训练得到的,该问题会导致错误的精度计算。 +2. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +3. 这里的 **推理时间** 是根据 [基准测试脚本](/tools/analysis/benchmark.py) 获得的,采用测试时的采帧策略,且只考虑模型的推理时间, + 并不包括 IO 时间以及预处理时间。对于每个配置,MMAction2 使用 1 块 GPU 并设置批大小(每块 GPU 处理的视频个数)为 1 来计算推理时间。 +4. 参考代码的结果是通过使用相同的模型配置在原来的代码库上训练得到的。 +5. 我们使用的 Kinetics400 验证集包含 19796 个视频,用户可以从 [验证集视频](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB) 下载这些视频。同时也提供了对应的 [数据列表](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (每行格式为:视频 ID,视频帧数目,类别序号)以及 [标签映射](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) (类别序号到类别名称)。 + +对于数据集准备的细节,用户可参考 [数据集准备文档](/docs_zh_CN/data_preparation.md) 中的 Kinetics400, Something-Something V1 and Something-Something V2 部分。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:以一个确定性的训练方式,辅以定期的验证过程进行 TIN 模型在 Something-Something V1 数据集上的训练。 + +```shell +python tools/train.py configs/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb.py \ + --work-dir work_dirs/tin_r50_1x1x8_40e_sthv1_rgb \ + --validate --seed 0 --deterministic +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 Something-Something V1 数据集上测试 TIN 模型,并将结果导出为一个 json 文件。 + +```shell +python tools/test.py configs/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/metafile.yml new file mode 100644 index 00000000..a820f93c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/metafile.yml @@ -0,0 +1,76 @@ +Collections: +- Name: TIN + README: configs/recognition/tin/README.md + Paper: + URL: https://arxiv.org/abs/2001.06499 + Title: Temporal Interlacing Network +Models: +- Config: configs/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb.py + In Collection: TIN + Metadata: + Architecture: ResNet50 + Batch Size: 6 + Epochs: 40 + FLOPs: 32962097536 + Parameters: 23895566 + Pretrained: ImageNet + Resolution: height 100 + Training Data: SthV1 + Training Resources: 32 GPUs + Modality: RGB + Name: tin_r50_1x1x8_40e_sthv1_rgb + Results: + - Dataset: SthV1 + Metrics: + Top 1 Accuracy: 44.25 + Top 5 Accuracy: 73.94 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb/20200729_034132.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb/20200729_034132.log + Weights: https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb/tin_r50_1x1x8_40e_sthv1_rgb_20200729-4a33db86.pth +- Config: configs/recognition/tin/tin_r50_1x1x8_40e_sthv2_rgb.py + In Collection: TIN + Metadata: + Architecture: ResNet50 + Batch Size: 6 + Epochs: 40 + FLOPs: 32962097536 + Parameters: 23895566 + Pretrained: ImageNet + Resolution: height 240 + Training Data: SthV2 + Training Resources: 32 GPUs + Modality: RGB + Name: tin_r50_1x1x8_40e_sthv2_rgb + Results: + - Dataset: SthV2 + Metrics: + Top 1 Accuracy: 56.7 + Top 5 Accuracy: 83.62 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv2_rgb/20200912_225451.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv2_rgb/20200912_225451.log + Weights: https://download.openmmlab.com/mmaction/recognition/tin/tin_r50_1x1x8_40e_sthv2_rgb/tin_r50_1x1x8_40e_sthv2_rgb_20200912-b27a7337.pth +- Config: configs/recognition/tin/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb.py + In Collection: TIN + Metadata: + Architecture: ResNet50 + Batch Size: 6 + Epochs: 50 + FLOPs: 32965800320 + Parameters: 24358640 + Pretrained: TSM-Kinetics400 + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 70.89 + Top 5 Accuracy: 89.89 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tin/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb/20200809_142447.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tin/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb/20200809_142447.log + Weights: https://download.openmmlab.com/mmaction/recognition/tin/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb_20200810-4a146a70.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb.py new file mode 100644 index 00000000..3ba65247 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/tin_r50_1x1x8_40e_sthv1_rgb.py @@ -0,0 +1,106 @@ +_base_ = ['../../_base_/models/tin_r50.py', '../../_base_/default_runtime.py'] + +# model settings +model = dict(cls_head=dict(num_classes=174, dropout_ratio=0.8)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', + constructor='TSMOptimizerConstructor', + paramwise_cfg=dict(fc_lr5=True), + lr=0.02, # this lr is used for 8 gpus + momentum=0.9, + weight_decay=0.0005) +optimizer_config = dict(grad_clip=dict(max_norm=20, norm_type=2)) +# learning policy +lr_config = dict( + policy='CosineAnnealing', + min_lr_ratio=0.5, + warmup='linear', + warmup_ratio=0.1, + warmup_by_epoch=True, + warmup_iters=1) +total_epochs = 40 + +# runtime settings +work_dir = './work_dirs/tin_r50_1x1x8_40e_sthv1_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/tin_r50_1x1x8_40e_sthv2_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/tin_r50_1x1x8_40e_sthv2_rgb.py new file mode 100644 index 00000000..35bbd26b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/tin_r50_1x1x8_40e_sthv2_rgb.py @@ -0,0 +1,103 @@ +_base_ = ['../../_base_/models/tin_r50.py', '../../_base_/default_runtime.py'] + +# model settings +model = dict(cls_head=dict(num_classes=174, dropout_ratio=0.8)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv2/rawframes' +data_root_val = 'data/sthv2/rawframes' +ann_file_train = 'data/sthv2/sthv2_train_list_rawframes.txt' +ann_file_val = 'data/sthv2/sthv2_val_list_rawframes.txt' +ann_file_test = 'data/sthv2/sthv2_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', + constructor='TSMOptimizerConstructor', + paramwise_cfg=dict(fc_lr5=True), + lr=0.02, # this lr is used for 8 gpus + momentum=0.9, + weight_decay=0.0005) +optimizer_config = dict(grad_clip=dict(max_norm=20, norm_type=2)) +# learning policy +lr_config = dict( + policy='CosineAnnealing', + by_epoch=False, + warmup='linear', + warmup_iters=1, + warmup_by_epoch=True, + min_lr=0) +total_epochs = 40 + +# runtime settings +work_dir = './work_dirs/tin_r50_1x1x8_40e_sthv2_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb.py new file mode 100644 index 00000000..81f03a73 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tin/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb.py @@ -0,0 +1,93 @@ +_base_ = [ + '../../_base_/models/tin_r50.py', '../../_base_/schedules/sgd_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(is_shift=True)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) +# optimizer +optimizer = dict( + constructor='TSMOptimizerConstructor', paramwise_cfg=dict(fc_lr5=True)) +optimizer_config = dict(grad_clip=dict(max_norm=20, norm_type=2)) + +# runtime settings +work_dir = './work_dirs/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb/' +load_from = 'https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/tsm_r50_1x1x8_50e_kinetics400_rgb_20200607-af7fb746.pth' # noqa: E501 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/README.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/README.md new file mode 100644 index 00000000..dbb0d42e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/README.md @@ -0,0 +1,92 @@ +# TPN + +[Temporal Pyramid Network for Action Recognition](https://openaccess.thecvf.com/content_CVPR_2020/html/Yang_Temporal_Pyramid_Network_for_Action_Recognition_CVPR_2020_paper.html) + + + +## Abstract + + + +Visual tempo characterizes the dynamics and the temporal scale of an action. Modeling such visual tempos of different actions facilitates their recognition. Previous works often capture the visual tempo through sampling raw videos at multiple rates and constructing an input-level frame pyramid, which usually requires a costly multi-branch network to handle. In this work we propose a generic Temporal Pyramid Network (TPN) at the feature-level, which can be flexibly integrated into 2D or 3D backbone networks in a plug-and-play manner. Two essential components of TPN, the source of features and the fusion of features, form a feature hierarchy for the backbone so that it can capture action instances at various tempos. TPN also shows consistent improvements over other challenging baselines on several action recognition datasets. Specifically, when equipped with TPN, the 3D ResNet-50 with dense sampling obtains a 2% gain on the validation set of Kinetics-400. A further analysis also reveals that TPN gains most of its improvements on action classes that have large variances in their visual tempos, validating the effectiveness of TPN. + + + +
+ +
+ +## Results and Models + +### Kinetics-400 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | reference top1 acc | reference top5 acc | inference_time(video/s) | gpu_mem(M) | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------: | :--: | :------: | :------: | :------: | :------: | :-------------------------------------------------------------------: | :-------------------------------------------------------------------: | :---------------------: | :--------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tpn_slowonly_r50_8x8x1_150e_kinetics_rgb](/configs/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.py) | short-side 320 | 8x2 | ResNet50 | None | 73.58 | 91.35 | x | x | x | 6916 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb-c568e7ad.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.json) | +| [tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb](/configs/recognition/tpn/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb.py) | short-side 320 | 8 | ResNet50 | ImageNet | 76.59 | 92.72 | [75.49](https://github.com/decisionforce/TPN/blob/master/MODELZOO.md) | [92.05](https://github.com/decisionforce/TPN/blob/master/MODELZOO.md) | x | 6916 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb-44362b55.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb.json) | + +### Something-Something V1 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | gpu_mem(M) | ckpt | log | json | +| :----------------------------------------------------------------------------------------------- | :--------: | :--: | :------: | :------: | :------: | :------: | :--------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------: | +| [tpn_tsm_r50_1x1x8_150e_sthv1_rgb](/configs/recognition/tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb.py) | height 100 | 8x6 | ResNet50 | TSM | 51.50 | 79.15 | 8828 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb/tpn_tsm_r50_1x1x8_150e_sthv1_rgb_20211202-c28ed83f.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb/tpn_tsm_r50_1x1x8_150e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb/tpn_tsm_r50_1x1x8_150e_sthv1_rgb.json) | + +:::{note} + +1. The **gpus** indicates the number of gpu we used to get the checkpoint. It is noteworthy that the configs we provide are used for 8 gpus as default. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. +2. The **inference_time** is got by this [benchmark script](/tools/analysis/benchmark.py), where we use the sampling frames strategy of the test setting and only care about the model inference time, + not including the IO time and pre-processing time. For each setting, we use 1 gpu and set batch size (videos per gpu) to 1 to calculate the inference time. +3. The values in columns named after "reference" are the results got by testing the checkpoint released on the original repo and codes, using the same dataset with ours. +4. The validation set of Kinetics400 we used consists of 19796 videos. These videos are available at [Kinetics400-Validation](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB). The corresponding [data list](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (each line is of the format 'video_id, num_frames, label_index') and the [label map](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) are also available. + +::: + +For more details on data preparation, you can refer to Kinetics400, Something-Something V1 and Something-Something V2 in [Data Preparation](/docs/data_preparation.md). + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train TPN model on Kinetics-400 dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.py \ + --work-dir work_dirs/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb [--validate --seed 0 --deterministic] +``` + +For more details, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test TPN model on Kinetics-400 dataset and dump the result to a json file. + +```shell +python tools/test.py configs/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json --average-clips prob +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@inproceedings{yang2020tpn, + title={Temporal Pyramid Network for Action Recognition}, + author={Yang, Ceyuan and Xu, Yinghao and Shi, Jianping and Dai, Bo and Zhou, Bolei}, + booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, + year={2020}, +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/README_zh-CN.md new file mode 100644 index 00000000..e1d4c21d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/README_zh-CN.md @@ -0,0 +1,74 @@ +# TPN + +## 简介 + + + +```BibTeX +@inproceedings{yang2020tpn, + title={Temporal Pyramid Network for Action Recognition}, + author={Yang, Ceyuan and Xu, Yinghao and Shi, Jianping and Dai, Bo and Zhou, Bolei}, + booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, + year={2020}, +} +``` + +## 模型库 + +### Kinetics-400 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 参考代码的 top1 准确率 | 参考代码的 top5 准确率 | 推理时间 (video/s) | GPU 显存占用 (M) | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :------: | :------: | :---------: | :---------: | :-------------------------------------------------------------------: | :-------------------------------------------------------------------: | :----------------: | :--------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tpn_slowonly_r50_8x8x1_150e_kinetics_rgb](/configs/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.py) | 短边 320 | 8x2 | ResNet50 | None | 73.58 | 91.35 | x | x | x | 6916 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb-c568e7ad.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.json) | +| [tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb](/configs/recognition/tpn/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb.py) | 短边 320 | 8 | ResNet50 | ImageNet | 76.59 | 92.72 | [75.49](https://github.com/decisionforce/TPN/blob/master/MODELZOO.md) | [92.05](https://github.com/decisionforce/TPN/blob/master/MODELZOO.md) | x | 6916 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb-44362b55.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb.json) | + +### Something-Something V1 + +|配置文件 | GPU 数量 | 主干网络 | 预训练 | top1 准确率| top5 准确率 | GPU 显存占用 (M) | ckpt | log| json| +|:--|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:| +|[tpn_tsm_r50_1x1x8_150e_sthv1_rgb](/configs/recognition/tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb.py)|height 100|8x6| ResNet50 | TSM | 51.50 | 79.15 | 8828 |[ckpt](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb/tpn_tsm_r50_1x1x8_150e_sthv1_rgb_20211202-c28ed83f.pth) |[log](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb/tpn_tsm_r50_1x1x8_150e_sthv1_rgb.log)|[json](https://download.openmmlab.com/mmaction/recognition/tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb/tpn_tsm_r50_1x1x8_150e_sthv1_rgb.json)| + +注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +2. 这里的 **推理时间** 是根据 [基准测试脚本](/tools/analysis/benchmark.py) 获得的,采用测试时的采帧策略,且只考虑模型的推理时间, + 并不包括 IO 时间以及预处理时间。对于每个配置,MMAction2 使用 1 块 GPU 并设置批大小(每块 GPU 处理的视频个数)为 1 来计算推理时间。 +3. 参考代码的结果是通过使用相同的模型配置在原来的代码库上训练得到的。 +4. 我们使用的 Kinetics400 验证集包含 19796 个视频,用户可以从 [验证集视频](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB) 下载这些视频。同时也提供了对应的 [数据列表](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (每行格式为:视频 ID,视频帧数目,类别序号)以及 [标签映射](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) (类别序号到类别名称)。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:以一个确定性的训练方式,辅以定期的验证过程进行 TPN 模型在 Kinetics-400 数据集上的训练。 + +```shell +python tools/train.py configs/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.py \ + --work-dir work_dirs/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb [--validate --seed 0 --deterministic] +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 Kinetics-400 数据集上测试 TPN 模型,并将结果导出为一个 json 文件。 + +```shell +python tools/test.py configs/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json --average-clips prob +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/metafile.yml new file mode 100644 index 00000000..973b6ada --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/metafile.yml @@ -0,0 +1,76 @@ +Collections: +- Name: TPN + README: configs/recognition/tpn/README.md + Paper: + URL: https://arxiv.org/abs/2004.03548 + Title: Temporal Pyramid Network for Action Recognition +Models: +- Config: configs/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.py + In Collection: TPN + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 150 + FLOPs: 66014576640 + Parameters: 91498336 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: tpn_slowonly_r50_8x8x1_150e_kinetics_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 73.58 + top5 accuracy: 91.35 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb-c568e7ad.pth +- Config: configs/recognition/tpn/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb.py + In Collection: TPN + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 150 + FLOPs: 66014576640 + Parameters: 91498336 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 76.59 + top5 accuracy: 92.72 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tpn/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tpn/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/tpn/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb-44362b55.pth +- Config: configs/recognition/tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb.py + In Collection: TPN + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 150 + FLOPs: 54202822656 + Parameters: 82445724 + Pretrained: TSM + Resolution: height 100 + Training Data: SthV1 + Training Resources: 48 GPUs + Modality: RGB + Name: tpn_tsm_r50_1x1x8_150e_sthv1_rgb + Results: + - Dataset: SthV1 + Metrics: + Top 1 Accuracy: 51.50 + Top 5 Accuracy: 79.15 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb/tpn_tsm_r50_1x1x8_150e_sthv1_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb/tpn_tsm_r50_1x1x8_150e_sthv1_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb/tpn_tsm_r50_1x1x8_150e_sthv1_rgb_20211202-c28ed83f.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb.py new file mode 100644 index 00000000..3b1738fd --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb.py @@ -0,0 +1,89 @@ +_base_ = [ + '../../_base_/models/tpn_slowonly_r50.py', + '../../_base_/default_runtime.py' +] + +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=8, frame_interval=8, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='ColorJitter'), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='ColorJitter'), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=8, + frame_interval=8, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=8, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0001, + nesterov=True) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[75, 125]) +total_epochs = 150 + +# runtime settings +work_dir = './work_dirs/tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics400_rgb' # noqa: E501 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.py new file mode 100644 index 00000000..009b076e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.py @@ -0,0 +1,7 @@ +_base_ = ['./tpn_imagenet_pretrained_slowonly_r50_8x8x1_150e_kinetics_rgb.py'] + +# model settings +model = dict(backbone=dict(pretrained=None)) + +# runtime settings +work_dir = './work_dirs/tpn_slowonly_r50_8x8x1_150e_kinetics400_rgb' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb.py new file mode 100644 index 00000000..0258f4a3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb.py @@ -0,0 +1,89 @@ +_base_ = [ + '../../_base_/models/tpn_tsm_r50.py', '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='ColorJitter'), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=8, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005, + nesterov=True) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=20, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[75, 125]) +total_epochs = 150 + +# runtime settings +work_dir = './work_dirs/tpn_tsm_r50_1x1x8_150e_kinetics400_rgb' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/README.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/README.md new file mode 100644 index 00000000..004bead9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/README.md @@ -0,0 +1,94 @@ +# TRN + +[Temporal Relational Reasoning in Videos](https://openaccess.thecvf.com/content_ECCV_2018/html/Bolei_Zhou_Temporal_Relational_Reasoning_ECCV_2018_paper.html) + + + +## Abstract + + + +Temporal relational reasoning, the ability to link meaningful transformations of objects or entities over time, is a fundamental property of intelligent species. In this paper, we introduce an effective and interpretable network module, the Temporal Relation Network (TRN), designed to learn and reason about temporal dependencies between video frames at multiple time scales. We evaluate TRN-equipped networks on activity recognition tasks using three recent video datasets - Something-Something, Jester, and Charades - which fundamentally depend on temporal relational reasoning. Our results demonstrate that the proposed TRN gives convolutional neural networks a remarkable capacity to discover temporal relations in videos. Through only sparsely sampled video frames, TRN-equipped networks can accurately predict human-object interactions in the Something-Something dataset and identify various human gestures on the Jester dataset with very competitive performance. TRN-equipped networks also outperform two-stream networks and 3D convolution networks in recognizing daily activities in the Charades dataset. Further analyses show that the models learn intuitive and interpretable visual common sense knowledge in videos. + + + +
+ +
+ +## Results and Models + +### Something-Something V1 + +| config | resolution | gpus | backbone | pretrain | top1 acc (efficient/accurate) | top5 acc (efficient/accurate) | gpu_mem(M) | ckpt | log | json | +| :------------------------------------------------------------------------------------- | :--------: | :--: | :------: | :------: | :---------------------------: | :---------------------------: | :--------: | :-------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------: | +| [trn_r50_1x1x8_50e_sthv1_rgb](/configs/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb.py) | height 100 | 8 | ResNet50 | ImageNet | 31.62 / 33.88 | 60.01 / 62.12 | 11010 | [ckpt](https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb/trn_r50_1x1x8_50e_sthv1_rgb_20210401-163704a8.pth) | [log](https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb/20210326_103948.log) | [json](https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb/20210326_103948.log.json) | + +### Something-Something V2 + +| config | resolution | gpus | backbone | pretrain | top1 acc (efficient/accurate) | top5 acc (efficient/accurate) | gpu_mem(M) | ckpt | log | json | +| :------------------------------------------------------------------------------------- | :--------: | :--: | :------: | :------: | :---------------------------: | :---------------------------: | :--------: | :-------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------: | +| [trn_r50_1x1x8_50e_sthv2_rgb](/configs/recognition/trn/trn_r50_1x1x8_50e_sthv2_rgb.py) | height 256 | 8 | ResNet50 | ImageNet | 48.39 / 51.28 | 76.58 / 78.65 | 11010 | [ckpt](https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv2_rgb/trn_r50_1x1x8_50e_sthv2_rgb_20210816-7abbc4c1.pth) | [log](https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv2_rgb/20210816_221356.log) | [json](https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv2_rgb/20210816_221356.log.json) | + +:::{note} + +1. The **gpus** indicates the number of gpu we used to get the checkpoint. It is noteworthy that the configs we provide are used for 8 gpus as default. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. +2. There are two kinds of test settings for Something-Something dataset, efficient setting (center crop x 1 clip) and accurate setting (Three crop x 2 clip). +3. In the original [repository](https://github.com/zhoubolei/TRN-pytorch), the author augments data with random flipping on something-something dataset, but the augmentation method may be wrong due to the direct actions, such as `push left to right`. So, we replaced `flip` with `flip with label mapping`, and change the testing method `TenCrop`, which has five flipped crops, to `Twice Sample & ThreeCrop`. +4. We use `ResNet50` instead of `BNInception` as the backbone of TRN. When Training `TRN-ResNet50` on sthv1 dataset in the original repository, we get top1 (top5) accuracy 30.542 (58.627) vs. ours 31.62 (60.01). + +::: + +For more details on data preparation, you can refer to + +- [preparing_sthv1](/tools/data/sthv1/README.md) +- [preparing_sthv2](/tools/data/sthv2/README.md) + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train TRN model on sthv1 dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb.py \ + --work-dir work_dirs/trn_r50_1x1x8_50e_sthv1_rgb \ + --validate --seed 0 --deterministic +``` + +For more details, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test TRN model on sthv1 dataset and dump the result to a json file. + +```shell +python tools/test.py configs/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@article{zhou2017temporalrelation, + title = {Temporal Relational Reasoning in Videos}, + author = {Zhou, Bolei and Andonian, Alex and Oliva, Aude and Torralba, Antonio}, + journal={European Conference on Computer Vision}, + year={2018} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/README_zh-CN.md new file mode 100644 index 00000000..d8c6cdd8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/README_zh-CN.md @@ -0,0 +1,78 @@ +# TRN + +## 简介 + + + +```BibTeX +@article{zhou2017temporalrelation, + title = {Temporal Relational Reasoning in Videos}, + author = {Zhou, Bolei and Andonian, Alex and Oliva, Aude and Torralba, Antonio}, + journal={European Conference on Computer Vision}, + year={2018} +} +``` + +## 模型库 + +### Something-Something V1 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 (efficient/accurate) | top5 准确率 (efficient/accurate) | GPU 显存占用 (M) | ckpt | log | json | +| :------------------------------------------------------------------------------------- | :----: | :------: | :------: | :------: | :------------------------------: | :------------------------------: | :--------------: | :-------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------: | +| [trn_r50_1x1x8_50e_sthv1_rgb](/configs/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb.py) | 高 100 | 8 | ResNet50 | ImageNet | 31.62 / 33.88 | 60.01 / 62.12 | 11010 | [ckpt](https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb/trn_r50_1x1x8_50e_sthv1_rgb_20210401-163704a8.pth) | [log](https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb/20210326_103948.log) | [json](https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb/20210326_103948.log.json) | + +### Something-Something V2 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 (efficient/accurate) | top5 准确率 (efficient/accurate) | GPU 显存占用 (M) | ckpt | log | json | +| :------------------------------------------------------------------------------------- | :----: | :------: | :------: | :------: | :------------------------------: | :------------------------------: | :--------------: | :-------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------: | +| [trn_r50_1x1x8_50e_sthv2_rgb](/configs/recognition/trn/trn_r50_1x1x8_50e_sthv2_rgb.py) | 高 256 | 8 | ResNet50 | ImageNet | 48.39 / 51.28 | 76.58 / 78.65 | 11010 | [ckpt](https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv2_rgb/trn_r50_1x1x8_50e_sthv2_rgb_20210816-7abbc4c1.pth) | [log](https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv2_rgb/20210816_221356.log) | [json](https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv2_rgb/20210816_221356.log.json) | + +注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +2. 对于 Something-Something 数据集,有两种测试方案:efficient(对应 center crop x 1 clip)和 accurate(对应 Three crop x 2 clip)。 +3. 在原代码库中,作者在 Something-Something 数据集上使用了随机水平翻转,但这种数据增强方法有一些问题,因为 Something-Something 数据集有一些方向性的动作,比如`从左往右推`。所以 MMAction2 把`随机水平翻转`改为`带标签映射的水平翻转`,同时修改了测试模型的数据处理方法,即把`裁剪 10 个图像块`(这里面包括 5 个翻转后的图像块)修改成`采帧两次 & 裁剪 3 个图像块`。 +4. MMAction2 使用 `ResNet50` 代替 `BNInception` 作为 TRN 的主干网络。使用原代码,在 sthv1 数据集上训练 `TRN-ResNet50` 时,实验得到的 top1 (top5) 的准确度为 30.542 (58.627),而 MMAction2 的精度为 31.62 (60.01)。 + +关于数据处理的更多细节,用户可以参照 + +- [准备 sthv1](/tools/data/sthv1/README_zh-CN.md) +- [准备 sthv2](/tools/data/sthv2/README_zh-CN.md) + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:以一个确定性的训练方式,辅以定期的验证过程进行 TRN 模型在 sthv1 数据集上的训练。 + +```shell +python tools/train.py configs/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb.py \ + --work-dir work_dirs/trn_r50_1x1x8_50e_sthv1_rgb \ + --validate --seed 0 --deterministic +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 sthv1 数据集上测试 TRN 模型,并将结果导出为一个 json 文件。 + +```shell +python tools/test.py configs/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/metafile.yml new file mode 100644 index 00000000..39bedaa2 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/metafile.yml @@ -0,0 +1,55 @@ +Collections: +- Name: TRN + README: configs/recognition/trn/README.md + Paper: + URL: https://arxiv.org/abs/1711.08496 + Title: Temporal Relational Reasoning in Videos +Models: +- Config: configs/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb.py + In Collection: TRN + Metadata: + Architecture: ResNet50 + Batch Size: 16 + Epochs: 50 + Parameters: 26641154 + Pretrained: ImageNet + Resolution: height 100 + Training Data: SthV1 + Training Resources: 8 GPUs + Modality: RGB + Name: trn_r50_1x1x8_50e_sthv1_rgb + Results: + - Dataset: SthV1 + Metrics: + Top 1 Accuracy: 33.88 + Top 1 Accuracy (efficient): 31.62 + Top 5 Accuracy: 62.12 + Top 5 Accuracy (efficient): 60.01 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb/20210326_103948.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb/20210326_103948.log + Weights: https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb/trn_r50_1x1x8_50e_sthv1_rgb_20210401-163704a8.pth +- Config: configs/recognition/trn/trn_r50_1x1x8_50e_sthv2_rgb.py + In Collection: TRN + Metadata: + Architecture: ResNet50 + Batch Size: 16 + Epochs: 50 + Parameters: 26641154 + Pretrained: ImageNet + Resolution: height 256 + Training Data: SthV2 + Training Resources: 8 GPUs + Modality: RGB + Name: trn_r50_1x1x8_50e_sthv2_rgb + Results: + - Dataset: SthV2 + Metrics: + Top 1 Accuracy: 51.28 + Top 1 Accuracy (efficient): 48.39 + Top 5 Accuracy: 78.65 + Top 5 Accuracy (efficient): 76.58 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv2_rgb/20210816_221356.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv2_rgb/20210816_221356.log + Weights: https://download.openmmlab.com/mmaction/recognition/trn/trn_r50_1x1x8_50e_sthv2_rgb/trn_r50_1x1x8_50e_sthv2_rgb_20210816-7abbc4c1.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb.py new file mode 100644 index 00000000..dac55c03 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/trn_r50_1x1x8_50e_sthv1_rgb.py @@ -0,0 +1,102 @@ +_base_ = [ + '../../_base_/models/trn_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=174)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' + +sthv1_flip_label_map = {2: 4, 4: 2, 30: 41, 41: 30, 52: 66, 66: 52} +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5, flip_label_map=sthv1_flip_label_map), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(lr=0.002, paramwise_cfg=dict(fc_lr5=False), weight_decay=5e-4) +# learning policy +lr_config = dict(policy='step', step=[30, 45]) +total_epochs = 50 + +# runtime settings +find_unused_parameters = True +work_dir = './work_dirs/trn_r50_1x1x8_50e_sthv1_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/trn_r50_1x1x8_50e_sthv2_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/trn_r50_1x1x8_50e_sthv2_rgb.py new file mode 100644 index 00000000..ab0ba48b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/trn/trn_r50_1x1x8_50e_sthv2_rgb.py @@ -0,0 +1,99 @@ +_base_ = [ + '../../_base_/models/trn_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=174)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv2/rawframes' +data_root_val = 'data/sthv2/rawframes' +ann_file_train = 'data/sthv2/sthv2_train_list_rawframes.txt' +ann_file_val = 'data/sthv2/sthv2_val_list_rawframes.txt' +ann_file_test = 'data/sthv2/sthv2_val_list_rawframes.txt' + +sthv2_flip_label_map = {86: 87, 87: 86, 93: 94, 94: 93, 166: 167, 167: 166} +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5, flip_label_map=sthv2_flip_label_map), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(lr=0.002, paramwise_cfg=dict(fc_lr5=False), weight_decay=5e-4) +# learning policy +lr_config = dict(policy='step', step=[30, 45]) +total_epochs = 50 + +# runtime settings +find_unused_parameters = True +work_dir = './work_dirs/trn_r50_1x1x8_50e_sthv2_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/README.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/README.md new file mode 100644 index 00000000..35333731 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/README.md @@ -0,0 +1,193 @@ +# TSM + +[TSM: Temporal Shift Module for Efficient Video Understanding](https://openaccess.thecvf.com/content_ICCV_2019/html/Lin_TSM_Temporal_Shift_Module_for_Efficient_Video_Understanding_ICCV_2019_paper.html) + + + +## Abstract + + + +The explosive growth in video streaming gives rise to challenges on performing video understanding at high accuracy and low computation cost. Conventional 2D CNNs are computationally cheap but cannot capture temporal relationships; 3D CNN based methods can achieve good performance but are computationally intensive, making it expensive to deploy. In this paper, we propose a generic and effective Temporal Shift Module (TSM) that enjoys both high efficiency and high performance. Specifically, it can achieve the performance of 3D CNN but maintain 2D CNN's complexity. TSM shifts part of the channels along the temporal dimension; thus facilitate information exchanged among neighboring frames. It can be inserted into 2D CNNs to achieve temporal modeling at zero computation and zero parameters. We also extended TSM to online setting, which enables real-time low-latency online video recognition and video object detection. TSM is accurate and efficient: it ranks the first place on the Something-Something leaderboard upon publication; on Jetson Nano and Galaxy Note8, it achieves a low latency of 13ms and 35ms for online video recognition. + + + +
+ +
+ +## Results and Models + +### Kinetics-400 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | reference top1 acc | reference top5 acc | inference_time(video/s) | gpu_mem(M) | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------------------------- | :------------: | :--: | :---------: | :------: | :------: | :------: | :-----------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------: | :--------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsm_r50_1x1x8_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py) | 340x256 | 8 | ResNet50 | ImageNet | 70.24 | 89.56 | [70.36](https://github.com/mit-han-lab/temporal-shift-module/blob/8d53d6fda40bea2f1b37a6095279c4b454d672bd/scripts/train_tsm_kinetics_rgb_8f.sh) | [89.49](https://github.com/mit-han-lab/temporal-shift-module/blob/8d53d6fda40bea2f1b37a6095279c4b454d672bd/scripts/train_tsm_kinetics_rgb_8f.sh) | 74.0 (8x1 frames) | 7079 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/tsm_r50_1x1x8_50e_kinetics400_rgb_20200607-af7fb746.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/20200607_211800.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/20200607_211800.log.json) | +| [tsm_r50_1x1x8_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py) | short-side 256 | 8 | ResNet50 | ImageNet | 70.59 | 89.52 | x | x | x | 7079 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x8_50e_kinetics400_rgb/tsm_r50_256p_1x1x8_50e_kinetics400_rgb_20200726-020785e2.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x8_50e_kinetics400_rgb/20200725_031623.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x8_50e_kinetics400_rgb/20200725_031623.log.json) | +| [tsm_r50_1x1x8_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py) | short-side 320 | 8 | ResNet50 | ImageNet | 70.73 | 89.81 | x | x | x | 7079 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/tsm_r50_1x1x8_50e_kinetics400_rgb_20210701-68d582b4.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/20210616_021451.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/20210616_021451.log.json) | +| [tsm_r50_1x1x8_100e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_1x1x8_100e_kinetics400_rgb.py) | short-side 320 | 8 | ResNet50 | ImageNet | 71.90 | 90.03 | x | x | x | 7079 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_100e_kinetics400_rgb/tsm_r50_1x1x8_100e_kinetics400_rgb_20210701-7ff22268.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_100e_kinetics400_rgb/20210617_103543.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_100e_kinetics400_rgb/20210617_103543.log.json) | +| [tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb.py](/configs/recognition/tsm/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb.py) | short-side 256 | 8 | ResNet50 | ImageNet | 70.48 | 89.40 | x | x | x | 7076 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb_20210219-bf96e6cc.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb_20210219.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb_20210219.json) | +| [tsm_r50_video_1x1x8_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_video_1x1x8_50e_kinetics400_rgb.py) | short-side 256 | 8 | ResNet50 | ImageNet | 70.25 | 89.66 | [70.36](https://github.com/mit-han-lab/temporal-shift-module/blob/8d53d6fda40bea2f1b37a6095279c4b454d672bd/scripts/train_tsm_kinetics_rgb_8f.sh) | [89.49](https://github.com/mit-han-lab/temporal-shift-module/blob/8d53d6fda40bea2f1b37a6095279c4b454d672bd/scripts/train_tsm_kinetics_rgb_8f.sh) | 74.0 (8x1 frames) | 7077 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_100e_kinetics400_rgb/tsm_r50_video_1x1x8_100e_kinetics400_rgb_20200702-a77f4328.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_100e_kinetics400_rgb/tsm_r50_video_2d_1x1x8_50e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_100e_kinetics400_rgb/tsm_r50_video_2d_1x1x8_50e_kinetics400_rgb.log.json) | +| [tsm_r50_dense_1x1x8_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_dense_1x1x8_50e_kinetics400_rgb.py) | short-side 320 | 8 | ResNet50 | ImageNet | 73.46 | 90.84 | x | x | x | 7079 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_50e_kinetics400_rgb/tsm_r50_dense_1x1x8_50e_kinetics400_rgb_20210701-a54ff3d3.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_50e_kinetics400_rgb/20210617_103245.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_50e_kinetics400_rgb/20210617_103245.log.json) | +| [tsm_r50_dense_1x1x8_100e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_dense_1x1x8_100e_kinetics400_rgb.py) | short-side 320 | 8 | ResNet50 | ImageNet | 74.55 | 91.74 | x | x | x | 7079 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_100e_kinetics400_rgb/tsm_r50_dense_1x1x8_100e_kinetics400_rgb_20210701-e3e5e97f.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_100e_kinetics400_rgb/20210613_034931.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_100e_kinetics400_rgb/20210613_034931.log.json) | +| [tsm_r50_1x1x16_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb.py) | 340x256 | 8 | ResNet50 | ImageNet | 72.09 | 90.37 | [70.67](https://github.com/mit-han-lab/temporal-shift-module/blob/8d53d6fda40bea2f1b37a6095279c4b454d672bd/scripts/train_tsm_kinetics_rgb_16f.sh) | [89.98](https://github.com/mit-han-lab/temporal-shift-module/blob/8d53d6fda40bea2f1b37a6095279c4b454d672bd/scripts/train_tsm_kinetics_rgb_16f.sh) | 47.0 (16x1 frames) | 10404 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb/tsm_r50_340x256_1x1x16_50e_kinetics400_rgb_20201011-2f27f229.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb/20201011_205356.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb/20201011_205356.log.json) | +| [tsm_r50_1x1x16_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb.py) | short-side 256 | 8x4 | ResNet50 | ImageNet | 71.89 | 90.73 | x | x | x | 10398 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x16_50e_kinetics400_rgb/tsm_r50_256p_1x1x16_50e_kinetics400_rgb_20201010-85645c2a.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x16_50e_kinetics400_rgb/20201010_224825.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x16_50e_kinetics400_rgb/20201010_224825.log.json) | +| [tsm_r50_1x1x16_100e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_1x1x16_100e_kinetics400_rgb.py) | short-side 320 | 8 | ResNet50 | ImageNet | 72.80 | 90.75 | x | x | x | 10398 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_100e_kinetics400_rgb/tsm_r50_1x1x16_100e_kinetics400_rgb_20210701-41ac92b9.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_100e_kinetics400_rgb/20210618_193859.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_100e_kinetics400_rgb/20210618_193859.log.json) | +| [tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb.py) | short-side 320 | 8x4 | ResNet50 | ImageNet | 72.03 | 90.25 | 71.81 | 90.36 | x | 8931 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb_20200724-f00f1336.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb/20200724_120023.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb/20200724_120023.log.json) | +| [tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb.py) | short-side 320 | 8x4 | ResNet50 | ImageNet | 70.70 | 89.90 | x | x | x | 10125 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb_20200816-b93fd297.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb/20200815_210253.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb/20200815_210253.log.json) | +| [tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb.py) | short-side 320 | 8x4 | ResNet50 | ImageNet | 71.60 | 90.34 | x | x | x | 8358 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb_20200724-d8ad84d2.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb/20200723_220442.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb/20200723_220442.log.json) | +| [tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb](/configs/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb.py) | short-side 320 | 8 | MobileNetV2 | ImageNet | 68.46 | 88.64 | x | x | x | 3385 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb/tsm_mobilenetv2_dense_320p_1x1x8_100e_kinetics400_rgb_20210202-61135809.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb/20210129_024936.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb/20210129_024936.log.json) | +| [tsm_mobilenetv2_dense_1x1x8_kinetics400_rgb_port](/configs/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb.py) | short-side 320 | 8 | MobileNetV2 | ImageNet | 69.89 | 89.01 | x | x | x | 3385 | [infer_ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_kinetics400_rgb_port_20210922-aa5cadf6.pth) | x | x | + +### Diving48 + +| config | gpus | backbone | pretrain | top1 acc | top5 acc | gpu_mem(M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------- | :--: | :------: | :------: | :------: | :------: | :--------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------: | +| [tsm_r50_video_1x1x8_50e_diving48_rgb](/configs/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb.py) | 8 | ResNet50 | ImageNet | 75.99 | 97.16 | 7070 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb/tsm_r50_video_1x1x8_50e_diving48_rgb_20210426-aba5aa3d.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb/20210426_012424.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb/20210426_012424.log.json) | +| [tsm_r50_video_1x1x16_50e_diving48_rgb](/configs/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb.py) | 8 | ResNet50 | ImageNet | 81.62 | 97.66 | 7070 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb/tsm_r50_video_1x1x16_50e_diving48_rgb_20210426-aa9631c0.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb/20210426_012823.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb/20210426_012823.log.json) | + +### Something-Something V1 + +| config | resolution | gpus | backbone | pretrain | top1 acc (efficient/accurate) | top5 acc (efficient/accurate) | reference top1 acc (efficient/accurate) | reference top5 acc (efficient/accurate) | gpu_mem(M) | ckpt | log | json | +| :----------------------------------------------------------------------------------------------------------------------- | :--------: | :--: | :------: | :------: | :---------------------------: | :---------------------------: | :--------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------: | :--------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsm_r50_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_1x1x8_50e_sthv1_rgb.py) | height 100 | 8 | ResNet50 | ImageNet | 45.58 / 47.70 | 75.02 / 76.12 | [45.50 / 47.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [74.34 / 76.60](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 7077 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv1_rgb/tsm_r50_1x1x8_50e_sthv1_rgb_20210203-01dce462.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv1_rgb/20210203_150227.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv1_rgb/20210203_150227.log.json) | +| [tsm_r50_flip_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_flip_1x1x8_50e_sthv1_rgb.py) | height 100 | 8 | ResNet50 | ImageNet | 47.10 / 48.51 | 76.02 / 77.56 | [45.50 / 47.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [74.34 / 76.60](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 7077 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_1x1x8_50e_sthv1_rgb/tsm_r50_flip_1x1x8_50e_sthv1_rgb_20210203-12596f16.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_1x1x8_50e_sthv1_rgb/20210203_145829.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_1x1x8_50e_sthv1_rgb/20210203_145829.log.json) | +| [tsm_r50_randaugment_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb.py) | height 100 | 8 | ResNet50 | ImageNet | 47.16 / 48.90 | 76.07 / 77.92 | [45.50 / 47.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [74.34 / 76.60](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 7077 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb_20210324-481268d9.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb.json) | +| [tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb.py) | height 100 | 8 | ResNet50 | ImageNet | 47.65 / 48.66 | 76.67 / 77.41 | [45.50 / 47.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [74.34 / 76.60](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 7077 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb-ee93e5e3.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb.json) | +| [tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb.py) | height 100 | 8 | ResNet50 | ImageNet | 46.26 / 47.68 | 75.92 / 76.49 | [45.50 / 47.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [74.34 / 76.60](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 7077 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb-4f4f4740.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb.json) | +| [tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb.py) | height 100 | 8 | ResNet50 | ImageNet | 47.85 / 50.31 | 76.78 / 78.18 | [45.50 / 47.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [74.34 / 76.60](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 7077 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb_20210324-76937692.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb.json) | +| [tsm_r50_1x1x16_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_1x1x16_50e_sthv1_rgb.py) | height 100 | 8 | ResNet50 | ImageNet | 47.77 / 49.03 | 76.82 / 77.83 | [47.05 / 48.61](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [76.40 / 77.96](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 10390 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv1_rgb/tsm_r50_1x1x16_50e_sthv1_rgb_20211202-b922e5d2.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv1_rgb/tsm_r50_1x1x16_50e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv1_rgb/tsm_r50_1x1x16_50e_sthv1_rgb.json) | +| [tsm_r101_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r101_1x1x8_50e_sthv1_rgb.py) | height 100 | 8 | ResNet50 | ImageNet | 46.09 / 48.59 | 75.41 / 77.10 | [46.64 / 48.13](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [75.40 / 77.31](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 9800 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv1_rgb/tsm_r101_1x1x8_50e_sthv1_rgb_20211202-49970a5b.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv1_rgb/tsm_r101_1x1x8_50e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv1_rgb/tsm_r101_1x1x8_50e_sthv1_rgb.json) | + +### Something-Something V2 + +| config | resolution | gpus | backbone | pretrain | top1 acc (efficient/accurate) | top5 acc (efficient/accurate) | reference top1 acc (efficient/accurate) | reference top5 acc (efficient/accurate) | gpu_mem(M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------- | :--------: | :--: | :-------: | :------: | :---------------------------: | :---------------------------: | :----------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------: | :--------: | :--------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------: | +| [tsm_r50_1x1x8_50e_sthv2_rgb](/configs/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb.py) | height 256 | 8 | ResNet50 | ImageNet | 59.11 / 61.82 | 85.39 / 86.80 | [xx / 61.2](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [xx / xx](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 7069 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb/tsm_r50_256h_1x1x8_50e_sthv2_rgb_20210816-032aa4da.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb/20210816_224310.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb/20210816_224310.log.json) | +| [tsm_r50_1x1x16_50e_sthv2_rgb](/configs/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb.py) | height 256 | 8 | ResNet50 | ImageNet | 61.06 / 63.19 | 86.66 / 87.93 | [xx / 63.1](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [xx / xx](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 10400 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv2_rgb/tsm_r50_256h_1x1x16_50e_sthv2_rgb_20210331-0a45549c.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv2_rgb/20210331_134458.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv2_rgb/20210331_134458.log.json) | +| [tsm_r101_1x1x8_50e_sthv2_rgb](/configs/recognition/tsm/tsm_r101_1x1x8_50e_sthv2_rgb.py) | height 256 | 8 | ResNet101 | ImageNet | 60.88 / 63.84 | 86.56 / 88.30 | [xx / 63.3](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [xx / xx](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 9727 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv2_rgb/tsm_r101_256h_1x1x8_50e_sthv2_rgb_20210401-df97f3e1.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv2_rgb/20210401_143656.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv2_rgb/20210401_143656.log.json) | + +### MixUp & CutMix on Something-Something V1 + +| config | resolution | gpus | backbone | pretrain | top1 acc (efficient/accurate) | top5 acc (efficient/accurate) | delta top1 acc (efficient/accurate) | delta top5 acc (efficient/accurate) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------- | :--------: | :--: | :------: | :------: | :---------------------------: | :---------------------------: | :---------------------------------: | :---------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------: | +| [tsm_r50_mixup_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_mixup_1x1x8_50e_sthv1_rgb.py) | height 100 | 8 | ResNet50 | ImageNet | 46.35 / 48.49 | 75.07 / 76.88 | +0.77 / +0.79 | +0.05 / +0.70 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_mixup_1x1x8_50e_sthv1_rgb/tsm_r50_mixup_1x1x8_50e_sthv1_rgb-9eca48e5.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_mixup_1x1x8_50e_sthv1_rgb/tsm_r50_mixup_1x1x8_50e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_mixup_1x1x8_50e_sthv1_rgb/tsm_r50_mixup_1x1x8_50e_sthv1_rgb.json) | +| [tsm_r50_cutmix_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb.py) | height 100 | 8 | ResNet50 | ImageNet | 45.92 / 47.46 | 75.23 / 76.71 | +0.34 / -0.24 | +0.21 / +0.59 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb-34934615.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb.json) | + +### Jester + +| config | resolution | gpus | backbone | pretrain | top1 acc (efficient/accurate) | ckpt | log | json | +| ---------------------------------------------------------------------------------------- | :--------: | :--: | :------: | :------: | :---------------------------: | :------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------: | +| [tsm_r50_1x1x8_50e_jester_rgb](/configs/recognition/tsm/tsm_r50_1x1x8_50e_jester_rgb.py) | height 100 | 8 | ResNet50 | ImageNet | 96.5 / 97.2 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_jester_rgb/tsm_r50_1x1x8_50e_jester_rgb-c799267e.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_jester_rgb/tsm_r50_1x1x8_50e_jester_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_jester_rgb/tsm_r50_1x1x8_50e_jester_rgb.json) | + +### HMDB51 + +| config | gpus | backbone | pretrain | top1 acc | top5 acc | gpu_mem(M) | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------- | :--: | :------: | :---------: | :------: | :------: | :--------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------: | +| [tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb](/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb.py) | 8 | ResNet50 | Kinetics400 | 72.68 | 92.03 | 10388 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb_20210630-10c74ee5.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb/20210605_182554.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb/20210605_182554.log.json) | +| [tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb](/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb.py) | 8 | ResNet50 | Kinetics400 | 74.77 | 93.86 | 10388 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb_20210630-4785548e.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb/20210605_182505.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb/20210605_182505.log.json) | + +### UCF101 + +| config | gpus | backbone | pretrain | top1 acc | top5 acc | gpu_mem(M) | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------- | :--: | :------: | :---------: | :------: | :------: | :--------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------: | +| [tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb](/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb.py) | 8 | ResNet50 | Kinetics400 | 94.50 | 99.58 | 10389 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb_20210630-1fae312b.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb/20210605_182720.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb/20210605_182720.log.json) | +| [tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb](/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb.py) | 8 | ResNet50 | Kinetics400 | 94.58 | 99.37 | 10389 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb_20210630-8df9c358.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb/20210605_182720.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb/20210605_182720.log.json) | + +:::{note} + +1. The **gpus** indicates the number of gpu we used to get the checkpoint. It is noteworthy that the configs we provide are used for 8 gpus as default. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. +2. The **inference_time** is got by this [benchmark script](/tools/analysis/benchmark.py), where we use the sampling frames strategy of the test setting and only care about the model inference time, + not including the IO time and pre-processing time. For each setting, we use 1 gpu and set batch size (videos per gpu) to 1 to calculate the inference time. +3. The values in columns named after "reference" are the results got by training on the original repo, using the same model settings. The checkpoints for reference repo can be downloaded [here](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_reference_ckpt.rar). +4. There are two kinds of test settings for Something-Something dataset, efficient setting (center crop x 1 clip) and accurate setting (Three crop x 2 clip), which is referred from the [original repo](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd). + We use efficient setting as default provided in config files, and it can be changed to accurate setting by + +```python +... +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, # `num_clips = 8` when using 8 segments + twice_sample=True, # set `twice_sample=True` for twice sample in accurate setting + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + # dict(type='CenterCrop', crop_size=224), it is used for efficient setting + dict(type='ThreeCrop', crop_size=256), # it is used for accurate setting + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +``` + +5. When applying Mixup and CutMix, we use the hyper parameter `alpha=0.2`. +6. The validation set of Kinetics400 we used consists of 19796 videos. These videos are available at [Kinetics400-Validation](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB). The corresponding [data list](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (each line is of the format 'video_id, num_frames, label_index') and the [label map](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) are also available. +7. The **infer_ckpt** means those checkpoints are ported from [TSM](https://github.com/mit-han-lab/temporal-shift-module/blob/master/test_models.py). + +::: + +For more details on data preparation, you can refer to corresponding parts in [Data Preparation](/docs/data_preparation.md). + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train TSM model on Kinetics-400 dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py \ + --work-dir work_dirs/tsm_r50_1x1x8_100e_kinetics400_rgb \ + --validate --seed 0 --deterministic +``` + +For more details, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test TSM model on Kinetics-400 dataset and dump the result to a json file. + +```shell +python tools/test.py configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@inproceedings{lin2019tsm, + title={TSM: Temporal Shift Module for Efficient Video Understanding}, + author={Lin, Ji and Gan, Chuang and Han, Song}, + booktitle={Proceedings of the IEEE International Conference on Computer Vision}, + year={2019} +} +``` + + + +```BibTeX +@article{NonLocal2018, + author = {Xiaolong Wang and Ross Girshick and Abhinav Gupta and Kaiming He}, + title = {Non-local Neural Networks}, + journal = {CVPR}, + year = {2018} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/README_zh-CN.md new file mode 100644 index 00000000..81ea735b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/README_zh-CN.md @@ -0,0 +1,184 @@ +# TSM + +## 简介 + + + +```BibTeX +@inproceedings{lin2019tsm, + title={TSM: Temporal Shift Module for Efficient Video Understanding}, + author={Lin, Ji and Gan, Chuang and Han, Song}, + booktitle={Proceedings of the IEEE International Conference on Computer Vision}, + year={2019} +} +``` + + + +```BibTeX +@article{NonLocal2018, + author = {Xiaolong Wang and Ross Girshick and Abhinav Gupta and Kaiming He}, + title = {Non-local Neural Networks}, + journal = {CVPR}, + year = {2018} +} +``` + +## 模型库 + +### Kinetics-400 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 参考代码的 top1 准确率 | 参考代码的 top5 准确率 | 推理时间 (video/s) | GPU 显存占用 (M) | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :---------: | :------: | :---------: | :---------: | :-----------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------: | :----------------: | :--------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsm_r50_1x1x8_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py) | 340x256 | 8 | ResNet50 | ImageNet | 70.24 | 89.56 | [70.36](https://github.com/mit-han-lab/temporal-shift-module/blob/8d53d6fda40bea2f1b37a6095279c4b454d672bd/scripts/train_tsm_kinetics_rgb_8f.sh) | [89.49](https://github.com/mit-han-lab/temporal-shift-module/blob/8d53d6fda40bea2f1b37a6095279c4b454d672bd/scripts/train_tsm_kinetics_rgb_8f.sh) | 74.0 (8x1 frames) | 7079 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/tsm_r50_1x1x8_50e_kinetics400_rgb_20200607-af7fb746.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/20200607_211800.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/20200607_211800.log.json) | +| [tsm_r50_1x1x8_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py) | 短边 256 | 8 | ResNet50 | ImageNet | 70.59 | 89.52 | x | x | x | 7079 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x8_50e_kinetics400_rgb/tsm_r50_256p_1x1x8_50e_kinetics400_rgb_20200726-020785e2.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x8_50e_kinetics400_rgb/20200725_031623.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x8_50e_kinetics400_rgb/20200725_031623.log.json) | +| [tsm_r50_1x1x8_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py) | 短边 320 | 8 | ResNet50 | ImageNet | 70.73 | 89.81 | x | x | x | 7079 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/tsm_r50_1x1x8_50e_kinetics400_rgb_20210701-68d582b4.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/20210616_021451.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/20210616_021451.log.json) | +| [tsm_r50_1x1x8_100e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_1x1x8_100e_kinetics400_rgb.py) | 短边 320 | 8 | ResNet50 | ImageNet | 71.90 | 90.03 | x | x | x | 7079 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_100e_kinetics400_rgb/tsm_r50_1x1x8_100e_kinetics400_rgb_20210701-7ff22268.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_100e_kinetics400_rgb/20210617_103543.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_100e_kinetics400_rgb/20210617_103543.log.json) | +| [tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb.py](/configs/recognition/tsm/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb.py) | 短边 256 | 8 | ResNet50 | ImageNet | 70.48 | 89.40 | x | x | x | 7076 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb_20210219-bf96e6cc.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb_20210219.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb_20210219.json) | +| [tsm_r50_video_1x1x8_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_video_1x1x8_50e_kinetics400_rgb.py) | 短边 256 | 8 | ResNet50 | ImageNet | 70.25 | 89.66 | [70.36](https://github.com/mit-han-lab/temporal-shift-module/blob/8d53d6fda40bea2f1b37a6095279c4b454d672bd/scripts/train_tsm_kinetics_rgb_8f.sh) | [89.49](https://github.com/mit-han-lab/temporal-shift-module/blob/8d53d6fda40bea2f1b37a6095279c4b454d672bd/scripts/train_tsm_kinetics_rgb_8f.sh) | 74.0 (8x1 frames) | 7077 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_100e_kinetics400_rgb/tsm_r50_video_1x1x8_100e_kinetics400_rgb_20200702-a77f4328.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_100e_kinetics400_rgb/tsm_r50_video_2d_1x1x8_50e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_100e_kinetics400_rgb/tsm_r50_video_2d_1x1x8_50e_kinetics400_rgb.log.json) | +| [tsm_r50_dense_1x1x8_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_dense_1x1x8_50e_kinetics400_rgb.py) | 短边 320 | 8 | ResNet50 | ImageNet | 73.46 | 90.84 | x | x | x | 7079 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_50e_kinetics400_rgb/tsm_r50_dense_1x1x8_50e_kinetics400_rgb_20210701-a54ff3d3.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_50e_kinetics400_rgb/20210617_103245.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_50e_kinetics400_rgb/20210617_103245.log.json) | +| [tsm_r50_dense_1x1x8_100e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_dense_1x1x8_100e_kinetics400_rgb.py) | 短边 320 | 8 | ResNet50 | ImageNet | 74.55 | 91.74 | x | x | x | 7079 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_100e_kinetics400_rgb/tsm_r50_dense_1x1x8_100e_kinetics400_rgb_20210701-e3e5e97f.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_100e_kinetics400_rgb/20210613_034931.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_100e_kinetics400_rgb/20210613_034931.log.json) | +| [tsm_r50_1x1x16_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb.py) | 340x256 | 8 | ResNet50 | ImageNet | 72.09 | 90.37 | [70.67](https://github.com/mit-han-lab/temporal-shift-module/blob/8d53d6fda40bea2f1b37a6095279c4b454d672bd/scripts/train_tsm_kinetics_rgb_16f.sh) | [89.98](https://github.com/mit-han-lab/temporal-shift-module/blob/8d53d6fda40bea2f1b37a6095279c4b454d672bd/scripts/train_tsm_kinetics_rgb_16f.sh) | 47.0 (16x1 frames) | 10404 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb/tsm_r50_340x256_1x1x16_50e_kinetics400_rgb_20201011-2f27f229.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb/20201011_205356.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb/20201011_205356.log.json) | +| [tsm_r50_1x1x16_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb.py) | 短边 256 | 8x4 | ResNet50 | ImageNet | 71.89 | 90.73 | x | x | x | 10398 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x16_50e_kinetics400_rgb/tsm_r50_256p_1x1x16_50e_kinetics400_rgb_20201010-85645c2a.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x16_50e_kinetics400_rgb/20201010_224825.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x16_50e_kinetics400_rgb/20201010_224825.log.json) | +| [tsm_r50_1x1x16_100e_kinetics400_rgb](/configs/recognition/tsm/tsm_r50_1x1x16_100e_kinetics400_rgb.py) | 短边 320 | 8 | ResNet50 | ImageNet | 72.80 | 90.75 | x | x | x | 10398 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_100e_kinetics400_rgb/tsm_r50_1x1x16_100e_kinetics400_rgb_20210701-41ac92b9.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_100e_kinetics400_rgb/20210618_193859.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_100e_kinetics400_rgb/20210618_193859.log.json) | +| [tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb.py) | 短边 320 | 8x4 | ResNet50 | ImageNet | 72.03 | 90.25 | 71.81 | 90.36 | x | 8931 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb_20200724-f00f1336.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb/20200724_120023.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb/20200724_120023.log.json) | +| [tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb.py) | 短边 320 | 8x4 | ResNet50 | ImageNet | 70.70 | 89.90 | x | x | x | 10125 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb_20200816-b93fd297.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb/20200815_210253.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb/20200815_210253.log.json) | +| [tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb](/configs/recognition/tsm/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb.py) | 短边 320 | 8x4 | ResNet50 | ImageNet | 71.60 | 90.34 | x | x | x | 8358 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb_20200724-d8ad84d2.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb/20200723_220442.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb/20200723_220442.log.json) | +| [tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb](/configs/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb.py) | 短边 320 | 8 | MobileNetV2 | ImageNet | 68.46 | 88.64 | x | x | x | 3385 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb/tsm_mobilenetv2_dense_320p_1x1x8_100e_kinetics400_rgb_20210202-61135809.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb/20210129_024936.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb/20210129_024936.log.json) | +| [tsm_mobilenetv2_dense_1x1x8_kinetics400_rgb_port](/configs/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb.py) | 短边 320 | 8 | MobileNetV2 | ImageNet | 69.89 | 89.01 | x | x | x | 3385 | [infer_ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_kinetics400_rgb_port_20210922-aa5cadf6.pth) | x | x | + +### Diving48 + +| 配置文件 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | GPU 显存占用 (M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------- | :------: | :------: | :------: | :---------: | :---------: | :--------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------: | +| [tsm_r50_video_1x1x8_50e_diving48_rgb](/configs/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb.py) | 8 | ResNet50 | ImageNet | 75.99 | 97.16 | 7070 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb/tsm_r50_video_1x1x8_50e_diving48_rgb_20210426-aba5aa3d.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb/20210426_012424.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb/20210426_012424.log.json) | +| [tsm_r50_video_1x1x16_50e_diving48_rgb](/configs/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb.py) | 8 | ResNet50 | ImageNet | 81.62 | 97.66 | 7070 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb/tsm_r50_video_1x1x16_50e_diving48_rgb_20210426-aa9631c0.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb/20210426_012823.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb/20210426_012823.log.json) | + +### Something-Something V1 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 (efficient/accurate) | top5 准确率 (efficient/accurate) | 参考代码的 top1 准确率 (efficient/accurate) | 参考代码的 top5 准确率 (efficient/accurate) | GPU 显存占用 (M) | ckpt | log | json | +| :----------------------------------------------------------------------------------------------------------------------- | :----: | :------: | :------: | :------: | :------------------------------: | :------------------------------: | :--------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------: | :--------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsm_r50_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_1x1x8_50e_sthv1_rgb.py) | 高 100 | 8 | ResNet50 | ImageNet | 45.58 / 47.70 | 75.02 / 76.12 | [45.50 / 47.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [74.34 / 76.60](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 7077 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv1_rgb/tsm_r50_1x1x8_50e_sthv1_rgb_20210203-01dce462.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv1_rgb/20210203_150227.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv1_rgb/20210203_150227.log.json) | +| [tsm_r50_flip_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_flip_1x1x8_50e_sthv1_rgb.py) | 高 100 | 8 | ResNet50 | ImageNet | 47.10 / 48.51 | 76.02 / 77.56 | [45.50 / 47.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [74.34 / 76.60](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 7077 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_1x1x8_50e_sthv1_rgb/tsm_r50_flip_1x1x8_50e_sthv1_rgb_20210203-12596f16.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_1x1x8_50e_sthv1_rgb/20210203_145829.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_1x1x8_50e_sthv1_rgb/20210203_145829.log.json) | +| [tsm_r50_randaugment_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb.py) | 高 100 | 8 | ResNet50 | ImageNet | 47.16 / 48.90 | 76.07 / 77.92 | [45.50 / 47.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [74.34 / 76.60](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 7077 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb_20210324-481268d9.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb.json) | +| [tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb.py) | 高 100 | 8 | ResNet50 | ImageNet | 47.65 / 48.66 | 76.67 / 77.41 | [45.50 / 47.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [74.34 / 76.60](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 7077 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb-ee93e5e3.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb.json) | +| [tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb.py) | 高 100 | 8 | ResNet50 | ImageNet | 46.26 / 47.68 | 75.92 / 76.49 | [45.50 / 47.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [74.34 / 76.60](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 7077 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb-4f4f4740.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb.json) | +| [tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb.py) | 高 100 | 8 | ResNet50 | ImageNet | 47.85 / 50.31 | 76.78 / 78.18 | [45.50 / 47.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [74.34 / 76.60](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 7077 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb_20210324-76937692.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb.json) | +| [tsm_r50_1x1x16_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_1x1x16_50e_sthv1_rgb.py) | 高 100 | 8 | ResNet50 | ImageNet | 47.77 / 49.03 | 76.82 / 77.83 | [47.05 / 48.61](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [76.40 / 77.96](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 10390 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv1_rgb/tsm_r50_1x1x16_50e_sthv1_rgb_20211202-b922e5d2.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv1_rgb/tsm_r50_1x1x16_50e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv1_rgb/tsm_r50_1x1x16_50e_sthv1_rgb.json) | +| [tsm_r101_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r101_1x1x8_50e_sthv1_rgb.py) | 高 100 | 8 | ResNet50 | ImageNet | 46.09 / 48.59 | 75.41 / 77.10 | [46.64 / 48.13](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [75.40 / 77.31](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 9800 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv1_rgb/tsm_r101_1x1x8_50e_sthv1_rgb_20201010-43fedf2e.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv1_rgb/tsm_r101_1x1x8_50e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv1_rgb/tsm_r101_1x1x8_50e_sthv1_rgb.json) | + +### Something-Something V2 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 (efficient/accurate) | top5 准确率 (efficient/accurate) | 参考代码的 top1 准确率 (efficient/accurate) | 参考代码的 top5 准确率 (efficient/accurate) | GPU 显存占用 (M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------- | :----: | :------: | :-------: | :------: | :------------------------------: | :------------------------------: | :----------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------: | :--------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------: | +| [tsm_r50_1x1x8_50e_sthv2_rgb](/configs/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb.py) | 高 256 | 8 | ResNet50 | ImageNet | 59.11 / 61.82 | 85.39 / 86.80 | [xx / 61.2](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [xx / xx](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 7069 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb/tsm_r50_256h_1x1x8_50e_sthv2_rgb_20210816-032aa4da.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb/20210816_224310.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb/20210816_224310.log.json) | +| [tsm_r50_1x1x16_50e_sthv2_rgb](/configs/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb.py) | 高 256 | 8 | ResNet50 | ImageNet | 61.06 / 63.19 | 86.66 / 87.93 | [xx / 63.1](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [xx / xx](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 10400 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv2_rgb/tsm_r50_256h_1x1x16_50e_sthv2_rgb_20210331-0a45549c.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv2_rgb/20210331_134458.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv2_rgb/20210331_134458.log.json) | +| [tsm_r101_1x1x8_50e_sthv2_rgb](/configs/recognition/tsm/tsm_r101_1x1x8_50e_sthv2_rgb.py) | 高 256 | 8 | ResNet101 | ImageNet | 60.88 / 63.84 | 86.56 / 88.30 | [xx / 63.3](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [xx / xx](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 9727 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv2_rgb/tsm_r101_256h_1x1x8_50e_sthv2_rgb_20210401-df97f3e1.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv2_rgb/20210401_143656.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv2_rgb/20210401_143656.log.json) | + +### Diving48 + +| 配置文件 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | GPU 显存占用 (M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------- | :------: | :------: | :------: | :---------: | :---------: | :--------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------: | +| [tsm_r50_video_1x1x8_50e_diving48_rgb](/configs/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb.py) | 8 | ResNet50 | ImageNet | 75.99 | 97.16 | 7070 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb/tsm_r50_video_1x1x8_50e_diving48_rgb_20210426-aba5aa3d.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb/20210426_012424.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb/20210426_012424.log.json) | +| [tsm_r50_video_1x1x16_50e_diving48_rgb](/configs/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb.py) | 8 | ResNet50 | ImageNet | 81.62 | 97.66 | 7070 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb/tsm_r50_video_1x1x16_50e_diving48_rgb_20210426-aa9631c0.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb/20210426_012823.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb/20210426_012823.log.json) | + +### MixUp & CutMix on Something-Something V1 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 (efficient/accurate) | top5 准确率 (efficient/accurate) | top1 准确率变化 (efficient/accurate) | top5 准确率变化 (efficient/accurate) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------- | :----: | :------: | :------: | :------: | :------------------------------: | :------------------------------: | :----------------------------------: | :----------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------: | +| [tsm_r50_mixup_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_mixup_1x1x8_50e_sthv1_rgb.py) | 高 100 | 8 | ResNet50 | ImageNet | 46.35 / 48.49 | 75.07 / 76.88 | +0.77 / +0.79 | +0.05 / +0.70 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_mixup_1x1x8_50e_sthv1_rgb/tsm_r50_mixup_1x1x8_50e_sthv1_rgb-9eca48e5.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_mixup_1x1x8_50e_sthv1_rgb/tsm_r50_mixup_1x1x8_50e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_mixup_1x1x8_50e_sthv1_rgb/tsm_r50_mixup_1x1x8_50e_sthv1_rgb.json) | +| [tsm_r50_cutmix_1x1x8_50e_sthv1_rgb](/configs/recognition/tsm/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb.py) | 高 100 | 8 | ResNet50 | ImageNet | 45.92 / 47.46 | 75.23 / 76.71 | +0.34 / -0.24 | +0.21 / +0.59 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb-34934615.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb.json) | + +### Jester + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 (efficient/accurate) | ckpt | log | json | +| ---------------------------------------------------------------------------------------- | :----: | :------: | :------: | :------: | :------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------: | +| [tsm_r50_1x1x8_50e_jester_rgb](/configs/recognition/tsm/tsm_r50_1x1x8_50e_jester_rgb.py) | 高 100 | 8 | ResNet50 | ImageNet | 96.5 / 97.2 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_jester_rgb/tsm_r50_1x1x8_50e_jester_rgb-c799267e.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_jester_rgb/tsm_r50_1x1x8_50e_jester_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_jester_rgb/tsm_r50_1x1x8_50e_jester_rgb.json) | + +### HMDB51 + +| 配置文件 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | GPU 显存占用 (M) | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :---------: | :---------: | :---------: | :--------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------: | +| [tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb](/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb.py) | 8 | ResNet50 | Kinetics400 | 72.68 | 92.03 | 10388 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb_20210630-10c74ee5.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb/20210605_182554.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb/20210605_182554.log.json) | +| [tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb](/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb.py) | 8 | ResNet50 | Kinetics400 | 74.77 | 93.86 | 10388 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb_20210630-4785548e.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb/20210605_182505.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb/20210605_182505.log.json) | + +### UCF101 + +| 配置文件 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | GPU 显存占用 (M) | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :---------: | :---------: | :---------: | :--------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------: | +| [tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb](/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb.py) | 8 | ResNet50 | Kinetics400 | 94.50 | 99.58 | 10389 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb_20210630-1fae312b.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb/20210605_182720.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb/20210605_182720.log.json) | +| [tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb](/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb.py) | 8 | ResNet50 | Kinetics400 | 94.58 | 99.37 | 10389 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb_20210630-8df9c358.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb/20210605_182720.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb/20210605_182720.log.json) | + +注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +2. 这里的 **推理时间** 是根据 [基准测试脚本](/tools/analysis/benchmark.py) 获得的,采用测试时的采帧策略,且只考虑模型的推理时间, + 并不包括 IO 时间以及预处理时间。对于每个配置,MMAction2 使用 1 块 GPU 并设置批大小(每块 GPU 处理的视频个数)为 1 来计算推理时间。 +3. 参考代码的结果是通过使用相同的模型配置在原来的代码库上训练得到的。对应的模型权重文件可从 [这里](https://download.openmmlab.com/mmaction/recognition/tsm/tsm_reference_ckpt.rar) 下载。 +4. 对于 Something-Something 数据集,有两种测试方案:efficient(对应 center crop x 1 clip)和 accurate(对应 Three crop x 2 clip)。两种方案参考自 [原始代码库](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd)。 + MMAction2 使用 efficient 方案作为配置文件中的默认选择,用户可以通过以下方式转变为 accurate 方案: + +```python +... +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, # 当使用 8 个 视频段时,设置 `num_clips = 8` + twice_sample=True, # 设置 `twice_sample=True` 用于 accurate 方案中的 Twice Sample + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + # dict(type='CenterCrop', crop_size=224), 用于 efficient 方案 + dict(type='ThreeCrop', crop_size=256), # 用于 accurate 方案 + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +``` + +5. 当采用 Mixup 和 CutMix 的数据增强时,使用超参 `alpha=0.2`。 +6. 我们使用的 Kinetics400 验证集包含 19796 个视频,用户可以从 [验证集视频](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB) 下载这些视频。同时也提供了对应的 [数据列表](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (每行格式为:视频 ID,视频帧数目,类别序号)以及 [标签映射](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) (类别序号到类别名称)。 +7. 这里的 **infer_ckpt** 表示该模型权重文件是从 [TSM](https://github.com/mit-han-lab/temporal-shift-module/blob/master/test_models.py) 导入的。 + +对于数据集准备的细节,用户可参考 [数据集准备文档](/docs_zh_CN/data_preparation.md) 中的 Kinetics400, Something-Something V1 and Something-Something V2 部分。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:以一个确定性的训练方式,辅以定期的验证过程进行 TSM 模型在 Kinetics-400 数据集上的训练。 + +```shell +python tools/train.py configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py \ + --work-dir work_dirs/tsm_r50_1x1x8_100e_kinetics400_rgb \ + --validate --seed 0 --deterministic +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 Kinetics-400 数据集上测试 TSM 模型,并将结果导出为一个 json 文件。 + +```shell +python tools/test.py configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/metafile.yml new file mode 100644 index 00000000..6ad13f29 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/metafile.yml @@ -0,0 +1,830 @@ +Collections: +- Name: TSM + README: configs/recognition/tsm/README.md + Paper: + URL: https://arxiv.org/abs/1811.08383 + Title: "TSM: Temporal Shift Module for Efficient Video Understanding" +Models: +- Config: configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 32965562368 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: 340x256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_1x1x8_50e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 70.24 + Top 5 Accuracy: 89.56 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/20200607_211800.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/20200607_211800.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/tsm_r50_1x1x8_50e_kinetics400_rgb_20200607-af7fb746.pth +- Config: configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 32965562368 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_1x1x8_50e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 70.59 + Top 5 Accuracy: 89.52 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x8_50e_kinetics400_rgb/20200725_031623.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x8_50e_kinetics400_rgb/20200725_031623.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x8_50e_kinetics400_rgb/tsm_r50_256p_1x1x8_50e_kinetics400_rgb_20200726-020785e2.pth +- Config: configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 32965562368 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_1x1x8_50e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 70.73 + Top 5 Accuracy: 89.81 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/20210616_021451.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/20210616_021451.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb/tsm_r50_1x1x8_50e_kinetics400_rgb_20210701-68d582b4.pth +- Config: configs/recognition/tsm/tsm_r50_1x1x8_100e_kinetics400_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 100 + FLOPs: 32965562368 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_1x1x8_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 71.9 + Top 5 Accuracy: 90.03 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_100e_kinetics400_rgb/20210617_103543.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_100e_kinetics400_rgb/20210617_103543.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_100e_kinetics400_rgb/tsm_r50_1x1x8_100e_kinetics400_rgb_20210701-7ff22268.pth +- Config: configs/recognition/tsm/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 32965562368 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 70.48 + Top 5 Accuracy: 89.4 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb_20210219.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb_20210219.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb_20210219-bf96e6cc.pth +- Config: configs/recognition/tsm/tsm_r50_video_1x1x8_50e_kinetics400_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 32965562368 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_video_1x1x8_50e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 70.25 + Top 5 Accuracy: 89.66 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_100e_kinetics400_rgb/tsm_r50_video_2d_1x1x8_50e_kinetics400_rgb.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_100e_kinetics400_rgb/tsm_r50_video_2d_1x1x8_50e_kinetics400_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_100e_kinetics400_rgb/tsm_r50_video_1x1x8_100e_kinetics400_rgb_20200702-a77f4328.pth +- Config: configs/recognition/tsm/tsm_r50_dense_1x1x8_50e_kinetics400_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 32965562368 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_dense_1x1x8_50e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 73.46 + Top 5 Accuracy: 90.84 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_50e_kinetics400_rgb/20210617_103245.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_50e_kinetics400_rgb/20210617_103245.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_50e_kinetics400_rgb/tsm_r50_dense_1x1x8_50e_kinetics400_rgb_20210701-a54ff3d3.pth +- Config: configs/recognition/tsm/tsm_r50_dense_1x1x8_100e_kinetics400_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 100 + FLOPs: 32965562368 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_dense_1x1x8_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 74.55 + Top 5 Accuracy: 91.74 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_100e_kinetics400_rgb/20210613_034931.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_100e_kinetics400_rgb/20210613_034931.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_dense_1x1x8_100e_kinetics400_rgb/tsm_r50_dense_1x1x8_100e_kinetics400_rgb_20210701-e3e5e97f.pth +- Config: configs/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 6 + Epochs: 50 + FLOPs: 65931124736 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: 340x256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_1x1x16_50e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 72.09 + Top 5 Accuracy: 90.37 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb/20201011_205356.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb/20201011_205356.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb/tsm_r50_340x256_1x1x16_50e_kinetics400_rgb_20201011-2f27f229.pth +- Config: configs/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 6 + Epochs: 50 + FLOPs: 65931124736 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: tsm_r50_1x1x16_50e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 71.89 + Top 5 Accuracy: 90.73 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x16_50e_kinetics400_rgb/20201010_224825.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x16_50e_kinetics400_rgb/20201010_224825.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x16_50e_kinetics400_rgb/tsm_r50_256p_1x1x16_50e_kinetics400_rgb_20201010-85645c2a.pth +- Config: configs/recognition/tsm/tsm_r50_1x1x16_100e_kinetics400_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 6 + Epochs: 100 + FLOPs: 65931124736 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_1x1x16_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 72.80 + Top 5 Accuracy: 90.75 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb/20210621_115844.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb/20210621_115844.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb/tsm_r50_1x1x16_50e_kinetics400_rgb_20210701-7c0c5d54.pth +- Config: configs/recognition/tsm/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 49457811456 + Parameters: 31682000 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 72.03 + Top 5 Accuracy: 90.25 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb/20200724_120023.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb/20200724_120023.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb_20200724-f00f1336.pth +- Config: configs/recognition/tsm/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 41231355904 + Parameters: 28007888 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 70.7 + Top 5 Accuracy: 89.9 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb/20200815_210253.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb/20200815_210253.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb_20200816-b93fd297.pth +- Config: configs/recognition/tsm/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 49457811456 + Parameters: 31682000 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: RGB + Name: tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 71.6 + Top 5 Accuracy: 90.34 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb/20200723_220442.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb/20200723_220442.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb_20200724-d8ad84d2.pth +- Config: configs/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb.py + In Collection: TSM + Metadata: + Architecture: MobileNetV2 + Batch Size: 8 + Epochs: 100 + FLOPs: 3337519104 + Parameters: 2736272 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 68.46 + Top 5 Accuracy: 88.64 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb/20210129_024936.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb/20210129_024936.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb/tsm_mobilenetv2_dense_320p_1x1x8_100e_kinetics400_rgb_20210202-61135809.pth +- Config: configs/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 32959795200 + Parameters: 23606384 + Pretrained: ImageNet + Training Data: Diving48 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_video_1x1x8_50e_diving48_rgb + Results: + - Dataset: Diving48 + Metrics: + Top 1 Accuracy: 75.99 + Top 5 Accuracy: 97.16 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb/20210426_012424.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb/20210426_012424.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb/tsm_r50_video_1x1x8_50e_diving48_rgb_20210426-aba5aa3d.pth +- Config: configs/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 4 + Epochs: 50 + FLOPs: 65919590400 + Parameters: 23606384 + Pretrained: ImageNet + Training Data: Diving48 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_video_1x1x16_50e_diving48_rgb + Results: + - Dataset: Diving48 + Metrics: + Top 1 Accuracy: 81.62 + Top 5 Accuracy: 97.66 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb/20210426_012823.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb/20210426_012823.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb/tsm_r50_video_1x1x16_50e_diving48_rgb_20210426-aa9631c0.pth +- Config: configs/recognition/tsm/tsm_r50_1x1x8_50e_sthv1_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 32961859584 + Parameters: 23864558 + Pretrained: ImageNet + Resolution: height 100 + Training Data: SthV1 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_1x1x8_50e_sthv1_rgb + Results: + - Dataset: SthV1 + Metrics: + Top 1 Accuracy: 47.7 + Top 1 Accuracy (efficient): 45.58 + Top 5 Accuracy: 76.12 + Top 5 Accuracy (efficient): 75.02 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv1_rgb/20210203_150227.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv1_rgb/20210203_150227.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv1_rgb/tsm_r50_1x1x8_50e_sthv1_rgb_20210203-01dce462.pth + reference top1 acc (efficient/accurate): '[45.50 / 47.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' + reference top5 acc (efficient/accurate): '[74.34 / 76.60](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' +- Config: configs/recognition/tsm/tsm_r50_flip_1x1x8_50e_sthv1_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 32961859584 + Parameters: 23864558 + Pretrained: ImageNet + Resolution: height 100 + Training Data: SthV1 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_flip_1x1x8_50e_sthv1_rgb + Results: + - Dataset: SthV1 + Metrics: + Top 1 Accuracy: 48.51 + Top 1 Accuracy (efficient): 47.1 + Top 5 Accuracy: 77.56 + Top 5 Accuracy (efficient): 76.02 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_1x1x8_50e_sthv1_rgb/20210203_145829.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_1x1x8_50e_sthv1_rgb/20210203_145829.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_1x1x8_50e_sthv1_rgb/tsm_r50_flip_1x1x8_50e_sthv1_rgb_20210203-12596f16.pth + reference top1 acc (efficient/accurate): '[45.50 / 47.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' + reference top5 acc (efficient/accurate): '[74.34 / 76.60](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' +- Config: configs/recognition/tsm/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 32961859584 + Parameters: 23864558 + Pretrained: ImageNet + Resolution: height 100 + Training Data: SthV1 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_randaugment_1x1x8_50e_sthv1_rgb + Results: + - Dataset: SthV1 + Metrics: + Top 1 Accuracy: 48.9 + Top 1 Accuracy (efficient): 47.16 + Top 5 Accuracy: 77.92 + Top 5 Accuracy (efficient): 76.07 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb_20210324-481268d9.pth + reference top1 acc (efficient/accurate): '[45.50 / 47.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' + reference top5 acc (efficient/accurate): '[74.34 / 76.60](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' +- Config: configs/recognition/tsm/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 32961859584 + Parameters: 23864558 + Pretrained: ImageNet + Resolution: height 100 + Training Data: SthV1 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb + Results: + - Dataset: SthV1 + Metrics: + Top 1 Accuracy: 50.31 + Top 1 Accuracy (efficient): 47.85 + Top 5 Accuracy: 78.18 + Top 5 Accuracy (efficient): 76.78 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb_20210324-76937692.pth + reference top1 acc (efficient/accurate): '[45.50 / 47.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' + reference top5 acc (efficient/accurate): '[74.34 / 76.60](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' +- Config: configs/recognition/tsm/tsm_r50_1x1x16_50e_sthv1_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 6 + Epochs: 50 + FLOPs: 65923719168 + Parameters: 23864558 + Pretrained: ImageNet + Resolution: height 100 + Training Data: SthV1 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_1x1x16_50e_sthv1_rgb + Results: + - Dataset: SthV1 + Metrics: + Top 1 Accuracy: 49.03 + Top 1 Accuracy (efficient): 47.77 + Top 5 Accuracy: 77.83 + Top 5 Accuracy (efficient): 76.82 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv1_rgb/tsm_r50_1x1x16_50e_sthv1_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv1_rgb/tsm_r50_1x1x16_50e_sthv1_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv1_rgb/tsm_r50_1x1x16_50e_sthv1_rgb_20211202-b922e5d2.pth + reference top1 acc (efficient/accurate): '[47.05 / 48.61](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' + reference top5 acc (efficient/accurate): '[76.40 / 77.96](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' +- Config: configs/recognition/tsm/tsm_r101_1x1x8_50e_sthv1_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 62782459904 + Parameters: 42856686 + Pretrained: ImageNet + Resolution: height 100 + Training Data: SthV1 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r101_1x1x8_50e_sthv1_rgb + Results: + - Dataset: SthV1 + Metrics: + Top 1 Accuracy: 48.59 + Top 1 Accuracy (efficient): 46.09 + Top 5 Accuracy: 77.10 + Top 5 Accuracy (efficient): 75.41 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv1_rgb/tsm_r101_1x1x8_50e_sthv1_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv1_rgb/tsm_r101_1x1x8_50e_sthv1_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv1_rgb/tsm_r101_1x1x8_50e_sthv1_rgb_20211202-49970a5b.pth + reference top1 acc (efficient/accurate): '[46.64 / 48.13](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' + reference top5 acc (efficient/accurate): '[75.40 / 77.31](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' +- Config: configs/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 6 + Epochs: 50 + FLOPs: 32961859584 + Parameters: 23864558 + Pretrained: ImageNet + Resolution: height 256 + Training Data: SthV2 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_1x1x8_50e_sthv2_rgb + Results: + - Dataset: SthV2 + Metrics: + Top 1 Accuracy: 61.82 + Top 1 Accuracy (efficient): 59.11 + Top 5 Accuracy: 86.80 + Top 5 Accuracy (efficient): 85.39 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb/20210816_224310.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb/20210816_224310.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb/tsm_r50_256h_1x1x8_50e_sthv2_rgb_20210816-032aa4da.pth + reference top1 acc (efficient/accurate): '[57.98 / 60.69](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' + reference top5 acc (efficient/accurate): '[84.57 / 86.28](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' +- Config: configs/recognition/tsm/tsm_r50_1x1x16_50e_sthv2_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 6 + Epochs: 50 + FLOPs: 32961859584 + Parameters: 23864558 + Pretrained: ImageNet + Resolution: height 256 + Training Data: SthV2 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_1x1x16_50e_sthv2_rgb + Results: + - Dataset: SthV2 + Metrics: + Top 1 Accuracy: 63.19 + Top 1 Accuracy (efficient): 61.06 + Top 5 Accuracy: 87.93 + Top 5 Accuracy (efficient): 86.66 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv2_rgb/20210331_134458.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv2_rgb/20210331_134458.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x16_50e_sthv2_rgb/tsm_r50_256h_1x1x16_50e_sthv2_rgb_20210331-0a45549c.pth + reference top1 acc (efficient/accurate): '[xx / 63.1](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' + reference top5 acc (efficient/accurate): '[xx / xx](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' +- Config: configs/recognition/tsm/tsm_r101_1x1x8_50e_sthv2_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet101 + Batch Size: 8 + Epochs: 50 + FLOPs: 62782459904 + Parameters: 42856686 + Pretrained: ImageNet + Resolution: height 256 + Training Data: SthV2 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r101_1x1x8_50e_sthv2_rgb + Results: + - Dataset: SthV2 + Metrics: + Top 1 Accuracy: 63.84 + Top 1 Accuracy (efficient): 60.88 + Top 5 Accuracy: 88.30 + Top 5 Accuracy (efficient): 86.56 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv2_rgb/20210401_143656.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv2_rgb/20210401_143656.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r101_1x1x8_50e_sthv2_rgb/tsm_r101_256h_1x1x8_50e_sthv2_rgb_20210401-df97f3e1.pth + reference top1 acc (efficient/accurate): '[xx / 63.3](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' + reference top5 acc (efficient/accurate): '[xx / xx](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training)' +- Config: configs/recognition/tsm/tsm_r50_mixup_1x1x8_50e_sthv1_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 43051352064 + Parameters: 23864558 + Pretrained: ImageNet + Resolution: height 100 + Training Data: SthV1 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_mixup_1x1x8_50e_sthv1_rgb + Results: + - Dataset: SthV1 + Metrics: + Top 1 Accuracy: 48.49 + Top 1 Accuracy (efficient): 46.35 + Top 5 Accuracy: 76.88 + Top 5 Accuracy (efficient): 75.07 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_mixup_1x1x8_50e_sthv1_rgb/tsm_r50_mixup_1x1x8_50e_sthv1_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_mixup_1x1x8_50e_sthv1_rgb/tsm_r50_mixup_1x1x8_50e_sthv1_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_mixup_1x1x8_50e_sthv1_rgb/tsm_r50_mixup_1x1x8_50e_sthv1_rgb-9eca48e5.pth + delta top1 acc (efficient/accurate): +0.77 / +0.79 + delta top5 acc (efficient/accurate): +0.05 / +0.70 +- Config: configs/recognition/tsm/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 43051352064 + Parameters: 23864558 + Pretrained: ImageNet + Resolution: height 100 + Training Data: SthV1 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_cutmix_1x1x8_50e_sthv1_rgb + Results: + - Dataset: SthV1 + Metrics: + Top 1 Accuracy: 47.46 + Top 1 Accuracy (efficient): 45.92 + Top 5 Accuracy: 76.71 + Top 5 Accuracy (efficient): 75.23 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb-34934615.pth + delta top1 acc (efficient/accurate): +0.34 / -0.24 + delta top5 acc (efficient/accurate): +0.21 / +0.59 +- Config: configs/recognition/tsm/tsm_r50_1x1x8_50e_jester_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 43048943616 + Parameters: 23563355 + Pretrained: ImageNet + Resolution: height 100 + Training Data: Jester + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_r50_1x1x8_50e_jester_rgb + Results: + - Dataset: Jester + Metrics: + Top 1 Accuracy: 97.2 + Top 1 Accuracy (efficient): 96.5 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_jester_rgb/tsm_r50_1x1x8_50e_jester_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_jester_rgb/tsm_r50_1x1x8_50e_jester_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_1x1x8_50e_jester_rgb/tsm_r50_1x1x8_50e_jester_rgb-c799267e.pth +- Config: configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 25 + FLOPs: 32959844352 + Parameters: 23612531 + Pretrained: Kinetics400 + Training Data: HMDB51 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb + Results: + - Dataset: HMDB51 + Metrics: + Top 1 Accuracy: 72.68 + Top 5 Accuracy: 92.03 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb/20210605_182554.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb/20210605_182554.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb_20210630-10c74ee5.pth + gpu_mem(M): '10388' +- Config: configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 6 + Epochs: 25 + FLOPs: 65919688704 + Parameters: 23612531 + Pretrained: Kinetics400 + Training Data: HMDB51 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb + Results: + - Dataset: HMDB51 + Metrics: + Top 1 Accuracy: 74.77 + Top 5 Accuracy: 93.86 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb/20210605_182505.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb/20210605_182505.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb_20210630-4785548e.pth + gpu_mem(M): '10388' +- Config: configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 25 + FLOPs: 32960663552 + Parameters: 23714981 + Pretrained: Kinetics400 + Training Data: UCF101 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb + Results: + - Dataset: UCF101 + Metrics: + Top 1 Accuracy: 94.5 + Top 5 Accuracy: 99.58 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb/20210605_182720.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb/20210605_182720.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb_20210630-1fae312b.pth + gpu_mem(M): '10389' +- Config: configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb.py + In Collection: TSM + Metadata: + Architecture: ResNet50 + Batch Size: 6 + Epochs: 25 + FLOPs: 65921327104 + Parameters: 23714981 + Pretrained: Kinetics400 + Training Data: UCF101 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb + Results: + - Dataset: UCF101 + Metrics: + Top 1 Accuracy: 94.58 + Top 5 Accuracy: 99.37 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb/20210605_182720.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb/20210605_182720.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb_20210630-8df9c358.pth + gpu_mem(M): '10389' +- Config: configs/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb.py + In Collection: TSM + Metadata: + Architecture: MobileNetV2 + Batch Size: 8 + Epochs: 100 + FLOPs: 3337519104 + Parameters: 2736272 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsm_mobilenetv2_dense_1x1x8_kinetics400_rgb_port + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 69.89 + Top 5 Accuracy: 89.01 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_kinetics400_rgb_port_20210922-aa5cadf6.pth + gpu_mem(M): '3385' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb.py new file mode 100644 index 00000000..9a6535b3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb.py @@ -0,0 +1,101 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + backbone=dict(num_segments=16), + cls_head=dict(num_classes=51, num_segments=16)) + +# dataset settings +split = 1 +dataset_type = 'RawframeDataset' +data_root = 'data/hmdb51/rawframes' +data_root_val = 'data/hmdb51/rawframes' +ann_file_train = f'data/hmdb51/hmdb51_train_split_{split}_rawframes.txt' +ann_file_val = f'data/hmdb51/hmdb51_val_split_{split}_rawframes.txt' +ann_file_test = f'data/hmdb51/hmdb51_val_split_{split}_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=16), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + lr=0.00075, # this lr is used for 8 gpus +) +# learning policy +lr_config = dict(policy='step', step=[10, 20]) +total_epochs = 25 + +load_from = 'https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x16_50e_kinetics400_rgb/tsm_r50_256p_1x1x16_50e_kinetics400_rgb_20201010-85645c2a.pth' # noqa: E501 +# runtime settings +work_dir = './work_dirs/tsm_k400_pretrained_r50_1x1x16_25e_hmdb51_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb.py new file mode 100644 index 00000000..92ef9bfe --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb.py @@ -0,0 +1,101 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + backbone=dict(num_segments=16), + cls_head=dict(num_classes=101, num_segments=16)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/ucf101/rawframes/' +data_root_val = 'data/ucf101/rawframes/' +split = 1 # official train/test splits. valid numbers: 1, 2, 3 +ann_file_train = f'data/ucf101/ucf101_train_split_{split}_rawframes.txt' +ann_file_val = f'data/ucf101/ucf101_val_split_{split}_rawframes.txt' +ann_file_test = f'data/ucf101/ucf101_val_split_{split}_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=16), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + lr=0.00075, # this lr is used for 8 gpus +) +# learning policy +lr_config = dict(policy='step', step=[10, 20]) +total_epochs = 25 + +load_from = 'https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x16_50e_kinetics400_rgb/tsm_r50_256p_1x1x16_50e_kinetics400_rgb_20201010-85645c2a.pth' # noqa: E501 +# runtime settings +work_dir = './work_dirs/tsm_k400_pretrained_r50_1x1x16_25e_ucf101_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb.py new file mode 100644 index 00000000..5169eda3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb.py @@ -0,0 +1,101 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + backbone=dict(num_segments=8), + cls_head=dict(num_classes=51, num_segments=8)) + +# dataset settings +split = 1 +dataset_type = 'RawframeDataset' +data_root = 'data/hmdb51/rawframes' +data_root_val = 'data/hmdb51/rawframes' +ann_file_train = f'data/hmdb51/hmdb51_train_split_{split}_rawframes.txt' +ann_file_val = f'data/hmdb51/hmdb51_val_split_{split}_rawframes.txt' +ann_file_test = f'data/hmdb51/hmdb51_val_split_{split}_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=12, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + lr=0.0015, # this lr is used for 8 gpus +) +# learning policy +lr_config = dict(policy='step', step=[10, 20]) +total_epochs = 25 + +load_from = 'https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x8_50e_kinetics400_rgb/tsm_r50_256p_1x1x8_50e_kinetics400_rgb_20200726-020785e2.pth' # noqa: E501 +# runtime settings +work_dir = './work_dirs/tsm_k400_pretrained_r50_1x1x8_25e_hmdb51_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb.py new file mode 100644 index 00000000..84317727 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb.py @@ -0,0 +1,101 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + backbone=dict(num_segments=8), + cls_head=dict(num_classes=101, num_segments=8)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/ucf101/rawframes/' +data_root_val = 'data/ucf101/rawframes/' +split = 1 # official train/test splits. valid numbers: 1, 2, 3 +ann_file_train = f'data/ucf101/ucf101_train_split_{split}_rawframes.txt' +ann_file_val = f'data/ucf101/ucf101_val_split_{split}_rawframes.txt' +ann_file_test = f'data/ucf101/ucf101_val_split_{split}_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=12, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + lr=0.0015, # this lr is used for 8 gpus +) +# learning policy +lr_config = dict(policy='step', step=[10, 20]) +total_epochs = 25 + +load_from = 'https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_256p_1x1x8_50e_kinetics400_rgb/tsm_r50_256p_1x1x8_50e_kinetics400_rgb_20200726-020785e2.pth' # noqa: E501 +# runtime settings +work_dir = './work_dirs/tsm_k400_pretrained_r50_1x1x8_25e_ucf101_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb.py new file mode 100644 index 00000000..b6df2b32 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb.py @@ -0,0 +1,88 @@ +_base_ = [ + '../../_base_/models/tsm_mobilenet_v2.py', + '../../_base_/schedules/sgd_tsm_mobilenet_v2_100e.py', + '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='DenseSampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='DenseSampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +checkpoint_config = dict(interval=1) +work_dir = './work_dirs/tsm_mobilenetv2_dense_1x1x8_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_mobilenetv2_video_dense_1x1x8_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_mobilenetv2_video_dense_1x1x8_100e_kinetics400_rgb.py new file mode 100644 index 00000000..9442e1d7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_mobilenetv2_video_dense_1x1x8_100e_kinetics400_rgb.py @@ -0,0 +1,96 @@ +_base_ = [ + '../../_base_/models/tsm_mobilenet_v2.py', + '../../_base_/schedules/sgd_tsm_mobilenet_v2_100e.py', + '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/kinetics400/videos_train' +data_root_val = 'data/kinetics400/videos_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_videos.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_videos.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='DenseSampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='DenseSampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='DenseSampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + lr=0.01, # this lr is used for 8 gpus +) + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsm_mobilenetv2_dense_video_1x1x8_100e_kinetics400_rgb/' # noqa diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_mobilenetv2_video_inference_dense_1x1x8_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_mobilenetv2_video_inference_dense_1x1x8_100e_kinetics400_rgb.py new file mode 100644 index 00000000..15a3edd5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_mobilenetv2_video_inference_dense_1x1x8_100e_kinetics400_rgb.py @@ -0,0 +1,33 @@ +_base_ = ['../../_base_/models/tsm_mobilenet_v2.py'] + +# dataset settings +dataset_type = 'VideoDataset' +data_root_val = 'data/kinetics400/videos_val' +ann_file_test = 'data/kinetics400/kinetics400_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='DenseSampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] + +data = dict( + videos_per_gpu=4, + workers_per_gpu=2, + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb.py new file mode 100644 index 00000000..884a2d66 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_nl_dot_product_r50_1x1x8_50e_kinetics400_rgb.py @@ -0,0 +1,96 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + backbone=dict( + non_local=((0, 0, 0), (1, 0, 1, 0), (1, 0, 1, 0, 1, 0), (0, 0, 0)), + non_local_cfg=dict( + sub_sample=True, + use_scale=False, + norm_cfg=dict(type='BN3d', requires_grad=True), + mode='dot_product'))) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +work_dir = './work_dirs/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb.py new file mode 100644 index 00000000..738043ac --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb.py @@ -0,0 +1,96 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + backbone=dict( + non_local=((0, 0, 0), (1, 0, 1, 0), (1, 0, 1, 0, 1, 0), (0, 0, 0)), + non_local_cfg=dict( + sub_sample=True, + use_scale=False, + norm_cfg=dict(type='BN3d', requires_grad=True), + mode='embedded_gaussian'))) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +work_dir = './work_dirs/tsm_nl_embedded_gaussian_r50_1x1x8_50e_kinetics400_rgb/' # noqa: E501 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb.py new file mode 100644 index 00000000..9516e93b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb.py @@ -0,0 +1,96 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + backbone=dict( + non_local=((0, 0, 0), (1, 0, 1, 0), (1, 0, 1, 0, 1, 0), (0, 0, 0)), + non_local_cfg=dict( + sub_sample=True, + use_scale=False, + norm_cfg=dict(type='BN3d', requires_grad=True), + mode='gaussian'))) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +work_dir = './work_dirs/tsm_nl_gaussian_r50_1x1x8_50e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r101_1x1x8_50e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r101_1x1x8_50e_sthv1_rgb.py new file mode 100644 index 00000000..02c43a38 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r101_1x1x8_50e_sthv1_rgb.py @@ -0,0 +1,7 @@ +_base_ = ['./tsm_r50_1x1x8_50e_sthv1_rgb.py'] + +# model settings +model = dict(backbone=dict(pretrained='torchvision://resnet101', depth=101)) + +# runtime settings +work_dir = './work_dirs/tsm_r101_1x1x8_50e_sthv1_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r101_1x1x8_50e_sthv2_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r101_1x1x8_50e_sthv2_rgb.py new file mode 100644 index 00000000..1926a975 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r101_1x1x8_50e_sthv2_rgb.py @@ -0,0 +1,90 @@ +_base_ = ['./tsm_r50_1x1x8_50e_sthv2_rgb.py'] + +# model settings +model = dict(backbone=dict(pretrained='torchvision://resnet101', depth=101)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv2/rawframes' +data_root_val = 'data/sthv2/rawframes' +ann_file_train = 'data/sthv2/sthv2_train_list_rawframes.txt' +ann_file_val = 'data/sthv2/sthv2_val_list_rawframes.txt' +ann_file_test = 'data/sthv2/sthv2_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + lr=0.01, # this lr is used for 8 gpus +) +# runtime settings +work_dir = './work_dirs/tsm_r101_1x1x8_50e_sthv2_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x16_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x16_100e_kinetics400_rgb.py new file mode 100644 index 00000000..b09b65b4 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x16_100e_kinetics400_rgb.py @@ -0,0 +1,7 @@ +_base_ = ['tsm_r50_1x1x16_50e_kinetics400_rgb.py'] + +optimizer_config = dict(grad_clip=dict(max_norm=20, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[40, 80]) +total_epochs = 100 +work_dir = './work_dirs/tsm_r50_1x1x16_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb.py new file mode 100644 index 00000000..d28b979f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x16_50e_kinetics400_rgb.py @@ -0,0 +1,95 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(backbone=dict(num_segments=16), cls_head=dict(num_segments=16)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=16), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + lr=0.0075, # this lr is used for 8 gpus +) + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsm_r50_1x1x16_50e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x16_50e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x16_50e_sthv1_rgb.py new file mode 100644 index 00000000..8ca1b6b0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x16_50e_sthv1_rgb.py @@ -0,0 +1,99 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + backbone=dict(num_segments=16), + cls_head=dict(num_classes=174, num_segments=16)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=16), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + lr=0.0075, # this lr is used for 8 gpus + weight_decay=0.0005) + +# runtime settings +work_dir = './work_dirs/tsm_r50_1x1x16_50e_sthv1_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x16_50e_sthv2_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x16_50e_sthv2_rgb.py new file mode 100644 index 00000000..f930f1c2 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x16_50e_sthv2_rgb.py @@ -0,0 +1,96 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + backbone=dict(num_segments=16), + cls_head=dict(num_classes=174, num_segments=16)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv2/rawframes' +data_root_val = 'data/sthv2/rawframes' +ann_file_train = 'data/sthv2/sthv2_train_list_rawframes.txt' +ann_file_val = 'data/sthv2/sthv2_val_list_rawframes.txt' +ann_file_test = 'data/sthv2/sthv2_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=16), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + lr=0.0075, # this lr is used for 8 gpus + weight_decay=0.0005) + +# runtime settings +work_dir = './work_dirs/tsm_r50_1x1x16_50e_sthv2_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_100e_kinetics400_rgb.py new file mode 100644 index 00000000..88b28924 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_100e_kinetics400_rgb.py @@ -0,0 +1,6 @@ +_base_ = ['./tsm_r50_1x1x8_50e_kinetics400_rgb.py'] + +optimizer_config = dict(grad_clip=dict(max_norm=20, norm_type=2)) +lr_config = dict(policy='step', step=[40, 80]) +total_epochs = 100 +work_dir = './work_dirs/tsm_r50_1x1x8_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_50e_jester_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_50e_jester_rgb.py new file mode 100644 index 00000000..4c1daf1d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_50e_jester_rgb.py @@ -0,0 +1,91 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=27)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/jester/rawframes' +data_root_val = 'data/jester/rawframes' +ann_file_train = 'data/jester/jester_train_list_rawframes.txt' +ann_file_val = 'data/jester/jester_val_list_rawframes.txt' +ann_file_test = 'data/jester/jester_val_list_rawframes.txt' +jester_flip_label_map = {0: 1, 1: 0, 6: 7, 7: 6} +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5, flip_label_map=jester_flip_label_map), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(weight_decay=0.0005) + +# runtime settings +work_dir = './work_dirs/tsm_r50_1x1x8_50e_jester_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py new file mode 100644 index 00000000..76195eb8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py @@ -0,0 +1,87 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsm_r50_1x1x8_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_50e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_50e_sthv1_rgb.py new file mode 100644 index 00000000..e57a5b02 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_50e_sthv1_rgb.py @@ -0,0 +1,95 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=174)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(weight_decay=0.0005) + +# runtime settings +work_dir = './work_dirs/tsm_r50_1x1x8_50e_sthv1_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb.py new file mode 100644 index 00000000..c51ac187 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_1x1x8_50e_sthv2_rgb.py @@ -0,0 +1,94 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=174)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv2/rawframes' +data_root_val = 'data/sthv2/rawframes' +ann_file_train = 'data/sthv2/sthv2_train_list_rawframes.txt' +ann_file_val = 'data/sthv2/sthv2_val_list_rawframes.txt' +ann_file_test = 'data/sthv2/sthv2_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=6, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + lr=0.0075, # this lr is used for 8 gpus + weight_decay=0.0005) + +# runtime settings +work_dir = './work_dirs/tsm_r50_1x1x8_50e_sthv2_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb.py new file mode 100644 index 00000000..cac9dbb7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb.py @@ -0,0 +1,115 @@ +_base_ = [ + '../../_base_/schedules/sgd_tsm_50e.py', '../../_base_/default_runtime.py' +] + +# model settings +# model settings# model settings +model = dict( + type='Recognizer2D', + backbone=dict( + type='ResNetTSM', + pretrained='torchvision://resnet50', + depth=50, + norm_eval=False, + shift_div=8), + cls_head=dict( + type='TSMHead', + num_classes=174, + in_channels=2048, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.5, + init_std=0.001, + is_shift=True), + # model training and testing settings + train_cfg=dict( + blending=dict(type='CutmixBlending', num_classes=174, alpha=.2)), + test_cfg=dict(average_clips='prob')) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(weight_decay=0.0005) + +# runtime settings +work_dir = './work_dirs/tsm_r50_cutmix_1x1x8_50e_sthv1_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_dense_1x1x8_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_dense_1x1x8_100e_kinetics400_rgb.py new file mode 100644 index 00000000..150e0f14 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_dense_1x1x8_100e_kinetics400_rgb.py @@ -0,0 +1,87 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_100e.py', + '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DenseSampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='DenseSampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='DenseSampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +work_dir = './work_dirs/tsm_r50_dense_1x1x8_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_dense_1x1x8_50e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_dense_1x1x8_50e_kinetics400_rgb.py new file mode 100644 index 00000000..66ffd96b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_dense_1x1x8_50e_kinetics400_rgb.py @@ -0,0 +1,7 @@ +_base_ = ['tsm_r50_dense_1x1x8_100e_kinetics400_rgb.py'] + +optimizer_config = dict(grad_clip=dict(max_norm=20, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[20, 40]) +total_epochs = 50 +work_dir = './work_dirs/tsm_r50_dense_1x1x8_50e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_flip_1x1x8_50e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_flip_1x1x8_50e_sthv1_rgb.py new file mode 100644 index 00000000..9b5199a7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_flip_1x1x8_50e_sthv1_rgb.py @@ -0,0 +1,99 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=174)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' + +sthv1_flip_label_map = {2: 4, 4: 2, 30: 41, 41: 30, 52: 66, 66: 52} +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5, flip_label_map=sthv1_flip_label_map), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(weight_decay=0.0005) + +# runtime settings +work_dir = './work_dirs/tsm_r50_flip_1x1x8_50e_sthv1_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb.py new file mode 100644 index 00000000..11ae99c9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb.py @@ -0,0 +1,100 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=174)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' + +sthv1_flip_label_map = {2: 4, 4: 2, 30: 41, 41: 30, 52: 66, 66: 52} +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5, flip_label_map=sthv1_flip_label_map), + dict(type='Imgaug', transforms='default'), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(weight_decay=0.0005) + +# runtime settings +work_dir = './work_dirs/tsm_r50_flip_randaugment_1x1x8_50e_sthv1_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb.py new file mode 100644 index 00000000..61004a5b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_gpu_normalize_1x1x8_50e_kinetics400_rgb.py @@ -0,0 +1,93 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +module_hooks = [ + dict( + type='GPUNormalize', + hooked_module='backbone', + hook_pos='forward_pre', + input_format='NCHW', + mean=[123.675, 116.28, 103.53], + std=[58.395, 57.12, 57.375]) +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' + +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsm_r50_gpu_normalize_1x1x8_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_mixup_1x1x8_50e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_mixup_1x1x8_50e_sthv1_rgb.py new file mode 100644 index 00000000..24864ec2 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_mixup_1x1x8_50e_sthv1_rgb.py @@ -0,0 +1,114 @@ +_base_ = [ + '../../_base_/schedules/sgd_tsm_50e.py', '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + type='Recognizer2D', + backbone=dict( + type='ResNetTSM', + pretrained='torchvision://resnet50', + depth=50, + norm_eval=False, + shift_div=8), + cls_head=dict( + type='TSMHead', + num_classes=174, + in_channels=2048, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.5, + init_std=0.001, + is_shift=True), + # model training and testing settings + train_cfg=dict( + blending=dict(type='MixupBlending', num_classes=174, alpha=.2)), + test_cfg=dict(average_clips='prob')) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(weight_decay=0.0005) + +# runtime settings +work_dir = './work_dirs/tsm_r50_mixup_1x1x8_50e_sthv1_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb.py new file mode 100644 index 00000000..7b39be49 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb.py @@ -0,0 +1,96 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=174)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='pytorchvideo.AugMix'), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(weight_decay=0.0005) + +# runtime settings +work_dir = './work_dirs/tsm_r50_ptv_augmix_1x1x8_50e_sthv1_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb.py new file mode 100644 index 00000000..a7a8346a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb.py @@ -0,0 +1,96 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=174)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='pytorchvideo.RandAugment'), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(weight_decay=0.0005) + +# runtime settings +work_dir = './work_dirs/tsm_r50_ptv_randaugment_1x1x8_50e_sthv1_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb.py new file mode 100644 index 00000000..83ba457b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb.py @@ -0,0 +1,96 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=174)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Imgaug', transforms='default'), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + twice_sample=True, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(weight_decay=0.0005) + +# runtime settings +work_dir = './work_dirs/tsm_r50_randaugment_1x1x8_50e_sthv1_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb.py new file mode 100644 index 00000000..6871f538 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_video_1x1x16_50e_diving48_rgb.py @@ -0,0 +1,102 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + backbone=dict(num_segments=16), + cls_head=dict(num_classes=48, num_segments=16)) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/diving48/videos' +data_root_val = 'data/diving48/videos' +ann_file_train = 'data/diving48/diving48_train_list_videos.txt' +ann_file_val = 'data/diving48/diving48_val_list_videos.txt' +ann_file_test = 'data/diving48/diving48_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=16), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=4, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=1, + metrics=['top_k_accuracy', 'mean_class_accuracy'], +) + +# optimizer +optimizer = dict( + lr=0.005, # this lr is used for 8 gpus +) +# runtime settings +checkpoint_config = dict(interval=1) +work_dir = './work_dirs/tsm_r50_video_1x1x16_50e_diving48_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb.py new file mode 100644 index 00000000..65609d21 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_video_1x1x8_50e_diving48_rgb.py @@ -0,0 +1,100 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=48)) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/diving48/videos' +data_root_val = 'data/diving48/videos' +ann_file_train = 'data/diving48/diving48_train_list_videos.txt' +ann_file_val = 'data/diving48/diving48_val_list_videos.txt' +ann_file_test = 'data/diving48/diving48_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=1, + metrics=['top_k_accuracy', 'mean_class_accuracy'], +) + +# optimizer +optimizer = dict( + lr=0.01, # this lr is used for 8 gpus +) +# runtime settings +checkpoint_config = dict(interval=1) +work_dir = './work_dirs/tsm_r50_video_1x1x8_50e_diving48_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_video_1x1x8_50e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_video_1x1x8_50e_kinetics400_rgb.py new file mode 100644 index 00000000..3e34c822 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_video_1x1x8_50e_kinetics400_rgb.py @@ -0,0 +1,94 @@ +_base_ = [ + '../../_base_/models/tsm_r50.py', '../../_base_/schedules/sgd_tsm_50e.py', + '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/kinetics400/videos_train' +data_root_val = 'data/kinetics400/videos_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_videos.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_videos.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + lr=0.02, # this lr is used for 8 gpus +) +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsm_r50_video_2d_1x1x8_50e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_video_inference_1x1x8_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_video_inference_1x1x8_100e_kinetics400_rgb.py new file mode 100644 index 00000000..7c355ade --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_r50_video_inference_1x1x8_100e_kinetics400_rgb.py @@ -0,0 +1,31 @@ +_base_ = ['../../_base_/models/tsm_r50.py'] + +# dataset settings +dataset_type = 'VideoDataset' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +test_pipeline = [ + dict(type='DecordInit', num_threads=1), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] + +data = dict( + videos_per_gpu=1, + workers_per_gpu=2, + test=dict( + type=dataset_type, + ann_file=None, + data_prefix=None, + pipeline=test_pipeline)) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_temporal_pool_r50_1x1x8_50e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_temporal_pool_r50_1x1x8_50e_kinetics400_rgb.py new file mode 100644 index 00000000..2984d379 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsm/tsm_temporal_pool_r50_1x1x8_50e_kinetics400_rgb.py @@ -0,0 +1,8 @@ +_base_ = ['./tsm_r50_1x1x8_50e_kinetics400_rgb.py'] + +# model settings +model = dict( + backbone=dict(temporal_pool=True), cls_head=dict(temporal_pool=True)) + +# runtime settings +work_dir = './work_dirs/tsm_temporal_pool_r50_1x1x8_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/README.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/README.md new file mode 100644 index 00000000..c3c01dc6 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/README.md @@ -0,0 +1,248 @@ +# TSN + +[Temporal segment networks: Towards good practices for deep action recognition](https://link.springer.com/chapter/10.1007/978-3-319-46484-8_2) + + + +## Abstract + + + +Deep convolutional networks have achieved great success for visual recognition in still images. However, for action recognition in videos, the advantage over traditional methods is not so evident. This paper aims to discover the principles to design effective ConvNet architectures for action recognition in videos and learn these models given limited training samples. Our first contribution is temporal segment network (TSN), a novel framework for video-based action recognition. which is based on the idea of long-range temporal structure modeling. It combines a sparse temporal sampling strategy and video-level supervision to enable efficient and effective learning using the whole action video. The other contribution is our study on a series of good practices in learning ConvNets on video data with the help of temporal segment network. Our approach obtains the state-the-of-art performance on the datasets of HMDB51 ( 69.4%) and UCF101 (94.2%). We also visualize the learned ConvNet models, which qualitatively demonstrates the effectiveness of temporal segment network and the proposed good practices. + + + +
+ +
+ +## Results and Models + +### UCF-101 + +| config | gpus | backbone | pretrain | top1 acc | top5 acc | gpu_mem(M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------- | :--: | :------: | :------: | :------: | :------: | :--------: | :---------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_1x1x3_75e_ucf101_rgb](/configs/recognition/tsn/tsn_r50_1x1x3_75e_ucf101_rgb.py) \[1\] | 8 | ResNet50 | ImageNet | 83.03 | 96.78 | 8332 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_75e_ucf101_rgb/tsn_r50_1x1x3_75e_ucf101_rgb_20201023-d85ab600.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_75e_ucf101_rgb/tsn_r50_1x1x3_75e_ucf101_rgb_20201023.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_75e_ucf101_rgb/tsn_r50_1x1x3_75e_ucf101_rgb_20201023.json) | + +\[1\] We report the performance on UCF-101 split1. + +### Diving48 + +| config | gpus | backbone | pretrain | top1 acc | top5 acc | gpu_mem(M) | ckpt | log | json | +| :----------------------------------------------------------------------------------------------------------- | :--: | :------: | :------: | :------: | :------: | :--------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_video_1x1x8_100e_diving48_rgb](/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_diving48_rgb.py) | 8 | ResNet50 | ImageNet | 71.27 | 95.74 | 5699 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_diving48_rgb/tsn_r50_video_1x1x8_100e_diving48_rgb_20210426-6dde0185.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_diving48_rgb/20210426_014138.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_diving48_rgb/20210426_014138.log.json) | +| [tsn_r50_video_1x1x16_100e_diving48_rgb](/configs/recognition/tsn/tsn_r50_video_1x1x16_100e_diving48_rgb.py) | 8 | ResNet50 | ImageNet | 76.75 | 96.95 | 5705 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x16_100e_diving48_rgb/tsn_r50_video_1x1x16_100e_diving48_rgb_20210426-63c5f2f7.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x16_100e_diving48_rgb/20210426_014103.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x16_100e_diving48_rgb/20210426_014103.log.json) | + +### HMDB51 + +| config | gpus | backbone | pretrain | top1 acc | top5 acc | gpu_mem(M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------- | :--: | :------: | :---------: | :------: | :------: | :--------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb](/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb.py) | 8 | ResNet50 | ImageNet | 48.95 | 80.19 | 21535 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb_20201123-ce6c27ed.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb/20201025_231108.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb/20201025_231108.log.json) | +| [tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb.py) | 8 | ResNet50 | Kinetics400 | 56.08 | 84.31 | 21535 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb_20201123-7f84701b.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb/20201108_190805.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb/20201108_190805.log.json) | +| [tsn_r50_1x1x8_50e_hmdb51_mit_rgb](/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_mit_rgb.py) | 8 | ResNet50 | Moments | 54.25 | 83.86 | 21535 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_mit_rgb/tsn_r50_1x1x8_50e_hmdb51_mit_rgb_20201123-01526d41.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_mit_rgb/20201112_170135.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_mit_rgb/20201112_170135.log.json) | + +### Kinetics-400 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | reference top1 acc | reference top5 acc | inference_time(video/s) | gpu_mem(M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------------------- | :------------: | :--: | :------: | :------: | :------: | :------: | :------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------: | :---------------------: | :--------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py) | 340x256 | 8 | ResNet50 | ImageNet | 70.60 | 89.26 | x | x | 4.3 (25x10 frames) | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/20200614_063526.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/20200614_063526.log.json) | +| [tsn_r50_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py) | short-side 256 | 8 | ResNet50 | ImageNet | 70.42 | 89.03 | x | x | x | 8343 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x3_100e_kinetics400_rgb/tsn_r50_256p_1x1x3_100e_kinetics400_rgb_20200725-22592236.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x3_100e_kinetics400_rgb/20200725_031325.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x3_100e_kinetics400_rgb/20200725_031325.log.json) | +| [tsn_r50_dense_1x1x5_50e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_dense_1x1x5_100e_kinetics400_rgb.py) | 340x256 | 8x3 | ResNet50 | ImageNet | 70.18 | 89.10 | [69.15](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [88.56](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 12.7 (8x10 frames) | 7028 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x5_100e_kinetics400_rgb/tsn_r50_dense_1x1x5_100e_kinetics400_rgb_20200627-a063165f.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x5_100e_kinetics400_rgb/20200627_105310.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x5_100e_kinetics400_rgb/20200627_105310.log.json) | +| [tsn_r50_320p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb.py) | short-side 320 | 8x2 | ResNet50 | ImageNet | 70.91 | 89.51 | x | x | 10.7 (25x3 frames) | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_320p_1x1x3_100e_kinetics400_rgb_20200702-cc665e2a.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_f3_kinetics400_shortedge_70.9_89.5.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_f3_kinetics400_shortedge_70.9_89.5.log.json) | +| [tsn_r50_320p_1x1x3_110e_kinetics400_flow](/configs/recognition/tsn/tsn_r50_320p_1x1x3_110e_kinetics400_flow.py) | short-side 320 | 8x2 | ResNet50 | ImageNet | 55.70 | 79.85 | x | x | x | 8471 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_110e_kinetics400_flow/tsn_r50_320p_1x1x3_110e_kinetics400_flow_20200705-3036bab6.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_110e_kinetics400_flow/tsn_r50_f3_kinetics400_flow_shortedge_55.7_79.9.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_110e_kinetics400_flow/tsn_r50_f3_kinetics400_flow_shortedge_55.7_79.9.log.json) | +| tsn_r50_320p_1x1x3_kinetics400_twostream \[1: 1\]\* | x | x | ResNet50 | ImageNet | 72.76 | 90.52 | x | x | x | x | x | x | x | +| [tsn_r50_1x1x8_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb.py) | short-side 256 | 8 | ResNet50 | ImageNet | 71.80 | 90.17 | x | x | x | 8343 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x8_100e_kinetics400_rgb/tsn_r50_256p_1x1x8_100e_kinetics400_rgb_20200817-883baf16.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x8_100e_kinetics400_rgb/20200815_173413.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x8_100e_kinetics400_rgb/20200815_173413.log.json) | +| [tsn_r50_320p_1x1x8_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb.py) | short-side 320 | 8x3 | ResNet50 | ImageNet | 72.41 | 90.55 | x | x | 11.1 (25x3 frames) | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb/tsn_r50_320p_1x1x8_100e_kinetics400_rgb_20200702-ef80e3d7.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb/tsn_r50_f8_kinetics400_shortedge_72.4_90.6.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb/tsn_r50_f8_kinetics400_shortedge_72.4_90.6.log.json) | +| [tsn_r50_320p_1x1x8_110e_kinetics400_flow](/configs/recognition/tsn/tsn_r50_320p_1x1x8_110e_kinetics400_flow.py) | short-side 320 | 8x4 | ResNet50 | ImageNet | 57.76 | 80.99 | x | x | x | 8473 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_110e_kinetics400_flow/tsn_r50_320p_1x1x8_110e_kinetics400_flow_20200705-1f39486b.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_110e_kinetics400_flow/tsn_r50_f8_kinetics400_flow_shortedge_57.8_81.0.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_110e_kinetics400_flow/tsn_r50_f8_kinetics400_flow_shortedge_57.8_81.0.log.json) | +| tsn_r50_320p_1x1x8_kinetics400_twostream \[1: 1\]\* | x | x | ResNet50 | ImageNet | 74.64 | 91.77 | x | x | x | x | x | x | x | +| [tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb.py) | short-side 320 | 8 | ResNet50 | ImageNet | 71.11 | 90.04 | x | x | x | 8343 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb_20201014-5ae1ee79.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb_20201014.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb_20201014.json) | +| [tsn_r50_dense_1x1x8_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_dense_1x1x8_100e_kinetics400_rgb.py) | 340x256 | 8 | ResNet50 | ImageNet | 70.77 | 89.3 | [68.75](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [88.42](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 12.2 (8x10 frames) | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x8_100e_kinetics400_rgb/tsn_r50_dense_1x1x8_100e_kinetics400_rgb_20200606-e925e6e3.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x8_100e_kinetics400_rgb/20200606_003901.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x8_100e_kinetics400_rgb/20200606_003901.log.json) | +| [tsn_r50_video_1x1x8_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb.py) | short-side 256 | 8 | ResNet50 | ImageNet | 71.14 | 89.63 | x | x | x | 21558 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb/tsn_r50_video_1x1x8_100e_kinetics400_rgb_20200702-568cde33.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb/tsn_r50_video_2d_1x1x8_100e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb/tsn_r50_video_2d_1x1x8_100e_kinetics400_rgb.log.json) | +| [tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb.py) | short-side 256 | 8 | ResNet50 | ImageNet | 70.40 | 89.12 | x | x | x | 21553 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb_20200703-0f19175f.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb/tsn_r50_video_2d_1x1x8_dense_100e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb/tsn_r50_video_2d_1x1x8_dense_100e_kinetics400_rgb.log.json) | + +Here, We use \[1: 1\] to indicate that we combine rgb and flow score with coefficients 1: 1 to get the two-stream prediction (without applying softmax). + +### Using backbones from 3rd-party in TSN + +It's possible and convenient to use a 3rd-party backbone for TSN under the framework of MMAction2, here we provide some examples for: + +- [x] Backbones from [MMClassification](https://github.com/open-mmlab/mmclassification/) +- [x] Backbones from [TorchVision](https://github.com/pytorch/vision/) +- [x] Backbones from [TIMM (pytorch-image-models)](https://github.com/rwightman/pytorch-image-models) + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | ckpt | log | json | +| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------: | :--: | :------------------------------------------------------------------------------------------------------: | :------: | :------: | :------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/custom_backbones/tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb.py) | short-side 320 | 8x2 | ResNeXt101-32x4d \[[MMCls](https://github.com/open-mmlab/mmclassification/tree/master/configs/resnext)\] | ImageNet | 73.43 | 91.01 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb-16a8b561.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb.json) | +| [tsn_dense161_320p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/custom_backbones/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb.py) | short-side 320 | 8x2 | Densenet-161 \[[TorchVision](https://github.com/pytorch/vision/)\] | ImageNet | 72.78 | 90.75 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb-cbe85332.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb.json) | +| [tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/custom_backbones/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb.py) | short-side 320 | 8 | Swin Transformer Base \[[timm](https://github.com/rwightman/pytorch-image-models)\] | ImageNet | 77.51 | 92.92 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb-805380f6.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb.json) | + +1. Note that some backbones in TIMM are not supported due to multiple reasons. Please refer to to [PR #880](https://github.com/open-mmlab/mmaction2/pull/880) for details. + +### Kinetics-400 Data Benchmark (8-gpus, ResNet50, ImageNet pretrain; 3 segments) + +In data benchmark, we compare: + +1. Different data preprocessing methods: (1) Resize video to 340x256, (2) Resize the short edge of video to 320px, (3) Resize the short edge of video to 256px; +2. Different data augmentation methods: (1) MultiScaleCrop, (2) RandomResizedCrop; +3. Different testing protocols: (1) 25 frames x 10 crops, (2) 25 frames x 3 crops. + +| config | resolution | training augmentation | testing protocol | top1 acc | top5 acc | ckpt | log | json | +| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------: | :-------------------: | :--------------: | :------: | :------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_multiscalecrop_340x256_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_340x256_1x1x3_100e_kinetics400_rgb.py) | 340x256 | MultiScaleCrop | 25x10 frames | 70.60 | 89.26 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/20200614_063526.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/20200614_063526.log.json) | +| x | 340x256 | MultiScaleCrop | 25x3 frames | 70.52 | 89.39 | x | x | x | +| [tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb.py) | 340x256 | RandomResizedCrop | 25x10 frames | 70.11 | 89.01 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb_20200725-88cb325a.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb_20200725.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb_20200725.json) | +| x | 340x256 | RandomResizedCrop | 25x3 frames | 69.95 | 89.02 | x | x | x | +| [tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb.py) | short-side 320 | MultiScaleCrop | 25x10 frames | 70.32 | 89.25 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb_20200725-9922802f.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb_20200725.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb_20200725.json) | +| x | short-side 320 | MultiScaleCrop | 25x3 frames | 70.54 | 89.39 | x | x | x | +| [tsn_r50_randomresizedcrop_320p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_320p_1x1x3_100e_kinetics400_rgb.py) | short-side 320 | RandomResizedCrop | 25x10 frames | 70.44 | 89.23 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_320p_1x1x3_100e_kinetics400_rgb_20200702-cc665e2a.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_f3_kinetics400_shortedge_70.9_89.5.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_f3_kinetics400_shortedge_70.9_89.5.log.json) | +| x | short-side 320 | RandomResizedCrop | 25x3 frames | 70.91 | 89.51 | x | x | x | +| [tsn_r50_multiscalecrop_256p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_256p_1x1x3_100e_kinetics400_rgb.py) | short-side 256 | MultiScaleCrop | 25x10 frames | 70.42 | 89.03 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x3_100e_kinetics400_rgb/tsn_r50_256p_1x1x3_100e_kinetics400_rgb_20200725-22592236.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x3_100e_kinetics400_rgb/20200725_031325.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x3_100e_kinetics400_rgb/20200725_031325.log.json) | +| x | short-side 256 | MultiScaleCrop | 25x3 frames | 70.79 | 89.42 | x | x | x | +| [tsn_r50_randomresizedcrop_256p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_256p_1x1x3_100e_kinetics400_rgb.py) | short-side 256 | RandomResizedCrop | 25x10 frames | 69.80 | 89.06 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_randomresize_1x1x3_100e_kinetics400_rgb/tsn_r50_256p_randomresize_1x1x3_100e_kinetics400_rgb_20200817-ae7963ca.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_randomresize_1x1x3_100e_kinetics400_rgb/20200815_172601.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_randomresize_1x1x3_100e_kinetics400_rgb/20200815_172601.log.json) | +| x | short-side 256 | RandomResizedCrop | 25x3 frames | 70.48 | 89.89 | x | x | x | + +### Kinetics-400 OmniSource Experiments + +| config | resolution | backbone | pretrain | w. OmniSource | top1 acc | top5 acc | inference_time(video/s) | gpu_mem(M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------: | :------------: | :------: | :---------: | :----------------: | :------: | :------: | :---------------------: | :--------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py) | 340x256 | ResNet50 | ImageNet | :x: | 70.6 | 89.3 | 4.3 (25x10 frames) | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/20200614_063526.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/20200614_063526.log.json) | +| x | 340x256 | ResNet50 | ImageNet | :heavy_check_mark: | 73.6 | 91.0 | x | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/omni/tsn_imagenet_pretrained_r50_omni_1x1x3_kinetics400_rgb_20200926-54192355.pth) | x | x | +| x | short-side 320 | ResNet50 | IG-1B \[1\] | :x: | 73.1 | 90.4 | x | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/omni/tsn_1G1B_pretrained_r50_without_omni_1x1x3_kinetics400_rgb_20200926-c133dd49.pth) | x | x | +| x | short-side 320 | ResNet50 | IG-1B \[1\] | :heavy_check_mark: | 75.7 | 91.9 | x | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/omni/tsn_1G1B_pretrained_r50_omni_1x1x3_kinetics400_rgb_20200926-2863fed0.pth) | x | x | + +\[1\] We obtain the pre-trained model from [torch-hub](https://pytorch.org/hub/facebookresearch_semi-supervised-ImageNet1K-models_resnext/), the pretrain model we used is `resnet50_swsl` + +### Kinetics-600 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | inference_time(video/s) | gpu_mem(M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------- | :------------: | :--: | :------: | :------: | :------: | :------: | :---------------------: | :--------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_video_1x1x8_100e_kinetics600_rgb](/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics600_rgb.py) | short-side 256 | 8x2 | ResNet50 | ImageNet | 74.8 | 92.3 | 11.1 (25x3 frames) | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics600_rgb/tsn_r50_video_1x1x8_100e_kinetics600_rgb_20201015-4db3c461.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics600_rgb/tsn_r50_video_1x1x8_100e_kinetics600_rgb_20201015.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics600_rgb/tsn_r50_video_1x1x8_100e_kinetics600_rgb_20201015.json) | + +### Kinetics-700 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | inference_time(video/s) | gpu_mem(M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------- | :------------: | :--: | :------: | :------: | :------: | :------: | :---------------------: | :--------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_video_1x1x8_100e_kinetics700_rgb](/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics700_rgb.py) | short-side 256 | 8x2 | ResNet50 | ImageNet | 61.7 | 83.6 | 11.1 (25x3 frames) | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics700_rgb/tsn_r50_video_1x1x8_100e_kinetics700_rgb_20201015-e381a6c7.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics700_rgb/tsn_r50_video_1x1x8_100e_kinetics700_rgb_20201015.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics700_rgb/tsn_r50_video_1x1x8_100e_kinetics700_rgb_20201015.json) | + +### Something-Something V1 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | reference top1 acc | reference top5 acc | gpu_mem(M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------- | :--------: | :--: | :------: | :------: | :------: | :------: | :------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------: | :--------: | :---------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_1x1x8_50e_sthv1_rgb](/configs/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb.py) | height 100 | 8 | ResNet50 | ImageNet | 18.55 | 44.80 | [17.53](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [44.29](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 10978 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb/tsn_r50_1x1x8_50e_sthv1_rgb_20200618-061b9195.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb/tsn_sthv1.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb/tsn_r50_f8_sthv1_18.1_45.0.log.json) | +| [tsn_r50_1x1x16_50e_sthv1_rgb](/configs/recognition/tsn/tsn_r50_1x1x16_50e_sthv1_rgb.py) | height 100 | 8 | ResNet50 | ImageNet | 15.77 | 39.85 | [13.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [35.58](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 5691 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv1_rgb/tsn_r50_1x1x16_50e_sthv1_rgb_20200614-7e2fe4f1.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv1_rgb/20200614_211932.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv1_rgb/20200614_211932.log.json) | + +### Something-Something V2 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | reference top1 acc | reference top5 acc | gpu_mem(M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------- | :--------: | :--: | :------: | :------: | :------: | :------: | :----------------: | :----------------: | :--------: | :---------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_1x1x8_50e_sthv2_rgb](/configs/recognition/tsn/tsn_r50_1x1x8_50e_sthv2_rgb.py) | height 256 | 8 | ResNet50 | ImageNet | 28.59 | 59.56 | x | x | 10966 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv2_rgb/tsn_r50_1x1x8_50e_sthv2_rgb_20210816-1aafee8f.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv2_rgb/20210816_221116.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv2_rgb/20210816_221116.log.json) | +| [tsn_r50_1x1x16_50e_sthv2_rgb](/configs/recognition/tsn/tsn_r50_1x1x16_50e_sthv2_rgb.py) | height 256 | 8 | ResNet50 | ImageNet | 20.89 | 49.16 | x | x | 8337 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv2_rgb/tsn_r50_1x1x16_50e_sthv2_rgb_20210816-5d23ac6e.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv2_rgb/20210816_225256.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv2_rgb/20210816_225256.log.json) | + +### Moments in Time + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | gpu_mem(M) | ckpt | log | json | +| :----------------------------------------------------------------------------------- | :------------: | :--: | :------: | :------: | :------: | :------: | :--------: | :-----------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_1x1x6_100e_mit_rgb](/configs/recognition/tsn/tsn_r50_1x1x6_100e_mit_rgb.py) | short-side 256 | 8x2 | ResNet50 | ImageNet | 26.84 | 51.6 | 8339 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x6_100e_mit_rgb/tsn_r50_1x1x6_100e_mit_rgb_20200618-d512ab1b.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x6_100e_mit_rgb/tsn_mit.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x6_100e_mit_rgb/tsn_r50_f6_mit_26.8_51.6.log.json) | + +### Multi-Moments in Time + +| config | resolution | gpus | backbone | pretrain | mAP | gpu_mem(M) | ckpt | log | json | +| :------------------------------------------------------------------------------------- | :------------: | :--: | :-------: | :------: | :---: | :--------: | :-------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r101_1x1x5_50e_mmit_rgb](/configs/recognition/tsn/tsn_r101_1x1x5_50e_mmit_rgb.py) | short-side 256 | 8x2 | ResNet101 | ImageNet | 61.09 | 10467 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r101_1x1x5_50e_mmit_rgb/tsn_r101_1x1x5_50e_mmit_rgb_20200618-642f450d.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r101_1x1x5_50e_mmit_rgb/tsn_mmit.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r101_1x1x5_50e_mmit_rgb/tsn_r101_f6_mmit_61.1.log.json) | + +### ActivityNet v1.3 + +| config | resolution | gpus | backbone | pretrain | top1 acc | top5 acc | gpu_mem(M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------------------- | :------------: | :--: | :------: | :---------: | :------: | :------: | :--------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_320p_1x1x8_50e_activitynet_video_rgb](/configs/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb.py) | short-side 320 | 8x1 | ResNet50 | Kinetics400 | 73.93 | 93.44 | 5692 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb_20210301-7f8da0c6.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb/20210228_223327.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb/20210228_223327.log.json) | +| [tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb](/configs/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb.py) | short-side 320 | 8x1 | ResNet50 | Kinetics400 | 76.90 | 94.47 | 5692 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb_20210301-c0f04a7e.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb/20210217_181313.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb/20210217_181313.log.json) | +| [tsn_r50_320p_1x1x8_150e_activitynet_video_flow](/configs/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_video_flow.py) | 340x256 | 8x2 | ResNet50 | Kinetics400 | 57.51 | 83.02 | 5780 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_video_flow/tsn_r50_320p_1x1x8_150e_activitynet_video_flow_20200804-13313f52.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_video_flow/tsn_r50_320p_1x1x8_150e_activitynet_video_flow_20200804.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_video_flow/tsn_r50_320p_1x1x8_150e_activitynet_video_flow_20200804.json) | +| [tsn_r50_320p_1x1x8_150e_activitynet_clip_flow](/configs/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow.py) | 340x256 | 8x2 | ResNet50 | Kinetics400 | 59.51 | 82.69 | 5780 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow_20200804-8622cf38.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow_20200804.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow_20200804.json) | + +### HVU + +| config\[1\] | tag category | resolution | gpus | backbone | pretrain | mAP | HATNet\[2\] | HATNet-multi\[2\] | ckpt | log | json | +| :----------------------------------------------------------------------------------------------------------: | :----------: | :------------: | :--: | :------: | :------: | :--: | :---------: | :---------------: | :--------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r18_1x1x8_100e_hvu_action_rgb](/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_action_rgb.py) | action | short-side 256 | 8x2 | ResNet18 | ImageNet | 57.5 | 51.8 | 53.5 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/action/tsn_r18_1x1x8_100e_hvu_action_rgb_20201027-011b282b.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/action/tsn_r18_1x1x8_100e_hvu_action_rgb_20201027.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/action/tsn_r18_1x1x8_100e_hvu_action_rgb_20201027.json) | +| [tsn_r18_1x1x8_100e_hvu_scene_rgb](/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_scene_rgb.py) | scene | short-side 256 | 8 | ResNet18 | ImageNet | 55.2 | 55.8 | 57.2 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/scene/tsn_r18_1x1x8_100e_hvu_scene_rgb_20201027-00e5748d.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/scene/tsn_r18_1x1x8_100e_hvu_scene_rgb_20201027.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/scene/tsn_r18_1x1x8_100e_hvu_scene_rgb_20201027.json) | +| [tsn_r18_1x1x8_100e_hvu_object_rgb](/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_object_rgb.py) | object | short-side 256 | 8 | ResNet18 | ImageNet | 45.7 | 34.2 | 35.1 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/object/tsn_r18_1x1x8_100e_hvu_object_rgb_20201102-24a22f30.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/object/tsn_r18_1x1x8_100e_hvu_object_rgb_20201027.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/object/tsn_r18_1x1x8_100e_hvu_object_rgb_20201027.json) | +| [tsn_r18_1x1x8_100e_hvu_event_rgb](/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_event_rgb.py) | event | short-side 256 | 8 | ResNet18 | ImageNet | 63.7 | 38.5 | 39.8 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/event/tsn_r18_1x1x8_100e_hvu_event_rgb_20201027-dea8cd71.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/event/tsn_r18_1x1x8_100e_hvu_event_rgb_20201027.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/event/tsn_r18_1x1x8_100e_hvu_event_rgb_20201027.json) | +| [tsn_r18_1x1x8_100e_hvu_concept_rgb](/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_concept_rgb.py) | concept | short-side 256 | 8 | ResNet18 | ImageNet | 47.5 | 26.1 | 27.3 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/concept/tsn_r18_1x1x8_100e_hvu_concept_rgb_20201027-fc1dd8e3.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/concept/tsn_r18_1x1x8_100e_hvu_concept_rgb_20201027.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/concept/tsn_r18_1x1x8_100e_hvu_concept_rgb_20201027.json) | +| [tsn_r18_1x1x8_100e_hvu_attribute_rgb](/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_attribute_rgb.py) | attribute | short-side 256 | 8 | ResNet18 | ImageNet | 46.1 | 33.6 | 34.9 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/attribute/tsn_r18_1x1x8_100e_hvu_attribute_rgb_20201027-0b3b49d2.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/attribute/tsn_r18_1x1x8_100e_hvu_attribute_rgb_20201027.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/attribute/tsn_r18_1x1x8_100e_hvu_attribute_rgb_20201027.json) | +| - | Overall | short-side 256 | - | ResNet18 | ImageNet | 52.6 | 40.0 | 41.3 | - | - | - | + +\[1\] For simplicity, we train a specific model for each tag category as the baselines for HVU. + +\[2\] The performance of HATNet and HATNet-multi are from the paper [Large Scale Holistic Video Understanding](https://pages.iai.uni-bonn.de/gall_juergen/download/HVU_eccv20.pdf). The proposed HATNet is a 2 branch Convolution Network (one 2D branch, one 3D branch) and share the same backbone(ResNet18) with us. The inputs of HATNet are 16 or 32 frames long video clips (which is much larger than us), while the input resolution is coarser (112 instead of 224). HATNet is trained on each individual task (each tag category) while HATNet-multi is trained on multiple tasks. Since there is no released codes or models for the HATNet, we just include the performance reported by the original paper. + +:::{note} + +1. The **gpus** indicates the number of gpu we used to get the checkpoint. It is noteworthy that the configs we provide are used for 8 gpus as default. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. +2. The **inference_time** is got by this [benchmark script](/tools/analysis/benchmark.py), where we use the sampling frames strategy of the test setting and only care about the model inference time, + not including the IO time and pre-processing time. For each setting, we use 1 gpu and set batch size (videos per gpu) to 1 to calculate the inference time. +3. The values in columns named after "reference" are the results got by training on the original repo, using the same model settings. +4. The validation set of Kinetics400 we used consists of 19796 videos. These videos are available at [Kinetics400-Validation](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB). The corresponding [data list](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (each line is of the format 'video_id, num_frames, label_index') and the [label map](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) are also available. + +::: + +For more details on data preparation, you can refer to + +- [preparing_ucf101](/tools/data/ucf101/README.md) +- [preparing_kinetics](/tools/data/kinetics/README.md) +- [preparing_sthv1](/tools/data/sthv1/README.md) +- [preparing_sthv2](/tools/data/sthv2/README.md) +- [preparing_mit](/tools/data/mit/README.md) +- [preparing_mmit](/tools/data/mmit/README.md) +- [preparing_hvu](/tools/data/hvu/README.md) +- [preparing_hmdb51](/tools/data/hmdb51/README.md) + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train TSN model on Kinetics-400 dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py \ + --work-dir work_dirs/tsn_r50_1x1x3_100e_kinetics400_rgb \ + --validate --seed 0 --deterministic +``` + +For more details, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test TSN model on Kinetics-400 dataset and dump the result to a json file. + +```shell +python tools/test.py configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@inproceedings{wang2016temporal, + title={Temporal segment networks: Towards good practices for deep action recognition}, + author={Wang, Limin and Xiong, Yuanjun and Wang, Zhe and Qiao, Yu and Lin, Dahua and Tang, Xiaoou and Van Gool, Luc}, + booktitle={European conference on computer vision}, + pages={20--36}, + year={2016}, + organization={Springer} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/README_zh-CN.md new file mode 100644 index 00000000..6c57c3d4 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/README_zh-CN.md @@ -0,0 +1,234 @@ +# TSN + +## 简介 + + + +```BibTeX +@inproceedings{wang2016temporal, + title={Temporal segment networks: Towards good practices for deep action recognition}, + author={Wang, Limin and Xiong, Yuanjun and Wang, Zhe and Qiao, Yu and Lin, Dahua and Tang, Xiaoou and Van Gool, Luc}, + booktitle={European conference on computer vision}, + pages={20--36}, + year={2016}, + organization={Springer} +} +``` + +## 模型库 + +### UCF-101 + +| 配置文件 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | GPU 显存占用 (M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------- | :------: | :------: | :------: | :---------: | :---------: | :--------------: | :---------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_1x1x3_75e_ucf101_rgb](/configs/recognition/tsn/tsn_r50_1x1x3_75e_ucf101_rgb.py) \[1\] | 8 | ResNet50 | ImageNet | 83.03 | 96.78 | 8332 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_75e_ucf101_rgb/tsn_r50_1x1x3_75e_ucf101_rgb_20201023-d85ab600.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_75e_ucf101_rgb/tsn_r50_1x1x3_75e_ucf101_rgb_20201023.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_75e_ucf101_rgb/tsn_r50_1x1x3_75e_ucf101_rgb_20201023.json) | + +\[1\] 这里汇报的是 UCF-101 的 split1 部分的结果。 + +### Diving48 + +| 配置文件 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | GPU 显存占用 (M) | ckpt | log | json | +| :----------------------------------------------------------------------------------------------------------- | :------: | :------: | :------: | :---------: | :---------: | :--------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_video_1x1x8_100e_diving48_rgb](/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_diving48_rgb.py) | 8 | ResNet50 | ImageNet | 71.27 | 95.74 | 5699 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_diving48_rgb/tsn_r50_video_1x1x8_100e_diving48_rgb_20210426-6dde0185.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_diving48_rgb/20210426_014138.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_diving48_rgb/20210426_014138.log.json) | +| [tsn_r50_video_1x1x16_100e_diving48_rgb](/configs/recognition/tsn/tsn_r50_video_1x1x16_100e_diving48_rgb.py) | 8 | ResNet50 | ImageNet | 76.75 | 96.95 | 5705 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x16_100e_diving48_rgb/tsn_r50_video_1x1x16_100e_diving48_rgb_20210426-63c5f2f7.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x16_100e_diving48_rgb/20210426_014103.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x16_100e_diving48_rgb/20210426_014103.log.json) | + +### HMDB51 + +| 配置文件 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | GPU 显存占用 (M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------- | :------: | :------: | :---------: | :---------: | :---------: | :--------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb](/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb.py) | 8 | ResNet50 | ImageNet | 48.95 | 80.19 | 21535 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb_20201123-ce6c27ed.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb/20201025_231108.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb/20201025_231108.log.json) | +| [tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb.py) | 8 | ResNet50 | Kinetics400 | 56.08 | 84.31 | 21535 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb_20201123-7f84701b.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb/20201108_190805.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb/20201108_190805.log.json) | +| [tsn_r50_1x1x8_50e_hmdb51_mit_rgb](/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_mit_rgb.py) | 8 | ResNet50 | Moments | 54.25 | 83.86 | 21535 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_mit_rgb/tsn_r50_1x1x8_50e_hmdb51_mit_rgb_20201123-01526d41.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_mit_rgb/20201112_170135.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_mit_rgb/20201112_170135.log.json) | + +### Kinetics-400 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 参考代码的 top1 准确率 | 参考代码的 top5 准确率 | 推理时间 (video/s) | GPU 显存占用 (M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :------: | :------: | :---------: | :---------: | :------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------: | :----------------: | :--------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py) | 340x256 | 8 | ResNet50 | ImageNet | 70.60 | 89.26 | x | x | 4.3 (25x10 frames) | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/20200614_063526.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/20200614_063526.log.json) | +| [tsn_r50_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py) | 短边 256 | 8 | ResNet50 | ImageNet | 70.42 | 89.03 | x | x | x | 8343 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x3_100e_kinetics400_rgb/tsn_r50_256p_1x1x3_100e_kinetics400_rgb_20200725-22592236.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x3_100e_kinetics400_rgb/20200725_031325.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x3_100e_kinetics400_rgb/20200725_031325.log.json) | +| [tsn_r50_dense_1x1x5_50e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_dense_1x1x5_100e_kinetics400_rgb.py) | 340x256 | 8x3 | ResNet50 | ImageNet | 70.18 | 89.10 | [69.15](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [88.56](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 12.7 (8x10 frames) | 7028 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x5_100e_kinetics400_rgb/tsn_r50_dense_1x1x5_100e_kinetics400_rgb_20200627-a063165f.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x5_100e_kinetics400_rgb/20200627_105310.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x5_100e_kinetics400_rgb/20200627_105310.log.json) | +| [tsn_r50_320p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb.py) | 短边 320 | 8x2 | ResNet50 | ImageNet | 70.91 | 89.51 | x | x | 10.7 (25x3 frames) | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_320p_1x1x3_100e_kinetics400_rgb_20200702-cc665e2a.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_f3_kinetics400_shortedge_70.9_89.5.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_f3_kinetics400_shortedge_70.9_89.5.log.json) | +| [tsn_r50_320p_1x1x3_110e_kinetics400_flow](/configs/recognition/tsn/tsn_r50_320p_1x1x3_110e_kinetics400_flow.py) | 短边 320 | 8x2 | ResNet50 | ImageNet | 55.70 | 79.85 | x | x | x | 8471 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_110e_kinetics400_flow/tsn_r50_320p_1x1x3_110e_kinetics400_flow_20200705-3036bab6.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_110e_kinetics400_flow/tsn_r50_f3_kinetics400_flow_shortedge_55.7_79.9.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_110e_kinetics400_flow/tsn_r50_f3_kinetics400_flow_shortedge_55.7_79.9.log.json) | +| tsn_r50_320p_1x1x3_kinetics400_twostream \[1: 1\]\* | x | x | ResNet50 | ImageNet | 72.76 | 90.52 | x | x | x | x | x | x | x | +| [tsn_r50_1x1x8_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb.py) | 短边 256 | 8 | ResNet50 | ImageNet | 71.80 | 90.17 | x | x | x | 8343 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x8_100e_kinetics400_rgb/tsn_r50_256p_1x1x8_100e_kinetics400_rgb_20200817-883baf16.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x8_100e_kinetics400_rgb/20200815_173413.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x8_100e_kinetics400_rgb/20200815_173413.log.json) | +| [tsn_r50_320p_1x1x8_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb.py) | 短边 320 | 8x3 | ResNet50 | ImageNet | 72.41 | 90.55 | x | x | 11.1 (25x3 frames) | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb/tsn_r50_320p_1x1x8_100e_kinetics400_rgb_20200702-ef80e3d7.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb/tsn_r50_f8_kinetics400_shortedge_72.4_90.6.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb/tsn_r50_f8_kinetics400_shortedge_72.4_90.6.log.json) | +| [tsn_r50_320p_1x1x8_110e_kinetics400_flow](/configs/recognition/tsn/tsn_r50_320p_1x1x8_110e_kinetics400_flow.py) | 短边 320 | 8x4 | ResNet50 | ImageNet | 57.76 | 80.99 | x | x | x | 8473 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_110e_kinetics400_flow/tsn_r50_320p_1x1x8_110e_kinetics400_flow_20200705-1f39486b.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_110e_kinetics400_flow/tsn_r50_f8_kinetics400_flow_shortedge_57.8_81.0.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_110e_kinetics400_flow/tsn_r50_f8_kinetics400_flow_shortedge_57.8_81.0.log.json) | +| tsn_r50_320p_1x1x8_kinetics400_twostream \[1: 1\]\* | x | x | ResNet50 | ImageNet | 74.64 | 91.77 | x | x | x | x | x | x | x | +| [tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb.py) | 短边 320 | 8 | ResNet50 | ImageNet | 71.11 | 90.04 | x | x | x | 8343 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb_20201014-5ae1ee79.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb_20201014.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb_20201014.json) | +| [tsn_r50_dense_1x1x8_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_dense_1x1x8_100e_kinetics400_rgb.py) | 340x256 | 8 | ResNet50 | ImageNet | 70.77 | 89.3 | [68.75](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [88.42](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 12.2 (8x10 frames) | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x8_100e_kinetics400_rgb/tsn_r50_dense_1x1x8_100e_kinetics400_rgb_20200606-e925e6e3.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x8_100e_kinetics400_rgb/20200606_003901.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x8_100e_kinetics400_rgb/20200606_003901.log.json) | +| [tsn_r50_video_1x1x8_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb.py) | 短边 256 | 8 | ResNet50 | ImageNet | 71.14 | 89.63 | x | x | x | 21558 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb/tsn_r50_video_1x1x8_100e_kinetics400_rgb_20200702-568cde33.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb/tsn_r50_video_2d_1x1x8_100e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb/tsn_r50_video_2d_1x1x8_100e_kinetics400_rgb.log.json) | +| [tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb.py) | 短边 256 | 8 | ResNet50 | ImageNet | 70.40 | 89.12 | x | x | x | 21553 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb_20200703-0f19175f.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb/tsn_r50_video_2d_1x1x8_dense_100e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb/tsn_r50_video_2d_1x1x8_dense_100e_kinetics400_rgb.log.json) | + +这里,MMAction2 使用 \[1: 1\] 表示以 1: 1 的比例融合 RGB 和光流两分支的融合结果(融合前不经过 softmax) + +### 在 TSN 模型中使用第三方的主干网络 + +用户可在 MMAction2 的框架中使用第三方的主干网络训练 TSN,例如: + +- [x] MMClassification 中的主干网络 +- [x] TorchVision 中的主干网络 +- [x] pytorch-image-models(timm) 中的主干网络 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | ckpt | log | json | +| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------: | :------: | :------------------------------------------------------------------------------------------------------: | :------: | :---------: | :---------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/custom_backbones/tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb.py) | 短边 320 | 8x2 | ResNeXt101-32x4d \[[MMCls](https://github.com/open-mmlab/mmclassification/tree/master/configs/resnext)\] | ImageNet | 73.43 | 91.01 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb-16a8b561.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb.json) | +| [tsn_dense161_320p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/custom_backbones/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb.py) | 短边 320 | 8x2 | Densenet-161 \[[TorchVision](https://github.com/pytorch/vision/)\] | ImageNet | 72.78 | 90.75 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb-cbe85332.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb.json) | +| [tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/custom_backbones/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb.py) | short-side 320 | 8 | Swin Transformer Base \[[timm](https://github.com/rwightman/pytorch-image-models)\] | ImageNet | 77.51 | 92.92 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb-805380f6.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb.json) | + +1. 由于多种原因,TIMM 中的一些模型未能收到支持,详情请参考 [PR #880](https://github.com/open-mmlab/mmaction2/pull/880)。 + +### Kinetics-400 数据基准测试 (8 块 GPU, ResNet50, ImageNet 预训练; 3 个视频段) + +在数据基准测试中,比较: + +1. 不同的数据预处理方法:(1) 视频分辨率为 340x256, (2) 视频分辨率为短边 320px, (3) 视频分辨率为短边 256px; +2. 不同的数据增强方法:(1) MultiScaleCrop, (2) RandomResizedCrop; +3. 不同的测试方法:(1) 25 帧 x 10 裁剪片段, (2) 25 frames x 3 裁剪片段. + +| 配置文件 | 分辨率 | 训练时的数据增强 | 测试时的策略 | top1 准确率 | top5 准确率 | ckpt | log | json | +| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------: | :---------------: | :----------: | :---------: | :---------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_multiscalecrop_340x256_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_340x256_1x1x3_100e_kinetics400_rgb.py) | 340x256 | MultiScaleCrop | 25x10 frames | 70.60 | 89.26 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/20200614_063526.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/20200614_063526.log.json) | +| x | 340x256 | MultiScaleCrop | 25x3 frames | 70.52 | 89.39 | x | x | x | +| [tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb.py) | 340x256 | RandomResizedCrop | 25x10 frames | 70.11 | 89.01 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb_20200725-88cb325a.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb_20200725.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb_20200725.json) | +| x | 340x256 | RandomResizedCrop | 25x3 frames | 69.95 | 89.02 | x | x | x | +| [tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb.py) | 短边 320 | MultiScaleCrop | 25x10 frames | 70.32 | 89.25 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb_20200725-9922802f.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb_20200725.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb_20200725.json) | +| x | 短边 320 | MultiScaleCrop | 25x3 frames | 70.54 | 89.39 | x | x | x | +| [tsn_r50_randomresizedcrop_320p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_320p_1x1x3_100e_kinetics400_rgb.py) | 短边 320 | RandomResizedCrop | 25x10 frames | 70.44 | 89.23 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_320p_1x1x3_100e_kinetics400_rgb_20200702-cc665e2a.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_f3_kinetics400_shortedge_70.9_89.5.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_f3_kinetics400_shortedge_70.9_89.5.log.json) | +| x | 短边 320 | RandomResizedCrop | 25x3 frames | 70.91 | 89.51 | x | x | x | +| [tsn_r50_multiscalecrop_256p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_256p_1x1x3_100e_kinetics400_rgb.py) | 短边 256 | MultiScaleCrop | 25x10 frames | 70.42 | 89.03 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x3_100e_kinetics400_rgb/tsn_r50_256p_1x1x3_100e_kinetics400_rgb_20200725-22592236.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x3_100e_kinetics400_rgb/20200725_031325.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x3_100e_kinetics400_rgb/20200725_031325.log.json) | +| x | 短边 256 | MultiScaleCrop | 25x3 frames | 70.79 | 89.42 | x | x | x | +| [tsn_r50_randomresizedcrop_256p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_256p_1x1x3_100e_kinetics400_rgb.py) | 短边 256 | RandomResizedCrop | 25x10 frames | 69.80 | 89.06 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_randomresize_1x1x3_100e_kinetics400_rgb/tsn_r50_256p_randomresize_1x1x3_100e_kinetics400_rgb_20200817-ae7963ca.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_randomresize_1x1x3_100e_kinetics400_rgb/20200815_172601.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_randomresize_1x1x3_100e_kinetics400_rgb/20200815_172601.log.json) | +| x | 短边 256 | RandomResizedCrop | 25x3 frames | 70.48 | 89.89 | x | x | x | + +### Kinetics-400 OmniSource 实验 + +| 配置文件 | 分辨率 | 主干网络 | 预训练 | w. OmniSource | top1 准确率 | top5 准确率 | 推理时间 (video/s) | GPU 显存占用 (M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------: | :------: | :------: | :---------: | :----------------: | :---------: | :---------: | :----------------: | :--------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py) | 340x256 | ResNet50 | ImageNet | :x: | 70.6 | 89.3 | 4.3 (25x10 frames) | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/20200614_063526.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/20200614_063526.log.json) | +| x | 340x256 | ResNet50 | ImageNet | :heavy_check_mark: | 73.6 | 91.0 | x | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/omni/tsn_imagenet_pretrained_r50_omni_1x1x3_kinetics400_rgb_20200926-54192355.pth) | x | x | +| x | 短边 320 | ResNet50 | IG-1B \[1\] | :x: | 73.1 | 90.4 | x | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/omni/tsn_1G1B_pretrained_r50_without_omni_1x1x3_kinetics400_rgb_20200926-c133dd49.pth) | x | x | +| x | 短边 320 | ResNet50 | IG-1B \[1\] | :heavy_check_mark: | 75.7 | 91.9 | x | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/omni/tsn_1G1B_pretrained_r50_omni_1x1x3_kinetics400_rgb_20200926-2863fed0.pth) | x | x | + +\[1\] MMAction2 使用 [torch-hub](https://pytorch.org/hub/facebookresearch_semi-supervised-ImageNet1K-models_resnext/) 提供的 `resnet50_swsl` 预训练模型。 + +### Kinetics-600 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 推理时间 (video/s) | GPU 显存占用 (M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------- | :------: | :------: | :------: | :------: | :---------: | :---------: | :----------------: | :--------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_video_1x1x8_100e_kinetics600_rgb](/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics600_rgb.py) | 短边 256 | 8x2 | ResNet50 | ImageNet | 74.8 | 92.3 | 11.1 (25x3 frames) | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics600_rgb/tsn_r50_video_1x1x8_100e_kinetics600_rgb_20201015-4db3c461.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics600_rgb/tsn_r50_video_1x1x8_100e_kinetics600_rgb_20201015.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics600_rgb/tsn_r50_video_1x1x8_100e_kinetics600_rgb_20201015.json) | + +### Kinetics-700 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 推理时间 (video/s) | GPU 显存占用 (M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------- | :------: | :------: | :------: | :------: | :---------: | :---------: | :----------------: | :--------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_video_1x1x8_100e_kinetics700_rgb](/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics700_rgb.py) | 短边 256 | 8x2 | ResNet50 | ImageNet | 61.7 | 83.6 | 11.1 (25x3 frames) | 8344 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics700_rgb/tsn_r50_video_1x1x8_100e_kinetics700_rgb_20201015-e381a6c7.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics700_rgb/tsn_r50_video_1x1x8_100e_kinetics700_rgb_20201015.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics700_rgb/tsn_r50_video_1x1x8_100e_kinetics700_rgb_20201015.json) | + +### Something-Something V1 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 参考代码的 top1 准确率 | 参考代码的 top5 准确率 | GPU 显存占用 (M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------- | :----: | :------: | :------: | :------: | :---------: | :---------: | :------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------: | :--------------: | :---------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_1x1x8_50e_sthv1_rgb](/configs/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb.py) | 高 100 | 8 | ResNet50 | ImageNet | 18.55 | 44.80 | [17.53](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [44.29](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 10978 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb/tsn_r50_1x1x8_50e_sthv1_rgb_20200618-061b9195.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb/tsn_sthv1.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb/tsn_r50_f8_sthv1_18.1_45.0.log.json) | +| [tsn_r50_1x1x16_50e_sthv1_rgb](/configs/recognition/tsn/tsn_r50_1x1x16_50e_sthv1_rgb.py) | 高 100 | 8 | ResNet50 | ImageNet | 15.77 | 39.85 | [13.33](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | [35.58](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd#training) | 5691 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv1_rgb/tsn_r50_1x1x16_50e_sthv1_rgb_20200614-7e2fe4f1.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv1_rgb/20200614_211932.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv1_rgb/20200614_211932.log.json) | + +### Something-Something V2 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | 参考代码的 top1 准确率 | 参考代码的 top5 准确率 | GPU 显存占用 (M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------- | :----: | :------: | :------: | :------: | :---------: | :---------: | :--------------------: | :--------------------: | :--------------: | :---------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_1x1x8_50e_sthv2_rgb](/configs/recognition/tsn/tsn_r50_1x1x8_50e_sthv2_rgb.py) | 高 256 | 8 | ResNet50 | ImageNet | 28.59 | 59.56 | x | x | 10966 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv2_rgb/tsn_r50_1x1x8_50e_sthv2_rgb_20210816-1aafee8f.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv2_rgb/20210816_221116.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv2_rgb/20210816_221116.log.json) | +| [tsn_r50_1x1x16_50e_sthv2_rgb](/configs/recognition/tsn/tsn_r50_1x1x16_50e_sthv2_rgb.py) | 高 256 | 8 | ResNet50 | ImageNet | 20.89 | 49.16 | x | x | 8337 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv2_rgb/tsn_r50_1x1x16_50e_sthv2_rgb_20210816-5d23ac6e.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv2_rgb/20210816_225256.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv2_rgb/20210816_225256.log.json) | + +### Moments in Time + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | GPU 显存占用 (M) | ckpt | log | json | +| :----------------------------------------------------------------------------------- | :------: | :------: | :------: | :------: | :---------: | :---------: | :--------------: | :-----------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_1x1x6_100e_mit_rgb](/configs/recognition/tsn/tsn_r50_1x1x6_100e_mit_rgb.py) | 短边 256 | 8x2 | ResNet50 | ImageNet | 26.84 | 51.6 | 8339 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x6_100e_mit_rgb/tsn_r50_1x1x6_100e_mit_rgb_20200618-d512ab1b.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x6_100e_mit_rgb/tsn_mit.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x6_100e_mit_rgb/tsn_r50_f6_mit_26.8_51.6.log.json) | + +### Multi-Moments in Time + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | mAP | GPU 显存占用 (M) | ckpt | log | json | +| :------------------------------------------------------------------------------------- | :------: | :------: | :-------: | :------: | :---: | :--------------: | :-------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r101_1x1x5_50e_mmit_rgb](/configs/recognition/tsn/tsn_r101_1x1x5_50e_mmit_rgb.py) | 短边 256 | 8x2 | ResNet101 | ImageNet | 61.09 | 10467 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r101_1x1x5_50e_mmit_rgb/tsn_r101_1x1x5_50e_mmit_rgb_20200618-642f450d.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r101_1x1x5_50e_mmit_rgb/tsn_mmit.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r101_1x1x5_50e_mmit_rgb/tsn_r101_f6_mmit_61.1.log.json) | + +### ActivityNet v1.3 + +| 配置文件 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | top1 准确率 | top5 准确率 | GPU 显存占用 (M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :------: | :---------: | :---------: | :---------: | :--------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r50_320p_1x1x8_50e_activitynet_video_rgb](/configs/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb.py) | 短边 320 | 8x1 | ResNet50 | Kinetics400 | 73.93 | 93.44 | 5692 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb_20210301-7f8da0c6.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb/20210228_223327.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb/20210228_223327.log.json) | +| [tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb](/configs/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb.py) | 短边 320 | 8x1 | ResNet50 | Kinetics400 | 76.90 | 94.47 | 5692 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb_20210301-c0f04a7e.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb/20210217_181313.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb/20210217_181313.log.json) | +| [tsn_r50_320p_1x1x8_150e_activitynet_video_flow](/configs/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_video_flow.py) | 340x256 | 8x2 | ResNet50 | Kinetics400 | 57.51 | 83.02 | 5780 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_video_flow/tsn_r50_320p_1x1x8_150e_activitynet_video_flow_20200804-13313f52.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_video_flow/tsn_r50_320p_1x1x8_150e_activitynet_video_flow_20200804.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_video_flow/tsn_r50_320p_1x1x8_150e_activitynet_video_flow_20200804.json) | +| [tsn_r50_320p_1x1x8_150e_activitynet_clip_flow](/configs/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow.py) | 340x256 | 8x2 | ResNet50 | Kinetics400 | 59.51 | 82.69 | 5780 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow_20200804-8622cf38.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow_20200804.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow_20200804.json) | + +### HVU + +| 配置文件\[1\] | tag 类别 | 分辨率 | GPU 数量 | 主干网络 | 预训练 | mAP | HATNet\[2\] | HATNet-multi\[2\] | ckpt | log | json | +| :----------------------------------------------------------------------------------------------------------: | :-------: | :------: | :------: | :------: | :------: | :--: | :---------: | :---------------: | :--------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r18_1x1x8_100e_hvu_action_rgb](/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_action_rgb.py) | action | 短边 256 | 8x2 | ResNet18 | ImageNet | 57.5 | 51.8 | 53.5 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/action/tsn_r18_1x1x8_100e_hvu_action_rgb_20201027-011b282b.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/action/tsn_r18_1x1x8_100e_hvu_action_rgb_20201027.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/action/tsn_r18_1x1x8_100e_hvu_action_rgb_20201027.json) | +| [tsn_r18_1x1x8_100e_hvu_scene_rgb](/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_scene_rgb.py) | scene | 短边 256 | 8 | ResNet18 | ImageNet | 55.2 | 55.8 | 57.2 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/scene/tsn_r18_1x1x8_100e_hvu_scene_rgb_20201027-00e5748d.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/scene/tsn_r18_1x1x8_100e_hvu_scene_rgb_20201027.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/scene/tsn_r18_1x1x8_100e_hvu_scene_rgb_20201027.json) | +| [tsn_r18_1x1x8_100e_hvu_object_rgb](/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_object_rgb.py) | object | 短边 256 | 8 | ResNet18 | ImageNet | 45.7 | 34.2 | 35.1 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/object/tsn_r18_1x1x8_100e_hvu_object_rgb_20201102-24a22f30.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/object/tsn_r18_1x1x8_100e_hvu_object_rgb_20201027.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/object/tsn_r18_1x1x8_100e_hvu_object_rgb_20201027.json) | +| [tsn_r18_1x1x8_100e_hvu_event_rgb](/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_event_rgb.py) | event | 短边 256 | 8 | ResNet18 | ImageNet | 63.7 | 38.5 | 39.8 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/event/tsn_r18_1x1x8_100e_hvu_event_rgb_20201027-dea8cd71.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/event/tsn_r18_1x1x8_100e_hvu_event_rgb_20201027.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/event/tsn_r18_1x1x8_100e_hvu_event_rgb_20201027.json) | +| [tsn_r18_1x1x8_100e_hvu_concept_rgb](/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_concept_rgb.py) | concept | 短边 256 | 8 | ResNet18 | ImageNet | 47.5 | 26.1 | 27.3 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/concept/tsn_r18_1x1x8_100e_hvu_concept_rgb_20201027-fc1dd8e3.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/concept/tsn_r18_1x1x8_100e_hvu_concept_rgb_20201027.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/concept/tsn_r18_1x1x8_100e_hvu_concept_rgb_20201027.json) | +| [tsn_r18_1x1x8_100e_hvu_attribute_rgb](/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_attribute_rgb.py) | attribute | 短边 256 | 8 | ResNet18 | ImageNet | 46.1 | 33.6 | 34.9 | [ckpt](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/attribute/tsn_r18_1x1x8_100e_hvu_attribute_rgb_20201027-0b3b49d2.pth) | [log](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/attribute/tsn_r18_1x1x8_100e_hvu_attribute_rgb_20201027.log) | [json](https://download.openmmlab.com/mmaction/recognition/tsn/hvu/attribute/tsn_r18_1x1x8_100e_hvu_attribute_rgb_20201027.json) | +| - | 所有 tag | 短边 256 | - | ResNet18 | ImageNet | 52.6 | 40.0 | 41.3 | - | - | - | + +\[1\] 简单起见,MMAction2 对每个 tag 类别训练特定的模型,作为 HVU 的基准模型。 + +\[2\] 这里 HATNet 和 HATNet-multi 的结果来自于 paper: [Large Scale Holistic Video Understanding](https://pages.iai.uni-bonn.de/gall_juergen/download/HVU_eccv20.pdf)。 +HATNet 的时序动作候选是一个双分支的卷积网络(一个 2D 分支,一个 3D 分支),并且和 MMAction2 有相同的主干网络(ResNet18)。HATNet 的输入是 16 帧或 32 帧的长视频片段(这样的片段比 MMAction2 使用的要长),同时输入分辨率更粗糙(112px 而非 224px)。 +HATNet 是在每个独立的任务(对应每个 tag 类别)上进行训练的,HATNet-multi 是在多个任务上进行训练的。由于目前没有 HATNet 的开源代码和模型,这里仅汇报了原 paper 的精度。 + +注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +2. 这里的 **推理时间** 是根据 [基准测试脚本](/tools/analysis/benchmark.py) 获得的,采用测试时的采帧策略,且只考虑模型的推理时间, + 并不包括 IO 时间以及预处理时间。对于每个配置,MMAction2 使用 1 块 GPU 并设置批大小(每块 GPU 处理的视频个数)为 1 来计算推理时间。 +3. 参考代码的结果是通过使用相同的模型配置在原来的代码库上训练得到的。 +4. 我们使用的 Kinetics400 验证集包含 19796 个视频,用户可以从 [验证集视频](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB) 下载这些视频。同时也提供了对应的 [数据列表](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (每行格式为:视频 ID,视频帧数目,类别序号)以及 [标签映射](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) (类别序号到类别名称)。 + +对于数据集准备的细节,用户可参考: + +- [准备 ucf101](/tools/data/ucf101/README_zh-CN.md) +- [准备 kinetics](/tools/data/kinetics/README_zh-CN.md) +- [准备 sthv1](/tools/data/sthv1/README_zh-CN.md) +- [准备 sthv2](/tools/data/sthv2/README_zh-CN.md) +- [准备 mit](/tools/data/mit/README_zh-CN.md) +- [准备 mmit](/tools/data/mmit/README_zh-CN.md) +- [准备 hvu](/tools/data/hvu/README_zh-CN.md) +- [准备 hmdb51](/tools/data/hmdb51/README_zh-CN.md) + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:以一个确定性的训练方式,辅以定期的验证过程进行 TSN 模型在 Kinetics-400 数据集上的训练。 + +```shell +python tools/train.py configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py \ + --work-dir work_dirs/tsn_r50_1x1x3_100e_kinetics400_rgb \ + --validate --seed 0 --deterministic +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 Kinetics-400 数据集上测试 TSN 模型,并将结果导出为一个 json 文件。 + +```shell +python tools/test.py configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/custom_backbones/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/custom_backbones/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb.py new file mode 100644 index 00000000..d4b50510 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/custom_backbones/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb.py @@ -0,0 +1,99 @@ +_base_ = [ + '../../../_base_/schedules/sgd_100e.py', + '../../../_base_/default_runtime.py' +] + +# model settings +model = dict( + type='Recognizer2D', + backbone=dict(type='torchvision.densenet161', pretrained=True), + cls_head=dict( + type='TSNHead', + num_classes=400, + in_channels=2208, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.4, + init_std=0.01), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips=None)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train_320p' +data_root_val = 'data/kinetics400/rawframes_val_320p' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes_320p.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes_320p.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes_320p.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=3), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=3, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=12, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +# runtime settings +work_dir = './work_dirs/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb/' +optimizer = dict( + type='SGD', + lr=0.00375, # this lr is used for 8 gpus + momentum=0.9, + weight_decay=0.0001) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/custom_backbones/tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/custom_backbones/tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb.py new file mode 100644 index 00000000..978cb5bc --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/custom_backbones/tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb.py @@ -0,0 +1,108 @@ +_base_ = [ + '../../../_base_/schedules/sgd_100e.py', + '../../../_base_/default_runtime.py' +] + +# model settings +model = dict( + type='Recognizer2D', + backbone=dict( + type='mmcls.ResNeXt', + depth=101, + num_stages=4, + out_indices=(3, ), + groups=32, + width_per_group=4, + style='pytorch'), + cls_head=dict( + type='TSNHead', + num_classes=400, + in_channels=2048, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.4, + init_std=0.01), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips=None)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train_320p' +data_root_val = 'data/kinetics400/rawframes_val_320p' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes_320p.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes_320p.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes_320p.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=3), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=3, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +# runtime settings +work_dir = './work_dirs/tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb/' +load_from = ('https://download.openmmlab.com/mmclassification/v0/resnext/' + 'resnext101_32x4d_batch256_imagenet_20200708-87f2d1c9.pth') +optimizer = dict( + type='SGD', + lr=0.005, # this lr is used for 8 gpus + momentum=0.9, + weight_decay=0.0001) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/custom_backbones/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/custom_backbones/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb.py new file mode 100644 index 00000000..dfe70170 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/custom_backbones/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb.py @@ -0,0 +1,103 @@ +_base_ = [ + '../../../_base_/schedules/sgd_100e.py', + '../../../_base_/default_runtime.py' +] + +# model settings +model = dict( + type='Recognizer2D', + backbone=dict(type='timm.swin_base_patch4_window7_224', pretrained=True), + cls_head=dict( + type='TSNHead', + num_classes=400, + in_channels=1024, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.4, + init_std=0.01), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips=None)) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/kinetics400/videos_train' +data_root_val = 'data/kinetics400/videos_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_videos.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_videos.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=3), + dict(type='DecordDecode'), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=3, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=24, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +work_dir = './work_dirs/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb/' # noqa +optimizer = dict( + type='SGD', + lr=0.0075, # this lr is used for 8 gpus + momentum=0.9, + weight_decay=0.0001) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_256p_1x1x3_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_256p_1x1x3_100e_kinetics400_rgb.py new file mode 100644 index 00000000..bb0a5fe3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_256p_1x1x3_100e_kinetics400_rgb.py @@ -0,0 +1,89 @@ +_base_ = [ + '../../../_base_/models/tsn_r50.py', + '../../../_base_/schedules/sgd_100e.py', + '../../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train_256p' +data_root_val = 'data/kinetics400/rawframes_val_256p' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes_256p.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes_256p.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes_256p.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=3), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=3, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = ('./work_dirs/tsn_r50_multiscalecrop_256p_1x1x3' + '_100e_kinetics400_rgb/') +workflow = [('train', 5)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb.py new file mode 100644 index 00000000..6b77944e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_320p_1x1x3_100e_kinetics400_rgb.py @@ -0,0 +1,89 @@ +_base_ = [ + '../../../_base_/models/tsn_r50.py', + '../../../_base_/schedules/sgd_100e.py', + '../../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train_320p' +data_root_val = 'data/kinetics400/rawframes_val_320p' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes_320p.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes_320p.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes_320p.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=3), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=3, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = ('./work_dirs/tsn_r50_multiscalecrop_320p_1x1x3' + '_100e_kinetics400_rgb/') +workflow = [('train', 5)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_340x256_1x1x3_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_340x256_1x1x3_100e_kinetics400_rgb.py new file mode 100644 index 00000000..897fb05f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_multiscalecrop_340x256_1x1x3_100e_kinetics400_rgb.py @@ -0,0 +1,88 @@ +_base_ = [ + '../../../_base_/models/tsn_r50.py', + '../../../_base_/schedules/sgd_100e.py', + '../../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=3), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=3, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = ('./work_dirs/tsn_r50_multiscalecrop_340x256_1x1x3' + '_100e_kinetics400_rgb/') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_256p_1x1x3_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_256p_1x1x3_100e_kinetics400_rgb.py new file mode 100644 index 00000000..3d9e8ca5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_256p_1x1x3_100e_kinetics400_rgb.py @@ -0,0 +1,83 @@ +_base_ = [ + '../../../_base_/models/tsn_r50.py', + '../../../_base_/schedules/sgd_100e.py', + '../../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train_256p' +data_root_val = 'data/kinetics400/rawframes_val_256p' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes_256p.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes_256p.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes_256p.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=3), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=3, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = ('./work_dirs/tsn_r50_randomresizedcrop_256p_1x1x3' + '_100e_kinetics400_rgb/') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_320p_1x1x3_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_320p_1x1x3_100e_kinetics400_rgb.py new file mode 100644 index 00000000..c35a32e4 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_320p_1x1x3_100e_kinetics400_rgb.py @@ -0,0 +1,83 @@ +_base_ = [ + '../../../_base_/models/tsn_r50.py', + '../../../_base_/schedules/sgd_100e.py', + '../../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train_320p' +data_root_val = 'data/kinetics400/rawframes_val_320p' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes_320p.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes_320p.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes_320p.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=3), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=3, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = ('./work_dirs/tsn_r50_randomresizedcrop_320p_1x1x3' + '_100e_kinetics400_rgb/') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb.py new file mode 100644 index 00000000..968bfc6f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_randomresizedcrop_340x256_1x1x3_100e_kinetics400_rgb.py @@ -0,0 +1,84 @@ +_base_ = [ + '../../../_base_/models/tsn_r50.py', + '../../../_base_/schedules/sgd_100e.py', + '../../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=3), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=3, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = ('./work_dirs/tsn_r50_randomresizedcrop_340x256_1x1x3' + '_100e_kinetics400_rgb') +workflow = [('train', 5)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_256p_1x1x25_10crop_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_256p_1x1x25_10crop_100e_kinetics400_rgb.py new file mode 100644 index 00000000..bb4da399 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_256p_1x1x25_10crop_100e_kinetics400_rgb.py @@ -0,0 +1,32 @@ +_base_ = ['../../../_base_/models/tsn_r50.py'] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root_val = 'data/kinetics400/rawframes_val_256p' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes_256p.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +dist_params = dict(backend='nccl') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_256p_1x1x25_3crop_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_256p_1x1x25_3crop_100e_kinetics400_rgb.py new file mode 100644 index 00000000..82f1d3ea --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_256p_1x1x25_3crop_100e_kinetics400_rgb.py @@ -0,0 +1,32 @@ +_base_ = ['../../../_base_/models/tsn_r50.py'] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root_val = 'data/kinetics400/rawframes_val_256p' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes_256p.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +dist_params = dict(backend='nccl') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_320p_1x1x25_10crop_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_320p_1x1x25_10crop_100e_kinetics400_rgb.py new file mode 100644 index 00000000..74aeac51 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_320p_1x1x25_10crop_100e_kinetics400_rgb.py @@ -0,0 +1,32 @@ +_base_ = ['../../../_base_/models/tsn_r50.py'] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root_val = 'data/kinetics400/rawframes_val_320p' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes_320p.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +dist_params = dict(backend='nccl') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_320p_1x1x25_3crop_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_320p_1x1x25_3crop_100e_kinetics400_rgb.py new file mode 100644 index 00000000..ba35eb59 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_320p_1x1x25_3crop_100e_kinetics400_rgb.py @@ -0,0 +1,32 @@ +_base_ = ['../../../_base_/models/tsn_r50.py'] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root_val = 'data/kinetics400/rawframes_val_320p' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes_320p.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +dist_params = dict(backend='nccl') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_340x256_1x1x25_10crop_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_340x256_1x1x25_10crop_100e_kinetics400_rgb.py new file mode 100644 index 00000000..ad900cd3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_340x256_1x1x25_10crop_100e_kinetics400_rgb.py @@ -0,0 +1,32 @@ +_base_ = ['../../../_base_/models/tsn_r50.py'] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +dist_params = dict(backend='nccl') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_340x256_1x1x25_3crop_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_340x256_1x1x25_3crop_100e_kinetics400_rgb.py new file mode 100644 index 00000000..980259ec --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/data_benchmark/tsn_r50_test_340x256_1x1x25_3crop_100e_kinetics400_rgb.py @@ -0,0 +1,32 @@ +_base_ = ['../../../_base_/models/tsn_r50.py'] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +dist_params = dict(backend='nccl') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_action_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_action_rgb.py new file mode 100644 index 00000000..3e2a4bfa --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_action_rgb.py @@ -0,0 +1,102 @@ +_base_ = [ + '../../../_base_/models/tsn_r50.py', + '../../../_base_/schedules/sgd_100e.py', + '../../../_base_/default_runtime.py' +] + +# model settings +category_nums = dict( + action=739, attribute=117, concept=291, event=69, object=1678, scene=248) +target_cate = 'action' + +model = dict( + backbone=dict(pretrained='torchvision://resnet18', depth=18), + cls_head=dict( + in_channels=512, + num_classes=category_nums[target_cate], + multi_class=True, + loss_cls=dict(type='BCELossWithLogits', loss_weight=333.))) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/hvu/videos_train' +data_root_val = 'data/hvu/videos_val' +ann_file_train = f'data/hvu/hvu_{target_cate}_train.json' +ann_file_val = f'data/hvu/hvu_{target_cate}_val.json' +ann_file_test = f'data/hvu/hvu_{target_cate}_val.json' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline, + multi_class=True, + num_classes=category_nums[target_cate]), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline, + multi_class=True, + num_classes=category_nums[target_cate]), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline, + multi_class=True, + num_classes=category_nums[target_cate])) +evaluation = dict(interval=2, metrics=['mean_average_precision']) + +# runtime settings +work_dir = f'./work_dirs/tsn_r18_1x1x8_100e_hvu_{target_cate}_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_attribute_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_attribute_rgb.py new file mode 100644 index 00000000..f4ebc6ff --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_attribute_rgb.py @@ -0,0 +1,102 @@ +_base_ = [ + '../../../_base_/models/tsn_r50.py', + '../../../_base_/schedules/sgd_100e.py', + '../../../_base_/default_runtime.py' +] + +# model settings +category_nums = dict( + action=739, attribute=117, concept=291, event=69, object=1678, scene=248) +target_cate = 'attribute' + +model = dict( + backbone=dict(pretrained='torchvision://resnet18', depth=18), + cls_head=dict( + in_channels=512, + num_classes=category_nums[target_cate], + multi_class=True, + loss_cls=dict(type='BCELossWithLogits', loss_weight=333.))) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/hvu/videos_train' +data_root_val = 'data/hvu/videos_val' +ann_file_train = f'data/hvu/hvu_{target_cate}_train.json' +ann_file_val = f'data/hvu/hvu_{target_cate}_val.json' +ann_file_test = f'data/hvu/hvu_{target_cate}_val.json' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline, + multi_class=True, + num_classes=category_nums[target_cate]), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline, + multi_class=True, + num_classes=category_nums[target_cate]), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline, + multi_class=True, + num_classes=category_nums[target_cate])) +evaluation = dict(interval=2, metrics=['mean_average_precision']) + +# runtime settings +work_dir = f'./work_dirs/tsn_r18_1x1x8_100e_hvu_{target_cate}_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_concept_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_concept_rgb.py new file mode 100644 index 00000000..b8e6812f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_concept_rgb.py @@ -0,0 +1,102 @@ +_base_ = [ + '../../../_base_/models/tsn_r50.py', + '../../../_base_/schedules/sgd_100e.py', + '../../../_base_/default_runtime.py' +] + +# model settings +category_nums = dict( + action=739, attribute=117, concept=291, event=69, object=1678, scene=248) +target_cate = 'concept' + +model = dict( + backbone=dict(pretrained='torchvision://resnet18', depth=18), + cls_head=dict( + in_channels=512, + num_classes=category_nums[target_cate], + multi_class=True, + loss_cls=dict(type='BCELossWithLogits', loss_weight=333.))) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/hvu/videos_train' +data_root_val = 'data/hvu/videos_val' +ann_file_train = f'data/hvu/hvu_{target_cate}_train.json' +ann_file_val = f'data/hvu/hvu_{target_cate}_val.json' +ann_file_test = f'data/hvu/hvu_{target_cate}_val.json' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline, + multi_class=True, + num_classes=category_nums[target_cate]), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline, + multi_class=True, + num_classes=category_nums[target_cate]), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline, + multi_class=True, + num_classes=category_nums[target_cate])) +evaluation = dict(interval=2, metrics=['mean_average_precision']) + +# runtime settings +work_dir = f'./work_dirs/tsn_r18_1x1x8_100e_hvu_{target_cate}_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_event_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_event_rgb.py new file mode 100644 index 00000000..4073e599 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_event_rgb.py @@ -0,0 +1,102 @@ +_base_ = [ + '../../../_base_/models/tsn_r50.py', + '../../../_base_/schedules/sgd_100e.py', + '../../../_base_/default_runtime.py' +] + +# model settings +category_nums = dict( + action=739, attribute=117, concept=291, event=69, object=1678, scene=248) +target_cate = 'event' + +model = dict( + backbone=dict(pretrained='torchvision://resnet18', depth=18), + cls_head=dict( + in_channels=512, + num_classes=category_nums[target_cate], + multi_class=True, + loss_cls=dict(type='BCELossWithLogits', loss_weight=333.))) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/hvu/videos_train' +data_root_val = 'data/hvu/videos_val' +ann_file_train = f'data/hvu/hvu_{target_cate}_train.json' +ann_file_val = f'data/hvu/hvu_{target_cate}_val.json' +ann_file_test = f'data/hvu/hvu_{target_cate}_val.json' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline, + multi_class=True, + num_classes=category_nums[target_cate]), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline, + multi_class=True, + num_classes=category_nums[target_cate]), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline, + multi_class=True, + num_classes=category_nums[target_cate])) +evaluation = dict(interval=2, metrics=['mean_average_precision']) + +# runtime settings +work_dir = f'./work_dirs/tsn_r18_1x1x8_100e_hvu_{target_cate}_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_object_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_object_rgb.py new file mode 100644 index 00000000..350d256a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_object_rgb.py @@ -0,0 +1,102 @@ +_base_ = [ + '../../../_base_/models/tsn_r50.py', + '../../../_base_/schedules/sgd_100e.py', + '../../../_base_/default_runtime.py' +] + +# model settings +category_nums = dict( + action=739, attribute=117, concept=291, event=69, object=1678, scene=248) +target_cate = 'object' + +model = dict( + backbone=dict(pretrained='torchvision://resnet18', depth=18), + cls_head=dict( + in_channels=512, + num_classes=category_nums[target_cate], + multi_class=True, + loss_cls=dict(type='BCELossWithLogits', loss_weight=333.))) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/hvu/videos_train' +data_root_val = 'data/hvu/videos_val' +ann_file_train = f'data/hvu/hvu_{target_cate}_train.json' +ann_file_val = f'data/hvu/hvu_{target_cate}_val.json' +ann_file_test = f'data/hvu/hvu_{target_cate}_val.json' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline, + multi_class=True, + num_classes=category_nums[target_cate]), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline, + multi_class=True, + num_classes=category_nums[target_cate]), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline, + multi_class=True, + num_classes=category_nums[target_cate])) +evaluation = dict(interval=2, metrics=['mean_average_precision']) + +# runtime settings +work_dir = f'./work_dirs/tsn_r18_1x1x8_100e_hvu_{target_cate}_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_scene_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_scene_rgb.py new file mode 100644 index 00000000..ff60a659 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_scene_rgb.py @@ -0,0 +1,102 @@ +_base_ = [ + '../../../_base_/models/tsn_r50.py', + '../../../_base_/schedules/sgd_100e.py', + '../../../_base_/default_runtime.py' +] + +# model settings +category_nums = dict( + action=739, attribute=117, concept=291, event=69, object=1678, scene=248) +target_cate = 'scene' + +model = dict( + backbone=dict(pretrained='torchvision://resnet18', depth=18), + cls_head=dict( + in_channels=512, + num_classes=category_nums[target_cate], + multi_class=True, + loss_cls=dict(type='BCELossWithLogits', loss_weight=333.))) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/hvu/videos_train' +data_root_val = 'data/hvu/videos_val' +ann_file_train = f'data/hvu/hvu_{target_cate}_train.json' +ann_file_val = f'data/hvu/hvu_{target_cate}_val.json' +ann_file_test = f'data/hvu/hvu_{target_cate}_val.json' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline, + multi_class=True, + num_classes=category_nums[target_cate]), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline, + multi_class=True, + num_classes=category_nums[target_cate]), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline, + multi_class=True, + num_classes=category_nums[target_cate])) +evaluation = dict(interval=2, metrics=['mean_average_precision']) + +# runtime settings +work_dir = f'./work_dirs/tsn_r18_1x1x8_100e_hvu_{target_cate}_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/metafile.yml new file mode 100644 index 00000000..fa941ed5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/metafile.yml @@ -0,0 +1,960 @@ +Collections: +- Name: TSN + README: configs/recognition/tsn/README.md + Paper: + URL: https://arxiv.org/abs/1608.00859 + Title: "Temporal Segment Networks: Towards Good Practices for Deep Action Recognition" +Models: +- Config: configs/recognition/tsn/tsn_r50_1x1x3_75e_ucf101_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 32 + Epochs: 75 + FLOPs: 134526773248 + Parameters: 23714981 + Pretrained: ImageNet + Training Data: UCF101 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_1x1x3_75e_ucf101_rgb + Results: + - Dataset: UCF101 + Metrics: + Top 1 Accuracy: 83.03 + Top 5 Accuracy: 96.78 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_75e_ucf101_rgb/tsn_r50_1x1x3_75e_ucf101_rgb_20201023.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_75e_ucf101_rgb/tsn_r50_1x1x3_75e_ucf101_rgb_20201023.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_75e_ucf101_rgb/tsn_r50_1x1x3_75e_ucf101_rgb_20201023-d85ab600.pth +- Config: configs/recognition/tsn/tsn_r50_video_1x1x8_100e_diving48_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 100 + FLOPs: 32959107072 + Parameters: 23606384 + Pretrained: ImageNet + Training Data: Diving48 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_video_1x1x8_100e_diving48_rgb + Results: + - Dataset: Diving48 + Metrics: + Top 1 Accuracy: 71.27 + Top 5 Accuracy: 95.74 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_diving48_rgb/20210426_014138.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_diving48_rgb/20210426_014138.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_diving48_rgb/tsn_r50_video_1x1x8_100e_diving48_rgb_20210426-6dde0185.pth +- Config: configs/recognition/tsn/tsn_r50_video_1x1x16_100e_diving48_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 4 + Epochs: 100 + FLOPs: 32959107072 + Parameters: 23606384 + Pretrained: ImageNet + Training Data: Diving48 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_video_1x1x16_100e_diving48_rgb + Results: + - Dataset: Diving48 + Metrics: + Top 1 Accuracy: 76.75 + Top 5 Accuracy: 96.95 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x16_100e_diving48_rgb/20210426_014103.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x16_100e_diving48_rgb/20210426_014103.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x16_100e_diving48_rgb/tsn_r50_video_1x1x16_100e_diving48_rgb_20210426-63c5f2f7.pth +- Config: configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 32 + Epochs: 50 + FLOPs: 43048605696 + Parameters: 23612531 + Pretrained: ImageNet + Training Data: HMDB51 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb + Results: + - Dataset: HMDB51 + Metrics: + Top 1 Accuracy: 48.95 + Top 5 Accuracy: 80.19 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb/20201025_231108.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb/20201025_231108.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb_20201123-ce6c27ed.pth +- Config: configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 32 + Epochs: 50 + FLOPs: 43048605696 + Parameters: 23612531 + Pretrained: Kinetics400 + Training Data: HMDB51 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb + Results: + - Dataset: HMDB51 + Metrics: + Top 1 Accuracy: 56.08 + Top 5 Accuracy: 84.31 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb/20201108_190805.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb/20201108_190805.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb_20201123-7f84701b.pth +- Config: configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_mit_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Epochs: 50 + FLOPs: 43048605696 + Parameters: 23612531 + Pretrained: Moments + Training Data: HMDB51 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_1x1x8_50e_hmdb51_mit_rgb + Results: + - Dataset: HMDB51 + Metrics: + Top 1 Accuracy: 54.25 + Top 5 Accuracy: 83.86 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_mit_rgb/20201112_170135.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_mit_rgb/20201112_170135.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_mit_rgb/tsn_r50_1x1x8_50e_hmdb51_mit_rgb_20201123-01526d41.pth +- Config: configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 32 + Epochs: 100 + FLOPs: 102997721600 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: 340x256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_1x1x3_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 70.6 + Top 5 Accuracy: 89.26 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/20200614_063526.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/20200614_063526.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth +- Config: configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 32 + Epochs: 100 + FLOPs: 102997721600 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_1x1x3_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 70.42 + Top 5 Accuracy: 89.03 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x3_100e_kinetics400_rgb/20200725_031325.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x3_100e_kinetics400_rgb/20200725_031325.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x3_100e_kinetics400_rgb/tsn_r50_256p_1x1x3_100e_kinetics400_rgb_20200725-22592236.pth +- Config: configs/recognition/tsn/tsn_r50_dense_1x1x5_100e_kinetics400_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 16 + Epochs: 100 + FLOPs: 32959827968 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: 340x256 + Training Data: Kinetics-400 + Training Resources: 24 GPUs + Modality: RGB + Name: tsn_r50_dense_1x1x5_50e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 70.18 + Top 5 Accuracy: 89.1 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x5_100e_kinetics400_rgb/20200627_105310.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x5_100e_kinetics400_rgb/20200627_105310.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x5_100e_kinetics400_rgb/tsn_r50_dense_1x1x5_100e_kinetics400_rgb_20200627-a063165f.pth +- Config: configs/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 32 + Epochs: 100 + FLOPs: 134527385600 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 16 GPUs + Modality: RGB + Name: tsn_r50_320p_1x1x3_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 70.91 + Top 5 Accuracy: 89.51 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_f3_kinetics400_shortedge_70.9_89.5.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_f3_kinetics400_shortedge_70.9_89.5.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_320p_1x1x3_100e_kinetics400_rgb_20200702-cc665e2a.pth +- Config: configs/recognition/tsn/tsn_r50_320p_1x1x3_110e_kinetics400_flow.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 32 + Epochs: 110 + FLOPs: 109881868800 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 16 GPUs + Modality: Flow + Name: tsn_r50_320p_1x1x3_110e_kinetics400_flow + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 55.7 + Top 5 Accuracy: 79.85 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_110e_kinetics400_flow/tsn_r50_f3_kinetics400_flow_shortedge_55.7_79.9.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_110e_kinetics400_flow/tsn_r50_f3_kinetics400_flow_shortedge_55.7_79.9.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_110e_kinetics400_flow/tsn_r50_320p_1x1x3_110e_kinetics400_flow_20200705-3036bab6.pth +- Config: configs/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 100 + FLOPs: 134527385600 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_1x1x8_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 71.8 + Top 5 Accuracy: 90.17 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x8_100e_kinetics400_rgb/20200815_173413.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x8_100e_kinetics400_rgb/20200815_173413.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x8_100e_kinetics400_rgb/tsn_r50_256p_1x1x8_100e_kinetics400_rgb_20200817-883baf16.pth +- Config: configs/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 100 + FLOPs: 134527385600 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 24 GPUs + Modality: RGB + Name: tsn_r50_320p_1x1x8_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 72.41 + Top 5 Accuracy: 90.55 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb/tsn_r50_f8_kinetics400_shortedge_72.4_90.6.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb/tsn_r50_f8_kinetics400_shortedge_72.4_90.6.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb/tsn_r50_320p_1x1x8_100e_kinetics400_rgb_20200702-ef80e3d7.pth +- Config: configs/recognition/tsn/tsn_r50_320p_1x1x8_110e_kinetics400_flow.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 110 + FLOPs: 109881868800 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 32 GPUs + Modality: Flow + Name: tsn_r50_320p_1x1x8_110e_kinetics400_flow + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 57.76 + Top 5 Accuracy: 80.99 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_110e_kinetics400_flow/tsn_r50_f8_kinetics400_flow_shortedge_57.8_81.0.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_110e_kinetics400_flow/tsn_r50_f8_kinetics400_flow_shortedge_57.8_81.0.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_110e_kinetics400_flow/tsn_r50_320p_1x1x8_110e_kinetics400_flow_20200705-1f39486b.pth +- Config: configs/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 32 + Epochs: 100 + FLOPs: 102997721600 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 71.11 + Top 5 Accuracy: 90.04 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb_20201014.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb_20201014.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb_20201014-5ae1ee79.pth +- Config: configs/recognition/tsn/tsn_r50_dense_1x1x8_100e_kinetics400_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 100 + FLOPs: 32959827968 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: 340x256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_dense_1x1x8_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 70.77 + Top 5 Accuracy: 89.3 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x8_100e_kinetics400_rgb/20200606_003901.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x8_100e_kinetics400_rgb/20200606_003901.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_dense_1x1x8_100e_kinetics400_rgb/tsn_r50_dense_1x1x8_100e_kinetics400_rgb_20200606-e925e6e3.pth +- Config: configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 32 + Epochs: 100 + FLOPs: 134527385600 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_video_1x1x8_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 71.14 + Top 5 Accuracy: 89.63 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb/tsn_r50_video_2d_1x1x8_100e_kinetics400_rgb.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb/tsn_r50_video_2d_1x1x8_100e_kinetics400_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb/tsn_r50_video_1x1x8_100e_kinetics400_rgb_20200702-568cde33.pth +- Config: configs/recognition/tsn/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 32 + Epochs: 100 + FLOPs: 32959827968 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: Kinetics-400 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 70.4 + Top 5 Accuracy: 89.12 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb/tsn_r50_video_2d_1x1x8_dense_100e_kinetics400_rgb.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb/tsn_r50_video_2d_1x1x8_dense_100e_kinetics400_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb_20200703-0f19175f.pth +- Config: configs/recognition/tsn/custom_backbones/tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNeXt101-32x4d [[MMCls](https://github.com/open-mmlab/mmclassification/tree/master/configs/resnext)] + Batch Size: 16 + Epochs: 100 + FLOPs: 262238208000 + Parameters: 42948304 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 16 GPUs + Modality: RGB + Name: tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 73.43 + Top 5 Accuracy: 91.01 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_rn101_32x4d_320p_1x1x3_100e_kinetics400_rgb-16a8b561.pth +- Config: configs/recognition/tsn/custom_backbones/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNeXt101-32x4d [[TorchVision](https://github.com/pytorch/vision/)] + Batch Size: 12 + Epochs: 100 + FLOPs: 255225561600 + Parameters: 27355600 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics-400 + Training Resources: 16 GPUs + Modality: RGB + Name: tsn_dense161_320p_1x1x3_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 72.78 + Top 5 Accuracy: 90.75 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb/tsn_dense161_320p_1x1x3_100e_kinetics400_rgb-cbe85332.pth +- Config: configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 32 + Epochs: 100 + FLOPs: 102997721600 + Parameters: 24327632 + Pretrained: ImageNet + Resolution: 340x256 + Training Data: Kinetics-400 + Modality: RGB + Name: tsn_omnisource_r50_1x1x3_100e_kinetics_rgb + Converted From: + Weights: https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmaction/models/kinetics400/omnisource/tsn_OmniSource_kinetics400_se_rgb_r50_seg3_f1s1_imagenet-4066cb7e.pth + Code: https://github.com/open-mmlab/mmaction + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 73.6 + Top 5 Accuracy: 91.0 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/omni/tsn_imagenet_pretrained_r50_omni_1x1x3_kinetics400_rgb_20200926-54192355.pth +- Config: configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 32 + Epochs: 100 + FLOPs: 102997721600 + Parameters: 24327632 + Pretrained: IG-1B + Resolution: short-side 320 + Training Data: Kinetics-400 + Modality: RGB + Name: tsn_IG1B_pretrained_r50_1x1x3_100e_kinetics_rgb + Converted From: + Weights: https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmaction/models/kinetics400/omnisource/tsn_OmniSource_kinetics400_se_rgb_r50_seg3_f1s1_IG1B-25fc136b.pth + Code: https://github.com/open-mmlab/mmaction/ + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 73.1 + Top 5 Accuracy: 90.4 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/omni/tsn_1G1B_pretrained_r50_without_omni_1x1x3_kinetics400_rgb_20200926-c133dd49.pth +- Config: configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 32 + Epochs: 100 + FLOPs: 102997721600 + Parameters: 24327632 + Pretrained: IG-1B + Resolution: short-side 320 + Training Data: Kinetics-400 + Modality: RGB + Name: tsn_IG1B_pretrained_omnisource_r50_1x1x3_100e_kinetics_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 75.7 + Top 5 Accuracy: 91.9 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/omni/tsn_1G1B_pretrained_r50_omni_1x1x3_kinetics400_rgb_20200926-2863fed0.pth +- Config: configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics600_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 100 + FLOPs: 134527795200 + Parameters: 24737432 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: Kinetics-600 + Training Resources: 16 GPUs + Modality: RGB + Name: tsn_r50_video_1x1x8_100e_kinetics600_rgb + Results: + - Dataset: Kinetics-600 + Metrics: + Top 1 Accuracy: 74.8 + Top 5 Accuracy: 92.3 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics600_rgb/tsn_r50_video_1x1x8_100e_kinetics600_rgb_20201015.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics600_rgb/tsn_r50_video_1x1x8_100e_kinetics600_rgb_20201015.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics600_rgb/tsn_r50_video_1x1x8_100e_kinetics600_rgb_20201015-4db3c461.pth +- Config: configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics700_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 12 + Epochs: 100 + FLOPs: 134528000000 + Parameters: 24942332 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: Kinetics-700 + Training Resources: 16 GPUs + Modality: RGB + Name: tsn_r50_video_1x1x8_100e_kinetics700_rgb + Results: + - Dataset: Kinetics-700 + Metrics: + Top 1 Accuracy: 61.7 + Top 5 Accuracy: 83.6 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics700_rgb/tsn_r50_video_1x1x8_100e_kinetics700_rgb_20201015.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics700_rgb/tsn_r50_video_1x1x8_100e_kinetics700_rgb_20201015.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics700_rgb/tsn_r50_video_1x1x8_100e_kinetics700_rgb_20201015-e381a6c7.pth +- Config: configs/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 16 + Epochs: 50 + FLOPs: 32781541376 + Parameters: 23864558 + Pretrained: ImageNet + Resolution: height 100 + Training Data: SthV1 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_1x1x8_50e_sthv1_rgb + Results: + - Dataset: SthV1 + Metrics: + Top 1 Accuracy: 18.55 + Top 5 Accuracy: 44.8 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb/tsn_r50_f8_sthv1_18.1_45.0.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb/tsn_sthv1.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb/tsn_r50_1x1x8_50e_sthv1_rgb_20200618-061b9195.pth +- Config: configs/recognition/tsn/tsn_r50_1x1x16_50e_sthv1_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 4 + Epochs: 50 + FLOPs: 32781541376 + Parameters: 23864558 + Pretrained: ImageNet + Resolution: height 100 + Training Data: SthV1 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_1x1x16_50e_sthv1_rgb + Results: + - Dataset: SthV1 + Metrics: + Top 1 Accuracy: 15.77 + Top 5 Accuracy: 39.85 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv1_rgb/20200614_211932.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv1_rgb/20200614_211932.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv1_rgb/tsn_r50_1x1x16_50e_sthv1_rgb_20200614-7e2fe4f1.pth +- Config: configs/recognition/tsn/tsn_r50_1x1x8_50e_sthv2_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 16 + Epochs: 50 + FLOPs: 32959365120 + Parameters: 23864558 + Pretrained: ImageNet + Resolution: height 256 + Training Data: SthV2 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_1x1x8_50e_sthv2_rgb + Results: + - Dataset: SthV2 + Metrics: + Top 1 Accuracy: 28.59 + Top 5 Accuracy: 59.56 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv2_rgb/20210816_221116.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv2_rgb/20210816_221116.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x8_50e_sthv2_rgb/tsn_r50_1x1x8_50e_sthv2_rgb_20210816-1aafee8f.pth +- Config: configs/recognition/tsn/tsn_r50_1x1x16_50e_sthv2_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 4 + Epochs: 50 + FLOPs: 65918373888 + Parameters: 23864558 + Pretrained: ImageNet + Resolution: height 256 + Training Data: SthV2 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_1x1x16_50e_sthv2_rgb + Results: + - Dataset: SthV2 + Metrics: + Top 1 Accuracy: 20.89 + Top 5 Accuracy: 49.16 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv2_rgb/20210816_225256.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv2_rgb/20210816_225256.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x16_50e_sthv2_rgb/tsn_r50_1x1x16_50e_sthv2_rgb_20210816-5d23ac6e.pth +- Config: configs/recognition/tsn/tsn_r50_1x1x6_100e_mit_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 16 + Epochs: 100 + FLOPs: 32287070208 + Parameters: 24202643 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: MiT + Training Resources: 16 GPUs + Modality: RGB + Name: tsn_r50_1x1x6_100e_mit_rgb + Results: + - Dataset: MiT + Metrics: + Top 1 Accuracy: 26.84 + Top 5 Accuracy: 51.6 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x6_100e_mit_rgb/tsn_r50_f6_mit_26.8_51.6.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x6_100e_mit_rgb/tsn_mit.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x6_100e_mit_rgb/tsn_r50_1x1x6_100e_mit_rgb_20200618-d512ab1b.pth +- Config: configs/recognition/tsn/tsn_r101_1x1x5_50e_mmit_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet101 + Batch Size: 16 + Epochs: 50 + FLOPs: 51249301504 + Parameters: 43141497 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: MMiT + Training Resources: 16 GPUs + Modality: RGB + Name: tsn_r101_1x1x5_50e_mmit_rgb + Results: + - Dataset: MMiT + Metrics: + mAP: 61.09 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r101_1x1x5_50e_mmit_rgb/tsn_r101_f6_mmit_61.1.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r101_1x1x5_50e_mmit_rgb/tsn_mmit.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r101_1x1x5_50e_mmit_rgb/tsn_r101_1x1x5_50e_mmit_rgb_20200618-642f450d.pth +- Config: configs/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 134526976000 + Parameters: 23917832 + Pretrained: Kinetics400 + Resolution: short-side 320 + Training Data: ActivityNet v1.3 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_320p_1x1x8_50e_activitynet_video_rgb + Results: + - Dataset: ActivityNet v1.3 + Metrics: + Top 1 Accuracy: 73.93 + Top 5 Accuracy: 93.44 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb/20210228_223327.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb/20210228_223327.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb_20210301-7f8da0c6.pth +- Config: configs/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 50 + FLOPs: 134526976000 + Parameters: 23917832 + Pretrained: Kinetics400 + Resolution: short-side 320 + Training Data: ActivityNet v1.3 + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb + Results: + - Dataset: ActivityNet v1.3 + Metrics: + Top 1 Accuracy: 76.9 + Top 5 Accuracy: 94.47 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb/20210217_181313.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb/20210217_181313.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb_20210301-c0f04a7e.pth +- Config: configs/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_video_flow.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 150 + FLOPs: 109881459200 + Parameters: 23939784 + Pretrained: Kinetics400 + Resolution: 340x256 + Training Data: ActivityNet v1.3 + Training Resources: 16 GPUs + Modality: Flow + Name: tsn_r50_320p_1x1x8_150e_activitynet_video_flow + Results: + - Dataset: ActivityNet v1.3 + Metrics: + Top 1 Accuracy: 57.51 + Top 5 Accuracy: 83.02 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_video_flow/tsn_r50_320p_1x1x8_150e_activitynet_video_flow_20200804.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_video_flow/tsn_r50_320p_1x1x8_150e_activitynet_video_flow_20200804.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_video_flow/tsn_r50_320p_1x1x8_150e_activitynet_video_flow_20200804-13313f52.pth +- Config: configs/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow.py + In Collection: TSN + Metadata: + Architecture: ResNet50 + Batch Size: 8 + Epochs: 150 + FLOPs: 109881459200 + Parameters: 23939784 + Pretrained: Kinetics400 + Resolution: 340x256 + Training Data: ActivityNet v1.3 + Training Resources: 16 GPUs + Modality: Flow + Name: tsn_r50_320p_1x1x8_150e_activitynet_clip_flow + Results: + - Dataset: ActivityNet v1.3 + Metrics: + Top 1 Accuracy: 59.51 + Top 5 Accuracy: 82.69 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow_20200804.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow_20200804.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow_20200804-8622cf38.pth +- Config: configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_action_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet18 + Batch Size: 32 + Epochs: 100 + FLOPs: 59483309568 + Parameters: 11555619 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: HVU + Training Resources: 16 GPUs + Modality: RGB + Name: tsn_r18_1x1x8_100e_hvu_action_rgb + Results: + - Dataset: HVU + Metrics: + mAP: 57.5 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/action/tsn_r18_1x1x8_100e_hvu_action_rgb_20201027.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/action/tsn_r18_1x1x8_100e_hvu_action_rgb_20201027.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/action/tsn_r18_1x1x8_100e_hvu_action_rgb_20201027-011b282b.pth + tag category: action +- Config: configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_scene_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet18 + Batch Size: 32 + Epochs: 100 + FLOPs: 59483058176 + Parameters: 11303736 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: HVU + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r18_1x1x8_100e_hvu_scene_rgb + Results: + - Dataset: HVU + Metrics: + mAP: 55.2 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/scene/tsn_r18_1x1x8_100e_hvu_scene_rgb_20201027.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/scene/tsn_r18_1x1x8_100e_hvu_scene_rgb_20201027.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/scene/tsn_r18_1x1x8_100e_hvu_scene_rgb_20201027-00e5748d.pth + tag category: scene +- Config: configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_object_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet18 + Batch Size: 32 + Epochs: 100 + FLOPs: 59483790336 + Parameters: 12037326 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: HVU + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r18_1x1x8_100e_hvu_object_rgb + Results: + - Dataset: HVU + Metrics: + mAP: 45.7 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/object/tsn_r18_1x1x8_100e_hvu_object_rgb_20201027.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/object/tsn_r18_1x1x8_100e_hvu_object_rgb_20201027.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/object/tsn_r18_1x1x8_100e_hvu_object_rgb_20201102-24a22f30.pth + tag category: object +- Config: configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_event_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet18 + Batch Size: 32 + Epochs: 100 + FLOPs: 59482966528 + Parameters: 11211909 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: HVU + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r18_1x1x8_100e_hvu_event_rgb + Results: + - Dataset: HVU + Metrics: + mAP: 63.7 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/event/tsn_r18_1x1x8_100e_hvu_event_rgb_20201027.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/event/tsn_r18_1x1x8_100e_hvu_event_rgb_20201027.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/event/tsn_r18_1x1x8_100e_hvu_event_rgb_20201027-dea8cd71.pth + tag category: event +- Config: configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_concept_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet18 + Batch Size: 32 + Epochs: 100 + FLOPs: 59483790336 + Parameters: 12037326 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: HVU + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r18_1x1x8_100e_hvu_concept_rgb + Results: + - Dataset: HVU + Metrics: + mAP: 47.5 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/concept/tsn_r18_1x1x8_100e_hvu_concept_rgb_20201027.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/concept/tsn_r18_1x1x8_100e_hvu_concept_rgb_20201027.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/concept/tsn_r18_1x1x8_100e_hvu_concept_rgb_20201027-fc1dd8e3.pth + tag category: concept +- Config: configs/recognition/tsn/hvu/tsn_r18_1x1x8_100e_hvu_attribute_rgb.py + In Collection: TSN + Metadata: + Architecture: ResNet18 + Batch Size: 32 + Epochs: 100 + FLOPs: 59482991104 + Parameters: 11236533 + Pretrained: ImageNet + Resolution: short-side 256 + Training Data: HVU + Training Resources: 8 GPUs + Modality: RGB + Name: tsn_r18_1x1x8_100e_hvu_attribute_rgb + Results: + - Dataset: HVU + Metrics: + mAP: 46.1 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/attribute/tsn_r18_1x1x8_100e_hvu_attribute_rgb_20201027.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/attribute/tsn_r18_1x1x8_100e_hvu_attribute_rgb_20201027.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/hvu/attribute/tsn_r18_1x1x8_100e_hvu_attribute_rgb_20201027-0b3b49d2.pth + tag category: attribute +- Config: configs/recognition/tsn/custom_backbones/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb.py + In Collection: TSN + Metadata: + Architecture: Swin Transformer + Batch Size: 24 + Epochs: 100 + Parameters: 87153224 + Pretrained: ImageNet + Resolution: short-side 320 + Training Data: Kinetics400 + Training Resources: 8 GPUs + Name: tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 77.51 + Top 5 Accuracy: 92.92 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb.json + Training Log: https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb.log + Weights: https://download.openmmlab.com/mmaction/recognition/tsn/custom_backbones/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb/tsn_swin_transformer_video_320p_1x1x3_100e_kinetics400_rgb-805380f6.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_fp16_r50_1x1x3_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_fp16_r50_1x1x3_100e_kinetics400_rgb.py new file mode 100644 index 00000000..5f73da4a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_fp16_r50_1x1x3_100e_kinetics400_rgb.py @@ -0,0 +1,89 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_100e.py', + '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=3), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=3, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# fp16 settings +fp16 = dict() + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsn_fp16_r50_1x1x3_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r101_1x1x5_50e_mmit_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r101_1x1x5_50e_mmit_rgb.py new file mode 100644 index 00000000..11da5474 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r101_1x1x5_50e_mmit_rgb.py @@ -0,0 +1,116 @@ +_base_ = [ + '../../_base_/schedules/sgd_tsm_50e.py', '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + type='Recognizer2D', + backbone=dict( + type='ResNet', + pretrained='torchvision://resnet101', + depth=101, + norm_eval=False), + cls_head=dict( + type='TSNHead', + num_classes=313, + in_channels=2048, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + loss_cls=dict(type='BCELossWithLogits', loss_weight=160.0), + dropout_ratio=0.5, + init_std=0.01, + multi_class=True, + label_smooth_eps=0), + train_cfg=None, + test_cfg=dict(average_clips=None)) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/mmit/videos' +data_root_val = '/data/mmit/videos' +ann_file_train = 'data/mmit/mmit_train_list_videos.txt' +ann_file_val = 'data/mmit/mmit_val_list_videos.txt' +ann_file_test = 'data/mmit/mmit_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=5), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=5, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=5, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] + +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline, + multi_class=True, + num_classes=313), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline, + multi_class=True, + num_classes=313), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline, + multi_class=True, + num_classes=313)) +evaluation = dict(interval=5, metrics=['mmit_mean_average_precision']) + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsn_r101_1x1x5_50e_mmit_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x16_50e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x16_50e_sthv1_rgb.py new file mode 100644 index 00000000..9b5de9f6 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x16_50e_sthv1_rgb.py @@ -0,0 +1,94 @@ +_base_ = ['./tsn_r50_1x1x8_50e_sthv1_rgb.py'] +# model settings +model = dict(cls_head=dict(init_std=0.001)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=16), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=4, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.01, momentum=0.9, + weight_decay=0.0005) # this lr is used for 8 gpus + +# runtime settings +checkpoint_config = dict(interval=1) +work_dir = './work_dirs/tsn_r50_1x1x16_50e_sthv1_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x16_50e_sthv2_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x16_50e_sthv2_rgb.py new file mode 100644 index 00000000..1d8b3e01 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x16_50e_sthv2_rgb.py @@ -0,0 +1,92 @@ +_base_ = ['./tsn_r50_1x1x8_50e_sthv2_rgb.py'] + +# model settings +model = dict(cls_head=dict(init_std=0.001)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv2/rawframes' +data_root_val = 'data/sthv2/rawframes' +ann_file_train = 'data/sthv2/sthv2_train_list_rawframes.txt' +ann_file_val = 'data/sthv2/sthv2_val_list_rawframes.txt' +ann_file_test = 'data/sthv2/sthv2_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=16), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=4, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.005, momentum=0.9, + weight_decay=0.0005) # this lr is used for 8 gpus +# optimizer config +optimizer_config = dict(grad_clip=dict(max_norm=20, norm_type=2)) + +# runtime settings +checkpoint_config = dict(interval=1) +work_dir = './work_dirs/tsn_r50_1x1x16_50e_sthv2_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py new file mode 100644 index 00000000..1eca1ae6 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py @@ -0,0 +1,86 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_100e.py', + '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=3), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=3, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsn_r50_1x1x3_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x3_75e_ucf101_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x3_75e_ucf101_rgb.py new file mode 100644 index 00000000..e902eba9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x3_75e_ucf101_rgb.py @@ -0,0 +1,91 @@ +_base_ = ['../../_base_/models/tsn_r50.py', '../../_base_/default_runtime.py'] + +# model settings +model = dict(cls_head=dict(num_classes=101, init_std=0.001)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/ucf101/rawframes/' +data_root_val = 'data/ucf101/rawframes/' +split = 1 # official train/test splits. valid numbers: 1, 2, 3 +ann_file_train = f'data/ucf101/ucf101_train_split_{split}_rawframes.txt' +ann_file_val = f'data/ucf101/ucf101_val_split_{split}_rawframes.txt' +ann_file_test = f'data/ucf101/ucf101_val_split_{split}_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=3), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=3, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.00128, momentum=0.9, + weight_decay=0.0005) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[]) +total_epochs = 75 + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = f'./work_dirs/tsn_r50_1x1x3_75e_ucf101_split_{split}_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x6_100e_mit_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x6_100e_mit_rgb.py new file mode 100644 index 00000000..d11f2832 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x6_100e_mit_rgb.py @@ -0,0 +1,95 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_100e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=339)) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/mit/videos/training' +data_root_val = '/data/mit/videos/validation/' +ann_file_train = 'data/mit/mit_train_list_videos.txt' +ann_file_val = 'data/mit/mit_val_list_videos.txt' +ann_file_test = 'data/mit/mit_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=6), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.8), + random_crop=False, + max_wh_scale_gap=0), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=6, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordDecode'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=6, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +# optimizer +optimizer = dict( + type='SGD', lr=0.005, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsn_r50_1x1x6_100e_mit_rgb' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb.py new file mode 100644 index 00000000..b8818172 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb.py @@ -0,0 +1,90 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=51)) + +# dataset settings +split = 1 +dataset_type = 'RawframeDataset' +data_root = 'data/hmdb51/rawframes' +data_root_val = 'data/hmdb51/rawframes' +ann_file_train = f'data/hmdb51/hmdb51_train_split_{split}_rawframes.txt' +ann_file_val = f'data/hmdb51/hmdb51_val_split_{split}_rawframes.txt' +ann_file_test = f'data/hmdb51/hmdb51_val_split_{split}_rawframes.txt' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy'], topk=(1, 5)) + +# optimizer +optimizer = dict(type='SGD', lr=0.025, momentum=0.9, weight_decay=0.0001) + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsn_r50_1x1x8_50e_hmdb51_imagenet_rgb/' +gpu_ids = range(0, 1) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb.py new file mode 100644 index 00000000..6b3230ec --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb.py @@ -0,0 +1,91 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=51)) + +# dataset settings +split = 1 +dataset_type = 'RawframeDataset' +data_root = 'data/hmdb51/rawframes' +data_root_val = 'data/hmdb51/rawframes' +ann_file_train = f'data/hmdb51/hmdb51_train_split_{split}_rawframes.txt' +ann_file_val = f'data/hmdb51/hmdb51_val_split_{split}_rawframes.txt' +ann_file_test = f'data/hmdb51/hmdb51_val_split_{split}_rawframes.txt' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy'], topk=(1, 5)) + +# optimizer +optimizer = dict(type='SGD', lr=0.025, momentum=0.9, weight_decay=0.0001) + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsn_r50_1x1x8_50e_hmdb51_kinetics400_rgb/' +load_from = 'https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_256p_1x1x8_100e_kinetics400_rgb/tsn_r50_256p_1x1x8_100e_kinetics400_rgb_20200817-883baf16.pth' # noqa: E501 +gpu_ids = range(0, 1) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_mit_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_mit_rgb.py new file mode 100644 index 00000000..83081300 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_hmdb51_mit_rgb.py @@ -0,0 +1,90 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=51)) + +# dataset settings +split = 1 +dataset_type = 'RawframeDataset' +data_root = 'data/hmdb51/rawframes' +data_root_val = 'data/hmdb51/rawframes' +ann_file_train = f'data/hmdb51/hmdb51_train_split_{split}_rawframes.txt' +ann_file_val = f'data/hmdb51/hmdb51_val_split_{split}_rawframes.txt' +ann_file_test = f'data/hmdb51/hmdb51_val_split_{split}_rawframes.txt' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy'], topk=(1, 5)) + +# optimizer +optimizer = dict(type='SGD', lr=0.025, momentum=0.9, weight_decay=0.0001) + +# runtime settings +checkpoint_config = dict(interval=5) +log_config = dict(interval=5) +work_dir = './work_dirs/tsn_r50_1x1x8_50e_hmdb51_mit_rgb/' +load_from = 'https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x6_100e_mit_rgb/tsn_r50_1x1x6_100e_mit_rgb_20200618-d512ab1b.pth' # noqa: E501 +gpu_ids = range(0, 1) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb.py new file mode 100644 index 00000000..0147490a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb.py @@ -0,0 +1,101 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + backbone=dict( + norm_cfg=dict(type='SyncBN', requires_grad=True), norm_eval=True), + cls_head=dict(num_classes=174, dropout_ratio=0.5)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv1/rawframes' +data_root_val = 'data/sthv1/rawframes' +ann_file_train = 'data/sthv1/sthv1_train_list_rawframes.txt' +ann_file_val = 'data/sthv1/sthv1_val_list_rawframes.txt' +ann_file_test = 'data/sthv1/sthv1_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.02, momentum=0.9, + weight_decay=0.0005) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=20, norm_type=2)) + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsn_r50_1x1x8_50e_sthv1_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_sthv2_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_sthv2_rgb.py new file mode 100644 index 00000000..6b33b98a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_1x1x8_50e_sthv2_rgb.py @@ -0,0 +1,93 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_50e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=174, dropout_ratio=0.5)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/sthv2/rawframes' +data_root_val = 'data/sthv2/rawframes' +ann_file_train = 'data/sthv2/sthv2_train_list_rawframes.txt' +ann_file_val = 'data/sthv2/sthv2_val_list_rawframes.txt' +ann_file_test = 'data/sthv2/sthv2_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.02, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsn_r50_1x1x8_50e_sthv2_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb.py new file mode 100644 index 00000000..64554a79 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb.py @@ -0,0 +1,75 @@ +_base_ = ['./tsn_r50_1x1x3_100e_kinetics400_rgb.py'] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train_320p' +data_root_val = 'data/kinetics400/rawframes_val_320p' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes_320p.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes_320p.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes_320p.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=3), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=3, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +# runtime settings +work_dir = './work_dirs/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x3_110e_kinetics400_flow.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x3_110e_kinetics400_flow.py new file mode 100644 index 00000000..761d214a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x3_110e_kinetics400_flow.py @@ -0,0 +1,96 @@ +_base_ = ['../../_base_/models/tsn_r50.py', '../../_base_/default_runtime.py'] + +# model settings +# ``in_channels`` should be 2 * clip_len +model = dict(backbone=dict(in_channels=10)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train_320p' +data_root_val = 'data/kinetics400/rawframes_val_320p' +ann_file_train = 'data/kinetics400/kinetics_flow_train_list.txt' +ann_file_val = 'data/kinetics400/kinetics_flow_val_list.txt' +ann_file_test = 'data/kinetics400/kinetics_flow_val_list.txt' +img_norm_cfg = dict(mean=[128, 128], std=[128, 128]) +train_pipeline = [ + dict(type='SampleFrames', clip_len=5, frame_interval=1, num_clips=3), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW_Flow'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=5, + frame_interval=1, + num_clips=3, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW_Flow'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=5, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW_Flow'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{}_{:05d}.jpg', + modality='Flow', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{}_{:05d}.jpg', + modality='Flow', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{}_{:05d}.jpg', + modality='Flow', + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.005, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[70, 100]) +total_epochs = 110 + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsn_r50_320p_1x1x3_110e_kinetics400_flow/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb.py new file mode 100644 index 00000000..7641b977 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_100e_kinetics400_rgb.py @@ -0,0 +1,85 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_100e.py', + '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train_320p' +data_root_val = 'data/kinetics400/rawframes_val_320p' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes_320p.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes_320p.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes_320p.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=12, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.00375, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus + +# runtime settings +work_dir = './work_dirs/tsn_r50_320p_1x1x8_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_110e_kinetics400_flow.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_110e_kinetics400_flow.py new file mode 100644 index 00000000..3ca87c70 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_110e_kinetics400_flow.py @@ -0,0 +1,96 @@ +_base_ = ['../../_base_/models/tsn_r50.py', '../../_base_/default_runtime.py'] + +# model settings +# ``in_channels`` should be 2 * clip_len +model = dict(backbone=dict(in_channels=10)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train_320p' +data_root_val = 'data/kinetics400/rawframes_val_320p' +ann_file_train = 'data/kinetics400/kinetics400_flow_train_list_320p.txt' +ann_file_val = 'data/kinetics400/kinetics400_flow_val_list_320p.txt' +ann_file_test = 'data/kinetics400/kinetics400_flow_val_list_320p.txt' +img_norm_cfg = dict(mean=[128, 128], std=[128, 128]) +train_pipeline = [ + dict(type='SampleFrames', clip_len=5, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW_Flow'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=5, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW_Flow'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=5, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW_Flow'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=12, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{}_{:05d}.jpg', + modality='Flow', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{}_{:05d}.jpg', + modality='Flow', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{}_{:05d}.jpg', + modality='Flow', + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.001875, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[70, 100]) +total_epochs = 110 + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsn_r50_320p_1x1x8_110e_kinetics400_flow/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow.py new file mode 100644 index 00000000..ebb99828 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow.py @@ -0,0 +1,107 @@ +_base_ = ['../../_base_/models/tsn_r50.py', '../../_base_/default_runtime.py'] + +# model settings +# ``in_channels`` should be 2 * clip_len +model = dict( + backbone=dict(in_channels=10), + cls_head=dict(num_classes=200, dropout_ratio=0.8)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/ActivityNet/rawframes' +data_root_val = 'data/ActivityNet/rawframes' +ann_file_train = 'data/ActivityNet/anet_train_clip.txt' +ann_file_val = 'data/ActivityNet/anet_val_clip.txt' +ann_file_test = 'data/ActivityNet/anet_val_clip.txt' +img_norm_cfg = dict(mean=[128, 128], std=[128, 128], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=5, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW_Flow'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=5, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW_Flow'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=5, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW_Flow'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='flow_{}_{:05d}.jpg', + with_offset=True, + modality='Flow', + start_index=0, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='flow_{}_{:05d}.jpg', + with_offset=True, + modality='Flow', + start_index=0, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='flow_{}_{:05d}.jpg', + with_offset=True, + modality='Flow', + start_index=0, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(type='SGD', lr=0.001, momentum=0.9, weight_decay=0.0001) +# this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[60, 120]) +total_epochs = 150 + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsn_r50_320p_1x1x8_150e_activitynet_clip_flow/' +load_from = ('https://download.openmmlab.com/mmaction/recognition/tsn/' + 'tsn_r50_320p_1x1x8_110e_kinetics400_flow/' + 'tsn_r50_320p_1x1x8_110e_kinetics400_flow_20200705-1f39486b.pth') +workflow = [('train', 5)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_video_flow.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_video_flow.py new file mode 100644 index 00000000..dfab6803 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_150e_activitynet_video_flow.py @@ -0,0 +1,105 @@ +_base_ = ['../../_base_/models/tsn_r50.py', '../../_base_/default_runtime.py'] + +# model settings +# ``in_channels`` should be 2 * clip_len +model = dict( + backbone=dict(in_channels=10), + cls_head=dict(num_classes=200, dropout_ratio=0.8)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/ActivityNet/rawframes' +data_root_val = 'data/ActivityNet/rawframes' +ann_file_train = 'data/ActivityNet/anet_train_video.txt' +ann_file_val = 'data/ActivityNet/anet_val_video.txt' +ann_file_test = 'data/ActivityNet/anet_val_clip.txt' +img_norm_cfg = dict(mean=[128, 128], std=[128, 128], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=5, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW_Flow'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=5, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW_Flow'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=5, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW_Flow'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='flow_{}_{:05d}.jpg', + modality='Flow', + start_index=0, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='flow_{}_{:05d}.jpg', + modality='Flow', + start_index=0, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='flow_{}_{:05d}.jpg', + with_offset=True, + modality='Flow', + start_index=0, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(type='SGD', lr=0.001, momentum=0.9, weight_decay=0.0001) +# this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[60, 120]) +total_epochs = 150 + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsn_r50_320p_1x1x8_150e_activitynet_video_flow/' +load_from = ('https://download.openmmlab.com/mmaction/recognition/tsn/' + 'tsn_r50_320p_1x1x8_110e_kinetics400_flow/' + 'tsn_r50_320p_1x1x8_110e_kinetics400_flow_20200705-1f39486b.pth') +workflow = [('train', 5)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb.py new file mode 100644 index 00000000..7ccb2bee --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb.py @@ -0,0 +1,98 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_50e.py', + '../../_base_/default_runtime.py' +] +# model settings +model = dict(cls_head=dict(num_classes=200, dropout_ratio=0.8)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/ActivityNet/rawframes' +data_root_val = 'data/ActivityNet/rawframes' +ann_file_train = 'data/ActivityNet/anet_train_clip.txt' +ann_file_val = 'data/ActivityNet/anet_val_clip.txt' +ann_file_test = 'data/ActivityNet/anet_val_clip.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline, + with_offset=True, + start_index=0, + filename_tmpl='image_{:05d}.jpg'), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline, + with_offset=True, + start_index=0, + filename_tmpl='image_{:05d}.jpg'), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline, + with_offset=True, + start_index=0, + filename_tmpl='image_{:05d}.jpg')) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(type='SGD', lr=0.001, momentum=0.9, weight_decay=0.0001) + +# runtime settings +work_dir = './work_dirs/tsn_r50_320p_1x1x8_50e_activitynet_clip_rgb/' +load_from = ('https://download.openmmlab.com/mmaction/recognition/tsn/' + 'tsn_r50_320p_1x1x8_100e_kinetics400_rgb/' + 'tsn_r50_320p_1x1x8_100e_kinetics400_rgb_20200702-ef80e3d7.pth') +workflow = [('train', 5)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb.py new file mode 100644 index 00000000..17f1a7e7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb.py @@ -0,0 +1,88 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_50e.py', + '../../_base_/default_runtime.py' +] +# model settings +model = dict(cls_head=dict(num_classes=200, dropout_ratio=0.8)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/ActivityNet/rawframes' +data_root_val = 'data/ActivityNet/rawframes' +ann_file_train = 'data/ActivityNet/anet_train_video.txt' +ann_file_val = 'data/ActivityNet/anet_val_video.txt' +ann_file_test = 'data/ActivityNet/anet_val_video.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict(type='SGD', lr=0.001, momentum=0.9, weight_decay=0.0001) + +# runtime settings +work_dir = './work_dirs/tsn_r50_320p_1x1x8_50e_activitynet_video_rgb/' +load_from = ('https://download.openmmlab.com/mmaction/recognition/tsn/' + 'tsn_r50_320p_1x1x8_100e_kinetics400_rgb/' + 'tsn_r50_320p_1x1x8_100e_kinetics400_rgb_20200702-ef80e3d7.pth') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_clip_feature_extraction_1x1x3_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_clip_feature_extraction_1x1x3_rgb.py new file mode 100644 index 00000000..a64608ac --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_clip_feature_extraction_1x1x3_rgb.py @@ -0,0 +1,42 @@ +# model settings +model = dict( + type='Recognizer2D', + backbone=dict( + type='ResNet', + pretrained='torchvision://resnet50', + depth=50, + norm_eval=False), + train_cfg=None, + test_cfg=dict(feature_extraction=True)) + +# dataset settings +dataset_type = 'VideoDataset' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +test_pipeline = [ + dict(type='DecordInit', num_threads=1), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=1, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + test=dict( + type=dataset_type, + ann_file=None, + data_prefix=None, + pipeline=test_pipeline)) + +dist_params = dict(backend='nccl') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_dense_1x1x5_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_dense_1x1x5_100e_kinetics400_rgb.py new file mode 100644 index 00000000..e8e498e9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_dense_1x1x5_100e_kinetics400_rgb.py @@ -0,0 +1,96 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_100e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(dropout_ratio=0.5, init_std=0.001)) + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DenseSampleFrames', clip_len=1, frame_interval=1, num_clips=5), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='DenseSampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='DenseSampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=2, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.03, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=20, norm_type=2)) + +# runtime settings +work_dir = './work_dirs/tsn_r50_dense_1x1x5_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_dense_1x1x8_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_dense_1x1x8_100e_kinetics400_rgb.py new file mode 100644 index 00000000..70affa83 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_dense_1x1x8_100e_kinetics400_rgb.py @@ -0,0 +1,91 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_100e.py', + '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DenseSampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='DenseSampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='DenseSampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=12, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.005, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus + +# runtime settings +work_dir = './work_dirs/tsn_r50_dense_1x1x8_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_inference_1x1x3_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_inference_1x1x3_100e_kinetics400_rgb.py new file mode 100644 index 00000000..2a9594e2 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_inference_1x1x3_100e_kinetics400_rgb.py @@ -0,0 +1,29 @@ +_base_ = ['../../_base_/models/tsn_r50.py'] + +# dataset settings +dataset_type = 'RawframeDataset' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=1, + workers_per_gpu=2, + test=dict( + type=dataset_type, + ann_file=None, + data_prefix=None, + pipeline=test_pipeline)) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x16_100e_diving48_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x16_100e_diving48_rgb.py new file mode 100644 index 00000000..a2a3e61e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x16_100e_diving48_rgb.py @@ -0,0 +1,98 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_100e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=48)) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/diving48/videos' +data_root_val = 'data/diving48/videos' +ann_file_train = 'data/diving48/diving48_train_list_videos.txt' +ann_file_val = 'data/diving48/diving48_val_list_videos.txt' +ann_file_test = 'data/diving48/diving48_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=16), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=4, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +optimizer = dict( + type='SGD', + lr=0.00125, # this lr is used for 8 gpus + momentum=0.9, + weight_decay=0.0001) + +# runtime settings +work_dir = './work_dirs/tsn_r50_video_1x1x16_100e_diving48_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_diving48_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_diving48_rgb.py new file mode 100644 index 00000000..57a8614f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_diving48_rgb.py @@ -0,0 +1,98 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_100e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=48)) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/diving48/videos' +data_root_val = 'data/diving48/videos' +ann_file_train = 'data/diving48/diving48_train_list_videos.txt' +ann_file_val = 'data/diving48/diving48_val_list_videos.txt' +ann_file_test = 'data/diving48/diving48_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +optimizer = dict( + type='SGD', + lr=0.0025, # this lr is used for 8 gpus + momentum=0.9, + weight_decay=0.0001) + +# runtime settings +work_dir = './work_dirs/tsn_r50_video_1x1x8_100e_diving48_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb.py new file mode 100644 index 00000000..6ca137a8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb.py @@ -0,0 +1,87 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_100e.py', + '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/kinetics400/videos_train' +data_root_val = 'data/kinetics400/videos_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_videos.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_videos.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='DecordDecode'), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +work_dir = './work_dirs/tsn_r50_video_1x1x8_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics600_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics600_rgb.py new file mode 100644 index 00000000..687ce201 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics600_rgb.py @@ -0,0 +1,91 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_100e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=600)) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/kinetics600/videos_train' +data_root_val = 'data/kinetics600/videos_val' +ann_file_train = 'data/kinetics600/kinetics600_train_list_videos.txt' +ann_file_val = 'data/kinetics600/kinetics600_val_list_videos.txt' +ann_file_test = 'data/kinetics600/kinetics600_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='DecordDecode'), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=12, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.00375, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsn_r50_1x1x3_100e_kinetics600_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics700_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics700_rgb.py new file mode 100644 index 00000000..62390025 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics700_rgb.py @@ -0,0 +1,91 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_100e.py', + '../../_base_/default_runtime.py' +] + +# model settings +model = dict(cls_head=dict(num_classes=700)) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/kinetics700/videos_train' +data_root_val = 'data/kinetics700/videos_val' +ann_file_train = 'data/kinetics700/kinetics700_train_list_videos.txt' +ann_file_val = 'data/kinetics700/kinetics700_val_list_videos.txt' +ann_file_test = 'data/kinetics700/kinetics700_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='DecordDecode'), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=12, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.00375, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsn_r50_1x1x3_100e_kinetics700_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb.py new file mode 100644 index 00000000..aff8c54d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb.py @@ -0,0 +1,82 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_100e.py', + '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/kinetics400/videos_train' +data_root_val = 'data/kinetics400/videos_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_videos.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_videos.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=3), + dict(type='DecordDecode'), + dict(type='RandomResizedCrop'), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=3, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +work_dir = './work_dirs/tsn_r50_video_1x1x3_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb.py new file mode 100644 index 00000000..e2f01072 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb.py @@ -0,0 +1,88 @@ +_base_ = [ + '../../_base_/models/tsn_r50.py', '../../_base_/schedules/sgd_100e.py', + '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/kinetics400/videos_train' +data_root_val = 'data/kinetics400/videos_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_videos.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_videos.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='DenseSampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='DecordDecode'), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='DenseSampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='DenseSampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + val_dataloader=dict(videos_per_gpu=1), + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +work_dir = './work_dirs/tsn_r50_video_dense_1x1x8_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_imgaug_1x1x8_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_imgaug_1x1x8_100e_kinetics400_rgb.py new file mode 100644 index 00000000..c16f7a30 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_imgaug_1x1x8_100e_kinetics400_rgb.py @@ -0,0 +1,126 @@ +# model settings +model = dict( + type='Recognizer2D', + backbone=dict( + type='ResNet', + pretrained='torchvision://resnet50', + depth=50, + norm_eval=False), + cls_head=dict( + type='TSNHead', + num_classes=400, + in_channels=2048, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.4, + init_std=0.01), + train_cfg=None, + test_cfg=dict(average_clips=None)) +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/kinetics400/videos_train' +data_root_val = 'data/kinetics400/videos_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_videos.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_videos.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='DecordDecode'), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Imgaug', transforms='default'), + # dict( + # type='Imgaug', + # transforms=[ + # dict(type='Rotate', rotate=(-20, 20)), + # dict(type='Dropout', p=(0, 0.05)) + # ]), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.01, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[40, 80]) +total_epochs = 100 +checkpoint_config = dict(interval=1) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) +log_config = dict( + interval=20, + hooks=[ + dict(type='TextLoggerHook'), + # dict(type='TensorboardLoggerHook'), + ]) +# runtime settings +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/tsn_r50_video_1x1x8_100e_kinetics400_rgb/' +load_from = None +resume_from = None +workflow = [('train', 1)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py new file mode 100644 index 00000000..99dd110c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py @@ -0,0 +1,30 @@ +_base_ = ['../../_base_/models/tsn_r50.py'] + +# dataset settings +dataset_type = 'VideoDataset' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +test_pipeline = [ + dict(type='OpenCVInit', num_threads=1), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='OpenCVDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=1, + workers_per_gpu=2, + test=dict( + type=dataset_type, + ann_file=None, + data_prefix=None, + pipeline=test_pipeline)) diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_mixup_1x1x8_100e_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_mixup_1x1x8_100e_kinetics400_rgb.py new file mode 100644 index 00000000..4f5f2a3a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/tsn/tsn_r50_video_mixup_1x1x8_100e_kinetics400_rgb.py @@ -0,0 +1,107 @@ +_base_ = [ + '../../_base_/schedules/sgd_100e.py', '../../_base_/default_runtime.py' +] + +# model settings +model = dict( + type='Recognizer2D', + backbone=dict( + type='ResNet', + pretrained='torchvision://resnet50', + depth=50, + norm_eval=False), + cls_head=dict( + type='TSNHead', + num_classes=400, + in_channels=2048, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.4, + init_std=0.01), + # model training and testing settings + train_cfg=dict( + blending=dict(type='MixupBlending', num_classes=400, alpha=.2)), + test_cfg=dict(average_clips=None)) + +# dataset settings +dataset_type = 'VideoDataset' +data_root = 'data/kinetics400/videos_train' +data_root_val = 'data/kinetics400/videos_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_videos.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_videos.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_videos.txt' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='DecordInit'), + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8), + dict(type='DecordDecode'), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=8, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict(type='DecordInit'), + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='DecordDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# runtime settings +work_dir = './work_dirs/tsn_r50_video_mixup_1x1x8_100e_kinetics400_rgb/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/README.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/README.md new file mode 100644 index 00000000..0c835e3d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/README.md @@ -0,0 +1,68 @@ +# X3D + +[X3D: Expanding Architectures for Efficient Video Recognition](https://openaccess.thecvf.com/content_CVPR_2020/html/Feichtenhofer_X3D_Expanding_Architectures_for_Efficient_Video_Recognition_CVPR_2020_paper.html) + + + +## Abstract + + + +This paper presents X3D, a family of efficient video networks that progressively expand a tiny 2D image classification architecture along multiple network axes, in space, time, width and depth. Inspired by feature selection methods in machine learning, a simple stepwise network expansion approach is employed that expands a single axis in each step, such that good accuracy to complexity trade-off is achieved. To expand X3D to a specific target complexity, we perform progressive forward expansion followed by backward contraction. X3D achieves state-of-the-art performance while requiring 4.8x and 5.5x fewer multiply-adds and parameters for similar accuracy as previous work. Our most surprising finding is that networks with high spatiotemporal resolution can perform well, while being extremely light in terms of network width and parameters. We report competitive accuracy at unprecedented efficiency on video classification and detection benchmarks. + + + +
+ +
+ +## Results and Models + +### Kinetics-400 + +| config | resolution | backbone | top1 10-view | top1 30-view | reference top1 10-view | reference top1 30-view | ckpt | +| :--------------------------------------------------------------------------------------------------------- | :------------: | :------: | :----------: | :----------: | :----------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------: | +| [x3d_s_13x6x1_facebook_kinetics400_rgb](/configs/recognition/x3d/x3d_s_13x6x1_facebook_kinetics400_rgb.py) | short-side 320 | X3D_S | 72.7 | 73.2 | 73.1 \[[SlowFast](https://github.com/facebookresearch/SlowFast/blob/master/MODEL_ZOO.md)\] | 73.5 \[[SlowFast](https://github.com/facebookresearch/SlowFast/blob/master/MODEL_ZOO.md)\] | [ckpt](https://download.openmmlab.com/mmaction/recognition/x3d/facebook/x3d_s_facebook_13x6x1_kinetics400_rgb_20201027-623825a0.pth)\[1\] | +| [x3d_m_16x5x1_facebook_kinetics400_rgb](/configs/recognition/x3d/x3d_m_16x5x1_facebook_kinetics400_rgb.py) | short-side 320 | X3D_M | 75.0 | 75.6 | 75.1 \[[SlowFast](https://github.com/facebookresearch/SlowFast/blob/master/MODEL_ZOO.md)\] | 76.2 \[[SlowFast](https://github.com/facebookresearch/SlowFast/blob/master/MODEL_ZOO.md)\] | [ckpt](https://download.openmmlab.com/mmaction/recognition/x3d/facebook/x3d_m_facebook_16x5x1_kinetics400_rgb_20201027-3f42382a.pth)\[1\] | + +\[1\] The models are ported from the repo [SlowFast](https://github.com/facebookresearch/SlowFast/) and tested on our data. Currently, we only support the testing of X3D models, training will be available soon. + +:::{note} + +1. The values in columns named after "reference" are the results got by testing the checkpoint released on the original repo and codes, using the same dataset with ours. +2. The validation set of Kinetics400 we used consists of 19796 videos. These videos are available at [Kinetics400-Validation](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB). The corresponding [data list](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (each line is of the format 'video_id, num_frames, label_index') and the [label map](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) are also available. + +::: + +For more details on data preparation, you can refer to Kinetics400 in [Data Preparation](/docs/data_preparation.md). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test X3D model on Kinetics-400 dataset and dump the result to a json file. + +```shell +python tools/test.py configs/recognition/x3d/x3d_s_13x6x1_facebook_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json --average-clips prob +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@misc{feichtenhofer2020x3d, + title={X3D: Expanding Architectures for Efficient Video Recognition}, + author={Christoph Feichtenhofer}, + year={2020}, + eprint={2004.04730}, + archivePrefix={arXiv}, + primaryClass={cs.CV} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/README_zh-CN.md new file mode 100644 index 00000000..5a05b88c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/README_zh-CN.md @@ -0,0 +1,52 @@ +# X3D + +## 简介 + + + +```BibTeX +@misc{feichtenhofer2020x3d, + title={X3D: Expanding Architectures for Efficient Video Recognition}, + author={Christoph Feichtenhofer}, + year={2020}, + eprint={2004.04730}, + archivePrefix={arXiv}, + primaryClass={cs.CV} +} +``` + +## 模型库 + +### Kinetics-400 + +| 配置文件 | 分辨率 | 主干网络 | top1 10-view | top1 30-view | 参考代码的 top1 10-view | 参考代码的 top1 30-view | ckpt | +| :--------------------------------------------------------------------------------------------------------- | :------: | :------: | :----------: | :----------: | :----------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------: | +| [x3d_s_13x6x1_facebook_kinetics400_rgb](/configs/recognition/x3d/x3d_s_13x6x1_facebook_kinetics400_rgb.py) | 短边 320 | X3D_S | 72.7 | 73.2 | 73.1 \[[SlowFast](https://github.com/facebookresearch/SlowFast/blob/master/MODEL_ZOO.md)\] | 73.5 \[[SlowFast](https://github.com/facebookresearch/SlowFast/blob/master/MODEL_ZOO.md)\] | [ckpt](https://download.openmmlab.com/mmaction/recognition/x3d/facebook/x3d_s_facebook_13x6x1_kinetics400_rgb_20201027-623825a0.pth)\[1\] | +| [x3d_m_16x5x1_facebook_kinetics400_rgb](/configs/recognition/x3d/x3d_m_16x5x1_facebook_kinetics400_rgb.py) | 短边 320 | X3D_M | 75.0 | 75.6 | 75.1 \[[SlowFast](https://github.com/facebookresearch/SlowFast/blob/master/MODEL_ZOO.md)\] | 76.2 \[[SlowFast](https://github.com/facebookresearch/SlowFast/blob/master/MODEL_ZOO.md)\] | [ckpt](https://download.openmmlab.com/mmaction/recognition/x3d/facebook/x3d_m_facebook_16x5x1_kinetics400_rgb_20201027-3f42382a.pth)\[1\] | + +\[1\] 这里的模型是从 [SlowFast](https://github.com/facebookresearch/SlowFast/) 代码库中导入并在 MMAction2 使用的数据上进行测试的。目前仅支持 X3D 模型的测试,训练部分将会在近期提供。 + +注: + +1. 参考代码的结果是通过使用相同的数据和原来的代码库所提供的模型进行测试得到的。 +2. 我们使用的 Kinetics400 验证集包含 19796 个视频,用户可以从 [验证集视频](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB) 下载这些视频。同时也提供了对应的 [数据列表](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (每行格式为:视频 ID,视频帧数目,类别序号)以及 [标签映射](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) (类别序号到类别名称)。 + +对于数据集准备的细节,用户可参考 [数据集准备文档](/docs_zh_CN/data_preparation.md) 中的 Kinetics400 部分 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 Kinetics-400 数据集上测试 X3D 模型,并将结果导出为一个 json 文件。 + +```shell +python tools/test.py configs/recognition/x3d/x3d_s_13x6x1_facebook_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json --average-clips prob +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/metafile.yml new file mode 100644 index 00000000..2608a6a9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/metafile.yml @@ -0,0 +1,51 @@ +Collections: +- Name: X3D + README: configs/recognition/x3d/README.md + Paper: + URL: https://arxiv.org/abs/2004.04730 + Title: "X3D: Expanding Architectures for Efficient Video Recognition" +Models: +- Config: configs/recognition/x3d/x3d_s_13x6x1_facebook_kinetics400_rgb.py + In Collection: X3D + Metadata: + Architecture: X3D_S + Batch Size: 1 + FLOPs: 2967543760 + Parameters: 3794322 + Resolution: short-side 320 + Training Data: Kinetics-400 + Modality: RGB + Name: x3d_s_13x6x1_facebook_kinetics400_rgb + Converted From: + Weights: https://dl.fbaipublicfiles.com/pyslowfast/x3d_models/x3d_s.pyth + Code: https://github.com/facebookresearch/SlowFast/ + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 73.2 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/x3d/facebook/x3d_s_facebook_13x6x1_kinetics400_rgb_20201027-623825a0.pth + reference top1 10-view: 73.1 [[SlowFast](https://github.com/facebookresearch/SlowFast/blob/master/MODEL_ZOO.md)] + reference top1 30-view: 73.5 [[SlowFast](https://github.com/facebookresearch/SlowFast/blob/master/MODEL_ZOO.md)] +- Config: configs/recognition/x3d/x3d_m_16x5x1_facebook_kinetics400_rgb.py + In Collection: X3D + Metadata: + Architecture: X3D_M + Batch Size: 1 + FLOPs: 6490866832 + Parameters: 3794322 + Resolution: short-side 320 + Training Data: Kinetics-400 + Modality: RGB + Name: x3d_m_16x5x1_facebook_kinetics400_rgb + Converted From: + Weights: https://dl.fbaipublicfiles.com/pyslowfast/x3d_models/x3d_s.pyth + Code: https://github.com/facebookresearch/SlowFast/ + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 75.6 + Task: Action Recognition + Weights: https://download.openmmlab.com/mmaction/recognition/x3d/facebook/x3d_m_facebook_16x5x1_kinetics400_rgb_20201027-3f42382a.pth + reference top1 10-view: 75.1 [[SlowFast](https://github.com/facebookresearch/SlowFast/blob/master/MODEL_ZOO.md)] + reference top1 30-view: 76.2 [[SlowFast](https://github.com/facebookresearch/SlowFast/blob/master/MODEL_ZOO.md)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/x3d_m_16x5x1_facebook_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/x3d_m_16x5x1_facebook_kinetics400_rgb.py new file mode 100644 index 00000000..baaed73f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/x3d_m_16x5x1_facebook_kinetics400_rgb.py @@ -0,0 +1,33 @@ +_base_ = ['../../_base_/models/x3d.py'] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[114.75, 114.75, 114.75], std=[57.38, 57.38, 57.38], to_bgr=False) +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=16, + frame_interval=5, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=1, + workers_per_gpu=2, + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +dist_params = dict(backend='nccl') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/x3d_s_13x6x1_facebook_kinetics400_rgb.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/x3d_s_13x6x1_facebook_kinetics400_rgb.py new file mode 100644 index 00000000..0de5cf95 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition/x3d/x3d_s_13x6x1_facebook_kinetics400_rgb.py @@ -0,0 +1,33 @@ +_base_ = ['../../_base_/models/x3d.py'] + +# dataset settings +dataset_type = 'RawframeDataset' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +img_norm_cfg = dict( + mean=[114.75, 114.75, 114.75], std=[57.38, 57.38, 57.38], to_bgr=False) +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=13, + frame_interval=6, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 192)), + dict(type='ThreeCrop', crop_size=192), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=1, + workers_per_gpu=2, + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) + +dist_params = dict(backend='nccl') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/audioonly/audioonly_r50_64x1x1_100e_kinetics400_audio_feature.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/audioonly/audioonly_r50_64x1x1_100e_kinetics400_audio_feature.py new file mode 100644 index 00000000..d8be216e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/audioonly/audioonly_r50_64x1x1_100e_kinetics400_audio_feature.py @@ -0,0 +1,80 @@ +_base_ = [ + '../../_base_/models/audioonly_r50.py', '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'AudioFeatureDataset' +data_root = 'data/kinetics400/audio_feature_train' +data_root_val = 'data/kinetics400/audio_feature_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_audio_feature.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_audio_feature.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_audio_feature.txt' +train_pipeline = [ + dict(type='LoadAudioFeature'), + dict(type='SampleFrames', clip_len=64, frame_interval=1, num_clips=1), + dict(type='AudioFeatureSelector'), + dict(type='FormatAudioShape', input_format='NCTF'), + dict(type='Collect', keys=['audios', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['audios']) +] +val_pipeline = [ + dict(type='LoadAudioFeature'), + dict( + type='SampleFrames', + clip_len=64, + frame_interval=1, + num_clips=1, + test_mode=True), + dict(type='AudioFeatureSelector'), + dict(type='FormatAudioShape', input_format='NCTF'), + dict(type='Collect', keys=['audios', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['audios']) +] +test_pipeline = [ + dict(type='LoadAudioFeature'), + dict( + type='SampleFrames', + clip_len=64, + frame_interval=1, + num_clips=10, + test_mode=True), + dict(type='AudioFeatureSelector'), + dict(type='FormatAudioShape', input_format='NCTF'), + dict(type='Collect', keys=['audios', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['audios']) +] +data = dict( + videos_per_gpu=160, + workers_per_gpu=2, + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=2.0, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', min_lr=0) +total_epochs = 100 + +# runtime settings +checkpoint_config = dict(interval=5) +log_config = dict(interval=1) +work_dir = ('./work_dirs/' + + 'audioonly_r50_64x1x1_100e_kinetics400_audio_feature/') diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/README.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/README.md new file mode 100644 index 00000000..7d152616 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/README.md @@ -0,0 +1,97 @@ +# ResNet for Audio + +[Audiovisual SlowFast Networks for Video Recognition](https://arxiv.org/abs/2001.08740) + + + +## Abstract + + + +We present Audiovisual SlowFast Networks, an archi- +tecture for integrated audiovisual perception. AVSlowFast has Slow and Fast visual pathways that are deeply inte- grated with a Faster Audio pathway to model vision and sound in a unified representation. We fuse audio and vi- sual features at multiple layers, enabling audio to con- tribute to the formation of hierarchical audiovisual con- cepts. To overcome training difficulties that arise from dif- ferent learning dynamics for audio and visual modalities, we introduce DropPathway, which randomly drops the Au- dio pathway during training as an effective regularization technique. Inspired by prior studies in neuroscience, we perform hierarchical audiovisual synchronization to learn joint audiovisual features. We report state-of-the-art results on six video action classification and detection datasets, perform detailed ablation studies, and show the gener- alization of AVSlowFast to learn self-supervised audiovi- sual features. Code will be made available at: https: //github.com/facebookresearch/SlowFast. + + + +
+ +
+ +## Results and Models + +### Kinetics-400 + +| config | n_fft | gpus | backbone | pretrain | top1 acc/delta | top5 acc/delta | inference_time(video/s) | gpu_mem(M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---: | :--: | :-----------: | :------: | :------------: | :------------: | :---------------------: | :--------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r18_64x1x1_100e_kinetics400_audio_feature](/configs/recognition_audio/resnet/tsn_r18_64x1x1_100e_kinetics400_audio_feature.py) | 1024 | 8 | ResNet18 | None | 19.7 | 35.75 | x | 1897 | [ckpt](https://download.openmmlab.com/mmaction/recognition/audio_recognition/tsn_r18_64x1x1_100e_kinetics400_audio_feature/tsn_r18_64x1x1_100e_kinetics400_audio_feature_20201012-bf34df6c.pth) | [log](https://download.openmmlab.com/mmaction/recognition/audio_recognition/tsn_r18_64x1x1_100e_kinetics400_audio_feature/20201010_144630.log) | [json](https://download.openmmlab.com/mmaction/recognition/audio_recognition/tsn_r18_64x1x1_100e_kinetics400_audio_feature/20201010_144630.log.json) | +| [tsn_r18_64x1x1_100e_kinetics400_audio_feature](/configs/recognition_audio/resnet/tsn_r18_64x1x1_100e_kinetics400_audio_feature.py) + [tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb.py) | 1024 | 8 | ResNet(18+50) | None | 71.50(+0.39) | 90.18(+0.14) | x | x | x | x | x | + +:::{note} + +1. The **gpus** indicates the number of gpus we used to get the checkpoint. It is noteworthy that the configs we provide are used for 8 gpus as default. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. +2. The **inference_time** is got by this [benchmark script](/tools/analysis/benchmark.py), where we use the sampling frames strategy of the test setting and only care about the model inference time, not including the IO time and pre-processing time. For each setting, we use 1 gpu and set batch size (videos per gpu) to 1 to calculate the inference time. +3. The validation set of Kinetics400 we used consists of 19796 videos. These videos are available at [Kinetics400-Validation](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB). The corresponding [data list](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (each line is of the format 'video_id, num_frames, label_index') and the [label map](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) are also available. + +::: + +For more details on data preparation, you can refer to `Prepare audio` in [Data Preparation](/docs/data_preparation.md). + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train ResNet model on Kinetics-400 audio dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/audio_recognition/tsn_r50_64x1x1_100e_kinetics400_audio_feature.py \ + --work-dir work_dirs/tsn_r50_64x1x1_100e_kinetics400_audio_feature \ + --validate --seed 0 --deterministic +``` + +For more details, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test ResNet model on Kinetics-400 audio dataset and dump the result to a json file. + +```shell +python tools/test.py configs/audio_recognition/tsn_r50_64x1x1_100e_kinetics400_audio_feature.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Fusion + +For multi-modality fusion, you can use the simple [script](/tools/analysis/report_accuracy.py), the standard usage is: + +```shell +python tools/analysis/report_accuracy.py --scores ${AUDIO_RESULT_PKL} ${VISUAL_RESULT_PKL} --datalist data/kinetics400/kinetics400_val_list_rawframes.txt --coefficient 1 1 +``` + +- AUDIO_RESULT_PKL: The saved output file of `tools/test.py` by the argument `--out`. +- VISUAL_RESULT_PKL: The saved output file of `tools/test.py` by the argument `--out`. + +## Citation + +```BibTeX +@article{xiao2020audiovisual, + title={Audiovisual SlowFast Networks for Video Recognition}, + author={Xiao, Fanyi and Lee, Yong Jae and Grauman, Kristen and Malik, Jitendra and Feichtenhofer, Christoph}, + journal={arXiv preprint arXiv:2001.08740}, + year={2020} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/README_zh-CN.md new file mode 100644 index 00000000..922a9c0a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/README_zh-CN.md @@ -0,0 +1,81 @@ +# ResNet for Audio + +## 简介 + + + +```BibTeX +@article{xiao2020audiovisual, + title={Audiovisual SlowFast Networks for Video Recognition}, + author={Xiao, Fanyi and Lee, Yong Jae and Grauman, Kristen and Malik, Jitendra and Feichtenhofer, Christoph}, + journal={arXiv preprint arXiv:2001.08740}, + year={2020} +} +``` + +## 模型库 + +### Kinetics-400 + +| 配置文件 | n_fft | GPU 数量 | 主干网络 | 预训练 | top1 acc/delta | top5 acc/delta | 推理时间 (video/s) | GPU 显存占用 (M) | ckpt | log | json | +| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---: | :------: | :-----------: | :----: | :------------: | :------------: | :----------------: | :--------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------: | +| [tsn_r18_64x1x1_100e_kinetics400_audio_feature](/configs/recognition_audio/resnet/tsn_r18_64x1x1_100e_kinetics400_audio_feature.py) | 1024 | 8 | ResNet18 | None | 19.7 | 35.75 | x | 1897 | [ckpt](https://download.openmmlab.com/mmaction/recognition/audio_recognition/tsn_r18_64x1x1_100e_kinetics400_audio_feature/tsn_r18_64x1x1_100e_kinetics400_audio_feature_20201012-bf34df6c.pth) | [log](https://download.openmmlab.com/mmaction/recognition/audio_recognition/tsn_r18_64x1x1_100e_kinetics400_audio_feature/20201010_144630.log) | [json](https://download.openmmlab.com/mmaction/recognition/audio_recognition/tsn_r18_64x1x1_100e_kinetics400_audio_feature/20201010_144630.log.json) | +| [tsn_r18_64x1x1_100e_kinetics400_audio_feature](/configs/recognition_audio/resnet/tsn_r18_64x1x1_100e_kinetics400_audio_feature.py) + [tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb](/configs/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb.py) | 1024 | 8 | ResNet(18+50) | None | 71.50(+0.39) | 90.18(+0.14) | x | x | x | x | x | + +注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.01 对应 4 GPUs x 2 video/gpu,以及 lr=0.08 对应 16 GPUs x 4 video/gpu。 +2. 这里的 **推理时间** 是根据 [基准测试脚本](/tools/analysis/benchmark.py) 获得的,采用测试时的采帧策略,且只考虑模型的推理时间, + 并不包括 IO 时间以及预处理时间。对于每个配置,MMAction2 使用 1 块 GPU 并设置批大小(每块 GPU 处理的视频个数)为 1 来计算推理时间。 +3. 我们使用的 Kinetics400 验证集包含 19796 个视频,用户可以从 [验证集视频](https://mycuhk-my.sharepoint.com/:u:/g/personal/1155136485_link_cuhk_edu_hk/EbXw2WX94J1Hunyt3MWNDJUBz-nHvQYhO9pvKqm6g39PMA?e=a9QldB) 下载这些视频。同时也提供了对应的 [数据列表](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_val_list.txt) (每行格式为:视频 ID,视频帧数目,类别序号)以及 [标签映射](https://download.openmmlab.com/mmaction/dataset/k400_val/kinetics_class2ind.txt) (类别序号到类别名称)。 + +对于数据集准备的细节,用户可参考 [数据集准备文档](/docs_zh_CN/data_preparation.md) 中的准备音频部分。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: 以一个确定性的训练方式,辅以定期的验证过程进行 ResNet 模型在 Kinetics400 音频数据集上的训练。 + +```shell +python tools/train.py configs/audio_recognition/tsn_r50_64x1x1_100e_kinetics400_audio_feature.py \ + --work-dir work_dirs/tsn_r50_64x1x1_100e_kinetics400_audio_feature \ + --validate --seed 0 --deterministic +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 Kinetics400 音频数据集上测试 ResNet 模型,并将结果导出为一个 json 文件。 + +```shell +python tools/test.py configs/audio_recognition/tsn_r50_64x1x1_100e_kinetics400_audio_feature.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.json +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 + +## 融合 + +对于多模态融合,用户可以使用这个 [脚本](/tools/analysis/report_accuracy.py),其命令大致为: + +```shell +python tools/analysis/report_accuracy.py --scores ${AUDIO_RESULT_PKL} ${VISUAL_RESULT_PKL} --datalist data/kinetics400/kinetics400_val_list_rawframes.txt --coefficient 1 1 +``` + +- AUDIO_RESULT_PKL: `tools/test.py` 脚本通过 `--out` 选项存储的输出文件。 +- VISUAL_RESULT_PKL: `tools/test.py` 脚本通过 `--out` 选项存储的输出文件。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/metafile.yml new file mode 100644 index 00000000..42ebc2bd --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/metafile.yml @@ -0,0 +1,27 @@ +Collections: +- Name: Audio + README: configs/recognition_audio/resnet/README.md +Models: +- Config: configs/recognition_audio/resnet/tsn_r18_64x1x1_100e_kinetics400_audio_feature.py + In Collection: Audio + Metadata: + Architecture: ResNet18 + Pretrained: None + Training Data: Kinetics-400 + Training Resources: 8 GPUs + n_fft: '1024' + Modality: Audio + Name: tsn_r18_64x1x1_100e_kinetics400_audio_feature + Results: + - Dataset: Kinetics-400 + Metrics: + Top 1 Accuracy: 19.7 + Top 1 Accuracy [w. RGB]: 71.5 + Top 1 Accuracy delta [w. RGB]: 0.39 + Top 5 Accuracy: 35.75 + top5 accuracy [w. RGB]: 90.18 + top5 accuracy delta [w. RGB]: 0.14 + Task: Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/recognition/audio_recognition/tsn_r18_64x1x1_100e_kinetics400_audio_feature/20201010_144630.log.json + Training Log: https://download.openmmlab.com/mmaction/recognition/audio_recognition/tsn_r18_64x1x1_100e_kinetics400_audio_feature/20201010_144630.log + Weights: https://download.openmmlab.com/mmaction/recognition/audio_recognition/tsn_r18_64x1x1_100e_kinetics400_audio_feature/tsn_r18_64x1x1_100e_kinetics400_audio_feature_20201012-bf34df6c.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/tsn_r18_64x1x1_100e_kinetics400_audio_feature.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/tsn_r18_64x1x1_100e_kinetics400_audio_feature.py new file mode 100644 index 00000000..d8b5c1e6 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/tsn_r18_64x1x1_100e_kinetics400_audio_feature.py @@ -0,0 +1,89 @@ +_base_ = ['../../_base_/default_runtime.py'] + +# model settings +model = dict( + type='AudioRecognizer', + backbone=dict(type='ResNet', depth=18, in_channels=1, norm_eval=False), + cls_head=dict( + type='AudioTSNHead', + num_classes=400, + in_channels=512, + dropout_ratio=0.5, + init_std=0.01), + # model training and testing settings + train_cfg=None, + test_cfg=dict(average_clips='prob')) +# dataset settings +dataset_type = 'AudioFeatureDataset' +data_root = 'data/kinetics400/audio_feature_train' +data_root_val = 'data/kinetics400/audio_feature_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_audio_feature.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_audio_feature.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_audio_feature.txt' +train_pipeline = [ + dict(type='LoadAudioFeature'), + dict(type='SampleFrames', clip_len=64, frame_interval=1, num_clips=1), + dict(type='AudioFeatureSelector'), + dict(type='FormatAudioShape', input_format='NCTF'), + dict(type='Collect', keys=['audios', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['audios']) +] +val_pipeline = [ + dict(type='LoadAudioFeature'), + dict( + type='SampleFrames', + clip_len=64, + frame_interval=1, + num_clips=1, + test_mode=True), + dict(type='AudioFeatureSelector'), + dict(type='FormatAudioShape', input_format='NCTF'), + dict(type='Collect', keys=['audios', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['audios']) +] +test_pipeline = [ + dict(type='LoadAudioFeature'), + dict( + type='SampleFrames', + clip_len=64, + frame_interval=1, + num_clips=1, + test_mode=True), + dict(type='AudioFeatureSelector'), + dict(type='FormatAudioShape', input_format='NCTF'), + dict(type='Collect', keys=['audios', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['audios']) +] +data = dict( + videos_per_gpu=320, + workers_per_gpu=2, + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', min_lr=0) +total_epochs = 100 + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsn_r18_64x1x1_100e_kinetics400_audio_feature/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/tsn_r50_64x1x1_100e_kinetics400_audio.py b/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/tsn_r50_64x1x1_100e_kinetics400_audio.py new file mode 100644 index 00000000..a806dea7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/recognition_audio/resnet/tsn_r50_64x1x1_100e_kinetics400_audio.py @@ -0,0 +1,84 @@ +_base_ = [ + '../../_base_/models/tsn_r50_audio.py', '../../_base_/default_runtime.py' +] + +# dataset settings +dataset_type = 'AudioDataset' +data_root = 'data/kinetics400/audios' +data_root_val = 'data/kinetics400/audios' +ann_file_train = 'data/kinetics400/kinetics400_train_list_audio.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_audio.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_audio.txt' +train_pipeline = [ + dict(type='AudioDecodeInit'), + dict(type='SampleFrames', clip_len=64, frame_interval=1, num_clips=1), + dict(type='AudioDecode'), + dict(type='AudioAmplify', ratio=1.5), + dict(type='MelLogSpectrogram'), + dict(type='FormatAudioShape', input_format='NCTF'), + dict(type='Collect', keys=['audios', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['audios']) +] +val_pipeline = [ + dict(type='AudioDecodeInit'), + dict( + type='SampleFrames', + clip_len=64, + frame_interval=1, + num_clips=1, + test_mode=True), + dict(type='AudioDecode'), + dict(type='AudioAmplify', ratio=1.5), + dict(type='MelLogSpectrogram'), + dict(type='FormatAudioShape', input_format='NCTF'), + dict(type='Collect', keys=['audios', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['audios']) +] +test_pipeline = [ + dict(type='AudioDecodeInit'), + dict( + type='SampleFrames', + clip_len=64, + frame_interval=1, + num_clips=1, + test_mode=True), + dict(type='AudioDecodeInit'), + dict(type='AudioAmplify', ratio=1.5), + dict(type='MelLogSpectrogram'), + dict(type='FormatAudioShape', input_format='NCTF'), + dict(type='Collect', keys=['audios', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['audios']) +] +data = dict( + videos_per_gpu=320, + workers_per_gpu=2, + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) +evaluation = dict( + interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy']) + +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', min_lr=0) +total_epochs = 100 + +# runtime settings +checkpoint_config = dict(interval=5) +work_dir = './work_dirs/tsn_r50_64x1x1_100e_kinetics400_audio/' diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d.py b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d.py new file mode 100644 index 00000000..4a8ffbfc --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d.py @@ -0,0 +1,79 @@ +model = dict( + type='SkeletonGCN', + backbone=dict( + type='AGCN', + in_channels=3, + graph_cfg=dict(layout='ntu-rgb+d', strategy='agcn')), + cls_head=dict( + type='STGCNHead', + num_classes=60, + in_channels=256, + loss_cls=dict(type='CrossEntropyLoss')), + train_cfg=None, + test_cfg=None) + +dataset_type = 'PoseDataset' +ann_file_train = 'data/ntu/nturgb+d_skeletons_60_3d/xsub/train.pkl' +ann_file_val = 'data/ntu/nturgb+d_skeletons_60_3d/xsub/val.pkl' +train_pipeline = [ + dict(type='PaddingWithLoop', clip_len=300), + dict(type='PoseDecode'), + dict(type='JointToBone'), + dict(type='FormatGCNInput', input_format='NCTVM'), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +val_pipeline = [ + dict(type='PaddingWithLoop', clip_len=300), + dict(type='PoseDecode'), + dict(type='JointToBone'), + dict(type='FormatGCNInput', input_format='NCTVM'), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +test_pipeline = [ + dict(type='PaddingWithLoop', clip_len=300), + dict(type='PoseDecode'), + dict(type='JointToBone'), + dict(type='FormatGCNInput', input_format='NCTVM'), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +data = dict( + videos_per_gpu=12, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix='', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=test_pipeline)) + +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001, nesterov=True) +optimizer_config = dict(grad_clip=None) +# learning policy +lr_config = dict(policy='step', step=[30, 40]) +total_epochs = 80 +checkpoint_config = dict(interval=3) +evaluation = dict(interval=3, metrics=['top_k_accuracy']) +log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')]) + +# runtime settings +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/2sagcn_80e_ntu60_xsub_bone_3d/' +load_from = None +resume_from = None +workflow = [('train', 1)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d.py b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d.py new file mode 100644 index 00000000..b2f4422a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d.py @@ -0,0 +1,76 @@ +model = dict( + type='SkeletonGCN', + backbone=dict( + type='AGCN', + in_channels=3, + graph_cfg=dict(layout='ntu-rgb+d', strategy='agcn')), + cls_head=dict( + type='STGCNHead', + num_classes=60, + in_channels=256, + loss_cls=dict(type='CrossEntropyLoss')), + train_cfg=None, + test_cfg=None) + +dataset_type = 'PoseDataset' +ann_file_train = 'data/ntu/nturgb+d_skeletons_60_3d/xsub/train.pkl' +ann_file_val = 'data/ntu/nturgb+d_skeletons_60_3d/xsub/val.pkl' +train_pipeline = [ + dict(type='PaddingWithLoop', clip_len=300), + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM'), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +val_pipeline = [ + dict(type='PaddingWithLoop', clip_len=300), + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM'), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +test_pipeline = [ + dict(type='PaddingWithLoop', clip_len=300), + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM'), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +data = dict( + videos_per_gpu=12, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix='', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=test_pipeline)) + +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001, nesterov=True) +optimizer_config = dict(grad_clip=None) +# learning policy +lr_config = dict(policy='step', step=[30, 40]) +total_epochs = 80 +checkpoint_config = dict(interval=3) +evaluation = dict(interval=3, metrics=['top_k_accuracy']) +log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')]) + +# runtime settings +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/2sagcn_80e_ntu60_xsub_keypoint_3d/' +load_from = None +resume_from = None +workflow = [('train', 1)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/README.md b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/README.md new file mode 100644 index 00000000..651142af --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/README.md @@ -0,0 +1,90 @@ +# AGCN + +[Two-Stream Adaptive Graph Convolutional Networks for Skeleton-Based Action Recognition](https://openaccess.thecvf.com/content_CVPR_2019/html/Shi_Two-Stream_Adaptive_Graph_Convolutional_Networks_for_Skeleton-Based_Action_Recognition_CVPR_2019_paper.html) + + + +## Abstract + + + +In skeleton-based action recognition, graph convolutional networks (GCNs), which model the human body skeletons as spatiotemporal graphs, have achieved remarkable performance. However, in existing GCN-based methods, the topology of the graph is set manually, and it is fixed over all layers and input samples. This may not be optimal for the hierarchical GCN and diverse samples in action recognition tasks. In addition, the second-order information (the lengths and directions of bones) of the skeleton data, which is naturally more informative and discriminative for action recognition, is rarely investigated in existing methods. In this work, we propose a novel two-stream adaptive graph convolutional network (2s-AGCN) for skeleton-based action recognition. The topology of the graph in our model can be either uniformly or individually learned by the BP algorithm in an end-to-end manner. This data-driven method increases the flexibility of the model for graph construction and brings more generality to adapt to various data samples. Moreover, a two-stream framework is proposed to model both the first-order and the second-order information simultaneously, which shows notable improvement for the recognition accuracy. Extensive experiments on the two large-scale datasets, NTU-RGBD and Kinetics-Skeleton, demonstrate that the performance of our model exceeds the state-of-the-art with a significant margin. + + + +
+ +
+ +## Results and Models + +### NTU60_XSub + +| config | type | gpus | backbone | Top-1 | ckpt | log | json | +| :-------------------------------------------------------------------------------------------------- | :---: | :--: | :------: | :---: | :-----------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------: | +| [2sagcn_80e_ntu60_xsub_keypoint_3d](/configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d.py) | joint | 1 | AGCN | 86.06 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d/2sagcn_80e_ntu60_xsub_keypoint_3d-3bed61ba.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d/2sagcn_80e_ntu60_xsub_keypoint_3d.log) | [json](https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d/2sagcn_80e_ntu60_xsub_keypoint_3d.json) | +| [2sagcn_80e_ntu60_xsub_bone_3d](/configs/skeleton/ss-agcn/2sagcn_80e_ntu60_xsub_bone_3d.py) | bone | 2 | AGCN | 86.89 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d/2sagcn_80e_ntu60_xsub_bone_3d-278b8815.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d/2sagcn_80e_ntu60_xsub_bone_3d.log) | [json](https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d/2sagcn_80e_ntu60_xsub_bone_3d.json) | + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train AGCN model on joint data of NTU60 dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d.py \ + --work-dir work_dirs/2sagcn_80e_ntu60_xsub_keypoint_3d \ + --validate --seed 0 --deterministic +``` + +Example: train AGCN model on bone data of NTU60 dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d.py \ + --work-dir work_dirs/2sagcn_80e_ntu60_xsub_bone_3d \ + --validate --seed 0 --deterministic +``` + +For more details, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test AGCN model on joint data of NTU60 dataset and dump the result to a pickle file. + +```shell +python tools/test.py configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out joint_result.pkl +``` + +Example: test AGCN model on bone data of NTU60 dataset and dump the result to a pickle file. + +```shell +python tools/test.py configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out bone_result.pkl +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@inproceedings{shi2019two, + title={Two-stream adaptive graph convolutional networks for skeleton-based action recognition}, + author={Shi, Lei and Zhang, Yifan and Cheng, Jian and Lu, Hanqing}, + booktitle={Proceedings of the IEEE/CVF conference on computer vision and pattern recognition}, + pages={12026--12035}, + year={2019} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/README_zh-CN.md new file mode 100644 index 00000000..cb7707a2 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/README_zh-CN.md @@ -0,0 +1,76 @@ +# AGCN + +## 简介 + + + +```BibTeX +@inproceedings{shi2019two, + title={Two-stream adaptive graph convolutional networks for skeleton-based action recognition}, + author={Shi, Lei and Zhang, Yifan and Cheng, Jian and Lu, Hanqing}, + booktitle={Proceedings of the IEEE/CVF conference on computer vision and pattern recognition}, + pages={12026--12035}, + year={2019} +} +``` + +## 模型库 + +### NTU60_XSub + +| 配置文件 | 数据格式 | GPU 数量 | 主干网络 | top1 准确率 | ckpt | log | json | +| :-------------------------------------------------------------------------------------------------- | :------: | :------: | :------: | :---------: | :-----------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------: | +| [2sagcn_80e_ntu60_xsub_keypoint_3d](/configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d.py) | joint | 1 | AGCN | 86.06 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d/2sagcn_80e_ntu60_xsub_keypoint_3d-3bed61ba.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d/2sagcn_80e_ntu60_xsub_keypoint_3d.log) | [json](https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d/2sagcn_80e_ntu60_xsub_keypoint_3d.json) | +| [2sagcn_80e_ntu60_xsub_bone_3d](/configs/skeleton/ss-agcn/2sagcn_80e_ntu60_xsub_bone_3d.py) | bone | 2 | AGCN | 86.89 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d/2sagcn_80e_ntu60_xsub_bone_3d-278b8815.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d/2sagcn_80e_ntu60_xsub_bone_3d.log) | [json](https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d/2sagcn_80e_ntu60_xsub_bone_3d.json) | + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:以一个确定性的训练方式,辅以定期的验证过程进行 AGCN 模型在 NTU60 数据集的骨骼数据上的训练。 + +```shell +python tools/train.py configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d.py \ + --work-dir work_dirs/2sagcn_80e_ntu60_xsub_keypoint_3d \ + --validate --seed 0 --deterministic +``` + +例如:以一个确定性的训练方式,辅以定期的验证过程进行 AGCN 模型在 NTU60 数据集的关节数据上的训练。 + +```shell +python tools/train.py configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d.py \ + --work-dir work_dirs/2sagcn_80e_ntu60_xsub_bone_3d \ + --validate --seed 0 --deterministic +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 NTU60 数据集的骨骼数据上测试 AGCN 模型,并将结果导出为一个 pickle 文件。 + +```shell +python tools/test.py configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out joint_result.pkl +``` + +例如:在 NTU60 数据集的关节数据上测试 AGCN 模型,并将结果导出为一个 pickle 文件。 + +```shell +python tools/test.py configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out bone_result.pkl +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/metafile.yml new file mode 100644 index 00000000..30d5804f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/2s-agcn/metafile.yml @@ -0,0 +1,40 @@ +Collections: +- Name: AGCN + README: configs/skeleton/2s-agcn/README.md +Models: +- Config: configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d.py + In Collection: AGCN + Metadata: + Architecture: AGCN + Batch Size: 24 + Epochs: 80 + Parameters: 3472176 + Training Data: NTU60-XSub + Training Resources: 1 GPU + Name: agcn_80e_ntu60_xsub_keypoint_3d + Results: + Dataset: NTU60-XSub + Metrics: + Top 1 Accuracy: 86.06 + Task: Skeleton-based Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d/2sagcn_80e_ntu60_xsub_keypoint_3d.json + Training Log: https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d/2sagcn_80e_ntu60_xsub_keypoint_3d.log + Weights: https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_keypoint_3d/2sagcn_80e_ntu60_xsub_keypoint_3d-3bed61ba.pth +- Config: configs/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d.py + In Collection: AGCN + Metadata: + Architecture: AGCN + Batch Size: 24 + Epochs: 80 + Parameters: 3472176 + Training Data: NTU60-XSub + Training Resources: 2 GPU + Name: agcn_80e_ntu60_xsub_bone_3d + Results: + Dataset: NTU60-XSub + Metrics: + Top 1 Accuracy: 86.89 + Task: Skeleton-based Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d/2sagcn_80e_ntu60_xsub_bone_3d.json + Training Log: https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d/2sagcn_80e_ntu60_xsub_bone_3d.log + Weights: https://download.openmmlab.com/mmaction/skeleton/2s-agcn/2sagcn_80e_ntu60_xsub_bone_3d/2sagcn_80e_ntu60_xsub_bone_3d-278b8815.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/README.md b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/README.md new file mode 100644 index 00000000..e8837c85 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/README.md @@ -0,0 +1,149 @@ +# PoseC3D + +[Revisiting Skeleton-based Action Recognition](https://arxiv.org/abs/2104.13586) + + + +## Abstract + + + +Human skeleton, as a compact representation of human action, has received increasing attention in recent years. Many skeleton-based action recognition methods adopt graph convolutional networks (GCN) to extract features on top of human skeletons. Despite the positive results shown in previous works, GCN-based methods are subject to limitations in robustness, interoperability, and scalability. In this work, we propose PoseC3D, a new approach to skeleton-based action recognition, which relies on a 3D heatmap stack instead of a graph sequence as the base representation of human skeletons. Compared to GCN-based methods, PoseC3D is more effective in learning spatiotemporal features, more robust against pose estimation noises, and generalizes better in cross-dataset settings. Also, PoseC3D can handle multiple-person scenarios without additional computation cost, and its features can be easily integrated with other modalities at early fusion stages, which provides a great design space to further boost the performance. On four challenging datasets, PoseC3D consistently obtains superior performance, when used alone on skeletons and in combination with the RGB modality. + + + +
+ +
+ + + + + + + + + +
+
+ Pose Estimation Results +
+ +
+
+ +
+
+ Keypoint Heatmap Volume Visualization +
+ +
+
+ +
+
+ Limb Heatmap Volume Visualization +
+ +
+
+ +
+ +## Results and Models + +### FineGYM + +| config | pseudo heatmap | gpus | backbone | Mean Top-1 | ckpt | log | json | +| :---------------------------------------------------------------------------------------------------- | :------------: | :---: | :----------: | :--------: | :-------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_u48_240e_gym_keypoint](/configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint.py) | keypoint | 8 x 2 | SlowOnly-R50 | 93.7 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint/slowonly_r50_u48_240e_gym_keypoint-b07a98a0.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint/slowonly_r50_u48_240e_gym_keypoint.log) | [json](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint/slowonly_r50_u48_240e_gym_keypoint.json) | +| [slowonly_r50_u48_240e_gym_limb](/configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_limb.py) | limb | 8 x 2 | SlowOnly-R50 | 94.0 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_limb/slowonly_r50_u48_240e_gym_limb-c0d7b482.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_limb/slowonly_r50_u48_240e_gym_limb.log) | [json](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_limb/slowonly_r50_u48_240e_gym_limb.json) | +| Fusion | | | | 94.3 | | | | + +### NTU60_XSub + +| config | pseudo heatmap | gpus | backbone | Top-1 | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------ | :------------: | :---: | :----------: | :---: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_u48_240e_ntu60_xsub_keypoint](/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_keypoint.py) | keypoint | 8 x 2 | SlowOnly-R50 | 93.7 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_keypoint/slowonly_r50_u48_240e_ntu60_xsub_keypoint-f3adabf1.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_keypoint/slowonly_r50_u48_240e_ntu60_xsub_keypoint.log) | [json](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_keypoint/slowonly_r50_u48_240e_ntu60_xsub_keypoint.json) | +| [slowonly_r50_u48_240e_ntu60_xsub_limb](/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_limb.py) | limb | 8 x 2 | SlowOnly-R50 | 93.4 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_limb/slowonly_r50_u48_240e_ntu60_xsub_limb-1d69006a.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_limb/slowonly_r50_u48_240e_ntu60_xsub_limb.log) | [json](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_limb/slowonly_r50_u48_240e_ntu60_xsub_limb.json) | +| Fusion | | | | 94.1 | | | | + +### NTU120_XSub + +| config | pseudo heatmap | gpus | backbone | Top-1 | ckpt | log | json | +| :-------------------------------------------------------------------------------------------------------------------- | :------------: | :---: | :----------: | :---: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_u48_240e_ntu120_xsub_keypoint](/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint.py) | keypoint | 8 x 2 | SlowOnly-R50 | 86.3 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint/slowonly_r50_u48_240e_ntu120_xsub_keypoint-6736b03f.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint/slowonly_r50_u48_240e_ntu120_xsub_keypoint.log) | [json](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint/slowonly_r50_u48_240e_ntu120_xsub_keypoint.json) | +| [slowonly_r50_u48_240e_ntu120_xsub_limb](/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_limb.py) | limb | 8 x 2 | SlowOnly-R50 | 85.7 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_limb/slowonly_r50_u48_240e_ntu120_xsub_limb-803c2317.pth?) | [log](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_limb/slowonly_r50_u48_240e_ntu120_xsub_limb.log) | [json](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_limb/slowonly_r50_u48_240e_ntu120_xsub_limb.json) | +| Fusion | | | | 86.9 | | | | + +### UCF101 + +| config | pseudo heatmap | gpus | backbone | Top-1 | ckpt | log | json | +| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------: | :--: | :----------: | :---: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint](/configs/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint.py) | keypoint | 8 | SlowOnly-R50 | 87.0 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint-cae8aa4a.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint.log) | [json](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint.json) | + +### HMDB51 + +| config | pseudo heatmap | gpus | backbone | Top-1 | ckpt | log | json | +| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------: | :--: | :----------: | :---: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint](/configs/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint.py) | keypoint | 8 | SlowOnly-R50 | 69.3 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint-76ffdd8b.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint.log) | [json](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint.json) | + +:::{note} + +1. The **gpus** indicates the number of gpu we used to get the checkpoint. It is noteworthy that the configs we provide are used for 8 gpus as default. + According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you may set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, + e.g., lr=0.01 for 8 GPUs x 8 videos/gpu and lr=0.04 for 16 GPUs x 16 videos/gpu. +2. You can follow the guide in [Preparing Skeleton Dataset](https://github.com/open-mmlab/mmaction2/tree/master/tools/data/skeleton) to obtain skeleton annotations used in the above configs. + +::: + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train PoseC3D model on FineGYM dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint.py \ + --work-dir work_dirs/slowonly_r50_u48_240e_gym_keypoint \ + --validate --seed 0 --deterministic +``` + +For training with your custom dataset, you can refer to [Custom Dataset Training](https://github.com/open-mmlab/mmaction2/blob/master/configs/skeleton/posec3d/custom_dataset_training.md). + +For more details, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test PoseC3D model on FineGYM dataset and dump the result to a pickle file. + +```shell +python tools/test.py configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.pkl +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@misc{duan2021revisiting, + title={Revisiting Skeleton-based Action Recognition}, + author={Haodong Duan and Yue Zhao and Kai Chen and Dian Shao and Dahua Lin and Bo Dai}, + year={2021}, + eprint={2104.13586}, + archivePrefix={arXiv}, + primaryClass={cs.CV} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/README_zh-CN.md new file mode 100644 index 00000000..9aa2bf47 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/README_zh-CN.md @@ -0,0 +1,133 @@ +# PoseC3D + +## 简介 + + + +```BibTeX +@misc{duan2021revisiting, + title={Revisiting Skeleton-based Action Recognition}, + author={Haodong Duan and Yue Zhao and Kai Chen and Dian Shao and Dahua Lin and Bo Dai}, + year={2021}, + eprint={2104.13586}, + archivePrefix={arXiv}, + primaryClass={cs.CV} +} +``` + + + + + + + + + +
+
+ 姿态估计结果 +
+ +
+
+ +
+
+ 关键点热图三维体可视化 +
+ +
+
+ +
+
+ 肢体热图三维体可视化 +
+ +
+
+ +
+ +## 模型库 + +### FineGYM + +| 配置文件 | 热图类型 | GPU 数量 | 主干网络 | Mean Top-1 | ckpt | log | json | +| :---------------------------------------------------------------------------------------------------- | :------: | :------: | :----------: | :--------: | :-------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_u48_240e_gym_keypoint](/configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint.py) | 关键点 | 8 x 2 | SlowOnly-R50 | 93.7 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint/slowonly_r50_u48_240e_gym_keypoint-b07a98a0.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint/slowonly_r50_u48_240e_gym_keypoint.log) | [json](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint/slowonly_r50_u48_240e_gym_keypoint.json) | +| [slowonly_r50_u48_240e_gym_limb](/configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_limb.py) | 肢体 | 8 x 2 | SlowOnly-R50 | 94.0 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_limb/slowonly_r50_u48_240e_gym_limb-c0d7b482.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_limb/slowonly_r50_u48_240e_gym_limb.log) | [json](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_limb/slowonly_r50_u48_240e_gym_limb.json) | +| 融合预测结果 | | | | 94.3 | | | | + +### NTU60_XSub + +| 配置文件 | 热图类型 | GPU 数量 | 主干网络 | Top-1 | ckpt | log | json | +| :------------------------------------------------------------------------------------------------------------------ | :------: | :------: | :----------: | :---: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_u48_240e_ntu60_xsub_keypoint](/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_keypoint.py) | 关键点 | 8 x 2 | SlowOnly-R50 | 93.7 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_keypoint/slowonly_r50_u48_240e_ntu60_xsub_keypoint-f3adabf1.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_keypoint/slowonly_r50_u48_240e_ntu60_xsub_keypoint.log) | [json](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_keypoint/slowonly_r50_u48_240e_ntu60_xsub_keypoint.json) | +| [slowonly_r50_u48_240e_ntu60_xsub_limb](/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_limb.py) | 肢体 | 8 x 2 | SlowOnly-R50 | 93.4 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_limb/slowonly_r50_u48_240e_ntu60_xsub_limb-1d69006a.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_limb/slowonly_r50_u48_240e_ntu60_xsub_limb.log) | [json](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_limb/slowonly_r50_u48_240e_ntu60_xsub_limb.json) | +| 融合预测结果 | | | | 94.1 | | | | + +### NTU120_XSub + +| 配置文件 | 热图类型 | GPU 数量 | 主干网络 | Top-1 | ckpt | log | json | +| :-------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :----------: | :---: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_r50_u48_240e_ntu120_xsub_keypoint](/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint.py) | 关键点 | 8 x 2 | SlowOnly-R50 | 86.3 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint/slowonly_r50_u48_240e_ntu120_xsub_keypoint-6736b03f.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint/slowonly_r50_u48_240e_ntu120_xsub_keypoint.log) | [json](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint/slowonly_r50_u48_240e_ntu120_xsub_keypoint.json) | +| [slowonly_r50_u48_240e_ntu120_xsub_limb](/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_limb.py) | 肢体 | 8 x 2 | SlowOnly-R50 | 85.7 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_limb/slowonly_r50_u48_240e_ntu120_xsub_limb-803c2317.pth?) | [log](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_limb/slowonly_r50_u48_240e_ntu120_xsub_limb.log) | [json](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_limb/slowonly_r50_u48_240e_ntu120_xsub_limb.json) | +| 融合预测结果 | | | | 86.9 | | | | + +### UCF101 + +| 配置文件 | 热图类型 | GPU 数量 | 主干网络 | Top-1 | ckpt | log | json | +| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :----------: | :---: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint](/configs/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint.py) | 关键点 | 8 | SlowOnly-R50 | 87.0 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint-cae8aa4a.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint.log) | [json](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint.json) | + +### HMDB51 + +| 配置文件 | 热图类型 | GPU 数量 | 主干网络 | Top-1 | ckpt | log | json | +| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------: | :------: | :----------: | :---: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint](/configs/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint.py) | 关键点 | 8 | SlowOnly-R50 | 69.3 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint-76ffdd8b.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint.log) | [json](https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint.json) | + +注: + +1. 这里的 **GPU 数量** 指的是得到模型权重文件对应的 GPU 个数。默认地,MMAction2 所提供的配置文件对应使用 8 块 GPU 进行训练的情况。 + 依据 [线性缩放规则](https://arxiv.org/abs/1706.02677),当用户使用不同数量的 GPU 或者每块 GPU 处理不同视频个数时,需要根据批大小等比例地调节学习率。 + 如,lr=0.2 对应 8 GPUs x 16 video/gpu,以及 lr=0.4 对应 16 GPUs x 16 video/gpu。 +2. 用户可以参照 [准备骨骼数据集](https://github.com/open-mmlab/mmaction2/blob/master/tools/data/skeleton/README_zh-CN.md) 来获取以上配置文件使用的骨骼标注。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: 以确定性的训练,加以定期的验证过程进行 PoseC3D 模型在 FineGYM 数据集上的训练。 + +```shell +python tools/train.py configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint.py \ + --work-dir work_dirs/slowonly_r50_u48_240e_gym_keypoint \ + --validate --seed 0 --deterministic +``` + +有关自定义数据集上的训练,可以参考 [Custom Dataset Training](https://github.com/open-mmlab/mmaction2/blob/master/configs/skeleton/posec3d/custom_dataset_training.md)。 + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: 在 FineGYM 数据集上测试 PoseC3D 模型,并将结果导出为一个 pickle 文件。 + +```shell +python tools/test.py configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.pkl +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/custom_dataset_training.md b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/custom_dataset_training.md new file mode 100644 index 00000000..cb5b2f64 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/custom_dataset_training.md @@ -0,0 +1,41 @@ +# Custom Dataset Training with PoseC3D + +We provide a step-by-step tutorial on how to train your custom dataset with PoseC3D. + +1. First, you should know that action recognition with PoseC3D requires skeleton information only and for that you need to prepare your custom annotation files (for training and validation). To start with, you need to replace the placeholder `mmdet_root` and `mmpose_root` in `ntu_pose_extraction.py` with your installation path. Then you need to take advantage of [ntu_pose_extraction.py](https://github.com/open-mmlab/mmaction2/blob/90fc8440961987b7fe3ee99109e2c633c4e30158/tools/data/skeleton/ntu_pose_extraction.py) as shown in [Prepare Annotations](https://github.com/open-mmlab/mmaction2/blob/master/tools/data/skeleton/README.md#prepare-annotations) to extract 2D keypoints for each video in your custom dataset. The command looks like (assuming the name of your video is `some_video_from_my_dataset.mp4`): + + ```shell + # You can use the above command to generate pickle files for all of your training and validation videos. + python ntu_pose_extraction.py some_video_from_my_dataset.mp4 some_video_from_my_dataset.pkl + ``` + + @kennymckormick's [note](https://github.com/open-mmlab/mmaction2/issues/1216#issuecomment-950130079): + + > One only thing you may need to change is that: since ntu_pose_extraction.py is developed specifically for pose extraction of NTU videos, you can skip the [ntu_det_postproc](https://github.com/open-mmlab/mmaction2/blob/90fc8440961987b7fe3ee99109e2c633c4e30158/tools/data/skeleton/ntu_pose_extraction.py#L307) step when using this script for extracting pose from your custom video datasets. + +2. Then, you will collect all the pickle files into one list for training (and, of course, for validation) and save them as a single file (like `custom_dataset_train.pkl` or `custom_dataset_val.pkl`). At that time, you finalize preparing annotation files for your custom dataset. + +3. Next, you may use the following script (with some alterations according to your needs) for training as shown in [PoseC3D/Train](https://github.com/open-mmlab/mmaction2/blob/master/configs/skeleton/posec3d/README.md#train): `python tools/train.py configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint.py --work-dir work_dirs/slowonly_r50_u48_240e_ntu120_xsub_keypoint --validate --test-best --gpus 2 --seed 0 --deterministic`: + + - Before running the above script, you need to modify the variables to initialize with your newly made annotation files: + + ```python + model = dict( + ... + cls_head=dict( + ... + num_classes=4, # Your class number + ... + ), + ... + ) + + ann_file_train = 'data/posec3d/custom_dataset_train.pkl' # Your annotation for training + ann_file_val = 'data/posec3d/custom_dataset_val.pkl' # Your annotation for validation + + load_from = 'pretrained_weight.pth' # Your can use released weights for initialization, set to None if training from scratch + + # You can also alter the hyper parameters or training schedule + ``` + +With that, your machine should start its work to let you grab a cup of coffee and watch how the training goes. diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/metafile.yml new file mode 100644 index 00000000..b4c29ac7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/metafile.yml @@ -0,0 +1,159 @@ +Collections: +- Name: PoseC3D + README: configs/skeleton/posec3d/README.md + Paper: + URL: https://arxiv.org/abs/2104.13586 + Title: Revisiting Skeleton-based Action Recognition +Models: +- Config: configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint.py + In Collection: PoseC3D + Metadata: + Architecture: SlowOnly-R50 + Batch Size: 16 + Epochs: 240 + Parameters: 2044867 + Training Data: FineGYM + Training Resources: 16 GPUs + pseudo heatmap: keypoint + Name: slowonly_r50_u48_240e_gym_keypoint + Results: + - Dataset: FineGYM + Metrics: + mean Top 1 Accuracy: 93.7 + Task: Skeleton-based Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint/slowonly_r50_u48_240e_gym_keypoint.json + Training Log: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint/slowonly_r50_u48_240e_gym_keypoint.log + Weights: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint/slowonly_r50_u48_240e_gym_keypoint-b07a98a0.pth +- Config: configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_limb.py + In Collection: PoseC3D + Metadata: + Architecture: SlowOnly-R50 + Batch Size: 16 + Epochs: 240 + Parameters: 2044867 + Training Data: FineGYM + Training Resources: 16 GPUs + pseudo heatmap: limb + Name: slowonly_r50_u48_240e_gym_limb + Results: + - Dataset: FineGYM + Metrics: + mean Top 1 Accuracy: 94.0 + Task: Skeleton-based Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_limb/slowonly_r50_u48_240e_gym_limb.json + Training Log: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_limb/slowonly_r50_u48_240e_gym_limb.log + Weights: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_gym_limb/slowonly_r50_u48_240e_gym_limb-c0d7b482.pth +- Config: configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_keypoint.py + In Collection: PoseC3D + Metadata: + Architecture: SlowOnly-R50 + Batch Size: 16 + Epochs: 240 + Parameters: 2024860 + Training Data: NTU60-XSub + Training Resources: 16 GPUs + pseudo heatmap: keypoint + Name: slowonly_r50_u48_240e_ntu60_xsub_keypoint + Results: + - Dataset: NTU60-XSub + Metrics: + Top 1 Accuracy: 93.7 + Task: Skeleton-based Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_keypoint/slowonly_r50_u48_240e_ntu60_xsub_keypoint.json + Training Log: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_keypoint/slowonly_r50_u48_240e_ntu60_xsub_keypoint.log + Weights: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_keypoint/slowonly_r50_u48_240e_ntu60_xsub_keypoint-f3adabf1.pth +- Config: configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_limb.py + In Collection: PoseC3D + Metadata: + Architecture: SlowOnly-R50 + Batch Size: 16 + Epochs: 240 + Parameters: 2024860 + Training Data: NTU60-XSub + Training Resources: 16 GPUs + pseudo heatmap: limb + Name: slowonly_r50_u48_240e_ntu60_xsub_limb + Results: + - Dataset: NTU60-XSub + Metrics: + Top 1 Accuracy: 93.4 + Task: Skeleton-based Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_limb/slowonly_r50_u48_240e_ntu60_xsub_limb.json + Training Log: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_limb/slowonly_r50_u48_240e_ntu60_xsub_limb.log + Weights: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_limb/slowonly_r50_u48_240e_ntu60_xsub_limb-1d69006a.pth +- Config: configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint.py + In Collection: PoseC3D + Metadata: + Architecture: SlowOnly-R50 + Batch Size: 16 + Epochs: 240 + Parameters: 2055640 + Training Data: NTU120-XSub + Training Resources: 16 GPUs + pseudo heatmap: keypoint + Name: slowonly_r50_u48_240e_ntu120_xsub_keypoint + Results: + - Dataset: NTU120-XSub + Metrics: + Top 1 Accuracy: 86.3 + Task: Skeleton-based Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint/slowonly_r50_u48_240e_ntu120_xsub_keypoint.json + Training Log: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint/slowonly_r50_u48_240e_ntu120_xsub_keypoint.log + Weights: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint/slowonly_r50_u48_240e_ntu120_xsub_keypoint-6736b03f.pth +- Config: configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_limb.py + In Collection: PoseC3D + Metadata: + Architecture: SlowOnly-R50 + Batch Size: 16 + Epochs: 240 + Parameters: 2055640 + Training Data: NTU120-XSub + Training Resources: 16 GPUs + pseudo heatmap: limb + Name: slowonly_r50_u48_240e_ntu120_xsub_limb + Results: + - Dataset: NTU120-XSub + Metrics: + Top 1 Accuracy: 85.7 + Task: Skeleton-based Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_limb/slowonly_r50_u48_240e_ntu120_xsub_limb.json + Training Log: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_limb/slowonly_r50_u48_240e_ntu120_xsub_limb.log + Weights: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_limb/slowonly_r50_u48_240e_ntu120_xsub_limb-803c2317.pth +- Config: configs/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint.py + In Collection: PoseC3D + Metadata: + Architecture: SlowOnly-R50 + Batch Size: 16 + Epochs: 120 + Parameters: 3029984 + Training Data: HMDB51 + Training Resources: 8 GPUs + pseudo heatmap: keypoint + Name: slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint + Results: + - Dataset: HMDB51 + Metrics: + Top 1 Accuracy: 69.3 + Task: Skeleton-based Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint.json + Training Log: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint.log + Weights: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint-76ffdd8b.pth +- Config: configs/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint.py + In Collection: PoseC3D + Metadata: + Architecture: SlowOnly-R50 + Batch Size: 16 + Epochs: 120 + Parameters: 3055584 + Training Data: UCF101 + Training Resources: 8 GPUs + pseudo heatmap: keypoint + Name: slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint + Results: + - Dataset: UCF101 + Metrics: + Top 1 Accuracy: 87.0 + Task: Skeleton-based Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint.json + Training Log: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint.log + Weights: https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint-cae8aa4a.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint.py b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint.py new file mode 100644 index 00000000..158469e1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint.py @@ -0,0 +1,131 @@ +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained=None, + in_channels=17, + base_channels=32, + num_stages=3, + out_indices=(2, ), + stage_blocks=(3, 4, 6), + conv1_stride_s=1, + pool1_stride_s=1, + inflate=(0, 1, 1), + spatial_strides=(2, 2, 2), + temporal_strides=(1, 1, 2), + dilations=(1, 1, 1)), + cls_head=dict( + type='I3DHead', + in_channels=512, + num_classes=51, + spatial_type='avg', + dropout_ratio=0.5), + train_cfg=dict(), + test_cfg=dict(average_clips='prob')) + +dataset_type = 'PoseDataset' +ann_file = 'data/posec3d/hmdb51.pkl' +left_kp = [1, 3, 5, 7, 9, 11, 13, 15] +right_kp = [2, 4, 6, 8, 10, 12, 14, 16] +train_pipeline = [ + dict(type='UniformSampleFrames', clip_len=48), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='RandomResizedCrop', area_range=(0.56, 1.0)), + dict(type='Resize', scale=(48, 48), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5, left_kp=left_kp, right_kp=right_kp), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=True, + with_limb=False), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='UniformSampleFrames', clip_len=48, num_clips=1, test_mode=True), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 56)), + dict(type='CenterCrop', crop_size=56), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=True, + with_limb=False), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='UniformSampleFrames', clip_len=48, num_clips=10, test_mode=True), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 56)), + dict(type='CenterCrop', crop_size=56), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=True, + with_limb=False, + double=True, + left_kp=left_kp, + right_kp=right_kp), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type='RepeatDataset', + times=10, + dataset=dict( + type=dataset_type, + ann_file=ann_file, + split='train1', + data_prefix='', + pipeline=train_pipeline)), + val=dict( + type=dataset_type, + ann_file=ann_file, + split='test1', + data_prefix='', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file, + split='test1', + data_prefix='', + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.01, momentum=0.9, + weight_decay=0.0001) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[9, 11]) +total_epochs = 12 +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy'], topk=(1, 5)) +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/posec3d_iclr/slowonly_kinetics400_pretrained_r50_u48_120e_hmdb51_split1_keypoint' # noqa: E501 +load_from = 'https://download.openmmlab.com/mmaction/skeleton/posec3d/k400_posec3d-041f49c6.pth' # noqa: E501 +resume_from = None +find_unused_parameters = True diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint.py b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint.py new file mode 100644 index 00000000..6e5f34d3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint.py @@ -0,0 +1,131 @@ +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained=None, + in_channels=17, + base_channels=32, + num_stages=3, + out_indices=(2, ), + stage_blocks=(3, 4, 6), + conv1_stride_s=1, + pool1_stride_s=1, + inflate=(0, 1, 1), + spatial_strides=(2, 2, 2), + temporal_strides=(1, 1, 2), + dilations=(1, 1, 1)), + cls_head=dict( + type='I3DHead', + in_channels=512, + num_classes=101, + spatial_type='avg', + dropout_ratio=0.5), + train_cfg=dict(), + test_cfg=dict(average_clips='prob')) + +dataset_type = 'PoseDataset' +ann_file = 'data/posec3d/ucf101.pkl' +left_kp = [1, 3, 5, 7, 9, 11, 13, 15] +right_kp = [2, 4, 6, 8, 10, 12, 14, 16] +train_pipeline = [ + dict(type='UniformSampleFrames', clip_len=48), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='RandomResizedCrop', area_range=(0.56, 1.0)), + dict(type='Resize', scale=(48, 48), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5, left_kp=left_kp, right_kp=right_kp), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=True, + with_limb=False), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='UniformSampleFrames', clip_len=48, num_clips=1, test_mode=True), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 56)), + dict(type='CenterCrop', crop_size=56), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=True, + with_limb=False), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='UniformSampleFrames', clip_len=48, num_clips=10, test_mode=True), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 56)), + dict(type='CenterCrop', crop_size=56), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=True, + with_limb=False, + double=True, + left_kp=left_kp, + right_kp=right_kp), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type='RepeatDataset', + times=10, + dataset=dict( + type=dataset_type, + ann_file=ann_file, + split='train1', + data_prefix='', + pipeline=train_pipeline)), + val=dict( + type=dataset_type, + ann_file=ann_file, + split='test1', + data_prefix='', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file, + split='test1', + data_prefix='', + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.01, momentum=0.9, + weight_decay=0.0003) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[9, 11]) +total_epochs = 12 +checkpoint_config = dict(interval=1) +workflow = [('train', 1)] +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy'], topk=(1, 5)) +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/posec3d_iclr/slowonly_kinetics400_pretrained_r50_u48_120e_ucf101_split1_keypoint' # noqa: E501 +load_from = 'https://download.openmmlab.com/mmaction/skeleton/posec3d/k400_posec3d-041f49c6.pth' # noqa: E501 +resume_from = None +find_unused_parameters = True diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint.py b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint.py new file mode 100644 index 00000000..8ce6fbcb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_keypoint.py @@ -0,0 +1,128 @@ +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained=None, + in_channels=17, + base_channels=32, + num_stages=3, + out_indices=(2, ), + stage_blocks=(4, 6, 3), + conv1_stride_s=1, + pool1_stride_s=1, + inflate=(0, 1, 1), + spatial_strides=(2, 2, 2), + temporal_strides=(1, 1, 2), + dilations=(1, 1, 1)), + cls_head=dict( + type='I3DHead', + in_channels=512, + num_classes=99, + spatial_type='avg', + dropout_ratio=0.5), + train_cfg=dict(), + test_cfg=dict(average_clips='prob')) + +dataset_type = 'PoseDataset' +ann_file_train = 'data/posec3d/gym_train.pkl' +ann_file_val = 'data/posec3d/gym_val.pkl' +left_kp = [1, 3, 5, 7, 9, 11, 13, 15] +right_kp = [2, 4, 6, 8, 10, 12, 14, 16] +train_pipeline = [ + dict(type='UniformSampleFrames', clip_len=48), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='RandomResizedCrop', area_range=(0.56, 1.0)), + dict(type='Resize', scale=(56, 56), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5, left_kp=left_kp, right_kp=right_kp), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=True, + with_limb=False), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='UniformSampleFrames', clip_len=48, num_clips=1, test_mode=True), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='CenterCrop', crop_size=64), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=True, + with_limb=False), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='UniformSampleFrames', clip_len=48, num_clips=10, test_mode=True), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='CenterCrop', crop_size=64), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=True, + with_limb=False, + double=True, + left_kp=left_kp, + right_kp=right_kp), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix='', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.2, momentum=0.9, + weight_decay=0.0003) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', by_epoch=False, min_lr=0) +total_epochs = 240 +checkpoint_config = dict(interval=10) +workflow = [('train', 10)] +evaluation = dict( + interval=10, + metrics=['top_k_accuracy', 'mean_class_accuracy'], + topk=(1, 5)) +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/posec3d/slowonly_r50_u48_240e_gym_keypoint' +load_from = None +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_limb.py b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_limb.py new file mode 100644 index 00000000..c0c9295e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_gym_limb.py @@ -0,0 +1,134 @@ +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained=None, + in_channels=17, + base_channels=32, + num_stages=3, + out_indices=(2, ), + stage_blocks=(4, 6, 3), + conv1_stride_s=1, + pool1_stride_s=1, + inflate=(0, 1, 1), + spatial_strides=(2, 2, 2), + temporal_strides=(1, 1, 2), + dilations=(1, 1, 1)), + cls_head=dict( + type='I3DHead', + in_channels=512, + num_classes=99, + spatial_type='avg', + dropout_ratio=0.5), + train_cfg=dict(), + test_cfg=dict(average_clips='prob')) + +dataset_type = 'PoseDataset' +ann_file_train = 'data/posec3d/gym_train.pkl' +ann_file_val = 'data/posec3d/gym_val.pkl' +left_kp = [1, 3, 5, 7, 9, 11, 13, 15] +right_kp = [2, 4, 6, 8, 10, 12, 14, 16] +skeletons = [[0, 5], [0, 6], [5, 7], [7, 9], [6, 8], [8, 10], [5, 11], + [11, 13], [13, 15], [6, 12], [12, 14], [14, 16], [0, 1], [0, 2], + [1, 3], [2, 4], [11, 12]] +train_pipeline = [ + dict(type='UniformSampleFrames', clip_len=48), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='RandomResizedCrop', area_range=(0.56, 1.0)), + dict(type='Resize', scale=(56, 56), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5, left_kp=left_kp, right_kp=right_kp), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=False, + with_limb=True, + skeletons=skeletons), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='UniformSampleFrames', clip_len=48, num_clips=1, test_mode=True), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='CenterCrop', crop_size=64), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=False, + with_limb=True, + skeletons=skeletons), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='UniformSampleFrames', clip_len=48, num_clips=10, test_mode=True), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='CenterCrop', crop_size=64), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=False, + with_limb=True, + skeletons=skeletons, + double=True, + left_kp=left_kp, + right_kp=right_kp), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix='', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.2, momentum=0.9, + weight_decay=0.0003) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', by_epoch=False, min_lr=0) +total_epochs = 240 +checkpoint_config = dict(interval=10) +workflow = [('train', 10)] +evaluation = dict( + interval=10, + metrics=['top_k_accuracy', 'mean_class_accuracy'], + topk=(1, 5)) +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/posec3d/slowonly_r50_u48_240e_gym_limb' +load_from = None +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint.py b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint.py new file mode 100644 index 00000000..640c6748 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint.py @@ -0,0 +1,130 @@ +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained=None, + in_channels=17, + base_channels=32, + num_stages=3, + out_indices=(2, ), + stage_blocks=(4, 6, 3), + conv1_stride_s=1, + pool1_stride_s=1, + inflate=(0, 1, 1), + spatial_strides=(2, 2, 2), + temporal_strides=(1, 1, 2), + dilations=(1, 1, 1)), + cls_head=dict( + type='I3DHead', + in_channels=512, + num_classes=120, + spatial_type='avg', + dropout_ratio=0.5), + train_cfg=dict(), + test_cfg=dict(average_clips='prob')) + +dataset_type = 'PoseDataset' +ann_file_train = 'data/posec3d/ntu120_xsub_train.pkl' +ann_file_val = 'data/posec3d/ntu120_xsub_val.pkl' +left_kp = [1, 3, 5, 7, 9, 11, 13, 15] +right_kp = [2, 4, 6, 8, 10, 12, 14, 16] +train_pipeline = [ + dict(type='UniformSampleFrames', clip_len=48), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='RandomResizedCrop', area_range=(0.56, 1.0)), + dict(type='Resize', scale=(56, 56), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5, left_kp=left_kp, right_kp=right_kp), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=True, + with_limb=False), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='UniformSampleFrames', clip_len=48, num_clips=1, test_mode=True), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='CenterCrop', crop_size=64), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=True, + with_limb=False), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='UniformSampleFrames', clip_len=48, num_clips=10, test_mode=True), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='CenterCrop', crop_size=64), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=True, + with_limb=False, + double=True, + left_kp=left_kp, + right_kp=right_kp), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix='', + class_prob={i: 1 + int(i >= 60) + for i in range(120)}, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.2, momentum=0.9, + weight_decay=0.0003) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', by_epoch=False, min_lr=0) +total_epochs = 240 +checkpoint_config = dict(interval=10) +workflow = [('train', 10)] +evaluation = dict( + interval=10, + metrics=['top_k_accuracy', 'mean_class_accuracy'], + topk=(1, 5)) +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint' +load_from = None +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_limb.py b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_limb.py new file mode 100644 index 00000000..978bb2ad --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_limb.py @@ -0,0 +1,136 @@ +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained=None, + in_channels=17, + base_channels=32, + num_stages=3, + out_indices=(2, ), + stage_blocks=(4, 6, 3), + conv1_stride_s=1, + pool1_stride_s=1, + inflate=(0, 1, 1), + spatial_strides=(2, 2, 2), + temporal_strides=(1, 1, 2), + dilations=(1, 1, 1)), + cls_head=dict( + type='I3DHead', + in_channels=512, + num_classes=120, + spatial_type='avg', + dropout_ratio=0.5), + train_cfg=dict(), + test_cfg=dict(average_clips='prob')) + +dataset_type = 'PoseDataset' +ann_file_train = 'data/posec3d/ntu60_xsub_train.pkl' +ann_file_val = 'data/posec3d/ntu60_xsub_val.pkl' +left_kp = [1, 3, 5, 7, 9, 11, 13, 15] +right_kp = [2, 4, 6, 8, 10, 12, 14, 16] +skeletons = [[0, 5], [0, 6], [5, 7], [7, 9], [6, 8], [8, 10], [5, 11], + [11, 13], [13, 15], [6, 12], [12, 14], [14, 16], [0, 1], [0, 2], + [1, 3], [2, 4], [11, 12]] +train_pipeline = [ + dict(type='UniformSampleFrames', clip_len=48), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='RandomResizedCrop', area_range=(0.56, 1.0)), + dict(type='Resize', scale=(56, 56), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5, left_kp=left_kp, right_kp=right_kp), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=False, + with_limb=True, + skeletons=skeletons), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='UniformSampleFrames', clip_len=48, num_clips=1, test_mode=True), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='CenterCrop', crop_size=64), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=False, + with_limb=True, + skeletons=skeletons), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='UniformSampleFrames', clip_len=48, num_clips=10, test_mode=True), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='CenterCrop', crop_size=64), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=False, + with_limb=True, + skeletons=skeletons, + double=True, + left_kp=left_kp, + right_kp=right_kp), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix='', + class_prob={i: 1 + int(i >= 60) + for i in range(120)}, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.2, momentum=0.9, + weight_decay=0.0003) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', by_epoch=False, min_lr=0) +total_epochs = 240 +checkpoint_config = dict(interval=10) +workflow = [('train', 10)] +evaluation = dict( + interval=10, + metrics=['top_k_accuracy', 'mean_class_accuracy'], + topk=(1, 5)) +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/posec3d/slowonly_r50_u48_240e_ntu120_xsub_limb' +load_from = None +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_keypoint.py b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_keypoint.py new file mode 100644 index 00000000..47e54111 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_keypoint.py @@ -0,0 +1,128 @@ +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained=None, + in_channels=17, + base_channels=32, + num_stages=3, + out_indices=(2, ), + stage_blocks=(4, 6, 3), + conv1_stride_s=1, + pool1_stride_s=1, + inflate=(0, 1, 1), + spatial_strides=(2, 2, 2), + temporal_strides=(1, 1, 2), + dilations=(1, 1, 1)), + cls_head=dict( + type='I3DHead', + in_channels=512, + num_classes=60, + spatial_type='avg', + dropout_ratio=0.5), + train_cfg=dict(), + test_cfg=dict(average_clips='prob')) + +dataset_type = 'PoseDataset' +ann_file_train = 'data/posec3d/ntu60_xsub_train.pkl' +ann_file_val = 'data/posec3d/ntu60_xsub_val.pkl' +left_kp = [1, 3, 5, 7, 9, 11, 13, 15] +right_kp = [2, 4, 6, 8, 10, 12, 14, 16] +train_pipeline = [ + dict(type='UniformSampleFrames', clip_len=48), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='RandomResizedCrop', area_range=(0.56, 1.0)), + dict(type='Resize', scale=(56, 56), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5, left_kp=left_kp, right_kp=right_kp), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=True, + with_limb=False), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='UniformSampleFrames', clip_len=48, num_clips=1, test_mode=True), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='CenterCrop', crop_size=64), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=True, + with_limb=False), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='UniformSampleFrames', clip_len=48, num_clips=10, test_mode=True), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='CenterCrop', crop_size=64), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=True, + with_limb=False, + double=True, + left_kp=left_kp, + right_kp=right_kp), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix='', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.2, momentum=0.9, + weight_decay=0.0003) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', by_epoch=False, min_lr=0) +total_epochs = 240 +checkpoint_config = dict(interval=10) +workflow = [('train', 10)] +evaluation = dict( + interval=10, + metrics=['top_k_accuracy', 'mean_class_accuracy'], + topk=(1, 5)) +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/posec3d/slowonly_r50_u48_240e_ntu60_xsub_keypoint' +load_from = None +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_limb.py b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_limb.py new file mode 100644 index 00000000..7e98d22d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu60_xsub_limb.py @@ -0,0 +1,134 @@ +model = dict( + type='Recognizer3D', + backbone=dict( + type='ResNet3dSlowOnly', + depth=50, + pretrained=None, + in_channels=17, + base_channels=32, + num_stages=3, + out_indices=(2, ), + stage_blocks=(4, 6, 3), + conv1_stride_s=1, + pool1_stride_s=1, + inflate=(0, 1, 1), + spatial_strides=(2, 2, 2), + temporal_strides=(1, 1, 2), + dilations=(1, 1, 1)), + cls_head=dict( + type='I3DHead', + in_channels=512, + num_classes=60, + spatial_type='avg', + dropout_ratio=0.5), + train_cfg=dict(), + test_cfg=dict(average_clips='prob')) + +dataset_type = 'PoseDataset' +ann_file_train = 'data/posec3d/ntu60_xsub_train.pkl' +ann_file_val = 'data/posec3d/ntu60_xsub_val.pkl' +left_kp = [1, 3, 5, 7, 9, 11, 13, 15] +right_kp = [2, 4, 6, 8, 10, 12, 14, 16] +skeletons = [[0, 5], [0, 6], [5, 7], [7, 9], [6, 8], [8, 10], [5, 11], + [11, 13], [13, 15], [6, 12], [12, 14], [14, 16], [0, 1], [0, 2], + [1, 3], [2, 4], [11, 12]] +train_pipeline = [ + dict(type='UniformSampleFrames', clip_len=48), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='RandomResizedCrop', area_range=(0.56, 1.0)), + dict(type='Resize', scale=(56, 56), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5, left_kp=left_kp, right_kp=right_kp), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=False, + with_limb=True, + skeletons=skeletons), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict(type='UniformSampleFrames', clip_len=48, num_clips=1, test_mode=True), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='CenterCrop', crop_size=64), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=False, + with_limb=True, + skeletons=skeletons), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='UniformSampleFrames', clip_len=48, num_clips=10, test_mode=True), + dict(type='PoseDecode'), + dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True), + dict(type='Resize', scale=(-1, 64)), + dict(type='CenterCrop', crop_size=64), + dict( + type='GeneratePoseTarget', + sigma=0.6, + use_score=True, + with_kp=False, + with_limb=True, + skeletons=skeletons, + double=True, + left_kp=left_kp, + right_kp=right_kp), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix='', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.2, momentum=0.9, + weight_decay=0.0003) # this lr is used for 8 gpus +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='CosineAnnealing', by_epoch=False, min_lr=0) +total_epochs = 240 +checkpoint_config = dict(interval=10) +workflow = [('train', 10)] +evaluation = dict( + interval=10, + metrics=['top_k_accuracy', 'mean_class_accuracy'], + topk=(1, 5)) +log_config = dict( + interval=20, hooks=[ + dict(type='TextLoggerHook'), + ]) +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/posec3d/slowonly_r50_u48_240e_ntu60_xsub_limb' +load_from = None +resume_from = None +find_unused_parameters = False diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/README.md b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/README.md new file mode 100644 index 00000000..1b8f435d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/README.md @@ -0,0 +1,84 @@ +# STGCN + +[Spatial temporal graph convolutional networks for skeleton-based action recognition](https://ojs.aaai.org/index.php/AAAI/article/view/12328) + + + +## Abstract + + + +Dynamics of human body skeletons convey significant information for human action recognition. Conventional approaches for modeling skeletons usually rely on hand-crafted parts or traversal rules, thus resulting in limited expressive power and difficulties of generalization. In this work, we propose a novel model of dynamic skeletons called Spatial-Temporal Graph Convolutional Networks (ST-GCN), which moves beyond the limitations of previous methods by automatically learning both the spatial and temporal patterns from data. This formulation not only leads to greater expressive power but also stronger generalization capability. On two large datasets, Kinetics and NTU-RGBD, it achieves substantial improvements over mainstream methods. + + + +
+ +
+ +## Results and Models + +### NTU60_XSub + +| config | keypoint | gpus | backbone | Top-1 | ckpt | log | json | +| :---------------------------------------------------------------------------------------------- | :------: | :--: | :------: | :---: | :-------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------: | +| [stgcn_80e_ntu60_xsub_keypoint](/configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py) | 2d | 2 | STGCN | 86.91 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint/stgcn_80e_ntu60_xsub_keypoint-e7bb9653.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint/stgcn_80e_ntu60_xsub_keypoint.log) | [json](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint/stgcn_80e_ntu60_xsub_keypoint.json) | +| [stgcn_80e_ntu60_xsub_keypoint_3d](/configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint_3d.py) | 3d | 1 | STGCN | 84.61 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint_3d/stgcn_80e_ntu60_xsub_keypoint_3d-13e7ccf0.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint_3d/stgcn_80e_ntu60_xsub_keypoint_3d.log) | [json](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint_3d/stgcn_80e_ntu60_xsub_keypoint_3d.json) | + +### BABEL + +| config | gpus | backbone | Top-1 | Mean Top-1 | Top-1 Official (AGCN) | Mean Top-1 Official (AGCN) | ckpt | log | +| --------------------------------------------------------------------------- | :--: | :------: | :-------: | :--------: | :-------------------: | :------------------------: | :-----------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------: | +| [stgcn_80e_babel60](/configs/skeleton/stgcn/stgcn_80e_babel60.py) | 8 | ST-GCN | **42.39** | **28.28** | 41.14 | 24.46 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel60/stgcn_80e_babel60-3d206418.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel60/stgcn_80e_babel60.log) | +| [stgcn_80e_babel60_wfl](/configs/skeleton/stgcn/stgcn_80e_babel60_wfl.py) | 8 | ST-GCN | **40.31** | 29.79 | 33.41 | **30.42** | [ckpt](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel60_wfl/stgcn_80e_babel60_wfl-1a9102d7.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel60/stgcn_80e_babel60_wfl.log) | +| [stgcn_80e_babel120](/configs/skeleton/stgcn/stgcn_80e_babel120.py) | 8 | ST-GCN | **38.95** | **20.58** | 38.41 | 17.56 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel120/stgcn_80e_babel120-e41eb6d7.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel60/stgcn_80e_babel120.log) | +| [stgcn_80e_babel120_wfl](/configs/skeleton/stgcn/stgcn_80e_babel120_wfl.py) | 8 | ST-GCN | **33.00** | 24.33 | 27.91 | **26.17**\* | [ckpt](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel120_wfl/stgcn_80e_babel120_wfl-3f2c100d.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel60/stgcn_80e_babel120_wfl.log) | + +\* The number is copied from the [paper](https://arxiv.org/pdf/2106.09696.pdf), the performance of the [released checkpoints](https://github.com/abhinanda-punnakkal/BABEL/tree/main/action_recognition) for BABEL-120 is inferior. + +## Train + +You can use the following command to train a model. + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +Example: train STGCN model on NTU60 dataset in a deterministic option with periodic validation. + +```shell +python tools/train.py configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py \ + --work-dir work_dirs/stgcn_80e_ntu60_xsub_keypoint \ + --validate --seed 0 --deterministic +``` + +For more details, you can refer to **Training setting** part in [getting_started](/docs/getting_started.md#training-setting). + +## Test + +You can use the following command to test a model. + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +Example: test STGCN model on NTU60 dataset and dump the result to a pickle file. + +```shell +python tools/test.py configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.pkl +``` + +For more details, you can refer to **Test a dataset** part in [getting_started](/docs/getting_started.md#test-a-dataset). + +## Citation + +```BibTeX +@inproceedings{yan2018spatial, + title={Spatial temporal graph convolutional networks for skeleton-based action recognition}, + author={Yan, Sijie and Xiong, Yuanjun and Lin, Dahua}, + booktitle={Thirty-second AAAI conference on artificial intelligence}, + year={2018} +} +``` diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/README_zh-CN.md new file mode 100644 index 00000000..834d47bc --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/README_zh-CN.md @@ -0,0 +1,70 @@ +# STGCN + +## 简介 + + + +```BibTeX +@inproceedings{yan2018spatial, + title={Spatial temporal graph convolutional networks for skeleton-based action recognition}, + author={Yan, Sijie and Xiong, Yuanjun and Lin, Dahua}, + booktitle={Thirty-second AAAI conference on artificial intelligence}, + year={2018} +} +``` + +## 模型库 + +### NTU60_XSub + +| 配置文件 | 骨骼点 | GPU 数量 | 主干网络 | Top-1 准确率 | ckpt | log | json | +| :---------------------------------------------------------------------------------------------- | :----: | :------: | :------: | :----------: | :-------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------: | +| [stgcn_80e_ntu60_xsub_keypoint](/configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py) | 2d | 2 | STGCN | 86.91 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint/stgcn_80e_ntu60_xsub_keypoint-e7bb9653.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint/stgcn_80e_ntu60_xsub_keypoint.log) | [json](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint/stgcn_80e_ntu60_xsub_keypoint.json) | +| [stgcn_80e_ntu60_xsub_keypoint_3d](/configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint_3d.py) | 3d | 1 | STGCN | 84.61 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint_3d/stgcn_80e_ntu60_xsub_keypoint_3d-13e7ccf0.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint_3d/stgcn_80e_ntu60_xsub_keypoint_3d.log) | [json](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint_3d/stgcn_80e_ntu60_xsub_keypoint_3d.json) | + +### BABEL + +| 配置文件 | GPU 数量 | 主干网络 | Top-1 准确率 | 类平均 Top-1 准确率 | Top-1 准确率
(官方,使用 AGCN) | 类平均 Top-1 准确率
(官方,使用 AGCN) | ckpt | log | +| --------------------------------------------------------------------------- | :------: | :------: | :----------: | :-----------------: | :----------------------------------: | :----------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------: | +| [stgcn_80e_babel60](/configs/skeleton/stgcn/stgcn_80e_babel60.py) | 8 | ST-GCN | **42.39** | **28.28** | 41.14 | 24.46 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel60/stgcn_80e_babel60-3d206418.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel60/stgcn_80e_babel60.log) | +| [stgcn_80e_babel60_wfl](/configs/skeleton/stgcn/stgcn_80e_babel60_wfl.py) | 8 | ST-GCN | **40.31** | 29.79 | 33.41 | **30.42** | [ckpt](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel60_wfl/stgcn_80e_babel60_wfl-1a9102d7.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel60/stgcn_80e_babel60_wfl.log) | +| [stgcn_80e_babel120](/configs/skeleton/stgcn/stgcn_80e_babel120.py) | 8 | ST-GCN | **38.95** | **20.58** | 38.41 | 17.56 | [ckpt](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel120/stgcn_80e_babel120-e41eb6d7.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel60/stgcn_80e_babel120.log) | +| [stgcn_80e_babel120_wfl](/configs/skeleton/stgcn/stgcn_80e_babel120_wfl.py) | 8 | ST-GCN | **33.00** | 24.33 | 27.91 | **26.17**\* | [ckpt](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel120_wfl/stgcn_80e_babel120_wfl-3f2c100d.pth) | [log](https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel60/stgcn_80e_babel120_wfl.log) | + +\* 注:此数字引自原 [论文](https://arxiv.org/pdf/2106.09696.pdf), 实际公开的 [模型权重](https://github.com/abhinanda-punnakkal/BABEL/tree/main/action_recognition) 精度略低一些。 + +## 如何训练 + +用户可以使用以下指令进行模型训练。 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +例如:以一个确定性的训练方式,辅以定期的验证过程进行 STGCN 模型在 NTU60 数据集上的训练 + +```shell +python tools/train.py configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py \ + --work-dir work_dirs/stgcn_80e_ntu60_xsub_keypoint \ + --validate --seed 0 --deterministic +``` + +更多训练细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) 中的 **训练配置** 部分。 + +## 如何测试 + +用户可以使用以下指令进行模型测试。 + +```shell +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [optional arguments] +``` + +例如:在 NTU60 数据集上测试 STGCN 模型,并将结果导出为一个 pickle 文件。 + +```shell +python tools/test.py configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py \ + checkpoints/SOME_CHECKPOINT.pth --eval top_k_accuracy mean_class_accuracy \ + --out result.pkl +``` + +更多测试细节,可参考 [基础教程](/docs_zh_CN/getting_started.md#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) 中的 **测试某个数据集** 部分。 diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/metafile.yml b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/metafile.yml new file mode 100644 index 00000000..f4e2b7fc --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/metafile.yml @@ -0,0 +1,112 @@ +Collections: +- Name: STGCN + README: configs/skeleton/stgcn/README.md +Models: +- Config: configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py + In Collection: STGCN + Metadata: + Architecture: STGCN + Batch Size: 16 + Epochs: 80 + Parameters: 3088704 + Training Data: NTU60-XSub + Training Resources: 2 GPUs + Name: stgcn_80e_ntu60_xsub_keypoint + Results: + Dataset: NTU60-XSub + Metrics: + Top 1 Accuracy: 86.91 + Task: Skeleton-based Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint/stgcn_80e_ntu60_xsub_keypoint.json + Training Log: https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint/stgcn_80e_ntu60_xsub_keypoint.log + Weights: https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint/stgcn_80e_ntu60_xsub_keypoint-e7bb9653.pth +- Config: configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint_3d.py + In Collection: STGCN + Metadata: + Architecture: STGCN + Batch Size: 32 + Epochs: 80 + Parameters: 3088704 + Training Data: NTU60-XSub + Training Resources: 1 GPU + Name: stgcn_80e_ntu60_xsub_keypoint_3d + Results: + Dataset: NTU60-XSub + Metrics: + Top 1 Accuracy: 84.61 + Task: Skeleton-based Action Recognition + Training Json Log: https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint_3d/stgcn_80e_ntu60_xsub_keypoint_3d.json + Training Log: https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint_3d/stgcn_80e_ntu60_xsub_keypoint_3d.log + Weights: https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint_3d/stgcn_80e_ntu60_xsub_keypoint_3d-13e7ccf0.pth +- Config: configs/skeleton/stgcn/stgcn_80e_babel60.py + In Collection: STGCN + Metadata: + Architecture: STGCN + Batch Size: 128 + Epochs: 80 + Parameters: 3088704 + Training Data: BABEL60 + Training Resources: 8 GPU + Name: stgcn_80e_babel60 + Results: + Dataset: BABEL60 + Metrics: + Top 1 Accuracy: 42.39 + Mean Top 1 Accuracy: 28.28 + Task: Skeleton-based Action Recognition + Training Log: https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel60/stgcn_80e_babel60.log + Weights: https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel60/stgcn_80e_babel60-3d206418.pth +- Config: configs/skeleton/stgcn/stgcn_80e_babel60_wfl.py + In Collection: STGCN + Metadata: + Architecture: STGCN + Batch Size: 128 + Epochs: 80 + Parameters: 3088704 + Training Data: BABEL60 + Training Resources: 8 GPU + Name: stgcn_80e_babel60_wfl + Results: + Dataset: BABEL60 + Metrics: + Top 1 Accuracy: 40.31 + Mean Top 1 Accuracy: 29.79 + Task: Skeleton-based Action Recognition + Training Log: https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel60_wfl/stgcn_80e_babel60_wfl.log + Weights: https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel60_wfl/stgcn_80e_babel60_wfl-1a9102d7.pth +- Config: configs/skeleton/stgcn/stgcn_80e_babel120.py + In Collection: STGCN + Metadata: + Architecture: STGCN + Batch Size: 128 + Epochs: 80 + Parameters: 3104320 + Training Data: BABEL120 + Training Resources: 8 GPU + Name: stgcn_80e_babel120 + Results: + Dataset: BABEL120 + Metrics: + Top 1 Accuracy: 38.95 + Mean Top 1 Accuracy: 20.58 + Task: Skeleton-based Action Recognition + Training Log: https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel120/stgcn_80e_babel120.log + Weights: https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel120/stgcn_80e_babel120-e41eb6d7.pth +- Config: configs/skeleton/stgcn/stgcn_80e_babel120_wfl.py + In Collection: STGCN + Metadata: + Architecture: STGCN + Batch Size: 128 + Epochs: 80 + Parameters: 3104320 + Training Data: BABEL120 + Training Resources: 8 GPU + Name: stgcn_80e_babel120_wfl + Results: + Dataset: BABEL120 + Metrics: + Top 1 Accuracy: 33.00 + Mean Top 1 Accuracy: 24.33 + Task: Skeleton-based Action Recognition + Training Log: https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel120_wfl/stgcn_80e_babel120_wfl.log + Weights: https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_babel120_wfl/stgcn_80e_babel120_wfl-3f2c100d.pth diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_babel120.py b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_babel120.py new file mode 100644 index 00000000..bf6bac29 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_babel120.py @@ -0,0 +1,78 @@ +model = dict( + type='SkeletonGCN', + backbone=dict( + type='STGCN', + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='ntu-rgb+d', strategy='spatial')), + cls_head=dict( + type='STGCNHead', + num_classes=120, + in_channels=256, + num_person=1, + loss_cls=dict(type='CrossEntropyLoss')), + train_cfg=None, + test_cfg=None) + +dataset_type = 'PoseDataset' +ann_file_train = 'data/babel/babel120_train.pkl' +ann_file_val = 'data/babel/babel120_val.pkl' +train_pipeline = [ + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM', num_person=1), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +val_pipeline = [ + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM', num_person=1), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +test_pipeline = [ + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM', num_person=1), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type='RepeatDataset', + times=5, + dataset=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix='', + pipeline=train_pipeline)), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001, nesterov=True) +optimizer_config = dict(grad_clip=None) +# learning policy +lr_config = dict(policy='step', step=[10, 14]) +total_epochs = 16 +checkpoint_config = dict(interval=1) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) +log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')]) + +# runtime settings +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/stgcn_80e_babel120' +load_from = None +resume_from = None +workflow = [('train', 1)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_babel120_wfl.py b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_babel120_wfl.py new file mode 100644 index 00000000..63516b2e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_babel120_wfl.py @@ -0,0 +1,89 @@ +samples_per_cls = [ + 518, 1993, 6260, 508, 208, 3006, 431, 724, 4527, 2131, 199, 1255, 487, 302, + 136, 571, 267, 646, 1180, 405, 72, 731, 842, 1619, 271, 27, 1198, 1012, + 110, 865, 462, 526, 405, 487, 101, 24, 84, 64, 168, 271, 609, 503, 76, 167, + 415, 137, 421, 283, 2069, 715, 196, 66, 44, 989, 122, 43, 599, 396, 245, + 380, 34, 236, 260, 325, 127, 133, 119, 66, 125, 50, 206, 191, 394, 69, 98, + 145, 38, 21, 29, 64, 277, 65, 39, 31, 35, 85, 54, 80, 133, 66, 39, 64, 268, + 34, 172, 54, 33, 21, 110, 19, 40, 55, 146, 39, 37, 75, 101, 20, 46, 55, 43, + 21, 43, 87, 29, 36, 24, 37, 28, 39 +] + +model = dict( + type='SkeletonGCN', + backbone=dict( + type='STGCN', + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='ntu-rgb+d', strategy='spatial')), + cls_head=dict( + type='STGCNHead', + num_classes=120, + in_channels=256, + num_person=1, + loss_cls=dict(type='CBFocalLoss', samples_per_cls=samples_per_cls)), + train_cfg=None, + test_cfg=None) + +dataset_type = 'PoseDataset' +ann_file_train = 'data/babel/babel120_train.pkl' +ann_file_val = 'data/babel/babel120_val.pkl' +train_pipeline = [ + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM', num_person=1), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +val_pipeline = [ + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM', num_person=1), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +test_pipeline = [ + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM', num_person=1), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type='RepeatDataset', + times=5, + dataset=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix='', + pipeline=train_pipeline)), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001, nesterov=True) +optimizer_config = dict(grad_clip=None) +# learning policy +lr_config = dict(policy='step', step=[10, 14]) +total_epochs = 16 +checkpoint_config = dict(interval=1) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) +log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')]) + +# runtime settings +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/stgcn_80e_babel120_wfl/' +load_from = None +resume_from = None +workflow = [('train', 1)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_babel60.py b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_babel60.py new file mode 100644 index 00000000..dd338b9d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_babel60.py @@ -0,0 +1,78 @@ +model = dict( + type='SkeletonGCN', + backbone=dict( + type='STGCN', + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='ntu-rgb+d', strategy='spatial')), + cls_head=dict( + type='STGCNHead', + num_classes=60, + in_channels=256, + num_person=1, + loss_cls=dict(type='CrossEntropyLoss')), + train_cfg=None, + test_cfg=None) + +dataset_type = 'PoseDataset' +ann_file_train = 'data/babel/babel60_train.pkl' +ann_file_val = 'data/babel/babel60_val.pkl' +train_pipeline = [ + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM', num_person=1), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +val_pipeline = [ + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM', num_person=1), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +test_pipeline = [ + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM', num_person=1), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type='RepeatDataset', + times=5, + dataset=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix='', + pipeline=train_pipeline)), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001, nesterov=True) +optimizer_config = dict(grad_clip=None) +# learning policy +lr_config = dict(policy='step', step=[10, 14]) +total_epochs = 16 +checkpoint_config = dict(interval=1) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) +log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')]) + +# runtime settings +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/stgcn_80e_babel60' +load_from = None +resume_from = None +workflow = [('train', 1)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_babel60_wfl.py b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_babel60_wfl.py new file mode 100644 index 00000000..b19714d6 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_babel60_wfl.py @@ -0,0 +1,86 @@ +samples_per_cls = [ + 518, 1993, 6260, 508, 208, 3006, 431, 724, 4527, 2131, 199, 1255, 487, 302, + 136, 571, 267, 646, 1180, 405, 731, 842, 1619, 271, 1198, 1012, 865, 462, + 526, 405, 487, 168, 271, 609, 503, 167, 415, 421, 283, 2069, 715, 196, 989, + 122, 599, 396, 245, 380, 236, 260, 325, 133, 206, 191, 394, 145, 277, 268, + 172, 146 +] + +model = dict( + type='SkeletonGCN', + backbone=dict( + type='STGCN', + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='ntu-rgb+d', strategy='spatial')), + cls_head=dict( + type='STGCNHead', + num_classes=60, + in_channels=256, + num_person=1, + loss_cls=dict(type='CBFocalLoss', samples_per_cls=samples_per_cls)), + train_cfg=None, + test_cfg=None) + +dataset_type = 'PoseDataset' +ann_file_train = 'data/babel/babel60_train.pkl' +ann_file_val = 'data/babel/babel60_val.pkl' +train_pipeline = [ + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM', num_person=1), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +val_pipeline = [ + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM', num_person=1), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +test_pipeline = [ + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM', num_person=1), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type='RepeatDataset', + times=5, + dataset=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix='', + pipeline=train_pipeline)), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=test_pipeline)) +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001, nesterov=True) +optimizer_config = dict(grad_clip=None) +# learning policy +lr_config = dict(policy='step', step=[10, 14]) +total_epochs = 16 +checkpoint_config = dict(interval=1) +evaluation = dict( + interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) +log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')]) + +# runtime settings +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/stgcn_80e_babel60_wfl/' +load_from = None +resume_from = None +workflow = [('train', 1)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py new file mode 100644 index 00000000..e23f501f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py @@ -0,0 +1,80 @@ +model = dict( + type='SkeletonGCN', + backbone=dict( + type='STGCN', + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='coco', strategy='spatial')), + cls_head=dict( + type='STGCNHead', + num_classes=60, + in_channels=256, + loss_cls=dict(type='CrossEntropyLoss')), + train_cfg=None, + test_cfg=None) + +dataset_type = 'PoseDataset' +ann_file_train = 'data/posec3d/ntu60_xsub_train.pkl' +ann_file_val = 'data/posec3d/ntu60_xsub_val.pkl' +train_pipeline = [ + dict(type='PaddingWithLoop', clip_len=300), + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM'), + dict(type='PoseNormalize'), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +val_pipeline = [ + dict(type='PaddingWithLoop', clip_len=300), + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM'), + dict(type='PoseNormalize'), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +test_pipeline = [ + dict(type='PaddingWithLoop', clip_len=300), + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM'), + dict(type='PoseNormalize'), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix='', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=test_pipeline)) + +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001, nesterov=True) +optimizer_config = dict(grad_clip=None) +# learning policy +lr_config = dict(policy='step', step=[10, 50]) +total_epochs = 80 +checkpoint_config = dict(interval=5) +evaluation = dict(interval=5, metrics=['top_k_accuracy']) +log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')]) + +# runtime settings +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/stgcn_80e_ntu60_xsub_keypoint/' +load_from = None +resume_from = None +workflow = [('train', 1)] diff --git a/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint_3d.py b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint_3d.py new file mode 100644 index 00000000..4422dd75 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint_3d.py @@ -0,0 +1,77 @@ +model = dict( + type='SkeletonGCN', + backbone=dict( + type='STGCN', + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='ntu-rgb+d', strategy='spatial')), + cls_head=dict( + type='STGCNHead', + num_classes=60, + in_channels=256, + loss_cls=dict(type='CrossEntropyLoss')), + train_cfg=None, + test_cfg=None) + +dataset_type = 'PoseDataset' +ann_file_train = 'data/ntu/nturgb+d_skeletons_60_3d_nmtvc/xsub/train.pkl' +ann_file_val = 'data/ntu/nturgb+d_skeletons_60_3d_nmtvc/xsub/val.pkl' +train_pipeline = [ + dict(type='PaddingWithLoop', clip_len=300), + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM'), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +val_pipeline = [ + dict(type='PaddingWithLoop', clip_len=300), + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM'), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +test_pipeline = [ + dict(type='PaddingWithLoop', clip_len=300), + dict(type='PoseDecode'), + dict(type='FormatGCNInput', input_format='NCTVM'), + dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['keypoint']) +] +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + test_dataloader=dict(videos_per_gpu=1), + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix='', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix='', + pipeline=test_pipeline)) + +# optimizer +optimizer = dict( + type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001, nesterov=True) +optimizer_config = dict(grad_clip=None) +# learning policy +lr_config = dict(policy='step', step=[10, 50]) +total_epochs = 80 +checkpoint_config = dict(interval=3) +evaluation = dict(interval=3, metrics=['top_k_accuracy']) +log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')]) + +# runtime settings +dist_params = dict(backend='nccl') +log_level = 'INFO' +work_dir = './work_dirs/stgcn_80e_ntu60_xsub_keypoint_3d/' +load_from = None +resume_from = None +workflow = [('train', 1)] diff --git a/openmmlab_test/mmaction2-0.24.1/demo/README.md b/openmmlab_test/mmaction2-0.24.1/demo/README.md new file mode 100644 index 00000000..93f85fad --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/demo/README.md @@ -0,0 +1,674 @@ +# Demo + +## Outline + +- [Modify configs through script arguments](#modify-config-through-script-arguments): Tricks to directly modify configs through script arguments. +- [Video demo](#video-demo): A demo script to predict the recognition result using a single video. +- [SpatioTemporal Action Detection Video Demo](#spatiotemporal-action-detection-video-demo): A demo script to predict the SpatioTemporal Action Detection result using a single video. +- [Video GradCAM Demo](#video-gradcam-demo): A demo script to visualize GradCAM results using a single video. +- [Webcam demo](#webcam-demo): A demo script to implement real-time action recognition from a web camera. +- [Long Video demo](#long-video-demo): a demo script to predict different labels using a single long video. +- [SpatioTemporal Action Detection Webcam Demo](#spatiotemporal-action-detection-webcam-demo): A demo script to implement real-time spatio-temporal action detection from a web camera. +- [Skeleton-based Action Recognition Demo](#skeleton-based-action-recognition-demo): A demo script to predict the skeleton-based action recognition result using a single video. +- [Video Structuralize Demo](#video-structuralize-demo): A demo script to predict the skeleton-based and rgb-based action recognition and spatio-temporal action detection result using a single video. +- [Audio Demo](#audio-demo): A demo script to predict the recognition result using a single audio file. + +## Modify configs through script arguments + +When running demos using our provided scripts, you may specify `--cfg-options` to in-place modify the config. + +- Update config keys of dict. + + The config options can be specified following the order of the dict keys in the original config. + For example, `--cfg-options model.backbone.norm_eval=False` changes the all BN modules in model backbones to `train` mode. + +- Update keys inside a list of configs. + + Some config dicts are composed as a list in your config. For example, the training pipeline `data.train.pipeline` is normally a list + e.g. `[dict(type='SampleFrames'), ...]`. If you want to change `'SampleFrames'` to `'DenseSampleFrames'` in the pipeline, + you may specify `--cfg-options data.train.pipeline.0.type=DenseSampleFrames`. + +- Update values of list/tuples. + + If the value to be updated is a list or a tuple. For example, the config file normally sets `workflow=[('train', 1)]`. If you want to + change this key, you may specify `--cfg-options workflow="[(train,1),(val,1)]"`. Note that the quotation mark " is necessary to + support list/tuple data types, and that **NO** white space is allowed inside the quotation marks in the specified value. + +## Video demo + +We provide a demo script to predict the recognition result using a single video. In order to get predict results in range `[0, 1]`, make sure to set `model['test_cfg'] = dict(average_clips='prob')` in config file. + +```shell +python demo/demo.py ${CONFIG_FILE} ${CHECKPOINT_FILE} ${VIDEO_FILE} {LABEL_FILE} [--use-frames] \ + [--device ${DEVICE_TYPE}] [--fps {FPS}] [--font-scale {FONT_SCALE}] [--font-color {FONT_COLOR}] \ + [--target-resolution ${TARGET_RESOLUTION}] [--resize-algorithm {RESIZE_ALGORITHM}] [--out-filename {OUT_FILE}] +``` + +Optional arguments: + +- `--use-frames`: If specified, the demo will take rawframes as input. Otherwise, it will take a video as input. +- `DEVICE_TYPE`: Type of device to run the demo. Allowed values are cuda device like `cuda:0` or `cpu`. If not specified, it will be set to `cuda:0`. +- `FPS`: FPS value of the output video when using rawframes as input. If not specified, it will be set to 30. +- `FONT_SCALE`: Font scale of the label added in the video. If not specified, it will be 0.5. +- `FONT_COLOR`: Font color of the label added in the video. If not specified, it will be `white`. +- `TARGET_RESOLUTION`: Resolution(desired_width, desired_height) for resizing the frames before output when using a video as input. If not specified, it will be None and the frames are resized by keeping the existing aspect ratio. +- `RESIZE_ALGORITHM`: Resize algorithm used for resizing. If not specified, it will be set to `bicubic`. +- `OUT_FILE`: Path to the output file which can be a video format or gif format. If not specified, it will be set to `None` and does not generate the output file. + +Examples: + +Assume that you are located at `$MMACTION2` and have already downloaded the checkpoints to the directory `checkpoints/`, +or use checkpoint url from `configs/` to directly load corresponding checkpoint, which will be automatically saved in `$HOME/.cache/torch/checkpoints`. + +1. Recognize a video file as input by using a TSN model on cuda by default. + + ```shell + # The demo.mp4 and label_map_k400.txt are both from Kinetics-400 + python demo/demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + demo/demo.mp4 tools/data/kinetics/label_map_k400.txt + ``` + +2. Recognize a video file as input by using a TSN model on cuda by default, loading checkpoint from url. + + ```shell + # The demo.mp4 and label_map_k400.txt are both from Kinetics-400 + python demo/demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + demo/demo.mp4 tools/data/kinetics/label_map_k400.txt + ``` + +3. Recognize a list of rawframes as input by using a TSN model on cpu. + + ```shell + python demo/demo.py configs/recognition/tsn/tsn_r50_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + PATH_TO_FRAMES/ LABEL_FILE --use-frames --device cpu + ``` + +4. Recognize a video file as input by using a TSN model and then generate an mp4 file. + + ```shell + # The demo.mp4 and label_map_k400.txt are both from Kinetics-400 + python demo/demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + demo/demo.mp4 tools/data/kinetics/label_map_k400.txt --out-filename demo/demo_out.mp4 + ``` + +5. Recognize a list of rawframes as input by using a TSN model and then generate a gif file. + + ```shell + python demo/demo.py configs/recognition/tsn/tsn_r50_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + PATH_TO_FRAMES/ LABEL_FILE --use-frames --out-filename demo/demo_out.gif + ``` + +6. Recognize a video file as input by using a TSN model, then generate an mp4 file with a given resolution and resize algorithm. + + ```shell + # The demo.mp4 and label_map_k400.txt are both from Kinetics-400 + python demo/demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + demo/demo.mp4 tools/data/kinetics/label_map_k400.txt --target-resolution 340 256 --resize-algorithm bilinear \ + --out-filename demo/demo_out.mp4 + ``` + + ```shell + # The demo.mp4 and label_map_k400.txt are both from Kinetics-400 + # If either dimension is set to -1, the frames are resized by keeping the existing aspect ratio + # For --target-resolution 170 -1, original resolution (340, 256) -> target resolution (170, 128) + python demo/demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + demo/demo.mp4 tools/data/kinetics/label_map_k400.txt --target-resolution 170 -1 --resize-algorithm bilinear \ + --out-filename demo/demo_out.mp4 + ``` + +7. Recognize a video file as input by using a TSN model, then generate an mp4 file with a label in a red color and fontscale 1. + + ```shell + # The demo.mp4 and label_map_k400.txt are both from Kinetics-400 + python demo/demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + demo/demo.mp4 tools/data/kinetics/label_map_k400.txt --font-scale 1 --font-color red \ + --out-filename demo/demo_out.mp4 + ``` + +8. Recognize a list of rawframes as input by using a TSN model and then generate an mp4 file with 24 fps. + + ```shell + python demo/demo.py configs/recognition/tsn/tsn_r50_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + PATH_TO_FRAMES/ LABEL_FILE --use-frames --fps 24 --out-filename demo/demo_out.gif + ``` + +## SpatioTemporal Action Detection Video Demo + +We provide a demo script to predict the SpatioTemporal Action Detection result using a single video. + +```shell +python demo/demo_spatiotemporal_det.py --video ${VIDEO_FILE} \ + [--config ${SPATIOTEMPORAL_ACTION_DETECTION_CONFIG_FILE}] \ + [--checkpoint ${SPATIOTEMPORAL_ACTION_DETECTION_CHECKPOINT}] \ + [--det-config ${HUMAN_DETECTION_CONFIG_FILE}] \ + [--det-checkpoint ${HUMAN_DETECTION_CHECKPOINT}] \ + [--det-score-thr ${HUMAN_DETECTION_SCORE_THRESHOLD}] \ + [--action-score-thr ${ACTION_DETECTION_SCORE_THRESHOLD}] \ + [--label-map ${LABEL_MAP}] \ + [--device ${DEVICE}] \ + [--out-filename ${OUTPUT_FILENAME}] \ + [--predict-stepsize ${PREDICT_STEPSIZE}] \ + [--output-stepsize ${OUTPUT_STEPSIZE}] \ + [--output-fps ${OUTPUT_FPS}] +``` + +Optional arguments: + +- `SPATIOTEMPORAL_ACTION_DETECTION_CONFIG_FILE`: The spatiotemporal action detection config file path. +- `SPATIOTEMPORAL_ACTION_DETECTION_CHECKPOINT`: The spatiotemporal action detection checkpoint URL. +- `HUMAN_DETECTION_CONFIG_FILE`: The human detection config file path. +- `HUMAN_DETECTION_CHECKPOINT`: The human detection checkpoint URL. +- `HUMAN_DETECTION_SCORE_THRE`: The score threshold for human detection. Default: 0.9. +- `ACTION_DETECTION_SCORE_THRESHOLD`: The score threshold for action detection. Default: 0.5. +- `LABEL_MAP`: The label map used. Default: `tools/data/ava/label_map.txt`. +- `DEVICE`: Type of device to run the demo. Allowed values are cuda device like `cuda:0` or `cpu`. Default: `cuda:0`. +- `OUTPUT_FILENAME`: Path to the output file which is a video format. Default: `demo/stdet_demo.mp4`. +- `PREDICT_STEPSIZE`: Make a prediction per N frames. Default: 8. +- `OUTPUT_STEPSIZE`: Output 1 frame per N frames in the input video. Note that `PREDICT_STEPSIZE % OUTPUT_STEPSIZE == 0`. Default: 4. +- `OUTPUT_FPS`: The FPS of demo video output. Default: 6. + +Examples: + +Assume that you are located at `$MMACTION2` . + +1. Use the Faster RCNN as the human detector, SlowOnly-8x8-R101 as the action detector. Making predictions per 8 frames, and output 1 frame per 4 frames to the output video. The FPS of the output video is 4. + +```shell +python demo/demo_spatiotemporal_det.py --video demo/demo.mp4 \ + --config configs/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py \ + --checkpoint https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201217-16378594.pth \ + --det-config demo/faster_rcnn_r50_fpn_2x_coco.py \ + --det-checkpoint http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth \ + --det-score-thr 0.9 \ + --action-score-thr 0.5 \ + --label-map tools/data/ava/label_map.txt \ + --predict-stepsize 8 \ + --output-stepsize 4 \ + --output-fps 6 +``` + +## Video GradCAM Demo + +We provide a demo script to visualize GradCAM results using a single video. + +```shell +python demo/demo_gradcam.py ${CONFIG_FILE} ${CHECKPOINT_FILE} ${VIDEO_FILE} [--use-frames] \ + [--device ${DEVICE_TYPE}] [--target-layer-name ${TARGET_LAYER_NAME}] [--fps {FPS}] \ + [--target-resolution ${TARGET_RESOLUTION}] [--resize-algorithm {RESIZE_ALGORITHM}] [--out-filename {OUT_FILE}] +``` + +- `--use-frames`: If specified, the demo will take rawframes as input. Otherwise, it will take a video as input. +- `DEVICE_TYPE`: Type of device to run the demo. Allowed values are cuda device like `cuda:0` or `cpu`. If not specified, it will be set to `cuda:0`. +- `FPS`: FPS value of the output video when using rawframes as input. If not specified, it will be set to 30. +- `OUT_FILE`: Path to the output file which can be a video format or gif format. If not specified, it will be set to `None` and does not generate the output file. +- `TARGET_LAYER_NAME`: Layer name to generate GradCAM localization map. +- `TARGET_RESOLUTION`: Resolution(desired_width, desired_height) for resizing the frames before output when using a video as input. If not specified, it will be None and the frames are resized by keeping the existing aspect ratio. +- `RESIZE_ALGORITHM`: Resize algorithm used for resizing. If not specified, it will be set to `bilinear`. + +Examples: + +Assume that you are located at `$MMACTION2` and have already downloaded the checkpoints to the directory `checkpoints/`, +or use checkpoint url from `configs/` to directly load corresponding checkpoint, which will be automatically saved in `$HOME/.cache/torch/checkpoints`. + +1. Get GradCAM results of a I3D model, using a video file as input and then generate an gif file with 10 fps. + + ```shell + python demo/demo_gradcam.py configs/recognition/i3d/i3d_r50_video_inference_32x2x1_100e_kinetics400_rgb.py \ + checkpoints/i3d_r50_video_32x2x1_100e_kinetics400_rgb_20200826-e31c6f52.pth demo/demo.mp4 \ + --target-layer-name backbone/layer4/1/relu --fps 10 \ + --out-filename demo/demo_gradcam.gif + ``` + +2. Get GradCAM results of a TSM model, using a video file as input and then generate an gif file, loading checkpoint from url. + + ```shell + python demo/demo_gradcam.py configs/recognition/tsm/tsm_r50_video_inference_1x1x8_100e_kinetics400_rgb.py \ + https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_100e_kinetics400_rgb/tsm_r50_video_1x1x8_100e_kinetics400_rgb_20200702-a77f4328.pth \ + demo/demo.mp4 --target-layer-name backbone/layer4/1/relu --out-filename demo/demo_gradcam_tsm.gif + ``` + +## Webcam demo + +We provide a demo script to implement real-time action recognition from web camera. In order to get predict results in range `[0, 1]`, make sure to set `model.['test_cfg'] = dict(average_clips='prob')` in config file. + +```shell +python demo/webcam_demo.py ${CONFIG_FILE} ${CHECKPOINT_FILE} ${LABEL_FILE} \ + [--device ${DEVICE_TYPE}] [--camera-id ${CAMERA_ID}] [--threshold ${THRESHOLD}] \ + [--average-size ${AVERAGE_SIZE}] [--drawing-fps ${DRAWING_FPS}] [--inference-fps ${INFERENCE_FPS}] +``` + +Optional arguments: + +- `DEVICE_TYPE`: Type of device to run the demo. Allowed values are cuda device like `cuda:0` or `cpu`. If not specified, it will be set to `cuda:0`. +- `CAMERA_ID`: ID of camera device If not specified, it will be set to 0. +- `THRESHOLD`: Threshold of prediction score for action recognition. Only label with score higher than the threshold will be shown. If not specified, it will be set to 0. +- `AVERAGE_SIZE`: Number of latest clips to be averaged for prediction. If not specified, it will be set to 1. +- `DRAWING_FPS`: Upper bound FPS value of the output drawing. If not specified, it will be set to 20. +- `INFERENCE_FPS`: Upper bound FPS value of the output drawing. If not specified, it will be set to 4. + +:::{note} +If your hardware is good enough, increasing the value of `DRAWING_FPS` and `INFERENCE_FPS` will get a better experience. +::: + +Examples: + +Assume that you are located at `$MMACTION2` and have already downloaded the checkpoints to the directory `checkpoints/`, +or use checkpoint url from `configs/` to directly load corresponding checkpoint, which will be automatically saved in `$HOME/.cache/torch/checkpoints`. + +1. Recognize the action from web camera as input by using a TSN model on cpu, averaging the score per 5 times + and outputting result labels with score higher than 0.2. + + ```shell + python demo/webcam_demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth tools/data/kinetics/label_map_k400.txt --average-size 5 \ + --threshold 0.2 --device cpu + ``` + +2. Recognize the action from web camera as input by using a TSN model on cpu, averaging the score per 5 times + and outputting result labels with score higher than 0.2, loading checkpoint from url. + + ```shell + python demo/webcam_demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + tools/data/kinetics/label_map_k400.txt --average-size 5 --threshold 0.2 --device cpu + ``` + +3. Recognize the action from web camera as input by using a I3D model on gpu by default, averaging the score per 5 times + and outputting result labels with score higher than 0.2. + + ```shell + python demo/webcam_demo.py configs/recognition/i3d/i3d_r50_video_inference_32x2x1_100e_kinetics400_rgb.py \ + checkpoints/i3d_r50_32x2x1_100e_kinetics400_rgb_20200614-c25ef9a4.pth tools/data/kinetics/label_map_k400.txt \ + --average-size 5 --threshold 0.2 + ``` + +:::{note} +Considering the efficiency difference for users' hardware, Some modifications might be done to suit the case. +Users can change: + +1). `SampleFrames` step (especially the number of `clip_len` and `num_clips`) of `test_pipeline` in the config file, like `--cfg-options data.test.pipeline.0.num_clips=3`. +2). Change to the suitable Crop methods like `TenCrop`, `ThreeCrop`, `CenterCrop`, etc. in `test_pipeline` of the config file, like `--cfg-options data.test.pipeline.4.type=CenterCrop`. +3). Change the number of `--average-size`. The smaller, the faster. +::: + +## Long video demo + +We provide a demo script to predict different labels using a single long video. In order to get predict results in range `[0, 1]`, make sure to set `test_cfg = dict(average_clips='prob')` in config file. + +```shell +python demo/long_video_demo.py ${CONFIG_FILE} ${CHECKPOINT_FILE} ${VIDEO_FILE} ${LABEL_FILE} \ + ${OUT_FILE} [--input-step ${INPUT_STEP}] [--device ${DEVICE_TYPE}] [--threshold ${THRESHOLD}] +``` + +Optional arguments: + +- `OUT_FILE`: Path to the output, either video or json file +- `INPUT_STEP`: Input step for sampling frames, which can help to get more spare input. If not specified , it will be set to 1. +- `DEVICE_TYPE`: Type of device to run the demo. Allowed values are cuda device like `cuda:0` or `cpu`. If not specified, it will be set to `cuda:0`. +- `THRESHOLD`: Threshold of prediction score for action recognition. Only label with score higher than the threshold will be shown. If not specified, it will be set to 0.01. +- `STRIDE`: By default, the demo generates a prediction for each single frame, which might cost lots of time. To speed up, you can set the argument `STRIDE` and then the demo will generate a prediction every `STRIDE x sample_length` frames (`sample_length` indicates the size of temporal window from which you sample frames, which equals to `clip_len x frame_interval`). For example, if the sample_length is 64 frames and you set `STRIDE` to 0.5, predictions will be generated every 32 frames. If set as 0, predictions will be generated for each frame. The desired value of `STRIDE` is (0, 1\], while it also works for `STRIDE > 1` (the generated predictions will be too sparse). Default: 0. +- `LABEL_COLOR`: Font Color of the labels in (B, G, R). Default is white, that is (256, 256, 256). +- `MSG_COLOR`: Font Color of the messages in (B, G, R). Default is gray, that is (128, 128, 128). + +Examples: + +Assume that you are located at `$MMACTION2` and have already downloaded the checkpoints to the directory `checkpoints/`, +or use checkpoint url from `configs/` to directly load corresponding checkpoint, which will be automatically saved in `$HOME/.cache/torch/checkpoints`. + +1. Predict different labels in a long video by using a TSN model on cpu, with 3 frames for input steps (that is, random sample one from each 3 frames) + and outputting result labels with score higher than 0.2. + + ```shell + python demo/long_video_demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth PATH_TO_LONG_VIDEO tools/data/kinetics/label_map_k400.txt PATH_TO_SAVED_VIDEO \ + --input-step 3 --device cpu --threshold 0.2 + ``` + +2. Predict different labels in a long video by using a TSN model on cpu, with 3 frames for input steps (that is, random sample one from each 3 frames) + and outputting result labels with score higher than 0.2, loading checkpoint from url. + + ```shell + python demo/long_video_demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + PATH_TO_LONG_VIDEO tools/data/kinetics/label_map_k400.txt PATH_TO_SAVED_VIDEO --input-step 3 --device cpu --threshold 0.2 + ``` + +3. Predict different labels in a long video from web by using a TSN model on cpu, with 3 frames for input steps (that is, random sample one from each 3 frames) + and outputting result labels with score higher than 0.2, loading checkpoint from url. + + ```shell + python demo/long_video_demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4 \ + tools/data/kinetics/label_map_k400.txt PATH_TO_SAVED_VIDEO --input-step 3 --device cpu --threshold 0.2 + ``` + +4. Predict different labels in a long video by using a I3D model on gpu, with input_step=1, threshold=0.01 as default and print the labels in cyan. + + ```shell + python demo/long_video_demo.py configs/recognition/i3d/i3d_r50_video_inference_32x2x1_100e_kinetics400_rgb.py \ + checkpoints/i3d_r50_256p_32x2x1_100e_kinetics400_rgb_20200801-7d9f44de.pth PATH_TO_LONG_VIDEO tools/data/kinetics/label_map_k400.txt PATH_TO_SAVED_VIDEO \ + --label-color 255 255 0 + ``` + +5. Predict different labels in a long video by using a I3D model on gpu and save the results as a `json` file + + ```shell + python demo/long_video_demo.py configs/recognition/i3d/i3d_r50_video_inference_32x2x1_100e_kinetics400_rgb.py \ + checkpoints/i3d_r50_256p_32x2x1_100e_kinetics400_rgb_20200801-7d9f44de.pth PATH_TO_LONG_VIDEO tools/data/kinetics/label_map_k400.txt ./results.json + ``` + +## SpatioTemporal Action Detection Webcam Demo + +We provide a demo script to implement real-time spatio-temporal action detection from a web camera. + +```shell +python demo/webcam_demo_spatiotemporal_det.py \ + [--config ${SPATIOTEMPORAL_ACTION_DETECTION_CONFIG_FILE}] \ + [--checkpoint ${SPATIOTEMPORAL_ACTION_DETECTION_CHECKPOINT}] \ + [--action-score-thr ${ACTION_DETECTION_SCORE_THRESHOLD}] \ + [--det-config ${HUMAN_DETECTION_CONFIG_FILE}] \ + [--det-checkpoint ${HUMAN_DETECTION_CHECKPOINT}] \ + [--det-score-thr ${HUMAN_DETECTION_SCORE_THRESHOLD}] \ + [--input-video] ${INPUT_VIDEO} \ + [--label-map ${LABEL_MAP}] \ + [--device ${DEVICE}] \ + [--output-fps ${OUTPUT_FPS}] \ + [--out-filename ${OUTPUT_FILENAME}] \ + [--show] \ + [--display-height] ${DISPLAY_HEIGHT} \ + [--display-width] ${DISPLAY_WIDTH} \ + [--predict-stepsize ${PREDICT_STEPSIZE}] \ + [--clip-vis-length] ${CLIP_VIS_LENGTH} +``` + +Optional arguments: + +- `SPATIOTEMPORAL_ACTION_DETECTION_CONFIG_FILE`: The spatiotemporal action detection config file path. +- `SPATIOTEMPORAL_ACTION_DETECTION_CHECKPOINT`: The spatiotemporal action detection checkpoint path or URL. +- `ACTION_DETECTION_SCORE_THRESHOLD`: The score threshold for action detection. Default: 0.4. +- `HUMAN_DETECTION_CONFIG_FILE`: The human detection config file path. +- `HUMAN_DETECTION_CHECKPOINT`: The human detection checkpoint URL. +- `HUMAN_DETECTION_SCORE_THRE`: The score threshold for human detection. Default: 0.9. +- `INPUT_VIDEO`: The webcam id or video path of the source. Default: `0`. +- `LABEL_MAP`: The label map used. Default: `tools/data/ava/label_map.txt`. +- `DEVICE`: Type of device to run the demo. Allowed values are cuda device like `cuda:0` or `cpu`. Default: `cuda:0`. +- `OUTPUT_FPS`: The FPS of demo video output. Default: 15. +- `OUTPUT_FILENAME`: Path to the output file which is a video format. Default: None. +- `--show`: Whether to show predictions with `cv2.imshow`. +- `DISPLAY_HEIGHT`: The height of the display frame. Default: 0. +- `DISPLAY_WIDTH`: The width of the display frame. Default: 0. If `DISPLAY_HEIGHT <= 0 and DISPLAY_WIDTH <= 0`, the display frame and input video share the same shape. +- `PREDICT_STEPSIZE`: Make a prediction per N frames. Default: 8. +- `CLIP_VIS_LENGTH`: The number of the draw frames for each clip. In other words, for each clip, there are at most `CLIP_VIS_LENGTH` frames to be draw around the keyframe. DEFAULT: 8. + +Tips to get a better experience for webcam demo: + +- How to choose `--output-fps`? + + - `--output-fps` should be almost equal to read thread fps. + - Read thread fps is printed by logger in format `DEBUG:__main__:Read Thread: {duration} ms, {fps} fps` + +- How to choose `--predict-stepsize`? + + - It's related to how to choose human detector and spatio-temporval model. + - Overall, the duration of read thread for each task should be greater equal to that of model inference. + - The durations for read/inference are both printed by logger. + - Larger `--predict-stepsize` leads to larger duration for read thread. + - In order to fully take the advantage of computation resources, decrease the value of `--predict-stepsize`. + +Examples: + +Assume that you are located at `$MMACTION2` . + +1. Use the Faster RCNN as the human detector, SlowOnly-8x8-R101 as the action detector. Making predictions per 40 frames, and FPS of the output is 20. Show predictions with `cv2.imshow`. + +```shell +python demo/webcam_demo_spatiotemporal_det.py \ + --input-video 0 \ + --config configs/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py \ + --checkpoint https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201217-16378594.pth \ + --det-config demo/faster_rcnn_r50_fpn_2x_coco.py \ + --det-checkpoint http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth \ + --det-score-thr 0.9 \ + --action-score-thr 0.5 \ + --label-map tools/data/ava/label_map.txt \ + --predict-stepsize 40 \ + --output-fps 20 \ + --show +``` + +## Skeleton-based Action Recognition Demo + +We provide a demo script to predict the skeleton-based action recognition result using a single video. + +```shell +python demo/demo_skeleton.py ${VIDEO_FILE} ${OUT_FILENAME} \ + [--config ${SKELETON_BASED_ACTION_RECOGNITION_CONFIG_FILE}] \ + [--checkpoint ${SKELETON_BASED_ACTION_RECOGNITION_CHECKPOINT}] \ + [--det-config ${HUMAN_DETECTION_CONFIG_FILE}] \ + [--det-checkpoint ${HUMAN_DETECTION_CHECKPOINT}] \ + [--det-score-thr ${HUMAN_DETECTION_SCORE_THRESHOLD}] \ + [--pose-config ${HUMAN_POSE_ESTIMATION_CONFIG_FILE}] \ + [--pose-checkpoint ${HUMAN_POSE_ESTIMATION_CHECKPOINT}] \ + [--label-map ${LABEL_MAP}] \ + [--device ${DEVICE}] \ + [--short-side] ${SHORT_SIDE} +``` + +Optional arguments: + +- `SKELETON_BASED_ACTION_RECOGNITION_CONFIG_FILE`: The skeleton-based action recognition config file path. +- `SKELETON_BASED_ACTION_RECOGNITION_CHECKPOINT`: The skeleton-based action recognition checkpoint path or URL. +- `HUMAN_DETECTION_CONFIG_FILE`: The human detection config file path. +- `HUMAN_DETECTION_CHECKPOINT`: The human detection checkpoint URL. +- `HUMAN_DETECTION_SCORE_THRE`: The score threshold for human detection. Default: 0.9. +- `HUMAN_POSE_ESTIMATION_CONFIG_FILE`: The human pose estimation config file path (trained on COCO-Keypoint). +- `HUMAN_POSE_ESTIMATION_CHECKPOINT`: The human pose estimation checkpoint URL (trained on COCO-Keypoint). +- `LABEL_MAP`: The label map used. Default: `tools/data/ava/label_map.txt`. +- `DEVICE`: Type of device to run the demo. Allowed values are cuda device like `cuda:0` or `cpu`. Default: `cuda:0`. +- `SHORT_SIDE`: The short side used for frame extraction. Default: 480. + +Examples: + +Assume that you are located at `$MMACTION2` . + +1. Use the Faster RCNN as the human detector, HRNetw32 as the pose estimator, PoseC3D-NTURGB+D-120-Xsub-keypoint as the skeleton-based action recognizer. + +```shell +python demo/demo_skeleton.py demo/ntu_sample.avi demo/skeleton_demo.mp4 \ + --config configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint.py \ + --checkpoint https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint/slowonly_r50_u48_240e_ntu120_xsub_keypoint-6736b03f.pth \ + --det-config demo/faster_rcnn_r50_fpn_2x_coco.py \ + --det-checkpoint http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth \ + --det-score-thr 0.9 \ + --pose-config demo/hrnet_w32_coco_256x192.py \ + --pose-checkpoint https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w32_coco_256x192-c78dce93_20200708.pth \ + --label-map tools/data/skeleton/label_map_ntu120.txt +``` + +2. Use the Faster RCNN as the human detector, HRNetw32 as the pose estimator, STGCN-NTURGB+D-60-Xsub-keypoint as the skeleton-based action recognizer. + +```shell +python demo/demo_skeleton.py demo/ntu_sample.avi demo/skeleton_demo.mp4 \ + --config configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py \ + --checkpoint https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint/stgcn_80e_ntu60_xsub_keypoint-e7bb9653.pth \ + --det-config demo/faster_rcnn_r50_fpn_2x_coco.py \ + --det-checkpoint http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth \ + --det-score-thr 0.9 \ + --pose-config demo/hrnet_w32_coco_256x192.py \ + --pose-checkpoint https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w32_coco_256x192-c78dce93_20200708.pth \ + --label-map tools/data/skeleton/label_map_ntu120.txt +``` + +## Video Structuralize Demo + +We provide a demo script to to predict the skeleton-based and rgb-based action recognition and spatio-temporal action detection result using a single video. + +```shell +python demo/demo_video_structuralize.py + [--rgb-stdet-config ${RGB_BASED_SPATIO_TEMPORAL_ACTION_DETECTION_CONFIG_FILE}] \ + [--rgb-stdet-checkpoint ${RGB_BASED_SPATIO_TEMPORAL_ACTION_DETECTION_CHECKPOINT}] \ + [--skeleton-stdet-checkpoint ${SKELETON_BASED_SPATIO_TEMPORAL_ACTION_DETECTION_CHECKPOINT}] \ + [--det-config ${HUMAN_DETECTION_CONFIG_FILE}] \ + [--det-checkpoint ${HUMAN_DETECTION_CHECKPOINT}] \ + [--pose-config ${HUMAN_POSE_ESTIMATION_CONFIG_FILE}] \ + [--pose-checkpoint ${HUMAN_POSE_ESTIMATION_CHECKPOINT}] \ + [--skeleton-config ${SKELETON_BASED_ACTION_RECOGNITION_CONFIG_FILE}] \ + [--skeleton-checkpoint ${SKELETON_BASED_ACTION_RECOGNITION_CHECKPOINT}] \ + [--rgb-config ${RGB_BASED_ACTION_RECOGNITION_CONFIG_FILE}] \ + [--rgb-checkpoint ${RGB_BASED_ACTION_RECOGNITION_CHECKPOINT}] \ + [--use-skeleton-stdet ${USE_SKELETON_BASED_SPATIO_TEMPORAL_DETECTION_METHOD}] \ + [--use-skeleton-recog ${USE_SKELETON_BASED_ACTION_RECOGNITION_METHOD}] \ + [--det-score-thr ${HUMAN_DETECTION_SCORE_THRE}] \ + [--action-score-thr ${ACTION_DETECTION_SCORE_THRE}] \ + [--video ${VIDEO_FILE}] \ + [--label-map-stdet ${LABEL_MAP_FOR_SPATIO_TEMPORAL_ACTION_DETECTION}] \ + [--device ${DEVICE}] \ + [--out-filename ${OUTPUT_FILENAME}] \ + [--predict-stepsize ${PREDICT_STEPSIZE}] \ + [--output-stepsize ${OUTPU_STEPSIZE}] \ + [--output-fps ${OUTPUT_FPS}] \ + [--cfg-options] +``` + +Optional arguments: + +- `RGB_BASED_SPATIO_TEMPORAL_ACTION_DETECTION_CONFIG_FILE`: The rgb-based spatio temoral action detection config file path. +- `RGB_BASED_SPATIO_TEMPORAL_ACTION_DETECTION_CHECKPOINT`: The rgb-based spatio temoral action detection checkpoint path or URL. +- `SKELETON_BASED_SPATIO_TEMPORAL_ACTION_DETECTION_CHECKPOINT`: The skeleton-based spatio temoral action detection checkpoint path or URL. +- `HUMAN_DETECTION_CONFIG_FILE`: The human detection config file path. +- `HUMAN_DETECTION_CHECKPOINT`: The human detection checkpoint URL. +- `HUMAN_POSE_ESTIMATION_CONFIG_FILE`: The human pose estimation config file path (trained on COCO-Keypoint). +- `HUMAN_POSE_ESTIMATION_CHECKPOINT`: The human pose estimation checkpoint URL (trained on COCO-Keypoint). +- `SKELETON_BASED_ACTION_RECOGNITION_CONFIG_FILE`: The skeleton-based action recognition config file path. +- `SKELETON_BASED_ACTION_RECOGNITION_CHECKPOINT`: The skeleton-based action recognition checkpoint path or URL. +- `RGB_BASED_ACTION_RECOGNITION_CONFIG_FILE`: The rgb-based action recognition config file path. +- `RGB_BASED_ACTION_RECOGNITION_CHECKPOINT`: The rgb-based action recognition checkpoint path or URL. +- `USE_SKELETON_BASED_SPATIO_TEMPORAL_DETECTION_METHOD`: Use skeleton-based spatio temporal action detection method. +- `USE_SKELETON_BASED_ACTION_RECOGNITION_METHOD`: Use skeleton-based action recognition method. +- `HUMAN_DETECTION_SCORE_THRE`: The score threshold for human detection. Default: 0.9. +- `ACTION_DETECTION_SCORE_THRE`: The score threshold for action detection. Default: 0.4. +- `LABEL_MAP_FOR_SPATIO_TEMPORAL_ACTION_DETECTION`: The label map for spatio temporal action detection used. Default: `tools/data/ava/label_map.txt`. +- `LABEL_MAP`: The label map for action recognition. Default: `tools/data/kinetics/label_map_k400.txt`. +- `DEVICE`: Type of device to run the demo. Allowed values are cuda device like `cuda:0` or `cpu`. Default: `cuda:0`. +- `OUTPUT_FILENAME`: Path to the output file which is a video format. Default: `demo/test_stdet_recognition_output.mp4`. +- `PREDICT_STEPSIZE`: Make a prediction per N frames. Default: 8. +- `OUTPUT_STEPSIZE`: Output 1 frame per N frames in the input video. Note that `PREDICT_STEPSIZE % OUTPUT_STEPSIZE == 0`. Default: 1. +- `OUTPUT_FPS`: The FPS of demo video output. Default: 24. + +Examples: + +Assume that you are located at `$MMACTION2` . + +1. Use the Faster RCNN as the human detector, HRNetw32 as the pose estimator, PoseC3D as the skeleton-based action recognizer and the skeleton-based spatio temporal action detector. Making action detection predictions per 8 frames, and output 1 frame per 1 frame to the output video. The FPS of the output video is 24. + +```shell +python demo/demo_video_structuralize.py + --skeleton-stdet-checkpoint https://download.openmmlab.com/mmaction/skeleton/posec3d/posec3d_ava.pth \ + --det-config demo/faster_rcnn_r50_fpn_2x_coco.py \ + --det-checkpoint http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth \ + --pose-config demo/hrnet_w32_coco_256x192.py + --pose-checkpoint https://download.openmmlab.com/mmpose/top_down/hrnet/ + hrnet_w32_coco_256x192-c78dce93_20200708.pth \ + --skeleton-config configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint.py \ + --skeleton-checkpoint https://download.openmmlab.com/mmaction/skeleton/posec3d/ + posec3d_k400.pth \ + --use-skeleton-stdet \ + --use-skeleton-recog \ + --label-map-stdet tools/data/ava/label_map.txt \ + --label-map tools/data/kinetics/label_map_k400.txt +``` + +2. Use the Faster RCNN as the human detector, TSN-R50-1x1x3 as the rgb-based action recognizer, SlowOnly-8x8-R101 as the rgb-based spatio temporal action detector. Making action detection predictions per 8 frames, and output 1 frame per 1 frame to the output video. The FPS of the output video is 24. + +```shell +python demo/demo_video_structuralize.py + --rgb-stdet-config configs/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py \ + --rgb-stdet-checkpoint https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201217-16378594.pth \ + --det-config demo/faster_rcnn_r50_fpn_2x_coco.py \ + --det-checkpoint http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth \ + --rgb-config configs/recognition/tsn/ + tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + --rgb-checkpoint https://download.openmmlab.com/mmaction/recognition/ + tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/ + tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + --label-map-stdet tools/data/ava/label_map.txt \ + --label-map tools/data/kinetics/label_map_k400.txt +``` + +3. Use the Faster RCNN as the human detector, HRNetw32 as the pose estimator, PoseC3D as the skeleton-based action recognizer, SlowOnly-8x8-R101 as the rgb-based spatio temporal action detector. Making action detection predictions per 8 frames, and output 1 frame per 1 frame to the output video. The FPS of the output video is 24. + +```shell +python demo/demo_video_structuralize.py + --rgb-stdet-config configs/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py \ + --rgb-stdet-checkpoint https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201217-16378594.pth \ + --det-config demo/faster_rcnn_r50_fpn_2x_coco.py \ + --det-checkpoint http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth \ + --pose-config demo/hrnet_w32_coco_256x192.py + --pose-checkpoint https://download.openmmlab.com/mmpose/top_down/hrnet/ + hrnet_w32_coco_256x192-c78dce93_20200708.pth \ + --skeleton-config configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint.py \ + --skeleton-checkpoint https://download.openmmlab.com/mmaction/skeleton/posec3d/ + posec3d_k400.pth \ + --use-skeleton-recog \ + --label-map-stdet tools/data/ava/label_map.txt \ + --label-map tools/data/kinetics/label_map_k400.txt +``` + +4. Use the Faster RCNN as the human detector, HRNetw32 as the pose estimator, TSN-R50-1x1x3 as the rgb-based action recognizer, PoseC3D as the skeleton-based spatio temporal action detector. Making action detection predictions per 8 frames, and output 1 frame per 1 frame to the output video. The FPS of the output video is 24. + +```shell +python demo/demo_video_structuralize.py + --skeleton-stdet-checkpoint https://download.openmmlab.com/mmaction/skeleton/posec3d/posec3d_ava.pth \ + --det-config demo/faster_rcnn_r50_fpn_2x_coco.py \ + --det-checkpoint http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth \ + --pose-config demo/hrnet_w32_coco_256x192.py + --pose-checkpoint https://download.openmmlab.com/mmpose/top_down/hrnet/ + hrnet_w32_coco_256x192-c78dce93_20200708.pth \ + --skeleton-config configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint.py \ + --rgb-config configs/recognition/tsn/ + tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + --rgb-checkpoint https://download.openmmlab.com/mmaction/recognition/ + tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/ + tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + --use-skeleton-stdet \ + --label-map-stdet tools/data/ava/label_map.txt \ + --label-map tools/data/kinetics/label_map_k400.txt +``` + +## Audio Demo + +Demo script to predict the audio-based action recognition using a single audio feature. + +The script `extract_audio.py` can be used to extract audios from videos and the script `build_audio_features.py` can be used to extract the audio features. + +```shell +python demo/demo_audio.py ${CONFIG_FILE} ${CHECKPOINT_FILE} ${AUDIO_FILE} {LABEL_FILE} [--device ${DEVICE}] +``` + +Optional arguments: + +- `DEVICE`: Type of device to run the demo. Allowed values are cuda devices like `cuda:0` or `cpu`. If not specified, it will be set to `cuda:0`. + +Examples: + +Assume that you are located at `$MMACTION2` and have already downloaded the checkpoints to the directory `checkpoints/`, +or use checkpoint url from `configs/` to directly load the corresponding checkpoint, which will be automatically saved in `$HOME/.cache/torch/checkpoints`. + +1. Recognize an audio file as input by using a tsn model on cuda by default. + + ```shell + python demo/demo_audio.py \ + configs/recognition_audio/resnet/tsn_r18_64x1x1_100e_kinetics400_audio_feature.py \ + https://download.openmmlab.com/mmaction/recognition/audio_recognition/tsn_r18_64x1x1_100e_kinetics400_audio_feature/tsn_r18_64x1x1_100e_kinetics400_audio_feature_20201012-bf34df6c.pth \ + audio_feature.npy label_map_k400.txt + ``` diff --git a/openmmlab_test/mmaction2-0.24.1/demo/demo.gif b/openmmlab_test/mmaction2-0.24.1/demo/demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..3f9953cdcf50f622e56ab81f5d609acd7c34e81a GIT binary patch literal 1642286 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
V$^p)wg^&6X4Dox!7b_nI_7dP%m-aUq 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�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�b442z}@< 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 z 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

jLnBcY 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%0AKgi{MhYY-Va5phlerZ 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

&o|L`9;_EnM89 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

4#=mlVLzDBmCoDJyA)BB;M(r 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

o$$^*0OJ!9&K|?m+k~(CfF&31>0j%hmD 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%0DM9xFR*5xFzMO`ogC(60UO8a5{;0+p9hYE95I- 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�Gx7-YP5 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

t!dx(3FkjE+{g*zL`cDI?&UZ$XI&$5I z`zn6@&WQFjF72qR^@mviL|~#!6@mp|?H^+0k%i&dtQo%CdyOD%?IX#SuvCfe6^IWO z(Ei!_4zo4Dfr5n|Ra7m^YG%gP)B2E$)AGe^+(;9>(`jE96kBGAkJ`Fb^##h$4GW?) zfj%T7?MgH1jKK7?q{WGtvF@yH|@yK0#;S>h=(u zzDkrvlux-MCMFne$VciwQu@lFW#9}3^pv!D9(BvF$jdJf*M){Ar>Uc`i4^CYjs^KX z#L3Eh5!I$0N&Yt+LE|2)KsvT0%_@-0LfIUA#ZxQeSVjue2;*xO`a!mrFq3l64pC{V zj0M?~t~`w5N8%wmYNGZ4oUVRU)#`i5$Vj~|0O<}gP0gM~xz~2Af=qhLdbn7((`~QS z5SFylb--xHGL=la)ZvrlKNuQ7!WV0m%Rv+2 z2Z%#Px(0|8?ikQ+r~I&lm2U&7itv4-Xt~N{4YntZSu}+&(!PC*$iJZc$q&Pgn#!z5phUnh$o@u||h z5aZ&i@~;U(P0^l~R0EzS?egjh2ZrJ=;PuU8t}TFo2mW*Tj@84X#c zo1AN0>FZu^OU9=oj_rv-RO7U8&<&>pmAGSei4g~;HV9)P88%qY7@)s9Pr2XQ=*g2x z*t4X-(>BgNFIkZ8c2|4Xc`E*eq+pl(s7=IS_3VC4)hoVY+iDPPc7(M3n;+TC<`$-E zBG*4v<>c`Z@C})av9W%ns_FKby+z8O_gL`f_&sQW*fr!>N~-meb!JB*c2pti?=|M3 z12pEEeHnoV0MO;AN}2p%B|Cm>fC#r|<578e{0L1TNptUqw2c=uEYJ^$i+KogpZs+} z9w9P50}fy(L^`)oD_CWoegHcc_I^1jf8%6?FtffGer=ndD~7yvW;(1JzY40a!6RpQ z3jb!5A<>f0Ao?lyAdWSvYqXX{X*k?WQL z-o&(Pak)H1cThkVoITM%7V zx^HkXHJkM?3<7Spof5GRSLiFPhvbK!aHUCAG zK3keg`gGXQ94()*Fx{debc}_kG;H(^&8|H|J*z8+-Ek=SxWNPZ1TD#|&TGkrUD$aX zShR;`Lv)%h8}j=DI`xvyCB2V(?W9vLwDeDMb4t5O#EMEaDRv#APGj=u4;c@BY(7Nj zY}@q{<$j0>fzru(`KQ#O)x9dl@5!3$s6}gnumr@0bvbS9z#`1UB=t`ggBGhK2T;!t zw;E{~#3Y6uHkZ-_e&>UxxlgYRju%(OD>y*`patmJg5I$1J8*up=+R>(W|Cq_&;ZqYo?`0sh3QtP-vEn`z=tb zx&|S(gKK{}YC14|KY7}$GuysnrGm|oFQaDmOX#)8qI=azDt0gVJLo%XHl%n$Kux^K zkX~vx4dHQIxS`#OTa=!3db`dORHEPBq7e~eWmN__$RtDR)Ud*+m^-vMbq9=lRDQ2U z1|O`U5Ui7VmKX=fB0+_#7%HpX;FU#rmURa-B8WNVN%%Tq>quaRX9Ph#mqyn+8n@x4 zGUACUWDwzkWHjmgd~#^wME}~6-2sX>am;?Go`(p}r{IfjJYsV-1@IMv@UdtH=;Fyd z-JpPED1_}ycxq912a9ng%QxlQ5Ohyp#{ZM_gm{io6{K*&TJeaaL}!Crpe+xL{;_d` zX+k0L-KI@|YGX7AEY$vntfECb?%ke>45g9XHYiXvj1nTqzZKrxz5fQJ;+-=#I zQG?{(ht^p^iMBS^PuhGQ77njy5Y!6lbI3nrp@I@aN069NiXRI>^(HqUDmecu&4f~9WC_Pnj2Ps+?9-pGj-HLF>a&9u@}Qz8GUhmXU|) zJW^Rf9CmQJ8eyt;3TA(|o8xFDpl|;08~Geyc&VbuJkHesp>nfZc_Cs~<(2JZb~Fai z)DEc>-#v+i-c?);A_ZbvjrqTky!wa5!`rd^;O~XiP-js>R6U17t`9+U*i2W#0I+&v zG&{-uBSD6=u%lwnK~SCbXrM*($we1M+X;VW^@>aJSD9h8^zF0(WfqEtZ}=>RCkK9N z1!Kndyvk5BLMzJ5TNPZMScl=^$u3rcXM!*61QCmxNBF{QMD0grRqMmuK#oyK!ZWb? zfI7lQ34n6cWdE8x9K;yrP^2vE`a6E&UqX)Yk$NmkwhR=S?3foXOfN?RSNtsBc-8q} zrFmUyCUV}i(9V!?)28$P9V)Xi9MZA8qQGXFPk(@hd4Pf|{4-{)3zpTmIJ_c1sb?sI z`u^h^*psy^i%Qt)XkcWBSIR2vO{yERl)EFH;qBv?nc$%M41)B#T`H-BxD zQdUeT{c!WOKYN_={kits;YbyA8`)%5x;+o%o#PR{kJT~kCcX*lkpeay>;iH|@m^`7 zFvO!j^~T@JW~qPzhf1J1&cM6FUC)H3IKkjEhz$a3Cp5kJ!EwS!m^-SqW z=IW!^+8KX|BG1^nu$3A5HK{Z!XU0&;=87Le@r9xOzkxdcA3n*AQ`AU5uQpx|vzBpR z56+D#7?1UcfU!*yivlUBAX>ny-j*=6+rb2fqCh z<$R~D@WOkbgcfjNw(;kiBOG=pD&^laN1GtQgL>qct>(YW$k0C31F!C0>({T|FCtuj z@5z>`XC=>GFh$D20(=-ybQPFZy~~V+ucfNrm=FM%gC4|?oy^Jjn`Cz7*(|IiZpicG zw-lb8*^|j5*D?G3u_b(}X{%JDN&KE+rRviE)F#8kY`PO`fUpPaUYbROZYa}#9~kBE z^XvM&o1ev8(14E*;R8NK03J=9lqyY^w6a0>k~Cv8`;wp#Zzd1_L!oceXjjtld`WUX zsH@WV-%kq?a5Zb*m}SS`OzLc0K2}q5QFANiy?>+A3bVCcWgr|`P1A3-Xaae-@5W|d z2y3*llqRM=m_~T8XME+M=KbK#qp!u!A>}YqcZm|-MC=`(pPDh=R$jC!){(EpIjWI| zH<8{lYba4UB~8Oy5sO1*0?XNE1|`ck6BI!5yix(X#%=|fbQ!RgaLk3eClX~?Ay~sV z-UR&xI{C}_5KZJb+#oR~n(7@b7+;I|u}GKA87V=E<=M=JIN zmrz$l|B9vQIMC+H(6@cSwgSPg4&d|ZTGKtl$(AwPa{CWZ`j9BvKm1Qg__sM{N`x0w z<7t9lh<_Cl=#X$i=J?+9n%Bq=sp*Roo&-V zJTf!y)Un|!pFnbi*9$SzbcG#u;kb17{e0bkuBy5|Ycc#XORA_0QE(1owx6v5VMUI( zMOtUB(Dtv%Ys_0cHc+J$Y9bUwlEr?4phArsfz$QFMUxppIv)pJ9CqJ@wD+Csq{w+1 zv^T^7)r%h;p*a)Y8@S>z!?K}%)#MfQom+H8Iu?NOv}(EtS4X^uq$le$&ph?`=LC-qB?1x1&QF-as!eu&d+K~lae+G~*yNp2U*3aUPS3|$cCqW9 zxnaL$bcT=O+`QGQ4aoSst}4bxBqNFEzeg8pv9g0J15B5`+Ee?quHOp$j~b2vuU5S4 zv2S|MjJQOH4h;t+nW}31BGQdZc_XHpmHLSz#)## zy@A5erTY|cMS7dtk@37FbEl^~ZQv3thn1)^WcFuyU17sbcFmGLbD3>4J`6)U76Z*? z^jN~=Xsw}F=E_EO#|6!Z%EDwmVl&rM{~HV!dI|+>eYUaAeqpDeuNYXK<*OEO3hdTc z2+DgxOEm@IJS~#tnVcz2l{w8t~ZWnSXW9y#~n-e-}RRfEIAFKGt2$G?Kg0p z^Up7EPIF-IKUe(vC(4*E5(V>DL{-(leYf-(1X4I@bNcDsyDO70TNX|-_NOlWk_RUi ztSa+MV3@FJuo3nQU|k_UNw-D?ywfTR9{kDbHVv99m&uGaGlML|g;T(EO`T{pJGqFO z!tWG)Ah%|f&)dVz%=f7>cMp#VDmL*9o7*Ht;XPmx5sAmVYfLsUZ)H7Z5y;U-BB1=(W&}?xz`10J
}DV+~CuJk1_IiHXGca$oIgD91<(8{(bA8$$GFoZ2oVIU(3MG1zk5|zl3Tt zB|Hv0bXeOhcF)UR{va$_C}*yGY?PedFVZh})3cO7w*i=evbx;Y*ZoD<<|Ps#^8X+D zK32GhNr;j0UnbU0qXS*jniAY>FOeVgAIy6CEK&UdL^3VMue2f-;!TbC(JSeBH?c`{_A@OajIvuy;7?64Qcj{c4CN zJsf^Fd})K;`J7}+$#`PCF+3?fVEtKJ#&g7*9B%E3DV{32mN zfW%6>cH%B;DhY~RA(nk#WtSa08}pBriH+PYtpI__$u`E0;11A_2WV&d zPZZTZpxOa7$!$NoOgp?(Q!wSJMM2nhGnOqBFM35j0`jmIAEvvjGv&8$$Uc^2bnB68 z6DVPUNNdwb6XQ~>$ClA~`szw=LVVZry$nTgvG+7+-=W=uo)M*GJ$!F>R!&oQ>|tsp z*V7C`;}zF2>QS>#e+nI^x9O}#P=>OEL``R(CQip3d2M7lD;^`@X!LM`5v8wr*!?xL z8DOO)%2SFdDFm#nRv;4Ti#Hr4`?%Se+~YT24Xbho5u*3G&WR^cV*J%f!SKMuyV#f= zNU$(vY&+KH#Klo)X=!!rjF)=4gdH{~66Qb$7|NEA>WbBRKdgJ^(3nJ6XBjC5?Srbb zEbb}jT-64wqzCy_C{#R#WN-XUjP!KXaZcBG7 z6#z*lgC8@mK1{qsYYMEn>eBVlgO1+h!peqb_lYS#W6MWDOq!PGl9IDW;}aS(%IV5O zCYZ`9xHqp-I2cO;yyPVYb&!GjDTU|&S5pZ)^-9n^|8sm0(!$qQL@H3S{Q`M~V6#;z z!VP-sS=1lCP80KXYH}xdHP-?W0pM;o5Z=0Qzz|DQ#Eo`AlUu@ibdntCFIV8R6kh`( zGg)BF@yD2`p{CH@zo^)9ZP`E{o2u!L*__vlf7ArLD!Tp%(A{P&(ABE8e-QrDoVXzw8}?`Z+uIQO4!B|67eRfnCak>b8R#J7 ztIkC%8f&eQiWPRZGR!Z8`6c7PtuTbs6Yev2a?tC#urL8r+o@#e>COVnEg$j#^Bt3& znmthj8e-i&QP*i1A^OFW__!iqG_EwdAVFm{siQ)r7UN9cDJL+1{&#eM^~UGhpW`x( zl#qxMwLnF-eTO00)1Cgg7s()uD{VCtYmS+QM^icB@s2+TI=m!+DTk|IBQy=~-8tS- zj>+KcKMo(#dq|tMqQ5=bubZ%c=>eW$-GocZdLz>4iak|cnJU^J5cRhNVKQ;J^7!539h^1>v3ERfU)y{ks{> z77`HuVyJD((fV&FQZUDfdGwx;s~$jfl&3)Ja#};(g}Dmvef+0-mwCZs!~CFh)jWtg zF{P!XA&acPQ5t~BwXcn%mygxF)!S$$WE82NSwHHrvBqjiJxI=OKx$=tS1BLGn=SQw zh6aOAOM#Q0{mk*p#chR~3(j38*&B6VQXP@UPVWusg>~YmrvNSy`3*l7V2a^RAGz}2 zY1SaPIB;_IL6E7sw4h2a%?QTR#OLf3FO4R);X>&sP$wfcm}TADsoe&RDM|V@)W~il z@9D@BE>w>d!fIX(;q27w>A)d^W9O54SsJKSmF!CN^ZjW_@=RI@c3HGe0&{M>)#>br z+rjkv7*6AzuQKKznVq44)NW&?bvH ztsNI%qEW=dfU(5I->rAMt30yKy<;*7fQ7>DoP_>gdAd+%3gzDE^%I8jr#PlXcDW1K zU7(#zu@Pxwa}GQQlZZn@<0r2>Z+|eQ9OhOqIHe0<9O4zT7RFJT_(Dl3Fm>2NWIs2& z0~WirNjN9^NY&}dh@gjSWdpOiNz~*pd1Z@V!zvtCR$!&q8ze_(N_LHlj-Pw62QhPu zFx=7;c#HQ_g5?_ZI66Bza@#hQ49|klxKhT1MfkvAE8=(I{b@+o1z%KbPg~>y@~e!t za@$vh+i-O~ilQ^)N+%yL1$qjvW4l8>n>MmX ziJx9aaGQ{M5P4At;-getmEZ+jF^b;4U?TeTAO-B5(gy!T}kGGY&coPG<^#I|f3L5g?*cSl zcRN5c7(6>S#gF}uixm}w`Q*4;=ex)jwNmgEYy;`}Y|CKjg1}7zV482q@2 z;}({(+wcz5zs%URU+R*8{ksLCl!zHBk>_THGurPPJD2foEyk?yYxc=GGDa4Inr3k* zos97s$MEl5t&`p4``|Q#=wAq~RN#{P3#x8~F0MYErZXJ?aP@?X0 zevl|4EBJe=MbXZ)E>0fhJlKQ3`D*ZV&K+B)pd`uIT3h2`TtY|Q=xqaZoD(G0*;N^9z5lR^1s$dzo!V?1bRNB=_q5>BOi_D13wJlszuE+T6J zx-edj<^;G)NXa#uisM>IloR;^A}#%4&@*~F^k{<#j=)eO+WCLguer#Ev1RLsqkYpY zDf{h9e}#=0GC(S|1H=5D;xAWQ4q}W#&H70W+|B_r$Py@KGoPhBzvmisc+Pmi)eO`l zq>hZnsXxLDP~xkrf1oYfb_uY01*$$hp_D%+HfB^u*tK%P_0Ip{{j7|6vy!Z>;rVq& zTG5KCgOH&yt12jQ6$jdEPt!y6^#JApAjt*d-9j_Oe&E7^Y4#UP|M0K;T@#exc$b_5 zS+9okn?xPV#cL0m{chzS*_aEy*`d`t*KkGT9fC$ly>;LQvf^sDeg(^sYz4!J<1)%T zwd{U}&r?kg+%naI+G^#Qw9Ho-EZdUSMrX*1P5~^~VwVtlzkRyMaVh?XbjD=@dO|0- zbWnTwAPsSPO2~@KGqSpRY!IqOE3%7HJ9@2Z%NY8#3X_`~afS?yz1cUmbjp_N%bS@J zKGfD609+j7vw9#Qe&msCd6#@@jb6xGCnQ7f_5JPcdd;!-xPt5)hKDXf$&-sMu$Xg9 ztPmRKV7*;8QXxGcRu$~l`)CC*orem{N_`?g!J1nlqb!aSSKBk2 z-Eq5@%%P2GbFD)4U%lDY10Z*RmE)4{?H57^#vIvAV3i$ z<@decRJ9ZqU8Fi=Dq7W?igOKSDb|ZO>UjFsMy7Gk*%I|{O825Q@CJP#XF6R?K`wL2 zf1!G>f{<4Y4*EA&*S5`Z9`o|xd$U1$N}#B)KWTg{99f{}os$6VHWf8yf?8-}$JT0y zgqqd9so;dA$Q9Fwhb^mZZ-qsRD9M+0&PGtgIj|wSoroFy3%}3)s-~{6boLP7^#*R9 z?<22YpRaeeZEbR&(g_JF-isEd&j|(%I|4uE<_G~f@<{g@U{V!hfPDLUSZ-9lnL4o2 z2rsYlK|VhRh@b4TmA6Z)J3Qx-)Q4mhrybcVKR8Ul8JTb$3kJ7X){kAfYjxT9&$v

%)u-msfFVh0Nj{9KT*+n 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

kiKvEMl#3 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

Ak82STxtBC}U0+Q8k(1NHrraSP+pOJ_F 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�J)-3xpR>-m@ms1sN+o#cWH^ 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 UKoM%z{`R6`0%wH;goT9v4U$UJdH?_b literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/demo/demo.py b/openmmlab_test/mmaction2-0.24.1/demo/demo.py new file mode 100644 index 00000000..85565cb5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/demo/demo.py @@ -0,0 +1,207 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import os +import os.path as osp + +import cv2 +import decord +import numpy as np +import torch +import webcolors +from mmcv import Config, DictAction + +from mmaction.apis import inference_recognizer, init_recognizer + + +def parse_args(): + parser = argparse.ArgumentParser(description='MMAction2 demo') + parser.add_argument('config', help='test config file path') + parser.add_argument('checkpoint', help='checkpoint file/url') + parser.add_argument('video', help='video file/url or rawframes directory') + parser.add_argument('label', help='label file') + parser.add_argument( + '--cfg-options', + nargs='+', + action=DictAction, + default={}, + help='override some settings in the used config, the key-value pair ' + 'in xxx=yyy format will be merged into config file. For example, ' + "'--cfg-options model.backbone.depth=18 model.backbone.with_cp=True'") + parser.add_argument( + '--use-frames', + default=False, + action='store_true', + help='whether to use rawframes as input') + parser.add_argument( + '--device', type=str, default='cuda:0', help='CPU/CUDA device option') + parser.add_argument( + '--fps', + default=30, + type=int, + help='specify fps value of the output video when using rawframes to ' + 'generate file') + parser.add_argument( + '--font-scale', + default=0.5, + type=float, + help='font scale of the label in output video') + parser.add_argument( + '--font-color', + default='white', + help='font color of the label in output video') + parser.add_argument( + '--target-resolution', + nargs=2, + default=None, + type=int, + help='Target resolution (w, h) for resizing the frames when using a ' + 'video as input. If either dimension is set to -1, the frames are ' + 'resized by keeping the existing aspect ratio') + parser.add_argument( + '--resize-algorithm', + default='bicubic', + help='resize algorithm applied to generate video') + parser.add_argument('--out-filename', default=None, help='output filename') + args = parser.parse_args() + return args + + +def get_output(video_path, + out_filename, + label, + fps=30, + font_scale=0.5, + font_color='white', + target_resolution=None, + resize_algorithm='bicubic', + use_frames=False): + """Get demo output using ``moviepy``. + + This function will generate video file or gif file from raw video or + frames, by using ``moviepy``. For more information of some parameters, + you can refer to: https://github.com/Zulko/moviepy. + + Args: + video_path (str): The video file path or the rawframes directory path. + If ``use_frames`` is set to True, it should be rawframes directory + path. Otherwise, it should be video file path. + out_filename (str): Output filename for the generated file. + label (str): Predicted label of the generated file. + fps (int): Number of picture frames to read per second. Default: 30. + font_scale (float): Font scale of the label. Default: 0.5. + font_color (str): Font color of the label. Default: 'white'. + target_resolution (None | tuple[int | None]): Set to + (desired_width desired_height) to have resized frames. If either + dimension is None, the frames are resized by keeping the existing + aspect ratio. Default: None. + resize_algorithm (str): Support "bicubic", "bilinear", "neighbor", + "lanczos", etc. Default: 'bicubic'. For more information, + see https://ffmpeg.org/ffmpeg-scaler.html + use_frames: Determine Whether to use rawframes as input. Default:False. + """ + + if video_path.startswith(('http://', 'https://')): + raise NotImplementedError + + try: + from moviepy.editor import ImageSequenceClip + except ImportError: + raise ImportError('Please install moviepy to enable output file.') + + # Channel Order is BGR + if use_frames: + frame_list = sorted( + [osp.join(video_path, x) for x in os.listdir(video_path)]) + frames = [cv2.imread(x) for x in frame_list] + else: + video = decord.VideoReader(video_path) + frames = [x.asnumpy()[..., ::-1] for x in video] + + if target_resolution: + w, h = target_resolution + frame_h, frame_w, _ = frames[0].shape + if w == -1: + w = int(h / frame_h * frame_w) + if h == -1: + h = int(w / frame_w * frame_h) + frames = [cv2.resize(f, (w, h)) for f in frames] + + textsize = cv2.getTextSize(label, cv2.FONT_HERSHEY_DUPLEX, font_scale, + 1)[0] + textheight = textsize[1] + padding = 10 + location = (padding, padding + textheight) + + if isinstance(font_color, str): + font_color = webcolors.name_to_rgb(font_color)[::-1] + + frames = [np.array(frame) for frame in frames] + for frame in frames: + cv2.putText(frame, label, location, cv2.FONT_HERSHEY_DUPLEX, + font_scale, font_color, 1) + + # RGB order + frames = [x[..., ::-1] for x in frames] + video_clips = ImageSequenceClip(frames, fps=fps) + + out_type = osp.splitext(out_filename)[1][1:] + if out_type == 'gif': + video_clips.write_gif(out_filename) + else: + video_clips.write_videofile(out_filename, remove_temp=True) + + +def main(): + args = parse_args() + # assign the desired device. + device = torch.device(args.device) + + cfg = Config.fromfile(args.config) + cfg.merge_from_dict(args.cfg_options) + + # build the recognizer from a config file and checkpoint file/url + model = init_recognizer(cfg, args.checkpoint, device=device) + + # e.g. use ('backbone', ) to return backbone feature + output_layer_names = None + + # test a single video or rawframes of a single video + if output_layer_names: + results, returned_feature = inference_recognizer( + model, args.video, outputs=output_layer_names) + else: + results = inference_recognizer(model, args.video) + + labels = open(args.label).readlines() + labels = [x.strip() for x in labels] + results = [(labels[k[0]], k[1]) for k in results] + + print('The top-5 labels with corresponding scores are:') + for result in results: + print(f'{result[0]}: ', result[1]) + + if args.out_filename is not None: + + if args.target_resolution is not None: + if args.target_resolution[0] == -1: + assert isinstance(args.target_resolution[1], int) + assert args.target_resolution[1] > 0 + if args.target_resolution[1] == -1: + assert isinstance(args.target_resolution[0], int) + assert args.target_resolution[0] > 0 + args.target_resolution = tuple(args.target_resolution) + + get_output( + args.video, + args.out_filename, + results[0][0], + fps=args.fps, + font_scale=args.font_scale, + font_color=args.font_color, + target_resolution=args.target_resolution, + resize_algorithm=args.resize_algorithm, + use_frames=args.use_frames) + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/demo/demo_audio.py b/openmmlab_test/mmaction2-0.24.1/demo/demo_audio.py new file mode 100644 index 00000000..bcbde94a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/demo/demo_audio.py @@ -0,0 +1,51 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse + +import torch +from mmcv import Config, DictAction + +from mmaction.apis import inference_recognizer, init_recognizer + + +def parse_args(): + parser = argparse.ArgumentParser(description='MMAction2 demo') + parser.add_argument('config', help='test config file path') + parser.add_argument('checkpoint', help='checkpoint file/url') + parser.add_argument('audio', help='audio file') + parser.add_argument('label', help='label file') + parser.add_argument( + '--cfg-options', + nargs='+', + action=DictAction, + default={}, + help='override some settings in the used config, the key-value pair ' + 'in xxx=yyy format will be merged into config file. For example, ' + "'--cfg-options model.backbone.depth=18 model.backbone.with_cp=True'") + parser.add_argument( + '--device', type=str, default='cuda:0', help='CPU/CUDA device option') + args = parser.parse_args() + return args + + +def main(): + args = parse_args() + device = torch.device(args.device) + cfg = Config.fromfile(args.config) + cfg.merge_from_dict(args.cfg_options) + model = init_recognizer(cfg, args.checkpoint, device=device) + + if not args.audio.endswith('.npy'): + raise NotImplementedError('Demo works on extracted audio features') + results = inference_recognizer(model, args.audio) + + labels = open(args.label).readlines() + labels = [x.strip() for x in labels] + results = [(labels[k[0]], k[1]) for k in results] + + print('Scores:') + for result in results: + print(f'{result[0]}: ', result[1]) + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/demo/demo_gradcam.gif b/openmmlab_test/mmaction2-0.24.1/demo/demo_gradcam.gif new file mode 100644 index 0000000000000000000000000000000000000000..56f78ca4c616da1f1db7b66758526c5d55774bab GIT binary patch literal 424951 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%0DfQu6nb(sdN7Sx8*sh# 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

    ?s53$OWBMTBu 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�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�E{ZC#VW>yxKuEsw)2S+n|0}BVoAMO7N9e+%1%)EYl^D(nA{$J9-&dUCW zC3G<{vo|wwbLC@Y{4Y#rqyI|kZ02J5WA1EX@c+~OPw#BPXX0#5XlMLW*Z zdhv3Xe@TGZtBBpOk5;8D%~OWIv5R^Rb#nZYDhP~tZ$7Y#8!8IXZm|B(a)JH%C?KVp zXc$MqNX>xJ^PZyQ4)jKz*?+p6vth%JC{gfc`o&kU5x;u)hhhga?`K_WTpb_JB33of zmdp%=#G~I`4P!t2&?C)9?AW9(9 zfgYpqjp|*HNXn7F{xa0`EWjD4)$#6>_0}$b*T;>%8L@PHh;k!8ZGjZp%*jz2kP{SD zS?P_eGqd^ zrAQ-Jz!AfL>eFPS>y?@t`&`i%9cD9h0Ea!1#JZOZ88W7E{!ol17k7!{%m)LcY}RO_ zmah*rp%EAGACqR6Aw1clAx&yy$kiGr#TDNbVy!(kSL*tqK1opmmi}n#QS@di=s|8^i?<`}}Y@x0M&))X6P)vw`8<$HAh;wl|hT2%#aGPPJz$Sm;vu z@1rXv1@9Q4&>TOax{{-w+kTWdH2W4oGyU1}#+bUobyO7*x4f~W49%zfRNqif$hXv+ zsa3d;Cblt8n#HBKPFZADBWJqOIkzT)dq+eC6T-RZJD|Y0g$*-x8rZ>p1t z9;alHJGy^>3qmBfP_BR$2Zh|_htYY#lpBC6F3rVY&0%5?YH=5)QVl~Qz39vAeqEMT z+olCc0=*0Q%&f;o24TrQ9RxxW&k6SMo1 zNxvrcNUxKY7d<~h3MP95Z8+C;@&p&Yi;ST8SwM>=TWzTAton|)Yy|Ltlf|=Uvq<=8 z$o7Y-HVGrf*8OUT(~*{}?<%8DP|VI33MZ9)l%H0rV>0WrxNo@Dyp?_HC+hZ@a*uR^ zGf@#y*G-4Fs(A^D*O>^d$RYRWTT7MKN?dFCNNzh~&kWqj77-9qn{cMOTWR7qbrFDr z3TGZF)SIgYn+>Io_BobECmUAn8?UVER#w&4^Erq6lL9zXNM1g_oSZw}Eji{pLcKMb zNDd&MQ<{OU^;gh|UsW$7cdc7N z%5)-L{tc)-KaEfV`KrF-4s#Cjv|*v;B=1>pIX5mCgIHWxrXeQXN8#&@_2B=Q3GM*B z)M3(}xr!AdO?X*i^uEh&v0*C~X-fzrn|Ps#nc4e7;;k4mfk@3fh?+pWZ`eWcKyQ~N zlrOTbqW_3)T6JxqDjvM|Yfcew5~wpZCnG zVqJ3)QIMP`tKgWw3wsRP&)q~Zp6;AO)K3$GlJ2L?M;DIm4U^47*oBC+sh0WG-vJPJ zWS>4o19H8W4I4Ly+Qy|*o#e{=#AEB{DgZFlx}gP?n5EpEg`(CTcrJeJiij!#Eke3ZA&fuY z8aHy?`!mMnB}*hpwasm8Pf(vr%RB050!cA+aUB*a@BqRRWVq=83WIRWtEZLuUJL=1 z>G0T`JvuLJUSDum^JNE#(N@i-Gp|zMyzuvZLC6Filr`Ue}<R~ESYX*aPR_Rdjuat{i;sHZ_0KQ2QJh=eq8J=$6 zG%8$E-lXfH>OD`UC>rmSal@s9#{_H316d=QK4j{94@5&;;mmGx0z1JT4$Mju!vmp? z5D9G9QhHj*M}2>Nt>w0JNL|1hohLbF^HaWtlD_BGxiqOU);J45Mv(ByQ5WVc@J$#h zf3OnHF3*JC<5^z87AYf@9bsHdag9)Q_7-N8hR313j@t+u!W=Ouph|#(up@Vb&BI1N%CVaMPaFirFKlEM{2VO%sb=zSRJrX3&8sMV36MI6#QE@Rt51Do_? zrd>PRz16sn$89>=T#k29NSbb91s&X?T>Erd=$2Vx=lA#WbSM+hXg~AtvkXy1YU0wC zWgAT1)be0kQ!K7D|s+bK1+++1S5F`0peK88r)l~FOc`8oj z(IRPIWm6t5t^}O!6?aVB@f^$mCB{&-ZTAJBojPyBG{VU0+8GgRuRdY(B%RU$K_}qiZya+vU!0tilg!%SW;%244xW|G!)L$SW%Cc&Mm-0Nkt&Xl|G29S8_DM z{9$oGXZ(RQ{c%S#jENnaS2z`7EELO9QRqb?Wu#(MLwgi8z`)j)CPPaY`465V70gCM zG21j1%%8EoZlj5l(?VOSu3&bW^_vFcI~jU<2}{fF2d-2mf$PMUUHJSOq*QP4!s??8 z25U+@taSwTI!8xX|DlqA{q7l0*KPV16_H9%=KuK3p0f&}n?JPDqECP|sW{-3KkiZ~ zU)LCTkMF!huY8MplUn3_xUN6ei`dxVB&{zjYhegiiamNS;%m=_;{;IQ2xsJ@_#CVu zgLLGqR!~39T+JFSw1k4ddhNU_7r5;L`Gf*yjvjK$RfN;G81$&D%fsC1^vFiGZ{TpUv}bfZNBXSN`--QXADs}W zG^Y&=_G~b_nHQnf>MlOn63R?P7PGYksu3rUZ}HoC!F9Gi~DeKjarhv~q&HqwVA+}_A00H;z$ zxtG#HmxFY857Tgjdtj26dg|Nm+lY5$TtN?ZwQ8Z*u8pE{H+WU3}p@8bZU1L`zxOb964#s{p`M*Y5CU8wFQvC zwo%KdG5{s_KHo2-`$Ue+#pWHLaqp&H+wKrDHU%`kR$HXrG6QIeHVIyJ#~SbERrYP_ zHPc6prDLiL&J$}X5N5lFg6Yqk+b#{{%@`jwwJIf#Ld4SqejOKIO)}2NHBefmI5~c@ z$Am>lOvwiF8smQuug;p0O4Qzd6y%w$n42!$bjWIv>*vBmwr5IvncbH`&g2IpS>$r! zfOc5qY0ye8Ft6WC=4BrR3k~09wl=6X$KoBLz}#p4+1mABq32`)!RP1#0nhY4(ptC^ zm)5holrhTF2+Xz!Es?4gz|nC=APKyl?ZVm{aH)hVMl7Dp#Q8e~bv28RuV2@M%3qKK zK==6)fqoK!SBQq~v+{}s7Bg6M8j>8z$!*wYB(gnWAGs^(k_0fNF5nw-&uLZ7*iE*0 zq`AV$yKJcPc8R#e{}yma9S4gcD280B}AUee%R zle2lyQER3{yBA=%c=5>!-m18E?KcsPEfFEH1#R-!mREP*v4ceq6Inzd73$6zzj#=$ zF$R-}bj1V>u$<&v4p9ZjL(^x>qoYWU=Cq-`ab6$x{~V72(R7p)lwdsi@>by)Pw7YG zpT-cEq?`R^QgZ8+NwX#x)eOE0i;VSv7V%pH{qh_ePTnv~d*bF#4kaTeK+W|c{2sQi zhs_u!JJj!@QKX(=JeQVnEO%c|{Z$y#i75%B$Zb0VH56QDZn(vJZUH!0q zNpx1#C#`4#@UcpF?l(Audj+sC_6wA@iL6Va8$n7ge}Q~T%BBkxwl`uBXd%Lr3mIRI ztMyI@+bI+$PdX*nO&oL@XXyNy`0`?b8%y~+{tAX5KVWcFY{J!9^O~w_UPSOgD!k#f zYN}I*5ZzBBa(qm3Z5#Ak2^K}wrCP`%rz>DI4YbdydQ>iEPk3}6U6GZKpSjo_uQy)s zf@Q@KwT4K<6N?C+iHc5%EZn0OwBI;akQH9?$9)r-p|{>mGr?)BPQ^=faoJjrbGfiw z1+1U>aXx59oNS%-gT4Tu(FWCX(lD|TlhLJ!1X3--`+dy(kRQVprT!_gak#y zw10N9X&TG<`&*(EMtnQr)bJ>i^3*+Vvm^T+em~g1)_Vui7%7%je)3ML{mzv>)%oLc zyGSqVsh-GABxQ?v2@bNvLbKlF9FV5?Rfq|k^PL=vt7)vW>+YmW8+%rXV{k9A>W6v? zjvd$fhjz8mWbO7l?jA(c{AtX)pQF|0&M)75&}9>#6}TnWxI>yUWi zd|0DUiy}&K<=Hbu&Q9R%5^XI;So_Ompa`Xx0tSY0C$(qGmo*`rQM7L)>M;#zmX=bV z+ha}d(V}G&N{>&;IWHIQlQ9A@1ucfUm@oM4dwh+85lDW`DwWF2UIboF9nSs2?G?}t zCC%aK%IG)~S#*!O)s(5{Ci}7tH9ivUIo!b>ZSdjq4IO1Jmz}wNh9eGM7*ROd-msxN ze;_6Vh!2mhm&Fk7K1KK3t#Ffv!-y1q5R#-q?-}sL;i@x6=5+w*mLS@xK%Z|yN6k&a zY;D~g`rKD4_z%epA3nG)FJ;VyOwnLv@Ozxku)NO)HgYJLG{>EQSo42HacLDBd7z!X zrTvEAvh1XjZnOhBg!ncN@}&&#f+{)7x^u5MXyhJqyezgtH~2$7@@>W5GFwIxA4{Fv z7+-`hQzoFumRzLw*1^4e+t_lyR8K#Qr}oa{kvgT1G5@gLXR~bmLh*dph$dN7;;3+S zA%Le+Gnl;0QZj9A4Q-Km{NM+)eWTVC(Ly3ww`CTjXoFks!+!* z`c;aMg{aH%x|evx7OgP?V9f=n&9a6YL@kvL?D)Y>O$a`bjb&yWm=YrXzV;BA(3$T9 z?)Lms5(#O-gs=H0$hx!;362XE$&0?6>%yu2!+iqBOsOXzSM%$Nt)y047%a2-kK}Kt z={em$8|v1C0{o=RjZ5udDY(n0f6E+ezHz&He|^F>e%atTn079z_YZyw*TwN;1MjXg zk9WEQH4e1q_b4|yZK64Lp>9GU?D^CgpGs*>d;)c1j|c~D2lsC=g`>)cV(2I4w#Xg$ z2R(9Ol-!*)0B{I&nMs19Uspdyw@QjiW;|Fh#+rb5G&2(ErhbhI|3PaE(NvXc(IAkf z`!xF7tWRRTD(1rm88QTdo$vDG=K+oOIVTdfhzgzIF-9VPNQ~Pn+c?Xd_&L$46_5F~ z>kjz+wn3(2-VQ{wh`o)dC^LP+32U-Pnl~31z;U0U)jWKTjUe*$umbnl;1XJ}J@NF* zx2#puPHyGfQIL!e7CQN!N+yo2sJ3L}9r4^@QV7Z!c%LQ(4K@^9oo?;W3Gi3$-bk*( zWAsMn203v9cK{tp1&FjQwnwwKZdF;_goma0q)MWdBnqmDAdbvOru32$LoyH--`*+@ z(dGF|W{pwo(39ig0*Wn?9q&9dsCJEBWXGkUGIldxXro7pA-bW|= z8ZR&F!gfaR3QfC3Yw)qPh8tCjc z_WA@Z;?YS3T2Vl)N7JG}pE36Yh6pP3JvyVH)-D zbgl(ILHUZ;muPhpCg)(C=r8SOYm`N4wUYIybBs>wm;kVX^3rj~-I{T-d8ngxH*QeC z$|1Zjfm#QMy_!+)zLe92AYjQwCDV0-*F=uc063A(m7dS3=-?2Uy4ccwl~wc*5UrnU zfQztqGVskMN>4^%3_HSD>uI}C`d-l4*k2X}M0;i~mCv;9a!wW)ccT5P)9BxV@+#i- z{&zKJSJrgZsHR$y6$>+IVov&r5C9Bq)VY#xS&;l57V+z9qL;?!1(;tF8O1)#G+}!+ z2rBM(^cp!t;|yXMyHmId%3GdP(P8uI)-Tb-ENdpl4bKoUkB(u2wwGSQ_K98vH7#Vw zhB~gTl+wm<)7&1abK_rgm>?cVHH?n+k$?*p?HcNXl9|I&afE$Ya&3H<+XPlaOb-p6 zv8g%FlYtpUU$}B-3!^sADALWBZKNARzR%|IG1YE(%Qn`y=a^TGS%^awU`ZEsMV)xa zLLAZZ*FRXnRi=NLV+V)4QCgY0m}B`RxA&vd_3Tu=S>RP44=VJ`+xqy}K6DlhO(08V zyaK@>?Q`V24qdFx6<4B!OS1Hj3GkTr2zat1GK`i8F%&~@dA7|9%&F;C$Z)<%9y~$qz_f6V=8L`D<)$lnC)X2sTD+DWr3Z-zYKk8)A1jQql!C9~^v;n0UIX>2k049egzEXBgCL%?}FO0^X z-)DGxMobOgWsx{@WIRg}`&%i>GtdTMQEMeex69vW#FvrZ#W8wA)fH}_Q$97ciRyGE zO2&;vEbKj&2yGRqE~BpTGS!nMDJP8>0U7}+u9(}Fhaqa}39q!uR)JU}K z-~r8sx|yb_z+4fKw%&T`1!mqk5mgz;A)SR<0CA1T3)%Y>N|PzsN7b>%Hi0l8oseLX zW(hRKLmNtxk&o(ul#U!Ys9_iK@wdm$_xz>cfveI!p;y>~X|k&B5#mHxtQJ8DD^Q)vkn-dy+MIfyAK*>3@HZ*2Bff-ILdk zTU#@NFseZ~uT<`gw8Iz{d;p4_0tKPANfK!;%L{-V@<;fQ4101;F_Wcj}C0g8dOjgK{dv z|I&iqq($3WKhRt5tZ1u?Nv5PXI0AAcp=d#*r=Z=a)&I%GBS;2b0-S~(h{xLP)}gi^ zH^)z*Kf8Re@-Kn<=TNuEO;bcDRRFymB&Zukj|zKxg8cnC{G?dWUK4gTuWW$O?HjV& z>qNbz$U@)HmO1(;f=)y0Ug4|TmcLtx^%=C>-ts;(PYvXE47<3OoCN(WDt28@xjJ_V z5nG&EVSHT$%HlL+?zleSm#Np<)l~4iY^`#wjU$DsxCQ~#&@NV)IM|yMxsye93LX8? z#{I0;kg<`a;9kx)1?)RgFje|n~ z4WFA-5Vn*fnSi&kbr8)_s3rBKFIXQY?s?5A1t^%Bsh%_Jdpd0=x-W~PXaTWM5(-J5H0a(O(*-3+f!8YLB zqlY_f2hQY=36!k=faK=R6>ZCvp8UdiMp+0D2W7C$zeoU4(m)rpY~qN7jrr^HqBxug z?0g8ST69#+9FNGz{x6$RCQvy3m^>3v?tzRj7*M-Zh-LX5kb}FsWv2Ize|gVo22Nnw zY-D=o#=H|@n8}qY5n#k`+x()7<;vj1Ao52=AKda@fuWjg%u7#rw%{`izp(D7Ye1?F zQ+LFXOy(6%ioD$W-p$>v}dKm4EJHI40Lnp_kKgi8KTsX{a(4>mnR(&dB z5)nfDPDCewM{9%d$H3}m+)>%1Rp62eXVmFEuwt~W_4}YsCZx=>!TJx!_v(8mx|41n z!=On>I3ZlVq9)PzDFr^F29^mQh-JFj#P9-Q5&+GJ5=AKCQus{~pX5c-_preM|DME2 z4t|T?10Vzzvc-`nhtChq|9B9ellw)4T0HW16TTRuD!b3Ew}yFGAOBv^W7v*68S9}Ulgm`WnsbTM$V0TB1XHi7*ztbp>y0g**nQ7eB57BUMs9yY2$K-5) z2Sv($@r(@INb7}lY%%Hrw}Npq9i6-{GY}k zmZdQWpV@E!DU)SLymF2DHhpr3%4?{D21(OiFCjh%(->1w&tJUfU5|EqN#xmBxMikf z^vnhF$x&}0lzmC2Vy-64VujgvSZCuKjNm>G+s?lt7W^SG+gw3Ud|u?*{fMM9*2xMp zyy5^?sp4_!oV4@27T`#iz<1A3f6pa*o=z*qt>Y0)nsh$v5H}?WpQf8Kq|E~1#==sm zsHvMWQ)7_yG8bh!DU}SC3e+F$(@jcio`E-;6tZo;eT|v|J&lvb2>!_j0XaKLPx8Vu zD@_&?J1jFyc+iA$MeouCFb^#n?n5n|bOFDcn-HZ8KR9*luu&4XGk%1HASy30%qw0< z=k~Sx6XK`;1E&W!nOkvn<&y&5zm!?yhZrfuI|PTgAG2|T2W|7-Dbv--_fY3rT>qo` z?uCX9_%#8kBg90B^?Y3~?G${7j{w0KPTdORonXFp*?W&YZKRTxNK*lO@Bn1y%_GA0 zZh|uh-5ASOvco}%3iJG_z<}IlMunJ)|Iqgt@`-`c%4I^tSbCVHa)IFYp*ZMm5eNXl zNeX3=+6oiADK$~7xeCm0-4BiDJDwlV*kFcx;*m?cEdusQ{o*RuD~z-e>iApH^FkiO zSIG|8?6B&PQC{c2z!EhIpo6nZ1Wwl$`X-6xg>UzvJ@{>&q;f%XP=toZKM=cOV4)VM z9y@_;yJsR^Bf*~$w_A7frGjB6sw4$Fv!;+oB|G1xflK%z6@#5Ti`uXatK+X5`Ojh> znwAq~K0$0D+efL{oq0M-eoslpV{AL1&@b)Db8Z2kWUT*ss#cgpSembn<^qio=k}t=1^7s3n%UV@z9Jn`;_Of1ggv*UyFzeLvUeBKG9cy}VmF zVVymeJ2h9=-cz%50^g_*St_)BMmjKSKv3Kmu@3-vH11jOHC%7z2oB>(f2m+UhsY0_f0XR0l+#$N_}7-87oPG$nATRV@{Cu zVpr~8FOdA|)XArW)r3V?vd9j8l5B$4r?v`B)r%Xf(o&2O>j@w(IWP&mYu-kgqR1zf zXMS%(SIjlWjW`Y+S8JE{m4iI@#Z6W*SS5@Wp4d=YB*+UT!NgEPu@@X!ReB;V_guBo zPUR0yZq0)n2r9GJUY&_LDRu6ro?`F@=-Jak4`$ z_rn(h>95BFwh4z4G6SS-47ucHCS$D(XA$YV@`T`#?_#0JA4S`xym8GpodmrTUK=$p zjukC)p*Ai}4^tPGHW6s+wJYHcFDr8<%(s+Hpbr zX>u7MgvQ4~9pFqgNu8>N4R~Y*vJS*6i|>aH;&xht79#;$!W~p`DoVONW8G7UfA4|> zbQ`U7_HRSgxzi&x*ao7DE80Is^2XM7=M-oGqzb>vKRTEaPUg^i4K^aL_di)tCmQ>a zCH{mTuhf%X9PZ^}?!98vmi|k6*bym{@H{?MFl zJ!M#c5Al8a1>IL+ZQG}7BF-&u2CA;)Ge@f4ama=ZpK!?hFWiX0YJ3=i68WWg57>bm|G`st9;!Aar; zwK;|bZ(iNsEuq%H;uNRCJKbX$Rk!CVk3A9*R#IeyUEUb%}|~ z99^$Wy}at`A4)4)AA!GmY_*5Vbt;>?UMa?|^N5tY$kh#9{p_rh7WDtYmN&30K z3BlK8!d#5wAL5$#Qyt14s_*$F2eI_+VS#7dxi%{UKx{t;Ba8dx^pLG$@R6}Y$LsqZ zh&3#k8whNpczLlv-;`^)UGS12`(H>DMUm!G9n4HA8f>|?MTeD4?-dFk6%cDTmuDh# zZzsE4pqZBhr7v@3RG*F0I4(S7m8zC4ckD|VH_P%P1|J~_t#xisx)Z6U4(IIASAQs7 zD}nYP1_Iy?wPNp*sFXa>rdqsVW{Kl3rQbHCRy~w}6iRGd%!T*q2Oxa>5#<_W46nR9 z*XK!rWEL_;K+%}+zfoPLy>uczNpt1z+ zmoqfIzL*Gk^O5B@osLa@wLU3GgM+hCT0xbE(w-Y!IO}rz5NhTzJe|df=!E-tVvT5H zlJ3a zim13Pbjs5UdmBECxwPsZlCB;-{ZkA76iD_EGKQzOH%VcILbEI!~i3 z+A3_ByG@MU)=tU_tWdryjJCSHFL9RZ!6Tz7=bL_C){7vUf3p#1?+T#ITa#8Nd!3$* zqt9*7R18;+J*bI@zh_+4DOR*Bsuhv-bA?M?xKrdyhx>|&oa*a^^xbBG2mwzsatLv3 zlO(8ira6&AmY0b9G_H7s>b+wwW%>ImGDaR&SJe91$J2rpjIQhBF|F(736AWm zXe0MN&#S=|fP4ga*ruBMn95unttoRqQ>M-j8n{v=es(EfDPFhB?Aa_1plg3>y3IS^ z;o^5`Mm^wNH{=tzzZ2^*o$t>(GvO@g9Mkb1+8o0$yGJVbUS8qn4K2qdYe6q#<74Uh zr2%9-MXXyC_v8s)zXh^i4QiNTBr;VnXPyTV55xro3Z!&3{L zY&|_L9clD^k`7YmbnkRgYs7oBL6TojSyvVdzJ8PvefK;W7vt}gtT~43mK#LW_D#+r zffkmN-3>q}_T9zgQK|BT>BxksHahKWgkrsluvjue;^E-x@WRn`6Qhi%&iK*GMI`K- z=y>x>peR6mfmB^jUJa@>*aN$QnHD(bFewg*yWa-WRiA*uotkC!*YhsxA<&v$hG?Li z#mQ*&lu>f5+STfsK%a15?+OFV!0z6%?`ZU-ZFd)_!L{OX^Cn#?-I5`ZGQLZEG9b8q zlc4`yxqj_lkz`oma#ylTqc}*3X8CSPn5sH|uOGj6b^Hp{agD4k3BoS@ITWi$K;g8R z*}}2^0~cfE?S8-r1-HG-@L`oFJsH|7o0?Vx3G@zos@|p`kt820zsvM%aZ%3Us!i8_ zwEt}f;@lDh^spvmcc34Erw-NTuMO8>+AJk|ckj|V6)0DVI(&V^3xNA}=Az1c3^fz| zEN&dSNA<(9hrlBTt=)1i`zlOfRe(~GoIGFrCXy3PgRo{71;nm0rR`8jmEojrr@!9$1g^a-LhgT_aIsJb7?Lk~{S(8?Ll z#oAQ|5%GG1&tt4KDt?u&JZ~*(fL5xOuXU7L$7Nk`(p0q!|A4|npK>*zb3v~IUW3dO>8;f6(AKF6x70;FoR4wV zFMA%B7Z2<-JfoX4>o&U$ZLs*ucRb92FBo20lhk%;f?A^1eHI&S50S{xk@5OAD!|yV z<^%WWT4?XHSesm$vcGei0e-)LiEQITi#`{x;AFq^=gF`r7+G&h?9bzGz5Pg9qE#B1 z4T z|JoeA;9`R!8~t2|=h4D_kjNO5#x8=g1_HCwJzcR9WsPh2NlqP4J$H%R1#KDd!rFZC z7HYwPe@BsiDuGLkm?o-Twfv!Ufy`hi0*GCkmd!#~m0eY({-Npbfn2@(Gjo$d*?@lb z-EjEja_&%liumYdSzCR8HMlm^%htC_}MbHD2MY#X8X8I8%KwP;N>2m{=>mQol=4#6wFlf_x%ctj zQ+zL9*6PPt&M`P0Qm!{C4yd;V@iKbt$iM9H!EQUu32_x2Ku6nNqQq{zJd6r02=xZb zSG8J^@)bQiPTT|?uE9`y5y~9QWiKuHqEx5fqg}+DC#o&%jAO@>ukA2rkzVKfNEHnF zx(cvugjZfag+jJx)t-J}v~iU&aY(WTg0-&kaIv`x!9>HJaMM7HG^SwM4Fyap3FAxq zBW;3~YON_SmTfD1qBt(a&!$kY76OH!fF4D6DOXz9V?Taq1mPZjFpr1yg-h`g77(MT z+@k%uP*~|IoVxBAzcn`^;m9}PG_!p;^ko1FOgTsbLwWX%FKb%6=I-ZRd=gWeWJ9Uz zh#H@7#V*BpS$o|u^v~25D?-&i0T$I#n?j8b!{QIDStB?(mr7B~-A1h}K(Tk9QV(Bi z67h2~W5w({aqAS~wDwAxVgEO2z7WmziTv|W1###b>g?dp8AR#svZqT%RS3N8ZE;x1g zosx<+a9e2^x<9i>%fw84Oh{&{`9YM?y<{cWchksOOT@5qZx@R);Si;}7($hbG`}g0 zoJ|;whKse@EG0S$XTLsvWq?5hW-!K7VRQp=)`0fcDkV1(jx|K|idSQ;^t2lt>Y)cY z0o))mF4KqYI8OQQ4QlTMd{z{GX9T83?yFiBZGjIF6xjV)a>@K+Bm&E{7yKsN$KNs{k<$iz~u=&>nRSf6uS z#qQO6`QNrO&TMQCLC}uhqG)~86~)mD6wX|~ML|bL3L%_MF^EJ}$WFnWlh+D?YH(U8 zT-}$oC)5-VPAM+gbuV-#u&?FJkb%#M7;U@SfM1)gwzjm4y6B8^=`i&w%yEz2Eal)5 z_mXv*ZkY~Kf|REKx|FmKq8y*G+TG}&X*~tfPetSxWsEw*iSkg$A(t2&oq|OX4hU&rfm%jm3K*Sh*BNeR}8its?Js=WCPOkJyh^t|SbHKR=O_<>4W`;Q`$G z9}1!YD;Q$LFg*ScxsD9AbD{Js(VJN7OcPbQ*pIz$J`-?FE>P8@s|V3pWR~mDp87 z7EmVO+h-83vgVHDP4okQsJVY)bz?a(iV>M5&@HFHIHn}BG025aYcIKg4!f?!0+#IT zckRhkd5==={1#?*7%#7p@NWl#Enk0|c`g3sl~l~8&$PrR^e@eXQXO}3uZU)G+)aZ# zDAE!4tbJ@O?YlZPybBt~}iDo491}3?(?jc57P}$I~y?;;B zMk7Q52j!f#JxzPvqEY$SG6_Wrqwn4k>=N0A6Vnceg$O0KyEEXJRc(@ByZ#9BZHl<(F>`gRTKX|?XP5n@B;(cb8|+a3ic%MOXN z0t%Zx8sjS-WpYcau+pS@*5q%MMs0>8tpfUEnLvv-PGl{;pC-iFmqq2^R+eE0lfUD*f*SJ% zHTh)mrkC{Gy-d~C22|Q)XV)2^v}>1J&%eMrAS%8EYkSIz#X+sZhR~}mT+sUy3UHaN z2STGJ?Wt&yOA&;RvE?wi780uEc@BiW*aZh+cwSY-1KZ%njP4tjbOAjT@7yfiJ?V^bY^fnm##`H=Bk3x&>`fPUZI&sS9 zx%kz6Zz`Fr&Gc1QUs6Q#A5uCqx*~@zb1c{|--1)QLUuu!R2}29@QxVg%!6p(TVZHI zISdMEU*x`Q497ZA^M(7`%(Pl5;Y!JlOK(|xQr|W^PGMiM8g_AEfk*a|LqiMcV_uq7 zrGYlGm`ino4yMlC-&Mq<>^F8KWHk!0$|)AqcQFz`X)l%cxhPU%16Sdd@;n*g#hIEr zwNHSJ6q)e(L!e@P9j{U~M3seB^#A~cZ6E#oiV9gq?gk+bK(~JwHG-O z@!n%ZM93RE&T*9#JgIue)MBC>`rbkB-~baQ=PyRTsMeVU8kK`DI?wRkl zR}~iGQ#JpL!3tFt1S)x+PIVg1hDg2;k6tHB1N>tSO#$Xk7t3ITuDaq&=N64wQO+Ca zHrCU>CZEO$vu!;bppFN24KZsl>M`>jg|wvu*&r}F^YcP3(d$_UijI0sk z6G*v(ECs^254rg|LI<+TUvk_3(7_99oc3!Y)b*^F5NH*{D2nulH`v8zeOP=AIr@BS z^w+6NJUm%Urz!g9MQ=G{#V^tFC3w@obxFw@h>45jrSu4tm(A{(8j<$?m&d0E5a|i zmf7*A%M;b19(p$aE+ndvV}O%BS1W!q=NkjQKQG>$$iH@k<`rQj>T=}h_!h@ib*Nrv zW;n7vN^>3+o`IFg172xlXGOa*$SlCs7j&K5R-AE1-lN&+tW!x;=KR!v1pz<0 zE*Hl@EU#*UBvJ9WM5LU%Tis{;E>q;xAs@ul!J{sWKgh9;%lDV=MjyzGXpP;xp3mT0 znQ?t@Z~@Ct5>25hk^hxFp(IN8cNG@@0xVql2h7Dus7s&ta%2O`QM59pa0BcEJt-uq zl|O&H^O1C3$~km!wdPlK7~L7uEaJ>s!tY;XrOP+ntdw0%K$E>kx}gf_bx*HRWxJ8j z-@bmtYZRHSdViTBrWUyr`LJxk?NNI%AfdQxL2eejc3#%O-9hji-p5MzEpS7CG`@QH zT}cflK2zxfqGgD!CEKO+RKeO9@y-1)}+Dy-z7ND$V(hxvpEg z)w9>hD>$C?a0#4OmvFo-`g^P3EX{eg{(Ol+_mJ#(UQ)Xmf&tCMSbWGP26Qc#qZ>AH)MS$2h*D7$jp^ zl3rMms)!xWYhQABB`Lp7&@nPwNXIQBuMC;98t=Kg!r7~I{KVo-QTUHRA#}9hD zc5S6h-d+P(K-t*(vm)jF8y)t+>|;Av&@GI#iHkoS*5jqayT-LTD8A8r&@!@sHji-ULM8;1Mx<({wmWbTq@lcGI6 zCDDdKv9$E<`ALRkCQ}21*Aim(b9==CAkW-e+7&cdUH5pV2sutTI&!Be$AA%n-!(wz zYaxk`8j5s^GfNy3(}msn5}LV&gu;iE5IbuE1wY3Lu$@~yJwe-%mVV>FEhGl4UR&<0 z3YV;B0(K3c^k+?@798gk+#g_$g)Tv6lTAdDK0*r-Or)9t57?R*K00v>=ug_wm- z-OHs&IWrmK0{$g?*m~4zagZ9)$?Rl5UJWEeRuELkDUn8OOD8hZ#K*ztcen7rROyin zQh?OEM6oeQl0yu0wZ5&khlHtX7xn5xE|17zw8mDE`Imfu6PqxtF@dQ zPHTNvI$GP;=S1BtsJSKb>hrS`oypc6e1R%Z)4{OUu~d%BHB!Ze;z0lwqQD$m(hbc&q=A3oW=tc(->fD~Yraj4H#< zg>V7phBKFRw=ChYohM37{vpV;O(Y{fR<-m7|2_=cLMgBHm~vNw>bfef+G@Qjl_&nsV$CWaVQ zr4vliAW%j7&7G6XnIRR#gz+dBrswftAq0F;i!Jo=dzjEOD^n=Jf2J!A{@u=>_S?rL zp4~Ypk|yF0-CllPEq-9%_CLFtlgkgZNR)#1%8M7n{|OSu-(E={WQ8ajR80^{wvyptV4lLKERY|c$$lZdCL zS6Z)`l_JaJAD|FIFWQ4#HT01XMAzd6vt*D(jC)4bbkhB)!-7Wl0B4@(uJw!fg+UUe1rXE6bBtn#4IIZB|sM-&?B4n@2)bU$;kX zjWA?&$#WLf5Kud?ORAL>xpsAg)LB?8=^$9dTR*=ztUuMUL~$Tg#HyTsz7O-4woEK0 z<-jrFr%=?j4);>`y0Ej$`e15;=BKPd^s-Gx>zY$j> zTDEY(+E+_07mkVb9#OE|IftMwC;SLeh0zpt={V6h-G~1X-_Zq2fsCQ2;HNZVioTgs zB*AzMbxk#I2;^=x!(qw9K)M?OR-pEiES&F~@RE$=q@ys{>W)#LN1;{p6Syo0_2-S4y)Bz6ZSTEYHAgCXrk1&><2FzY1P#a z)c2e&DV^Pf8%+Y3G^Npl*rHojt~ox~uZui7R}%=tIHikk9b$GRg=@2h@l8he^=yly z(R2+mOUS9p@%VTw42ksWpDLlPHM>w-4#L-sb=^e?xgp=z8M^K{uNbvmGh_Z-IZ`IGvqBf?yU+)GF)^QXk2xSg*^% zjS>A>nIYlJJe0QSruZ0R(7Ek;;_8TZMjd;47OZ~YXFH0=Qrqlhz;BZa@Gml7xgQsD zxA-0~Le1{b>i(Tz3_}DIX*KnR;dna>b6f&EGIuX3R4J~xoE3;S7CVNi3LT0zCVTI}F{Oe2YFi%{n z-tUd5RLDnKGd8_B2LSVZv5awNIBw5#ux3*|y~&d~Nx4EAn-tVpO@AKh=eu&=WVH&C zn1&|*jW(0n!ncp5WE#p-E})31Px5F{y2UwNGKaLw|D5$Wpb&PLkAyz$aaH1^>H`86 zNKyUX@nb*^ln5y;E$Rk_m#y?bv-vm>*aPB&62r?QMUatnXKIro!ba{jM2Rf3zdZp z3Shw<&CS^LaX3=YDLE#vLm3`Pjab#X>jg^v=D~IMOTA`W_7czSi}k>#4CN+EUqE_e zFNeq_L^&E{ePP41JB=wQ7wBQ!Bs}(eT)SCd%>!`GHJ%mZb@X^z7vnbtrWLiDE?uUf z3O|R&d|0Lci)!|WnlIh4e46sv$^?>SlUpzdyYltxB*IYhi6fA6DUV+^HTwzmR3j4# z58n!0Q=%b@#x-!xtP+;dqhx8YW5t)ns3TuIIEWLq;Kr#mrfH-USzV z#=G+dfLmXlHVw_NXnRtPbVt13r-pXC^y$slGpJMgqH9bQ#r*jEf^4VXWAbW`iwX# z-#I_0prt5G193cd6+qhe06rRzM~h$H&FNa9c98tdQ5e-&K2H)Yo~uHaS=twmq%!H` zlFqc+JSzRiY)H@3CH1h2G)}mM~c~kIW2*WGKUuxYfG2|a7oi-5(wEO=hMWgREKWc+%zqPEM$&h8R!Y=Sb z9T86>wIg~#o>4VNqR6`bS1AINaQU?{Yy#N0>K`5)0nmjxU9*DD5EWhH14hbFS60`7 zBW8eFo!NJgAKF1DVLu_f0*oXFxmrv@{WmNFFQNfcsiK4z5^<_#q3{?IzR0)nsXaDl zdO%84zSbUk){`u@(t>R znLA9FV2b^m4GnYyM?x?eem z&$Ud!{i59!H5*7kmYgo)bj7~D=7RYROl!#)9*(v_@_}hKDEqz3xBBB#*1SL9f9r6X zN|=E^JdKK1pu+SL+&A&3rZ?B`kNO5o)08>mnFQAh#gc;w9BWzPD<_^V_uGsc9IoK0 z)CSzUCzh10t{Lwuf}t=AGS=H@_UMu7LX+;cnq+VJVIQ=lR+PB&-`s^3%AU!Whi&kh zBtevq^5_O+r5xm|xh4jp!}Id%d$I-d9&u<1xCUDxJ8#XDaMUS1`$oLy6jn8HJB6i^ zO#49xc+y@!0wZX`%EW)C2LT2cA8x_U+6(UuA`4r$D#xho>>svwElY5?t~>}2OOWPd z`o@m7L-AS&e~RXxK(M@vhyQ0;6x@ohLH3~{Y@QXkP(RPNsbDK07Y$LI^|EmNc~c#R z_RIj)rj=CVgl(tQV!wM@?;zEU5Y%ZI zsY)geg?GDm0ES;LBH?`vqvd>p6?;{R5u%VT3m9nOAAPQv%MBu7&WQXjfN&25mfVpV z{L)8~z4x5;;`QtKu=47o)pcYUSJoFJ4)LVQh66;MlAn8St|B3RVXrDzfK;6n55~br zgr!5W4WqIqAK5PVYhNla*TCkWUeRZPf>u?~`ZaR1bzQxXul(ft$5)X$PajRAgBHxt z6Kgqf4>y``Q1bL9)J-u#9kdW}iMQmm*rh^1tCzR}D`zPf|oFYg) zbF=MJTsPa3TVa_L00({b%e#ZKgpNa^Cz+uiG;|h6Bu4jU!*{~|>KX42lQc>}000FZ zL7s+15iFnW$tM;=U+M&v!-pOgnLz}UxEo5Buo;ck7}e`;CVlwE0On_;fz)9vvy(oR zEbbXBs1OSdl5!%v_x}0qISAtzvZ>FQ8gZ|nD$Vi05B?GTe%XJDNsC}0o!Cum1mEn` zwb(r-&18OLhT-x%$Eub`?7%m>IPZ%dH@eu5ng;XN`v5zq5?~H%^?SOT`wt#S-eHFO zeuKi@9mlAR_Ej=|N|Awg`D3pd)4>gomeC>(vp{5M8iD})?TyymPZYl-0Kz>}E~;)G z%Bf-4tUd;v3lXLYGBNTi?cLo-U+kqZwQYVL31?7YH~62GwQ->E6s*F0Y?y;UNr~5u zn~L6t!q)98$;%_9>cuXQqTmABq&|eOI0@vUhh> z5p8~hQ?8}u2Rbz3D-J1fhc)ZAY4u@vsq^U+0afFhlh3rjLi#l&EF0tT+dE5x*FPfA z#}uasUSn_4`aoP#a7P6v`-k0s`Z~59T}I?^!xhga2Zr( zWiGiavRNAlO1?1yPi)r~eWnr&By3ey=Y7_N75 z#XUyv^fS)09oF=rckm8Cb6Hk61g?X+)H_3=YYR&>pA@4lI5$RR-rx%shSo zP;pn+L!I~p9Yjhrj^a4lm(g-T0LinL#xn=9-2r0hNS$lKQettLreejGp~L76D7V|I*}juPReqNnFcQLEloyAzO_ zkH0U#iA(}>+vGM8DBk7v@u|cmS&T#@-bipuz$cy}C4j_?kjZNxGXLvqrxvhsX%PqO zLjKpG0k`N_%XOVvz*IxocarX*tHC)hBFj6$F*OqHieSP`}O89Yr8uVhQVbKp2NvQ zh|X`Cv@MS6J(kGQ;(ztc8YYT+JiuZ7fpL7u%{nTht>tpN@r0k z>~Q(03}-H{tBz8YxjwP<#9kSj4jxJ$Lk%>9?Xxz8`OjS8s^UT}T#{~$4>>m3O}#&FVn+thWX+2Sz{7BQN?RnD)qc?gc)Jvl{kZ) zQ;1qyJVIXabb$Z>0*L{hrF23c{Z|NBhUX)>yQ;N<_ zw*Hi8e<%Yk$S{LmlWQ8??$i?LChuLQH~N3v)CV!rw*t{jXa3}KPV!&o5lc_yfnd%< z>EB8mlwynay!OyImSUttC%c7V`1lva?G6#U=UvHxG z|9Y~kXo`c#zw2p^x!WAld#2@-KH!u49JgbIpS8(cz-qOBC9w?NFFDwL}Z*QPzzY zo+OU>m{v;nW1iF&qOg7H$7q1!NR|yI|7s$9BpqKJ)aoClO$OT-R2XhxyIzg%G`9AQPi?Kmc6f>vDL3FF&b{ zodnR%J%=OeTn#FH?<%H(CAa{qxT#pjQyObeYgX^HMizwTH+!qlzWE5kyYPe}sV`6pA{+?U z-`w2=_EOnJ9@1AOHdt#s(z&^_eI|E$kFPLxkK$~2*-F)E*?rn`blQ?gh(-0;bY%M! z?(DT5r11HrsGy_+*OgDE^qJwk=T<;uyUuz9WZa$%p;ek`h3d1s zLxcnhq^G=q(8;pbgtvG#(O^;g0h{j0=@KlOdRZwPyuwAMnarBE_rBIkdZ}^8fP-k!-aTyx&I%_hTl8Sx z)}22t@Ppe|2C3+ZA6qUjpC$X7Pq+5zy*Tx=5tFwebF8COV`&24-Fkw)A9;g?3%oh^ zhQg!t%02|@vaB&&m0;VZH_(|2U)gG+yHjil4Fbau#L2ghw_neP1SQbpA0<=VC54xE zJ)dhOQS2&{x|a;u`@T|_P-Wr!4Is1jk*MTS{^;;U*Utw_8jnBqvv1l=IZtlPTe89k zLfi<}`g!kRp8yqSWKC^O`A;-P@i0trmBuO<000apL7J>ds6lL*ObY+JNq9eJGAz+U zmb@@`Q7R>@82aztc|CSu+Sp+ySpj=#<)lWexZF&1!fV(i&Uyf(TbU8;+hXccpPT!_5dwe^X+4`R1vc_pO5E8e+qouw4&8XUxk)>A_K#_ zF~W_d&$Uh1TC(Una3h6;!YGVMFSEZZY$ADAZ=tXS0@dgWtL*8k9z zG^g+RBH+7>REZ)6z-zEkOwHOXHp}*f9w|Gq<3u(o<9c9!3_e4>zGMV;07G|?Xst22 z5hZv~9+EQ6sfKk8G`gXodCBnOw~;?6u?jy7TBa0sNl^o~cK`C(>{5$( z%7$Q7$LHSlyP&MeOR-S!O-DeGc7%W#rb9;lL>N^u! zPykK4A8PqX9xo|=wfE7slcIP4*+0Qd;5ZReSzl9>v9c548o2W{kg{L zCKFPBx+SQ5W?G#e1+bHSmv(O4F?psY+i?8+sg8My++m<7L|j}Z!@QW%pF;LpvmuZ6 zc;+*RA%*8P3_Fm(*o^Ke45!Sg&R@ZfEJ$gX7J=)2@KClr)B~m>uPti;blO&(Gq05Y zngY7jQC`WDVZ%SJz-%+5g=_;N4jnHuT6_3>H*WH6Er-BAS8e6LWId^Tw0!Qop}(Qf z3T;qd-paP*Yfq2^0JVB9TdEHXQ~C9vEFkmqNxMES0#Ni1Gar_=On8KNECY1>UI+Bh z{xe*Dyv(rRBJM&Tkg>=2bExFjRiFN`eR(U377fHaM{{{IZaXlYsiqS4d7&3rR5j$<#ymkH`j@uhTsy-qTCJcjeLd}GGMxH#ZNp1Z>+wKb6q(Ebb~8|E-H)IqQg4~L z|J&NA9K)|@hq2<=3)%`-`6-3a=&4%B)4CTA=|fK8f;M~M{DU@Rvm3#jqLVo1j`PL` zD6~h%e2J@BfK3x;Vb<|~Vg;sWmM3tW^%A^5*8TA%;%F@ly7|AxF=#oGEiN~vNIJ?{ zF*imOX~Uhj{I?NVHOjLejPxSOUN$4C!qAXWjm!guKpiaXRICTC)jG_S{c_F8JS5Sk zeI9GwrO2bC4SC`8p+<{1p){q4@xKzGuZX}Z2n2kWjH*kY-p?Y*DwJP1Iuwf4A5wL_X%P=mgPwk64Wg^^ zIrb<%Z?Lt!OVmYg!%>Q27NsGpw6(%H3y!1))QMv5A2&qON&BHYE+2~cz&0_IG^sPj zcaPWXY|FPyBj;W4yY3b&!GPN!j?tuOf;FnDlZ2f9DvBPz-Y+qLj`%GKR0EctZSvvRW_Z9 zoL%R$_~0jiw{da|H~s?F+<@=DbFZ{zwLOX8VkyylYl$s!F5g!S5*#MnC5&i7ZKN@mp?r3+}MHL&e&=tq=a zqlhuzun7G_g8vkwyc6}Tt6~p>4f{UlxJid2@dNourGD&J4hC;=igWS*%NK*hhdvt2ee_ zxFiJS58L1zado@W`C?&P#|x7d1zogkKtT#0qj;+v4VKy%xHL0 z5pE0{SU2g*2JX(pAQu`pYnQ^&2ClN>w(zY#evzJ_~U zmO%S&*KY3Rm+^Ec504P7hpw(xz9|QvB}xX2ujV~J8kJBeXQF;9vdmz4o=mVPqG&41 z@j~Ql51gN4LArm%z7rOsBt0r|r(5Y)aIOf&6U_a25UA!RwemiW{b0cdzkLJA=h#X* z{b0uDipM?0Zf6GD0M3Iv6rhIUvJ!lRTYBPfDz$y%O4X{ncQ#~}$7DXp*@y+fr3>sA z5VH%>Zn4>EZHoR3`p#JUng^>+`MW5~WMSYmw24H;Hu@=JR~HQACko4HyY@QU0AXR* zn;I3t83*>6{!o@yIz=Zo`yw1YkFl&kZ&l?*w?+v-14xqjl^22o2~M zbG(1y>{(lvsXsOv3Pl*rez038sOM8szRnwyk^N6b!zJvJs;iQU)v#I9jarQZ(NhET zYWEjxd2~aQ@sW4B_|^0sXhA+(BSGZN)rISJF=kTLEx`?i(I6+i)LI^T%4D`hR6?$CO`}(P_ifzZc%hLSBC-6aI?b(@Q4-705 zZCzNhNf*{UNJWTkvWeWS4;d>b<^zBRK#8hqmUMP9m6Qs12XDRgW$lr{xi)0z^KWN| zkuFR}JBSebryZty>8p>_0bE84Q~HcNnK#>&of4I?FatA`m3F}0pc&ym$M|R?Th;~R{axk z4{C#jU*HS9e`ruGNM1bpihnB~e-N zzVMH~hXGt+nbO0P&c1)1>^6XahLm2z&LpF!w<2|UnDXmsC6NX!urpQ3I=PR z?Whwkb*1a+lG)OK&GH8PjlubMVom7!(q|4=$q0@Os7hoWs9s0QdK;A)j-J-A)IZ#| z{b?{Di)%yLdjr`i!&F!?r0O`(Zk8^x492{SbABwJ?{&tr;mxFrlRytO%LKY2;Zi&M zBGNv!v4(x`Q>c^%JF+m{2k*w$QbD)^@(c+80-=d9WK(PtRkLXgBvE!1$^6r3xxw z$Jti~#y&HGNN$L7P3)9KA5DUT72BGa-~bponti5LE}Z=PJy;zu`F{5Psy52qqxIE{ zU&7;GPxb&rVDX3hhpCkVv?R&2oOC!4E#4V)`YW|S86YjcB|Qb){<{sHUtDp`78Aaz z;dgh352-Non=Wtr;h-H}VyRxpQG2nea3J6m8}-N#D`hmA6r6*-NrZ3LnGOK0?cT^o z9>Z{IUlRQc_QWFrFHUmeETc19;}K8JoFXX~1<-kR@(1>GQm0~8x_nrEH9>h2=l-y$;89pk^QI6|IC`k<$F$9OBb_|&|J=rvhs!M& zAgK~&u}pip>;CM8U1Fg%Uk>rcd%SB^CD{M~04xEX>2yv1*zDfR{q;*ez6d9zd5&~u z)|zeTu0tkbc{A@C9@cfVbMz589!LNH0n`DW>uN-Q^Y1iTl5*8aO=MB=PJFl5n|v`m zK#vs*7pmX0nENm!3S5f3HJy_AI~S-2LB{-L=wsS{S^FSK61A~DF0tXCY7!Z*0odhK z+4Zh-jSzVV269)7q-J*3cY<<~W}kyo;JB%9H07yDA5^=2_$PW1y0aLF@{3-3E3Tk2 zB@6ou8@Cm0enBoRBfAfm#`8%Vo zvX~*s>@tAV3@`f%m3Di3Mbigj44uldxUAd-ZY5VCJp(H)=V0%SG2NTKqdV?(t5)$p za!2x*#2DDbt1*eKLc2_qOQ5PE=(l)z60snke;})$h9qdf%$cLSkFUg^$eRqACwj+gI3XSk}& z5)WBW)t?imJu0wuq0}t7O4=o?vJqf8IKTh^3ok*M?n$UYY?(|HOrM@>80i0hqT%_~ z2)Xn$a)}19bKF(hce={AOkah~BMB;w9F6~r*9yg&k;bP}*E_8P&OwQcJWQ?SNFZ`5 zv@?)9)Lh2vlXGp9@Q*XJ{oAJOoU3!1=IRwJ?wkQ$U{0+kYRKCq7nw^e~*mhQfvvO+QvNe6x{#>M0G=|G-qF(3>dLJH+fCb zgYP{Z3NuGnPEk{Pl61-(LJ;{w1nDdAHcisJ=f4|DhmqbC0KYnE5;3 ze8~D+j%W4#iD_EQLP5hfXS8`}weanYhx-^XBeAFhFn26;<`0Ug9_5S%usYb__mG17&1S|F`kH?tT=sD2l;PJ`Pwk0Ob^^CJra7E-|^cZJN0c zbMdj;SyvwEkLFVyEVd?x*WVIQnPWj;)yvp1g=RGydN;g&{BE4=HaJej=WBnV{9F)d zjEx?XnA<3v8Gb#izDvhEU@3rIja+AvQsrN(@?>(8Rwd@h7SHcVB~7JVTRoL3{~$O{ zpL{`yn0#jKq|T6W+pK#Vu9www(dZyWt%hO!VhIXrU0>kKyKSrRho0rt2ijmK-Up$z zO#+u@oAH=b;dAq1ZKIMkH`$x4H@v1@x5RvXeRRsAAD^@Q;2t`6YJ1wXhrwd~fzU0_ z?i!1F;&EFyz&5?oqZPM%cp&BF3CD#FiLs$Zl#I7 zL@mFC)S~O2$cp0m+jqt8j=y^xfu~c>k5@WHd6w3MvpxC%V}V{>3Pq9MxPL>Tu<(vSg=s&_D4QstXR)PVZph?8O%o!j{>(OfZTKO96X(|~X^66}AK0r>aqH_yqy9`@mrz=Y1s(o$h3 z3deL)V_ibEiyhCBIM+fL*Pau5Px{Gn&X^I4l(qmT<-UW9O=x-8KW;kT@!BsH=MFhQ z#rkluyy+ovR=Rk%XRw%%q8w(I$H3PMhB}H#V(yoD>9Fy|Bt2PNlYB@ZKgEQ63m5C| z=G-GM$CXw(UQvhO{CKNONPx&da`KyNryY9IP-2}jpS34)dHF&?K8~25%C#X~de-ef zu@juQGrcx`>OH|oYRdg^74n4`a!`6J3_hd~#EZyAhRNj6k{vhX-LmClMpt-wPXuBSZWJC0}cc4W_U(2KJst zYj>AXoMqmsNZ-FREQrg;B}fw>At-TLd4S5~_qQT+!77@K>?6dR>H0;mHj*~@l}8Of zS<9S6sWnu0fZXs~Y;u5+8Bhnke-6(Gi z7Cm6W5!hV&5zmJ{F*b)&T{VR>>Jk07Uo%y_as?Rtd{iaLt|`L0S9~fh6qH8qgE z^|GUF5c1fq?(1_3ZT%`c`CSX=&geASs_Vb&C|V%IONUJtqImPy_yMW`-I8vW#gZ)3 zt@_g1>WsLc1Cn9Di1KE3lT49!nknXC&t2tp zDUc(>ChzlN|wE1DxF} zz7&N2{zNwNbOB4dldk=Y;}L}b#gazDYY;#CoR6OZRzSQ$FHpuP$2_IlYLPF&a5tg1 z6C<2~%Ht!_hePsMstyTdbfBB`AU2y(VSST3@stcC|5k+nx}C$2zFUCfKh)0DcuVmM zZwG;Dl}MV>mR&r$WT-=QAfHd2(XN8PekLg9`oEL<>1AeucSkRF9_G1*WRQCpu+JA1D2+ z9mM%VwzPxFG(;Id|CX_)HNOLmrNHu_$aq58$@)%g%(DHHh@;*r7e8Z)tDs8q8882z zO!!aC5$iXsVTG8CRL|2cKKb`2L?XvDWUcfss93w9pZbG2O5HhP8xOe}12#DY!cIxt#Q&Vz~JPc?uo!y(Mp z;@qSRx#M%f{Pr74fx5Al7jTkGD6k*37{C5Dq`l1oFBT5bnJO&>LdflDAHbRQ^?`4T7EoD4UZlCfPy+hn_AwF**M;$LNykYJ!Vh zJOAkUX)N5Lv|i^3a?}+t1md(Dyp)28dNxoSZtXEZiT5d3nHg|U&bOb&WLh8n=4pSY zgdp47c#!XJ?iGu%kmWGJVfqS!DE&Xl#yuXL`pmZ6ELiu&-3V*vS)iZB+Sbg{>lp|GJ+h#vVOtL_KOY(Ws z^^ELO`1DEyBY;Ww-mCb?l0&Fxze1^grC%8g2!ef+8+?|Y!#|K4=kD`B>C1l1XyFS| z=C}N+Wkr_1^tyK3gI-rE?}L^4Tx&rd!e(Gmx&cLBZiruuWG8!&q8_I6p=29pPbwBf zb2@KK%n-#d+Ns(Y2GDtW{f8~GV;z1K9JrZgR!`HXp(@{&`9Si%f`G^=i(tRe-%XII zB$6-NzVQe8d*=|C6VL;Kjh%{>x#|$3XybSzZpfI_fuZhHQ<5vHho zChq@q15{U&q+Exc*{|C`nE(I>_(7WyN#P1oWiTQ?yMHX;)cuevX^E1@^0$FyGxF)_ zZz|15Kmz(OIN4{WEY1Q*$zo>37K?%)^F^YN)cq1EO6(?(CH7w0-X_T3A-%eRQn@Z0 z()Q5>hIcO{n0@*c$L9C@Y&`JD?wi*DOom(_O{OF%U&lQ4AY_Ck8dL=Isl5Z-wk3$# zI!@JJpgzUjdg~zC?RY>Sz`?SgBFc#;KT-x{e3+s6?#y1i|CjNaFjoboZ1Tw@|ztd}w6i~?ppwRjI7az2uA?~%Lk39X;g(Q`+kO(&8Fys^o z-Q?u|$W%#8a7mnuiq`VP>@8hdNQH>&(l1%i?UVg7#kVDmL&q0m4IQdn80hgZPL#++ zTz<-e!{s+yL*1a6R-5XPeKKcsJqh`jxv4EYQ>??f(+;I80CV5nLjv7@uzTQ{-j8k= z$DA5EGkJ=LFW&PLLETt{`_!t|ron2_x@DkFy^F(Cgj;`y{Spq#WNvM`$RJOjYII|! zEM^A8Tqv)he@qM0zfkhQ6GqL~L95oK6phO@RA|KG%@G?{`N2p$WYc-%FQo*d65BHG zbAIu4Su)=i`er;f=1 z35M=H9XSZ=n@h<6oc1V^DpZYFYYb4DlwwD+ufZhQ@C#Q%LA1Dygw$El5qkl(ejN zsd`4^=%kt_yxUKVnedC)?;?J&+|?&F`$Z=8y3gz}lHu|nX_S1p=D>15TK%q~xB-2( zojkF$%0C8LU0sdJj-{jgUBh&DC06t|%2h5TMvB&opEGp01t>h7^@eYlsH_&DlRp6% zSM{MibKG4wURV%M>21-pRYWiY2g_7KR~>v4E@Ip#?mMxR?ahAdj92ogv?gw-)&t?2yyWsBHBJ<5ikPzSKVA?#j3vToPK4+Z}5lNQga+ zy?An_%8q{mthW)7BZwF1Oe|T{uNY4TomBj>RU`$j8WnQkr)rt~c%2hw7`Ug;+DYF{ zFpm!tPD$Z19}7K=xXc8b0LN5xfeLE3kLoSYmGph_dc}&=OY6WfKytOqMeet~A|y65 zXvs({$&Ltg+$^PwT%i8Cjw3@EHt$MKTJ|-yh4k1#s45K_=~-$w=1BT! ziKwlFs8$F5HnUpGp;W2*BQ?C+FdFfQSXvzX=rn0pB?nvb8TDQ>a1wK6L{lQ~nt^W{ zSSs1IUr>F`tcnlCuRE+o0ya++X9e3%w@KEt2Xa*KiV_Z~k1pUZ<{sXpQe)+|pR3MQ zN8iX!8`3uxqt^Wmr;9dad0*o7q{f})Yb#8quSTrg91M=NbgaEfio9ImJXpHem!K2|m z{&t-=t+!S?IQ8J=j|<*Gu&YJKKGZ>unx?=Un!a3^rg2==gJfWfe+j80#6Ya)QCPcXuy+$UYXp z?tOrxi=b#kxKx*)aM%~e_BfcDbJ+&{c=!GQ(cM6P7{Ob|p!J>W&S>|(jG?gYme!p6 z?JEJ-q#V-oXLyF*%_BZt&lY6(03gLX6EEd-wupw>YWC$AuysJTNjBs;&P=s|Ue-#8hc`k>En# zOY!efjYJrn&zHzhW9}82npUPBx(5LaPs$%eR^P=@ znY|Z2yFc4~c;#lz_I1#kV?FZy{KgZxjNOhKA-OSH6>+DMtYulQD2^T#BTlBm?t-uw zC@hD^Dy0L5S>`H~HFBNcb(IKX{x5YV`ge-j{=ckA;WI`D%?}AR3`Gc|DchX|BXB+TPMM zowCr4tOWTBF8cc;2r^NE@81kfY&<3A zw|i>khpz`KjDc7_ak@vf(gF+%o_c#BFco7UwXDFgxxv{UEQ~=Y{H#%~3SgGUoGKw*)=waVOj={wZmI0^ zbp~IfR{Bn_DTnH3y2qSBefk|>BO4OVILkO(ycNW|qf_q9qiP{2bU}C`ZWyMItWwF( zZ}AU`3;+NM8bO;-tI;Ijx8m1`F(67JO*S8ZeNQZ^nhC?rqXv#L z2Gd-bmLu1ISX;TOqPm{YsSH=!{qqj%WiKuKZYf^^0Yc5z?Dxv4RMQk03Fi zFNQ=U!E6DJAYKd06P|H{oy?%s=csfV1v>X{HnJ)f2a=P&x?`2Niw9c5>Z0yaB68A9 zFKiZTIN5rLnh~&FynDo8LtYko8dqszsqgUj+FbNBn!eOZo4Hib4=8B}Kx_jcDw@gF z2i@u(uWnJ=CUkP6GT-WExoZ)>OVN@}^$rVW^S0@K_X$#Ooy zhb;egpi9NH7L4zvXaPYo4H-V>TMpYr`J-!+q`d(RRPbC)A-mgP3tW3v+>K-~#y$=I z_aR}_HVhmflV%zm4OlUTV#Dz5N%%|kO8ws0YBWQ_=J!gn-h;;-K28$cs?6XU*;jG> zdEhy$TSRUF?K$uP(A%)sH@!Zs-?sB#yQZBSWRA2dfqbai0H4PHOt`k66f_5%XkUIK z+Qe1RoaDlql>GzsQE9xq3a26dE}vfkUYfEolJdhV92EJ#9D}dYy~~sqSMZ^)sM93n zU7fDN$+ZzDK@`3D8RgFO3UR<1_RR^y8-Gcq{;@-gmatf=*y+7;(Vkmvq7q+J@YH>@ zGyuXBj2o;0|514W)Jc5jv*c5?SwRfzG7Z2cT4+L}q{vCv~Z$9x-Ab3VWs6Mw8 zx^kBZ1baRhGC4h*@b_m50Bmhf(TPB5GIJ~&_>QnZ)EkC81K`x}RqTGd^x7Mvfi~Yx zt~`bgPp(}1&TO29;woPC0=UG2yn2HIfS0wGdhzlHA6D!#qlk`XfJ04CeVi5VY@s))5 z7^-SNR3=HKN?q2sXcZ^yw7(BuY%n;h>^Ed58m{MsOl<35c`v7Ki0YeB&wK=nh#;Rj z7XTs9`im?qnX{%{4kL?oc9cR_bDg_0eZ_2~H!L4`A1}o*Q@FJV$}WMxn5#oJ11@C2 z$-%nFT?xhU>&IcYO-5AmpuD~#)Tp9va26KYf)jXI4$%RoM0#2VnD{?_D{!#d|Kpj z4>HIWhA{Ep4kF$I~ zt>OlW@`wh>ynY+V);ft-7ydg^gBGH!|0_qhHo5AhqnLSWiLSVEt)*2HGx*fG?Un!F z&0#V2Mg6gu1JKKnt0!H|1HSM<*x>qdEk+qe=POph zQ(OSF5|oD4{Wj~C)2MdiY{(C zk1|-q|3I?yf|bt#G}Q2>`aEvNXNO{9HZX|(TRPPJXjoE(ZQM?9@y{Z5$FZGV0 z#xw6mw@spqMdW?9D3+PIpQ*l&aGr0D0D%(VIMM0;7Ck@3uRE0=Y5(a<#A6b0U06CE za-lARgNpaO#jf=f#JV3U;Qz=Pkw7m_yPV>1@AnuZ!2$9xi%5>WqC!0Kd z@)Pm}@cwhgIwBIZdgXzu_QLV>h)vOLe0eQN`q#OOqu*+Dz_UC#=ruA?Niol5N|UPC zLoI*BX`gG*wuop0^N1d@Vt15xjBTvK;lP;2c}%B9G^O>eM+A|(=yHltwkj-l_J}*| z#|_B(-~n>1&_|~Et^)dN`*z`*r@X*y1+(3#Gxv4|hC;#3*^(+_v@FjwPkSb_hr3UY z`DvaJwu*wJ(r45VctE5>6OA_Px1dg=ZjZqCGstBJyd19AK&(Q%$gU0?DNCKop=C2A z>tdoL7C@;`iAA*|;5duc%Kopb4IdzACvNS_>K(UoY_$qSqjv zoV@$fE959Icmp#efY44Ph` z5uQI!=@-)HE_`a!<-zI-QirP?>METJ%z;h{#z^yn)^i-`KJ;s~hX2T-1aAISb`b%# zPv=6~o%;S%-q*`-m8TlxC`ee2@v{8yjh8S8XPZggS_Iig#fiV+Q*N65u64^wn+8a) zb_Q@BDB;WDFNJXJC8fcFN3NY*scPKU9)+^l2SsArrKkDR^6Nlr?K8i+ahWf%sp2qmV$?@o%DL0uDAL41aa7waS zg|yqZZDEXKdyuDL&Me}BxPr?vDn(1CB({EGJQ#R5!PD#}&ewS-!jlLcHYQ+R{U1UZ zVNLWT?H*yPtb66|B#sW<(&oc+gb)`$>*PYcOUHgrMs@wc<-K7!&X=wv0-{w@pYe^X zF8w1#p0Ee0NV`aox`_oXVSP=99fYnb)TNh{^e6c}FCg7&A>QI-_@D&$n^_xX?k}6N zl<~UsT0D3CV|}RJRenZKaEoa_-{5tP>53S=TL3EjVO*#|crbEi(eCc!1@T_`sHV+` z`!8D0I)Uw?vR9yC1E;~}vRve!Zgw8E5om>zn)9aRrz@P7Zf&_{ zORy9BYjvI&_v#Mv&biQ1$W2GkZF1uqNxfOYxOtGSTb z2jW5@+y?K%M?=XU#+zM)Ul#e5@z%60YFBNC)QCV-+*P;kO}FAM#Gt0rqtm>{;+p7??07PN%R!KldYw;YEPfXA9kC62_&~AcExs+r$cc?FkKFMxK8XfMK23k!%DD}p9&)T;bt&?l7?!Dc0^N-t*UM!*)`~mjb&exr4rW$l7pBsXKPB>Y5u_5NJvLw-8;a@PWh(N!n!6TR|9dOwk{tYc z>?tep0WK303C-0*Epko;&^+gDWFT9g6|-fy1wnfCK_(>8_q(KDMrtV#%QzGeTzr&v zbcyJ9i7rZ!z^!&<%N{sd6y}S05jkYcSg$Lw-(M;yD=ET%q7=O_weoDto`=sb5bJQ| zj-E^m&1eK9l>gzV!^kC zNNr`pCa_V&9DK+F>E?`~&C=p1;Y=TD$KN6dkLHY5rd;!ym7a1H$R5L6Nm>ZG= zbOb5q?yXQdNzwc$?O@5SoLtYC^`kkP|zQmqxuW;FhPvG~B9O)6wpABTo1-gAMR3$UMdG zp=(xX#>34F%01@q9=+eo>VH5Q#(J!ad8VrO<7v~zFn{H9zN!bayfR9;im*tuH94yYl20PG^1}WX>zf&7RL8IT z5VKQsMgiv*+c~uaLQ@1c0hLn^Nr!oN6;4)J#Wo5coRxyWI7!r#SV9z;#F*COMdqJ_ zhsMaXr!C~CE*jXIpOASzi>(9bX{5Bpnv-2Xo28la62N&HWQoxQg+F3>Hu|B^^GwY@+g1;a! zy20|ZhM3gT?x!us6loCaikARPbVPF)Wz68;Qewq+f+dM?=O|~AmLzS4dJVKU5`;@Z z6I4Vhg-O}6q{>It@OQ6Bmn*slmLf)rs_iKdnHh3d%vDf&oED;=+Wl1CQ-$)jHa_kl zP;OoysoHh@?XdHpaRE*-4OyNtbXwR1RC-ch^dIT;TVWTPU5NXwtkCW4#`X^#RhU4KV>Mi*4I>mPF!J+UG53&mpw*CGZE6^N>Dr0m@6S#;+iT+Rf! ztIIo{h?>8uLAxL?E1h}Y$lK^zkJ?W%EaK49jf&B7JBuq1G?2p~RvnQ~#rEE5QWB>f zaMcRca$O8-&n(q~l@9#i7#?mi`vzewD*9xj$TiP(8*2>QTMi1L_PWfs&D=5BGYuCm z#m)ZJPTgHU=XTCCS0?iqy1l^Askx9h(rzM~M(!S&Gtsy{b`T&qxM2p4cxgWKXQ8TpJ0)&mwf+i-w> zv4=T%<0}K`Biepnm!o}grqv1KMxQNSQ%1vXjV2_`JgKdA=wv|!5Q1egF#-LFF3SZl zn2ivaAdRo>myRP);T1IbcEefz)u_sHZ51wjU;D_14vpdVPMv&Ut)-s90!m>Q&6Bt3 z;Za*AY+)D`;>23C3=*{K(-5IGxwRDH#3^5Yi9Im85j9OTtCUsmw}-j0q5{YfS)X6t zaOdoWz0U2Sx#)fRGK)SaCVUfbKb=ZctK+xk5 zn8+kzE6OFD)xc;ms=O@5aFU@L%r@BAxb9n@;h&LMRnz!dmJETxcRZm|W zq@uTDYUBO4Cv79{Ay(w1uqkv$-ea1`CMuRJgCk(Q2s$a{fq7oTywf==;5#~Da{)Oa zwHj#HWLx3&W)bqn1ftvV((<^l=Ke!^EfzxF7Y*PDSlEe&sd>Xc9p}1o#M#>@>AV*n__3&u?MJ0y7L%}Gr&Wog zm3cAwX_E~o9vCf`BzF^<+$XH@Wwi&x7Y39fC~81`h@%EpW|oYYL)9YzkCiOQP0Rr4 z8u)|Ci9$ zg)i!vXAdPYfuJuW_7K!h^44zcnz28R?)c{nl-dV7eq)47`@gAnC=U?Chc4%RN3S7; z3rJ;#JF|TL7=O+0{oVnhQ`#21OiOelAqPq$e34~(l}B}4=ct%8hzu!9yH@`I3{Zf+ zYr$wC0$UD#0Wi$u07g9bQ(u%53{?Qe4ZxG``QKy?Al=1rm*?8Lxk}Ig00f>vpOi&3 zOlS5sWrE6cVt`@u;v>83HnoQw&taDk=ZPpX`ZeT)TXpq@UQAo3{+XG1fkXE~u_B&H z(A?g^+{x5;`Ya@)L{HJ5O~&jik4Br#eugeTQR(qDW?g4rZ@*|lL^0JUJ@KO{b|#Wp zH3b=qKQXE9F~pj^NeCMP0zG50`sKl>Nk9!-|Aw*QIKH;grrTUq5+aPX@b5n+DA~C~ zgT924$H7)%Q=3u!8)=xZYttRG@oT*4CC9d!_jERn^N@>@Itq`U>#YGt4d@dGjQNw@ zSapy{BaZ~%^a8B4CXGnFHHm641!+ay212THG-N7;5{N^Wy{YiV=em#Cxu4in5X*cK z!Y<(6UB1JD*xp-4l4~v>_wQ2W_vNzjI{MWUA%98Mz;NO1B!h7u`4NF6_AL7RW5>5R z=|>kp`VxW*yS;~Om?r>;H?bbYWFz8e1VK1vtj%a}`){oyvSfu)8y27p_Z?w}va^~= z;T=3-b}+BV=@~B_gB@8L9Buw($=L^K-ilL;y9tp~cr1+3C-#ryxM(Ni@vav<(&iBq z$sCEm6ve<@LKV$mH(5#Ip-Ig&cUI{jBD&`TR3o>A0^2F(^|&?$>kgUB)j;^Ym12V5 zM~|&C-WJ$t)*`6x<i6MMem^3viF>~mFm zPtuf&qa)5eJ`Y!rMEx_;!M?i%A~nU6QEJxyCWn^ZT`THIJW4cd7;J)co7t*SdRWNc z<+^)OIWz{>hb3E8nlBZi>W$9mwfWBQ&RD0BMkwo+cwsFpC|BX-A1EP8Kd11?l`Ys+ zd1DQ;C#r(5E99NRMe^M)FMQUxJT?T9;T3QX(EQWi7G8X_pe#5ODw=U#0op%OovGlv zT_tA98d(GK8gEcSGKltBaP{WfJp8qMww72-<|jiikN>4D&LuRDA5b0e(UbGPFYBwg zwVH}JJLVbjew;8T45sDEt*A#6!3gls{Q-|cmT3w%HIR9#KPA6U?X-+Z1(bN}nVev) z?zPm$$Htw$5B7BaiEd@8PKW%QITFJkN%A`cv*n4k^maL9y+;Z@kHt0{W8@LJ(JqV! zGZ)g)jY#`fMcVBJt{Cre89}Bu58R;3bw4PiAr%2V7W;8`Zo4v$q9_{CTKabE=(8l& za^hgz^A{v2tCJgskS7C61@4?_2=3igy9F@J?S%~layErwQB|}Fp#Ww#Z?7!?pPLxx zwyG!Qf z%6YYx4K|@wY*Vr$iY9|gzC`ojZgN`{G=YsvPDBZsr_0h;EzzVcDq8TS0by;?Y{>Lt zUVO}7-5ffW9?hVb|FXATt8Cuo1*c1R9zs1?GQ1#mQOjJ%o6LBFH>d#UZ{_lJt+%4c zLP2J!_Uvc0SP$%a=K`D?$RKqG305JldU66m)`U8_BA_l`!mA1dsNuH|kZm?KeQMW> z;1~+^vw^gp)$z6S2V5Y6CkYv0;X|11f;zD#_GggMbv~uA=FHs{h1qj#QEffN1F(&+ zAC1?w2hn}KZGtSE)r?=;%?Iz^t3?qwZX`>+9acBEMdI^zN2#>3(|kI>%Ws`g86|8_ zinbW36q zXPk1T1=$#Ap?Z|p!aNyHjDBusaJ2DXDMA{**%GF&LDy3`jMyhb<%@bcSDBAq8Q|$D zv}AXX`!hh2;o&a>G9#ftYLVl+Z7@#yWf%boJgtKqdf> zC8!x>$50%TJJvJjV{itlNf#BAMTd6K#b$$zvgF5@qa&g#2} z-K)xW^L6Zx*+0-bB74t^53P>7Oy+6-J9f3LkS)`#5#&xA4n_iX-&9Ru7jESd1 z-|1C;^jH0KeAKekIQi`L@@%^h6f>5Mc*t-i5Yg=84;&O~rO+nfYFwHXgA%kbEE=|C zhg;Q-`-U*k#G<}g-zr?X05Jw!m2r!D$$Lj}^$;~PYu~_-r)_TFVFJYlEUDjzpqjOG zH7~sC{m;QYHsuWov<&myKVU=boVmPy8cHsXO`Lj)eTg^<#khEtr;VvnW$CIn9JW6b zqqrWKzVuS8f!}72fG-((eoQrNnt~ZN{D`txTHA2XX}0tRcJ+%)oZu%}0000=0iU&M zM}O=0N+cUC-#dk3LmcCvC<6+20({XLrS(66mWPc(iX=7ek4epYY!zLbqG!ff#HGKC zViFMfy7)r@1zo;hxx=@~gBJh*4ue6Px=E-(Xqik2zslgKIAGL?;-pdv46@A=T}z!3 z_UdJ3Bf6W5G&wwM(thQKT(BA%{$jGQDUeBbex}-er)*e$>wvN%gId{b7g#5|D|QY4 z(TG>>Ata)ik>ll=b?WPm38c3Ru>Sj|J4}b39gWcDgc-rcFh+uO)li0mZ@E1;_r5I6 ziQj9qy5^UJ4ZYT3-z2{WaF~jJTOE8#ILo$#l845^D;!9~qbmw3lGw$q?af@Qr9#L# zp!k%Ie+MRrR(Ch@UK9TzWd~1L3l|j|oL!;t?aYCvTgZrlXm}8Fhx^wn>7r4xz$njx zzP;CT;5y9NDyjOD_3IR^@v85>Dsr#c`vsUFfG@6Q;#EnayjvM=En@#QEOQ>FzK|It z5Sis>LQNyo;DRa^Zq=%J=4rBS+^o01x&!mP_F5TApksNP66;`F8hXE9l%}nL&6zG{ zWMg8roul>A^_25lE&HVf2!r?>JHXO_d%&EDi!2#!Qe zWp`k%JS9-txPzuxl14Km(uh-=q7}eOMPeWbyYqR zPNMK)QprU*1TVV&=}>1 zslCLYOE>wY`?l4aWP3DP@q`9TI!#QDUkc_amaaBB5>;<}G8&UyXm?@sy1HT60Eb0_ zV5iY{RTuOHGnS-G+?yRN(11$*Jm(&bq{=9`y=mJKlmVJ=>Puc3{Bhp9g&TBn4ate` z-%*pcBA?oc)2&-GHJkFXb$+M-)|_(Ynegp{y3!!4u_kEFWvE>54RlqelFfXy()RK} z?_o>-C)*SM2L96~$9@EeV5U)}XdZyY`ME4%5M`s$G5(RBOS@Qb`P_%>FJSqVCOtnMeBgU-EKc2$XamG0_qm#LcW8$k$$7z!rz9BlsV)SQ2vbG?r1ub{_l4b z?eo3_2RC8(#W>W=q^qdM)>hZfRjVpQjc(5Ol2jm%R>G@)OyOn{6J(H7r90zRj=rnS zoF`v)Zd-uD()zAWFuqiL*cSyg))8k&9%f#U_wo(BchGnGUQCv%LhYZgl}Dfyelcxo zrq@14BA#f;a+V>{(@D;XU~4jUwp?Uv1nahi@utMJ@pUG#v8Kr+$U3%m>R@Nz1>5X? z3Pa8@`04JT+3%2o8^>)x+CAA(c$5)Un&#Zz8cLXgF7NsE z0kYId4etVMoMHGN5S0kkcKzk)3Ls{XsCOX(+|j3&k0MdFWyr>RX(-<9Yr^rcrZGX#&G|3(1e~b$QUIjKy|mj6i;cVyT))m4uhhb00hf02 zYeAK9mT=TZ zjr9ewg;S=LB^BU9em?0=i-)DXr5V|xeC&jXATzn%e$DXEyeR40iKK!l^+{lzw5K2m zw*A*+5&BMs!_Of=cbiF*WC#0mki2v)KLwj()2ti$&_W0%cuF2WQ_AF19J5=p&NfFKv?G_c-ECG;< z;xM?`tc*NiY@-=RMGPLz8+&97HN9}TTklUEsa(8W(b&k@F`2A4#%kWN=F$91$>q7T z|K>H)P$I;Zo|L5RLHCSDRXgy}9xYePDa%DEpRZyk;>-a)AgN@_NvA!(*VS=R7hnr;0Cx<46A^vIqOV-xEyIbMvhB#PW>+&<6>Mi zb~ae?hw~ZAoLUoW-rcaqH3g+U&aJzIUwxE!%LaywU@ajo{JI|ud(s_dAbg0-s0Y{+kc8_RI=vfbAwI`6o&6TUkQmFVSz1YGoK&-Y zs27gZI+bAW(+ePVKf^^I29w4a;Ug^$y}$4G>~E4Q#g!8Cpgh7e(>VYnmXX2`>yFIA z6&Hu)$daTC-HZW!z#S)R2WckSvi)7a<0RD+d8t_)Vezqct&pIgh`g>c^jPktlV z54;z$kQ+vlxgyWis->66l_h8;=yoNGMLKYGUcmHA@^GujF%exKE=n_go z2#uFQpv8eK4nO}uUfgc6-#oO61?QBgp=>ka(#WF{B>bj0pX%mZI&YLWno;kv2P5Ir zL1RgPa>>bF7_(v0hO6KN@7SBtKn3m=#VRs)Ih)r>rs5qPfJMF-14t9-a0n%9CrL1-L`#BHCy6pt#dVvHh1nCy2UhYIVFKY6qsuB{eL#UPtEtpfzCI4uv)8ch(m-E~$nn0D z@I#h_Zg7tpD3~7E7H&K1t)@b>n0+xc_Sow|CBJh5=vDD%5@IFeo^N>34-iW7ch&etPHt_e~O6MU;d>|I^p=>$G3++AKHKc098o^HPg-!JclS_DIaPG&1*a)M>49*9;siMxFS4* z>5dkE=7+bbj9Q3P*Lrm6dJ|AyzyE9qEs<%2*Y^~-aSgk3VS0GBuvgCaVUap-LR@eC zz6+Sc4?w^!q%B(%nvwt0HC$OmuMv__D~Sp^by&-dy|x&~PFuLkcf9X2{)3p+Y`<9P z95al{4wMteS~skgyJI2*+P(bFz@NHJSJ|+SpMO`P+SeMcsQ9?L<3=2$dGmAUH&7n$ z6UWdIl3FY(YgV2-Dgb&mtFlwP1R?EkH*Hc~9k@`iEx2$E<3c#2h;0lsp^ITb?JEPdcu{aK|^ zG|CN}ip6s6Z;y01*f9I2?Z*^YET7AmMAX*EWwgu?$8bi4D^2O83nti^Vtx~Mxn9}=V7`UF2A>#S7kCgye4j}W7wUFtfif0*G-(xn8{xm~O6 z`$`-yzygGb)o|C4KalZ>R7!8axX#0K*&ULxPy3mSp8&`U)=#3^#weej^jx_*1R}Ch^`% zA66<#RP}N(9}M+6%{o)O+Heml2`s|WJo6wO_3RqZjxI8UNs+L>c78a5q$|uHJz(FR z(g%3Un`&q+!aN=)&|@WsYNQ8feb$L?NYH~pEoc~@O!<(gxx!BqQ_PW>EzD89d#W{| zG|>~e8D8p;t4~FXq(izS8c zb6w>Os9IKJqTX{&lTO#mqA6K{OE(Vk$1EEP2m5v+AbXC5zqN=TNTFFQczCf5#8>Px0>whY!8u!@sSyH}TVt?tgh+J={*|WdpUlw|N z&DmWO#R#H0p*DxcQ!I+3rBR3$7hs4W3V88ebbEjT46Q7B2;dSyud#bO}P4e3@pp>0xBsnfd z8sK}&Dcta1g(Ehb&a*)CZ>iVYFfp@+G?5|^pGpc*A_(ir{q!~oeW1MtrwaPLc$G~7 zZ?v2hMatT$Fp818LoUrmM;f7w1+z3p+Ih7|e{ zDQ}pknhsZrA(s;d6JqPfC}wtqIZ^&>4(Y~w;|S&--T8|5))OphFxrF{wNrtZ`Ymk6 z+p-2@Z1W&u&{X8S0)iHd@i%(zgPY8~F;>~}K@n`23MZ?}g^~^kRQL7*vk8E?zV=jS z$ezj{1Fx4Tb&Im-dTQFsnXf|UZLH{bwD`rk?c6OBtwA>?a4PT}L0gV_x_2+qo=vq+ z4idx2+t08geqMa1zbQ7k0o-902rwk|nWEQTLl&k%HUj6}+p*2U!1TEt8AK7_naF_N z@6%Wp7!1-cMPABpezFPo2Z6qYfu5n#)Xqr zQmy*fT;*^6&Ir+S3kgB> zO!~zIhUez5=Y#y;c@ED=$O$lcm6S~}faK=r=LCLIV)~x5sZ}S%A%H`1G|H;vk`~x! ztTAzKu`51+SrbRJi?19zv6mccYBreoBdm?Fv9Cx#*Ip1L|Q}X`dKsYY) zyl_%lJ0di3$-TJoeDO((p>g_(a(gqPp^$Q#kXT#wa^yuN)&ji#)890GD~q05mqFA> z5XN~FW^qz;`k}=QwJjWmc@3pX=wEWWb{Jv5vBS-WUhJA5Kpb?NoAEHajO89mh=pg| zc%BI@y4rhrd!w-As7?f@f&`0Dna~ApK?VDX)h7=?L5^49o?CnqQHoIZj^MbSm7tF> z`EYY*D;b+)ql$8DoUeAx%-p zI;Jp#s=CTNs=yJ_Uz`&3u~>jT{yC=n#Dp8f>!V9iE+djT z%t6%EI&&$0ewN}kC=X`b^;GOcIxZUIy^Be+*`juaCla+aVk*RwOJNjp_o5e;GF4U= z#hTHWFvP*d9&WDk-lJJ~Q321P++xMOm}-3KQpmAuP4lD$oEB!F>XMYW%jY*J zknNs}W7{dD$2E}RgBQQ!PG}-Hi_n>@xkv(_*x`U|_aPX2qcrRZUN0D~>Q~1al+S0> zHg1pF%uvsutPA2c*FQ!%(Ay?yw`dt&I>YcQt7Lij1_+B1P)+2j+dr2mjy=v$Y@3P| zi$E5pTSirnqegRX%#y0}c5BB{(QuyN z`?_mw>Y_GmzM>~(O61q&?WMKiz6M*=rqXpQK5e#xDn=;Zz2}xHXV{4pkg;E6LqRI0 z#&S@Ju)rBHI>WpB;&}Xt>$Q?6pDG_B?%bU8)6aMh-UpD5>`0W2&{ZV?)6i%_d!SBJ z!9+o@#INZnyk;%wTRybB#D}}T+ZjjS>7qP2-xLV(nO@vv8Sh8*LhXp*cZC%xu~)ry zVvbj_Vktw6`3-WhJr0=X+Xe{?&hWX`9|PJg14uc+VF(m_Ru`MCikD3pjtWgS4yZk5 z%yZskV2E@3az>Tm_zmGphPCDhT+NlDoA^s*}ZU6uQ!2zH7YDa(W zgIf|<4Y6!ECfDIWVegx>QV^XEwh<%B5@>707S_4AS;X}?Y~@_cZ4V*0INTG3rP=P) zGqK2$^v96i&h?jt!o>CT5p&n%4*c%Prm48NEOc*;uAO z4Cn&so6N3>Et}J9#+2hDN0?O>A36$`^=0M2GV$fB*;GVqc72>-h!r3CZ28} z1?%L4K0^r#_Bs*xr=osPG7H*8EZ? ztO+oJS_aH;>a{q&i>1!{oZV{CYGyIFa|M#@b{9)VnE#Cz+6ix=>O<*%Yb>+av3k&S z#ZRC+E5f!C%NxNdzY&IKG~kvW$Yc6> zfcynUbOl`oA4I9h4M|A|AAzc@nCFHSm5~4d4thbG{7I-mY?(|HOrN4gRPo;+Qo7b( z9+${IdT^nT^R7(J605JFV6_fCjeJnPl7d*s538U^l-yM~EcfNu>}q{(XJ>1aF!R@IfbtZBahC>UATho+t2yjh9lmZgd+9bN@xZ!MVvOZTlh^ zoZLfH)hZ?{l0p$CWin37cYBOLaS|5oE>3z`Kh*0QGKJd@*;rG$i-9uHM8l{G=Uu}X z)=1ZTQufjtmmMWPI@NJORRFdPHw?2Q3P*W2O3PXjixPc%L-87Bv=0HyRH@VgY9ZHd z0i#LKrl{RJy}ZJFVNT?Mu4KR&2)V&IYbj zeHXcxOBpfrGyp9RM)BpUHr#g;uyXx!+etx12oGWZ@(Oy?zLT1aVqHWX>(fh{&s zG>9}&{BW)yKNB=Wt%G6H6CN29nVEJOv7h`s{?`&`{OLTk1=;_pxxMlj;Z3HIK~YpD zyns^C;5l@9J@j&Tea2tqe-Z{Lg@MhTbJd3&#`#Q80n+XYtl%Dws-%Jk(sa-vZa6A5 z-@WVZ&{fAP{dNIXI8ZRD8_Ce9sbsKajo1dQbzY3QE^N zej>wi;WvW7(Pvvo7hhYp_iKbsf@Z< zZchH$f}CWu|68zxZ%PmFkMhq9QF0xE8^sSCQab}H7Hn+T)m+7>X;*A~!+4olX}ad0 z!C4x-Uc;xrah>KBN|(c(WGi-7ZCWQv=h6t7LWLJzga)9PmrQeET;V@+%X}^%hu64i zYw~qa@xaArIadAAisHz9uqJ%i7&yZa-M=KxJr$|W*$G?6wZa=<-^{#WVflovBM;-tL z(djFFbTiy&gXXZ#_X6YPFOh_wEep$MN$Icfely+AxmP0ZlXr{t3Uys}5l9fe0~M3P zS7ue{MVpZn`GLg0y(~1VR7}8kM*>cMu0cO95lThFiZqB^ya0TXUfeZGGv%eP`Q_KIn5T9sCn5g*`2m z{Ocng4uw{12Xv0;@V_02WggPJ0cDpyBLeAUGe*cpGY z{CT?M*-SW)Yhhw~z3-Ew`=X#|t@Vf8W=gb8c{8emV?s07w81n0aX^m0>4Q*4FyE2< zDq!B@VA1X$g7Fvtrd00f-&PX* zGBTKC@H*z(PFIp2%|}Hi<{-%hP=zMKDXe1Sg}UddFqO)P=tOP!r?icDvSPNt1+moD z6+bj;}|0htkD|)S6 z(JTjwVs&}C@a>l$f_U6&(q?bmbB4A4#?#wjMy+I1&daSGd(qU7rY?i9;V{_OP#*)t zNQDRWqCvC2K5@)>#qt9}n4JKYLbEix6Gn`X?Qpy+XrjD=zQeyR-9B~TjjJn*M*vA} zPI%k641|%5UoB?1r8k9h$J%L_Nl#Oq=k#hOFKzQ%&7aNOLsKdRHa8{1Z#qGS*bGcs zOH)66d!Ov5efGhFt}xF{J$zF65|g4ikMf^(bf1~_rnSQ8g~?h7;ZkI@c6lfpG>qP6 zs`#sK9b!6gy;^j{k*#+%V(p|?CqH2au!Z(T2}ts$Y0KuHk8T`vPViH+Qfws8Z!VNCl*@j27jXVG;_~f<3ibQr}qMG{ddI1v851L zVah#O@V9ibi-ApJK z5M23|ArW*7lXk1z%Gt7!VC8QCf^F+u>#F+g?nENW3`1)pTQbP= zKnny;FTd8K?q|JK52x=r;_*tdAQSw4FWUF!8g)k6QHb*1ty-?=4u-vCQo>MPA@sB5 z)NiMB+5WT&WzH8aZ?FEsh;8{}KkB5n~Z0O&W=*1T_F5~H5($`V*8asxD5T* zwKD>Y&fP%IzHs1Yj>eVyaVB^}HS*ru^`#6Q`pXa%IQ6m#K}A`E5KgK-O#0|@S+p>d?-`U5}3Mnq7(lD z%=>_UPUDW3bM65&}C_}Iuhx=a-u@YuXt(M?o-!`(*7b>#4w}u_&&3%8^Q9hy`2k< z^j5p(GpVhx)VDT^O{Y&-*igbKG&#V2>b=M~{XfUJc^^wwoqw5>6`>nk1+)w2=?dlx z@~`OLD6RQiM>1Pe9>U6qI0W6H7`;7W>h*26(lc;jjh6^-mXbjHa zaFaX)A6ED<_2RJS;fVjK6^evHQ-luwLQc`DKNGK=%LFBHp1a~`sYWloX)JAyRP#uk z`AGK`9x_1ghiF4<*J3fTwrLS;zBvOgL?U=0A2>Lrpm4%&U8b7@sG<58G^~AKzQ5jM zo+AbNm9QCQ(Y44i(Ph28g-etmBd1?dHYh)ZSd@9Nd>Wz$kiVb0pB~>zv}n92DX80)aCDa6=R6f5f?FoXmqm$ zo$pbJesIhA(Dw*kNAQO0Q=#5GyXx!YZh)Fn9G~pu4UVD-rvICCZq^_AOHXY zNdcZ4YDa(BYYLb(jis-)eH!UHBt82P91S6CSoIXc)v&SnqBMl z7FxGWi4_{ug42@_rC1o1=H?P)iOz+2T5q}CapQ8DL9zEjg$_G%Yk#IT*WK|{B z9G6C|fHwxUPPBjC;J@G!#0ad91(ZWU`(7|vRV?RKy+NSNluRn^SU~c5%k?8&z$|vG z&wMn!IQ1uiEHbiUpktTMog)mXBiHO3k^hBREgQ54=x$);kv?Hut#HxR*B&-HfN*Mf zf64Z=$;()YzCl{RKLT`dbYvlEQ0nt<|G)|5h#)qkqy7%5bG|TYL5YB-k>*J>{py2~ z%P>^9y}PVVtg7K=KxkdtRV54J-azpiH|NWKa=>?RgHqQdtYr%kJ9JX}wn&OuQgZ?u zvh0R;_(&NU%F^iUu$E6+5sOOq_yi7p-=dcQws&gcE@qk|7Q{2_yFeY8k-wqzqrz-QNIrI)M)#jBYrSa$g^_U78O zQMuJD|B==~Pvl^Bjllo_5CuV+07>BrQe`kd_2e7G!V~OnHL`tB13XBN`hyreaefd& zZO1`NXQ`Bfp6@tWw%vU^OzV%r*-wKh_#Mu^{8gl`mPRgRr+7J*;-QF!U+(l^?=P{03_-}tk{_Xg^22NP|K@sRl?P*EKCK)M=vBRyChSx0b}T{w zXV-{hZTQq%F+u9CO>!ZF(_YTVWf&i4I~e`@?WBnhQupB704RURl;_5%nKC+RKtNe3 zv-=VBcWJVIOIye%(uUp*?xGq!S{g21dsqR`lIai$Kn=|tZf;yWXwX-a#z;U6T^H>r zv(H-q5n9E=!bw^grRnQt^&Aoe0Dqy2994|WxAGnKj?IzQz_V&~<-lR}RVl(~ z5icgDALXdN0adEVMo5LFzob_T0yc#xN2JAkdKF4Xjc^3mrFo*>oIYAqRQOxlos0f7 zNF`$M#u_VA`7(f`KwdOd{n|+NggO4UtsX}#6C!A!sOL9$wkLSD=@!obx09ch2wYkc zP=X35w9_;^;l3a6o^p-R&zFF^- zb|yj>EZT{iTB?taCi{(F`M|~Ljs_u~1=T(weX5v=%osgc`_r+-%mrl?GR<~4%zShK z?jEVP0VH0BFDZt4^MhOq@~H{OdPAEqprmpQ@b2hsrv_VLXMn@4p&Zz94x5=I;IQ_% zG5&f#E2`D}i*`7Y5Rs!K4Jxs7YjdU*s~s3gBgUT1S-farbO`qlu-2W8MR^0@v&h@_ zBt6R0K~nH)@h?<#ztQnRHB4r zhxQ-iK|iYWRfh5y;AVYgTZa6M(XB|*@qFb?i9v@KCF!cG62Wu!bClgYfLJei8r}To2;JA= zKkqW%K{=|&2~RM9mOz1Ww&`vG^1XOAf&@KB{LN|gTV@+?8BPd|zGfT?)ZG;7g!JmO zCD$wuFST-sbk>P3o|(|febTNa+>0s1ke4F^#O77#HA~H#`Uxjqn5Ea|Zs7HoyU}Cw zHjPGRqx4TEJs$%uy7u6es+np(z?1LS&avYLXP00i&v#AuLRd5qEviG+T&JqAUQmm& z;Z}g3qSdD|1cCWXyMvVY8?kS;C)GU!ONwxTzL7IG6gSYg zzA-H3H3GilzTAWi(|gARS1V&=C&B;*;q>`~n*t0SuT1}zq0Tmf-{Sch=YBVoIQE(# z9GB8TiCk>FqU~YmISWx0!p~|7uBW;;3GdJXYCNR!2gpwBnEd_TSs+Z5C>UNg>9rHJ zPdVWEiA-r%9K~%^34%_{V!#(^pTI{s1DYL?-htyikU0l%?9p=ay4(0uX3c_#qvjsZ zJzqWhftkY1jyk-Nz%zXg3j{dX3hak7e zFNn1?L!>;Ro{nc{mHNUyD z=$7$_*apY?*E1g9s^5uGw=L_v1=t-7uYig(*s}<8*Vt4w^)G5!YVFhff4*Y{5%8eoQSC&`Rpx(Wzj1`nehZ}N?qaf9kEEj0K4!td5t}{ zLRz9cux!TV#?XG&v~0^&PXH0df;FoFW^C0syDd*jN_@1I1HU6_9T0#Bi-$yODrI73 zNfQ9$)cZFw99cH>+TGd~g-`Iob;El=e%5#)pL+o$vG>1gq1-Ae?tzLK%{p8F9=Pcklp2xJJ?4UQYF#XR!99@GK5 zM!z$NsI8vcR(c$69n;=H*cp^@cMNVyut_hhF^(B4WJF}_u)JDBqaCqbkI9p1q2M?6 zqxp0us&{r*y84!fzo@R9`8RmcRrKEORgQ6YnS*tL(_S7X!@1I6kIxCVzZYx)yj0sV z{(N#y<^NHa$*hDX&j&wgj}?!pQ`NEa6lHZ1_MhMc<%5cikgf6_`X_ zZ0;Ang5#~mM1RIg&tA^21)PJ(`VyF2D)FBvgJ3414NPQPfRPuKOzBLVpF3+rnDo_9 zc|%&~U;~O22ec{Kveo~6!I_~qpE+wbB4E>~m&JQ`j?nbFFOfVSm z&CZTPrlD>Sj)X)RZg13L@xT;wx(nWhtzbgAwSvv8z5*9-BcD7~ll{A!w--L1tH&1! z0c^Mn*$>LRm7_m2Y+U)nM)2ZD(75wxXV0>lcS7Kq$B#)E+TZ{!Hm0D5w+pXU5>Hsj z{IrF~r?_!~-SDn0(1%PZc0KBJrdz2{X8gyGQVyP3i`#nyhDf~~|74ccf$-W$DAu6+ z0iRtFA!U}m&FY$bw59*~U5}CrbGB*p6PK-Pco z^pu76_Fhn89Phlr)V+gpsKHWc6=N;lG-ahsNaIo>oeB;thIbi7m8ix{k^Z`F6e+cp zVG$P~X>J}!lHldZjB%5XM)Vhw*T+qCt!Eu*f-0B(m7J)M%%bQxx)O}rZ$TW9>nRSs zpK6}FBMlLN5@#!IO|PNg1yq&J>6o@lchx7^WsS*PDspGCKi=x-8;)IVLbLsHarzuc zamPpw*;gCnR7`K_ znl_tJZ#Lg;ibTtx$T-gIW#*3MqbX0QR>3f(Zkhh=kqYnwvajm{&9;!Eg>N`M2gbGe zdH=#w)Pw87tw(CZpk#WLzqn**!O!0eyq{9|De)!;q>WZq|4=afrT6gpBz4xjdouvD zN{wpicm$GyU#5+EQEUcc)@tgxJ*g1D-_&>D_ok0fsS4$fr?yP{w%P7M)q*@Op-H2q&`SV} zQ`o$CGhNTa{{dj}Oni@VYN+KDOycCU1sw+iFJrCx!s@A6EdXhmiW}Jj+6+j8&dTh0 zD-#1}zs9#?xco+l=?ZM zamJ0!Urf!Hs2f1rvvc}pH5C=>Of?g75XjO$j6CLs8j(e2_}b;xSf7g+(~tC(5>{J1 zMp#BnWetJnJ((ARG-cNmWtx?6!;uIqL1AK6SFl_)(qqR+-OJ*`<*pDU%aB9tEunB9 zSl`>H0GRJGy3%y=CBGW0%H!fRT=(v78~2k^s_q3f%&mKXByFx~B63>hFfy`^28qu+ zw~A1!V%sr4AuHYCcD&3}oaf#&X{LU}-$18aco}}`NK23ShA4C~iBAT>6>D8Ae^Ndd z4lH#P0p-gt0}^BihmeuZj|Si^3aYkqGAgpPrOWOXN5ao)dFJ!oyiVY=n8o3`G0qI} z{?5cPp~3w0=bXV0M~D_ksaNL~V3#ee9QxqWVaoL`hCwl(FnStJvY^ZhX)aszURiG} zs$!p>uV&_f&pUwt00gH&o<2o1OlS6m)mVGt5T!-~Kp)ktWO^69b=8*Qo=l%95}*Aa zhV&U=I9c(L=SNktAW=>QMQ1MhadU|6>-PF9Ae#rAAeVpH!2)B0!^= z4ih$TU^ay$5|d( zkKmH^^4nCXA1V1-^4&$-1sAu+%`A9)r}Ek~RY7@m*_q)X?V!I&Fu6{$Yn{a7eGRLT zjjwQ{TcE`bN}1u);&^GY`tZ|l#H2geD{H>sEoP#=oqBilPOh6t{P0f6PH~r9SZ*3= zV+O;-;wfHws*!pp1Y)?*8S=M#qh9p(lGpNG--2`eLSz(@A(=G%^)EX}WojG+>|2p{ zzpdAv5;QQtTScRk1p}jUb0cTj=y1w&WRb^-L$1M|Rhg-ML^uNhWd@x?do`mOv3NZI z&8M~O2whJ4IyR0#cqzp{zW`%?&R6dN-#*fRk83Qe=j*<_hFsO|nP<$sU7*DdHC?~m zlcX7cZuibiCFEqH5Esd{OQ2w&$L{il-4vW>Pm*zVURK}eDfbEyfAFY(HSL?-B*P#} zi2(z*VN^F#+Gu$jU%1RHOeh&p?u@Gd^pauR zNk(0SDlD52gZ>|<)LPTd6uCQsc)ADDLu6408Iq?Jl_h2tqp;`~$PGVB3Hm&G&1>wb zf!JQiLjZQT(%q)N4B#eX`ZLCD2(J_;NHQhOvbZ}gS3a=oKVF6H!*pT9?PYa-8?I%* ztP<~gf@{0jhhzC#SI4qjj-RncVlcWh9TJ|J36POYU_FLQV zoN3eD5zcZ4-9X(FY9b>wXn_)JV;(|-ax&Ue6r2yCZCiAGxb)(r{Iths8d;s#l@Pc(B`E` zL?h3OaLu56$&wv9n>Di_Zjbo5Q7SJiE(nSGyP}YS(W;H{jNq-aBt_%IyWc5H$ilwp zv$SJHoK*`a3!nf105$=hU35o(^-iEP7j?UawoyrD!X34p#1ALjEjNEf9Ccc0M{n!= z-GxBv6ZttiJOI+IpHu@n0006*0iIuKMt|{{vlkdtU5AI7RQQQZp*HT5?SS~#P@mG= zfiTYzi7^c&&c|!xV+#@7E)+hU!{RFeLLr%kmF*k(42WQE%{oVXo$g$dOx3H|M9`hT zC~qd!DNLi1Yv} zKKW%_H}Ll%HV0suWRmUk6z1p~3%H?gdq`U-da`!pe(+A@g-&c8JQlee$$N?&MK-N0PW;9g)v)#_6>P&H5cV?RyfqSxjVsaT+jNW*o(;jU8yB~ z>e)l`4f~q^g&at$&n1$fJZLmk{_Q|e$+d9l21;K7$=hywO7#<9Yd~(;$w(p~B!=V{ z^|JA=M}Yx7x6hTQ#+e21^2b+`jQD@0BTK01WbC3wHw-Bt0vGu3=_VM2oZ6QMo<|lW z50}VN#FYYgqAWY*M?SHZotP06rtyvw3jeg$!ZK}_CN1;% z64V=SA#7pOx<^zgF2EPl#1RdeVfXvfTVb94*bl-w5~3$G+2e*V}YzFiSkJ z84NwPTNWvlSLxT6H$yqOBGP){bskLMuS6Yubkv%T`Iu~R6}XisW`BKz zBCtkWDHB)150W=ja$~u59xJ{C1(t`J!3TPLf`;w~=ry2!jEUlU$FA6|rUVVknaWQQQ4qp*j_l*!Q8NgyFwceh2Gr^n#h9Hm$fbuvK4E7O8 z-q#E$)}~?4VC3}Hhl%K)N}=8N@Hg7I1kSf`in3am z6~<*_spU8$j7G;d7KnHWtMgA28w`xRd4m1BUo1(Y5p)BYU`Dz%N$b`S;MdJM=O^nj zAyX?hvG6b*<7}FO5(*_f`R)0z&AnY1lyEl&F{-CsBIwr;AOD9@cny;53c*|~f1O-&C}jZSY9omAx?@_2)@Jn60Irmg9U(Zci0YkRAQ|;R3C_mRSO38K z^a}!%ud8FO$`Z+E8vwDoU(t3uv6eM){OKxPW&LDe1Ba(*#$h5;v|00D=wcu%Fe+kN z_rJM2T83I`R0kah@(fX;mDipoOHBqk>;ZGATcbk9*dyQo%yFfR{%PA! zFW0schI9;J7r%7+w~6*fWY==aH^@*ab0Sbs*Aw~J_7$rGVRBi9CAcV zm>!<|G9K3hIf9rD<&0EQ+G(j(P(&o|#g@^4zdDhFt0aVoZ!vxF6ucU4wa$SYdb-$? z#Q-#76MGU(&Z$+-jG!G0xgBUwd2b6p8^zr~Qvu=;KO59l2@-&r(_1FsUszB4l{ZVV zMe^!OJ&x@Hk4QNQyds?a_3 zxHtj+&J{eus;MNh;VJC2s8qj-i=PVg)flY({_mqwM_c{=GmkmM$%n~m8tAyaT84Y6 zHDo>s6_u%v0<$wAJPFZ~CKtJ6;d)SAK_><2b=Q4l(>W7m#<_DvA-Ik9u$dz|JOTu- zNugecFbDNzOT{Id3k4|aM7KQ0)34l=fcpaoE@eTTWf$}HOpPH@>mW}L@fNiSfh3ZP zZr+oxX;szj%zkuo<07Em6G`wrv8v>;v(6l~g|?JTEWi(MedUPi=a3Htp;G8#P9?G& zRR874=ntr(z!|6~^Y%pe(FZn`gyG8k`3|&1^Vz918pFeVfZdozK*l>`=%0EPH}Dx3 z@%cfr@{o_5DCFc^ZxCGow12(wI$J7n_2QBLfMeasq^0a-7VQWy1A%3MNVb4OL zJ2skRdDKVz4)_NYci|#kP6kr`gaKugSp_X%$bVH3ZDelXtaExWP%>(sY=}T4z2hP7-APL#H|!4O=@xaEa>~EXKzuPWy=k8y){+z^gtHXjH zSlO!9X7X3gBcF!hD$YN}A4^24DM@uWE>n#{)};gITdR9=7+43=j&;n@ReC8aD6t12Xm08@xm!h72N|i0atBKR_ z%T!OwofkOWOX3jJUAU)M($9g!9@2H6Z4Z)CQxn8Y)sKK2YJlAnN%%>UK&mw;vmP69 z)wfPCjKIU1Xea0&tp|9>Nf7DrARo?f)+joTImTPmF}^l1oADE2~n4nf|lq0=h3Nb{mcT<_Mpyhkxbc&WD!IY zM&f#TLI;! z6v+a;h=RQtAgK4Oww3tk!z({o7SpGCfix2(SI&PZ`hb^;zHzl1zZel}#TjIVDy3g; zmQB9_kxsKej<8NU#OiR^7ELHYO_keNU-)sIPQ;S z)M}iGLWNG@d3nEZJyQzPzA4gt4_5l?3p&hd#uo*@)r4ZzaGC0fDX;aLTs_(zSj?%V z9LaU5qg8v!f&ar+`_$r8p(lZbD`kyW#ojiu=sgK_`*MYA8Dhe_yl_=h!w|k$YmnL{^c5Eewdn0VyX6D~5IecJL!ctg4oMmGR?#9PRF}5RE zT}JwG#q}hw(&hx*Q=W2gU>3(uNkyku9CltSOq!V3lZojACx_S~GCc!r_F?IwaFxB! zyv;5?rcZ74r`?Q($wLN5HV*#imel2)o`}L3=NwH)RDe+#TlH1TLlQ}%m*Ac(s!cjW z!~R?Tg+Q99ocMMw+x4-oqL3xC1MUWOdMk$e+=ZB9=W}VS*_&}f7F(?8==2Td$}0k| z^T#qM_ku{-)hhf9b~VOuJGY;>5L8a1b1Ctd%V_hetHc_)(D|HB;7*w|Vf2>I|4=u1PrMJ!n3}oxDLUhjW{v|dYUO1 zBB0ZXCkCKHy1NC3}SZh3NtvRi>D{?&a{4;N$vC?MrQ@00RjC}R+(5yAgy$OAep z(h0_-9f@)Cg5VF2TPaYT?Z#ozI=a(EZIiqWpwPgW>-ES+k5#Y%OoyS$olG2$@4-5w z#kD~w)od3z=KSw#Rp49A_DQSzT$eq_Oy~Us4}$x*vL|PDNsa8_J#fnZ{04yh;=)xg z`e+Wp!^YaAG52n%V~<*oRL3~BA7UuEU91b6pJ@M6`(bmBnWXkm_{yd)IqPAdIsRQHnWqn~xs)E{DK}gEMiJ?^+iLK9#x4WHjWwP%W1)b_;R4(KO*tA|wkLU?p z!~`BoNPa1nH_?)UTABU18|Kb;>`L16sKzkSI;!1|cO&47Z-H78&0w)kPXb<%Cf-(~ z6Lt0}kxRa0b<>gp_V+e(<$1qU@-nJiXwe3t6GIb6aEyv$ii6#5^#+8HO)Xy(uW?*~ zSQu>DD5mp85@KC><7jpv%E2&+1hy{@P1AMfLqEoA2wu1(=C(rQk2Ezh?{3uNeCCLu ze|K4V=7hRbtx|rDFzjr&vJlU9IifmveuO6iFlES!k$6X&m~8tWO@`moSA7XLd{_V9 zEuNz)59KC{HaEnTu!QIGV>mx7lL3`{+fum=yytS&QqOLu$*cdqbNM~Z`b&}l} zjN(YDZH^Mc=Kfuxkw;1{J%1WTVsjM4F=+3 z!BmvjDyet>4Q3lb_$5!J>hv(B)+CtX#Ff`ZM276cXY5_8BJickzI4)eYSSpGBmGiAw z*+P@|oz$07ODkY)6XImgBjVaTj^;yt6k`z9yApBso(t7-iGAEv00pgx47^OJ2!-Ys zObdKkAC&IK1J{-Spv|+qP>V!~rCs7Mp&xN<3%4tcQ-$ePP7C~PUKxQ6IzvYcpVfYm zPXa2w;v98MY~Sv7``({lZl*yNF{nEcK9FQNA*}MB@8I%REnd&{W3#auid7=to_>LP zgX(-dR2gYGRKrHS=_|wr)WKthY&vB%qd=sjf4;*MNDKo)HR0sOIwzdIgJ;*@*Fw4G zQC^0aDMlDuH4!Wzdp9-K4BSCBi^s^wFW-*c^o*AiF%bxZEC(V}{cinOgm7HXY0CIx zS|z*mA|TEq@17bjwA|L2FKc`H7;T5N1GltQitYB_o$Lt**4F>bb7_iwFM}8&HWvS1JE1#9P+raD6RfZnl6DCOK}?4GwjvY|z#%hq7`r z-1x6U!=g}*Ew)_)QeC+bBLXo8>H7fTMbCB1iK@B1d8iydasVQr~I5u?)*CbE}6O61dT#5w$36aXgTlhrY?{ zj4{*bcu7qXOSocNP07iI158TCr< zhs>bS%aVuD&~EA9Y*h=wfd!R~*+iY!dpa^u-XM0tX1(RL}1`yVd6 zSN$V5xhfgJlzrL@IDBmcOHlMJ|Nn1~ZQK`pu~1z1#`;rDLX;ic1=rQ#>1rR>Q|q9b z@Wat9b;nyyIae~6WxI^FauvPwA~jQMqjNJ9Zso>tFLy!tE2}4}`_aU&pr?|Q=O;{53IP%fE)V@^dw^7u#V`uG^@mS#R1lIR6>LnEKa>w;WE4R zKZnUeTSnsA7vLt5iTH<&x9uuCKo7!Z2gVSWnYc+tZN~n}d{#Cx-iPzq9^ikSS;eUY zIL7SBuRoyNuy3@}GXDSo4ADWFh)JkHY?(|7|Czb}TfMYx_=!+Jz6Kj>@5ZyYgpY?VI;2M`8E|L0!hu2v7i~;xizN2IF%Oeq-AKDagFhB z1{(KUHIssXQihccUv0E)%XTrHUs7PRbZz|vXl{YDlRV(}q<1IqSTTUWh*9MysC@nk zg4V*Lrb6mFG-terI~`Xm9^XYLeU5U1f%|hL76D<_*;#$a0x$0^`JD8rtFd6w;d9&> zQ1TdaXoT3X8?{sn_s$N?JQz47##C^rKd0Ed88fV2XsGP?-rp>?Cu*Vh?kT715!Ly> ziUeno&&`azm65$CN9wy+?_L|+gY>h84GLjI4|sO}pC&n9i!+_;CG)S(xA>6Ip;d=` zXXG3^$>Sf!R)Hrg0${r1X|rKGEvksQW0!ccZHq(d z;vHMah#c~*k=;tf9x}YfQ%!)LI@a<7*V`&J^~Gb6f!N|G%yf;sRsPP)9U`-OxY|8e zse9RUK2g@xA`xdoDeK-HJ(zOH&&H6adq6yrPZ_h3?jW{yG}X7@-&`{=`ac-QbWzr$i0bb{}(U2 zE6tjhgKA|=Q7!1WpY5@&*aj;4uKD@GtT*8|{G7;{R=mrS$Zq$ zEFYFaBM)O>f>;11wYw7p$m(enLO4GdRA{da08lgr{>J&iAnzv>bzt&wXMqLe@{-?` znxcq(h#|VaG>Te`dYom{fXB}TfMJ>z0@bS2wXTx1A`F@%N@8RtGKi!AhaO1B4=rUy z={@OsSC6V7AhC4~&}nPzq&H+~tTCR)&~+!3=&oUl8XYfeU23)<|8=M`GZaF?07jS6 ztT92CWBAA~EQ(mA8xFjU*%L^E>MEw~*;Gqqxo9xiZabAD5o9_EI?GSSY&i@MiWe}D zMgP$%9X*+6ibsyO_h_qu37~spxD0ZaH3hFvC90KdcGGc~-f;tc9;YUSVQ|Ibc}!;6 zQmd%ZMaq^pPl3}?D%)JfT-vwv$S+4OCT(;hs_Nlo3c=CFB3VmhD3_ApC%W1dhj+B@ z+rm$M`$$afI&v^d4}z~dCuvv=5xOP@faru9cXcyP2qxumy&JEf^e(>-VFf%|?BHOR z&+Mm(a0Z`*6!Oj8_T(Tjn%1fV0Oh1rLbZ@1UY>@6Y3L}NAbSw5lhl|=HpuvZ@X6uh z_s~V<8NR3!kVwL)ywZ`7PpOhKlEq8+v{Cs)*lq9y3<>lhhZ@$=tv4-41>2ws<^n~7 z5>1`R@dT59!>MbiSO5S2a|99|-vhm>k|ip7pJ{>ccV{IBP>NZJ#}j|DHc24G8~UhP zH6Yb0NayCfMc=o?OqL3JUYzEOI9;_`ou!DY+hqi6`ZTz9P0RF#Y2_utqC|pj(8erF zS5A=>q4+Fdl)@EDIltPETrzc^U=BnihRu4Pv^R0z`WdLS=}QMNA(!19r!5jx(UWW~ zZy+UhB->pAlr_GT*tD{-;lE>6a5sAGV}dtU=iQn^*-O2OX3B$*GHGQoS`^n1G84r0 ze;RoYGSp&Ds96)#Km^!VQ!O+SLL~4HhB10he9}DBJDl5_7H<+M8A#p^q-qFdlYWcm zN7UlRawR(oVD(&s;EtWWZLu`TX-@7h*KQgWBJ1`_KkFc%S{Z6k>Xs262xj!;ks%a3 ziJu1!g=&w>u=H!^{qpYE5Ud;5_0t5(78w4|%M(l1ViV{!4@m$rp>`(kj8$t7Cf0G~ zZn81Dpy1c(0#C}QXdt{fI4}iAb{b)M#W#r`r_7a9zbl@PMuGd8N2no1#$l#f|j@!YcZ&x_wMy#knfW`VU*l$7;FUX*+vpVV$iGGL{E-Q%pZSnTM`_P+q@H zL_CWT@JjfaW4c{}R#=MDj~zXP`s7Fu1pdH4A!JdvDbr?{CZSm#< zjX|mt&+w_V)XFLV4wf%qhkxeG5J%l*gy3;-vyHog#&xYe+hN+!VOOkr_mDm!dc+wPy?}ts(?5GDP)O zTnz>LUGy^f#DR`Qxeaz@rBvRPH{xPORx{XQN~jZ16z5>QOfF>Op+>)eOq?9bcCv{m z5c!n8#0>O;u6l{~Sk)hDfrIKzP|MOyD4{PXq+)9N$SZLG-{ojJ8?t%o7FB?BQMr!P z4Ay&>OEEwe0$>V?wqAraOhyTD$f2daWht~y? z6{?oc+&xl;!;1Ig=vtB5j`?z`C1iipYj?3N;dgE28djV9_$?BN5m7%!F*ufrI=D|5 zdiX)&=}#^fW^zL{7<&1oNo1&XY38seKh60SPzJ5nn9TUY3*tKFCQ3kQo}+u$f-?on zk4L*807I%d(zMY~QgsWmQKC8MP`R{xyNLK&y)O0(IDX3_6hK*agTrP8gUBtNF*1IS^i;CiBw)P6tZk+&I-pw?In&s$Pzub}oT`C6>9{ zeK3XEr|Y#M{@`WQBRDufLt-JdADnJqj*k>mLWWR+ksadw!%x+2#sJCM>v6yxZ4-`WCl}I^91h;e_l_>?~sm z+8Jqe&H*r097TZ5gd>bQ*E!4$sHLve6&nUbevXz=YU8`OOd_?@VWKd8sX4(S1Oz>& z5;$2Ki?rIs^Eg-`JER!8@=6-44(6nvQDSHXd>=sTvh9I zZBw?Bz1(<{@O0x_sFxU(RD&9gWB#CdQWf;+x7#s^q_)lDCu+?U4e_T=Szoj=v6e00 z^t6c8o_VAkD`B+$#tsPF4y}|cq@TQ|s*dkYr*#`7E4LEi`8a#A*l9jn#9~m%FG0pbphSqUIN_flmD>gG5 z-skE-K1HpO5Bj^MgCWnD3iMsi5wd!l8TLX6-G9#US+iypzz~#O9&Crf2P4;72X(MS zEsqRJ1f2V|GmKl9S9S963t_2*xh})fTo!fL_BIGxl@Vi@{5p#hRemAQgE!{~vRty9 zYGTVJdPYnLmg)9bUYHPoDi}B7U)>^WwdN^z%aQH~8U!sCY`*T7zn?g0HHDMm zcd58kqzB{te1C4k% zT^EZ3;rgWO%mfHHTh8_^Z)=3>F;lYOZ;S=Gs~CtdsDtp zh?j{6_m6cBdq~sT!SQb429me3LcrIX`1MGeD=fav7I!0BR6je(0t$B^1XS6>q*wx- zlk?HEQ1|RRf4zI?L0b}Ca)FLBOI~q(g!WjE4~4N(<$QH20Z{)>L!OG@72&*H!c}IU z?c@WqpCmU^?(0op`VoTrqtR1a3@4*ThyM)CAeSg?1z#XnOrqOJ? z*Y=BG`NEq8$L)+2`2}fNHBO13-Lnt5Sj7Kr{ z@9lOcJFqeNy%QM(JxKt4e+h)frLTfQWWnDI`Q`C8!^5GObsv zb*4Shd61iU4jMcR2k&|xPN>lpMLVqPSWa%IX~vFKtNa09#|$C6muF1X%dvJm#z;H* zURt$OyigUvT}JG8kad%TiiK+cb_vKzdu7ur)C|Q;8;P&(Yv9TCeLZ2C6-pT%pa$K89?f={G; zz=~mlb4FEvi1<3+;TkEw5ZTgsjcqfMzAd7ZZZ~5mM?ZQcu#T(W#===oY$&Zhjf#TU zOd#bv^w4N`idhDH9NZOVH#W5NZ*GKG(!Qege^Ej<{|107)Iv7SHDX4O4dC-c(MU9E_a4Lh?&V9ak4T!=>4jO9cuD zYCrc)tYAnwUbhcFr9tYM`us=2eHj$G5%1uZG~IU%lHlMD-!#m|BPwS?*kuztP;fbS z&;m)V7Et!hX%$6=|JfG=>LRhVR<%;55sDnVAg-Xzox3kjh6KM$8;L8)*BeL^m} zgo$^&WDw=Ns?(}>%fK`zr}N>b-h~qNOD)d;`#cKeNQ0hI`E7x*qX*xMKip~C5S{&rQoGL{)p2ed$`$=dgvA2FZ$_b|7 z(;+1Fbx>rNpt8P;U9-Fgg;&zq~%l}e% zRq^l=b`&)~WeTh?oL=#yjmn&zQ|%n^m;6umDa$H2eip6T7(-nbsFjL^83EXDM`Zq*o$%& zt<*6&L_M>Io03p)fpYPPbL~d&TbaWc< z0qQk3K>8#u>$IHt1-xUhd*g{yzc{NgLLo2nWSr%`0Lyma_MrjZ09C~!`1eEE$58|? zfyWcBfp}>Unwe7^0>V95R|%~Es&_@+mB4M}O=MgjkBoo6eNRO(hl2~nJYum^{>|~t zNi02BwIR_d;E$uP^wj++!$~jV1v_&@z8s3_n~;>T+AJ-tat2QMO`z0bFslc1RL~uc zPt3DCeF zm?|8`O^Qv(6Ib|HQ`&a0$+FjXsclVVdZQk}WnLK-R_`l0Y#V2>88^5aR{GG9Xcxu_FbfYw>g`a0@3`!;B#J#@u`pN1 z=3p-6FD=}7hn%oqRP2g>eYp2$ z2tH>u9o_sA*DW|RMJjC=!2kdPMggA3YDRzU(SlNT=m=Ug^rEn?9;>Js&DMXfQSkj5 z=1Z*XJQj5eY6DN=uxz5WtufED!FpI?fj~6O6ZM}e_m8U@hOh5Br;&D~7-}Z`>rRTD zJ*=3Q2*Bmko|xB>r24&>Lg^nLmfhG0 z>;W{1w-J%rzL(Dd*!4V_0$ z2)XKLDxWS0dr!-t@EnCwY6|o%Zb}Yur2Rzi_r>XW17zZ z=*ZK4E={;tAP@s@dKdD;*!{Vwm6pGQ9CC18N6zgMMSCLW7UE`KRU7Rpw!0L&j^(Oy zM0fI!F)1=}SMpF@w;|9**^d?>1T=Gs4b}G>-oFjtHr@nt2;s!a1QIiuV=we3=o6qY z`92T|A1*%kN+GY+p-cLajg(5MS2Dw#v*JGRj00;j;n#xJ2L2Q{!6it7c*96#3 zVnsc{=9BCCkcnz2s)&TF`^zfErmDH18;lkm>wTL9*6R>724JLQvo_mukk|=qD|9Z$ z?07#I2pNjw<8y@hw+n~QxfDn|l$EjJI0wTux-Q7n_d_7bR9hb{=r3I@ zT71^!mK{_-G{}sL-~X0d1EF#lMld1XrRLTa;t3VV?O|+(TbXQk7A+?ncCTK-N#O8B z+C|8n&?vB1KUJ3w9am(Hy{z~?GiSckd_6|+ENS-sVXZHIiJUTIS+M%cgOS0D)3V3mRTyHVF20rHiSz~YFOMG@PD_&Wwo>_*oPmvI$aPn z_s0KWTi?)KMaum z73_EB^Tcp0O{6<}f;m?)Wjk2=_l*@(#`V!pfZx-CFnS8sRXY$cI)O?`D z!yXYdIk>rYzl0lrC`w!rP{2g4hzaD|o_OhG;bN(e)h?a@Zi&Ntj+SpR@2PTUl5O00 z;WX1p2&Lm2e{Bx#QT=6WU~62_l+zZ1EjP;{__3PSAoPaRmq6*WUzs3VV^V-28Yj7? z^c|y#dYqUDK36+xis2KUooOS%AP`G)ZAZHox(UX}g*c+ruo!B3F0g0^9b4gY8@-@l z)vncSLjU282@CvE{B;&*W@{v>7Bft7R_>INAUTfMg#MoA*;bjJZe~0xIBt)ziqs9&D*4eNX~3}i?A0v0ebVQ(C-U7!AEY`g~M_u}_W#wu8w0uT<&LKPpR zxQnErd1FuucM8Gv?R%5$E5L2?f|J-b+hKL=(2dXEhXNw~4VW)d0$4w4s6$T*uwzpt zaCKs=X?QL!dsCwrfgRwZ6aIE&utN+U_~C_JZbvpdqo-}T2J!q(?<|o?aB<4S;2~v6 z#F-PirP}0`OE&N^Uijr6|SZuVa@J zJIbq|m3}iMCf`nMQFiENKC406lhqp#^fP29S>B@jfuG-~GuxN&Irkk3po6T9*~0XH z*eSwq8qaWJ|2`I{0+P`yn3wC^WgXj1F;oVDKK{jRyVDHyBkC*%*&awg^@vbg7>|!1 zPshQR`FC|s13@}FSYn(*gbSz)U@SX$s=ct=l89E#KgEbW(Xon9QdqV&x3Gf_6y38yc%FT znlocLZj78Yw!h3)sb@<D$FU(IHdwX!BB53Ql`U z+iObt+5L)$mqnyS?|{@PSi61VDRUZD0MVinzzhPys6wIBIV{@m-P*8ipmlY*E^QF! zcpwi!sU&*2`KXctLTQe{F!Q6^xs*?>6d4xU)huFRVx*i= z__ve~`utiKS4b=`{NC`#*^;~SI|7r?3$4Uwi(m%q*qH$B*n!l23r535u(UUnmXe=x zJGTG;0saA=>1sxQ?C6NrT4|cJzr-+=L`6b=jFIpZhUX=NBWQgm&JQTA1vWGuo5BT; z`=3zv3|Z76i9Qm4u~1YZd%Wx(npMNT{Ypu;XF3^5UpNqe`XE*!kt|#4j2004NP9{w zN`X+s_S+>w3mJ@`^KQZpeeThdOqw4a7=?k;TN?KH3bh{9@`tZ20= zB(yL1G*GhSluUXnY=P&S=rhbEZ?ucfPJ#F2yl(1Q#I8k5{|?>mCZ1&G+_m{}S95HP z3l7l+Px^a03&e>JNNmZBCO6QE#@ak zJ+PV(*bF+NV+N~~^Ub3_IJ6zbT~2(i*zEHYuUM8w%>YlNae3BkQ5{l}d=(HperwA_t=YPS9Dy0B1^?!z@0 z?*aZ-*<2*MQ~T-cF553=*P{qlfSvl=-)oIxB?{6=_{-5k0InC8-MDSzQcAq!%s3t{ z5?ty(E(=&5t0ppOJ}HY6sVu9rt___Q8SAKZW7@}~rgcvh(zhRN*Fc1^c$C&^uU4=N zx(ED0863I7Pe^JR%TSO%N?V>fPZcNL&o^uMH}z|6z4tHlscp-wbq|kY3Y3I3000Lc zL7MGL;Rr&Mf-oP{2lD`%|FuV=6>Oz7cB)F5A=LH;a>~QOlXBPWjpDyh`r|hv!`c;J8 zBK&d&7aXq7Eic1efnWy-I${wO8lUoJcvNk5dDq5*L{?}6JwCcY0JSg%8Ip%@=5Gh< zy5v{*{W0ktRF($Tm?bY`YwKxQjxM7w{4nWG_QZU$HO@k$MAgOfzpAc17w0W!Bi`_Y zkyq7+lvAU=wTBa76U9|O%GcrOY#4-~CD>S;n1xM=;hWNmUUr8+E$uNmIgT&VT_Gpf|{ zA(z#PyU@1fE=&nK?R4f}_D64g)2AJ>lGKr!>n*;}-t7@5hyiD&xOLfxW`47}4@Qtx zBg-!FKgb)lk1W!DMp8mEM#G`wa4WDXf-Sso)R*>@vq2H8;Y|77p)P_^|7rj&8}4Iaz2XNqQK~%DhdU_D4F{pRV)f+n zu*zZ?9Vlo-0#OSVF%7Z&>P|#A{Jx9}@gQ}{ss(thJ?wR%?Vvxoj>6IDeqnWb*$MA3 zg~`+hZ(;x)^I|-gy*jlPxRYO&k_Lx421Qw@%h*5lGGF17d%F-WzLQ;R&)P5d6RGEA z@#*<){Nv`{^BeXLfu)hc#pcMF<-2OUqM=!oRyHYkn%I7{l0=m^>zbmqt2y<% z%ObsCD!$>``HD0#T(YJR6Y3R=WVF?*G~XQl(uc$T>~EEGm@YP`)$L<`qvN^%$&sx2 zi2YoJU1Y{5$AquuTlPzH9vM|)ecHD|GrF)2EbrqM)Oos#KXv)oiVwy385MzI+d#9` zLTj`9k_VBTgB=Ti$WjmrkgDrB(G~hzeFRLKaWjYC_>7Xx2O>e|=?4980pS2rf7n9E zntGa+Y3^B5je2BlO+Q^r;sSTVINHi~#?LoI2oPH@0Fc@G14UA@N$W7G4zLxRZQ!z% zHgb4-Hptl_h*Qpzo+3>T*r)tEQ4`tlXVx0n$?0ozh>`$e zOQ9+$e@lKyHc4XOl875erU5m^12Y;sSK;AhJ>YzOn#d+CiF&tV`c#;MwWyhD9#Xh zaR{(sx*qo(0h91=71+*Xf#G=QyPfM?7bOy*1-oXT>i6_+gr2<^bfhn$6UJlst;|nE zMcQoeKulyN8-lY|GT{fRxuakqQ*!5rYXBhI2=!fu+_xlhn)z!pO)>UnuZbSdw82nk z&Y7cGA7m%Y(Z{!PB(Vi?60=rB(gBd;HZyh^0EPyv-(BALf{408ld%rBLj_=vk%vl@ zVCSxb=AEfCA4TihTbNVZw$c>zT9Ht$lXRY5CMBivLa5T8UWjy)na_T|JP#`GCo8&% z7tTxP=Z(`nxjGv?CN>hjl%4&5O0@x{ZRdciTDj?b&ZuAK=;a?wMfCw*@hTp=N>yds zYV{<&)8zmxnd%`TMa~(^==@(Kd+mU0V$*O@CTJ!+OwIwt1~Rw%Aq6cmaL1xN!A($t zHGu!TTS@)51N(Y_`-`?-6Q!$kf40KeF%<}2wwj;m!p{w)Ddn69F56BVlC96-Z^N)y z!&k)AlrZu$r>1bK=iBTu69;WkDt~I&>FddY$X`zRqx5|@zMxGE<^ZN`sRi&DG+k%s zTKVV(;SP-YY0t5$?8h0M z6hB`br7Y2FnqiGh#7sa)&Mi}TYRPn}5cA0{`$ z3zd8T002=zp9@7aOh?!Ff!_J#HJ?Y^CRvL$wh9~QEncgW4j9$WsI^)sVR=+Gfx)^@ zXW{6k<8J9@BFVo&ox&@CNv*}g`QoRc$_CdjrP4v_@&fK40005d0iP^tMt|=%v%1pa zJk{{Y;IB-OInv08uh2qQiG)ou0+9$M(Ao*~D8+;wDMD^H4p z|G^uVC~bK=Wsn4b(0%QknMbzw&}at=NDwplY=-BeMVgGxI88rP)KGCs7D&)?ZGBEc3SCh!9QODbl`jS_=;}u@fTn+H_!~9HL-xB$k{t!n z5YPVGnfCRj<@nRQ>k>FD+yozwH&Gx=*Mi;Fh+yw2VHx87jg?I~jJ65}mUk77;XnIn zxZ2qmW7{fvW$^3hgn7cZ$?0hiG7Pdu@}jJ;toT$$k( zz|&9`V!F3-P$m1y8s8An9$Lkq{>A_L2%LBQJzNBBL>`~+g9Z6{A;$mSpU=~c0Ah-q zQWleggw{dD$HJySzzwy@rV~0(Z<>ln1@ZaLUlZ!ODIjGEXUPBgtj?6JHO>X4twV?` zE-5z`#5IJt-qq>QSY!k(xBtE#PIL_cyKfp^h}LHPdsC8m000l(L7Of~s6l9%ObNfj z$0_bHP8Q=8teKh=lbxvJMrZhw2v;YqKje4Zj!~RbLJ<`t8dDfShXxNU>ln$ z9y>`cL)&BgCcwoSDr$BBHh7x=!NJwCP_@O=hf&=|YKojcX{?P=dJkkllRf=|!QJ|c zEw^s!t#&A|v2WJ)_pC#z7UC1mUo`4HKZ*$rY4k%z#+1f+hoALIK=E?D8O>o8;mHr; z9vU>vq}d0?6uGA+*d{1jfK}z@9j6i~S#p2wnV8O$_(6R8p&dCZq|vw*UtEt`-=XrcWHM@{Hqi zq>h=WbQImpm=nkF?75;Os-JxPq%0z*J+uEAs$GqjHs~_L0PE0*xo%kJ+naO~;JbUq zB~&8i0U|CfrQx=ZL-Au4!d~0yrgL9<_3pBJGt?xR7?TG2L9~km~+K`BdVg6M| z6I7%1*?0{zCwu>ES>^K-l_CP%roT+Vgs!>xhmp|4VLCf@!m>p6ZBv}z&^4`L;6^m8 zw(tc+ND%WDH=$CaOaQQBkhv@~`y{nb++Ivzz7MR_Ia2lVvttK@Yh=|$67~F1bY^2p zX|C6)&E`a6zL?-zkrs0%Nk*%u-plQwi?j6Z|3IrSK85LFL^S(BESo?c1U^0(A}YWIkiTid|eKZzM34s29SK=u!zm$%JEp$o_Nd#uf% z-8Dsz5fzA3nYTVL#)?3sZvU4&$cq92#vQok!76_edCkIS>L>sGlqHCjtBFdltE-1i zc<7SX*lxKdr|-yB3x~Ac4WYVxcfU_|avKympjZJ32HT#_SdCFeYEddaXR+SYdg$u(+rpzM!ESN-Mufo61yc(Lng{OGc3#KrYSiW+k&3>dU`hFDy+9~kdDdS_>{_I2^>bG)y3nXyA zZYqY3HcM@|otRyqgV-O_M`N8QIX4`e6CgP(=xQ1R6og4mY3i^)#6S39|CjP)ovlq6 zBzqAGCLG7mTwIFaQ{m!F7Se@;^~tJW2oG;9wWQ*(7nE%O71iN3 zfDfy6Q&(S+Jil$7pNs~>>TY@THF4R+B&|P$8p)L6j`lynU+S{TgiaxEdR{3sCJ!t} zo!-^4EnBVZ3=+9H@2nz{wB6fktBiH-R@ip2|0vBcUlCpUAMp-Qgv+<672DUXB+7wU zHq!|o3TV4$yYP3q>=dJ%tkCjsLQQF76e7425YYj&BZN2Y7QwEo)KfJjI<4B}{WSe; zi8Rir6t*5#94^vE$9i%vBqdIbcog=W-i{pfQb+z1BfcU7{JHa3=T-2Am1)GFjM)wj zzg(J5(HUg#;mn!lIjjVRII>S((Z`y2E^>p_oOaBmNbTXm&fxBF2p1$5Y@m)12dzAc z>*Oc}X6$EIZQ>-oK4+F;n61ZGXo(jX?=j`MEPzZp0T)%V5tsg>Onw>+7f&gmj`q&6 zT#7uI9g)7WPogn$FfCdOwuTGr=cZvKqHjjTZim0k19ANk-;OqA(7hG%MFSD8`?+Rz zlH+iJ$HMhQ-C)2fj?gYO3$q|PJ?267NfWmIAQ!<&Hgz_G8qX|7-|YO!&kNNswh1XQ zl=?Z*-NPueh1ca!Z<&p|orDY1$7yR^CHKg^n^WbNHt-9{~dr7BpP!200zBYpnc>^ZqM?%j3!KV?LS zhQSi<90R#_9^?kqxiOTUpLf3iwvR385j9RT1wl-2){>U1;pT6Z8{+Fl06a6b-Q_B> zXAvTmH(&uX=?7sHrqRsGA5PyhrD@5xniX)5IjCTY!6^h~PCso?U1AWP<)XgiqhB!d zUC-IT5A#jsZ@5unv8M40{_w4OL>%uNqWM|`-Uc8M+$_6uIp6p&H(>;0N#V(Q|88TR zI8}OOvdNPRHCMVxjjBkW(#6h?3mv&u|U{Br16i!iP@=@SUd_qm@y zo)C9w*HG)vUIyv&;2y^kbkBcv`8L8cYDWgPJE_&?G=L!sUU<0OYI{C;-Rn0csQ`}u zph4?ud$&Qt>;gVDpcHvlmhq|t1APBFgXRZ6Wy)B1*zRM5chp&1oGlqIE#*4_K;ErU zlst!?>DPwWgah!odAzQKu}-n>TM`9M86mk)1>8ASAo5WZ6Z}Zt3~}CS5*({ES9~vn zUp))E?kuZD5H87{?8K=1z11%9Nz3aj1?Dj z*;j}aRU$_95E|JT(c_IP^L^&xy>|1FJz6hk!6ku_vxMbY?2lM;I3d74uYzkTmo~$h zLww=aOsqHDc`I59)kE>8ptPz;+zz@-(gbdfOHq?NeNF>zMzDIkMoOPN5oJOR57>l- zfbLZn-E2fJ2~sPrJCwE6r6LXqRD6VEm~yiRgs>Z+j*}mH{+$)v0`wE92x5s|8Tp@S zd254m6x>U!utrr)3EM0Rg3n%{w;V!8E%oX9{JPzoG^RW*5bHm~XM0G2oz+J`fSGu^ zfyRoJ?L8nA9?djz@@slL3`0(_mlZMgLNZgeE<$_LEF}T8fAMH)3XId$Lz}?*8?A}E zc^@3jCK!1*d~`ly%*z&DNm_@jKD*KgjY5~)HD=(PS?t);7rFL|I@3O_Y9OjFL;3!7 zNAe9Nw>sAnM>0WhRSxorKJbuv&?E)a(r6mNWRpzc)Kg*Bo1H|;a5`tUGVI%$1XiNj zUbZ0vpo{bx6fq%9#X#DO$C4!R0E-fdTKW}4=$)XWqt)G+*H?-T!gZDO2t6&wH;rh8H=f4S37iUu^fa6#FdaJ44BC>iX!9Nr_+Yb1}6kzn2S*#q%s z4<^YCy45{b4Dpm80M4~+LX9d`7lf-5AC4XVqcvd9)Zvy7kBm`?*nO7v7}$9Z(=U79i6&uFogA9aaNHS(&AurG zVxMr%#q%zgEODrx*~WKy`$_Z}WK?6)A^l@t4Xpiap|V})V1zjg4$UCV{1?+lb<27A z`xE8f8`b6C#C&tQD{MJxLv@NbW{!ciA|-$GiK&e^i#=l0$!NBCE7>zP3VC}?sd*fC zBh>+R*%hUQ_MaM%1lZ>k6C|~~$O@Nw>Y}PpS(4`A@BIQg8#l4dfJ|8$fZDx`(Ir_t z|Ajoz5tG@aVS5We{F$=Ap0#n7)XC88B{CUyn6!EVKGz+hAChY*eeTwQj~5_w2=5>L zVnxk4I1k4)fTGhl+$HUDb{qqz{4bt{3m)zAlR#z=m63Xv5M~si@hmqM!s>n7@GKD| zl$Zd~J)ivZ5&C|VSTR+Did;6%F1Aemf;!(L!~z4@N&9C3%fRj-h}?>6)U`{57F6D4 zZ2=88qaT=SG0isU@`Syu25L|uQ6cyCenbqa1{hJ#txyf8Xu~e=JXUU2eYjELI zxD+QOSXCQtq_B;t;QA_yo~cph4jVrHvFQ?V!j~FbkRgvBkvSX^A{V@iWtK7w5;6YL zqfiz?+MDv&WJkFgnz12=?q+le+GXoNtF5vTBYyHZyvX&sNX7t$7tXGzl1Y-o$Lx58 zo2)GtFMfdv_yW6H(;^)6r2gk%cA=cQ>SqDgEaZcW0W#WvC|7|PGeI+BgDjU>HDMK~ z>B;}Pu$d>f<)RRsVo3KL((EQXB6l&Y^e;*}P-{gQx>=|Fht!a&v-(lv0Dt25__@r{ zmtKhWUW~}}|4-L8S5sfS;ZQD}SH3IJ+;1@zMmU{KCWjQI@lCv&z?6s8O$Z~>g^p`Z zv^C5ERvs>j(o8@KB+KDr3`9aPQ;S~=U558YUO=bTCTI`#4oPnX{KxXGfwf!B0Mgnl zGHIG6H~eN!!~^UiAz9HxrlQ5p6aKt|*s{{t84K6WXP}2KOE5?G*%$xspX_ypRQ|!H zc0MNf{IF*>gcsABX*g@l@*;GLt?(IV*0ydXEmFAM3lrPF`*P+q@Blw&6^R#n-;$07 zS}79weODrY*--d z8e_Ht$gE%*(|xlg6JEoXwj0S5IgQ>ajmUZ;q$aX|OTc7VWZnKiT>$^NmjU zA#1zI6o-H)agdIwUgzwsqQiCo8D4hE*j+d18-mIgwXVsACcjMB8!hBm!XE8eWJf=; z)5*pPAB#fFMX5I4)P$5oR!Z0CVMnR9(JH>CfYn; zUE)H2c^-S`cm`2UP9>ZMTs+Xk5{$JjJ>h(=Zr2vPhj_2z-TYPG&DF8upGqEFzTd25 z{P=-!sx>LEp7|u&fJkp#q4?%&TCW2*rn|&ZpQi$d{W_1k&Az0#?T$VBm z#0}XXY{g7y3&xt1Tha&A+7ODsi;McccR1E)6nN&K1b6o+o&IeR7jEQA6Y+?}K};Ln z(ka4}6z-Iv60`{EuBQ|k9|M1PS_ty+5>;jyFMfOtM5tI<-c(wt@52Q$0a6U zw?`_CHyn)JE_YIl*4KNDWx$8++9_UNp2xF0OkX!mYsU3;nph$zFp<(vjA@k1`aiO~ zPtvYL@%whtzaHQzPvJEZ(#!75Ob$4`Znsw(&7GEG%ccm0T$q$_$b~zHhDe!v>z`L+ z34Uq@FtkTHkeR4imk72I_|4?e_6FNvMqbpi$7Kz8%N9{KQlYqH&|Vg6#v>M4Z-~m9 z!a;(=X5eA3Li`^y2GXWf&H<#gx08m)L~cVuLQCFX6jK;s>8WKa;^_hvQVI0eFhVwl zNtK*GDd6;=K|G|hZldY))=~9FE522Z9P|KTHZ$FeLX_@C!{4ajO>!_R$ode3jIc zY9(u86mW|eWki*2fz;(2O>0i)kMNSHLDrM5_rw`T@$-x}4bck%gz@-pPl}Pw+<<)% z9GhgB%tjjWi61~VS8ba;Jn1T-El6;u3Z)MH_z^l@S-FQ;i$U*XZzP@~_ZTcMv#cBM zChMq0cmK)EyYue`qmHf3Irw&+Tf)fo_nDp>y97)g&0v0U!udIMEcd;+mBtSd4#-)Wl>e4B!{K@&>5p$!eRy^1fDyScY8 zf};TjXZePp`V$6Qn|G6=tE6|?Q5?Pr8L8?DBhJf5olP~o+;MP@f&AN<$HeTUn&Q#p zZQ`=57s+o6PLkh=vtCVV()jhMMSMr=1BvA*9lomBS;IoxJV}Nc8t+w5x1@MG-&$9I zYIKH8K~r~8W}x`NN`d1$aN^l4@O~J(Rh&o=xgEh+G|ip(jiu};jF1D`Vz&J-{J;T3K_6JLbnT$zokJ*;vdXM3 zN9~d39nM!4z0Ac4n zwg8%Xs7xa%Lha~=EG6>fGfDUHWg@7Jp%oK6QqE=4pXdV3P#C=l^zg zWKgIMaeA}zf%W#lJp5^Y*g#-_zE!lM=%Po+wp^677xcjWGzx56h7>)m`pa%qaB9`q z72b^w`$t6@={bd2CDsjqTSn_|9*d^NI=v8KG0Z%RqKO#HDQA_+a15t0w^gJd?m8Sw zH3VkdZCR`~X)`yBF}AGy`QPKr=B#{y;Y>gpacr)V@cv9YA+fh!^v_&V#&BdrO!86| zrPl52U(kZsh;^Mq%J+NkQWE#(ZD%J}m|qdMJ)N$vC()WcRe-hMv@X3s&3}tr6sK4~ zJ?=;8k{p#0WL@_*PuK#odN!NGd&WRKk);SE5{VKuArwZF1a3&`52A}KKN;v3-Tjj4 z-x`KuJz5Iq`(yT`sVhfvR*AGmQ$}=*b{Y$`NrR%8`1H|(O;@WCZEW;`f1?lhWjyyz zbQLT8828TC2JsLZcX=Fy&Rye|wdH+uf-;Y8E!J$?u*E-ymI(t3R9s6TgU#Jt#uNUT z^yHKr-z^jNTtmuco(NkRR*HP&h1jOK#3(1IuG9D)2jRgX8YE@;kFQYE7s0gkn5OnK zdY)ErZ&IOLs#gB|2TL8*9^{j37Po6)y3|=_=J)J#Uo`5K82=TqM+U3Yy5uodh>333 zxv!EcXByHzFESkO+S_j@F^Bmj9$VKS3|NR9h!(WYKWe;4x2&br3l9JOh#Dm>TrA+q zGkhara4o(6(s1s#&6Pw19ofl$ju%L6rp*E6WnzafkUmI+9B1h|Gfz87(I9qDc33rK zxFaX$15*JDu04|x(}^lxD^HGTBi(W<%cK_)e3RXO;DW_jC41lFPoinRN~qDILX8&P z|8VA`;R1a*=`{uIv6mP*fg$>D8KJ)e8*M;d3m`sX^T(T(KSB_XzwF5`|M^{?HMOBk zxhBztUL!No1C*><$y;GKWbn5Huve#cY%BAb#jdt?nMmY%K-xd-rRIO`pBS2$s-|<= zyLRNhCZ!HEuQJQ(PI{c6MbLw2xu#J$n>8D?RP?-*vhn}yN|mtMdjZ52Wl`KyvJ_W` zVGDH^865$p8EXEGTqP|u{y=DAhyKe&k{*@jo>B8nOmE%C5OtBgyUCg>mx^=Oh@`2C zMUFnuDyAJ|E74tH8#|U`x&~Dee?h3ePC!dWVVcNveJgv+?>dzIC6Xa;)5FqAOH@+zBHQpTX0-gui(ksW9hgLY z|ppTENcoF!V6x-G5OkcgzU(!Di2n|2AB5 zFgPR-R-jASM}8mO!e*j*F~s%!WfWurXdY%oAh_DQyT8FioMwZSqqj=NDH(4WvA(;1 zSG)EKf%|YVw#5vQb>OPSQr++rIp{*=nr(H1V86Y&AGJe84oGHFIx0{OTD1V^&-~W< z%vYeJ6Q#_UDmv$^W%*oPYvhH+lWh^t6N{Pu zkLNUTIpB?{0n#W!Q!E@yIu{@|ZWXfrS!E$()fx$hUCGiiD;V^6J=BD|q7Yn&ikigk z^d&#uxo6=~&pvA3)D+?!yMA`<#<4PO1YDi=m5uB^y=U_Sb^PSl|JGGVkYVFaM2%~d zi&A-Qi8?gtMP>M9z~xp`zVK%lqt^K+uLTbk76Ixm+Ku_5jZl+p3rL5aD5nGR~U$Fwk;Tt}80d z+Hk)|&*5VlZ2_bYuY{N)y@R!Xe@cE-Oafw}AiEg$X1sa4V8KrR>;u`u9Sc2?@&Un& z^zIohu0v&<4{oZfGTQ9Ou%1_oh1<|@fT%gy$UoNT8**=50$im2i<3KjD+ zRxoqTMzr(Y;z9S?n;&bH<8ONN)^EN3t!IRXvew(_4HE-WO&rdp#=ZytjyvD~uMiDf z=i6y0s((1@C6fN9*+PN#uGo`tp5>0pRFqZ@3L-!{5}v=akHY`bv@xb)|8rBDxnS4P zs$cZA_)p=l9Xb0jRYbQBJFylDLqufLLp6a!+>9M{x?Zp37*-~X=KYdodxAW^wVxoaIN|sWsTw0(vZtPsl~7 zTG7KsqBfp#MC_l^UCT&OObv1)k*Q?$?XM;Fc#dMGPw%rT5h)uninSK(63D=?s2|nm zba8K_Nc=n;EuAP&nxD*}$E{mb>@vas+lJT#a_*-FSY>DR_V(-FF(+%9T#Cvb%nB8c zVqsDBi7m}&0th}bHXvPPA;!dFyTAoLQR8>_i4L+d21nYi(A`4@)_&0b8c{7N)<9ZQ z=O3{gktsq=)vFvWxQG3wc=KzEpI0J<)`S z`B%9Q-!4xsYW`h{wp@t!YL!2uow7pRri$1$NxB2@n8et>kN*OahpL}7%urc0c_*2LYCl0 zL=X3b{l5rI#mn8uLTng#aE*-KXA%K-+Xl|yf`sq~l8UPrJ$X5zj7Fy%lR%{W5|rUf zGS7rWqHS@>O%HhmV!kC*SsMAZENi_d9P!3wEH-HL=PEXwG`r0(zE?|45R6(^}R z?ECA)K`lG}r4smPgY`*D2fNrlaRw}RI96&tJVrk3v> zyJo$ExQYZ^<+!7V{~LH2?U%uf;BG~|`ziJ?wo(MsnR098uV|IXn$hng+NRm1ql|J8 zMrJWRbh+>f5PyXfmi@$~RX;P!a*faq>J==lotHB=h&b1upo-W$oz&*j-X#vOt>CqW zyvnj7*;U?%5l{|+<$dTV4PKEqlHzkc%v*1_k|H$~J0X1gS(O-NfM;cTj*# z!s@F_;+!dY$3f2~0py;ttmEcwB~5sKm|z4LSJAfDF8do<+jbLhxU4v;Jnp7t$(wnw z0gbDW!J`7mVf5hth5KynBQBs@=Fx|!oD#^}{X%9HO9RhUA= z7pU>c-hS(5G0SCI``*7`zS*C;zVz}^2*RARb&t0rjhActV>}4=wgy<)-V6`Wiz;9? zW=sVtOjNIrD4d^)`y@Tyym&&Kzq*E+BOz8)oN8ZkR@c$^CbJXHP7q>9S1Ly(D!yjJ zu0$x#AR-eOI)xVCs?j}bQSZJ9QnGA-Ja|4=5#u#^=UN`@`_ zrJINjamA`41g8-Rhb0E2Uh^}HgP{VJ*i#FkA(4q1jOkB3epgduFE1{@fZ)92t+>yO^?k7Vu%lWD94*X8l)|%N5lYWSmaUBtJmQ`1 z!uT4^+0t(4vM20)Ta`TvPJhc3ND&YjzTdg4a{~ZNB4jSOv)SMTJ6I)g^aD#mr;_&E z!viGJ|LU*qNC)vkk!U;Zg>>Ehd_~3Cx61hb0gW{ds225_G6-dc*X6 z{U=>bl`zv0CXzRFpwcPWM?0Q17Vq)bMo!~^54E3UXYEU<M6!VOj101&$JL@aBwj9FjLgJdb?-1} zOw(J^qIRvKfaP53NB&<@jXgI)s0k3^VvybYkjf&1yx!J!v7&pQ{9H{4Nlc;WtODZ% z7?fKc=z~ya9y?(G01b>mpKwJqOh^3GiNmshdh2_)HLX(P(V8KwC_w934F158I{FHd zlVOdy5c6MF*-DTBA`W(oPxBl%ipGH~+grFSn4UBFoFYUjdRdhW)eP2*VS8PFNg~;( zAe)=$^!G#3xo?-d%`AHZed7?f{AvjJsCukSPoX@9zWiLAtXV{9^KgBi`p~jn_j{J5 zZJH!NuSYnhA-8k5GowG&&g?|2A66uA#E|1W;fM&XcJ#%d?r`L#c9e?B+Wtd&r_FgP z5v1Q)`SgHQ1$LXRrbu^r5nWOJNq!PMe}u7u0YcU-CwxO&Wj&aa3KQ`uXOPn$UZmFB zmmpy{%N_6^Blnf(D1KvRs7cPB5Z zY_D*N-gs=WNXOz&2?AblJpVYaT=sFJZhiPH%{f70yRk1nsK26BGv>tqOH57E3v61_ zVMV?^N49EJgiVU1L5<8o-puGp$p6FUL6wrK%DLV8DbE|kB_@fsFG(th3>gquQ&NsY z;=10Xf8d0a^L*f%!j>?X5|NF=SS3EZTS{d2`!cm2E^YJ~ z;3bmKdWZHggtn?r_-*Kj<*J!ql=G{S`gZe7{8^QU z)A3##V}^W*KpWSx#{6><3pnv>vS;3z*C19AA`;pQ018PnAO3H4pWd(U0a;vSZwkC_ zs7woTM59oTbPS~hDt|$6G!GH33(-4z+^gc6y?V)7V`ys|-y@5i8ZuuP7IYNcH(OhUt3YQe0|=n=&6G-I`n(o0pIY93v!>=0u`~HCv{=u=X-L~ z3#y~o6iPwtejP!J3E@C^?lRNZfZ9YIappOyaZrrx0akGgO1R@R!p_lTo!GKh$meCg z;Hn*qSm&O3`>yv)Mm9wk8PD|9-UK$bQ@6$WO^C87&Am1UxszS?4*a}pb6wcI$O$p9 zVtK}Wio^d2Zo$FX&*?YVRMGUQluTQN4Qzm!akDy@z-3{^AJkYrY)iBZ<#NK7>8@>i3sam|o{iBszK{n5eGfC|u1{#+oA2a?yVoiB7Aj_6$!zn6>FGubgO zl{V40v7b%lnv(zVgGgp)iqliBrYRKv1_`yq0OZbNcFfx?U&LiUZTYxEYmD z_hQpg4I&n5i2p1axxAv`E>hrCu>VkQtHyYhHYFeQ4M*6CfXP;pqN;y3ruE z!41`hTkGYq6AiuxwzSTnerj0LQ2f{Dq~9vVzh`*y5(6c%z~JYdfBR_LuhIo>7`9WW za@W)uRw8w`GJ-18Go5;!*AzilgykW;yNMM`;?@Ft7H%oU-)0Gl2gTP>N^BwWj_$P0 zV`-5oP7w9p;XXY1jR!2*<(24MRHC+EZ$>jHDi%$bDPJc>UUXgt8l~-GhURI^b@qQ# zk#PnNNBI|ZUMla3`l^&IelKgQh3}v_A-(3LM#Qt&x=ntuIaoJmv<@i0;3YG%;BHR5yhBg5M9SyX=>X@SEHL7RA!53%-920{D~A zOu=Lo6~tP;c%q46!J>U~vP0MFbR@^nvyJMB>7f8$=?uIDVNWWDX;Je<8V}4UW#B zdMadw^1gDn9tWtc=wp;M=)Yd^b8Q@Nc#!yr_K%Oid@Mbs*R<(QHA}0Uw3lDA?3i5& z8ulLwYmG5-n9+~xh62abm|6xadKV{qvy1rr>sFy0EnAr5U+{y(*%s*@YY2RNd#U~b5VXIp`jdoVQJ)4Us%$^%h-IgctSscSrSWhC3slnW* z`#&8MvlVCX&1e590+ZIofgPCy9)Tc6O#?be+&JRQxDL6O9H7HQiV(6=x zup=$`SwXz40$=Y8{X?0hI~z(XaEnB${Eqb80YWC4&9WTGUN_L9H`X3@ym6ML zQNq`B-#HCL*?!{i{96rCjOXc$Tbj9}`&Ljsb9ZUx=PwW$+=dg!tpJEAaW09cV*G8a zzh)X<9A`2_>A(tPTauCwKPkmOl*6?% zzgQ$}kpV?Z#o$!}YdH$fPu$@)Me3_w2@@hbTK^FfPmYy9uImZMOC16&IOK+q^~$iK zK0cG6kBOO}E+7W%sCEFof`p1b7dICDtW+6~#uy;8GoDx-l!e$elP;l@kE}+fZlL_8 z^45)OYEogqukCQ{IQx!~UUKOYa@go<;oOcsAV#aoFF%;e96N@zuQ$1=<6)^4xH~jU z0xCf3eps~-S&4C+bEu(}~cgSNWnDzo#9 z(BK&CBL(^+UgA<fvTEr_a^BQ0 zPkc*Zo2%Isi{tPEwOGGKz<7cna5Cy#DU`~}J>~dzt8qJA<~!;aXGZdbGO>}1#6aB} zM)SdoB#Nrv>W)zPjcF>(umqTFPGp)j;*jsZaSCa~vzMEUE^5>xWgJT(^>O|WnB9T* zB51W%V+2~W$Bj2|JKjg3<-iK(KdI9WmbKV@C^LW;T6#i_fFGEu5ylyR5A70+C4@2J zp;mM_9J|}Cfn^9?(T-}XP#=ibbd7hzD+bU>QhX$@~Go5pm_{{anz(Q*M^Kvb8OgkqJ zA$8R!RUE+SjNyq2=PRSQ{Wl3_mPrdz3n0KL_j%p=K6KmBc2{v}W8{t~vZlbs*vPoz?QSD4vR4m5-CkZ zPoFoEecLDYnvW`{Q|Qdb0XfnfnaSRNYRTRHb#*h@(6Kl>=>@i=YHctaUX5Xj2q4{T zxPkCCL>@EFX|1=l`YqbQyuG;O?%Y1Qn;|ZK{>uhDE9&{s1pOlNWKj+e-v!5t%F)QS zz;-ze0Qke-wJZwyHeR~AJpjyzuj(0lQsr{pQwpK`aP-#~e5Z9=`NHxi(ei;_@pGg~ z`;Oqrifu7SJ58<^$Ri>rD=ug+3{NQ+K3qXH7J$+&c-Y9K@IURsN{V(%0$KfvCi?=m zf6gYu(fT-|l61!hfW?a8S4)GGf^7ba^Ilmh+ioBO2V~W$PZ3Sga2@o0uTp|wyPwc? zD3{k{+!%hqie*r^yvf0acbGdlaXQ=tgPRovof2Ezo0HlC;YwUnGNNDmsx2yA?4h6Y zKV64BQ-c)Ws_^t-3_5OkYfu6!vKw9i?7t=smif>!)fIdF4SL}(bqvOw&jcARzk)#z zTJ+M+w$fpeO=*>p| zusD=ZE##|thI-mHJid4Y!X;BLzJdXyjKN%v0ZkH+`JoSdEyPb5gNG|kd|wUjT8?v( zXv?3aQkEBE!7>X7N3K+y%=jPsg5J)Iz4{ntNhrM5*m6dXN4sd`L(dq2BKJENJvtlV zzqguA!Ha_$T%B^m=-XWU3NlmVxx&QZ--C``0Nd*$szw2SR;;3dl?TE}6r2Tcq<8Bz zT?vE4Yf0gt6ut$b#E!&BJklP@b`Ft?Hf0-OB(h6e^gv^U4EbH?qRgwKcG}#w~vVn6nE7%nQ}OE_&zPsAb0x zh1xUul-i7!g)w*&6wK(H0A0JhH^}bBI}VcqHeL@$^!mlCYfMv+kEU++`xmGl;9-*^gjhLaIPM@de5h>2xZ2Hy?L}^R0$!{RrhjafdSUjcnX*Ku(p%h;-A)Nlgb<#> zDKOJe1;YUPlFV?`&B$fJ=eP+RZbg1Z_~7GGw(MJ!CZiv_A~~1zI^H={i2pU2 zDxd+U|KCNLjtiK(UpZ3{W1Uv$6Js(;RBTFO>Y0UtrX!1I0xIq>uaI3PJ2wS_exdy% zK5{$ieq0aMc2zj%mp4xbRD+}QLN?YR#IC$@SMn99BD{TDyb$uYb`857@je}z?L%-> zS8SQwi*hg@W7J@6xKK&1Z`0TL6e#z?F#3AJ&1K}?3SZb(7z zSEaa6abMiF6!9JaPC=C%TC6@zcLwM`fa`2-0g`woXk;|xlt{3>JPySR?q_|Eq`d&e zqUnv?15*vvCrzOo;|P0*Fj)F<+RID0D1i8`5q7bdm0RedTNJkWuVw82tbld3Bu95ZbaoLG}1& zywP$(ORED-^^^6Mir|oH?3|ABs$dPs<;uY-BML{d_8XEtBpsz~Zg&n5bTtJh+}Mr- z=M~^l1;2*$VDWs0biQ$_VU~D000pXL7SFIs6l9%ObNgCL^$Wh59suMau+FMV~0&AITqO! zCxUFbTfR4Ui_>rv){0n5kc8pC!b}|L^vE&r9@=sENX=dO`ioCofa3Pp#x`C^B1!Zu zJz|3|{QK+SN;g)D!`O4v{uVy?(o)yR6{&p%t`#b~rS!JVmy_Qj&@eb$}VF1IMr z2B~&~mJGx%TWft%r9(?2q-kLYCDewu$k^mM_)NA0La^OMka|0OD(ZoyZ-*Du6 zW)1G;zs|p6&Xn&nKW|n_rF5umB%k*wv4X#FO7drKpVR-m9v%aHN zFs18!A26rgU&yXg9`Hhu7$J?K90OU*rHzj=61|5q{tJCpB694?FbXEBLhtRsi?dnl z&pL!Y$vh= zmQg}cAokl{QnW21irry#c!W>ty|wl_q6XrcfqfokN|IJ35GA=tZdbC*yS5Q%$TWG* zbt6_!=$6s6dei~$6eiQUitN{ag)Wuu`v2M1=)FH(OlxGenk8ZXQ>7X_zU92VNJI8D zy_Sd18D6Kx&fwv|-9v7#jD`o3u@1sb7lA;Irn+=FLk1_flJ~*m!^)zeM*K~iHT~#| z32>qbaae%XyGz7JahV>46Gw|K^)XJ)YjU7!b<@zPXBcrlUnF7jLL9vW* zjagl5)WPrc0u|Uc%3cD-HMp#;hwVZUz-6n-F8+KS-EY=UcP4-aY+4PaKJZ|85a9)_ z-~ut}HkxJFBkrT>c?XZ$yQqr!HjW1zd+Q-7Qf>?l4-KEEQH&pgo8jYfsZELX4oUvA z(BxratRqiIP^#27Z3JuNz$`1mQqw8uV0DApeR0a>{N66MTZ)&icbhOl%|RXDeqL2gTn z^i6{R88NpSs;_9X0>b-uv&dTP+^KwUSRH_A-VtR$=tLP~o2kvXL0o%Nvf1Rlx61K9 zLYg;*p8ouJhD1&<0$X`dRfD6ciragp4dIoE-B@pa#Y5H|nW%`-cRW?zg@tRE!hP!r zMKDoq^a4!zpsGnTQf_wP_QJ1>L~j=Ox)IQ6w^;V5c{>xNA6Gw6b4WAj>fdcl1V9wrT9smLb|@{>o(twcirFJ zzaelgnRAqxg&o`1+b{wq^aBi(0CQ_uiYyf2;)N6DcqXrIC~$L+n*Qq={tK7bdQd`*kKcN_fDUh2td zN$RJ&+BinQz;;2AYnpi7*|qBqSvP!E1g|cbH0{#$?bl!&pf5m{K+Yv0G8~sTz#fX| zlOq>4Hu2s=a6~$n8eMJ1*~=R`OT*WE(SsiF{i6~%?kIK=_&H$7zpBAVPsTVoW9Ke0 zdex>1WjyJo`-tr+Wg;rxHO{%=_EwNxSqwB&D=+W~d;L;261K625!_6bOig0jKkD75 z{Z}#QjW%|aNA;Y~_v@94_*?hv@5N0;Q59vhccd-7#=V)4blI%63Vtce9Mo+dM|7WN zLHsTZo9rG)Z_6Bko$1cAN0bRD-?+-0TNfK=t8i=)M$%7#%N~${#Wx+-R1HG4L0~3L zHANh2fjJ&uXHl4iA_5>6#ARtGMsQF}JPNWWY*#$cvd#90=WR0|*w2^V)MIymU_yX$ z5W=@t>2Mh5Q)jGTr^xhLlf4)8LYC~Bsh0Hy1$K;C|D7{KfWPBDqYgpFvaD5y#Pcw= zb(p@pfxpDGhmVm69oaVy{`1+9J>w7F~WzTF<@HNm~NSYEia<#v(e9v7^;J zsdc5N=d3;r?)%SmA;WU43b9ZrgD6rjt1hErDfQLeQDkL3>ie%;r!Z1vj=y-KqZOt-*}&HWnSWtIpL^Q;D<(l*?fp($}oBDPx}&Px}f7 z6@wb5#ke6!e+s;7#ii-jcO`H^gmHP&q{)-P=Fjg8IvK&&!Vo-&rxVrg>SnXcy5DP< z1u#8tTe;DKa7Q9{aB*{yib&h8s=JdApYuxAG zzeH)`=zUW-1*2K2xI0t%a9@%5(H*(q>R?Uh?0asaw`Z2#S!GgI>t|v`KeJr=AcO$V zqy@5Bd~`X5?3o-6uPu4!DAe?EzzQEKUK-Ng`|2ftE9vkJ^YP~no~^&%I-xhD!X7%z z-tjp6`!RF=x3Fw$S!sUe)w>h%m)pHR~Qm_T+aG{O_L`*{$FXE`h+b6Fay zAcHmP$WC-V`)4~%A82aY`$nPP)wBve1|gLFQ5Wx`ukNiEZ;9<_4WnifVM&wJb=!PDdo@-*KCSDFv5X&(SjnI-N!Z zbLNR<(A_sOa!=k_$9!GEcq3EenulO~b*6cVG8cyt&>S2bZ<5+dY4SZ=FFt6xi9>$G z9U2=8TL9345jl;;?9oVRja>kN#@p<9(p#-v9LfH7$s;JU6b?~xrY#5 zzce`uEH==~CRh`nWULM|O>kG8OR<#;c5H=N4kKW8qyv^vWNYQifZ$cK)sATaO-Y9Q za(IU@$QbpAxE)@aV}BF^D^iq4jtPWBihii+F;TTBk0fD&MbHo*n=qUA`7hyT^)-o6Pt`Ca`GKXGdvilx0p$`PU(oko=PJ9(+)vHM+9eef!*btun+a4B6A6bNCC8DnBdC0=g@qof2WZT8SN~YERlQm_ESc$#!Tt{!3~cg zg_paBsZ(H1)&y$gW*C*iAawWa!jPeHK;YphHQeA{ZL&Wh9j7=g0)A#}M#yFM7zG0R zQhr>t>>%!n_HvO<_Pc}Racf=#mrk@Xp{gt|c2qJ>6eMW+BQLxeQ!%Yida0bLdq|tY zBF#S|*{*flmH1v`RkUdL|8_)fNCP?4%^qChEf%SecU1%eK;n0TzKz%bm-K|^NKGT> z8z&S&=)l$-1iRm_^3!*OgpRAkGlU;PE?dz*wk4_IzkRe(b2>)$sUL=Qt1Hb}!x)#9 zOSoesT%b!s<&i!5y7q%{n@_HC-@*RVSCedM2Vx_fdf@D6G1R{IZ1EoEYrLlR(DAN;{e2iYgxmeDz9zk_~tk~DAIJ#ZwBU%qQnHref zCAEM)fur|}=hMvx&*dUQ#?6zLF{iP+wAo+%TnSlSKDqg|Yih`1G3CR4>ktnU3<(mZ zkEMeClPk*$?I=9bXu@$qYv$3_HJ;z?YygVl8OmPo6O8`SR>g##mJxq?6KlN^1Dj%? zVIx2Po}l!?Ml-NQy|d?H;Z?Hvz3Te@P7S6BzVQDX7q4|Dzrb`5=b?Ax@={+@c-7|l1Si{2v_2AA|_>UYlf zBN7ULzw9O#t^EMbUs+Xj;k~|$eeXdBvm8n4@ZPthT#BI;`IBwkec#F1$(%zOJ_RrL z`)5^IP5L9z#ebDXBBSq88lft1000JvL7%im5iDo!AA7Up(@~%AzMoicKbrLg)H~yq z*{C18+tcQp)Ev!)WZv^Qx^ORE4)3%$n6o+)MT(=osZN=?);{p@t!ZWff$WAulFeCV zGaBv~#d3fE{0!)X7QLSMr(=LA3U()}IikaK6p^0#dkIMY;ql_Dq^tdwE)b1+3qMK6 zh>x$%mU~(8@hf?rd4gr){_}bepM*~Mn#@Ck>EoE_yi$!h2cNR6(6QtgG^O@_BmF|Q zqd!|8%Zq}&1^?7@IbZHc%aY-PN3KCVSf1F`)uLCSQu77<|5*Tx4`Ub(bJ2&to5BwE zc)qmVEm(?+fKc%>4cd0vAX9rv`LS*4*7KLZK%K?Xhq|AHO{p*&EJCgBRSHC9k4~8d zk@ILY-NFyAQcyfjK%-1{>%cF-XPbE%E|W*%wch`w*Lou6)a&TQ`zD(ZTJ{1#Sho-q zj47KL+?e9BcFAuA>5SnJ;?Er6o2#AHhWzTT{e~VeYsfu$x*ng-nTanXylmVOz#_K+ zzi~LEl3)WPp-IDh=<{)Xa0kMvJ+nW^C!w*#4o-JbBNr2HMg68g6vR?x`A#doCgBm> zPp^NN5o`*7jX*Bad9J1GGe;Jz&*z^Ak1yW0gzel8H7Os1V<6N|AtBhq>i;83TY^&- zb9@R;ZQ6-tallAY%}TD3xr#|2!WhpnwkN)fO|Gu2fC^!om?81;IH^Nrk) z)clEUa1u)2i{Kgl4t|6;?DQ<@PK%I)^qhPA@p_mLLk-F&w^iRd>`}}vIXt?DBe4)& z1}v#D1}N<}EFRGutVz2q_P^Cr36s^N*($LmO4V~ldoa&!%Uu(xK(RQVd0AQru%7oI zgzi&Bi*gQ2dqncEFP^KP)udG^CRWR4ZxH13g!|iWC=I2z!B@(kRcSTM6G^B(#Ii57 z-92-J(r3QlM-(N8_Ql`k9FLsU$^5Il-|6gUk@ZcHgKyA32n`x=vCg%HkuWzIdF8wd z__n|A{cKve=MydR)qli1C(XCP@<-W`XW^Y$&>hqH^@DSfJMhb(5~4f~KR zfO2`Y0u`Z{Y3Vv0LK}bJ_S3+zpXYZ7FyNZ=qn@@7)xcltAnsu$9LwV?aittIz3Ffc**EWneB#L8CYb%`W%&7_?8 zMJYQ?kUak@!4DM+p!}mz-($VrVdgi_9iXZgrF3dw3<&*!JQ3#?qdi>u8L>ENDYosv zsKOIdqL?9*5fvVk(S0#L5$Y{vsWh38Y4gS@+}*|n?Y_UTK?y&BS(3J%y(p7 zu;~l;>m*%uWXYzTw`s{4@9GA|otH(k@}y#Ye3Q z@_Bi+_?c$rc3 zaZIf8{Pm%nXH$3=*~``GFz*J&g|JO*_>o%~+b~o+?|hFewwyS<4%lw+#drlSTn4Ur z5pab87soA|lZg#YABu8T4>gde3s+6Yk2q#RL7hSVD$o{tR4*EM(tEZ3Wv$qVa-ohR zt-f(8JFj=O>QGh?7p?UOtWYUH8+Nx@a@?5eHK`>*b8jA~#Ldiy?SOtx6K93~wp3$0fQb}I5+*&Vv#`*@@ zojMFFFz#*_8y7P6d;3NnmI3gw!rK^3ckStn|2Hr$QNZxgI|eTLlHSxziSe-E=vG{Z z=B4qjHMbA)h{ZI1*$*ZR(=j7{dR(1&c9#ry-GmDvWAL-OIEtP z@|21rFbx@xMJM=DIWM?NXO@*Qqj*dE`~TSg;NVc5wR?d4=8YQ(2LP!NTu}`L)Qzby zzE02nW@?wb9@hv5Thf152%qLR^S16OdfsD{WR*+7E^HF5;?)CJlhk=9i z6PYz#%P@ZI+{!6AW|4H+oyPhaYEJmDc6wEP2m&mw7e1Fdmep;b38sMt#Ge*~V z+&pnfg_AQQDTF)VYAvt2T33ldRh)}Mm0Wq!xzFIflMFcu%uW$eTZnu~D^!(-&7q91 ziC`FH9QC~=G*U0TVxIc$4%7G&jHlJPGey)gJ7jnmBzv4VOT1#Fu;1cwU=oP?g?D=2 z71nfbv$|>RUsi771modmD6WK_>-BRI{OO5!LT7MyedbG~19A#o;2R|CROM=BzcHeH zI*Z8Wr6cvi9eTY2`_wWow}^+MxVz%%A1j7aNSTs&Edv=9w3hg6@Ir(aYjYHMHY33j z)P!W@XDL75F^v`5>hm?{Z#G^YlyQc?+ZEUv^2FrYAhiIgsfMGkr}-va7=HvsTOPbx z&*`OcN%lEcso`piN6laMg)Q*}S$mm4W>CHBq`jRdDM|K`*wFle}$>fkMd3MXl zZgCrCu{U)>+pd%bZ3k`-Td@OCf{)6@aIXa$8hDVHGd-FnPoe8x2dXYzr?#s1!+W$fDe!K6&H8v;A;>ir!Q*W(&0Nr{PK_=R-W^K1nNdtgum`V!FbMxQ9r z!j5c0e9v{}=<>jTu`3!J2v3QzJs$Rg(?eq3>>qoglZs&T4rJQE(5RkZNCr;>g!P8V zPI^Yf?kwm7t+_buee%vOZ_d6yYMz+Ln{X35CG`00UnE zpVewYANU6+u25h_?m$A@UA^rfb(2A?lzxJ!gwZ>{Hikx1kY5XaxI3;cW z_962z0(&6VYkrs5{e9-R`C1W#w1*x75K)CdWuYBDfDB*y7*@Ol+JctwzVSu6S>^G$ z(!s(HBqq=3as>!_vv)Vr_SZyei3Fuaygy{354Po+dTn1C2z<#y&e!|yFNtOayu4~8)u%13kN*DO8e55 z%oVxW7*Oj-;RN|%jt+QbF_Td3{Z6-3k01YJ%v;C~=Wd~7w82n6V}DhAHQBc3yeIwe z!xe4I<}MstFYHVsY%*Tz1#(V+f;8#qxl0gZQ#pJ>*AepWF{{sQTS&Fv6NV%d0tM!n zU(XeYDwM_(Wn#s;!Axen%ofr=DL1kj0jD=ATJ1ovs#NzR+*&6=IrPp=ju@FxvGMv^ z5(a2iW2-FrmspZ9{p^>|;pN}XNe9?Y?v7%OGHdFDT126{m3W$*B!tQN2g z-VqIaWg#U`>TG=FPvWY}9;2DKbc)(S@N=)?coWg&x2}7!?QZ7P%e*p#f&o zgUCgg7PJ6d4zFdYGM*{WcN5*T0#@oK5jLhvsID^v9mI3X|G((xw2|RRS-b48-0Z#i zLvC|VqB^Mm3k>F8yn{SpM~@4575;8(q7lJ^#qhp4{l#HxYq=y&k0{(Oj0ZoO%V_i3 zG>qLTdYwrks(&U)q1-TJ+b&PY2stv9n6j!_s!^|#8biIE-M z)uds79~viOj9K5e!yMHGQo!|~H=ixxSnr(EIWcq+2fbjsD{epFKlzq_q}is77&_lJKdkNH1Gfb32Q-{*h{EF5L+RQ2iOoG_(UHt z6iiq8M=6_V*S=$D=!l`-En3=8R5tCq77kkgunM}Yb^`uwaj-$dw#laEHixSxtpH6$tH^3xTI8Mo>#^8I(6BHce=9huXClvvbf%C2Z5Fc#UWcG!WU{3*9`~AupUqEfrMDH`hOUH^`#)(Pbtkl{;5y>Cmn9Ttl+}3FjqB@AVc0;JOKu% z69O|O`wF+O-l&MZLg=q96ij0PbJv0kcT>@_J;B#!o+qZ%#0BXBTt(ckYsz_E2gnG; zva}|Dcimj#quA7ZfU@HSJ1(sK5GWTYj1=5FbaGNg6`g*&)MALjnPSn<-;s_AJCS!bg8;p1qppz2FKntxxk7pj ztLaF*tT7_?;y!!Xn5!S~85tvr-3mP z5x7eYTjt+xx3#oFsC8Xcqs?=>x{5egI;r75HY~9q64pmV5bS#$Pt5ClF+Z8YumR2_ z+^g;ycdzlWG#i&RE%qYRzU?B|b1jQ?uHnCqthCNZnK9+c6pgXjtlE*x(8>?r`l_wURiwW3czB?SZ#=<<{|zG+Xg7 zKDS;)5DlMOmsmFUw(pU%2A4=9(2L#!I8%a)kmgHE)HveNgDI& ztq4)wj+uRkG5ha~xY=CAW$$1r93)}T&hy;=uWP?eA6(-|C~euMlc>Pii%Gn*`sf1e zXWwuXEzj4>^@c@0!f-qQ( zd7^5Kf8~RcnHfKz)!!%9_TOLf>Ba>}}}CuSgZfmJp>jICz? z*22Qb)Fc40c0-?8%~NS7-vYA&9IE;wux?A1MYk^=A1fRut&DCTxjb`YNjbNPhmx_# zf!Sa4ANTly_L1@R(nU9#RQg2D;bc%*$~HU?RicibsX$-EgScm0eN-EP^^UTiu2O+J z_#INh_gG?`t^c;TGIl$q=0+xp7xA$bJWJI+-8XWbObB7T$sD1>BU{;G6!|G6Fug}D zuux8l1F>WM9q<#5R1B_O;1eA%78LxZ6xqDvY2IropTVdZWRb%%G56?v`#9c>{K#38 zPLb!1Fl_D(#5!RrqR32NS0FJ-OSNqA;L7)+q;K*GJ`G2_^Ge7GOokU466B}u91JIFP6?vpM3#%l(w9@HMYfAL zdOCQg9dEf=Bm@2VVvs^L&I#;gQF_)%1>J?=bGpxkTa2yO`wrK#zSiWXyHLRc6RX*N z6l-3(LQv!aav=vMAUeJ9kp66623x7uKD1JrR=5!(BK|>Q$m((w2ulVj(&SU%eb9T`h`(+Bzmwr4ih7 zH(NaT+gE5MA^+v$L6(VtBVh#gc>xo)rqw0J-tJf0l3}QrN;F%Ug6(tQ&ajHf^?>SN8gv_~TY)&pV_sZ5@xWUrYcJDr zNudZpn!x$w^M|ZedcO~DrwQ`A{iWM|rzi~ksK+wFm+n5A1~>{u|MXbQ1V(@rkL|;W(_j zu==4Z{H2V864&5T6&`cvK_n%*_#;!m75fY{Cyqm1NA#mes0%IfX6Z<}#h};aAA?~Y zmf$IfOZGlNopQnKBx|_I4QK>JdIf(z%YnR!Vp~V`iMyhGJ@`xxt_aIDS6U)XE7aH^ zCQOq9BbLpoHcAy*+VykY)o;em((eafOB$^Z(AY1^5k4N+h7?qHNEe045A`;xK}_M{ zJ4{w>=F$H0*}a_#G;2^qgp@PY<8%^4WPg6e4|8Rf_SW)27XhFlQW2<#8tOAl&h-aA z968cW9AX5zWM05lSIC)TYg-SK>55c8baG>y)&OV;Z=pR_<2gOfSDxrhkH}Pz(kF6? zVE_OC908yAYDa(T?RsoLh*F{ps&esG<;zc7_=)O^!2kdep+TGcN#P1oWiTfH(mHeB zo0#WO&Zyo})xk%ZizF)X5v}O6$bWPA_yMv`wvA?ly8fjI8e!NF5 z;Phi-{uu=1b}5AeP{FA?mI$*j@cz6N1@G9NMF_TUs?5h5FJ%g z0vZaH?_(LEgF4pSaBqTRb+JJf>>;-^^=4;HGmB-eh3Fd%-56Tb9!5HG#nWv!CY88_ z{mg?K6DoXsc~*B>Oo3${1*z@`hDrq0Sf-~Mk>ao-T@^!#PT+c~h-hTa_FVIu!|2Mn ztjWazhgxh)N4)4FfZ==6Y+-g*G1+_%NYVg~K#?gxUrhPX7-g3oN)Oh-Hvt<9E z#BPM?1Y}w(w!nGll-ZmpS`h-7CMjf}=y@)A zpSgSMK4BHUs%2To|{?~(La(aoFonU=n96ocJ0SN;L z#o4ZaF33`3-XS2mA6}t4YM6>y!Vot()ZiSel7I-E5rHIGHN1NEj#Cz9<7_Oa%nPSg zYeD$ScYJu1Flyi~uCO#B0qDE3LBtbM3II8ZyKl~O@if%Z!n-XpLeCAU7U=IL$>V~ebIAUz)&#mn>P^sd@ zEa=MM8$4yUcth4x_ikhXG!O2Mqu45og0Ub+*FvMGb&g&J$-M5 z8nA>iqA3KJ%^1a~6P6nQsvFt>U;;+Iy6Mie5CmmR#mv6RB_KIETncuJ4wyrv&5BAV zsQ_ukaj3=RH;mMrY2Up*?03Q|1Rh-~gWyQ*Exy~|V4?a-OpPaR>}l4uLWnmYuHqx* zwnDN3@XK@gABBeXs#$3@Txa$a1#l2pY$8v6llg{EkvZ7mvWOZAVL5xCr;VY~79axx zzh|rfU`f5(RlLZUW_&^hk&5_Qqu1INDv`8t)rDIsgFERZy#6f!P9p_B|syof)Jq~^+5`Y@?)@|a)x>iN7b?+hu&s*a2oaz~tg-Cc)B~y@qPo$=n*zay)2CL}w z028Ick<{sHdTtw>r-N>PxYowHfuNlaqM`4$QQvBDMk|E~24cF1E$;B;p7HrSif4xh zG13cwQ{|;rV4m6sQLH=NxQBR`TF$vcy(ynCXA?FVSyw6c5a&S&L`@?o`P!#N;R-#i zSw}l8uM3}w!w|*LvH_YCnA@aW$Fuh=^ayqxNLkBp~SYEpC*#15#TAQO2m z;WIb#FDUhl@@WXWS!&GQlwcFW@NJiW(i0DYB78dmGPj6AK58JTEncPXIn@iXz>wF| zvD>9%eKO%Zv%(^6j1WoPsaxP`e21)sE#F&%rHiw1rEcFEhHTW>n4x(}1=O12aj5p- zb|QI7>#3O__hP%WJPL<&8}02sWTpCQFGI3i7M0KA;2WcOL(00Y+2qek&kdHaL_P2| zf-@js6KnL~ICmuBkyd6_a;r&B6f^enpyM|X?&DB?`rj&tjI2AJe6lqT^>=`w!Q?V=Nh6cqP2ER4-+^AS_}>C{8K&< z_HEr=H(0DQaZmeU0Lt^709-j#IhQNW@BLmB1e{Mw9^GCEl( zBu1g5%koceMc3Kw=Ea@-i2|(f`N7jMy|!FdDKYTI&>!ezwsmdwUrtr1@3%9d1@NFo zk)$ICTrVYXm2Z5NjZZ3TS@({P1F_wC2Z_+#B)${`z4+R&w^5`GJYWf>5ZgYpC^*f^h(S_meG@c4?qqAXV-bP=Z{GB}=6XV9iNZBCwmGZbfe3t;my59scFQ}VM zK_X5<{?R5xGoW=$Z}S>#8kozFZ-5JhnaGMFCj)kQZ5+Z6@B)=iI3A5R1IL`oL`l_E zaw0}3jKlL;V!YrVGxtQ0wV2-<*-v)S6W%4m?#AP_V@2D}GHiAT+JStyLCAa;i+3Qy zCtk>h_910-sE%TwuiIAIN@_?dRck4aZt3SyGUDZT@!4SH``qXv>$%sdHB&2D46?M> zThEmm@O9)A|3WpQgskMQ_!|Aq!ny@?v&-AAKLVNlxT%2b`CFqBnw1OYHOHHm+B!2Y zRTn1r4Z3W};wPt~BA&?{QZj&J%B|}acGyg6Ow(14#R;zp3(uev@II{_mAfwYTT zC`;%1bxnka*J*f273~;+E&El$riuMPh7*uCFmkg*w!`h=B{sw0Jcy?+B`iq2JJ&j$ z7>MX!%scE1V7k-Nw2r9SBSBa4ZFQhPt+vd=#v4*?>YXwpf7kZMtf9wIIIUaae;?W)Jv%RSaH&`DsB1UmkCdeB(xz@!U&Ot4~ zn#FK~&-C-0xLRiDrl)rq{8TAfHvsOD^{1PbOmcol?jzT41Hl*=YcD`t5O#o7IQl~} zfGHOW`s^HmRQ^ScjNgjZ9&XI;Gn*8zM(TcoHG}Ie*vT|&=78j@;}T36ooOfSfPej? zCXxtTDXS#gd$GLG)f>*JRw*~54SYI1&o8$L5LK>H6ES@dOHs%C-KI7A5Pg)~^)vl@ zCpvXT#|>AjZqKR@;6SYt5iN}?X;6W=4X$@*Ij(U~_gr*^BZLV&-SM-8V1uj`Pq z@g($5RGb41Tn0rLM=IB@7x+ZS4z^y%&+HdKRE=al`-wMr{c}f(^&^{wuYHwSGHn+u zb6O6hcqd#|FJDU)FmpDkrC;IKCC;7BaAeYm523R}|01!e+u}Mz;@4)9#S(G7MtWk3 zqN~SX7wa>(1!jwEXf>y2R^Ir$bimk~s0Fu~462wJ!a>tz3hTfholyUcofP($bdOuR zOE}mrL7}($pJHgOvQ`g(IaBxJ*<$%FA(3qIN>Z&iw@+L$de&Wokdh;@6?>JjY&iiz zYcBTj7CJbT4J}NexY}}U8Sjc?&$a?B|ANo5agwA6{Po;dP{O)bEfinDJ*>xpB!>E(mbXb#8P-N@ni4BO*Gh51~5YQmh+%lERE&7Jo?hEmEp;GjD8#H z;PcfP@f55y?EiL8YjSd1g{w-pN)CF}ZVE>`T6D=#$^V10ZuM)8S5;H#W7*-e2G?$ z0W{>!Go>)_=Bnb!0SO=?{J|69oBrsx>RM=_USPH3892%DAG4@cmoLV(zv*ApjWtLp zR=J^&=zj`^5o${`bE9@S;4PNIC|H*C1i9>Is3?`J$|B=8b`If);yQpLI`jXN4FqmxJ{lqullgLn|1AsO91q9M$GdQ6x)2k=CL6j>#FEY4!D=4 zvYN|O@NVlJd$Zt0GnMz zWG;$=7~nFHTVr)2;>rb370xV~+fnHn)F7V6IMdhKT{C!xa)=0p?bh}NvL5T!z7P?T z4BkqnU8Vf@51mJK%SB*|7X24Tei^9)RfD`T=@@7L00tXDo*G3oOlSQ zNGc;_^&77mdhP>oP9-#Pleu4)BejcOS#b#&SR4dH8dMtLQi|&CGnCUo`S<>G-ilOD z9rrt$ohn#bKg!*)=W(AQ5Ptq4q8|#|3T@RDGKrHDb8C2_Y>N)L)q>lGRD3qGlC5wO z!8ML(Vj+co6_n;oAEJ&Ey5GBZU~fFFx0Jo4!}K z2m>iCoN(oP%|z>Y5VR2M+Q*Ylt(?=a~w*y%(kzXV}L=OgP2l<_X@6> zFH+}h;*7+sU`mujCb+0?o*EF;_8#_XjG*TlG}^8L=rd<%4R39#1fWw&2dB>tVGJ~% zjVs$Z$CSfM_Y#q;o8+x#vVz^c%c@@b7ueU)$)sF9_+j?v)PNUZ*>F+>0mywlvSMVE zogp&x1Ol22w2G=F=;e8NZt{6Yqt(*d!8&K9)drOp&PY>lz@U)yYxxFAJ7_{_8~a+? z4`%*XVaAG5PHkEQ`oW=*pwF@_NQ0#{jeICHHt%;Q>=O#Lc13Z@gVpOYWJhX=t z4hU8U(Nar3ePt1t=?$hKDEcHj#s1QLFu}KQs;7M)Utz zFOGm`>D32Ir&%TLq7&GaECzX6rk}AA4KVt9Z}Ha6=H^vJ9V*{nbV1_0ht#m8BQ#cHpotx?+4yY?>AE6gomqKnG)!#HK;qCR0o4 z2R!X^4;$@_YS1c>fOx6e>*WuhA8b)EsQJYRb0+y1a&~$uCyKAZHmX-4WzswU4ihMX zac;#cEg&>2I(Sa@M6=8+*vlQuRoh7q6}mN?gt!G<$R2VFn3y&V5)>*pYCSoDR2=*B zZ$r-VUdpocT#YI&g4=80Pf3vY`sD-yZG=>|C{DeDIUwMS`VPeg@F%eb^&lbT`*HMM zIOIMENi19(qSA^k3P&TU?knD7KYb*lSQ_uC(rvPdDE^FG_&uO;?I=QQ1Ud zPJibBE6sA3HZJEaFRF!b^!f&f#WZl-@vbC~OXczMFq^CAvQ+lWU7hii;WTSnFz@<2 z<^^i7&UvCc=o0X=qv)TxlAI5a6h~(SNww|pV%#dNEu&Bkp1^mX2WG&UZv1)oIXv|$ zI`kT8hXs#lw&#pmp!7l+oI@m3F27blYk?Qcl&z&ef%3D`YQA0cjm1kI#PURwgTcy! z*4jh(F{nC=BP^yDTcl=n47HtGz`;iIt0COD98u&zme>a2#k)(9fW?I(vO5%$pO%O{ z{&Z$3ZF3wd1>`2NZP~=0unho*UZaKStl06~QbRNV(s<9rCQNF6Jzp7%C;MvMIw}Ue z2NXe#)3-e5^uvAJ{{5U4kl#VIt81#|=n1Z=F#}qMD{DW@FM2&qs4q2Ct^owL>Xo4A zL7BYC5?OV!5!c($H$B?BuK6ZuIirnA8-GQJ=u0g##WE=&tiGSwR9;_c>)O7c{{C*C9$KKW;3pTHzvoBaHNWA9x7WJX$a@CP_?MY8abQP zGaP%SttIe5oCkPqP442)tL_mEqLnlZVaBUmbF^XizG}Rgrb!!E66UKjlWpQWcYgvG zkJTeeX|KFQ!R;`)|HU|}dkziAD?QG0*tq#G)79S_V;iy)Ph3;A;Ol3z%aSX>~rfozk446)qbk^FE!yCumr<$r; z!Z)Hbm9Meni$kG0fM7{CfE_%@TQL8!`rWNUsI7CGm`8wP_WHmA2l&h=E8NE(5by56J?kQMf0}-qB5nAbx^2s8P5@mn@00P

      m0@ShC4>dk6SY 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

      ZmW#uvWM3Mr!T|L??w+81f5wi8hU#CnzF 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 args.det_score_thr] + results.append(result) + prog_bar.update() + return results + + +def pose_inference(args, frame_paths, det_results): + model = init_pose_model(args.pose_config, args.pose_checkpoint, + args.device) + ret = [] + print('Performing Human Pose Estimation for each frame') + prog_bar = mmcv.ProgressBar(len(frame_paths)) + for f, d in zip(frame_paths, det_results): + # Align input format + d = [dict(bbox=x) for x in list(d)] + pose = inference_top_down_pose_model(model, f, d, format='xyxy')[0] + ret.append(pose) + prog_bar.update() + return ret + + +def main(): + args = parse_args() + + frame_paths, original_frames = frame_extraction(args.video, + args.short_side) + num_frame = len(frame_paths) + h, w, _ = original_frames[0].shape + + # Get clip_len, frame_interval and calculate center index of each clip + config = mmcv.Config.fromfile(args.config) + config.merge_from_dict(args.cfg_options) + for component in config.data.test.pipeline: + if component['type'] == 'PoseNormalize': + component['mean'] = (w // 2, h // 2, .5) + component['max_value'] = (w, h, 1.) + + model = init_recognizer(config, args.checkpoint, args.device) + + # Load label_map + label_map = [x.strip() for x in open(args.label_map).readlines()] + + # Get Human detection results + det_results = detection_inference(args, frame_paths) + torch.cuda.empty_cache() + + pose_results = pose_inference(args, frame_paths, det_results) + torch.cuda.empty_cache() + + fake_anno = dict( + frame_dir='', + label=-1, + img_shape=(h, w), + original_shape=(h, w), + start_index=0, + modality='Pose', + total_frames=num_frame) + num_person = max([len(x) for x in pose_results]) + + num_keypoint = 17 + keypoint = np.zeros((num_person, num_frame, num_keypoint, 2), + dtype=np.float16) + keypoint_score = np.zeros((num_person, num_frame, num_keypoint), + dtype=np.float16) + for i, poses in enumerate(pose_results): + for j, pose in enumerate(poses): + pose = pose['keypoints'] + keypoint[j, i] = pose[:, :2] + keypoint_score[j, i] = pose[:, 2] + fake_anno['keypoint'] = keypoint + fake_anno['keypoint_score'] = keypoint_score + + results = inference_recognizer(model, fake_anno) + + action_label = label_map[results[0][0]] + + pose_model = init_pose_model(args.pose_config, args.pose_checkpoint, + args.device) + vis_frames = [ + vis_pose_result(pose_model, frame_paths[i], pose_results[i]) + for i in range(num_frame) + ] + for frame in vis_frames: + cv2.putText(frame, action_label, (10, 30), FONTFACE, FONTSCALE, + FONTCOLOR, THICKNESS, LINETYPE) + + vid = mpy.ImageSequenceClip([x[:, :, ::-1] for x in vis_frames], fps=24) + vid.write_videofile(args.out_filename, remove_temp=True) + + tmp_frame_dir = osp.dirname(frame_paths[0]) + shutil.rmtree(tmp_frame_dir) + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/demo/demo_spatiotemporal_det.py b/openmmlab_test/mmaction2-0.24.1/demo/demo_spatiotemporal_det.py new file mode 100644 index 00000000..78dd7bca --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/demo/demo_spatiotemporal_det.py @@ -0,0 +1,421 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import copy as cp +import os +import os.path as osp +import shutil + +import cv2 +import mmcv +import numpy as np +import torch +from mmcv import DictAction +from mmcv.runner import load_checkpoint + +from mmaction.models import build_detector + +try: + from mmdet.apis import inference_detector, init_detector +except (ImportError, ModuleNotFoundError): + raise ImportError('Failed to import `inference_detector` and ' + '`init_detector` form `mmdet.apis`. These apis are ' + 'required in this demo! ') + +try: + import moviepy.editor as mpy +except ImportError: + raise ImportError('Please install moviepy to enable output file') + +FONTFACE = cv2.FONT_HERSHEY_DUPLEX +FONTSCALE = 0.5 +FONTCOLOR = (255, 255, 255) # BGR, white +MSGCOLOR = (128, 128, 128) # BGR, gray +THICKNESS = 1 +LINETYPE = 1 + + +def hex2color(h): + """Convert the 6-digit hex string to tuple of 3 int value (RGB)""" + return (int(h[:2], 16), int(h[2:4], 16), int(h[4:], 16)) + + +plate_blue = '03045e-023e8a-0077b6-0096c7-00b4d8-48cae4' +plate_blue = plate_blue.split('-') +plate_blue = [hex2color(h) for h in plate_blue] +plate_green = '004b23-006400-007200-008000-38b000-70e000' +plate_green = plate_green.split('-') +plate_green = [hex2color(h) for h in plate_green] + + +def visualize(frames, annotations, plate=plate_blue, max_num=5): + """Visualize frames with predicted annotations. + + Args: + frames (list[np.ndarray]): Frames for visualization, note that + len(frames) % len(annotations) should be 0. + annotations (list[list[tuple]]): The predicted results. + plate (str): The plate used for visualization. Default: plate_blue. + max_num (int): Max number of labels to visualize for a person box. + Default: 5. + + Returns: + list[np.ndarray]: Visualized frames. + """ + + assert max_num + 1 <= len(plate) + plate = [x[::-1] for x in plate] + frames_ = cp.deepcopy(frames) + nf, na = len(frames), len(annotations) + assert nf % na == 0 + nfpa = len(frames) // len(annotations) + anno = None + h, w, _ = frames[0].shape + scale_ratio = np.array([w, h, w, h]) + for i in range(na): + anno = annotations[i] + if anno is None: + continue + for j in range(nfpa): + ind = i * nfpa + j + frame = frames_[ind] + for ann in anno: + box = ann[0] + label = ann[1] + if not len(label): + continue + score = ann[2] + box = (box * scale_ratio).astype(np.int64) + st, ed = tuple(box[:2]), tuple(box[2:]) + cv2.rectangle(frame, st, ed, plate[0], 2) + for k, lb in enumerate(label): + if k >= max_num: + break + text = abbrev(lb) + text = ': '.join([text, str(score[k])]) + location = (0 + st[0], 18 + k * 18 + st[1]) + textsize = cv2.getTextSize(text, FONTFACE, FONTSCALE, + THICKNESS)[0] + textwidth = textsize[0] + diag0 = (location[0] + textwidth, location[1] - 14) + diag1 = (location[0], location[1] + 2) + cv2.rectangle(frame, diag0, diag1, plate[k + 1], -1) + cv2.putText(frame, text, location, FONTFACE, FONTSCALE, + FONTCOLOR, THICKNESS, LINETYPE) + + return frames_ + + +def parse_args(): + parser = argparse.ArgumentParser(description='MMAction2 demo') + parser.add_argument( + '--config', + default=('configs/detection/ava/' + 'slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py'), + help='spatio temporal detection config file path') + parser.add_argument( + '--checkpoint', + default=('https://download.openmmlab.com/mmaction/detection/ava/' + 'slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/' + 'slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb' + '_20201217-16378594.pth'), + help='spatio temporal detection checkpoint file/url') + parser.add_argument( + '--det-config', + default='demo/faster_rcnn_r50_fpn_2x_coco.py', + help='human detection config file path (from mmdet)') + parser.add_argument( + '--det-checkpoint', + default=('http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/' + 'faster_rcnn_r50_fpn_2x_coco/' + 'faster_rcnn_r50_fpn_2x_coco_' + 'bbox_mAP-0.384_20200504_210434-a5d8aa15.pth'), + help='human detection checkpoint file/url') + parser.add_argument( + '--det-score-thr', + type=float, + default=0.9, + help='the threshold of human detection score') + parser.add_argument( + '--action-score-thr', + type=float, + default=0.5, + help='the threshold of human action score') + parser.add_argument('--video', help='video file/url') + parser.add_argument( + '--label-map', + default='tools/data/ava/label_map.txt', + help='label map file') + parser.add_argument( + '--device', type=str, default='cuda:0', help='CPU/CUDA device option') + parser.add_argument( + '--out-filename', + default='demo/stdet_demo.mp4', + help='output filename') + parser.add_argument( + '--predict-stepsize', + default=8, + type=int, + help='give out a prediction per n frames') + parser.add_argument( + '--output-stepsize', + default=4, + type=int, + help=('show one frame per n frames in the demo, we should have: ' + 'predict_stepsize % output_stepsize == 0')) + parser.add_argument( + '--output-fps', + default=6, + type=int, + help='the fps of demo video output') + parser.add_argument( + '--cfg-options', + nargs='+', + action=DictAction, + default={}, + help='override some settings in the used config, the key-value pair ' + 'in xxx=yyy format will be merged into config file. For example, ' + "'--cfg-options model.backbone.depth=18 model.backbone.with_cp=True'") + args = parser.parse_args() + return args + + +def frame_extraction(video_path): + """Extract frames given video_path. + + Args: + video_path (str): The video_path. + """ + # Load the video, extract frames into ./tmp/video_name + target_dir = osp.join('./tmp', osp.basename(osp.splitext(video_path)[0])) + os.makedirs(target_dir, exist_ok=True) + # Should be able to handle videos up to several hours + frame_tmpl = osp.join(target_dir, 'img_{:06d}.jpg') + vid = cv2.VideoCapture(video_path) + frames = [] + frame_paths = [] + flag, frame = vid.read() + cnt = 0 + while flag: + frames.append(frame) + frame_path = frame_tmpl.format(cnt + 1) + frame_paths.append(frame_path) + cv2.imwrite(frame_path, frame) + cnt += 1 + flag, frame = vid.read() + return frame_paths, frames + + +def detection_inference(args, frame_paths): + """Detect human boxes given frame paths. + + Args: + args (argparse.Namespace): The arguments. + frame_paths (list[str]): The paths of frames to do detection inference. + + Returns: + list[np.ndarray]: The human detection results. + """ + model = init_detector(args.det_config, args.det_checkpoint, args.device) + assert model.CLASSES[0] == 'person', ('We require you to use a detector ' + 'trained on COCO') + results = [] + print('Performing Human Detection for each frame') + prog_bar = mmcv.ProgressBar(len(frame_paths)) + for frame_path in frame_paths: + result = inference_detector(model, frame_path) + # We only keep human detections with score larger than det_score_thr + result = result[0][result[0][:, 4] >= args.det_score_thr] + results.append(result) + prog_bar.update() + return results + + +def load_label_map(file_path): + """Load Label Map. + + Args: + file_path (str): The file path of label map. + + Returns: + dict: The label map (int -> label name). + """ + lines = open(file_path).readlines() + lines = [x.strip().split(': ') for x in lines] + return {int(x[0]): x[1] for x in lines} + + +def abbrev(name): + """Get the abbreviation of label name: + + 'take (an object) from (a person)' -> 'take ... from ...' + """ + while name.find('(') != -1: + st, ed = name.find('('), name.find(')') + name = name[:st] + '...' + name[ed + 1:] + return name + + +def pack_result(human_detection, result, img_h, img_w): + """Short summary. + + Args: + human_detection (np.ndarray): Human detection result. + result (type): The predicted label of each human proposal. + img_h (int): The image height. + img_w (int): The image width. + + Returns: + tuple: Tuple of human proposal, label name and label score. + """ + human_detection[:, 0::2] /= img_w + human_detection[:, 1::2] /= img_h + results = [] + if result is None: + return None + for prop, res in zip(human_detection, result): + res.sort(key=lambda x: -x[1]) + results.append( + (prop.data.cpu().numpy(), [x[0] for x in res], [x[1] + for x in res])) + return results + + +def main(): + args = parse_args() + + frame_paths, original_frames = frame_extraction(args.video) + num_frame = len(frame_paths) + h, w, _ = original_frames[0].shape + + # resize frames to shortside 256 + new_w, new_h = mmcv.rescale_size((w, h), (256, np.Inf)) + frames = [mmcv.imresize(img, (new_w, new_h)) for img in original_frames] + w_ratio, h_ratio = new_w / w, new_h / h + + # Get clip_len, frame_interval and calculate center index of each clip + config = mmcv.Config.fromfile(args.config) + config.merge_from_dict(args.cfg_options) + val_pipeline = config.data.val.pipeline + + sampler = [x for x in val_pipeline if x['type'] == 'SampleAVAFrames'][0] + clip_len, frame_interval = sampler['clip_len'], sampler['frame_interval'] + window_size = clip_len * frame_interval + assert clip_len % 2 == 0, 'We would like to have an even clip_len' + # Note that it's 1 based here + timestamps = np.arange(window_size // 2, num_frame + 1 - window_size // 2, + args.predict_stepsize) + + # Load label_map + label_map = load_label_map(args.label_map) + try: + if config['data']['train']['custom_classes'] is not None: + label_map = { + id + 1: label_map[cls] + for id, cls in enumerate(config['data']['train'] + ['custom_classes']) + } + except KeyError: + pass + + # Get Human detection results + center_frames = [frame_paths[ind - 1] for ind in timestamps] + human_detections = detection_inference(args, center_frames) + for i in range(len(human_detections)): + det = human_detections[i] + det[:, 0:4:2] *= w_ratio + det[:, 1:4:2] *= h_ratio + human_detections[i] = torch.from_numpy(det[:, :4]).to(args.device) + + # Get img_norm_cfg + img_norm_cfg = config['img_norm_cfg'] + if 'to_rgb' not in img_norm_cfg and 'to_bgr' in img_norm_cfg: + to_bgr = img_norm_cfg.pop('to_bgr') + img_norm_cfg['to_rgb'] = to_bgr + img_norm_cfg['mean'] = np.array(img_norm_cfg['mean']) + img_norm_cfg['std'] = np.array(img_norm_cfg['std']) + + # Build STDET model + try: + # In our spatiotemporal detection demo, different actions should have + # the same number of bboxes. + config['model']['test_cfg']['rcnn']['action_thr'] = .0 + except KeyError: + pass + + config.model.backbone.pretrained = None + model = build_detector(config.model, test_cfg=config.get('test_cfg')) + + load_checkpoint(model, args.checkpoint, map_location='cpu') + model.to(args.device) + model.eval() + + predictions = [] + + print('Performing SpatioTemporal Action Detection for each clip') + assert len(timestamps) == len(human_detections) + prog_bar = mmcv.ProgressBar(len(timestamps)) + for timestamp, proposal in zip(timestamps, human_detections): + if proposal.shape[0] == 0: + predictions.append(None) + continue + + start_frame = timestamp - (clip_len // 2 - 1) * frame_interval + frame_inds = start_frame + np.arange(0, window_size, frame_interval) + frame_inds = list(frame_inds - 1) + imgs = [frames[ind].astype(np.float32) for ind in frame_inds] + _ = [mmcv.imnormalize_(img, **img_norm_cfg) for img in imgs] + # THWC -> CTHW -> 1CTHW + input_array = np.stack(imgs).transpose((3, 0, 1, 2))[np.newaxis] + input_tensor = torch.from_numpy(input_array).to(args.device) + + with torch.no_grad(): + result = model( + return_loss=False, + img=[input_tensor], + img_metas=[[dict(img_shape=(new_h, new_w))]], + proposals=[[proposal]]) + result = result[0] + prediction = [] + # N proposals + for i in range(proposal.shape[0]): + prediction.append([]) + # Perform action score thr + for i in range(len(result)): + if i + 1 not in label_map: + continue + for j in range(proposal.shape[0]): + if result[i][j, 4] > args.action_score_thr: + prediction[j].append((label_map[i + 1], result[i][j, + 4])) + predictions.append(prediction) + prog_bar.update() + + results = [] + for human_detection, prediction in zip(human_detections, predictions): + results.append(pack_result(human_detection, prediction, new_h, new_w)) + + def dense_timestamps(timestamps, n): + """Make it nx frames.""" + old_frame_interval = (timestamps[1] - timestamps[0]) + start = timestamps[0] - old_frame_interval / n * (n - 1) / 2 + new_frame_inds = np.arange( + len(timestamps) * n) * old_frame_interval / n + start + return new_frame_inds.astype(np.int) + + dense_n = int(args.predict_stepsize / args.output_stepsize) + frames = [ + cv2.imread(frame_paths[i - 1]) + for i in dense_timestamps(timestamps, dense_n) + ] + print('Performing visualization') + vis_frames = visualize(frames, results) + vid = mpy.ImageSequenceClip([x[:, :, ::-1] for x in vis_frames], + fps=args.output_fps) + vid.write_videofile(args.out_filename) + + tmp_frame_dir = osp.dirname(frame_paths[0]) + shutil.rmtree(tmp_frame_dir) + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/demo/demo_video_structuralize.py b/openmmlab_test/mmaction2-0.24.1/demo/demo_video_structuralize.py new file mode 100644 index 00000000..2de2d8b5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/demo/demo_video_structuralize.py @@ -0,0 +1,786 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import copy as cp +import os +import os.path as osp +import shutil +import warnings + +import cv2 +import mmcv +import numpy as np +import torch +from mmcv import DictAction +from mmcv.runner import load_checkpoint + +from mmaction.apis import inference_recognizer +from mmaction.datasets.pipelines import Compose +from mmaction.models import build_detector, build_model, build_recognizer + +try: + from mmdet.apis import inference_detector, init_detector +except (ImportError, ModuleNotFoundError): + warnings.warn('Failed to import `inference_detector` and `init_detector` ' + 'form `mmdet.apis`. These apis are required in ' + 'skeleton-based applications! ') + +try: + from mmpose.apis import (inference_top_down_pose_model, init_pose_model, + vis_pose_result) +except (ImportError, ModuleNotFoundError): + warnings.warn('Failed to import `inference_top_down_pose_model`, ' + '`init_pose_model`, and `vis_pose_result` form ' + '`mmpose.apis`. These apis are required in skeleton-based ' + 'applications! ') + +try: + import moviepy.editor as mpy +except ImportError: + raise ImportError('Please install moviepy to enable output file') + +FONTFACE = cv2.FONT_HERSHEY_DUPLEX +FONTSCALE = 0.5 +FONTCOLOR = (255, 255, 255) # BGR, white +MSGCOLOR = (128, 128, 128) # BGR, gray +THICKNESS = 1 +LINETYPE = 1 + + +def hex2color(h): + """Convert the 6-digit hex string to tuple of 3 int value (RGB)""" + return (int(h[:2], 16), int(h[2:4], 16), int(h[4:], 16)) + + +PLATEBLUE = '03045e-023e8a-0077b6-0096c7-00b4d8-48cae4' +PLATEBLUE = PLATEBLUE.split('-') +PLATEBLUE = [hex2color(h) for h in PLATEBLUE] +PLATEGREEN = '004b23-006400-007200-008000-38b000-70e000' +PLATEGREEN = PLATEGREEN.split('-') +PLATEGREEN = [hex2color(h) for h in PLATEGREEN] + + +def visualize(frames, + annotations, + pose_results, + action_result, + pose_model, + plate=PLATEBLUE, + max_num=5): + """Visualize frames with predicted annotations. + + Args: + frames (list[np.ndarray]): Frames for visualization, note that + len(frames) % len(annotations) should be 0. + annotations (list[list[tuple]]): The predicted spatio-temporal + detection results. + pose_results (list[list[tuple]): The pose results. + action_result (str): The predicted action recognition results. + pose_model (nn.Module): The constructed pose model. + plate (str): The plate used for visualization. Default: PLATEBLUE. + max_num (int): Max number of labels to visualize for a person box. + Default: 5. + + Returns: + list[np.ndarray]: Visualized frames. + """ + + assert max_num + 1 <= len(plate) + plate = [x[::-1] for x in plate] + frames_ = cp.deepcopy(frames) + nf, na = len(frames), len(annotations) + assert nf % na == 0 + nfpa = len(frames) // len(annotations) + anno = None + h, w, _ = frames[0].shape + scale_ratio = np.array([w, h, w, h]) + + # add pose results + if pose_results: + for i in range(nf): + frames_[i] = vis_pose_result(pose_model, frames_[i], + pose_results[i]) + + for i in range(na): + anno = annotations[i] + if anno is None: + continue + for j in range(nfpa): + ind = i * nfpa + j + frame = frames_[ind] + + # add action result for whole video + cv2.putText(frame, action_result, (10, 30), FONTFACE, FONTSCALE, + FONTCOLOR, THICKNESS, LINETYPE) + + # add spatio-temporal action detection results + for ann in anno: + box = ann[0] + label = ann[1] + if not len(label): + continue + score = ann[2] + box = (box * scale_ratio).astype(np.int64) + st, ed = tuple(box[:2]), tuple(box[2:]) + if not pose_results: + cv2.rectangle(frame, st, ed, plate[0], 2) + + for k, lb in enumerate(label): + if k >= max_num: + break + text = abbrev(lb) + text = ': '.join([text, str(score[k])]) + location = (0 + st[0], 18 + k * 18 + st[1]) + textsize = cv2.getTextSize(text, FONTFACE, FONTSCALE, + THICKNESS)[0] + textwidth = textsize[0] + diag0 = (location[0] + textwidth, location[1] - 14) + diag1 = (location[0], location[1] + 2) + cv2.rectangle(frame, diag0, diag1, plate[k + 1], -1) + cv2.putText(frame, text, location, FONTFACE, FONTSCALE, + FONTCOLOR, THICKNESS, LINETYPE) + + return frames_ + + +def parse_args(): + parser = argparse.ArgumentParser(description='MMAction2 demo') + parser.add_argument( + '--rgb-stdet-config', + default=('configs/detection/ava/' + 'slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py'), + help='rgb-based spatio temporal detection config file path') + parser.add_argument( + '--rgb-stdet-checkpoint', + default=('https://download.openmmlab.com/mmaction/detection/ava/' + 'slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/' + 'slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb' + '_20201217-16378594.pth'), + help='rgb-based spatio temporal detection checkpoint file/url') + parser.add_argument( + '--skeleton-stdet-checkpoint', + default=('https://download.openmmlab.com/mmaction/skeleton/posec3d/' + 'posec3d_ava.pth'), + help='skeleton-based spatio temporal detection checkpoint file/url') + parser.add_argument( + '--det-config', + default='demo/faster_rcnn_r50_fpn_2x_coco.py', + help='human detection config file path (from mmdet)') + parser.add_argument( + '--det-checkpoint', + default=('http://download.openmmlab.com/mmdetection/v2.0/' + 'faster_rcnn/faster_rcnn_r50_fpn_2x_coco/' + 'faster_rcnn_r50_fpn_2x_coco_' + 'bbox_mAP-0.384_20200504_210434-a5d8aa15.pth'), + help='human detection checkpoint file/url') + parser.add_argument( + '--pose-config', + default='demo/hrnet_w32_coco_256x192.py', + help='human pose estimation config file path (from mmpose)') + parser.add_argument( + '--pose-checkpoint', + default=('https://download.openmmlab.com/mmpose/top_down/hrnet/' + 'hrnet_w32_coco_256x192-c78dce93_20200708.pth'), + help='human pose estimation checkpoint file/url') + parser.add_argument( + '--skeleton-config', + default='configs/skeleton/posec3d/' + 'slowonly_r50_u48_240e_ntu120_xsub_keypoint.py', + help='skeleton-based action recognition config file path') + parser.add_argument( + '--skeleton-checkpoint', + default='https://download.openmmlab.com/mmaction/skeleton/posec3d/' + 'posec3d_k400.pth', + help='skeleton-based action recognition checkpoint file/url') + parser.add_argument( + '--rgb-config', + default='configs/recognition/tsn/' + 'tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py', + help='rgb-based action recognition config file path') + parser.add_argument( + '--rgb-checkpoint', + default='https://download.openmmlab.com/mmaction/recognition/' + 'tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/' + 'tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth', + help='rgb-based action recognition checkpoint file/url') + parser.add_argument( + '--use-skeleton-stdet', + action='store_true', + help='use skeleton-based spatio temporal detection method') + parser.add_argument( + '--use-skeleton-recog', + action='store_true', + help='use skeleton-based action recognition method') + parser.add_argument( + '--det-score-thr', + type=float, + default=0.9, + help='the threshold of human detection score') + parser.add_argument( + '--action-score-thr', + type=float, + default=0.4, + help='the threshold of action prediction score') + parser.add_argument( + '--video', + default='demo/test_video_structuralize.mp4', + help='video file/url') + parser.add_argument( + '--label-map-stdet', + default='tools/data/ava/label_map.txt', + help='label map file for spatio-temporal action detection') + parser.add_argument( + '--label-map', + default='tools/data/kinetics/label_map_k400.txt', + help='label map file for action recognition') + parser.add_argument( + '--device', type=str, default='cuda:0', help='CPU/CUDA device option') + parser.add_argument( + '--out-filename', + default='demo/test_stdet_recognition_output.mp4', + help='output filename') + parser.add_argument( + '--predict-stepsize', + default=8, + type=int, + help='give out a spatio-temporal detection prediction per n frames') + parser.add_argument( + '--output-stepsize', + default=1, + type=int, + help=('show one frame per n frames in the demo, we should have: ' + 'predict_stepsize % output_stepsize == 0')) + parser.add_argument( + '--output-fps', + default=24, + type=int, + help='the fps of demo video output') + parser.add_argument( + '--cfg-options', + nargs='+', + action=DictAction, + default={}, + help='override some settings in the used config, the key-value pair ' + 'in xxx=yyy format will be merged into config file. For example, ' + "'--cfg-options model.backbone.depth=18 model.backbone.with_cp=True'") + args = parser.parse_args() + return args + + +def frame_extraction(video_path): + """Extract frames given video_path. + + Args: + video_path (str): The video_path. + """ + # Load the video, extract frames into ./tmp/video_name + target_dir = osp.join('./tmp', osp.basename(osp.splitext(video_path)[0])) + # target_dir = osp.join('./tmp','spatial_skeleton_dir') + os.makedirs(target_dir, exist_ok=True) + # Should be able to handle videos up to several hours + frame_tmpl = osp.join(target_dir, 'img_{:06d}.jpg') + vid = cv2.VideoCapture(video_path) + frames = [] + frame_paths = [] + flag, frame = vid.read() + cnt = 0 + while flag: + frames.append(frame) + frame_path = frame_tmpl.format(cnt + 1) + frame_paths.append(frame_path) + cv2.imwrite(frame_path, frame) + cnt += 1 + flag, frame = vid.read() + return frame_paths, frames + + +def detection_inference(args, frame_paths): + """Detect human boxes given frame paths. + + Args: + args (argparse.Namespace): The arguments. + frame_paths (list[str]): The paths of frames to do detection inference. + + Returns: + list[np.ndarray]: The human detection results. + """ + model = init_detector(args.det_config, args.det_checkpoint, args.device) + assert model.CLASSES[0] == 'person', ('We require you to use a detector ' + 'trained on COCO') + results = [] + print('Performing Human Detection for each frame') + prog_bar = mmcv.ProgressBar(len(frame_paths)) + for frame_path in frame_paths: + result = inference_detector(model, frame_path) + # We only keep human detections with score larger than det_score_thr + result = result[0][result[0][:, 4] >= args.det_score_thr] + results.append(result) + prog_bar.update() + + return results + + +def pose_inference(args, frame_paths, det_results): + model = init_pose_model(args.pose_config, args.pose_checkpoint, + args.device) + ret = [] + print('Performing Human Pose Estimation for each frame') + prog_bar = mmcv.ProgressBar(len(frame_paths)) + for f, d in zip(frame_paths, det_results): + # Align input format + d = [dict(bbox=x) for x in list(d)] + + pose = inference_top_down_pose_model(model, f, d, format='xyxy')[0] + ret.append(pose) + prog_bar.update() + return ret + + +def load_label_map(file_path): + """Load Label Map. + + Args: + file_path (str): The file path of label map. + + Returns: + dict: The label map (int -> label name). + """ + lines = open(file_path).readlines() + lines = [x.strip().split(': ') for x in lines] + return {int(x[0]): x[1] for x in lines} + + +def abbrev(name): + """Get the abbreviation of label name: + + 'take (an object) from (a person)' -> 'take ... from ...' + """ + while name.find('(') != -1: + st, ed = name.find('('), name.find(')') + name = name[:st] + '...' + name[ed + 1:] + return name + + +def pack_result(human_detection, result, img_h, img_w): + """Short summary. + + Args: + human_detection (np.ndarray): Human detection result. + result (type): The predicted label of each human proposal. + img_h (int): The image height. + img_w (int): The image width. + + Returns: + tuple: Tuple of human proposal, label name and label score. + """ + human_detection[:, 0::2] /= img_w + human_detection[:, 1::2] /= img_h + results = [] + if result is None: + return None + for prop, res in zip(human_detection, result): + res.sort(key=lambda x: -x[1]) + results.append( + (prop.data.cpu().numpy(), [x[0] for x in res], [x[1] + for x in res])) + return results + + +def expand_bbox(bbox, h, w, ratio=1.25): + x1, y1, x2, y2 = bbox + center_x = (x1 + x2) // 2 + center_y = (y1 + y2) // 2 + width = x2 - x1 + height = y2 - y1 + + square_l = max(width, height) + new_width = new_height = square_l * ratio + + new_x1 = max(0, int(center_x - new_width / 2)) + new_x2 = min(int(center_x + new_width / 2), w) + new_y1 = max(0, int(center_y - new_height / 2)) + new_y2 = min(int(center_y + new_height / 2), h) + return (new_x1, new_y1, new_x2, new_y2) + + +def cal_iou(box1, box2): + xmin1, ymin1, xmax1, ymax1 = box1 + xmin2, ymin2, xmax2, ymax2 = box2 + + s1 = (xmax1 - xmin1) * (ymax1 - ymin1) + s2 = (xmax2 - xmin2) * (ymax2 - ymin2) + + xmin = max(xmin1, xmin2) + ymin = max(ymin1, ymin2) + xmax = min(xmax1, xmax2) + ymax = min(ymax1, ymax2) + + w = max(0, xmax - xmin) + h = max(0, ymax - ymin) + intersect = w * h + union = s1 + s2 - intersect + iou = intersect / union + + return iou + + +def skeleton_based_action_recognition(args, pose_results, num_frame, h, w): + fake_anno = dict( + frame_dict='', + label=-1, + img_shape=(h, w), + origin_shape=(h, w), + start_index=0, + modality='Pose', + total_frames=num_frame) + num_person = max([len(x) for x in pose_results]) + + num_keypoint = 17 + keypoint = np.zeros((num_person, num_frame, num_keypoint, 2), + dtype=np.float16) + keypoint_score = np.zeros((num_person, num_frame, num_keypoint), + dtype=np.float16) + for i, poses in enumerate(pose_results): + for j, pose in enumerate(poses): + pose = pose['keypoints'] + keypoint[j, i] = pose[:, :2] + keypoint_score[j, i] = pose[:, 2] + + fake_anno['keypoint'] = keypoint + fake_anno['keypoint_score'] = keypoint_score + + label_map = [x.strip() for x in open(args.label_map).readlines()] + num_class = len(label_map) + + skeleton_config = mmcv.Config.fromfile(args.skeleton_config) + skeleton_config.model.cls_head.num_classes = num_class # for K400 dataset + skeleton_pipeline = Compose(skeleton_config.test_pipeline) + skeleton_imgs = skeleton_pipeline(fake_anno)['imgs'][None] + skeleton_imgs = skeleton_imgs.to(args.device) + + # Build skeleton-based recognition model + skeleton_model = build_model(skeleton_config.model) + load_checkpoint( + skeleton_model, args.skeleton_checkpoint, map_location='cpu') + skeleton_model.to(args.device) + skeleton_model.eval() + + with torch.no_grad(): + output = skeleton_model(return_loss=False, imgs=skeleton_imgs) + + action_idx = np.argmax(output) + skeleton_action_result = label_map[ + action_idx] # skeleton-based action result for the whole video + return skeleton_action_result + + +def rgb_based_action_recognition(args): + rgb_config = mmcv.Config.fromfile(args.rgb_config) + rgb_config.model.backbone.pretrained = None + rgb_model = build_recognizer( + rgb_config.model, test_cfg=rgb_config.get('test_cfg')) + load_checkpoint(rgb_model, args.rgb_checkpoint, map_location='cpu') + rgb_model.cfg = rgb_config + rgb_model.to(args.device) + rgb_model.eval() + action_results = inference_recognizer( + rgb_model, args.video, label_path=args.label_map) + rgb_action_result = action_results[0][0] + label_map = [x.strip() for x in open(args.label_map).readlines()] + return label_map[rgb_action_result] + + +def skeleton_based_stdet(args, label_map, human_detections, pose_results, + num_frame, clip_len, frame_interval, h, w): + window_size = clip_len * frame_interval + assert clip_len % 2 == 0, 'We would like to have an even clip_len' + timestamps = np.arange(window_size // 2, num_frame + 1 - window_size // 2, + args.predict_stepsize) + + skeleton_config = mmcv.Config.fromfile(args.skeleton_config) + num_class = max(label_map.keys()) + 1 # for AVA dataset (81) + skeleton_config.model.cls_head.num_classes = num_class + skeleton_pipeline = Compose(skeleton_config.test_pipeline) + skeleton_stdet_model = build_model(skeleton_config.model) + load_checkpoint( + skeleton_stdet_model, + args.skeleton_stdet_checkpoint, + map_location='cpu') + skeleton_stdet_model.to(args.device) + skeleton_stdet_model.eval() + + skeleton_predictions = [] + + print('Performing SpatioTemporal Action Detection for each clip') + prog_bar = mmcv.ProgressBar(len(timestamps)) + for timestamp in timestamps: + proposal = human_detections[timestamp - 1] + if proposal.shape[0] == 0: # no people detected + skeleton_predictions.append(None) + continue + + start_frame = timestamp - (clip_len // 2 - 1) * frame_interval + frame_inds = start_frame + np.arange(0, window_size, frame_interval) + frame_inds = list(frame_inds - 1) + num_frame = len(frame_inds) # 30 + + pose_result = [pose_results[ind] for ind in frame_inds] + + skeleton_prediction = [] + for i in range(proposal.shape[0]): # num_person + skeleton_prediction.append([]) + + fake_anno = dict( + frame_dict='', + label=-1, + img_shape=(h, w), + origin_shape=(h, w), + start_index=0, + modality='Pose', + total_frames=num_frame) + num_person = 1 + + num_keypoint = 17 + keypoint = np.zeros( + (num_person, num_frame, num_keypoint, 2)) # M T V 2 + keypoint_score = np.zeros( + (num_person, num_frame, num_keypoint)) # M T V + + # pose matching + person_bbox = proposal[i][:4] + area = expand_bbox(person_bbox, h, w) + + for j, poses in enumerate(pose_result): # num_frame + max_iou = float('-inf') + index = -1 + if len(poses) == 0: + continue + for k, per_pose in enumerate(poses): + iou = cal_iou(per_pose['bbox'][:4], area) + if max_iou < iou: + index = k + max_iou = iou + keypoint[0, j] = poses[index]['keypoints'][:, :2] + keypoint_score[0, j] = poses[index]['keypoints'][:, 2] + + fake_anno['keypoint'] = keypoint + fake_anno['keypoint_score'] = keypoint_score + + skeleton_imgs = skeleton_pipeline(fake_anno)['imgs'][None] + skeleton_imgs = skeleton_imgs.to(args.device) + + with torch.no_grad(): + output = skeleton_stdet_model( + return_loss=False, imgs=skeleton_imgs) + output = output[0] + for k in range(len(output)): # 81 + if k not in label_map: + continue + if output[k] > args.action_score_thr: + skeleton_prediction[i].append( + (label_map[k], output[k])) + + skeleton_predictions.append(skeleton_prediction) + prog_bar.update() + + return timestamps, skeleton_predictions + + +def rgb_based_stdet(args, frames, label_map, human_detections, w, h, new_w, + new_h, w_ratio, h_ratio): + + rgb_stdet_config = mmcv.Config.fromfile(args.rgb_stdet_config) + rgb_stdet_config.merge_from_dict(args.cfg_options) + + val_pipeline = rgb_stdet_config.data.val.pipeline + sampler = [x for x in val_pipeline if x['type'] == 'SampleAVAFrames'][0] + clip_len, frame_interval = sampler['clip_len'], sampler['frame_interval'] + assert clip_len % 2 == 0, 'We would like to have an even clip_len' + + window_size = clip_len * frame_interval + num_frame = len(frames) + timestamps = np.arange(window_size // 2, num_frame + 1 - window_size // 2, + args.predict_stepsize) + + # Get img_norm_cfg + img_norm_cfg = rgb_stdet_config['img_norm_cfg'] + if 'to_rgb' not in img_norm_cfg and 'to_bgr' in img_norm_cfg: + to_bgr = img_norm_cfg.pop('to_bgr') + img_norm_cfg['to_rgb'] = to_bgr + img_norm_cfg['mean'] = np.array(img_norm_cfg['mean']) + img_norm_cfg['std'] = np.array(img_norm_cfg['std']) + + # Build STDET model + try: + # In our spatiotemporal detection demo, different actions should have + # the same number of bboxes. + rgb_stdet_config['model']['test_cfg']['rcnn']['action_thr'] = .0 + except KeyError: + pass + + rgb_stdet_config.model.backbone.pretrained = None + rgb_stdet_model = build_detector( + rgb_stdet_config.model, test_cfg=rgb_stdet_config.get('test_cfg')) + + load_checkpoint( + rgb_stdet_model, args.rgb_stdet_checkpoint, map_location='cpu') + rgb_stdet_model.to(args.device) + rgb_stdet_model.eval() + + predictions = [] + + print('Performing SpatioTemporal Action Detection for each clip') + prog_bar = mmcv.ProgressBar(len(timestamps)) + for timestamp in timestamps: + proposal = human_detections[timestamp - 1] + + if proposal.shape[0] == 0: + predictions.append(None) + continue + + start_frame = timestamp - (clip_len // 2 - 1) * frame_interval + frame_inds = start_frame + np.arange(0, window_size, frame_interval) + frame_inds = list(frame_inds - 1) + + imgs = [frames[ind].astype(np.float32) for ind in frame_inds] + _ = [mmcv.imnormalize_(img, **img_norm_cfg) for img in imgs] + # THWC -> CTHW -> 1CTHW + input_array = np.stack(imgs).transpose((3, 0, 1, 2))[np.newaxis] + input_tensor = torch.from_numpy(input_array).to(args.device) + + with torch.no_grad(): + result = rgb_stdet_model( + return_loss=False, + img=[input_tensor], + img_metas=[[dict(img_shape=(new_h, new_w))]], + proposals=[[proposal]]) + result = result[0] + prediction = [] + # N proposals + for i in range(proposal.shape[0]): + prediction.append([]) + + # Perform action score thr + for i in range(len(result)): # 80 + if i + 1 not in label_map: + continue + for j in range(proposal.shape[0]): + if result[i][j, 4] > args.action_score_thr: + prediction[j].append((label_map[i + 1], result[i][j, + 4])) + predictions.append(prediction) + prog_bar.update() + + return timestamps, predictions + + +def main(): + args = parse_args() + + frame_paths, original_frames = frame_extraction(args.video) + num_frame = len(frame_paths) + h, w, _ = original_frames[0].shape + + # Get Human detection results and pose results + human_detections = detection_inference(args, frame_paths) + pose_results = None + if args.use_skeleton_recog or args.use_skeleton_stdet: + pose_results = pose_inference(args, frame_paths, human_detections) + + # resize frames to shortside 256 + new_w, new_h = mmcv.rescale_size((w, h), (256, np.Inf)) + frames = [mmcv.imresize(img, (new_w, new_h)) for img in original_frames] + w_ratio, h_ratio = new_w / w, new_h / h + + # Load spatio-temporal detection label_map + stdet_label_map = load_label_map(args.label_map_stdet) + rgb_stdet_config = mmcv.Config.fromfile(args.rgb_stdet_config) + rgb_stdet_config.merge_from_dict(args.cfg_options) + try: + if rgb_stdet_config['data']['train']['custom_classes'] is not None: + stdet_label_map = { + id + 1: stdet_label_map[cls] + for id, cls in enumerate(rgb_stdet_config['data']['train'] + ['custom_classes']) + } + except KeyError: + pass + + action_result = None + if args.use_skeleton_recog: + print('Use skeleton-based recognition') + action_result = skeleton_based_action_recognition( + args, pose_results, num_frame, h, w) + else: + print('Use rgb-based recognition') + action_result = rgb_based_action_recognition(args) + + stdet_preds = None + if args.use_skeleton_stdet: + print('Use skeleton-based SpatioTemporal Action Detection') + clip_len, frame_interval = 30, 1 + timestamps, stdet_preds = skeleton_based_stdet(args, stdet_label_map, + human_detections, + pose_results, num_frame, + clip_len, + frame_interval, h, w) + for i in range(len(human_detections)): + det = human_detections[i] + det[:, 0:4:2] *= w_ratio + det[:, 1:4:2] *= h_ratio + human_detections[i] = torch.from_numpy(det[:, :4]).to(args.device) + + else: + print('Use rgb-based SpatioTemporal Action Detection') + for i in range(len(human_detections)): + det = human_detections[i] + det[:, 0:4:2] *= w_ratio + det[:, 1:4:2] *= h_ratio + human_detections[i] = torch.from_numpy(det[:, :4]).to(args.device) + timestamps, stdet_preds = rgb_based_stdet(args, frames, + stdet_label_map, + human_detections, w, h, + new_w, new_h, w_ratio, + h_ratio) + + stdet_results = [] + for timestamp, prediction in zip(timestamps, stdet_preds): + human_detection = human_detections[timestamp - 1] + stdet_results.append( + pack_result(human_detection, prediction, new_h, new_w)) + + def dense_timestamps(timestamps, n): + """Make it nx frames.""" + old_frame_interval = (timestamps[1] - timestamps[0]) + start = timestamps[0] - old_frame_interval / n * (n - 1) / 2 + new_frame_inds = np.arange( + len(timestamps) * n) * old_frame_interval / n + start + return new_frame_inds.astype(np.int) + + dense_n = int(args.predict_stepsize / args.output_stepsize) + output_timestamps = dense_timestamps(timestamps, dense_n) + frames = [ + cv2.imread(frame_paths[timestamp - 1]) + for timestamp in output_timestamps + ] + + print('Performing visualization') + pose_model = init_pose_model(args.pose_config, args.pose_checkpoint, + args.device) + + if args.use_skeleton_recog or args.use_skeleton_stdet: + pose_results = [ + pose_results[timestamp - 1] for timestamp in output_timestamps + ] + + vis_frames = visualize(frames, stdet_results, pose_results, action_result, + pose_model) + vid = mpy.ImageSequenceClip([x[:, :, ::-1] for x in vis_frames], + fps=args.output_fps) + vid.write_videofile(args.out_filename) + + tmp_frame_dir = osp.dirname(frame_paths[0]) + shutil.rmtree(tmp_frame_dir) + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/demo/faster_rcnn_r50_fpn_2x_coco.py b/openmmlab_test/mmaction2-0.24.1/demo/faster_rcnn_r50_fpn_2x_coco.py new file mode 100644 index 00000000..2387ce3c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/demo/faster_rcnn_r50_fpn_2x_coco.py @@ -0,0 +1,182 @@ +# Copyright (c) OpenMMLab. All rights reserved. +# model config +model = dict( + type='FasterRCNN', + pretrained='torchvision://resnet50', + backbone=dict( + type='ResNet', + depth=50, + num_stages=4, + out_indices=(0, 1, 2, 3), + frozen_stages=1, + norm_cfg=dict(type='BN', requires_grad=True), + norm_eval=True, + style='pytorch'), + neck=dict( + type='FPN', + in_channels=[256, 512, 1024, 2048], + out_channels=256, + num_outs=5), + rpn_head=dict( + type='RPNHead', + in_channels=256, + feat_channels=256, + anchor_generator=dict( + type='AnchorGenerator', + scales=[8], + ratios=[0.5, 1.0, 2.0], + strides=[4, 8, 16, 32, 64]), + bbox_coder=dict( + type='DeltaXYWHBBoxCoder', + target_means=[.0, .0, .0, .0], + target_stds=[1.0, 1.0, 1.0, 1.0]), + loss_cls=dict( + type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0), + loss_bbox=dict(type='L1Loss', loss_weight=1.0)), + roi_head=dict( + type='StandardRoIHead', + bbox_roi_extractor=dict( + type='SingleRoIExtractor', + roi_layer=dict(type='RoIAlign', output_size=7, sampling_ratio=0), + out_channels=256, + featmap_strides=[4, 8, 16, 32]), + bbox_head=dict( + type='Shared2FCBBoxHead', + in_channels=256, + fc_out_channels=1024, + roi_feat_size=7, + num_classes=80, + bbox_coder=dict( + type='DeltaXYWHBBoxCoder', + target_means=[0., 0., 0., 0.], + target_stds=[0.1, 0.1, 0.2, 0.2]), + reg_class_agnostic=False, + loss_cls=dict( + type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0), + loss_bbox=dict(type='L1Loss', loss_weight=1.0))), + # model training and testing settings + train_cfg=dict( + rpn=dict( + assigner=dict( + type='MaxIoUAssigner', + pos_iou_thr=0.7, + neg_iou_thr=0.3, + min_pos_iou=0.3, + match_low_quality=True, + ignore_iof_thr=-1), + sampler=dict( + type='RandomSampler', + num=256, + pos_fraction=0.5, + neg_pos_ub=-1, + add_gt_as_proposals=False), + allowed_border=-1, + pos_weight=-1, + debug=False), + rpn_proposal=dict( + nms_pre=2000, + max_per_img=1000, + nms=dict(type='nms', iou_threshold=0.7), + min_bbox_size=0), + rcnn=dict( + assigner=dict( + type='MaxIoUAssigner', + pos_iou_thr=0.5, + neg_iou_thr=0.5, + min_pos_iou=0.5, + match_low_quality=False, + ignore_iof_thr=-1), + sampler=dict( + type='RandomSampler', + num=512, + pos_fraction=0.25, + neg_pos_ub=-1, + add_gt_as_proposals=True), + pos_weight=-1, + debug=False)), + test_cfg=dict( + rpn=dict( + nms_pre=1000, + max_per_img=1000, + nms=dict(type='nms', iou_threshold=0.7), + min_bbox_size=0), + rcnn=dict( + score_thr=0.05, + nms=dict(type='nms', iou_threshold=0.5), + max_per_img=100))) + +# dataset config +dataset_type = 'CocoDataset' +data_root = 'data/coco/' +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='LoadAnnotations', with_bbox=True), + dict(type='Resize', img_scale=(1333, 800), keep_ratio=True), + dict(type='RandomFlip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size_divisor=32), + dict(type='DefaultFormatBundle'), + dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels']), +] +test_pipeline = [ + dict(type='LoadImageFromFile'), + dict( + type='MultiScaleFlipAug', + img_scale=(1333, 800), + flip=False, + transforms=[ + dict(type='Resize', keep_ratio=True), + dict(type='RandomFlip'), + dict(type='Normalize', **img_norm_cfg), + dict(type='Pad', size_divisor=32), + dict(type='ImageToTensor', keys=['img']), + dict(type='Collect', keys=['img']), + ]) +] +data = dict( + samples_per_gpu=2, + workers_per_gpu=2, + train=dict( + type=dataset_type, + ann_file=data_root + 'annotations/instances_train2017.json', + img_prefix=data_root + 'train2017/', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=data_root + 'annotations/instances_val2017.json', + img_prefix=data_root + 'val2017/', + pipeline=test_pipeline), + test=dict( + type=dataset_type, + ann_file=data_root + 'annotations/instances_val2017.json', + img_prefix=data_root + 'val2017/', + pipeline=test_pipeline)) +evaluation = dict(interval=1, metric='bbox') +# Schedule +# optimizer +optimizer = dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001) +optimizer_config = dict(grad_clip=None) +# learning policy +lr_config = dict( + policy='step', + warmup='linear', + warmup_iters=500, + warmup_ratio=0.001, + step=[16, 22]) +total_epochs = 24 +# runtime +checkpoint_config = dict(interval=1) +# yapf:disable +log_config = dict( + interval=50, + hooks=[ + dict(type='TextLoggerHook'), + ]) +# yapf:enable +dist_params = dict(backend='nccl') +log_level = 'INFO' +load_from = None +resume_from = None +workflow = [('train', 1)] diff --git a/openmmlab_test/mmaction2-0.24.1/demo/fuse/data_list.txt b/openmmlab_test/mmaction2-0.24.1/demo/fuse/data_list.txt new file mode 100644 index 00000000..7fa4c0b3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/demo/fuse/data_list.txt @@ -0,0 +1,100 @@ +jf7RDuUTrsQ 300 325 +JTlatknwOrY 301 233 +8UxlDNur-Z0 300 262 +y9r115bgfNk 300 320 +ZnIDviwA8CE 300 244 +c8ln_nWYMyM 300 333 +9GFfKVeoGm0 300 98 +F5Y_gGsg4x8 300 193 +AuqIu3x_lhY 300 36 +1Hi5GMotrjs 300 26 +czhL0iDbNT8 300 46 +DYpTE_n-Wvk 177 208 +R-xmgefs-M4 300 101 +KPP2qRzMdos 300 131 +PmgfU9ocx5A 300 193 +GI7nIyMEQi4 300 173 +A8TIWMvJVDU 300 72 +ustVqWMM56c 300 289 +03dk7mneDU0 300 254 +jqkyelS4GJk 300 279 +a58tBGuDIg0 231 382 +5l1ajLjqaPo 300 226 +-5wLopwbGX0 300 132 +NUG7kwJ-614 300 103 +wHUvw_R2iv8 300 97 +44Mak5_s6Fk 300 256 +y5vsk8Mj-3w 300 77 +TEj_A_BC-aU 300 393 +fUdu6hpMt_c 299 40 +C5Z1sRArUR0 300 254 +-orecnYvpNw 300 284 +Urmbp1ulIXI 300 319 +bLgdi4w7OAk 299 36 +cVv_XMw4W2U 300 27 +dV8JmKwDUzM 300 312 +yZ9hIqW4bRc 300 239 +9ykbMdR9Jss 213 257 +G8fEnqIOkiA 300 158 +6P2eVJ-Qp1g 300 131 +Y-acp_jXG1Q 302 315 +xthWPdx21r8 301 62 +LExCUx4STW0 300 9 +p2UMwzWsY0U 300 248 +c0UI7f3Plro 300 383 +1MmjE51PeIE 300 93 +OU5dJpNHATk 300 342 +38Uv6dbQkWc 281 44 +5ZNdkbmv274 300 59 +DrSL3Uddj6s 300 283 +aNJ1-bvRox8 175 384 +b5U7A_crvE0 194 377 +xeWO9Bl9aWA 300 86 +Zy8Ta83mrXo 300 223 +AXnDRH7o2DQ 300 146 +fTPDXmcygjw 300 11 +EhRxb8-cNzQ 164 325 +iO8RYYQzNiE 299 191 +XbCncZcXuTI 300 55 +pSCunaRn45A 300 265 +UqI--TBQRgg 300 165 +yD42KW6cm-A 300 186 +VseX7hoxhbM 300 61 +1FEcfy-moBM 300 8 +BUT8oefH9Nw 300 120 +-49tMSUTnZg 300 227 +cZKPTt_FcFs 300 85 +fiKJm0eavfw 300 323 +gJcVljRRxGE 302 87 +de1rSoht9t4 300 253 +UAIJnI7fQYo 300 284 +c4eIDxmVmCw 300 95 +3LGce3efz7M 300 332 +EC8iyn_q-NM 300 92 +eo15donXwmY 300 351 +NsG31u7Pd2Q 300 87 +ILkPWpZYlPE 300 137 +n5ZHSJRZl1U 300 338 +UoQE44FEqLQ 300 260 +5I-4meP_5wY 300 185 +udLMOf77S3U 300 209 +a4Ye18Mnblk 262 172 +QbDMgHWwt_s 236 395 +S6iAYBBMnwk 300 267 +DNMfmNV8Uug 300 131 +AJdp07pp43c 300 293 +tVuop87KbDY 300 103 +o79s5eOAF-c 300 246 +dMt_nuBNdeY 300 168 +RJU9NV1R4Fw 300 128 +Zhux7Vy-hHc 300 82 +47Cj6jwQKjo 300 228 +a7Mc-0lwAuE 300 129 +taZtEzvkg3M 300 264 +bVDZohQJhBI 240 129 +sBJk5li0O5o 216 154 +DQUNZmbQI_g 300 29 +-zpKHNrNsn4 300 244 +Dcz0r8q-sx0 300 249 +hfRKTH9pOMA 165 116 +8CdUbOHDtes 300 222 diff --git a/openmmlab_test/mmaction2-0.24.1/demo/hrnet_w32_coco_256x192.py b/openmmlab_test/mmaction2-0.24.1/demo/hrnet_w32_coco_256x192.py new file mode 100644 index 00000000..3806739d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/demo/hrnet_w32_coco_256x192.py @@ -0,0 +1,174 @@ +# Copyright (c) OpenMMLab. All rights reserved. +log_level = 'INFO' +load_from = None +resume_from = None +dist_params = dict(backend='nccl') +workflow = [('train', 1)] +checkpoint_config = dict(interval=10) +evaluation = dict(interval=10, metric='mAP', key_indicator='AP') + +optimizer = dict( + type='Adam', + lr=5e-4, +) +optimizer_config = dict(grad_clip=None) +# learning policy +lr_config = dict( + policy='step', + warmup='linear', + warmup_iters=500, + warmup_ratio=0.001, + step=[170, 200]) +total_epochs = 210 +log_config = dict( + interval=50, + hooks=[ + dict(type='TextLoggerHook'), + # dict(type='TensorboardLoggerHook') + ]) + +channel_cfg = dict( + num_output_channels=17, + dataset_joints=17, + dataset_channel=[ + [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], + ], + inference_channel=[ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 + ]) + +# model settings +model = dict( + type='TopDown', + pretrained='https://download.openmmlab.com/mmpose/' + 'pretrain_models/hrnet_w32-36af842e.pth', + backbone=dict( + type='HRNet', + in_channels=3, + extra=dict( + stage1=dict( + num_modules=1, + num_branches=1, + block='BOTTLENECK', + num_blocks=(4, ), + num_channels=(64, )), + stage2=dict( + num_modules=1, + num_branches=2, + block='BASIC', + num_blocks=(4, 4), + num_channels=(32, 64)), + stage3=dict( + num_modules=4, + num_branches=3, + block='BASIC', + num_blocks=(4, 4, 4), + num_channels=(32, 64, 128)), + stage4=dict( + num_modules=3, + num_branches=4, + block='BASIC', + num_blocks=(4, 4, 4, 4), + num_channels=(32, 64, 128, 256))), + ), + keypoint_head=dict( + type='TopdownHeatmapSimpleHead', + in_channels=32, + out_channels=channel_cfg['num_output_channels'], + num_deconv_layers=0, + extra=dict(final_conv_kernel=1, ), + loss_keypoint=dict(type='JointsMSELoss', use_target_weight=True)), + train_cfg=dict(), + test_cfg=dict( + flip_test=True, + post_process='default', + shift_heatmap=True, + modulate_kernel=11)) + +data_cfg = dict( + image_size=[192, 256], + heatmap_size=[48, 64], + num_output_channels=channel_cfg['num_output_channels'], + num_joints=channel_cfg['dataset_joints'], + dataset_channel=channel_cfg['dataset_channel'], + inference_channel=channel_cfg['inference_channel'], + soft_nms=False, + nms_thr=1.0, + oks_thr=0.9, + vis_thr=0.2, + use_gt_bbox=False, + det_bbox_thr=0.0, + bbox_file='data/coco/person_detection_results/' + 'COCO_val2017_detections_AP_H_56_person.json', +) + +train_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='TopDownRandomFlip', flip_prob=0.5), + dict( + type='TopDownHalfBodyTransform', + num_joints_half_body=8, + prob_half_body=0.3), + dict( + type='TopDownGetRandomScaleRotation', rot_factor=40, scale_factor=0.5), + dict(type='TopDownAffine'), + dict(type='ToTensor'), + dict( + type='NormalizeTensor', + mean=[0.485, 0.456, 0.406], + std=[0.229, 0.224, 0.225]), + dict(type='TopDownGenerateTarget', sigma=2), + dict( + type='Collect', + keys=['img', 'target', 'target_weight'], + meta_keys=[ + 'image_file', 'joints_3d', 'joints_3d_visible', 'center', 'scale', + 'rotation', 'bbox_score', 'flip_pairs' + ]), +] + +val_pipeline = [ + dict(type='LoadImageFromFile'), + dict(type='TopDownGetBboxCenterScale', padding=1.25), + dict(type='TopDownAffine'), + dict(type='ToTensor'), + dict( + type='NormalizeTensor', + mean=[0.485, 0.456, 0.406], + std=[0.229, 0.224, 0.225]), + dict( + type='Collect', + keys=['img'], + meta_keys=[ + 'image_file', 'center', 'scale', 'rotation', 'bbox_score', + 'flip_pairs' + ]), +] + +test_pipeline = val_pipeline + +data_root = 'data/coco' +data = dict( + samples_per_gpu=64, + workers_per_gpu=2, + val_dataloader=dict(samples_per_gpu=32), + test_dataloader=dict(samples_per_gpu=32), + train=dict( + type='TopDownCocoDataset', + ann_file=f'{data_root}/annotations/person_keypoints_train2017.json', + img_prefix=f'{data_root}/train2017/', + data_cfg=data_cfg, + pipeline=train_pipeline), + val=dict( + type='TopDownCocoDataset', + ann_file=f'{data_root}/annotations/person_keypoints_val2017.json', + img_prefix=f'{data_root}/val2017/', + data_cfg=data_cfg, + pipeline=val_pipeline), + test=dict( + type='TopDownCocoDataset', + ann_file=f'{data_root}/annotations/person_keypoints_val2017.json', + img_prefix=f'{data_root}/val2017/', + data_cfg=data_cfg, + pipeline=val_pipeline), +) diff --git a/openmmlab_test/mmaction2-0.24.1/demo/long_video_demo.py b/openmmlab_test/mmaction2-0.24.1/demo/long_video_demo.py new file mode 100644 index 00000000..45df202d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/demo/long_video_demo.py @@ -0,0 +1,265 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import json +import random +from collections import deque +from operator import itemgetter + +import cv2 +import mmcv +import numpy as np +import torch +from mmcv import Config, DictAction +from mmcv.parallel import collate, scatter + +from mmaction.apis import init_recognizer +from mmaction.datasets.pipelines import Compose + +FONTFACE = cv2.FONT_HERSHEY_COMPLEX_SMALL +FONTSCALE = 1 +THICKNESS = 1 +LINETYPE = 1 + +EXCLUED_STEPS = [ + 'OpenCVInit', 'OpenCVDecode', 'DecordInit', 'DecordDecode', 'PyAVInit', + 'PyAVDecode', 'RawFrameDecode' +] + + +def parse_args(): + parser = argparse.ArgumentParser( + description='MMAction2 predict different labels in a long video demo') + parser.add_argument('config', help='test config file path') + parser.add_argument('checkpoint', help='checkpoint file/url') + parser.add_argument('video_path', help='video file/url') + parser.add_argument('label', help='label file') + parser.add_argument('out_file', help='output result file in video/json') + parser.add_argument( + '--input-step', + type=int, + default=1, + help='input step for sampling frames') + parser.add_argument( + '--device', type=str, default='cuda:0', help='CPU/CUDA device option') + parser.add_argument( + '--threshold', + type=float, + default=0.01, + help='recognition score threshold') + parser.add_argument( + '--stride', + type=float, + default=0, + help=('the prediction stride equals to stride * sample_length ' + '(sample_length indicates the size of temporal window from ' + 'which you sample frames, which equals to ' + 'clip_len x frame_interval), if set as 0, the ' + 'prediction stride is 1')) + parser.add_argument( + '--cfg-options', + nargs='+', + action=DictAction, + default={}, + help='override some settings in the used config, the key-value pair ' + 'in xxx=yyy format will be merged into config file. For example, ' + "'--cfg-options model.backbone.depth=18 model.backbone.with_cp=True'") + parser.add_argument( + '--label-color', + nargs='+', + type=int, + default=(255, 255, 255), + help='font color (B, G, R) of the labels in output video') + parser.add_argument( + '--msg-color', + nargs='+', + type=int, + default=(128, 128, 128), + help='font color (B, G, R) of the messages in output video') + args = parser.parse_args() + return args + + +def show_results_video(result_queue, + text_info, + thr, + msg, + frame, + video_writer, + label_color=(255, 255, 255), + msg_color=(128, 128, 128)): + if len(result_queue) != 0: + text_info = {} + results = result_queue.popleft() + for i, result in enumerate(results): + selected_label, score = result + if score < thr: + break + location = (0, 40 + i * 20) + text = selected_label + ': ' + str(round(score, 2)) + text_info[location] = text + cv2.putText(frame, text, location, FONTFACE, FONTSCALE, + label_color, THICKNESS, LINETYPE) + elif len(text_info): + for location, text in text_info.items(): + cv2.putText(frame, text, location, FONTFACE, FONTSCALE, + label_color, THICKNESS, LINETYPE) + else: + cv2.putText(frame, msg, (0, 40), FONTFACE, FONTSCALE, msg_color, + THICKNESS, LINETYPE) + video_writer.write(frame) + return text_info + + +def get_results_json(result_queue, text_info, thr, msg, ind, out_json): + if len(result_queue) != 0: + text_info = {} + results = result_queue.popleft() + for i, result in enumerate(results): + selected_label, score = result + if score < thr: + break + text_info[i + 1] = selected_label + ': ' + str(round(score, 2)) + out_json[ind] = text_info + elif len(text_info): + out_json[ind] = text_info + else: + out_json[ind] = msg + return text_info, out_json + + +def show_results(model, data, label, args): + frame_queue = deque(maxlen=args.sample_length) + result_queue = deque(maxlen=1) + + cap = cv2.VideoCapture(args.video_path) + num_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) + frame_width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) + frame_height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) + fps = cap.get(cv2.CAP_PROP_FPS) + + msg = 'Preparing action recognition ...' + text_info = {} + out_json = {} + fourcc = cv2.VideoWriter_fourcc(*'mp4v') + frame_size = (frame_width, frame_height) + + ind = 0 + video_writer = None if args.out_file.endswith('.json') \ + else cv2.VideoWriter(args.out_file, fourcc, fps, frame_size) + prog_bar = mmcv.ProgressBar(num_frames) + backup_frames = [] + + while ind < num_frames: + ind += 1 + prog_bar.update() + ret, frame = cap.read() + if frame is None: + # drop it when encounting None + continue + backup_frames.append(np.array(frame)[:, :, ::-1]) + if ind == args.sample_length: + # provide a quick show at the beginning + frame_queue.extend(backup_frames) + backup_frames = [] + elif ((len(backup_frames) == args.input_step + and ind > args.sample_length) or ind == num_frames): + # pick a frame from the backup + # when the backup is full or reach the last frame + chosen_frame = random.choice(backup_frames) + backup_frames = [] + frame_queue.append(chosen_frame) + + ret, scores = inference(model, data, args, frame_queue) + + if ret: + num_selected_labels = min(len(label), 5) + scores_tuples = tuple(zip(label, scores)) + scores_sorted = sorted( + scores_tuples, key=itemgetter(1), reverse=True) + results = scores_sorted[:num_selected_labels] + result_queue.append(results) + + if args.out_file.endswith('.json'): + text_info, out_json = get_results_json(result_queue, text_info, + args.threshold, msg, ind, + out_json) + else: + text_info = show_results_video(result_queue, text_info, + args.threshold, msg, frame, + video_writer, args.label_color, + args.msg_color) + + cap.release() + cv2.destroyAllWindows() + if args.out_file.endswith('.json'): + with open(args.out_file, 'w') as js: + json.dump(out_json, js) + + +def inference(model, data, args, frame_queue): + if len(frame_queue) != args.sample_length: + # Do no inference when there is no enough frames + return False, None + + cur_windows = list(np.array(frame_queue)) + if data['img_shape'] is None: + data['img_shape'] = frame_queue[0].shape[:2] + + cur_data = data.copy() + cur_data['imgs'] = cur_windows + cur_data = args.test_pipeline(cur_data) + cur_data = collate([cur_data], samples_per_gpu=1) + if next(model.parameters()).is_cuda: + cur_data = scatter(cur_data, [args.device])[0] + with torch.no_grad(): + scores = model(return_loss=False, **cur_data)[0] + + if args.stride > 0: + pred_stride = int(args.sample_length * args.stride) + for _ in range(pred_stride): + frame_queue.popleft() + + # for case ``args.stride=0`` + # deque will automatically popleft one element + + return True, scores + + +def main(): + args = parse_args() + + args.device = torch.device(args.device) + + cfg = Config.fromfile(args.config) + cfg.merge_from_dict(args.cfg_options) + + model = init_recognizer(cfg, args.checkpoint, device=args.device) + data = dict(img_shape=None, modality='RGB', label=-1) + with open(args.label, 'r') as f: + label = [line.strip() for line in f] + + # prepare test pipeline from non-camera pipeline + cfg = model.cfg + sample_length = 0 + pipeline = cfg.data.test.pipeline + pipeline_ = pipeline.copy() + for step in pipeline: + if 'SampleFrames' in step['type']: + sample_length = step['clip_len'] * step['num_clips'] + data['num_clips'] = step['num_clips'] + data['clip_len'] = step['clip_len'] + pipeline_.remove(step) + if step['type'] in EXCLUED_STEPS: + # remove step to decode frames + pipeline_.remove(step) + test_pipeline = Compose(pipeline_) + + assert sample_length > 0 + args.sample_length = sample_length + args.test_pipeline = test_pipeline + + show_results(model, data, label, args) + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/demo/mmaction2_tutorial.ipynb b/openmmlab_test/mmaction2-0.24.1/demo/mmaction2_tutorial.ipynb new file mode 100644 index 00000000..8dea211b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/demo/mmaction2_tutorial.ipynb @@ -0,0 +1,1461 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "view-in-github" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VcjSRFELVbNk" + }, + "source": [ + "# MMAction2 Tutorial\n", + "\n", + "Welcome to MMAction2! This is the official colab tutorial for using MMAction2. In this tutorial, you will learn\n", + "- Perform inference with a MMAction2 recognizer.\n", + "- Train a new recognizer with a new dataset.\n", + "- Perform spatio-temporal detection.\n", + "\n", + "Let's start!" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7LqHGkGEVqpm" + }, + "source": [ + "## Install MMAction2" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Bf8PpPXtVvmg", + "outputId": "75519a17-cc0a-491f-98a1-f287b090cf82" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "nvcc: NVIDIA (R) Cuda compiler driver\n", + "Copyright (c) 2005-2020 NVIDIA Corporation\n", + "Built on Mon_Oct_12_20:09:46_PDT_2020\n", + "Cuda compilation tools, release 11.1, V11.1.105\n", + "Build cuda_11.1.TC455_06.29190527_0\n", + "gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0\n", + "Copyright (C) 2017 Free Software Foundation, Inc.\n", + "This is free software; see the source for copying conditions. There is NO\n", + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n", + "\n" + ] + } + ], + "source": [ + "# Check nvcc version\n", + "!nvcc -V\n", + "# Check GCC version\n", + "!gcc --version" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "5PAJ4ArzV5Ry", + "outputId": "992b30c2-8281-4198-97c8-df2a287b0ae8" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in links: https://download.pytorch.org/whl/torch_stable.html\n", + "Collecting torch==1.8.0+cu101\n", + " Downloading https://download.pytorch.org/whl/cu101/torch-1.8.0%2Bcu101-cp37-cp37m-linux_x86_64.whl (763.5 MB)\n", + "\u001B[K |████████████████████████████████| 763.5 MB 15 kB/s \n", + "\u001B[?25hCollecting torchvision==0.9.0+cu101\n", + " Downloading https://download.pytorch.org/whl/cu101/torchvision-0.9.0%2Bcu101-cp37-cp37m-linux_x86_64.whl (17.3 MB)\n", + "\u001B[K |████████████████████████████████| 17.3 MB 983 kB/s \n", + "\u001B[?25hCollecting torchtext==0.9.0\n", + " Downloading torchtext-0.9.0-cp37-cp37m-manylinux1_x86_64.whl (7.1 MB)\n", + "\u001B[K |████████████████████████████████| 7.1 MB 10.9 MB/s \n", + "\u001B[?25hCollecting torchaudio==0.8.0\n", + " Downloading torchaudio-0.8.0-cp37-cp37m-manylinux1_x86_64.whl (1.9 MB)\n", + "\u001B[K |████████████████████████████████| 1.9 MB 46.6 MB/s \n", + "\u001B[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from torch==1.8.0+cu101) (1.21.5)\n", + "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from torch==1.8.0+cu101) (3.10.0.2)\n", + "Requirement already satisfied: pillow>=4.1.1 in /usr/local/lib/python3.7/dist-packages (from torchvision==0.9.0+cu101) (7.1.2)\n", + "Requirement already satisfied: tqdm in /usr/local/lib/python3.7/dist-packages (from torchtext==0.9.0) (4.62.3)\n", + "Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from torchtext==0.9.0) (2.23.0)\n", + "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests->torchtext==0.9.0) (1.24.3)\n", + "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->torchtext==0.9.0) (2.10)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests->torchtext==0.9.0) (2021.10.8)\n", + "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->torchtext==0.9.0) (3.0.4)\n", + "Installing collected packages: torch, torchvision, torchtext, torchaudio\n", + " Attempting uninstall: torch\n", + " Found existing installation: torch 1.10.0+cu111\n", + " Uninstalling torch-1.10.0+cu111:\n", + " Successfully uninstalled torch-1.10.0+cu111\n", + " Attempting uninstall: torchvision\n", + " Found existing installation: torchvision 0.11.1+cu111\n", + " Uninstalling torchvision-0.11.1+cu111:\n", + " Successfully uninstalled torchvision-0.11.1+cu111\n", + " Attempting uninstall: torchtext\n", + " Found existing installation: torchtext 0.11.0\n", + " Uninstalling torchtext-0.11.0:\n", + " Successfully uninstalled torchtext-0.11.0\n", + " Attempting uninstall: torchaudio\n", + " Found existing installation: torchaudio 0.10.0+cu111\n", + " Uninstalling torchaudio-0.10.0+cu111:\n", + " Successfully uninstalled torchaudio-0.10.0+cu111\n", + "Successfully installed torch-1.8.0+cu101 torchaudio-0.8.0 torchtext-0.9.0 torchvision-0.9.0+cu101\n", + "Looking in links: https://download.openmmlab.com/mmcv/dist/cu101/torch1.8.0/index.html\n", + "Collecting mmcv-full\n", + " Downloading https://download.openmmlab.com/mmcv/dist/cu101/torch1.8.0/mmcv_full-1.4.5-cp37-cp37m-manylinux1_x86_64.whl (60.7 MB)\n", + "\u001B[K |████████████████████████████████| 60.7 MB 66 kB/s \n", + "\u001B[?25hCollecting addict\n", + " Downloading addict-2.4.0-py3-none-any.whl (3.8 kB)\n", + "Requirement already satisfied: Pillow in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (7.1.2)\n", + "Requirement already satisfied: pyyaml in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (3.13)\n", + "Collecting yapf\n", + " Downloading yapf-0.32.0-py2.py3-none-any.whl (190 kB)\n", + "\u001B[K |████████████████████████████████| 190 kB 15.6 MB/s \n", + "\u001B[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (1.21.5)\n", + "Requirement already satisfied: packaging in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (21.3)\n", + "Requirement already satisfied: opencv-python>=3 in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (4.1.2.30)\n", + "Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging->mmcv-full) (3.0.7)\n", + "Installing collected packages: yapf, addict, mmcv-full\n", + "Successfully installed addict-2.4.0 mmcv-full-1.4.5 yapf-0.32.0\n", + "Cloning into 'mmaction2'...\n", + "remote: Enumerating objects: 15036, done.\u001B[K\n", + "remote: Counting objects: 100% (233/233), done.\u001B[K\n", + "remote: Compressing objects: 100% (192/192), done.\u001B[K\n", + "remote: Total 15036 (delta 86), reused 72 (delta 41), pack-reused 14803\u001B[K\n", + "Receiving objects: 100% (15036/15036), 49.25 MiB | 25.23 MiB/s, done.\n", + "Resolving deltas: 100% (10608/10608), done.\n", + "/content/mmaction2\n", + "Obtaining file:///content/mmaction2\n", + "Collecting decord>=0.4.1\n", + " Downloading decord-0.6.0-py3-none-manylinux2010_x86_64.whl (13.6 MB)\n", + "\u001B[K |████████████████████████████████| 13.6 MB 10.2 MB/s \n", + "\u001B[?25hCollecting einops\n", + " Downloading einops-0.4.0-py3-none-any.whl (28 kB)\n", + "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from mmaction2==0.21.0) (3.2.2)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmaction2==0.21.0) (1.21.5)\n", + "Requirement already satisfied: opencv-contrib-python in /usr/local/lib/python3.7/dist-packages (from mmaction2==0.21.0) (4.1.2.30)\n", + "Requirement already satisfied: Pillow in /usr/local/lib/python3.7/dist-packages (from mmaction2==0.21.0) (7.1.2)\n", + "Requirement already satisfied: scipy in /usr/local/lib/python3.7/dist-packages (from mmaction2==0.21.0) (1.4.1)\n", + "Requirement already satisfied: torch>=1.3 in /usr/local/lib/python3.7/dist-packages (from mmaction2==0.21.0) (1.8.0+cu101)\n", + "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from torch>=1.3->mmaction2==0.21.0) (3.10.0.2)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmaction2==0.21.0) (1.3.2)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmaction2==0.21.0) (2.8.2)\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmaction2==0.21.0) (3.0.7)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmaction2==0.21.0) (0.11.0)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib->mmaction2==0.21.0) (1.15.0)\n", + "Installing collected packages: einops, decord, mmaction2\n", + " Running setup.py develop for mmaction2\n", + "Successfully installed decord-0.6.0 einops-0.4.0 mmaction2-0.21.0\n", + "Collecting av\n", + " Downloading av-8.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (36.1 MB)\n", + "\u001B[K |████████████████████████████████| 36.1 MB 298 kB/s \n", + "\u001B[?25hRequirement already satisfied: imgaug in /usr/local/lib/python3.7/dist-packages (from -r requirements/optional.txt (line 2)) (0.2.9)\n", + "Requirement already satisfied: librosa in /usr/local/lib/python3.7/dist-packages (from -r requirements/optional.txt (line 3)) (0.8.1)\n", + "Requirement already satisfied: lmdb in /usr/local/lib/python3.7/dist-packages (from -r requirements/optional.txt (line 4)) (0.99)\n", + "Requirement already satisfied: moviepy in /usr/local/lib/python3.7/dist-packages (from -r requirements/optional.txt (line 5)) (0.2.3.5)\n", + "Collecting onnx\n", + " Downloading onnx-1.11.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (12.8 MB)\n", + "\u001B[K |████████████████████████████████| 12.8 MB 52.3 MB/s \n", + "\u001B[?25hCollecting onnxruntime\n", + " Downloading onnxruntime-1.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB)\n", + "\u001B[K |████████████████████████████████| 4.9 MB 51.6 MB/s \n", + "\u001B[?25hCollecting pims\n", + " Downloading PIMS-0.5.tar.gz (85 kB)\n", + "\u001B[K |████████████████████████████████| 85 kB 5.2 MB/s \n", + "\u001B[?25hCollecting PyTurboJPEG\n", + " Downloading PyTurboJPEG-1.6.5.tar.gz (11 kB)\n", + "Collecting timm\n", + " Downloading timm-0.5.4-py3-none-any.whl (431 kB)\n", + "\u001B[K |████████████████████████████████| 431 kB 64.7 MB/s \n", + "\u001B[?25hRequirement already satisfied: Pillow in /usr/local/lib/python3.7/dist-packages (from imgaug->-r requirements/optional.txt (line 2)) (7.1.2)\n", + "Requirement already satisfied: numpy>=1.15.0 in /usr/local/lib/python3.7/dist-packages (from imgaug->-r requirements/optional.txt (line 2)) (1.21.5)\n", + "Requirement already satisfied: scikit-image>=0.11.0 in /usr/local/lib/python3.7/dist-packages (from imgaug->-r requirements/optional.txt (line 2)) (0.18.3)\n", + "Requirement already satisfied: imageio in /usr/local/lib/python3.7/dist-packages (from imgaug->-r requirements/optional.txt (line 2)) (2.4.1)\n", + "Requirement already satisfied: opencv-python in /usr/local/lib/python3.7/dist-packages (from imgaug->-r requirements/optional.txt (line 2)) (4.1.2.30)\n", + "Requirement already satisfied: Shapely in /usr/local/lib/python3.7/dist-packages (from imgaug->-r requirements/optional.txt (line 2)) (1.8.0)\n", + "Requirement already satisfied: scipy in /usr/local/lib/python3.7/dist-packages (from imgaug->-r requirements/optional.txt (line 2)) (1.4.1)\n", + "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from imgaug->-r requirements/optional.txt (line 2)) (3.2.2)\n", + "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from imgaug->-r requirements/optional.txt (line 2)) (1.15.0)\n", + "Requirement already satisfied: PyWavelets>=1.1.1 in /usr/local/lib/python3.7/dist-packages (from scikit-image>=0.11.0->imgaug->-r requirements/optional.txt (line 2)) (1.2.0)\n", + "Requirement already satisfied: tifffile>=2019.7.26 in /usr/local/lib/python3.7/dist-packages (from scikit-image>=0.11.0->imgaug->-r requirements/optional.txt (line 2)) (2021.11.2)\n", + "Requirement already satisfied: networkx>=2.0 in /usr/local/lib/python3.7/dist-packages (from scikit-image>=0.11.0->imgaug->-r requirements/optional.txt (line 2)) (2.6.3)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->imgaug->-r requirements/optional.txt (line 2)) (1.3.2)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->imgaug->-r requirements/optional.txt (line 2)) (0.11.0)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->imgaug->-r requirements/optional.txt (line 2)) (2.8.2)\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->imgaug->-r requirements/optional.txt (line 2)) (3.0.7)\n", + "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.7/dist-packages (from librosa->-r requirements/optional.txt (line 3)) (21.3)\n", + "Requirement already satisfied: numba>=0.43.0 in /usr/local/lib/python3.7/dist-packages (from librosa->-r requirements/optional.txt (line 3)) (0.51.2)\n", + "Requirement already satisfied: resampy>=0.2.2 in /usr/local/lib/python3.7/dist-packages (from librosa->-r requirements/optional.txt (line 3)) (0.2.2)\n", + "Requirement already satisfied: decorator>=3.0.0 in /usr/local/lib/python3.7/dist-packages (from librosa->-r requirements/optional.txt (line 3)) (4.4.2)\n", + "Requirement already satisfied: soundfile>=0.10.2 in /usr/local/lib/python3.7/dist-packages (from librosa->-r requirements/optional.txt (line 3)) (0.10.3.post1)\n", + "Requirement already satisfied: scikit-learn!=0.19.0,>=0.14.0 in /usr/local/lib/python3.7/dist-packages (from librosa->-r requirements/optional.txt (line 3)) (1.0.2)\n", + "Requirement already satisfied: joblib>=0.14 in /usr/local/lib/python3.7/dist-packages (from librosa->-r requirements/optional.txt (line 3)) (1.1.0)\n", + "Requirement already satisfied: pooch>=1.0 in /usr/local/lib/python3.7/dist-packages (from librosa->-r requirements/optional.txt (line 3)) (1.6.0)\n", + "Requirement already satisfied: audioread>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from librosa->-r requirements/optional.txt (line 3)) (2.1.9)\n", + "Requirement already satisfied: setuptools in /usr/local/lib/python3.7/dist-packages (from numba>=0.43.0->librosa->-r requirements/optional.txt (line 3)) (57.4.0)\n", + "Requirement already satisfied: llvmlite<0.35,>=0.34.0.dev0 in /usr/local/lib/python3.7/dist-packages (from numba>=0.43.0->librosa->-r requirements/optional.txt (line 3)) (0.34.0)\n", + "Requirement already satisfied: requests>=2.19.0 in /usr/local/lib/python3.7/dist-packages (from pooch>=1.0->librosa->-r requirements/optional.txt (line 3)) (2.23.0)\n", + "Requirement already satisfied: appdirs>=1.3.0 in /usr/local/lib/python3.7/dist-packages (from pooch>=1.0->librosa->-r requirements/optional.txt (line 3)) (1.4.4)\n", + "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests>=2.19.0->pooch>=1.0->librosa->-r requirements/optional.txt (line 3)) (3.0.4)\n", + "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests>=2.19.0->pooch>=1.0->librosa->-r requirements/optional.txt (line 3)) (1.24.3)\n", + "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests>=2.19.0->pooch>=1.0->librosa->-r requirements/optional.txt (line 3)) (2.10)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests>=2.19.0->pooch>=1.0->librosa->-r requirements/optional.txt (line 3)) (2021.10.8)\n", + "Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from scikit-learn!=0.19.0,>=0.14.0->librosa->-r requirements/optional.txt (line 3)) (3.1.0)\n", + "Requirement already satisfied: cffi>=1.0 in /usr/local/lib/python3.7/dist-packages (from soundfile>=0.10.2->librosa->-r requirements/optional.txt (line 3)) (1.15.0)\n", + "Requirement already satisfied: pycparser in /usr/local/lib/python3.7/dist-packages (from cffi>=1.0->soundfile>=0.10.2->librosa->-r requirements/optional.txt (line 3)) (2.21)\n", + "Requirement already satisfied: tqdm<5.0,>=4.11.2 in /usr/local/lib/python3.7/dist-packages (from moviepy->-r requirements/optional.txt (line 5)) (4.62.3)\n", + "Requirement already satisfied: typing-extensions>=3.6.2.1 in /usr/local/lib/python3.7/dist-packages (from onnx->-r requirements/optional.txt (line 6)) (3.10.0.2)\n", + "Requirement already satisfied: protobuf>=3.12.2 in /usr/local/lib/python3.7/dist-packages (from onnx->-r requirements/optional.txt (line 6)) (3.17.3)\n", + "Requirement already satisfied: flatbuffers in /usr/local/lib/python3.7/dist-packages (from onnxruntime->-r requirements/optional.txt (line 7)) (2.0)\n", + "Collecting slicerator>=0.9.8\n", + " Downloading slicerator-1.0.0-py3-none-any.whl (9.3 kB)\n", + "Requirement already satisfied: torch>=1.4 in /usr/local/lib/python3.7/dist-packages (from timm->-r requirements/optional.txt (line 10)) (1.8.0+cu101)\n", + "Requirement already satisfied: torchvision in /usr/local/lib/python3.7/dist-packages (from timm->-r requirements/optional.txt (line 10)) (0.9.0+cu101)\n", + "Building wheels for collected packages: pims, PyTurboJPEG\n", + " Building wheel for pims (setup.py) ... \u001B[?25l\u001B[?25hdone\n", + " Created wheel for pims: filename=PIMS-0.5-py3-none-any.whl size=84325 sha256=acdeb0697c66e2b9cc49a549f9a3c67a35b36642e6724eeac9795e25e6d9de47\n", + " Stored in directory: /root/.cache/pip/wheels/75/02/a9/86571c38081ba4c1832eb95430b5d588dfa15a738e2a603737\n", + " Building wheel for PyTurboJPEG (setup.py) ... \u001B[?25l\u001B[?25hdone\n", + " Created wheel for PyTurboJPEG: filename=PyTurboJPEG-1.6.5-py3-none-any.whl size=12160 sha256=b5fffd01e16b4d2a1d2f4e1cd976501c1e3ea1b3872f91bf595f6c025735a4e0\n", + " Stored in directory: /root/.cache/pip/wheels/1b/6a/97/17286b24cd97dda462b5a886107f8663f1ccc7705f148b3850\n", + "Successfully built pims PyTurboJPEG\n", + "Installing collected packages: slicerator, timm, PyTurboJPEG, pims, onnxruntime, onnx, av\n", + "Successfully installed PyTurboJPEG-1.6.5 av-8.1.0 onnx-1.11.0 onnxruntime-1.10.0 pims-0.5 slicerator-1.0.0 timm-0.5.4\n" + ] + } + ], + "source": [ + "# install dependencies: (use cu111 because colab has CUDA 11.1)\n", + "!pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html\n", + "\n", + "# install mmcv-full thus we could use CUDA operators\n", + "!pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html\n", + "\n", + "# Install mmaction2\n", + "!rm -rf mmaction2\n", + "!git clone https://github.com/open-mmlab/mmaction2.git\n", + "%cd mmaction2\n", + "\n", + "!pip install -e .\n", + "\n", + "# Install some optional requirements\n", + "!pip install -r requirements/optional.txt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "No_zZAFpWC-a", + "outputId": "1f5dd76e-7749-4fc3-ee97-83c5e1700f29" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.8.0+cu101 True\n", + "0.21.0\n", + "10.1\n", + "GCC 7.3\n" + ] + } + ], + "source": [ + "# Check Pytorch installation\n", + "import torch, torchvision\n", + "print(torch.__version__, torch.cuda.is_available())\n", + "\n", + "# Check MMAction2 installation\n", + "import mmaction\n", + "print(mmaction.__version__)\n", + "\n", + "# Check MMCV installation\n", + "from mmcv.ops import get_compiling_cuda_version, get_compiler_version\n", + "print(get_compiling_cuda_version())\n", + "print(get_compiler_version())" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "pXf7oV5DWdab" + }, + "source": [ + "## Perform inference with a MMAction2 recognizer\n", + "MMAction2 already provides high level APIs to do inference and training." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "64CW6d_AaT-Q", + "outputId": "d08bfb9b-ab1e-451b-d3b2-89023a59766b" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2021-07-11 12:44:00-- https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth\n", + "Resolving download.openmmlab.com (download.openmmlab.com)... 47.88.36.78\n", + "Connecting to download.openmmlab.com (download.openmmlab.com)|47.88.36.78|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 97579339 (93M) [application/octet-stream]\n", + "Saving to: ‘checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth’\n", + "\n", + "checkpoints/tsn_r50 100%[===================>] 93.06M 11.4MB/s in 8.1s \n", + "\n", + "2021-07-11 12:44:09 (11.4 MB/s) - ‘checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth’ saved [97579339/97579339]\n", + "\n" + ] + } + ], + "source": [ + "!mkdir checkpoints\n", + "!wget -c https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \\\n", + " -O checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "HNZB7NoSabzj", + "outputId": "b2f9bd71-1490-44d3-81c6-5037d804f0b1" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Use load_from_local loader\n" + ] + } + ], + "source": [ + "from mmaction.apis import inference_recognizer, init_recognizer\n", + "\n", + "# Choose to use a config and initialize the recognizer\n", + "config = 'configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py'\n", + "# Setup a checkpoint file to load\n", + "checkpoint = 'checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth'\n", + "# Initialize the recognizer\n", + "model = init_recognizer(config, checkpoint, device='cuda:0')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "rEMsBnpHapAn" + }, + "outputs": [], + "source": [ + "# Use the recognizer to do inference\n", + "video = 'demo/demo.mp4'\n", + "label = 'tools/data/kinetics/label_map_k400.txt'\n", + "results = inference_recognizer(model, video)\n", + "\n", + "labels = open(label).readlines()\n", + "labels = [x.strip() for x in labels]\n", + "results = [(labels[k[0]], k[1]) for k in results]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "NIyJXqfWathq", + "outputId": "ca24528b-f99d-414a-fa50-456f6068b463" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "arm wrestling: 29.616438\n", + "rock scissors paper: 10.754841\n", + "shaking hands: 9.908401\n", + "clapping: 9.189913\n", + "massaging feet: 8.305307\n" + ] + } + ], + "source": [ + "# Let's show the results\n", + "for result in results:\n", + " print(f'{result[0]}: ', result[1])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QuZG8kZ2fJ5d" + }, + "source": [ + "## Train a recognizer on customized dataset\n", + "\n", + "To train a new recognizer, there are usually three things to do:\n", + "1. Support a new dataset\n", + "2. Modify the config\n", + "3. Train a new recognizer" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "neEFyxChfgiJ" + }, + "source": [ + "### Support a new dataset\n", + "\n", + "In this tutorial, we gives an example to convert the data into the format of existing datasets. Other methods and more advanced usages can be found in the [doc](/docs/tutorials/new_dataset.md)\n", + "\n", + "Firstly, let's download a tiny dataset obtained from [Kinetics-400](https://deepmind.com/research/open-source/open-source-datasets/kinetics/). We select 30 videos with their labels as train dataset and 10 videos with their labels as test dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "gjsUj9JzgUlJ", + "outputId": "61c4704d-db81-4ca5-ed16-e2454dbdfe8e" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "rm: cannot remove 'kinetics400_tiny.zip*': No such file or directory\n", + "--2021-07-11 12:44:29-- https://download.openmmlab.com/mmaction/kinetics400_tiny.zip\n", + "Resolving download.openmmlab.com (download.openmmlab.com)... 47.88.36.78\n", + "Connecting to download.openmmlab.com (download.openmmlab.com)|47.88.36.78|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 18308682 (17M) [application/zip]\n", + "Saving to: ‘kinetics400_tiny.zip’\n", + "\n", + "kinetics400_tiny.zi 100%[===================>] 17.46M 10.7MB/s in 1.6s \n", + "\n", + "2021-07-11 12:44:31 (10.7 MB/s) - ‘kinetics400_tiny.zip’ saved [18308682/18308682]\n", + "\n" + ] + } + ], + "source": [ + "# download, decompress the data\n", + "!rm kinetics400_tiny.zip*\n", + "!rm -rf kinetics400_tiny\n", + "!wget https://download.openmmlab.com/mmaction/kinetics400_tiny.zip\n", + "!unzip kinetics400_tiny.zip > /dev/null" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "AbZ-o7V6hNw4", + "outputId": "b091909c-def2-49b5-88c2-01b00802b162" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reading package lists...\n", + "Building dependency tree...\n", + "Reading state information...\n", + "The following NEW packages will be installed:\n", + " tree\n", + "0 upgraded, 1 newly installed, 0 to remove and 39 not upgraded.\n", + "Need to get 40.7 kB of archives.\n", + "After this operation, 105 kB of additional disk space will be used.\n", + "Get:1 http://archive.ubuntu.com/ubuntu bionic/universe amd64 tree amd64 1.7.0-5 [40.7 kB]\n", + "Fetched 40.7 kB in 0s (88.7 kB/s)\n", + "Selecting previously unselected package tree.\n", + "(Reading database ... 160815 files and directories currently installed.)\n", + "Preparing to unpack .../tree_1.7.0-5_amd64.deb ...\n", + "Unpacking tree (1.7.0-5) ...\n", + "Setting up tree (1.7.0-5) ...\n", + "Processing triggers for man-db (2.8.3-2ubuntu0.1) ...\n", + "kinetics400_tiny\n", + "├── kinetics_tiny_train_video.txt\n", + "├── kinetics_tiny_val_video.txt\n", + "├── train\n", + "│   ├── 27_CSXByd3s.mp4\n", + "│   ├── 34XczvTaRiI.mp4\n", + "│   ├── A-wiliK50Zw.mp4\n", + "│   ├── D32_1gwq35E.mp4\n", + "│   ├── D92m0HsHjcQ.mp4\n", + "│   ├── DbX8mPslRXg.mp4\n", + "│   ├── FMlSTTpN3VY.mp4\n", + "│   ├── h10B9SVE-nk.mp4\n", + "│   ├── h2YqqUhnR34.mp4\n", + "│   ├── iRuyZSKhHRg.mp4\n", + "│   ├── IyfILH9lBRo.mp4\n", + "│   ├── kFC3KY2bOP8.mp4\n", + "│   ├── LvcFDgCAXQs.mp4\n", + "│   ├── O46YA8tI530.mp4\n", + "│   ├── oMrZaozOvdQ.mp4\n", + "│   ├── oXy-e_P_cAI.mp4\n", + "│   ├── P5M-hAts7MQ.mp4\n", + "│   ├── phDqGd0NKoo.mp4\n", + "│   ├── PnOe3GZRVX8.mp4\n", + "│   ├── R8HXQkdgKWA.mp4\n", + "│   ├── RqnKtCEoEcA.mp4\n", + "│   ├── soEcZZsBmDs.mp4\n", + "│   ├── TkkZPZHbAKA.mp4\n", + "│   ├── T_TMNGzVrDk.mp4\n", + "│   ├── WaS0qwP46Us.mp4\n", + "│   ├── Wh_YPQdH1Zg.mp4\n", + "│   ├── WWP5HZJsg-o.mp4\n", + "│   ├── xGY2dP0YUjA.mp4\n", + "│   ├── yLC9CtWU5ws.mp4\n", + "│   └── ZQV4U2KQ370.mp4\n", + "└── val\n", + " ├── 0pVGiAU6XEA.mp4\n", + " ├── AQrbRSnRt8M.mp4\n", + " ├── b6Q_b7vgc7Q.mp4\n", + " ├── ddvJ6-faICE.mp4\n", + " ├── IcLztCtvhb8.mp4\n", + " ├── ik4BW3-SCts.mp4\n", + " ├── jqRrH30V0k4.mp4\n", + " ├── SU_x2LQqSLs.mp4\n", + " ├── u4Rm6srmIS8.mp4\n", + " └── y5Iu7XkTqV0.mp4\n", + "\n", + "2 directories, 42 files\n" + ] + } + ], + "source": [ + "# Check the directory structure of the tiny data\n", + "\n", + "# Install tree first\n", + "!apt-get -q install tree\n", + "!tree kinetics400_tiny" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "fTdi6dI0hY3g", + "outputId": "ffda0997-8d77-431a-d66e-2f273e80c756" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "D32_1gwq35E.mp4 0\n", + "iRuyZSKhHRg.mp4 1\n", + "oXy-e_P_cAI.mp4 0\n", + "34XczvTaRiI.mp4 1\n", + "h2YqqUhnR34.mp4 0\n", + "O46YA8tI530.mp4 0\n", + "kFC3KY2bOP8.mp4 1\n", + "WWP5HZJsg-o.mp4 1\n", + "phDqGd0NKoo.mp4 1\n", + "yLC9CtWU5ws.mp4 0\n", + "27_CSXByd3s.mp4 1\n", + "IyfILH9lBRo.mp4 1\n", + "T_TMNGzVrDk.mp4 1\n", + "TkkZPZHbAKA.mp4 0\n", + "PnOe3GZRVX8.mp4 1\n", + "soEcZZsBmDs.mp4 1\n", + "FMlSTTpN3VY.mp4 1\n", + "WaS0qwP46Us.mp4 0\n", + "A-wiliK50Zw.mp4 1\n", + "oMrZaozOvdQ.mp4 1\n", + "ZQV4U2KQ370.mp4 0\n", + "DbX8mPslRXg.mp4 1\n", + "h10B9SVE-nk.mp4 1\n", + "P5M-hAts7MQ.mp4 0\n", + "R8HXQkdgKWA.mp4 0\n", + "D92m0HsHjcQ.mp4 0\n", + "RqnKtCEoEcA.mp4 0\n", + "LvcFDgCAXQs.mp4 0\n", + "xGY2dP0YUjA.mp4 0\n", + "Wh_YPQdH1Zg.mp4 0\n" + ] + } + ], + "source": [ + "# After downloading the data, we need to check the annotation format\n", + "!cat kinetics400_tiny/kinetics_tiny_train_video.txt" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0bq0mxmEi29H" + }, + "source": [ + "According to the format defined in [`VideoDataset`](./datasets/video_dataset.py), each line indicates a sample video with the filepath and label, which are split with a whitespace." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Ht_DGJA9jQar" + }, + "source": [ + "### Modify the config\n", + "\n", + "In the next step, we need to modify the config for the training.\n", + "To accelerate the process, we finetune a recognizer using a pre-trained recognizer." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "LjCcmCKOjktc" + }, + "outputs": [], + "source": [ + "from mmcv import Config\n", + "cfg = Config.fromfile('./configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb.py')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tc8YhFFGjp3e" + }, + "source": [ + "Given a config that trains a TSN model on kinetics400-full dataset, we need to modify some values to use it for training TSN on Kinetics400-tiny dataset.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "tlhu9byjjt-K", + "outputId": "3b9a3c49-ace0-41d3-dd15-d6c8579755f8" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Config:\n", + "model = dict(\n", + " type='Recognizer2D',\n", + " backbone=dict(\n", + " type='ResNet',\n", + " pretrained='torchvision://resnet50',\n", + " depth=50,\n", + " norm_eval=False),\n", + " cls_head=dict(\n", + " type='TSNHead',\n", + " num_classes=2,\n", + " in_channels=2048,\n", + " spatial_type='avg',\n", + " consensus=dict(type='AvgConsensus', dim=1),\n", + " dropout_ratio=0.4,\n", + " init_std=0.01),\n", + " train_cfg=None,\n", + " test_cfg=dict(average_clips=None))\n", + "optimizer = dict(type='SGD', lr=7.8125e-05, momentum=0.9, weight_decay=0.0001)\n", + "optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2))\n", + "lr_config = dict(policy='step', step=[40, 80])\n", + "total_epochs = 10\n", + "checkpoint_config = dict(interval=5)\n", + "log_config = dict(interval=5, hooks=[dict(type='TextLoggerHook')])\n", + "dist_params = dict(backend='nccl')\n", + "log_level = 'INFO'\n", + "load_from = './checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth'\n", + "resume_from = None\n", + "workflow = [('train', 1)]\n", + "dataset_type = 'VideoDataset'\n", + "data_root = 'kinetics400_tiny/train/'\n", + "data_root_val = 'kinetics400_tiny/val/'\n", + "ann_file_train = 'kinetics400_tiny/kinetics_tiny_train_video.txt'\n", + "ann_file_val = 'kinetics400_tiny/kinetics_tiny_val_video.txt'\n", + "ann_file_test = 'kinetics400_tiny/kinetics_tiny_val_video.txt'\n", + "img_norm_cfg = dict(\n", + " mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False)\n", + "train_pipeline = [\n", + " dict(type='DecordInit'),\n", + " dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8),\n", + " dict(type='DecordDecode'),\n", + " dict(\n", + " type='MultiScaleCrop',\n", + " input_size=224,\n", + " scales=(1, 0.875, 0.75, 0.66),\n", + " random_crop=False,\n", + " max_wh_scale_gap=1),\n", + " dict(type='Resize', scale=(224, 224), keep_ratio=False),\n", + " dict(type='Flip', flip_ratio=0.5),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_bgr=False),\n", + " dict(type='FormatShape', input_format='NCHW'),\n", + " dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]),\n", + " dict(type='ToTensor', keys=['imgs', 'label'])\n", + "]\n", + "val_pipeline = [\n", + " dict(type='DecordInit'),\n", + " dict(\n", + " type='SampleFrames',\n", + " clip_len=1,\n", + " frame_interval=1,\n", + " num_clips=8,\n", + " test_mode=True),\n", + " dict(type='DecordDecode'),\n", + " dict(type='Resize', scale=(-1, 256)),\n", + " dict(type='CenterCrop', crop_size=224),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_bgr=False),\n", + " dict(type='FormatShape', input_format='NCHW'),\n", + " dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]),\n", + " dict(type='ToTensor', keys=['imgs'])\n", + "]\n", + "test_pipeline = [\n", + " dict(type='DecordInit'),\n", + " dict(\n", + " type='SampleFrames',\n", + " clip_len=1,\n", + " frame_interval=1,\n", + " num_clips=25,\n", + " test_mode=True),\n", + " dict(type='DecordDecode'),\n", + " dict(type='Resize', scale=(-1, 256)),\n", + " dict(type='ThreeCrop', crop_size=256),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_bgr=False),\n", + " dict(type='FormatShape', input_format='NCHW'),\n", + " dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]),\n", + " dict(type='ToTensor', keys=['imgs'])\n", + "]\n", + "data = dict(\n", + " videos_per_gpu=2,\n", + " workers_per_gpu=2,\n", + " train=dict(\n", + " type='VideoDataset',\n", + " ann_file='kinetics400_tiny/kinetics_tiny_train_video.txt',\n", + " data_prefix='kinetics400_tiny/train/',\n", + " pipeline=[\n", + " dict(type='DecordInit'),\n", + " dict(\n", + " type='SampleFrames', clip_len=1, frame_interval=1,\n", + " num_clips=8),\n", + " dict(type='DecordDecode'),\n", + " dict(\n", + " type='MultiScaleCrop',\n", + " input_size=224,\n", + " scales=(1, 0.875, 0.75, 0.66),\n", + " random_crop=False,\n", + " max_wh_scale_gap=1),\n", + " dict(type='Resize', scale=(224, 224), keep_ratio=False),\n", + " dict(type='Flip', flip_ratio=0.5),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_bgr=False),\n", + " dict(type='FormatShape', input_format='NCHW'),\n", + " dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]),\n", + " dict(type='ToTensor', keys=['imgs', 'label'])\n", + " ]),\n", + " val=dict(\n", + " type='VideoDataset',\n", + " ann_file='kinetics400_tiny/kinetics_tiny_val_video.txt',\n", + " data_prefix='kinetics400_tiny/val/',\n", + " pipeline=[\n", + " dict(type='DecordInit'),\n", + " dict(\n", + " type='SampleFrames',\n", + " clip_len=1,\n", + " frame_interval=1,\n", + " num_clips=8,\n", + " test_mode=True),\n", + " dict(type='DecordDecode'),\n", + " dict(type='Resize', scale=(-1, 256)),\n", + " dict(type='CenterCrop', crop_size=224),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_bgr=False),\n", + " dict(type='FormatShape', input_format='NCHW'),\n", + " dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]),\n", + " dict(type='ToTensor', keys=['imgs'])\n", + " ]),\n", + " test=dict(\n", + " type='VideoDataset',\n", + " ann_file='kinetics400_tiny/kinetics_tiny_val_video.txt',\n", + " data_prefix='kinetics400_tiny/val/',\n", + " pipeline=[\n", + " dict(type='DecordInit'),\n", + " dict(\n", + " type='SampleFrames',\n", + " clip_len=1,\n", + " frame_interval=1,\n", + " num_clips=25,\n", + " test_mode=True),\n", + " dict(type='DecordDecode'),\n", + " dict(type='Resize', scale=(-1, 256)),\n", + " dict(type='ThreeCrop', crop_size=256),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_bgr=False),\n", + " dict(type='FormatShape', input_format='NCHW'),\n", + " dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]),\n", + " dict(type='ToTensor', keys=['imgs'])\n", + " ]))\n", + "evaluation = dict(\n", + " interval=5,\n", + " metrics=['top_k_accuracy', 'mean_class_accuracy'],\n", + " save_best='auto')\n", + "work_dir = './tutorial_exps'\n", + "omnisource = False\n", + "seed = 0\n", + "gpu_ids = range(0, 1)\n", + "\n" + ] + } + ], + "source": [ + "from mmcv.runner import set_random_seed\n", + "\n", + "# Modify dataset type and path\n", + "cfg.dataset_type = 'VideoDataset'\n", + "cfg.data_root = 'kinetics400_tiny/train/'\n", + "cfg.data_root_val = 'kinetics400_tiny/val/'\n", + "cfg.ann_file_train = 'kinetics400_tiny/kinetics_tiny_train_video.txt'\n", + "cfg.ann_file_val = 'kinetics400_tiny/kinetics_tiny_val_video.txt'\n", + "cfg.ann_file_test = 'kinetics400_tiny/kinetics_tiny_val_video.txt'\n", + "\n", + "cfg.data.test.type = 'VideoDataset'\n", + "cfg.data.test.ann_file = 'kinetics400_tiny/kinetics_tiny_val_video.txt'\n", + "cfg.data.test.data_prefix = 'kinetics400_tiny/val/'\n", + "\n", + "cfg.data.train.type = 'VideoDataset'\n", + "cfg.data.train.ann_file = 'kinetics400_tiny/kinetics_tiny_train_video.txt'\n", + "cfg.data.train.data_prefix = 'kinetics400_tiny/train/'\n", + "\n", + "cfg.data.val.type = 'VideoDataset'\n", + "cfg.data.val.ann_file = 'kinetics400_tiny/kinetics_tiny_val_video.txt'\n", + "cfg.data.val.data_prefix = 'kinetics400_tiny/val/'\n", + "\n", + "# The flag is used to determine whether it is omnisource training\n", + "cfg.setdefault('omnisource', False)\n", + "# Modify num classes of the model in cls_head\n", + "cfg.model.cls_head.num_classes = 2\n", + "# We can use the pre-trained TSN model\n", + "cfg.load_from = './checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth'\n", + "\n", + "# Set up working dir to save files and logs.\n", + "cfg.work_dir = './tutorial_exps'\n", + "\n", + "# The original learning rate (LR) is set for 8-GPU training.\n", + "# We divide it by 8 since we only use one GPU.\n", + "cfg.data.videos_per_gpu = cfg.data.videos_per_gpu // 16\n", + "cfg.optimizer.lr = cfg.optimizer.lr / 8 / 16\n", + "cfg.total_epochs = 10\n", + "\n", + "# We can set the checkpoint saving interval to reduce the storage cost\n", + "cfg.checkpoint_config.interval = 5\n", + "# We can set the log print interval to reduce the the times of printing log\n", + "cfg.log_config.interval = 5\n", + "\n", + "# Set seed thus the results are more reproducible\n", + "cfg.seed = 0\n", + "set_random_seed(0, deterministic=False)\n", + "cfg.gpu_ids = range(1)\n", + "\n", + "# Save the best\n", + "cfg.evaluation.save_best='auto'\n", + "\n", + "\n", + "# We can initialize the logger for training and have a look\n", + "# at the final config used for training\n", + "print(f'Config:\\n{cfg.pretty_text}')\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tES-qnZ3k38Z" + }, + "source": [ + "### Train a new recognizer\n", + "\n", + "Finally, lets initialize the dataset and recognizer, then train a new recognizer!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "dDBWkdDRk6oz", + "outputId": "a85d80d7-b3c4-43f1-d49a-057e8036807f" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Use load_from_torchvision loader\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2021-07-11 13:00:46,931 - mmaction - INFO - These parameters in pretrained checkpoint are not loaded: {'fc.bias', 'fc.weight'}\n", + "/usr/local/lib/python3.7/dist-packages/torch/utils/data/dataloader.py:477: UserWarning: This DataLoader will create 4 worker processes in total. Our suggested max number of worker in current system is 2, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.\n", + " cpuset_checked))\n", + "2021-07-11 13:00:46,980 - mmaction - INFO - load checkpoint from ./checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth\n", + "2021-07-11 13:00:46,981 - mmaction - INFO - Use load_from_local loader\n", + "2021-07-11 13:00:47,071 - mmaction - WARNING - The model and loaded state dict do not match exactly\n", + "\n", + "size mismatch for cls_head.fc_cls.weight: copying a param with shape torch.Size([400, 2048]) from checkpoint, the shape in current model is torch.Size([2, 2048]).\n", + "size mismatch for cls_head.fc_cls.bias: copying a param with shape torch.Size([400]) from checkpoint, the shape in current model is torch.Size([2]).\n", + "2021-07-11 13:00:47,074 - mmaction - INFO - Start running, host: root@b465112b4add, work_dir: /content/mmaction2/tutorial_exps\n", + "2021-07-11 13:00:47,078 - mmaction - INFO - Hooks will be executed in the following order:\n", + "before_run:\n", + "(VERY_HIGH ) StepLrUpdaterHook \n", + "(NORMAL ) CheckpointHook \n", + "(NORMAL ) EvalHook \n", + "(VERY_LOW ) TextLoggerHook \n", + " -------------------- \n", + "before_train_epoch:\n", + "(VERY_HIGH ) StepLrUpdaterHook \n", + "(NORMAL ) EvalHook \n", + "(LOW ) IterTimerHook \n", + "(VERY_LOW ) TextLoggerHook \n", + " -------------------- \n", + "before_train_iter:\n", + "(VERY_HIGH ) StepLrUpdaterHook \n", + "(NORMAL ) EvalHook \n", + "(LOW ) IterTimerHook \n", + " -------------------- \n", + "after_train_iter:\n", + "(ABOVE_NORMAL) OptimizerHook \n", + "(NORMAL ) CheckpointHook \n", + "(NORMAL ) EvalHook \n", + "(LOW ) IterTimerHook \n", + "(VERY_LOW ) TextLoggerHook \n", + " -------------------- \n", + "after_train_epoch:\n", + "(NORMAL ) CheckpointHook \n", + "(NORMAL ) EvalHook \n", + "(VERY_LOW ) TextLoggerHook \n", + " -------------------- \n", + "before_val_epoch:\n", + "(LOW ) IterTimerHook \n", + "(VERY_LOW ) TextLoggerHook \n", + " -------------------- \n", + "before_val_iter:\n", + "(LOW ) IterTimerHook \n", + " -------------------- \n", + "after_val_iter:\n", + "(LOW ) IterTimerHook \n", + " -------------------- \n", + "after_val_epoch:\n", + "(VERY_LOW ) TextLoggerHook \n", + " -------------------- \n", + "2021-07-11 13:00:47,081 - mmaction - INFO - workflow: [('train', 1)], max: 10 epochs\n", + "/usr/local/lib/python3.7/dist-packages/mmcv/runner/hooks/evaluation.py:190: UserWarning: runner.meta is None. Creating an empty one.\n", + " warnings.warn('runner.meta is None. Creating an empty one.')\n", + "2021-07-11 13:00:51,802 - mmaction - INFO - Epoch [1][5/15]\tlr: 7.813e-05, eta: 0:02:16, time: 0.942, data_time: 0.730, memory: 2918, top1_acc: 0.4000, top5_acc: 1.0000, loss_cls: 0.7604, loss: 0.7604, grad_norm: 14.8813\n", + "2021-07-11 13:00:52,884 - mmaction - INFO - Epoch [1][10/15]\tlr: 7.813e-05, eta: 0:01:21, time: 0.217, data_time: 0.028, memory: 2918, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.6282, loss: 0.6282, grad_norm: 10.1834\n", + "2021-07-11 13:00:53,706 - mmaction - INFO - Epoch [1][15/15]\tlr: 7.813e-05, eta: 0:00:59, time: 0.164, data_time: 0.001, memory: 2918, top1_acc: 0.4000, top5_acc: 1.0000, loss_cls: 0.7165, loss: 0.7165, grad_norm: 10.8534\n", + "2021-07-11 13:00:57,724 - mmaction - INFO - Epoch [2][5/15]\tlr: 7.813e-05, eta: 0:01:09, time: 0.802, data_time: 0.596, memory: 2918, top1_acc: 0.3000, top5_acc: 1.0000, loss_cls: 0.7001, loss: 0.7001, grad_norm: 11.4311\n", + "2021-07-11 13:00:59,219 - mmaction - INFO - Epoch [2][10/15]\tlr: 7.813e-05, eta: 0:01:00, time: 0.296, data_time: 0.108, memory: 2918, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.6916, loss: 0.6916, grad_norm: 12.7101\n", + "2021-07-11 13:01:00,040 - mmaction - INFO - Epoch [2][15/15]\tlr: 7.813e-05, eta: 0:00:51, time: 0.167, data_time: 0.004, memory: 2918, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.6567, loss: 0.6567, grad_norm: 8.8837\n", + "2021-07-11 13:01:04,152 - mmaction - INFO - Epoch [3][5/15]\tlr: 7.813e-05, eta: 0:00:56, time: 0.820, data_time: 0.618, memory: 2918, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.6320, loss: 0.6320, grad_norm: 11.4025\n", + "2021-07-11 13:01:05,526 - mmaction - INFO - Epoch [3][10/15]\tlr: 7.813e-05, eta: 0:00:50, time: 0.276, data_time: 0.075, memory: 2918, top1_acc: 0.5000, top5_acc: 1.0000, loss_cls: 0.6542, loss: 0.6542, grad_norm: 10.6429\n", + "2021-07-11 13:01:06,350 - mmaction - INFO - Epoch [3][15/15]\tlr: 7.813e-05, eta: 0:00:44, time: 0.165, data_time: 0.001, memory: 2918, top1_acc: 0.2000, top5_acc: 1.0000, loss_cls: 0.7661, loss: 0.7661, grad_norm: 12.8421\n", + "2021-07-11 13:01:10,771 - mmaction - INFO - Epoch [4][5/15]\tlr: 7.813e-05, eta: 0:00:47, time: 0.883, data_time: 0.676, memory: 2918, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.6410, loss: 0.6410, grad_norm: 10.6697\n", + "2021-07-11 13:01:11,776 - mmaction - INFO - Epoch [4][10/15]\tlr: 7.813e-05, eta: 0:00:42, time: 0.201, data_time: 0.011, memory: 2918, top1_acc: 0.5000, top5_acc: 1.0000, loss_cls: 0.6949, loss: 0.6949, grad_norm: 10.5467\n", + "2021-07-11 13:01:12,729 - mmaction - INFO - Epoch [4][15/15]\tlr: 7.813e-05, eta: 0:00:38, time: 0.190, data_time: 0.026, memory: 2918, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.6290, loss: 0.6290, grad_norm: 11.2779\n", + "2021-07-11 13:01:16,816 - mmaction - INFO - Epoch [5][5/15]\tlr: 7.813e-05, eta: 0:00:38, time: 0.817, data_time: 0.608, memory: 2918, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.6011, loss: 0.6011, grad_norm: 9.1335\n", + "2021-07-11 13:01:18,176 - mmaction - INFO - Epoch [5][10/15]\tlr: 7.813e-05, eta: 0:00:35, time: 0.272, data_time: 0.080, memory: 2918, top1_acc: 0.5000, top5_acc: 1.0000, loss_cls: 0.6652, loss: 0.6652, grad_norm: 11.0616\n", + "2021-07-11 13:01:19,119 - mmaction - INFO - Epoch [5][15/15]\tlr: 7.813e-05, eta: 0:00:32, time: 0.188, data_time: 0.017, memory: 2918, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.6440, loss: 0.6440, grad_norm: 11.6473\n", + "2021-07-11 13:01:19,120 - mmaction - INFO - Saving checkpoint at 5 epochs\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 10/10, 4.9 task/s, elapsed: 2s, ETA: 0s" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2021-07-11 13:01:21,673 - mmaction - INFO - Evaluating top_k_accuracy ...\n", + "2021-07-11 13:01:21,677 - mmaction - INFO - \n", + "top1_acc\t0.7000\n", + "top5_acc\t1.0000\n", + "2021-07-11 13:01:21,679 - mmaction - INFO - Evaluating mean_class_accuracy ...\n", + "2021-07-11 13:01:21,682 - mmaction - INFO - \n", + "mean_acc\t0.7000\n", + "2021-07-11 13:01:22,264 - mmaction - INFO - Now best checkpoint is saved as best_top1_acc_epoch_5.pth.\n", + "2021-07-11 13:01:22,267 - mmaction - INFO - Best top1_acc is 0.7000 at 5 epoch.\n", + "2021-07-11 13:01:22,271 - mmaction - INFO - Epoch(val) [5][5]\ttop1_acc: 0.7000, top5_acc: 1.0000, mean_class_accuracy: 0.7000\n", + "2021-07-11 13:01:26,623 - mmaction - INFO - Epoch [6][5/15]\tlr: 7.813e-05, eta: 0:00:31, time: 0.868, data_time: 0.656, memory: 2918, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.6753, loss: 0.6753, grad_norm: 11.8640\n", + "2021-07-11 13:01:27,597 - mmaction - INFO - Epoch [6][10/15]\tlr: 7.813e-05, eta: 0:00:28, time: 0.195, data_time: 0.003, memory: 2918, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.6715, loss: 0.6715, grad_norm: 11.3347\n", + "2021-07-11 13:01:28,736 - mmaction - INFO - Epoch [6][15/15]\tlr: 7.813e-05, eta: 0:00:25, time: 0.228, data_time: 0.063, memory: 2918, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.5769, loss: 0.5769, grad_norm: 9.2541\n", + "2021-07-11 13:01:32,860 - mmaction - INFO - Epoch [7][5/15]\tlr: 7.813e-05, eta: 0:00:24, time: 0.822, data_time: 0.620, memory: 2918, top1_acc: 0.9000, top5_acc: 1.0000, loss_cls: 0.5379, loss: 0.5379, grad_norm: 8.0147\n", + "2021-07-11 13:01:34,340 - mmaction - INFO - Epoch [7][10/15]\tlr: 7.813e-05, eta: 0:00:22, time: 0.298, data_time: 0.109, memory: 2918, top1_acc: 0.5000, top5_acc: 1.0000, loss_cls: 0.6187, loss: 0.6187, grad_norm: 11.5244\n", + "2021-07-11 13:01:35,165 - mmaction - INFO - Epoch [7][15/15]\tlr: 7.813e-05, eta: 0:00:19, time: 0.165, data_time: 0.002, memory: 2918, top1_acc: 0.4000, top5_acc: 1.0000, loss_cls: 0.7063, loss: 0.7063, grad_norm: 12.4979\n", + "2021-07-11 13:01:39,435 - mmaction - INFO - Epoch [8][5/15]\tlr: 7.813e-05, eta: 0:00:17, time: 0.853, data_time: 0.641, memory: 2918, top1_acc: 1.0000, top5_acc: 1.0000, loss_cls: 0.5369, loss: 0.5369, grad_norm: 8.6545\n", + "2021-07-11 13:01:40,808 - mmaction - INFO - Epoch [8][10/15]\tlr: 7.813e-05, eta: 0:00:15, time: 0.275, data_time: 0.086, memory: 2918, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.6407, loss: 0.6407, grad_norm: 12.5537\n", + "2021-07-11 13:01:41,627 - mmaction - INFO - Epoch [8][15/15]\tlr: 7.813e-05, eta: 0:00:12, time: 0.164, data_time: 0.001, memory: 2918, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.6073, loss: 0.6073, grad_norm: 11.4028\n", + "2021-07-11 13:01:45,651 - mmaction - INFO - Epoch [9][5/15]\tlr: 7.813e-05, eta: 0:00:11, time: 0.803, data_time: 0.591, memory: 2918, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.5596, loss: 0.5596, grad_norm: 10.0821\n", + "2021-07-11 13:01:46,891 - mmaction - INFO - Epoch [9][10/15]\tlr: 7.813e-05, eta: 0:00:08, time: 0.248, data_time: 0.044, memory: 2918, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.6470, loss: 0.6470, grad_norm: 11.8979\n", + "2021-07-11 13:01:47,944 - mmaction - INFO - Epoch [9][15/15]\tlr: 7.813e-05, eta: 0:00:06, time: 0.211, data_time: 0.041, memory: 2918, top1_acc: 0.5000, top5_acc: 1.0000, loss_cls: 0.6657, loss: 0.6657, grad_norm: 12.0643\n", + "2021-07-11 13:01:52,200 - mmaction - INFO - Epoch [10][5/15]\tlr: 7.813e-05, eta: 0:00:04, time: 0.849, data_time: 0.648, memory: 2918, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.6310, loss: 0.6310, grad_norm: 11.5690\n", + "2021-07-11 13:01:53,707 - mmaction - INFO - Epoch [10][10/15]\tlr: 7.813e-05, eta: 0:00:02, time: 0.303, data_time: 0.119, memory: 2918, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.5178, loss: 0.5178, grad_norm: 9.3324\n", + "2021-07-11 13:01:54,520 - mmaction - INFO - Epoch [10][15/15]\tlr: 7.813e-05, eta: 0:00:00, time: 0.162, data_time: 0.001, memory: 2918, top1_acc: 0.5000, top5_acc: 1.0000, loss_cls: 0.6919, loss: 0.6919, grad_norm: 12.6688\n", + "2021-07-11 13:01:54,522 - mmaction - INFO - Saving checkpoint at 10 epochs\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 10/10, 5.9 task/s, elapsed: 2s, ETA: 0s" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2021-07-11 13:01:56,741 - mmaction - INFO - Evaluating top_k_accuracy ...\n", + "2021-07-11 13:01:56,743 - mmaction - INFO - \n", + "top1_acc\t1.0000\n", + "top5_acc\t1.0000\n", + "2021-07-11 13:01:56,749 - mmaction - INFO - Evaluating mean_class_accuracy ...\n", + "2021-07-11 13:01:56,750 - mmaction - INFO - \n", + "mean_acc\t1.0000\n", + "2021-07-11 13:01:57,267 - mmaction - INFO - Now best checkpoint is saved as best_top1_acc_epoch_10.pth.\n", + "2021-07-11 13:01:57,269 - mmaction - INFO - Best top1_acc is 1.0000 at 10 epoch.\n", + "2021-07-11 13:01:57,270 - mmaction - INFO - Epoch(val) [10][5]\ttop1_acc: 1.0000, top5_acc: 1.0000, mean_class_accuracy: 1.0000\n" + ] + } + ], + "source": [ + "import os.path as osp\n", + "\n", + "from mmaction.datasets import build_dataset\n", + "from mmaction.models import build_model\n", + "from mmaction.apis import train_model\n", + "\n", + "import mmcv\n", + "\n", + "# Build the dataset\n", + "datasets = [build_dataset(cfg.data.train)]\n", + "\n", + "# Build the recognizer\n", + "model = build_model(cfg.model, train_cfg=cfg.get('train_cfg'), test_cfg=cfg.get('test_cfg'))\n", + "\n", + "# Create work_dir\n", + "mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir))\n", + "train_model(model, datasets, cfg, distributed=False, validate=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "zdSd7oTLlxIf" + }, + "source": [ + "### Understand the log\n", + "From the log, we can have a basic understanding the training process and know how well the recognizer is trained.\n", + "\n", + "Firstly, the ResNet-50 backbone pre-trained on ImageNet is loaded, this is a common practice since training from scratch is more cost. The log shows that all the weights of the ResNet-50 backbone are loaded except the `fc.bias` and `fc.weight`.\n", + "\n", + "Second, since the dataset we are using is small, we loaded a TSN model and finetune it for action recognition.\n", + "The original TSN is trained on original Kinetics-400 dataset which contains 400 classes but Kinetics-400 Tiny dataset only have 2 classes. Therefore, the last FC layer of the pre-trained TSN for classification has different weight shape and is not used.\n", + "\n", + "Third, after training, the recognizer is evaluated by the default evaluation. The results show that the recognizer achieves 100% top1 accuracy and 100% top5 accuracy on the val dataset,\n", + " \n", + "Not bad!" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ryVoSfZVmogw" + }, + "source": [ + "## Test the trained recognizer\n", + "\n", + "After finetuning the recognizer, let's check the prediction results!" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "eyY3hCMwyTct", + "outputId": "ea54ff0a-4299-4e93-c1ca-4fe597e7516b" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ ] 0/10, elapsed: 0s, ETA:" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.7/dist-packages/torch/utils/data/dataloader.py:477: UserWarning: This DataLoader will create 4 worker processes in total. Our suggested max number of worker in current system is 2, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.\n", + " cpuset_checked))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 10/10, 2.2 task/s, elapsed: 5s, ETA: 0s\n", + "Evaluating top_k_accuracy ...\n", + "\n", + "top1_acc\t1.0000\n", + "top5_acc\t1.0000\n", + "\n", + "Evaluating mean_class_accuracy ...\n", + "\n", + "mean_acc\t1.0000\n", + "top1_acc: 1.0000\n", + "top5_acc: 1.0000\n", + "mean_class_accuracy: 1.0000\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/content/mmaction2/mmaction/datasets/base.py:166: UserWarning: Option arguments for metrics has been changed to `metric_options`, See 'https://github.com/open-mmlab/mmaction2/pull/286' for more details\n", + " 'Option arguments for metrics has been changed to '\n" + ] + } + ], + "source": [ + "from mmaction.apis import single_gpu_test\n", + "from mmaction.datasets import build_dataloader\n", + "from mmcv.parallel import MMDataParallel\n", + "\n", + "# Build a test dataloader\n", + "dataset = build_dataset(cfg.data.test, dict(test_mode=True))\n", + "data_loader = build_dataloader(\n", + " dataset,\n", + " videos_per_gpu=1,\n", + " workers_per_gpu=cfg.data.workers_per_gpu,\n", + " dist=False,\n", + " shuffle=False)\n", + "model = MMDataParallel(model, device_ids=[0])\n", + "outputs = single_gpu_test(model, data_loader)\n", + "\n", + "eval_config = cfg.evaluation\n", + "eval_config.pop('interval')\n", + "eval_res = dataset.evaluate(outputs, **eval_config)\n", + "for name, val in eval_res.items():\n", + " print(f'{name}: {val:.04f}')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jZ4t44nWmZDM" + }, + "source": [ + "## Perform Spatio-Temporal Detection\n", + "Here we first install MMDetection." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "w1p0_g76nHOQ", + "outputId": "b30a6be3-c457-452e-c789-7083117c5011" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/content\n", + "Cloning into 'mmdetection'...\n", + "remote: Enumerating objects: 23137, done.\u001B[K\n", + "remote: Total 23137 (delta 0), reused 0 (delta 0), pack-reused 23137\u001B[K\n", + "Receiving objects: 100% (23137/23137), 25.88 MiB | 25.75 MiB/s, done.\n", + "Resolving deltas: 100% (16198/16198), done.\n", + "/content/mmdetection\n", + "Obtaining file:///content/mmdetection\n", + "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from mmdet==2.21.0) (3.2.2)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmdet==2.21.0) (1.21.5)\n", + "Requirement already satisfied: pycocotools in /usr/local/lib/python3.7/dist-packages (from mmdet==2.21.0) (2.0.4)\n", + "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from mmdet==2.21.0) (1.15.0)\n", + "Collecting terminaltables\n", + " Downloading terminaltables-3.1.10-py2.py3-none-any.whl (15 kB)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmdet==2.21.0) (0.11.0)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmdet==2.21.0) (2.8.2)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmdet==2.21.0) (1.3.2)\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmdet==2.21.0) (3.0.7)\n", + "Installing collected packages: terminaltables, mmdet\n", + " Running setup.py develop for mmdet\n", + "Successfully installed mmdet-2.21.0 terminaltables-3.1.10\n", + "/content/mmaction2\n" + ] + } + ], + "source": [ + "# Git clone mmdetection repo\n", + "%cd ..\n", + "!git clone https://github.com/open-mmlab/mmdetection.git\n", + "%cd mmdetection\n", + "\n", + "# install mmdet\n", + "!pip install -e .\n", + "%cd ../mmaction2" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vlOQsH8OnVKn" + }, + "source": [ + "Download a video to `demo` directory in MMAction2." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "QaW3jg5Enish", + "outputId": "c70cde3a-b337-41d0-cb08-82dfc746d9ef" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2022-02-19 11:02:59-- https://download.openmmlab.com/mmaction/dataset/sample/1j20qq1JyX4.mp4\n", + "Resolving download.openmmlab.com (download.openmmlab.com)... 47.254.186.233\n", + "Connecting to download.openmmlab.com (download.openmmlab.com)|47.254.186.233|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 4864186 (4.6M) [video/mp4]\n", + "Saving to: ‘demo/1j20qq1JyX4.mp4’\n", + "\n", + "demo/1j20qq1JyX4.mp 100%[===================>] 4.64M 3.78MB/s in 1.2s \n", + "\n", + "2022-02-19 11:03:01 (3.78 MB/s) - ‘demo/1j20qq1JyX4.mp4’ saved [4864186/4864186]\n", + "\n" + ] + } + ], + "source": [ + "!wget https://download.openmmlab.com/mmaction/dataset/sample/1j20qq1JyX4.mp4 -O demo/1j20qq1JyX4.mp4" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "LYGxdu8Vnoah" + }, + "source": [ + "Run spatio-temporal demo." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "LPLiaHaYnrb7", + "outputId": "8a8f8a16-ad7b-4559-c19c-c8264533bff3" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Imageio: 'ffmpeg-linux64-v3.3.1' was not found on your computer; downloading it now.\n", + "Try 1. Download from https://github.com/imageio/imageio-binaries/raw/master/ffmpeg/ffmpeg-linux64-v3.3.1 (43.8 MB)\n", + "Downloading: 8192/45929032 bytes (0.0%)\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b3883008/45929032 bytes (8.5%)\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b7995392/45929032 bytes (17.4%)\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b11796480/45929032 bytes (25.7%)\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b16072704/45929032 bytes (35.0%)\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b20152320/45929032 bytes (43.9%)\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b24305664/45929032 bytes (52.9%)\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b28319744/45929032 bytes (61.7%)\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b32440320/45929032 bytes (70.6%)\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b36634624/45929032 bytes (79.8%)\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b40886272/45929032 bytes (89.0%)\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b45146112/45929032 bytes (98.3%)\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b45929032/45929032 bytes (100.0%)\n", + " Done\n", + "File saved as /root/.imageio/ffmpeg/ffmpeg-linux64-v3.3.1.\n", + "load checkpoint from http path: http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth\n", + "Downloading: \"http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth\" to /root/.cache/torch/hub/checkpoints/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth\n", + "100% 160M/160M [00:21<00:00, 7.77MB/s]\n", + "Performing Human Detection for each frame\n", + "[>>] 217/217, 8.6 task/s, elapsed: 25s, ETA: 0sload checkpoint from http path: https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201217-16378594.pth\n", + "Downloading: \"https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201217-16378594.pth\" to /root/.cache/torch/hub/checkpoints/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201217-16378594.pth\n", + "100% 228M/228M [00:31<00:00, 7.55MB/s]\n", + "Performing SpatioTemporal Action Detection for each clip\n", + "[> ] 167/217, 7.7 task/s, elapsed: 22s, ETA: 7sPerforming visualization\n", + "[MoviePy] >>>> Building video demo/stdet_demo.mp4\n", + "[MoviePy] Writing video demo/stdet_demo.mp4\n", + "100% 434/434 [00:12<00:00, 36.07it/s]\n", + "[MoviePy] Done.\n", + "[MoviePy] >>>> Video ready: demo/stdet_demo.mp4 \n", + "\n" + ] + } + ], + "source": [ + "!python demo/demo_spatiotemporal_det.py --video demo/1j20qq1JyX4.mp4" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 341 + }, + "id": "-0atQCzBo9-C", + "outputId": "b6bb3a67-669c-45d0-cdf4-25b6210362d0" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Check the video\n", + "from IPython.display import HTML\n", + "from base64 import b64encode\n", + "mp4 = open('demo/stdet_demo.mp4','rb').read()\n", + "data_url = \"data:video/mp4;base64,\" + b64encode(mp4).decode()\n", + "HTML(\"\"\"\n", + "\n", + "\"\"\" % data_url)" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "collapsed_sections": [], + "include_colab_link": true, + "name": "MMAction2 Tutorial.ipynb", + "provenance": [], + "toc_visible": true + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/openmmlab_test/mmaction2-0.24.1/demo/mmaction2_tutorial_zh-CN.ipynb b/openmmlab_test/mmaction2-0.24.1/demo/mmaction2_tutorial_zh-CN.ipynb new file mode 100644 index 00000000..57bad5e8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/demo/mmaction2_tutorial_zh-CN.ipynb @@ -0,0 +1,1665 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "view-in-github" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VcjSRFELVbNk" + }, + "source": [ + "# MMAction2 Tutorial\n", + "\n", + "- 用MMAction2的识别模型做一次推理\n", + "- 用新数据集训练一个新的识别模型\n", + "- 用MMAction2的时空检测模型做一次推理" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7LqHGkGEVqpm" + }, + "source": [ + "## 安装 MMAction2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "JUFfYElIB3cJ", + "outputId": "cdf9ef1d-9e85-4a77-9e63-fc6f3ca13ae2" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "torch 1.8.1+cu101 \n", + "torchsummary 1.5.1 \n", + "torchtext 0.9.1 \n", + "torchvision 0.9.1+cu101 \n" + ] + } + ], + "source": [ + "# 检查 nvcc,gcc 版本\n", + "!nvcc -V\n", + "!gcc --version" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "thuLEJ7lByQv", + "outputId": "4035efd5-103e-4122-8107-a65777937ce7" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in links: https://download.openmmlab.com/mmcv/dist/cu101/torch1.8.0/index.html\n", + "Collecting mmcv-full\n", + "\u001b[?25l Downloading https://download.openmmlab.com/mmcv/dist/cu101/torch1.8.0/mmcv_full-1.3.5-cp37-cp37m-manylinux1_x86_64.whl (31.2MB)\n", + "\u001b[K |████████████████████████████████| 31.2MB 96kB/s \n", + "\u001b[?25hRequirement already satisfied: pyyaml in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (3.13)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (1.19.5)\n", + "Collecting addict\n", + " Downloading https://files.pythonhosted.org/packages/6a/00/b08f23b7d7e1e14ce01419a467b583edbb93c6cdb8654e54a9cc579cd61f/addict-2.4.0-py3-none-any.whl\n", + "Requirement already satisfied: Pillow in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (7.1.2)\n", + "Requirement already satisfied: opencv-python>=3 in /usr/local/lib/python3.7/dist-packages (from mmcv-full) (4.1.2.30)\n", + "Collecting yapf\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/5f/0d/8814e79eb865eab42d95023b58b650d01dec6f8ea87fc9260978b1bf2167/yapf-0.31.0-py2.py3-none-any.whl (185kB)\n", + "\u001b[K |████████████████████████████████| 194kB 7.7MB/s \n", + "\u001b[?25hInstalling collected packages: addict, yapf, mmcv-full\n", + "Successfully installed addict-2.4.0 mmcv-full-1.3.5 yapf-0.31.0\n" + ] + } + ], + "source": [ + "# 安装 torch 及 torchvision\n", + "!pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html\n", + "\n", + "# 安装 mmcv-full\n", + "!pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html\n", + "\n", + "# 安装 mmaction2\n", + "!rm -rf mmaction2\n", + "!git clone https://github.com/open-mmlab/mmaction2.git\n", + "%cd mmaction2\n", + "\n", + "!pip install -e .\n", + "\n", + "# 安装其他可选依赖库\n", + "!pip install -r requirements/optional.txt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "qKiI1qelB6BT", + "outputId": "1d269eaa-814a-48f5-dfe9-f6952cf5e851" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cloning into 'mmaction2'...\n", + "remote: Enumerating objects: 11360, done.\u001b[K\n", + "remote: Counting objects: 100% (1029/1029), done.\u001b[K\n", + "remote: Compressing objects: 100% (587/587), done.\u001b[K\n", + "remote: Total 11360 (delta 603), reused 721 (delta 436), pack-reused 10331\u001b[K\n", + "Receiving objects: 100% (11360/11360), 37.17 MiB | 14.99 MiB/s, done.\n", + "Resolving deltas: 100% (7930/7930), done.\n", + "/content/mmaction2\n", + "Branch 'fix_nms_config' set up to track remote branch 'fix_nms_config' from 'origin'.\n", + "Switched to a new branch 'fix_nms_config'\n", + "Obtaining file:///content/mmaction2\n", + "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from mmaction2==0.15.0) (3.2.2)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmaction2==0.15.0) (1.19.5)\n", + "Requirement already satisfied: opencv-contrib-python in /usr/local/lib/python3.7/dist-packages (from mmaction2==0.15.0) (4.1.2.30)\n", + "Requirement already satisfied: Pillow in /usr/local/lib/python3.7/dist-packages (from mmaction2==0.15.0) (7.1.2)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmaction2==0.15.0) (1.3.1)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmaction2==0.15.0) (0.10.0)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmaction2==0.15.0) (2.8.1)\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmaction2==0.15.0) (2.4.7)\n", + "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from cycler>=0.10->matplotlib->mmaction2==0.15.0) (1.15.0)\n", + "Installing collected packages: mmaction2\n", + " Running setup.py develop for mmaction2\n", + "Successfully installed mmaction2\n", + "Collecting av\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/66/ff/bacde7314c646a2bd2f240034809a10cc3f8b096751284d0828640fff3dd/av-8.0.3-cp37-cp37m-manylinux2010_x86_64.whl (37.2MB)\n", + "\u001b[K |████████████████████████████████| 37.2MB 81kB/s \n", + "\u001b[?25hCollecting decord>=0.4.1\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/64/5e/e2be6a3a3a46275059574d9c6a1d422aa6c7c3cbf6614939b8a3c3f8f2d5/decord-0.5.2-py3-none-manylinux2010_x86_64.whl (14.1MB)\n", + "\u001b[K |████████████████████████████████| 14.1MB 225kB/s \n", + "\u001b[?25hRequirement already satisfied: imgaug in /usr/local/lib/python3.7/dist-packages (from -r requirements/optional.txt (line 3)) (0.2.9)\n", + "Requirement already satisfied: librosa in /usr/local/lib/python3.7/dist-packages (from -r requirements/optional.txt (line 4)) (0.8.0)\n", + "Requirement already satisfied: lmdb in /usr/local/lib/python3.7/dist-packages (from -r requirements/optional.txt (line 5)) (0.99)\n", + "Requirement already satisfied: moviepy in /usr/local/lib/python3.7/dist-packages (from -r requirements/optional.txt (line 6)) (0.2.3.5)\n", + "Collecting onnx\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/3f/9b/54c950d3256e27f970a83cd0504efb183a24312702deed0179453316dbd0/onnx-1.9.0-cp37-cp37m-manylinux2010_x86_64.whl (12.2MB)\n", + "\u001b[K |████████████████████████████████| 12.2MB 26.1MB/s \n", + "\u001b[?25hCollecting onnxruntime\n", + "\u001b[?25l Downloading https://files.pythonhosted.org/packages/f9/76/3d0f8bb2776961c7335693df06eccf8d099e48fa6fb552c7546867192603/onnxruntime-1.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5MB)\n", + "\u001b[K |████████████████████████████████| 4.5MB 35.9MB/s \n", + "\u001b[?25hCollecting PyTurboJPEG\n", + " Downloading https://files.pythonhosted.org/packages/07/70/8397de6c39476d2cc0fcee6082ade0225b3e67bc4466a0cf07486b0d0de4/PyTurboJPEG-1.5.0.tar.gz\n", + "Requirement already satisfied: numpy>=1.14.0 in /usr/local/lib/python3.7/dist-packages (from decord>=0.4.1->-r requirements/optional.txt (line 2)) (1.19.5)\n", + "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from imgaug->-r requirements/optional.txt (line 3)) (3.2.2)\n", + "Requirement already satisfied: imageio in /usr/local/lib/python3.7/dist-packages (from imgaug->-r requirements/optional.txt (line 3)) (2.4.1)\n", + "Requirement already satisfied: scikit-image>=0.11.0 in /usr/local/lib/python3.7/dist-packages (from imgaug->-r requirements/optional.txt (line 3)) (0.16.2)\n", + "Requirement already satisfied: Shapely in /usr/local/lib/python3.7/dist-packages (from imgaug->-r requirements/optional.txt (line 3)) (1.7.1)\n", + "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from imgaug->-r requirements/optional.txt (line 3)) (1.15.0)\n", + "Requirement already satisfied: Pillow in /usr/local/lib/python3.7/dist-packages (from imgaug->-r requirements/optional.txt (line 3)) (7.1.2)\n", + "Requirement already satisfied: opencv-python in /usr/local/lib/python3.7/dist-packages (from imgaug->-r requirements/optional.txt (line 3)) (4.1.2.30)\n", + "Requirement already satisfied: scipy in /usr/local/lib/python3.7/dist-packages (from imgaug->-r requirements/optional.txt (line 3)) (1.4.1)\n", + "Requirement already satisfied: audioread>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from librosa->-r requirements/optional.txt (line 4)) (2.1.9)\n", + "Requirement already satisfied: numba>=0.43.0 in /usr/local/lib/python3.7/dist-packages (from librosa->-r requirements/optional.txt (line 4)) (0.51.2)\n", + "Requirement already satisfied: resampy>=0.2.2 in /usr/local/lib/python3.7/dist-packages (from librosa->-r requirements/optional.txt (line 4)) (0.2.2)\n", + "Requirement already satisfied: pooch>=1.0 in /usr/local/lib/python3.7/dist-packages (from librosa->-r requirements/optional.txt (line 4)) (1.3.0)\n", + "Requirement already satisfied: joblib>=0.14 in /usr/local/lib/python3.7/dist-packages (from librosa->-r requirements/optional.txt (line 4)) (1.0.1)\n", + "Requirement already satisfied: decorator>=3.0.0 in /usr/local/lib/python3.7/dist-packages (from librosa->-r requirements/optional.txt (line 4)) (4.4.2)\n", + "Requirement already satisfied: soundfile>=0.9.0 in /usr/local/lib/python3.7/dist-packages (from librosa->-r requirements/optional.txt (line 4)) (0.10.3.post1)\n", + "Requirement already satisfied: scikit-learn!=0.19.0,>=0.14.0 in /usr/local/lib/python3.7/dist-packages (from librosa->-r requirements/optional.txt (line 4)) (0.22.2.post1)\n", + "Requirement already satisfied: tqdm<5.0,>=4.11.2 in /usr/local/lib/python3.7/dist-packages (from moviepy->-r requirements/optional.txt (line 6)) (4.41.1)\n", + "Requirement already satisfied: protobuf in /usr/local/lib/python3.7/dist-packages (from onnx->-r requirements/optional.txt (line 7)) (3.12.4)\n", + "Requirement already satisfied: typing-extensions>=3.6.2.1 in /usr/local/lib/python3.7/dist-packages (from onnx->-r requirements/optional.txt (line 7)) (3.7.4.3)\n", + "Requirement already satisfied: flatbuffers in /usr/local/lib/python3.7/dist-packages (from onnxruntime->-r requirements/optional.txt (line 8)) (1.12)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->imgaug->-r requirements/optional.txt (line 3)) (2.8.1)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->imgaug->-r requirements/optional.txt (line 3)) (0.10.0)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->imgaug->-r requirements/optional.txt (line 3)) (1.3.1)\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->imgaug->-r requirements/optional.txt (line 3)) (2.4.7)\n", + "Requirement already satisfied: networkx>=2.0 in /usr/local/lib/python3.7/dist-packages (from scikit-image>=0.11.0->imgaug->-r requirements/optional.txt (line 3)) (2.5.1)\n", + "Requirement already satisfied: PyWavelets>=0.4.0 in /usr/local/lib/python3.7/dist-packages (from scikit-image>=0.11.0->imgaug->-r requirements/optional.txt (line 3)) (1.1.1)\n", + "Requirement already satisfied: setuptools in /usr/local/lib/python3.7/dist-packages (from numba>=0.43.0->librosa->-r requirements/optional.txt (line 4)) (57.0.0)\n", + "Requirement already satisfied: llvmlite<0.35,>=0.34.0.dev0 in /usr/local/lib/python3.7/dist-packages (from numba>=0.43.0->librosa->-r requirements/optional.txt (line 4)) (0.34.0)\n", + "Requirement already satisfied: packaging in /usr/local/lib/python3.7/dist-packages (from pooch>=1.0->librosa->-r requirements/optional.txt (line 4)) (20.9)\n", + "Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from pooch>=1.0->librosa->-r requirements/optional.txt (line 4)) (2.23.0)\n", + "Requirement already satisfied: appdirs in /usr/local/lib/python3.7/dist-packages (from pooch>=1.0->librosa->-r requirements/optional.txt (line 4)) (1.4.4)\n", + "Requirement already satisfied: cffi>=1.0 in /usr/local/lib/python3.7/dist-packages (from soundfile>=0.9.0->librosa->-r requirements/optional.txt (line 4)) (1.14.5)\n", + "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests->pooch>=1.0->librosa->-r requirements/optional.txt (line 4)) (1.24.3)\n", + "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->pooch>=1.0->librosa->-r requirements/optional.txt (line 4)) (3.0.4)\n", + "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->pooch>=1.0->librosa->-r requirements/optional.txt (line 4)) (2.10)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests->pooch>=1.0->librosa->-r requirements/optional.txt (line 4)) (2020.12.5)\n", + "Requirement already satisfied: pycparser in /usr/local/lib/python3.7/dist-packages (from cffi>=1.0->soundfile>=0.9.0->librosa->-r requirements/optional.txt (line 4)) (2.20)\n", + "Building wheels for collected packages: PyTurboJPEG\n", + " Building wheel for PyTurboJPEG (setup.py) ... \u001b[?25l\u001b[?25hdone\n", + " Created wheel for PyTurboJPEG: filename=PyTurboJPEG-1.5.0-cp37-none-any.whl size=7478 sha256=ea928a968966ea04f37722e3866c986be613835f0598c242df7e44e6e9d6749b\n", + " Stored in directory: /root/.cache/pip/wheels/87/62/6a/834c085b372ce84e5f95addd832a860edd356711b9c7918424\n", + "Successfully built PyTurboJPEG\n", + "Installing collected packages: av, decord, onnx, onnxruntime, PyTurboJPEG\n", + "Successfully installed PyTurboJPEG-1.5.0 av-8.0.3 decord-0.5.2 onnx-1.9.0 onnxruntime-1.8.0\n" + ] + }, + { + "data": { + "application/vnd.colab-display-data+json": { + "pip_warning": { + "packages": [ + "numpy" + ] + } + } + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "# 克隆mmaction2项目\n", + "# %cd /content/\n", + "# !rm -rf mmaction2\n", + "# !git clone https://github.com/open-mmlab/mmaction2.git\n", + "!git clone https://github.com/wangruohui/mmaction2.git\n", + "%cd /content/mmaction2\n", + "!git checkout fix_nms_config\n", + "\n", + "# 以可编辑的模式安装mmaction\n", + "!pip install -e .\n", + "\n", + "# 安装一些额外的依赖\n", + "!pip install -r requirements/optional.txt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "No_zZAFpWC-a", + "outputId": "ff4558ab-30ca-42b3-bf4b-27116d0629f7" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.8.1+cu101 True\n", + "0.15.0\n", + "10.1\n", + "GCC 7.3\n" + ] + } + ], + "source": [ + "# 检查torch的安装以及gpu的使用\n", + "import torch, torchvision\n", + "print(torch.__version__, torch.cuda.is_available())\n", + "\n", + "# 检查MMAction2的安装\n", + "import mmaction\n", + "print(mmaction.__version__)\n", + "\n", + "# 检查mmcv的安装\n", + "from mmcv.ops import get_compiling_cuda_version, get_compiler_version\n", + "print(get_compiling_cuda_version())\n", + "print(get_compiler_version())" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "pXf7oV5DWdab" + }, + "source": [ + "## MMAction2识别模型的推理" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "64CW6d_AaT-Q", + "outputId": "8b1b0465-62a9-4a8b-b1a4-278a5f81945d" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2021-06-03 15:01:35-- https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth\n", + "Resolving download.openmmlab.com (download.openmmlab.com)... 47.88.36.78\n", + "Connecting to download.openmmlab.com (download.openmmlab.com)|47.88.36.78|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 97579339 (93M) [application/octet-stream]\n", + "Saving to: ‘checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth’\n", + "\n", + "checkpoints/tsn_r50 100%[===================>] 93.06M 11.1MB/s in 8.2s \n", + "\n", + "2021-06-03 15:01:44 (11.4 MB/s) - ‘checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth’ saved [97579339/97579339]\n", + "\n" + ] + } + ], + "source": [ + "# 创建checkpoints文件夹并下载tsn模型\n", + "!mkdir checkpoints\n", + "!wget -c https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \\\n", + " -O checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "HNZB7NoSabzj" + }, + "outputs": [], + "source": [ + "from mmaction.apis import inference_recognizer, init_recognizer\n", + "\n", + "# 选择tsn对应的配置文件\n", + "config = 'configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py'\n", + "# 加载上面下载的checkpoint文件\n", + "checkpoint = 'checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth'\n", + "# 初始化模型\n", + "model = init_recognizer(config, checkpoint, device='cuda:0')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "rEMsBnpHapAn" + }, + "outputs": [], + "source": [ + "# 选择视频进行推理\n", + "video = 'demo/demo.mp4'\n", + "label = 'tools/data/kinetics/label_map_k400.txt'\n", + "results = inference_recognizer(model, video)\n", + "\n", + "labels = open(label).readlines()\n", + "labels = [x.strip() for x in labels]\n", + "results = [(labels[k[0]], k[1]) for k in results]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "YqtUNVTQyLMJ" + }, + "outputs": [], + "source": [ + "# 查看视频\n", + "from IPython.display import HTML\n", + "from base64 import b64encode\n", + "mp4 = open(video,'rb').read()\n", + "data_url = \"data:video/mp4;base64,\" + b64encode(mp4).decode()\n", + "HTML(\"\"\"\n", + "\n", + "\"\"\" % data_url)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "NIyJXqfWathq" + }, + "outputs": [], + "source": [ + "# 查看推理Top-5结果\n", + "for result in results:\n", + " print(f'{result[0]}: ', result[1])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QuZG8kZ2fJ5d" + }, + "source": [ + "## 在自定义数据集上训练模型\n", + "训练新模型通常有三个步骤:\n", + "- 支持新数据集\n", + "- 修改配置文件\n", + "- 训练模型\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kbVu0-D-1JT2" + }, + "source": [ + "### 支持新数据集\n", + "\n", + "这里我们给出将数据转换为已有数据集格式的示例。其他方法可以参考[doc](/docs/tutorials/new_dataset.md)\n", + "\n", + "用到的是一个从[Kinetics-400](https://deepmind.com/research/open-source/open-source-datasets/kinetics/)中获取的tiny数据集。包含30个训练视频,10个测试视频。" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "gjsUj9JzgUlJ", + "outputId": "7aa8f278-95c2-4073-8c93-2e197e12c6c2" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "rm: cannot remove 'kinetics400_tiny.zip*': No such file or directory\n", + "--2021-06-03 14:55:03-- https://download.openmmlab.com/mmaction/kinetics400_tiny.zip\n", + "Resolving download.openmmlab.com (download.openmmlab.com)... 47.88.36.78\n", + "Connecting to download.openmmlab.com (download.openmmlab.com)|47.88.36.78|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 18308682 (17M) [application/zip]\n", + "Saving to: ‘kinetics400_tiny.zip’\n", + "\n", + "kinetics400_tiny.zi 100%[===================>] 17.46M 10.5MB/s in 1.7s \n", + "\n", + "2021-06-03 14:55:07 (10.5 MB/s) - ‘kinetics400_tiny.zip’ saved [18308682/18308682]\n", + "\n" + ] + } + ], + "source": [ + "# 下载并解压数据集kinetics400_tiny\n", + "!rm kinetics400_tiny.zip*\n", + "!rm -rf kinetics400_tiny\n", + "!wget https://download.openmmlab.com/mmaction/kinetics400_tiny.zip\n", + "!unzip kinetics400_tiny.zip > /dev/null" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "AbZ-o7V6hNw4" + }, + "outputs": [], + "source": [ + "# 安装tree工具并检查数据集目录结构\n", + "!apt-get -q install tree\n", + "!tree kinetics400_tiny" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "fTdi6dI0hY3g" + }, + "outputs": [], + "source": [ + "# 查看标注文件格式\n", + "!cat kinetics400_tiny/kinetics_tiny_train_video.txt" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0bq0mxmEi29H" + }, + "source": [ + "根据[`VideoDataset`](./datasets/video_dataset.py)中定义的格式,每一行表示样本视频的文件名和标签,用空格符分隔。\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Ht_DGJA9jQar" + }, + "source": [ + "### 修改配置文件\n", + "\n", + "我们需要修改配置文件,同时会用到之前下载的checkpoint作为pre-trained模型。\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "LjCcmCKOjktc" + }, + "outputs": [], + "source": [ + "# 获得tsn对应的配置文件cfg\n", + "from mmcv import Config\n", + "cfg = Config.fromfile('./configs/recognition/tsn/tsn_r50_video_1x1x8_100e_kinetics400_rgb.py')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tc8YhFFGjp3e" + }, + "source": [ + "我们在原本用于kinetics400-full数据集训练的tsn模型配置上进行修改,让模型可以在Kinetics400-tiny数据集上进行训练。\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "tlhu9byjjt-K", + "outputId": "a1c04b76-9305-497d-9a97-cef55491a7ab" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Config:\n", + "model = dict(\n", + " type='Recognizer2D',\n", + " backbone=dict(\n", + " type='ResNet',\n", + " pretrained='torchvision://resnet50',\n", + " depth=50,\n", + " norm_eval=False),\n", + " cls_head=dict(\n", + " type='TSNHead',\n", + " num_classes=2,\n", + " in_channels=2048,\n", + " spatial_type='avg',\n", + " consensus=dict(type='AvgConsensus', dim=1),\n", + " dropout_ratio=0.4,\n", + " init_std=0.01),\n", + " train_cfg=None,\n", + " test_cfg=dict(average_clips=None))\n", + "optimizer = dict(type='SGD', lr=7.8125e-05, momentum=0.9, weight_decay=0.0001)\n", + "optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2))\n", + "lr_config = dict(policy='step', step=[40, 80])\n", + "total_epochs = 30\n", + "checkpoint_config = dict(interval=10)\n", + "log_config = dict(interval=5, hooks=[dict(type='TextLoggerHook')])\n", + "dist_params = dict(backend='nccl')\n", + "log_level = 'INFO'\n", + "load_from = './checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth'\n", + "resume_from = None\n", + "workflow = [('train', 1)]\n", + "dataset_type = 'VideoDataset'\n", + "data_root = 'kinetics400_tiny/train/'\n", + "data_root_val = 'kinetics400_tiny/val/'\n", + "ann_file_train = 'kinetics400_tiny/kinetics_tiny_train_video.txt'\n", + "ann_file_val = 'kinetics400_tiny/kinetics_tiny_val_video.txt'\n", + "ann_file_test = 'kinetics400_tiny/kinetics_tiny_val_video.txt'\n", + "img_norm_cfg = dict(\n", + " mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False)\n", + "train_pipeline = [\n", + " dict(type='DecordInit'),\n", + " dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=8),\n", + " dict(type='DecordDecode'),\n", + " dict(\n", + " type='MultiScaleCrop',\n", + " input_size=224,\n", + " scales=(1, 0.875, 0.75, 0.66),\n", + " random_crop=False,\n", + " max_wh_scale_gap=1),\n", + " dict(type='Resize', scale=(224, 224), keep_ratio=False),\n", + " dict(type='Flip', flip_ratio=0.5),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_bgr=False),\n", + " dict(type='FormatShape', input_format='NCHW'),\n", + " dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]),\n", + " dict(type='ToTensor', keys=['imgs', 'label'])\n", + "]\n", + "val_pipeline = [\n", + " dict(type='DecordInit'),\n", + " dict(\n", + " type='SampleFrames',\n", + " clip_len=1,\n", + " frame_interval=1,\n", + " num_clips=8,\n", + " test_mode=True),\n", + " dict(type='DecordDecode'),\n", + " dict(type='Resize', scale=(-1, 256)),\n", + " dict(type='CenterCrop', crop_size=224),\n", + " dict(type='Flip', flip_ratio=0),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_bgr=False),\n", + " dict(type='FormatShape', input_format='NCHW'),\n", + " dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]),\n", + " dict(type='ToTensor', keys=['imgs'])\n", + "]\n", + "test_pipeline = [\n", + " dict(type='DecordInit'),\n", + " dict(\n", + " type='SampleFrames',\n", + " clip_len=1,\n", + " frame_interval=1,\n", + " num_clips=25,\n", + " test_mode=True),\n", + " dict(type='DecordDecode'),\n", + " dict(type='Resize', scale=(-1, 256)),\n", + " dict(type='ThreeCrop', crop_size=256),\n", + " dict(type='Flip', flip_ratio=0),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_bgr=False),\n", + " dict(type='FormatShape', input_format='NCHW'),\n", + " dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]),\n", + " dict(type='ToTensor', keys=['imgs'])\n", + "]\n", + "data = dict(\n", + " videos_per_gpu=2,\n", + " workers_per_gpu=2,\n", + " train=dict(\n", + " type='VideoDataset',\n", + " ann_file='kinetics400_tiny/kinetics_tiny_train_video.txt',\n", + " data_prefix='kinetics400_tiny/train/',\n", + " pipeline=[\n", + " dict(type='DecordInit'),\n", + " dict(\n", + " type='SampleFrames', clip_len=1, frame_interval=1,\n", + " num_clips=8),\n", + " dict(type='DecordDecode'),\n", + " dict(\n", + " type='MultiScaleCrop',\n", + " input_size=224,\n", + " scales=(1, 0.875, 0.75, 0.66),\n", + " random_crop=False,\n", + " max_wh_scale_gap=1),\n", + " dict(type='Resize', scale=(224, 224), keep_ratio=False),\n", + " dict(type='Flip', flip_ratio=0.5),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_bgr=False),\n", + " dict(type='FormatShape', input_format='NCHW'),\n", + " dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]),\n", + " dict(type='ToTensor', keys=['imgs', 'label'])\n", + " ]),\n", + " val=dict(\n", + " type='VideoDataset',\n", + " ann_file='kinetics400_tiny/kinetics_tiny_val_video.txt',\n", + " data_prefix='kinetics400_tiny/val/',\n", + " pipeline=[\n", + " dict(type='DecordInit'),\n", + " dict(\n", + " type='SampleFrames',\n", + " clip_len=1,\n", + " frame_interval=1,\n", + " num_clips=8,\n", + " test_mode=True),\n", + " dict(type='DecordDecode'),\n", + " dict(type='Resize', scale=(-1, 256)),\n", + " dict(type='CenterCrop', crop_size=224),\n", + " dict(type='Flip', flip_ratio=0),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_bgr=False),\n", + " dict(type='FormatShape', input_format='NCHW'),\n", + " dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]),\n", + " dict(type='ToTensor', keys=['imgs'])\n", + " ]),\n", + " test=dict(\n", + " type='VideoDataset',\n", + " ann_file='kinetics400_tiny/kinetics_tiny_val_video.txt',\n", + " data_prefix='kinetics400_tiny/val/',\n", + " pipeline=[\n", + " dict(type='DecordInit'),\n", + " dict(\n", + " type='SampleFrames',\n", + " clip_len=1,\n", + " frame_interval=1,\n", + " num_clips=25,\n", + " test_mode=True),\n", + " dict(type='DecordDecode'),\n", + " dict(type='Resize', scale=(-1, 256)),\n", + " dict(type='ThreeCrop', crop_size=256),\n", + " dict(type='Flip', flip_ratio=0),\n", + " dict(\n", + " type='Normalize',\n", + " mean=[123.675, 116.28, 103.53],\n", + " std=[58.395, 57.12, 57.375],\n", + " to_bgr=False),\n", + " dict(type='FormatShape', input_format='NCHW'),\n", + " dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]),\n", + " dict(type='ToTensor', keys=['imgs'])\n", + " ]))\n", + "evaluation = dict(\n", + " interval=5, metrics=['top_k_accuracy', 'mean_class_accuracy'])\n", + "work_dir = './tutorial_exps'\n", + "omnisource = False\n", + "seed = 0\n", + "gpu_ids = range(0, 1)\n", + "\n" + ] + } + ], + "source": [ + "from mmcv.runner import set_random_seed\n", + "\n", + "# 修改数据集类型和各个文件路径\n", + "cfg.dataset_type = 'VideoDataset'\n", + "cfg.data_root = 'kinetics400_tiny/train/'\n", + "cfg.data_root_val = 'kinetics400_tiny/val/'\n", + "cfg.ann_file_train = 'kinetics400_tiny/kinetics_tiny_train_video.txt'\n", + "cfg.ann_file_val = 'kinetics400_tiny/kinetics_tiny_val_video.txt'\n", + "cfg.ann_file_test = 'kinetics400_tiny/kinetics_tiny_val_video.txt'\n", + "\n", + "cfg.data.test.type = 'VideoDataset'\n", + "cfg.data.test.ann_file = 'kinetics400_tiny/kinetics_tiny_val_video.txt'\n", + "cfg.data.test.data_prefix = 'kinetics400_tiny/val/'\n", + "\n", + "cfg.data.train.type = 'VideoDataset'\n", + "cfg.data.train.ann_file = 'kinetics400_tiny/kinetics_tiny_train_video.txt'\n", + "cfg.data.train.data_prefix = 'kinetics400_tiny/train/'\n", + "\n", + "cfg.data.val.type = 'VideoDataset'\n", + "cfg.data.val.ann_file = 'kinetics400_tiny/kinetics_tiny_val_video.txt'\n", + "cfg.data.val.data_prefix = 'kinetics400_tiny/val/'\n", + "\n", + "# 这里用于确认是否使用到omnisource训练\n", + "cfg.setdefault('omnisource', False)\n", + "# 修改cls_head中类别数为2\n", + "cfg.model.cls_head.num_classes = 2\n", + "# 使用预训练好的tsn模型\n", + "cfg.load_from = './checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth'\n", + "\n", + "# 设置工作目录\n", + "cfg.work_dir = './tutorial_exps'\n", + "\n", + "# 由于是单卡训练,修改对应的lr\n", + "cfg.data.videos_per_gpu = cfg.data.videos_per_gpu // 16\n", + "cfg.optimizer.lr = cfg.optimizer.lr / 8 / 16\n", + "cfg.total_epochs = 30\n", + "\n", + "# 设置存档点间隔减少存储空间的消耗\n", + "cfg.checkpoint_config.interval = 10\n", + "# 设置日志打印间隔减少打印时间\n", + "cfg.log_config.interval = 5\n", + "\n", + "# 固定随机种子使得结果可复现\n", + "cfg.seed = 0\n", + "set_random_seed(0, deterministic=False)\n", + "cfg.gpu_ids = range(1)\n", + "\n", + "# 打印所有的配置参数\n", + "print(f'Config:\\n{cfg.pretty_text}')\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tES-qnZ3k38Z" + }, + "source": [ + "### 训练识别模型\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000, + "referenced_widgets": [ + "81bfbdf1ec55451b8be8a68fd1b0cf18", + "4a9a4d1a6a554315a7d4362fd9ef0290", + "c992b295041a4908a6a0d4f62a542cca", + "57f2df1708fa455ea8a305b9100ad171", + "8c947d1afee142e4b6cd2e0e26f46d6f", + "adf3a16cdae740cf882999a25d53e8f7", + "e6b45b124776452a85136fc3e18502f6", + "974f4fceb03748f1b346b498df9828a3" + ] + }, + "id": "dDBWkdDRk6oz", + "outputId": "574904cc-29fb-4b0a-ae2f-1dcba0248455" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Use load_from_torchvision loader\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Downloading: \"https://download.pytorch.org/models/resnet50-19c8e357.pth\" to /root/.cache/torch/hub/checkpoints/resnet50-19c8e357.pth\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "81bfbdf1ec55451b8be8a68fd1b0cf18", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=102502400.0), HTML(value='')))" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2021-06-03 15:02:48,410 - mmaction - INFO - These parameters in pretrained checkpoint are not loaded: {'fc.bias', 'fc.weight'}\n", + "/usr/local/lib/python3.7/dist-packages/torch/utils/data/dataloader.py:477: UserWarning: This DataLoader will create 4 worker processes in total. Our suggested max number of worker in current system is 2, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.\n", + " cpuset_checked))\n", + "2021-06-03 15:02:59,146 - mmaction - INFO - load checkpoint from ./checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth\n", + "2021-06-03 15:02:59,147 - mmaction - INFO - Use load_from_local loader\n", + "2021-06-03 15:02:59,233 - mmaction - WARNING - The model and loaded state dict do not match exactly\n", + "\n", + "size mismatch for cls_head.fc_cls.weight: copying a param with shape torch.Size([400, 2048]) from checkpoint, the shape in current model is torch.Size([2, 2048]).\n", + "size mismatch for cls_head.fc_cls.bias: copying a param with shape torch.Size([400]) from checkpoint, the shape in current model is torch.Size([2]).\n", + "2021-06-03 15:02:59,235 - mmaction - INFO - Start running, host: root@dd065c1a509c, work_dir: /content/mmaction2/tutorial_exps\n", + "2021-06-03 15:02:59,240 - mmaction - INFO - workflow: [('train', 1)], max: 30 epochs\n", + "/usr/local/lib/python3.7/dist-packages/mmcv/runner/hooks/evaluation.py:144: UserWarning: runner.meta is None. Creating an empty one.\n", + " warnings.warn('runner.meta is None. Creating an empty one.')\n", + "2021-06-03 15:03:03,913 - mmaction - INFO - Epoch [1][5/15]\tlr: 7.813e-05, eta: 0:06:55, time: 0.933, data_time: 0.701, memory: 1654, top1_acc: 0.4000, top5_acc: 1.0000, loss_cls: 0.7604, loss: 0.7604, grad_norm: 14.8813\n", + "2021-06-03 15:03:04,822 - mmaction - INFO - Epoch [1][10/15]\tlr: 7.813e-05, eta: 0:04:05, time: 0.183, data_time: 0.006, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.6282, loss: 0.6282, grad_norm: 10.1833\n", + "2021-06-03 15:03:05,630 - mmaction - INFO - Epoch [1][15/15]\tlr: 7.813e-05, eta: 0:03:05, time: 0.162, data_time: 0.002, memory: 1654, top1_acc: 0.4000, top5_acc: 1.0000, loss_cls: 0.7165, loss: 0.7165, grad_norm: 10.8552\n", + "2021-06-03 15:03:09,840 - mmaction - INFO - Epoch [2][5/15]\tlr: 7.813e-05, eta: 0:03:45, time: 0.824, data_time: 0.620, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.6444, loss: 0.6444, grad_norm: 11.3933\n", + "2021-06-03 15:03:11,318 - mmaction - INFO - Epoch [2][10/15]\tlr: 7.813e-05, eta: 0:03:23, time: 0.296, data_time: 0.109, memory: 1654, top1_acc: 0.5000, top5_acc: 1.0000, loss_cls: 0.7155, loss: 0.7155, grad_norm: 12.3879\n", + "2021-06-03 15:03:12,109 - mmaction - INFO - Epoch [2][15/15]\tlr: 7.813e-05, eta: 0:02:58, time: 0.158, data_time: 0.001, memory: 1654, top1_acc: 0.5000, top5_acc: 1.0000, loss_cls: 0.6797, loss: 0.6797, grad_norm: 10.9274\n", + "2021-06-03 15:03:16,265 - mmaction - INFO - Epoch [3][5/15]\tlr: 7.813e-05, eta: 0:03:19, time: 0.812, data_time: 0.613, memory: 1654, top1_acc: 0.4000, top5_acc: 1.0000, loss_cls: 0.7126, loss: 0.7126, grad_norm: 11.1647\n", + "2021-06-03 15:03:17,416 - mmaction - INFO - Epoch [3][10/15]\tlr: 7.813e-05, eta: 0:03:04, time: 0.229, data_time: 0.049, memory: 1654, top1_acc: 0.4000, top5_acc: 1.0000, loss_cls: 0.6635, loss: 0.6635, grad_norm: 12.1194\n", + "2021-06-03 15:03:18,283 - mmaction - INFO - Epoch [3][15/15]\tlr: 7.813e-05, eta: 0:02:49, time: 0.176, data_time: 0.014, memory: 1654, top1_acc: 0.5000, top5_acc: 1.0000, loss_cls: 0.6978, loss: 0.6978, grad_norm: 10.3157\n", + "2021-06-03 15:03:22,394 - mmaction - INFO - Epoch [4][5/15]\tlr: 7.813e-05, eta: 0:03:03, time: 0.803, data_time: 0.595, memory: 1654, top1_acc: 0.5000, top5_acc: 1.0000, loss_cls: 0.6795, loss: 0.6795, grad_norm: 12.0900\n", + "2021-06-03 15:03:23,662 - mmaction - INFO - Epoch [4][10/15]\tlr: 7.813e-05, eta: 0:02:53, time: 0.253, data_time: 0.067, memory: 1654, top1_acc: 0.4000, top5_acc: 1.0000, loss_cls: 0.7414, loss: 0.7414, grad_norm: 12.6038\n", + "2021-06-03 15:03:24,541 - mmaction - INFO - Epoch [4][15/15]\tlr: 7.813e-05, eta: 0:02:42, time: 0.177, data_time: 0.010, memory: 1654, top1_acc: 0.5000, top5_acc: 1.0000, loss_cls: 0.6761, loss: 0.6761, grad_norm: 11.2109\n", + "2021-06-03 15:03:28,677 - mmaction - INFO - Epoch [5][5/15]\tlr: 7.813e-05, eta: 0:02:52, time: 0.809, data_time: 0.594, memory: 1654, top1_acc: 0.4000, top5_acc: 1.0000, loss_cls: 0.6899, loss: 0.6899, grad_norm: 12.3528\n", + "2021-06-03 15:03:29,778 - mmaction - INFO - Epoch [5][10/15]\tlr: 7.813e-05, eta: 0:02:43, time: 0.220, data_time: 0.026, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.6337, loss: 0.6337, grad_norm: 12.3525\n", + "2021-06-03 15:03:30,887 - mmaction - INFO - Epoch [5][15/15]\tlr: 7.813e-05, eta: 0:02:36, time: 0.222, data_time: 0.058, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.6425, loss: 0.6425, grad_norm: 9.7286\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 10/10, 5.7 task/s, elapsed: 2s, ETA: 0s" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2021-06-03 15:03:32,826 - mmaction - INFO - Evaluating top_k_accuracy ...\n", + "2021-06-03 15:03:32,828 - mmaction - INFO - \n", + "top1_acc\t0.8000\n", + "top5_acc\t1.0000\n", + "2021-06-03 15:03:32,831 - mmaction - INFO - Evaluating mean_class_accuracy ...\n", + "2021-06-03 15:03:32,836 - mmaction - INFO - \n", + "mean_acc\t0.8000\n", + "2021-06-03 15:03:33,250 - mmaction - INFO - Now best checkpoint is saved as best_top1_acc_epoch_5.pth.\n", + "2021-06-03 15:03:33,251 - mmaction - INFO - Best top1_acc is 0.8000 at 5 epoch.\n", + "2021-06-03 15:03:33,255 - mmaction - INFO - Epoch(val) [5][5]\ttop1_acc: 0.8000, top5_acc: 1.0000, mean_class_accuracy: 0.8000\n", + "2021-06-03 15:03:37,510 - mmaction - INFO - Epoch [6][5/15]\tlr: 7.813e-05, eta: 0:02:44, time: 0.848, data_time: 0.638, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.5897, loss: 0.5897, grad_norm: 11.0816\n", + "2021-06-03 15:03:38,830 - mmaction - INFO - Epoch [6][10/15]\tlr: 7.813e-05, eta: 0:02:38, time: 0.266, data_time: 0.094, memory: 1654, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.6937, loss: 0.6937, grad_norm: 11.3882\n", + "2021-06-03 15:03:39,638 - mmaction - INFO - Epoch [6][15/15]\tlr: 7.813e-05, eta: 0:02:30, time: 0.162, data_time: 0.002, memory: 1654, top1_acc: 0.5000, top5_acc: 1.0000, loss_cls: 0.6607, loss: 0.6607, grad_norm: 11.6493\n", + "2021-06-03 15:03:43,948 - mmaction - INFO - Epoch [7][5/15]\tlr: 7.813e-05, eta: 0:02:36, time: 0.844, data_time: 0.643, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.6503, loss: 0.6503, grad_norm: 12.5117\n", + "2021-06-03 15:03:45,085 - mmaction - INFO - Epoch [7][10/15]\tlr: 7.813e-05, eta: 0:02:30, time: 0.228, data_time: 0.047, memory: 1654, top1_acc: 0.9000, top5_acc: 1.0000, loss_cls: 0.6313, loss: 0.6313, grad_norm: 10.8442\n", + "2021-06-03 15:03:45,922 - mmaction - INFO - Epoch [7][15/15]\tlr: 7.813e-05, eta: 0:02:24, time: 0.167, data_time: 0.002, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.6310, loss: 0.6310, grad_norm: 10.5798\n", + "2021-06-03 15:03:50,322 - mmaction - INFO - Epoch [8][5/15]\tlr: 7.813e-05, eta: 0:02:28, time: 0.863, data_time: 0.662, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.6283, loss: 0.6283, grad_norm: 11.3411\n", + "2021-06-03 15:03:51,521 - mmaction - INFO - Epoch [8][10/15]\tlr: 7.813e-05, eta: 0:02:23, time: 0.240, data_time: 0.055, memory: 1654, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.6765, loss: 0.6765, grad_norm: 11.1512\n", + "2021-06-03 15:03:52,331 - mmaction - INFO - Epoch [8][15/15]\tlr: 7.813e-05, eta: 0:02:17, time: 0.162, data_time: 0.001, memory: 1654, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.5961, loss: 0.5961, grad_norm: 11.1990\n", + "2021-06-03 15:03:56,661 - mmaction - INFO - Epoch [9][5/15]\tlr: 7.813e-05, eta: 0:02:21, time: 0.848, data_time: 0.645, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.6524, loss: 0.6524, grad_norm: 11.9008\n", + "2021-06-03 15:03:57,882 - mmaction - INFO - Epoch [9][10/15]\tlr: 7.813e-05, eta: 0:02:16, time: 0.244, data_time: 0.061, memory: 1654, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.6937, loss: 0.6937, grad_norm: 13.0136\n", + "2021-06-03 15:03:58,697 - mmaction - INFO - Epoch [9][15/15]\tlr: 7.813e-05, eta: 0:02:11, time: 0.163, data_time: 0.001, memory: 1654, top1_acc: 0.9000, top5_acc: 1.0000, loss_cls: 0.5511, loss: 0.5511, grad_norm: 9.5135\n", + "2021-06-03 15:04:02,948 - mmaction - INFO - Epoch [10][5/15]\tlr: 7.813e-05, eta: 0:02:14, time: 0.831, data_time: 0.631, memory: 1654, top1_acc: 0.9000, top5_acc: 1.0000, loss_cls: 0.5565, loss: 0.5565, grad_norm: 9.2178\n", + "2021-06-03 15:04:03,954 - mmaction - INFO - Epoch [10][10/15]\tlr: 7.813e-05, eta: 0:02:09, time: 0.202, data_time: 0.006, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.6199, loss: 0.6199, grad_norm: 10.8341\n", + "2021-06-03 15:04:04,855 - mmaction - INFO - Epoch [10][15/15]\tlr: 7.813e-05, eta: 0:02:05, time: 0.180, data_time: 0.011, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.5853, loss: 0.5853, grad_norm: 10.9314\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 10/10, 5.8 task/s, elapsed: 2s, ETA: 0s" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2021-06-03 15:04:06,763 - mmaction - INFO - Evaluating top_k_accuracy ...\n", + "2021-06-03 15:04:06,765 - mmaction - INFO - \n", + "top1_acc\t0.8000\n", + "top5_acc\t1.0000\n", + "2021-06-03 15:04:06,766 - mmaction - INFO - Evaluating mean_class_accuracy ...\n", + "2021-06-03 15:04:06,770 - mmaction - INFO - \n", + "mean_acc\t0.8000\n", + "2021-06-03 15:04:06,772 - mmaction - INFO - Saving checkpoint at 10 epochs\n", + "2021-06-03 15:04:07,188 - mmaction - INFO - Epoch(val) [10][5]\ttop1_acc: 0.8000, top5_acc: 1.0000, mean_class_accuracy: 0.8000\n", + "2021-06-03 15:04:11,319 - mmaction - INFO - Epoch [11][5/15]\tlr: 7.813e-05, eta: 0:02:06, time: 0.825, data_time: 0.620, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.5100, loss: 0.5100, grad_norm: 8.8945\n", + "2021-06-03 15:04:12,449 - mmaction - INFO - Epoch [11][10/15]\tlr: 7.813e-05, eta: 0:02:02, time: 0.226, data_time: 0.042, memory: 1654, top1_acc: 0.2000, top5_acc: 1.0000, loss_cls: 0.6959, loss: 0.6959, grad_norm: 13.3499\n", + "2021-06-03 15:04:13,350 - mmaction - INFO - Epoch [11][15/15]\tlr: 7.813e-05, eta: 0:01:58, time: 0.180, data_time: 0.014, memory: 1654, top1_acc: 0.9000, top5_acc: 1.0000, loss_cls: 0.4929, loss: 0.4929, grad_norm: 8.5170\n", + "2021-06-03 15:04:17,700 - mmaction - INFO - Epoch [12][5/15]\tlr: 7.813e-05, eta: 0:02:00, time: 0.851, data_time: 0.649, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.6076, loss: 0.6076, grad_norm: 11.6095\n", + "2021-06-03 15:04:18,762 - mmaction - INFO - Epoch [12][10/15]\tlr: 7.813e-05, eta: 0:01:56, time: 0.213, data_time: 0.032, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.5356, loss: 0.5356, grad_norm: 9.7047\n", + "2021-06-03 15:04:19,608 - mmaction - INFO - Epoch [12][15/15]\tlr: 7.813e-05, eta: 0:01:52, time: 0.169, data_time: 0.002, memory: 1654, top1_acc: 0.5000, top5_acc: 1.0000, loss_cls: 0.6340, loss: 0.6340, grad_norm: 11.7714\n", + "2021-06-03 15:04:23,829 - mmaction - INFO - Epoch [13][5/15]\tlr: 7.813e-05, eta: 0:01:53, time: 0.825, data_time: 0.611, memory: 1654, top1_acc: 0.9000, top5_acc: 1.0000, loss_cls: 0.5467, loss: 0.5467, grad_norm: 9.3259\n", + "2021-06-03 15:04:24,969 - mmaction - INFO - Epoch [13][10/15]\tlr: 7.813e-05, eta: 0:01:49, time: 0.230, data_time: 0.042, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.5878, loss: 0.5878, grad_norm: 11.7431\n", + "2021-06-03 15:04:25,994 - mmaction - INFO - Epoch [13][15/15]\tlr: 7.813e-05, eta: 0:01:46, time: 0.205, data_time: 0.038, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.5018, loss: 0.5018, grad_norm: 8.9612\n", + "2021-06-03 15:04:30,330 - mmaction - INFO - Epoch [14][5/15]\tlr: 7.813e-05, eta: 0:01:46, time: 0.850, data_time: 0.643, memory: 1654, top1_acc: 0.5000, top5_acc: 1.0000, loss_cls: 0.6634, loss: 0.6634, grad_norm: 12.9608\n", + "2021-06-03 15:04:31,497 - mmaction - INFO - Epoch [14][10/15]\tlr: 7.813e-05, eta: 0:01:43, time: 0.232, data_time: 0.048, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.5646, loss: 0.5646, grad_norm: 10.2523\n", + "2021-06-03 15:04:32,322 - mmaction - INFO - Epoch [14][15/15]\tlr: 7.813e-05, eta: 0:01:39, time: 0.166, data_time: 0.004, memory: 1654, top1_acc: 0.5000, top5_acc: 1.0000, loss_cls: 0.6504, loss: 0.6504, grad_norm: 12.5382\n", + "2021-06-03 15:04:36,355 - mmaction - INFO - Epoch [15][5/15]\tlr: 7.813e-05, eta: 0:01:39, time: 0.789, data_time: 0.589, memory: 1654, top1_acc: 0.5000, top5_acc: 1.0000, loss_cls: 0.5893, loss: 0.5893, grad_norm: 11.1704\n", + "2021-06-03 15:04:37,811 - mmaction - INFO - Epoch [15][10/15]\tlr: 7.813e-05, eta: 0:01:36, time: 0.291, data_time: 0.117, memory: 1654, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.6413, loss: 0.6413, grad_norm: 12.5114\n", + "2021-06-03 15:04:38,647 - mmaction - INFO - Epoch [15][15/15]\tlr: 7.813e-05, eta: 0:01:33, time: 0.167, data_time: 0.001, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.4747, loss: 0.4747, grad_norm: 8.3424\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 10/10, 5.7 task/s, elapsed: 2s, ETA: 0s" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2021-06-03 15:04:40,575 - mmaction - INFO - Evaluating top_k_accuracy ...\n", + "2021-06-03 15:04:40,576 - mmaction - INFO - \n", + "top1_acc\t0.8000\n", + "top5_acc\t1.0000\n", + "2021-06-03 15:04:40,586 - mmaction - INFO - Evaluating mean_class_accuracy ...\n", + "2021-06-03 15:04:40,589 - mmaction - INFO - \n", + "mean_acc\t0.8000\n", + "2021-06-03 15:04:40,590 - mmaction - INFO - Epoch(val) [15][5]\ttop1_acc: 0.8000, top5_acc: 1.0000, mean_class_accuracy: 0.8000\n", + "2021-06-03 15:04:44,502 - mmaction - INFO - Epoch [16][5/15]\tlr: 7.813e-05, eta: 0:01:33, time: 0.780, data_time: 0.572, memory: 1654, top1_acc: 0.9000, top5_acc: 1.0000, loss_cls: 0.4760, loss: 0.4760, grad_norm: 8.9694\n", + "2021-06-03 15:04:45,694 - mmaction - INFO - Epoch [16][10/15]\tlr: 7.813e-05, eta: 0:01:30, time: 0.237, data_time: 0.049, memory: 1654, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.5583, loss: 0.5583, grad_norm: 11.0941\n", + "2021-06-03 15:04:46,780 - mmaction - INFO - Epoch [16][15/15]\tlr: 7.813e-05, eta: 0:01:27, time: 0.219, data_time: 0.053, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.5707, loss: 0.5707, grad_norm: 11.3002\n", + "2021-06-03 15:04:51,458 - mmaction - INFO - Epoch [17][5/15]\tlr: 7.813e-05, eta: 0:01:27, time: 0.918, data_time: 0.705, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.5781, loss: 0.5781, grad_norm: 11.3368\n", + "2021-06-03 15:04:52,369 - mmaction - INFO - Epoch [17][10/15]\tlr: 7.813e-05, eta: 0:01:24, time: 0.181, data_time: 0.004, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.5642, loss: 0.5642, grad_norm: 10.7471\n", + "2021-06-03 15:04:53,264 - mmaction - INFO - Epoch [17][15/15]\tlr: 7.813e-05, eta: 0:01:21, time: 0.180, data_time: 0.014, memory: 1654, top1_acc: 0.9000, top5_acc: 1.0000, loss_cls: 0.4448, loss: 0.4448, grad_norm: 7.9083\n", + "2021-06-03 15:04:57,485 - mmaction - INFO - Epoch [18][5/15]\tlr: 7.813e-05, eta: 0:01:20, time: 0.827, data_time: 0.617, memory: 1654, top1_acc: 1.0000, top5_acc: 1.0000, loss_cls: 0.4346, loss: 0.4346, grad_norm: 8.5470\n", + "2021-06-03 15:04:58,807 - mmaction - INFO - Epoch [18][10/15]\tlr: 7.813e-05, eta: 0:01:17, time: 0.265, data_time: 0.077, memory: 1654, top1_acc: 0.9000, top5_acc: 1.0000, loss_cls: 0.4648, loss: 0.4648, grad_norm: 8.6081\n", + "2021-06-03 15:04:59,651 - mmaction - INFO - Epoch [18][15/15]\tlr: 7.813e-05, eta: 0:01:14, time: 0.169, data_time: 0.002, memory: 1654, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.6353, loss: 0.6353, grad_norm: 12.7139\n", + "2021-06-03 15:05:04,048 - mmaction - INFO - Epoch [19][5/15]\tlr: 7.813e-05, eta: 0:01:14, time: 0.860, data_time: 0.654, memory: 1654, top1_acc: 0.9000, top5_acc: 1.0000, loss_cls: 0.5173, loss: 0.5173, grad_norm: 10.0505\n", + "2021-06-03 15:05:05,140 - mmaction - INFO - Epoch [19][10/15]\tlr: 7.813e-05, eta: 0:01:11, time: 0.220, data_time: 0.032, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.4610, loss: 0.4610, grad_norm: 9.0271\n", + "2021-06-03 15:05:05,992 - mmaction - INFO - Epoch [19][15/15]\tlr: 7.813e-05, eta: 0:01:08, time: 0.170, data_time: 0.003, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.4900, loss: 0.4900, grad_norm: 9.4134\n", + "2021-06-03 15:05:10,251 - mmaction - INFO - Epoch [20][5/15]\tlr: 7.813e-05, eta: 0:01:07, time: 0.832, data_time: 0.633, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.4717, loss: 0.4717, grad_norm: 9.3263\n", + "2021-06-03 15:05:11,296 - mmaction - INFO - Epoch [20][10/15]\tlr: 7.813e-05, eta: 0:01:05, time: 0.210, data_time: 0.010, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.6269, loss: 0.6269, grad_norm: 12.3093\n", + "2021-06-03 15:05:12,249 - mmaction - INFO - Epoch [20][15/15]\tlr: 7.813e-05, eta: 0:01:02, time: 0.191, data_time: 0.022, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.6329, loss: 0.6329, grad_norm: 11.7156\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 10/10, 5.8 task/s, elapsed: 2s, ETA: 0s" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2021-06-03 15:05:14,159 - mmaction - INFO - Evaluating top_k_accuracy ...\n", + "2021-06-03 15:05:14,161 - mmaction - INFO - \n", + "top1_acc\t1.0000\n", + "top5_acc\t1.0000\n", + "2021-06-03 15:05:14,166 - mmaction - INFO - Evaluating mean_class_accuracy ...\n", + "2021-06-03 15:05:14,168 - mmaction - INFO - \n", + "mean_acc\t1.0000\n", + "2021-06-03 15:05:14,599 - mmaction - INFO - Now best checkpoint is saved as best_top1_acc_epoch_20.pth.\n", + "2021-06-03 15:05:14,603 - mmaction - INFO - Best top1_acc is 1.0000 at 20 epoch.\n", + "2021-06-03 15:05:14,606 - mmaction - INFO - Saving checkpoint at 20 epochs\n", + "2021-06-03 15:05:15,008 - mmaction - INFO - Epoch(val) [20][5]\ttop1_acc: 1.0000, top5_acc: 1.0000, mean_class_accuracy: 1.0000\n", + "2021-06-03 15:05:19,127 - mmaction - INFO - Epoch [21][5/15]\tlr: 7.813e-05, eta: 0:01:01, time: 0.823, data_time: 0.618, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.3904, loss: 0.3904, grad_norm: 7.6698\n", + "2021-06-03 15:05:20,196 - mmaction - INFO - Epoch [21][10/15]\tlr: 7.813e-05, eta: 0:00:58, time: 0.214, data_time: 0.024, memory: 1654, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.5884, loss: 0.5884, grad_norm: 11.4530\n", + "2021-06-03 15:05:21,218 - mmaction - INFO - Epoch [21][15/15]\tlr: 7.813e-05, eta: 0:00:56, time: 0.204, data_time: 0.032, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.5800, loss: 0.5800, grad_norm: 12.1364\n", + "2021-06-03 15:05:25,640 - mmaction - INFO - Epoch [22][5/15]\tlr: 7.813e-05, eta: 0:00:55, time: 0.864, data_time: 0.656, memory: 1654, top1_acc: 1.0000, top5_acc: 1.0000, loss_cls: 0.3669, loss: 0.3669, grad_norm: 7.3256\n", + "2021-06-03 15:05:26,903 - mmaction - INFO - Epoch [22][10/15]\tlr: 7.813e-05, eta: 0:00:52, time: 0.255, data_time: 0.063, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.5618, loss: 0.5618, grad_norm: 11.0834\n", + "2021-06-03 15:05:27,740 - mmaction - INFO - Epoch [22][15/15]\tlr: 7.813e-05, eta: 0:00:50, time: 0.167, data_time: 0.001, memory: 1654, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.6190, loss: 0.6190, grad_norm: 12.5605\n", + "2021-06-03 15:05:32,036 - mmaction - INFO - Epoch [23][5/15]\tlr: 7.813e-05, eta: 0:00:48, time: 0.839, data_time: 0.631, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.5490, loss: 0.5490, grad_norm: 11.1925\n", + "2021-06-03 15:05:33,384 - mmaction - INFO - Epoch [23][10/15]\tlr: 7.813e-05, eta: 0:00:46, time: 0.272, data_time: 0.081, memory: 1654, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.5988, loss: 0.5988, grad_norm: 12.0808\n", + "2021-06-03 15:05:34,222 - mmaction - INFO - Epoch [23][15/15]\tlr: 7.813e-05, eta: 0:00:43, time: 0.167, data_time: 0.001, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.6084, loss: 0.6084, grad_norm: 11.4491\n", + "2021-06-03 15:05:38,546 - mmaction - INFO - Epoch [24][5/15]\tlr: 7.813e-05, eta: 0:00:42, time: 0.845, data_time: 0.637, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.5125, loss: 0.5125, grad_norm: 10.9388\n", + "2021-06-03 15:05:39,792 - mmaction - INFO - Epoch [24][10/15]\tlr: 7.813e-05, eta: 0:00:39, time: 0.251, data_time: 0.059, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.6036, loss: 0.6036, grad_norm: 12.3427\n", + "2021-06-03 15:05:40,640 - mmaction - INFO - Epoch [24][15/15]\tlr: 7.813e-05, eta: 0:00:37, time: 0.169, data_time: 0.001, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.5052, loss: 0.5052, grad_norm: 10.0184\n", + "2021-06-03 15:05:44,885 - mmaction - INFO - Epoch [25][5/15]\tlr: 7.813e-05, eta: 0:00:35, time: 0.831, data_time: 0.623, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.5324, loss: 0.5324, grad_norm: 10.9933\n", + "2021-06-03 15:05:46,302 - mmaction - INFO - Epoch [25][10/15]\tlr: 7.813e-05, eta: 0:00:33, time: 0.283, data_time: 0.097, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.6386, loss: 0.6386, grad_norm: 12.9881\n", + "2021-06-03 15:05:47,135 - mmaction - INFO - Epoch [25][15/15]\tlr: 7.813e-05, eta: 0:00:31, time: 0.166, data_time: 0.001, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.4406, loss: 0.4406, grad_norm: 9.0257\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 10/10, 5.8 task/s, elapsed: 2s, ETA: 0s" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2021-06-03 15:05:49,031 - mmaction - INFO - Evaluating top_k_accuracy ...\n", + "2021-06-03 15:05:49,033 - mmaction - INFO - \n", + "top1_acc\t0.8000\n", + "top5_acc\t1.0000\n", + "2021-06-03 15:05:49,039 - mmaction - INFO - Evaluating mean_class_accuracy ...\n", + "2021-06-03 15:05:49,040 - mmaction - INFO - \n", + "mean_acc\t0.8000\n", + "2021-06-03 15:05:49,042 - mmaction - INFO - Epoch(val) [25][5]\ttop1_acc: 0.8000, top5_acc: 1.0000, mean_class_accuracy: 0.8000\n", + "2021-06-03 15:05:53,064 - mmaction - INFO - Epoch [26][5/15]\tlr: 7.813e-05, eta: 0:00:29, time: 0.801, data_time: 0.590, memory: 1654, top1_acc: 0.9000, top5_acc: 1.0000, loss_cls: 0.3512, loss: 0.3512, grad_norm: 7.0619\n", + "2021-06-03 15:05:54,188 - mmaction - INFO - Epoch [26][10/15]\tlr: 7.813e-05, eta: 0:00:27, time: 0.225, data_time: 0.030, memory: 1654, top1_acc: 0.9000, top5_acc: 1.0000, loss_cls: 0.3328, loss: 0.3328, grad_norm: 7.1553\n", + "2021-06-03 15:05:55,139 - mmaction - INFO - Epoch [26][15/15]\tlr: 7.813e-05, eta: 0:00:25, time: 0.192, data_time: 0.018, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.4698, loss: 0.4698, grad_norm: 9.4666\n", + "2021-06-03 15:05:59,226 - mmaction - INFO - Epoch [27][5/15]\tlr: 7.813e-05, eta: 0:00:23, time: 0.799, data_time: 0.593, memory: 1654, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.5434, loss: 0.5434, grad_norm: 10.9087\n", + "2021-06-03 15:06:00,493 - mmaction - INFO - Epoch [27][10/15]\tlr: 7.813e-05, eta: 0:00:21, time: 0.254, data_time: 0.067, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.3672, loss: 0.3672, grad_norm: 7.5920\n", + "2021-06-03 15:06:01,451 - mmaction - INFO - Epoch [27][15/15]\tlr: 7.813e-05, eta: 0:00:18, time: 0.191, data_time: 0.014, memory: 1654, top1_acc: 0.9000, top5_acc: 1.0000, loss_cls: 0.3633, loss: 0.3633, grad_norm: 7.8609\n", + "2021-06-03 15:06:05,792 - mmaction - INFO - Epoch [28][5/15]\tlr: 7.813e-05, eta: 0:00:16, time: 0.850, data_time: 0.645, memory: 1654, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.6003, loss: 0.6003, grad_norm: 12.0149\n", + "2021-06-03 15:06:07,078 - mmaction - INFO - Epoch [28][10/15]\tlr: 7.813e-05, eta: 0:00:14, time: 0.257, data_time: 0.068, memory: 1654, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.6538, loss: 0.6538, grad_norm: 13.2297\n", + "2021-06-03 15:06:07,941 - mmaction - INFO - Epoch [28][15/15]\tlr: 7.813e-05, eta: 0:00:12, time: 0.172, data_time: 0.003, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.4151, loss: 0.4151, grad_norm: 8.6073\n", + "2021-06-03 15:06:12,212 - mmaction - INFO - Epoch [29][5/15]\tlr: 7.813e-05, eta: 0:00:10, time: 0.836, data_time: 0.629, memory: 1654, top1_acc: 0.9000, top5_acc: 1.0000, loss_cls: 0.3997, loss: 0.3997, grad_norm: 8.2630\n", + "2021-06-03 15:06:13,414 - mmaction - INFO - Epoch [29][10/15]\tlr: 7.813e-05, eta: 0:00:08, time: 0.240, data_time: 0.050, memory: 1654, top1_acc: 0.9000, top5_acc: 1.0000, loss_cls: 0.3257, loss: 0.3257, grad_norm: 6.8715\n", + "2021-06-03 15:06:14,279 - mmaction - INFO - Epoch [29][15/15]\tlr: 7.813e-05, eta: 0:00:06, time: 0.173, data_time: 0.002, memory: 1654, top1_acc: 0.8000, top5_acc: 1.0000, loss_cls: 0.5843, loss: 0.5843, grad_norm: 12.2261\n", + "2021-06-03 15:06:18,611 - mmaction - INFO - Epoch [30][5/15]\tlr: 7.813e-05, eta: 0:00:04, time: 0.849, data_time: 0.645, memory: 1654, top1_acc: 0.6000, top5_acc: 1.0000, loss_cls: 0.4302, loss: 0.4302, grad_norm: 8.8877\n", + "2021-06-03 15:06:20,008 - mmaction - INFO - Epoch [30][10/15]\tlr: 7.813e-05, eta: 0:00:02, time: 0.280, data_time: 0.091, memory: 1654, top1_acc: 1.0000, top5_acc: 1.0000, loss_cls: 0.2355, loss: 0.2355, grad_norm: 5.3905\n", + "2021-06-03 15:06:20,850 - mmaction - INFO - Epoch [30][15/15]\tlr: 7.813e-05, eta: 0:00:00, time: 0.168, data_time: 0.001, memory: 1654, top1_acc: 0.7000, top5_acc: 1.0000, loss_cls: 0.4508, loss: 0.4508, grad_norm: 9.6814\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 10/10, 5.8 task/s, elapsed: 2s, ETA: 0s" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2021-06-03 15:06:22,740 - mmaction - INFO - Evaluating top_k_accuracy ...\n", + "2021-06-03 15:06:22,742 - mmaction - INFO - \n", + "top1_acc\t1.0000\n", + "top5_acc\t1.0000\n", + "2021-06-03 15:06:22,746 - mmaction - INFO - Evaluating mean_class_accuracy ...\n", + "2021-06-03 15:06:22,747 - mmaction - INFO - \n", + "mean_acc\t1.0000\n", + "2021-06-03 15:06:22,756 - mmaction - INFO - Saving checkpoint at 30 epochs\n", + "2021-06-03 15:06:23,168 - mmaction - INFO - Epoch(val) [30][5]\ttop1_acc: 1.0000, top5_acc: 1.0000, mean_class_accuracy: 1.0000\n" + ] + } + ], + "source": [ + "import os.path as osp\n", + "\n", + "from mmaction.datasets import build_dataset\n", + "from mmaction.models import build_model\n", + "from mmaction.apis import train_model\n", + "\n", + "import mmcv\n", + "\n", + "# 构建数据集\n", + "datasets = [build_dataset(cfg.data.train)]\n", + "\n", + "# 构建动作识别模型\n", + "model = build_model(cfg.model, train_cfg=cfg.get('train_cfg'), test_cfg=cfg.get('test_cfg'))\n", + "\n", + "# 创建工作目录并训练模型\n", + "mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir))\n", + "train_model(model, datasets, cfg, distributed=False, validate=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ryVoSfZVmogw" + }, + "source": [ + "## 评价模型\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "eyY3hCMwyTct", + "outputId": "54c2d6ce-3f3e-45ed-b3d4-f628ba4263b0" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ ] 0/10, elapsed: 0s, ETA:" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.7/dist-packages/torch/utils/data/dataloader.py:477: UserWarning: This DataLoader will create 4 worker processes in total. Our suggested max number of worker in current system is 2, which is smaller than what this DataLoader is going to create. Please be aware that excessive worker creation might get DataLoader running slow or even freeze, lower the worker number to avoid potential slowness/freeze if necessary.\n", + " cpuset_checked))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 10/10, 2.2 task/s, elapsed: 4s, ETA: 0s\n", + "Evaluating top_k_accuracy ...\n", + "\n", + "top1_acc\t0.9000\n", + "top5_acc\t1.0000\n", + "\n", + "Evaluating mean_class_accuracy ...\n", + "\n", + "mean_acc\t0.9000\n", + "top1_acc: 0.9000\n", + "top5_acc: 1.0000\n", + "mean_class_accuracy: 0.9000\n" + ] + } + ], + "source": [ + "from mmaction.apis import single_gpu_test\n", + "from mmaction.datasets import build_dataloader\n", + "from mmcv.parallel import MMDataParallel\n", + "\n", + "# 构建测试数据集\n", + "dataset = build_dataset(cfg.data.test, dict(test_mode=True))\n", + "data_loader = build_dataloader(\n", + " dataset,\n", + " videos_per_gpu=1,\n", + " workers_per_gpu=cfg.data.workers_per_gpu,\n", + " dist=False,\n", + " shuffle=False)\n", + "model = MMDataParallel(model, device_ids=[0])\n", + "outputs = single_gpu_test(model, data_loader)\n", + "\n", + "# 在测试集上评价训练完成的识别模型\n", + "eval_config = cfg.evaluation\n", + "eval_config.pop('interval')\n", + "eval_res = dataset.evaluate(outputs, **eval_config)\n", + "for name, val in eval_res.items():\n", + " print(f'{name}: {val:.04f}')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8EbJVEEmrv0S" + }, + "source": [ + "## 时空动作识别\n", + "\n", + "这里我们用到mmdet来辅助完成时空动作识别的任务,首先要在主目录下进行安装。" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Yq5e5l-zEMpf", + "outputId": "178b2d61-d00c-4b93-847c-efc4b249ceaa" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/content\n", + "Cloning into 'mmdetection'...\n", + "remote: Enumerating objects: 18118, done.\u001b[K\n", + "remote: Counting objects: 100% (207/207), done.\u001b[K\n", + "remote: Compressing objects: 100% (163/163), done.\u001b[K\n", + "remote: Total 18118 (delta 87), reused 113 (delta 44), pack-reused 17911\u001b[K\n", + "Receiving objects: 100% (18118/18118), 21.50 MiB | 33.66 MiB/s, done.\n", + "Resolving deltas: 100% (12576/12576), done.\n", + "/content/mmdetection\n", + "Obtaining file:///content/mmdetection\n", + "Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from mmdet==2.13.0) (3.2.2)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from mmdet==2.13.0) (1.19.5)\n", + "Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from mmdet==2.13.0) (1.15.0)\n", + "Collecting terminaltables\n", + " Downloading https://files.pythonhosted.org/packages/9b/c4/4a21174f32f8a7e1104798c445dacdc1d4df86f2f26722767034e4de4bff/terminaltables-3.1.0.tar.gz\n", + "Requirement already satisfied: pycocotools in /usr/local/lib/python3.7/dist-packages (from mmdet==2.13.0) (2.0.2)\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmdet==2.13.0) (2.4.7)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmdet==2.13.0) (0.10.0)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmdet==2.13.0) (1.3.1)\n", + "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->mmdet==2.13.0) (2.8.1)\n", + "Requirement already satisfied: cython>=0.27.3 in /usr/local/lib/python3.7/dist-packages (from pycocotools->mmdet==2.13.0) (0.29.23)\n", + "Requirement already satisfied: setuptools>=18.0 in /usr/local/lib/python3.7/dist-packages (from pycocotools->mmdet==2.13.0) (57.0.0)\n", + "Building wheels for collected packages: terminaltables\n", + " Building wheel for terminaltables (setup.py) ... \u001b[?25l\u001b[?25hdone\n", + " Created wheel for terminaltables: filename=terminaltables-3.1.0-cp37-none-any.whl size=15356 sha256=37a2b87aceff6ca4b32508fac67142e960106f99a33a0a1d2127aaaecd9fae0b\n", + " Stored in directory: /root/.cache/pip/wheels/30/6b/50/6c75775b681fb36cdfac7f19799888ef9d8813aff9e379663e\n", + "Successfully built terminaltables\n", + "Installing collected packages: terminaltables, mmdet\n", + " Running setup.py develop for mmdet\n", + "Successfully installed mmdet terminaltables-3.1.0\n", + "/content/mmaction2\n" + ] + } + ], + "source": [ + "# 克隆mmdetection项目\n", + "%cd ..\n", + "!git clone https://github.com/open-mmlab/mmdetection.git\n", + "%cd mmdetection\n", + "\n", + "# 以可编辑的模式安装mmdet\n", + "!pip install -e .\n", + "%cd ../mmaction2" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dWLxybK6INRI" + }, + "source": [ + "同时我们需要上传视频至目录mmaction2下" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "'wget' is not recognized as an internal or external command,\n", + "operable program or batch file.\n" + ] + } + ], + "source": [ + "!wget https://download.openmmlab.com/mmaction/dataset/sample/1j20qq1JyX4.mp4 -O demo/1j20qq1JyX4.mp4" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "AUw6xa1YrvZb", + "outputId": "566e2683-9158-4173-b821-b9d9a34cf893" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Imageio: 'ffmpeg-linux64-v3.3.1' was not found on your computer; downloading it now.\n", + "Try 1. Download from https://github.com/imageio/imageio-binaries/raw/master/ffmpeg/ffmpeg-linux64-v3.3.1 (43.8 MB)\n", + "Downloading: 8192/45929032 bytes (0.02826240/45929032 bytes (6.2%6922240/45929032 bytes (15.110977280/45929032 bytes (23.9%14925824/45929032 bytes (32.5%19046400/45929032 bytes (41.5%23068672/45929032 bytes (50.2%26279936/45929032 bytes (57.2%30392320/45929032 bytes (66.2%34471936/45929032 bytes (75.1%38543360/45929032 bytes (83.9%42688512/45929032 bytes (92.9%45929032/45929032 bytes (100.0%)\n", + " Done\n", + "File saved as /root/.imageio/ffmpeg/ffmpeg-linux64-v3.3.1.\n", + "Use load_from_http loader\n", + "Downloading: \"http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth\" to /root/.cache/torch/hub/checkpoints/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth\n", + "100% 160M/160M [00:17<00:00, 9.30MB/s]\n", + "Performing Human Detection for each frame\n", + "100% 217/217 [00:26<00:00, 8.24it/s]\n", + "Use load_from_http loader\n", + "Downloading: \"https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201217-16378594.pth\" to /root/.cache/torch/hub/checkpoints/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201217-16378594.pth\n", + "100% 228M/228M [00:24<00:00, 9.79MB/s]\n", + "Performing SpatioTemporal Action Detection for each clip\n", + "217it [00:23, 9.19it/s]\n", + "Performing visualization\n", + "[MoviePy] >>>> Building video demo/stdet_demo.mp4\n", + "[MoviePy] Writing video demo/stdet_demo.mp4\n", + "100% 434/434 [00:10<00:00, 39.93it/s]\n", + "[MoviePy] Done.\n", + "[MoviePy] >>>> Video ready: demo/stdet_demo.mp4 \n", + "\n" + ] + } + ], + "source": [ + "# 完成时空检测\n", + "!python demo/demo_spatiotemporal_det.py --video demo/1j20qq1JyX4.mp4" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 341 + }, + "id": "oRabUF1TsE-v", + "outputId": "ff8cee1a-6715-4368-edf2-ce796fd946db" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + } + ], + "source": [ + "# 查看视频\n", + "from IPython.display import HTML\n", + "from base64 import b64encode\n", + "mp4 = open('demo/stdet_demo.mp4','rb').read()\n", + "data_url = \"data:video/mp4;base64,\" + b64encode(mp4).decode()\n", + "HTML(\"\"\"\n", + "\n", + "\"\"\" % data_url)" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "collapsed_sections": [], + "include_colab_link": true, + "name": "MMAction2 new.ipynb", + "provenance": [], + "toc_visible": true + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "4a9a4d1a6a554315a7d4362fd9ef0290": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "57f2df1708fa455ea8a305b9100ad171": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_974f4fceb03748f1b346b498df9828a3", + "placeholder": "​", + "style": "IPY_MODEL_e6b45b124776452a85136fc3e18502f6", + "value": " 97.8M/97.8M [00:45<00:00, 2.26MB/s]" + } + }, + "81bfbdf1ec55451b8be8a68fd1b0cf18": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_c992b295041a4908a6a0d4f62a542cca", + "IPY_MODEL_57f2df1708fa455ea8a305b9100ad171" + ], + "layout": "IPY_MODEL_4a9a4d1a6a554315a7d4362fd9ef0290" + } + }, + "8c947d1afee142e4b6cd2e0e26f46d6f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "initial" + } + }, + "974f4fceb03748f1b346b498df9828a3": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "adf3a16cdae740cf882999a25d53e8f7": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c992b295041a4908a6a0d4f62a542cca": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "100%", + "description_tooltip": null, + "layout": "IPY_MODEL_adf3a16cdae740cf882999a25d53e8f7", + "max": 102502400, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_8c947d1afee142e4b6cd2e0e26f46d6f", + "value": 102502400 + } + }, + "e6b45b124776452a85136fc3e18502f6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/openmmlab_test/mmaction2-0.24.1/demo/ntu_sample.avi b/openmmlab_test/mmaction2-0.24.1/demo/ntu_sample.avi new file mode 100644 index 0000000000000000000000000000000000000000..42f8e03b1e3a294e026b340ac8bb3b94e66effb0 GIT binary patch literal 1119546 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° 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 P_~4-3LguabJPZ?A{-c8jU|j^{cwQm0R)o4;s!~ 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⋘3!T>JMjROvmnzilxH1N=|2pOBSFfW&RT)Y z&YT$0cw~j@vdxkV)h*T)J$Z`#NV=c65jXz;EFV|TO0`I<4pdYx$iCc(;Jq;KsiVZx zvlyyvZlcp}Q1%MYKF`LKthGKe8xym1xqGEbN0Ikvq&a{3X++BtV|;1GA)Kw#5DNF4 z1`u&H9UtG`OXRi070SA^d%TIGv4=fF*$`=-?PYapx%qjH5Fwf=NpDs$v_*1>oj;XE z;D+$ULM-U_WsAwM+tt&^rZC~Gx*Z#-(!VF+=-76N%~gR(a-~0P<=;l|sCu~AWFlQ9 zaR^+0!}Z9^mFmWmd>Z;6RmJ5YDXPhDCP<{)S37>?T7KNkMbQyt-M|Vk7>b&gg8i`pfA z_d?qYKh2F~OIKVzvb-f-pO&&cL3v=w`e6e(A4&ha*!)#~iL~f?p^e|6N2*?m7&~F9 zdJBHk8TUqmK%DU& znQ4e+{o{rvb=a2Q#~Kz|`OLyn}7PXsX)n>;|$DA+RZ#f)^zTfN9@O)UXB7DbPeb$zX|K zDe{UiTYWChXgl{;=w4V?Mt&-mY_93gKj019k_5Pp>K8ki=ROsKxj0*)MbKAbnv*i& zV%*q#9`E>c+>)j`G<$I#)&d?&sM<4zf?zL&=S?;pJ?*t;<;pFx;wttzSClnetB6RQ zW5zJYSf|$;&N{eyN1}5$-(Gz8L(pNSs4u>%X@u{**W2iQ|4gfZFLHtrY2eY@5sUcFO6^;Jhz5dI%SCoq|YP7~6tF*lWn|q+=lKVQ|mx zebXhtC{>&$|GU*=+(->8UBV%q+u$1^(MY09RVjG3i9ho24DjU^49!UEb8Pvh*rc;j zi@@G4^?Zq{fXZI+KBbRMr>js1pQ{zZ0@ow?+ip2LzHF3Yr1Oj57tf$EIjBk)3)LvSw$Slf-?*#|7L*#8} zOV+%p;%BNL;15mq2p>~F#LxJ+D2bgc=NA!O2xQP;6J#?n=He#@GPanq!?6q|*c?(w z(ydMUoQ!p@-R#U&w6nWz>W$O7a0*?>2cB!u>Dw=R#vpINveO859(~rmOPM3w=~yg@ zO}7a~WnbT?PRY3doRkUW$>~=X%d=`U*L5rhXXSE&&3wN;BOTkgA7-_B{7`+a??O3` zp&R3!W26p2DeY2Prg8OvsX1h)b>3_DOSI+Mgj6uRYi)w9`mZdl>_=(iBE$DaAAWTB zeS#a;!ua|Fx}yTk)=1L$mTbwhw^KN+o6A$+hL2PUmn_sl79cnb{ZJ63bD~2f!#OqD z+Tf~_L=_|inv!02t?jL!dYzM}9XC&L$-EPd<0(q=5RR;-+T=KA(=gn_+86_O)z)*C zrU;~NU~kb<;N~qns2(#%R53%GwVkz;qf4I8;F-Kt$U;Gi@8_G1M<&*U#Mf{LIxNKQ zS~+K<|6Tee74df7%>f2}Ni!ma{3qat&QhCe2MOYjTz-H)L;H}gwab*HbOf`>*WCi_ zORlkF42Iua-C4q~oplT<17RtKTiG<|oc{`m-}6y(GggR%!=Ow)I6$&YIaub4zu@NP zdIA2L3iDL*Lo?NO7%;z2r3zy zS@o+Cz@09V)oJuRRx(ivGw4wH8!r%}wgpVwpa2Sm-a6L68vSrqL%ja%cKR>V1Gb7r z6R4aCqgkrnZb-h#(&tHZgOR2Np0*3+ zV=zP^&O6HqDOCIdr4!y<)@jS&m&)VZntAE{c4%OSTR?}JnT}cj8cI7`nMxQ~cRmeZDA&dz>bCgLN0PACzGX#cwYPyi+MIhKiG!-NxUhnh=E#qm1{WS&YGFwc0#>C&Yj+v!isJ>H8%$ zR`>e*orgO9YtUAR^S#i3sm;%O%Ltn@8zSMJa??>b@V64FBjQLu$qvaEzYIVGDG`H9 zXExu;S)?i)By1SXgBdbo;xNkHH|BxlOaRm!HkGr9c&^T|K<1>#K_R(p-oH#d+-o&J z-;ST6owrN(8j%Pd<0dY9bfPGkd-~r0@2}mOvyyA6b#$HJ(xZc63#x{Kjva5_2sR=# zX@9~PCeUm~b6VwuTchjvqAYJ#CI9?uLn`1!aLq_@S0M`X)W+&%Ob%7#$sPaPbFdVB*7B4L(JToDpK5vw zsd#577n%jmtUc{dDmiqiEigd4^%nj7_3LNbe5iVNt8Qy6Qxt+a$Y5(arIeM_BS!-9 zNZ_&bOf+zol}!U`NL)`t&aHGeV#tl)ZLga9n5%i>48^ZZF{kaBS;@S{_TdXLDo{RW zG@W;VgG{wm*&>$jZis;re8FJiBrVtso$JRFOaNqdA$Z9c*h%#qFyo3yDd++)@B1>%&h;z5PD$&xnJ*}B_83maaWVWDy~9%6_-m<^&0 z%bJZ>JJqxSM= zZFAxl2d)h0j8LoElHJoY@(sIC`(=`%sjiq1R{ou3*@|-wrx`P%R;7xSAUP66fgx3| z%H%o%{AQTuhTwB*H)E!|S2fp~z@dlEUC{XzU%u^RnYkCaRY=${*U@eo@!!Ctr2som z5}v`Uq{ll7B7p4iz^PP9NL%H5yo0|(az_at9HYB9L#(5RaCcXw3nHQZAuNDjbWY%9 z3slkhmZRwo#*<@}4QF~ISC;}>jF@*W(2RrL{?10&ghimGA6C~7SSF73I(C#In!IU2 z*65)$PL<_G9h+DjgT$;YRL9N5BPH~8avXX?9G84>TgBn{x~4&}DO?SI$%Fx7OvrAF zohdSpb%)*}SnU$w%3Vd14)TND6A~!96PG8)J8aT`8O2~M#jbU5erc7@2WJ>7;*qD= zuK(CS7kn<%6)Rn(=9${jCW;DDB!BMk0KChMRprhxtdRAyTqGI3cC!nBjmBde0q47m zWq|m~gRk!;)Nu}ML3~wZ*<~^7{tceF@&bO+;W(K1+#gF_y7rUWumv_?3Yh*wzfg?w zUJ(j$zfrHyR1&t7aTZXh{JaQtchnpM79j~5o*%_%AH4o1GM%*MXB({9oHR~e3;oqPXy&DSi*<96}q=0guzMDxI1H$rdPr~anvg&B#vT|Dz zEkra72X9sHY0|{RZ}S(*rD1%+zX#7$uP6z9!A&?( zEZ-7W@&oc=7?JRq@37*%(^z_Dm6}s8Z@Ga611+Xm#%G=-u~%D?Zp zp#TJuPDYdzMofu8f{$q$d9nFMB&6grK~|*E{O)66uJ(k1(EhHxWhj%tzGXUWUK-s{ z2zMQ*FukQwk*w0Jt(*QawKfVkg8cW&rR++t(|%}P3pN8C9L3Rm+d|V0p$EkPFfe3e z>N5ZU000010iJqA|M+S6e3eyN-Fwr19r51CcD&vO4F1F1+uDny3xj`~!x$uUseyg{{PxMo}pn1LOl=`PmB{f0-`8xJ?#J|&A%Dix2)ifhjp({GzyMU z0=Saj+)djFEGN(ak0NLl-)w_ZbX~xtk-IWa;lV5v)n{PM#&VQLHKEOgE?b2~;ct-aM}?n;xlfDq*r2;yNYO zPYNtFych1Qej^9nFCtH?Bc{se_1b}HQOk&ZS>p^o$N)}-U@rCD|kRCq;HY$=JOIb>2MZfnK?G1NdrW01L zgOiLfbC|wKD4mN!zPL?{j6AK#@;SYh*25NvKne2B8~*J58<1+q-dmJT2GUp>JK26} zk*E$^%}I9NsV0^lFY{iQ3z_|ULVN{N!1273cS%fcdwa>mOcdD0*##p~wZ8r53F?m9 zbOi_N_vMfaeT73Qz{Ta8ow2-I@=hoh|DOw44B=RA#LoggwkLD(nZ8%j+J~jh|Z4E2W4uPsApyhU{n%j_b`+@j0KImEWFm*dC^m8pjORAFzd-wh~w9BAn^G?vBUnjzO zM@G*mXPKGPg9>d4_U-$2>}H+=;ur$e=tDAJnJrY-WGWsycEH@FYzlHI67$aSN#gB} zifSMq56Ah>Ebk9ck_NdPs`s73{rMp53ijR@j4N4hs^2YiG?=k%TCmNgD6or|Yp?GK zERkOLT3W^6nZCFyu@d%RleDfd`M_`k0cmZ^l)NsO!Yp)}qRI3-? zCA1O;fLW~L#Xxw(i(WlMvq<53&6A*oHtj`>%tsmVRZYKN zzP+uefcdvWpCwLp@NLj-fymTFf}QT=>?BBiK0{7d1IzC4V4h457n`*9xx{`*I5cki zvN=MzBNo~$=2pnf)Xnp0;uJRP&AcQk(k_curQ~eqme$$;1Iux-=+Zn6+1^@_(j6Kx zT0_j?PR!{vkE=@_y0^lu%D8fvgev!Zy4KU?UUv0ucQbFwc^5NyW}h3qR&~hB0ISHL zc9lGpYW@9|TxlM?ppSKg*E}}6-8uRXy2~bS8Hw$7rKpG#G!94`SX?+{YLRh$d=c*% zR=+#^%70NF)(JzaS|K@MGn(78AkbwkeTvewPEzxUcd=X|6LP96IO{((5jb)2e-q=J z0AjUEY-)yjmZ}Xoa@CgMjM+>hYE!tF6MVD1R9{Xxz{td|Iy-q|&8C*cGZq~E$s60;0V^!I*!jB_eCRSGRDlJrqfCO8u)1qlufD} zGS&2t#|^be80;I{X5XCPA__Af2ZppZAPQ^LIFx1h4{WF^Vz^IO$B*Hz#eg+vw?0N5 zgFw5@PbE5hdtrL#B?q4F%HEJ9ucR5>JV_>?#jc z8?F_@175>tz6Y>w>hVQ8E49H)QrOzGTeHytWrcH(_MPV{Qvzk^>3+249sZByAvNmV zy@a*@k;b~yWCq^a#&d*8uEJ3x73eMTvlppLK$%uoX0ZQZOI9h=vS6M#vRZpr^_mc> z@}px{b|sdzi`XZYuM&nUbc(x6;zSy=3{*v$v(<}D_?qm8p;o>ilz5#4uOlN#|3^B} z%|Uk4jf3P*#!|kOJe{_d%~OOvw-9{&)R_#DqFm3)Ek&MUv{GX(dX=D>cnSEhpVjkM z8+C)56Au=$vRXNMHvX2G@TpMXO;Q#w@+Vi+vw;2CVxb50lwLh5lGi0J(>}&Sq?C?R z(&_^W?9mc~HGr82#p zA&xvcWvb=!H78Yq>JI#5HQdXS04Qwjy5y}6$H?(WuWC}{Xo`&tuK5f;F()6kII+Gg zvx<(B40`aB3&xLr*}nuiRVd>eE{G|#ThDbQ@LJ7f`fj_9kg*iBN_hK<1ifT=yDq~)qKY}^+E&^7w>ZvqO>;4*Oh8fugeL7n?w`^g=ydy!{^ zj-*GVk>GPaS_)oDrU+agkLnd!xen5-CXmk8=BP37os{@DhL~f0XUN`6d{Z#{W4hcF z((71SG!&M|D67NJ?Qu3gU3AW*}ZIv2$C6<`-O_ZnqZGbAM9^Pajsy6nU zu8NojdVkd}sfd){2$&^v#F!Ce$@T@8+uiy^m}^wR^aEN(TPLN3*jpoy`Xxjb*gDYC zBQEd+5;tC1V38ulg(oYUky%Isqv$+I#R8Sh;~bDGl&}ST7>*K?p|tPHfrwArQ2gtc zJ~orKm;QNxJ2S2-yOpVN>>h5c=_)K%vMT>HZ^XVGt4-xdh?f&IL{x&R(bZ>(jYm^k z!zz~u?+A>8%?*nIflfiJcJm|~Nq*P)AHu=Il+=fsf^VI@Ha^EKAQ)?lUzw4(!b8i& zwI=zC{HWML=L9|}Q443@`ek)cWRRZuX-sRq>?XMO9SE=l9LcCU(*LP*R3ETAR9-^n z9})&fYP-Bayeu7EhKIq*7l3@BRTO($ZT=kIozWxi_h+O=#ho-C1=iAZ?4n#TlHLn^t)6WvuJq4PU z-&aryVHwPwC_-47W84+x8dYzt;MG^xEX$w5V9xb_vGvNHKfkv%sb#L{to0R4x8@`F z7jaa7g|gG@6RNP-({>@NBsq!ve*#nBOkAHE?%u=hRSzRgw**8$z5PLc#I9WzoYi`* z21Al_^Xc3VHdQ5AV}YVv!moy0^p0eLNS%PcD%zUJ6M;G~zz*u=6xw+ukmJ8dr<1L! z8Ak+Pzr+{R^G*)okmZ^9lMjdg`r9&8)*_;Z z)e6?gy9It_X?@1K-5Ew&RZ~FYR4uQq3+1COt>JV$D)I+qpIu#Y0+Qj?knil*(HdUX z!_KafH{e5EVUc_MA;I2r)5xg>`o8s2Cc)s+#-TWh-!ZOgEn)igm}-x>ahq(CP9M0^5Y;>v-0R47R_!>D@=?u z!Q3Ho@3`M3CQCE>eh0;Z47lkt&K}9@4fUI^a{2CIhz{l^q$eRp-;NV&E*>Jjl z2)F>K>COiNFE@6C*sf`0fL7!G+`G;1;YV@X-|uIHo`CZNn$G||K*GPJ+yj^>qyZSq zV=9x7)JqLl=B6LO82CmH!w#?Yn`Vo=OdQ5Q$kOlbLwhBYEDdtTf1rQRH)zAYpO9_| zj7=f8RQ5p0(|981g1rsI9EqY75EITw8$=wyuUbzz^PFpBIdV%aNtJ{nV@#sYmcB49G=T~=t)TtI@RIaNw^kH6|I(;V^#{z93ia&6X2Cmv z=)k0R^TGevW%ks-R&TrEHPJKKd~iKn5WZ19S6x^!QkNA<5_@IbOc|n-Hk@oitm&DE zTrD__t&E$vJxuVV+f~W0=GsY^Om{Uq`{Chy8eP+#+PKuz3&*p$dz5S4Us`zm9p-=a(-iVVfwgXJP53YHj#W2|T@F`t?^o=b0D6`&Xv{d>S) z9#e)DB2E^S4(4*`j~|OhV)v$P03o7Ktan&_7H^v;43Jcm!aJLl%N^qQ!5O7pNdj)g z$ahX%+S;NbnUQ#0YB<#+V2Ir38Pw}@DRZ>EvW}as@AYCsmk$!ks6S{ds=8%i@K(Jc z4aJLM)o>Ble8)kf!+AADV+-}p1U3ibW2?gY5#s32x1|r#CBs9=vtdc9JZnz?rMJCN zl4HO~nJZp?EwK^-j{5^fKI7nJ5Cl{r;753HQQZdJPN>0W4NiTd*3Fi##V&zNT#06o z@WyVa%7Yj$zFa%9av}@JwVhdm{&+RVLtz0K&-|a+kcFM+pgKl7Ok}p$%Q!n9WubX1 zBVRIy1tS%uFYDcwRKVv#OYfwk%i?A?wsV|5e>SN!9-s)hqH^gI@LpbX^Q z$crQC7fx@uL7|8a^@sPycnIo!lwx`%^Ik~6XeHp7ok@P)?Mefs#y^ zrN|Ity7NT6b1~!I{{_(VmQeps=OnAv*-HtGq;tPD7U+Dc zh`V7_UVXD#kt=j#^1;$^GD}o7HS{$e%ZqK{V2*oGopf8YCdUs~54`;vRFv(;#~PjV z)X)Ng2(%ti`VBG{hNQ z$L2Yo$A)boiQc943Jag}K&J*swcq;Udm_&#g=m=0rsERuq4`PzD!|s1kmPnBao0`M z7gz;+$ahi_H&`5M5U>lgHJ!6?$9yKqlJs0m5BWnJ{>X_N0{CsS!kvvj9DT^`dcZ^z z#`#l&18bZBWlWv*n0`+5-!2PP_Qzx>MnT3hWu=kpt|aJHHp1{{FK9LW{zXEfJL|N! z6+{1Hod!_zX}o@}Jz3zCsqV%$0)=Nt528OpnP=rZ77&6RBg*Lr85BF@;!jN)TK4cZ z63v|7iMxge#z=)~q<+=k3437H_WFW~Y?G9m@NCP`^yhneaswY_6|Qt>Bn#dTi-ymi%)SFOndhvdqz1w6 zM2G(`&i7+vqkPP!v^^M@(`PcaRA1bz;MSit#QaD0k$UGCM5~K9r0DP06eJYIb~axW zYyo4rNM*OQY)1iLwum*3XdSikDG7Y|KUHj!o~3T~erRL*OugD?zqyMY zLJ8jZ>NS8$V7WNq!H|GdUI0+{SPz5ft?vGSXV&uO+y?jp8k)R28+4>y&n0e7Opg$b z_y$ziadOsFdo$bPi2%KRHxEjCuNoqmQSS)NTcpQT1YKgvfn;#Vw$1fiK~n6s9vkjXwIY_TLEEV`Ub=D|Nm`wc0N@o1&f3$~A3$ zB|;(~aQALSmVQd=eXvaV#Gjgy$T%E&w3%vToD#X35#EVxi<|;PZUBfaZnY^XkkOMS zwayPgvlp&?LBv?q!&Z76KcUx63g1x<{N5gaL9r@wMv2GgVU5{|@p%>4gTj2BAZz>= z1Q!(J%e*cClQ~D2AxV&52@SL$A@Z;_+Ph~7ax5cj-v3c)E!;tAyW|hK5sUCV3kJZ$ zp~bLqdg8V3hyuQkmgdC>R|1=st{$74$sz1$`60r7^4C!@5eI&gU=*fv z+aVUv%95doPBrNKxhVZr7Kqa$W?gGKaM)}i%jda^vBo2}Ywl$sOr-{TZ86yt`C~Zx zL0j7wc-3kaMS@O)@$EkqoWx}oG!#u&>v(FSRp#Pq6I=AsbA}g4<^So2*WZTm`^u2U zkiHX%wrMmKg{T^K*knU6Urfyo91Qa9+)l#qlu6^8wZJ9)6g-NDctu%K$Fr_5oyi@s zXno{EUI8fl2az^F=Lyi7)bHJPs+w9urP1%iYC6ug_IOsd-RP&=qY ziws^~ljV74Ad$WQw=$Zm6v$2hz~LXNOo2jO>!S;fQ(Infr0$Dr%z&3}aQy~@VrXDA zAjuyYZv?tb4Cn_|?#}SRniiNM5o#AFkn{On<_#jeKY|>tOIa6hrQjW;e4xZr-Ef9) z0oYw^iL&lO>R!3;@JCv==JG#ADFUS+DipiIb+OlY9@>Cj6^x`Qn!3CSHl$0L}{GED{O(IB7ZolO(x-ml&07FBgM>AOC zk+cX0g@a3*>)q00=8Z>QwZuJ*-`0gD=2ovo*RM*$X}gG+&nY#&5}JO)Tj8*pgOgOt z`tzy?Ikby<{!99ib+_X0$gDhFx@ce<7lYszb+nv`8`o&>R?&Q3cYL4vtg00-fXhG) z4FnkzHAP-9$O;!RDm%FHBcI8nz=2a;5zAa9itz&rBpX(5;FjuXUb2vaiy4QE(our5 zGUYb_iheeOQPJtVvwXsF+GO&FTt#j7fpHJl1A0zFPd!jGs&bz};h~cLvm31FC0!}> zO?r$hOHD6c$XcI0uj>?j=jEuoBg0v2lw9~b_aQHVx^F4s-tVj6xh~X}M=YDCjen^t zt44Cm{dODjI3zLl~yA8LL?)C5AjN&UWt9PB8vs$7yPx@U5I-nD+ITsc?qv z!kF&e3UFd251pYamwev!_#uE;#>S<(sz>xbmlXJerQx1O%5wR_3esOF;Sv8zHr#(5 z^*TtC=os>u1V|1N&O=;lX1FsFIRsfKN*XZQ$$_*F1m004j)xN z?%?l-unul`qp*N;mKOpFG6(RIMBFHTUXj1h79y6Ww2X%D~Xn?pb|Gy$>4ea9}kPY z>9ez(>t+1KlcIRZ8QL*a5iMffM#JbBh)XSk6nplt7XE^7cdo`obYkjXarFsrHw)kT zpuyx)+6t#lFF@9x7ghjs48|?7G@~>lKXM-}sK6n?=^QAGB`~Y~>^diK%(Rulvj`dO z)M;Y~4q!-RjC9OVEoSjFH>UBsv6ZRk`;QWR=m9u5WYYFhK*+Q0y%)W%RyddPcky(= zyGgh;*Bo-$Vd+89qZ#lzP{_%}XFq4gO=P$8#ogMp)#?qRdaj*c_@Vf6` zQz4IE|M1_D#IsXaW)oW~8@Ih7SU2A?l$JICSX(pE_nu1#mu%$GlZ<>^kfx*Fr_U=| z2LpIwb5nL#|1?x*#s(n>_N%nrq;8V*Qjv#G8@L09s6jVjb0Wf~JO85F_SA$7>6_H} zRd03smFsSzh^kBBzef;gw4h5+z$xyXH|d1!4&w9+tK@iU?icxp8|>@kkb|NZXcKq; zkFhPn^=^rO-e+}W=Yf)!1TT3XoH$Au7Let10M@}y4p)dbuC z?{N0+fZX2glJ+DLdKDCD5#S|^BIl%Ew+YH1KgUnIjDNPkG>= zSpTV4|BMaptYcZOpgYE2rI4uyg&#dU(ybLF)C*%kq~uoYgYZg)?{?f-KA=k!LI{?T z?WcgH%kO>3!|l;bDS^zaQ$Yy5pC6XJs=fzCQ6{+zkPjm-eX#2LKe#sWSz-jpxFJ@( z1)(+X0|;c3BbDe#t%97O!%2+qX{tyMx_G9UB=jVzqZgzNhG%fx$#`g1tQv^)UZ5uc zW(R71WB41bGG`mU@O>tBQfk#IpYLMVNjO(8u*Vta)UnI5bY#QGlhe8OdYaTSU>jN{ zc`Lv?S#Q&@NmAGMSEXm-nz~6Fo8mc+ah(-1J+>;u82GogZGx&YkRnh(+w8ueI|R@FGbE@Zh-Vm}?HBpm8Z_`{1w{PQg9v5QM|eqR z#dz-qaimmPtjPB22HSOH9y$wITmXX|6lo^)6`CmeEyR5(Z#WrF#Wyo$!bh zYeD-nAz|FVbudsulJs%@qdjC&`&z5A$gh=K_ckK#=c*l=ZB}Kt&-xx8E_keiGw$aE zbzJv$LrQE{CGs6cTGtlWM(}D;WHRA`_HB_pTl^5pQd07CC)olXOdFzGp%{uxoq-7p z?Q=p+#js1ttoocuX(-twR<1oqMz;7k>8Pq%Q0Cw${TWi#@KxYzSH7BL17J>qRqXIg z*3;c1JYWmXa_eB%hmE+!GSr1~ z$3RCZT6kcZr6La7kBI~fg#n>vdTaLF3lxn#l73RYC+x<}Kz5|(#s2hGxR?~CD;%h+ z=(2G7h#h;RSstcOe~RLP%+CH4>@;JMWHnfFkfv+Jm{b4_D(yJ`mrMAJEk4&tz`s0b z`weOvQ4jg9RvHNUyh6<8EQb2reZiQy|pJf@{>{Xw+`uYC5gZ|C12K)`D=T$^VbH>S&$sdY9q04yj+80Tm(4+9jn6yF|i`?4uq;{N_w=0ZA-DbQ0`x-F?NVRzZO$K?G#HVdGns#o+)~cOW*NmN=G^G>giEn|E zeIUWn6W57F4BPc~3K;cWwruLuU@^sgkJxo>15!l%#EE zeO7PuB}%wNiQihcl?j`pUA^=L$L%l-KiZjsgI4`@33lj!AYBA)h^7_}JXw#3sa>7GQ$3pCfjuU^qG(q3BW3(TH&tP2Cq_ zyZ2WMKlTR9N_bRlFiYm$?7VRLQRW6fmeVn>O47l8n&H;*_E9xfP9X{b(_e*6(>#f* z9A9cRNkB?Bg?5a-1L)c8?4{}t#;C5T)Y6NVnIPERUYEf+rb)|e4%&ULrH{eIt`Pjt z;1^Sdpc*$3DTZvV4e@{s&;m!eo$q(QE{v+)v#Nx8rFSenrRPwfD#4TR_L%$r`%TUr zG(i~VIUkn*8Kug76ZnyFJwwE;*VDY2{daCdmYXUnq}AYRJdJ6{#u*&bl!}CYEXlq2 zncq=qGP$gwZ$fk0UIH2JS3XhtJ@g#Q@%uAa@%4D~$+TK#S~l_3DrEPaLoS3j7htL5 z$v_^NUml`BS)_&!#go%T41zvV2y#y?pLme1+J~_Bq)*C{qp=Rb3ck*Q{|RpAE%-6h zYM!3DvCKA7;ic-J2pCMM{E(U>tcE5j{jkZ%T6Q2U3Gi%(ptmO6x{^6&^Q5@tiRYHevt%~I_#Hh$1{ zFp9OlO8^MVCD7wq2Ez5sBc!W?f8wb+#T;L*+lP_+>&*z0^UH=;kogN_o~RB)G9a@; z&HhL?(LD<)zy=eX3EnKnp$CocaUh@d_Au2&LW>%kcz**(46juhy2Q(2jMT_pq4_k# zQ?IQ)8I5{8(`=qA2xKt>R%-&)sTFwz_-XEvMT>|h?6H@ssyyhW?jZhQ_nR2DjSxDX zxi=q0IE1N4b##KRobAI`aPgB2mx|Rg6>or87sR@t=@zk>={7$GVVEVKGG)>Ofyt)M&ov)UVEcC-(a)H zt@<`xjSaoywip!T0DEWkfWxcivJ)Ck;1dfbC4eT4CiIXAC}^KRs%xqZacw1DOHkp! zlE1QG?rjBhnA9k``gn^hTg%)zA9*GRxB`=q8`>(;WiPwyG2bAoztvxAYvXR+0zo0M z0Bi`2_L@;QH~BqpHQW`})Mjfe%SCcwZC27iTD1(#TpwTLh9`NSn6?qbD2>pJVzMr9 znPdTUA*)z+trxxRHNuv8soir9ke%>O@rc%VFSvhCnM-#6ioZ|(;*fX*VWObJygp~| zLT7R^4rag?0tTn2yIJJdK?WeRZxuDh= zRw(ZLUS6LTm;uI<%b|zkz5m#A_jz%U2ge3H1De33PjpDeJ)N<^A^~AL{lsuf#ly0n z9Iy2)wNAcv^Pp1V#fOS3e%#N>)++e9@mTJ16A;188;I=3gzeQX|?W| zw~CXQU=8#vV&8}U(w`O%w!?HmZMs(IbvfrpJnPWBp|Wh{CrK&&L>!j-SXQ+w@c)dO z&J7Dsav}FI1AcAz@B85u*qZ-e__BG*oM&0Y>jv+KcM1c2svDl^*1Gf_15`aci*Xs3jw z1iV_Qt);bu><{2Y&13F@mOPjsO9e}E_&hKSeQQukDcX|?O$&4n4O20~%x~RRAhVbM zEeIh7t>byvGksY~3P5S>0~a0a5227(7rJ={ z>T(3{yetX@fs5XotK)(djlD#9oo>%kVD*-`Ay@S+jdMWqhQKh{s(%wa2lKLkeS4C% z*3F)|;0|SVEYj4-!yt19mD{`6rqFa zbF3AofwAZKig90SHahGE@P7(>f;0Ghq2A~-oPZ>b#4$zW@bE5(LS2kCqu4?0hc?dH zPRHgzmUCdxUSJN5XWmJPZ=Xf36eINuL#wMfDLban>dOaB$PjWP&K68&P*W`YeaqFa z&em&;ZB+qEu5$A+2G0KoU2NMTxQ?TC6<8}G%zsJy?)-@%!1la8kk@`N?ALb5k0k;D zP=?vf`u@`B4;iW^fw737Ued=ON4jJdOV{uHd7l$xT@iuq952Z^FNE*#nsBK@%FxAp zcnF*tA>PB+6v9(|UW<&UdUkTlI}+Q@Z?+TQR~GHtOwy|?Y6_EyTAY`bPqnJ9!}RjA zY@6TGV#`XJdPkdY;zvZ9m6V$@PXc%i8EOsimZA|>D0GDXdPWgIsN07$P=95 zKQJfmAXtVv;b(zMrFw?BmQ>m*Wow>WzS;&9MK z;D(r2Ew~N*& zfnKfYU!-k^1H1H97VAp6z3d4EJ5vT~jNA7O$K@fZ#q39Ql4|3P0)6L$Zfgk_ys0SXm^gLKYnm z3)MP%fgw~C+H9bZl03OZY&oi22}O+8HgME$aI~Q_G-YXsNK|e^(e3{__ws+u)60A! zz2(9YMBKP=cVMq(1y%P+K{<>xFx{%HtY{Sti^i830iP(yXP!Mh7a*;Y8}^)m4vd$} zxv9onR#pV?EyWPrcq}f*j95FBf<53cU>@rXy53HELbhBl%*@e0g$fhmkv0*-Ie{~V zkp;9=21>8X#D-ZiCMDR)iA*+n1JeQLvQBb02d3065FsIB&W!PC{4s3zJX`(C9kgdk-UAj-`mmveG6&5CMhC&eOE=Ry2Q7f{gw`D{#JYS4uSiNfbk|Akkb* zG1+J08Vv!fn0XFymyCUFldL5`yca&$t?qE$c%?_f)sIC_R7aXx(V%J z`q{l|NySn}p#}cxwgih%AN<* zz%1f)*h)RDqpZ(+Oj>l5c*f*AP#DTMTXsUWo>mlFd@*Zsg zC{}iu5!yhEmzjvE|Msn(3tJ9$<13ynh8CZf3-|X>I_hK&9O2PRzID;>WL|pyLILFUp#z;s(S}kkBTCa84mq z-yrKw;-OqL0i0W?p_|lH6{dwH4Z*Vqri;X8(kl^*Jl6jUc({Oq8=W0>t#kxK5IBjM zA+O#BfG`Ko1_q$^zx5O}pr{&jU5uopWeX9m7s^~c1WqB+p8-h&_xFBbIQdfOtuOYw zZ=4t?r1OQ#wSOOjVV_|)Ewsd=`Z=(wnW7tQ{eE-l+E`9p^Yw#c20B>7u+;1v=P!wC z(X>}FT_XDq^OC8vR{t&&z2K~vSWr%!GLPtG7N2~M)5l479lZfnx-E{$e2ZO0^jKHa zi7`kf;Oh4M!(9V;GR`tiQi8I$i5@I~x;nGI8f$fpj`XWxGTxU3H#`>SD(`Wl@Arq- zp3@@wRd4ZkCZO4kN$o#w7^+I@h1QopKmRunp6{Y;%gWuAJix6ukx8hbJP6eA7Q39! zNMZ>ynR*&&n6we2@rsth3bW*|lkdMii=XiRN+AO#ED8yuW7LLMBPIu zz@~D#1f>c|3~qHw#3M4iwR<)64N2VpsXlq8J&H9*=^-4bQ2!2P7e$Anm3eR^D0Tqn zH*R+Jw3hafa~^_t!8T*z%@^%7#-_iMbEhgYW5()VnqH9Hif&eWCx%>|-GdI~f7Mkng*nu2 ziRqa@V#J2{`-zqkmc@k04bNvZ3Z1t^U39g_c&F#LZxeW2=WV#r=)V8_*eaJ=^-zL*x` znK*PzZ?M;5s+LamNxPs;6p7+pm-{(*LfT~RT**y%M<$cE%E-lCk!AbU*RRYqgPVXx zZr^>%ZT&uhw(-Dgmeebwl(k>bT@JHZ^9OgYIigZt_qOJ2CZI=;)8Qs}BO}Y)%wwC9~a5HFRr8xANc6S3{RcTVTNfkh~&1~T&0lV;-sIKILW^PX&HRL5vqp%xr8IeifOuM8@Du{vd^h8Lds5a7Ultgl;6C~e=n-S&s4G=K295>fWD3)P{vDd& zVOVZ|H7!N8oFxdkY1$z+sOeg`g|wP~wUw+#jQ~D&?)woT{791B$pqs8+cVG-VPNn? zAY%-=^0u3+0sF(cb_VTFQLfR(hJ1~jx0(keg66E@D!sOn0TgyZg=9|l?lMjzK3H1V zGs-m+BwTZ!fkq+ulhHA)$;dO7QToF$c`>M&> z9Xkg~zeu^(O=+4A)Z*%;u(3D2V-@7U{mE*UcM)+*2JG{d#DKaTO zq3O9s2-`Buw7Z%&#}f@smC;uyEr&b-t${#~bG!0$A#z;of^+(4@E;)$5B4brsC4m` z?FiaEedZOM1NlD2N-Y@*Q%0!jV3?~__Urz|PEZy(JhJLX#D^LTv5UzbsGC|0Sp@-i z)Z}GjI5y1YC^aU`Nh9U^Blcr(ZG>(JNgHog3*mr3ii!|ARbpp) zY=4EuApHDXHl4KeSZlR@&~@bs=7SUom>u5D>TFd6x58UaI8k_4-h!ZY7nDH9yl?Cx zMj6D^-9l)zA{lxamGk6xjfvY5j%~rcr?oEB=)PqtM z=%!>ZdpNJskk0IKb{`HauamD=p!`>C(k@ZZM2EsFxO{hkzlmL&UvGT4RjUxRJ^>DY zb$W;}Ye{ERZ-WLKY<)_;EOsHt%Z>38qT}-Ja2iyif`;1$xnX46Pq~@~mj;{{`w zfRNOVJJHsIYDutf7}i7S{c!EA^t*JZ;^m#WQ@1Cp1(%LhkN)jvcb`6Z7DdnohfqZp z^zTnb6)rcd3MmY8Pkpkv7=>41ajB4ZqsvNM9xe80)tvS6n(i~Vyjg#;XBq}~uS=q55l#o6W>0UNUiIm32B_+zz&PC@FfHL3&0%m*Aky~v)xEu%y>Z?&$ZtjCzL2pL#Vi2D>EoQ zNRN$BQ-A>~J?r9H%o=~aJQ>j>1!50uk^vHR>$fAWUb=~-=2pB%^3(z{8{kl44%Rmb z|JIc)C1z$z`eMcKq z()!30YIyrAiDY~&L8p`OQPe6j&7qNhlC{08Qn>6$_R#>_^XIPyxK(|tHV zYbAnA^#0%GDpy+Cyi#_Jz_qwbZ%$ZzH=x`pjQtuxasQb%Xobyi+g!NfMAjq?mE7y1 zC7sMzxsWs>Xx~=7qYMRrUr|1r3g|P&$Ad|h8$HV+J0PM*CM}Hrn204?4idF!F*$F~ z{p5o-!Uy3^3`96X4g6UKfU9FuXYCSqUYg_M2Qr{{zrT&%l4Oip%MmVe()6cZm)C0k zNETknKxEH8=UTGx*mS&#(R4DHn=H&ul2+c1gs<)MlBijO5aZa61}g!P=R4BgloY`_ zpa6HZJ4=b^LGkV(9O6UeQAWY_nQxDYH0cR*5iUB3fh3fAxS85MbFpshQB;XOxy|zH zGM8;+QeS=rR^)kdTCWF*q#?{+Kx&VuWj$zc1Y*6+p0$@)eW(df=PZe+`30P?oS4J+ z?=(o&{&Pm)FLtyf0slnAIF{J0&aVgUlvtW>#Wg}B*oLT{s8>=E63cW1(O(yVX!GO} zW+=CO88(j<^Tl%lrZ-di;Ur03=X{=wD%V#IUKBI>iR`@)`ZP!9^yF^fXwIv-!$d~_ zW_?@o17~w4kIy;IJ2KfV*2Fx<#lGpUecC?qjB>o^q!lb65{TZewZk3?rf;epaG)_L z9^4+do}pJT*I_t%NSQ)lfQuk*S_k%hBySx23DW z-)=ZBx}ro~Y6;>n_>&`#rpMNDyRBs8zjd6n1NBlDIqf|tGLzz3P!yAq9$~>}y0UdH z$s>}P3JILotl0`Y%ZGhAT#YaPGLSuY4|Vm?CmFC0cJ2sMsop``(nqjn)9$p?TXzba zf$9y9VLUZBW2U4_q?BT33!OP2Nl7GBr{fp;mzn!x3(m}KHA)Ian};$bpY19Xr<7%N z{9o)lhBRcjYjQJY8Jtx6&ur?5TZKy=MxGGKMchB+m?qTz3Ujdf>1hw?7krg{ZxCPZ zvAB^46P^*9F+SgkBsNXWz(dD|#fUH)mT3!ivbTBbX&G9G=vkP1@SXUHm`qt(#yYPD zDreU#k9!c#2eCZ)SIQFurz*e?L={No$Gg93m{@u_-9#fU`D$>|on z>~9P+dS-Xd)NsuD*fuCglSc0elK0b2&z@&w8DxSlCgW_TCu#?90QEspS*L=^A&Ye9 z2g)B8S6g9k1D@Y1S#F%uMDL*McFyxmlfH?yf%4kZhNu2U-TyKg4a=l`_rUJ=(OjA> zq1!#Nd0pl%;vd{Jv_C3xVYhC<2valU4+;~$)X)b;uQFjPjk(2phz_me*Z??;r*2mB z0dONLEh_5%C!D7ZH78zyREb@(0$fnp9FAOrNB?WH+L-}?%qHm;RTMUaob2%s1`)R~_SY=ulxcR-^4-w+VhO6?i3WA0jz&v`)7r0vG*~0(gPg?4 zoo0*57=2ze~GXl2-QU7L$ct1G0`X+@8Z!$-+OIyYPh7Nmh#7dGPxW zcuw;i1i+<#M&PedKTHse50YJbNOMvNyET>RUJkfohk*wfC`s}RyMgbpO^L;z{VSe7 ze;|d?nEA?CKwFs1pPDNMS!85wVwvz_grmww1S->-z~nf=gUj}! zJ%}|Y#^N8$w{M2Zthene(hSEnl3J`01mCUzs=buI75#GI0v+d{a>5D$q+fz{-C1|` zJ@-YnDopY(J%AruVsA43zXVy`=0`DJ{l9kt+3@})(gzhqUx|AaUw&>+RLoyGGjWXv z2Hk;oXkg1G?`)s>0tRh1xKK4_d?J8Lh3#@??@gXL;=bP4B$o(oxT}_OldY|0_e7fA z1@%wTj%5t!Lceqrw>+eu`wIO&mT@n}g0CQ= zr_+w}!UV8iG}zP)E#TBAs2sYTr*W+QT9ST{XgFQ@G3iW$?euQOe$wN|0+h@px%NRP zL$)awtyO43JAW7U`78Up-;Ldo;$cK{12kRezCyll?xSTL4AiIrrI7=pURx>I(YTbw z#&z!ab1`NUa+@`If7o_5E09Es(&g95qv}-@+?}%-XvJ^G`emzJALF|8Z6aTu)ZrZd z4{;F&&W}~3daBSjt=J@*oS;^K+=$1nCpPae3Ag()^?DS%MF-8&ORW$Ypn>d`o8(j} z&-y;juI@)!gD9kPcfFziGdq_Q_=Kp1g<9R%5M-r)B1KeV!P`Nlb@?&(A)h!~)h`@v zFYrWjm}fUhw4t1L(OQ~3rxwq)nS6x#ofK>cC?*7A&Jpo}4D!<3k4@X6v+(DUKI_46 z@p?AYhBl@!U_jJW&aFs2{zeugQJ}d^w5GpKNDq< zja5i91{8OExoT&Gzc3(wH`uar@ki$E@LHTqGbb+(F zi`kD`%&||iAf%;pq&B?hX#IF7d^;!07H+u2eXjRyDQynvWC3kIz^c7ieyH>Bw{hyV zP&>>G@*zm8Mm{41v#ek0REPOY8eHCLrd@Tmx|U|;BV0krEC&yfbgFZ>twlL`5w*^xfK>?kh;7Py8==I)n6GVHWM?Xh9(K+&&i>hC zF6Io5UQ!7&kn`*m$bV5*jeftLyE?It(T2j&=DcoZB}8(tv`$UsyXHlqgwh743F=D- zaa&bvRDS_KT@Fb>SSX#_yj-GGROHZ+PdNh4Y^JSEJPdXF&@vIcrTZd4qPG>jS*F1a zs6Fk2KEou8raiMYc^bK$Rx!AjFf_;r%+!30 zAQx<3U`}KB7!+{4?HlJ3fuY6@`jJ!(ljrcaXj1T1?|Es25`m*H^keYH-4TR;4t2Ah zA*ZYrX=oyzu$eg-i}!ci5$qZKr-51bK(jYVIryq^e|!O|Gr5CH5OCqm>u9E@SC|cs z>U5tCk3X2@G0&$emfwePp93PnCTRKRG|F{iY1_`@xzFh}jw|$yY|w2ylCpZ~Mq#W( zhcdm3xKs=R^dhq7;T5W0QvFN`CyKJwm!sg+&JP~hJzv%+s&Qo?0X`F z|MruL5y9{Qffxm{(2-H!&*4a6@1C?{*z{M*H?R?4DQzfW;%cQe!is0*4X(QK`HobN zcPYs0gVm&%E}Z?arJCs5ZWuuPjAg6UHdVu@%}BwQj8dW<36tO0Js?L&T*hWZaYr@` z|3Q(QwV!Wl+qB*nuRA*W6A|L{^Ca@}kIbVneqym1L^2r1NFal#kv-A-tt$~spfQDd zlZ0|&d%9A0IApTwlV>BG+OeK?<4IvDR(Cyv44lQm-U7*yRxjzR+)2}9h&WgO;nVK~ zmh^g~9*V%DD5;k@Gb10agt(jJh zJ934oC`yL#69gs3<3#bX8>Sf|4Y@BrW06 zOp)r$txs8_My|mda%rwrAVFBst*mw;iyi|OCRRge&Z&wLf*ZE*4Jm!s3cpOw|rArfehT&HFESQ8Chd{MS%%LK76>cZtLG1LhHl-hrH|ks_f59 zRR0IK9v_*tR!)kYm;Qtaxu|PBE;%GtZyzJvCY9GV(zPcKc^(=D0%%Fw$7la7D^Af`c9 z7|{!LJrhJ6sRSv>jz#bBc94+Q%?9)Wo8P-MwkgUI*tV>B3gS|fTCh8{fvVWr8=x@$ z_!`4udDfNEe~qw&KPHIBnv1G&0)9F7BEcR|Ix_JChCJ`a2MRb_dbJUI_uQByXSoCf zu8^AX^afRG(+lQkUpGgy(}sGau^r>^R#P+LbT!REw%(~ZbGU?)+Pg2ZfkDA)_mi6@ zPUdA*H3*B)(^-3UYFnOqeDx5T){hNuQz2*F%hC0D`nOE;Sb&}RZ8?O=dT&&FFN*R* zwe%eIMWuN;D*}j$c3QqQA0YVy$0?!VC>4wZI8s;#-{~^SSiMt2>#n8X(n6csjjv;9 z>V&I&pJvJRnyh;h^1^l}3p5l_?ZA^{=R^(4Z|(Yhc6X*GJtHwbM}PC+8g42)yhDlG zqJ3Njm(eRAtzQ>@L6QNqOO}reWs6&UneOvQ$>MZQ`r{`p+MZIHz5!Kr_?i7e9UPoz z5r05(-*jqiZt9~PgqMfq=t^7UTDeY3qVs*s%rYt8d>o3Y*b(!VYx|aQ2cFmQbq2Wr zQTpG~lu(7bF|;$`7o_!zqvQ839h1m_C%ID1Bz|M1&pd!^V3kEZEFu2wh7#LY z`NBcc+);ZZ5_4$btXsn1I-X$4Hw{%G@of~v7w$Lq?I`QW=%SODPRI_Nj$*GIiWP8A zp3B@4oRsD149JURPuf{}Kb1f1S$}}>%{0!;WBU<_G>xu6@tTA7A7+RD<@}nB8A7S5 zu>sO1VYfp0fQhg#0nI|g+y^oDxd{DZF z^)3b95V*v;YnXYsB9vl^>AN zp6z2;76KzU&1eKj;uhl)19%k%iE(|Fypr8-2jy0Em@$gW%j9QME(QB9Ny>V)HFTGQ z%TCTHVaUVVTDNB~*g}~;|3D;a7pDilKY@v1LZ#`cWCg8_w1!kFO#erbw3x&2#i!g* zqglsf08K!$zsk$^ospH_8i_#vQhrhoqden0kqa&eEpSL{|6hLKtGBV29VWsdZ8-(LC4&2F9IzCAl;DF>oZV=`K|;sXdO0s;6`fNCfkYa$ zvr3((>oJ_CeYk_9qud^bMX zU|9*?F~yA&#pZIFqrD^)^CvhP^Lnmz@TJMwEs3Vn{RFW5UTwjw{A$0G-oQ=b%t;6M zf>m&05=h5bXs6X?^shQYf6TY5HF2y^fwdC0xIA4A=YwLvwY(JP7vwG!{XdQ9e3%29 zR|Gz6v`+W*&wz6}W~%HAX=JdP@0TsM2yGSY7dd>UC5BtYO$Dir^;lcX>Xil(i9xA} z-MD^IUpmY05d7sSCK$`O?&W208z3BBchqfUZz`<%tIM;>YO#9T8*SL@oihn=)Z?`VR#v=1 zxO@|a>-PdPp5tC?p6tZTWGCBSF|9E0S~(xv*b8I zd?5d;#M2^(54?_#!;;fOuMZ%W%hdnz&sfzBxl#jbXJf!muA{5zo71IGHOkIkr5CxI zY>0Z^n_q_8M3i;e^PEndWg27nr!bdcBL(!fED$=OS#OG$5idtbpnpcGp6IfeEE}c1 zShF5>3m9i`X02d<@GjrSt<_}k9K(2|i0y*6%5OajBBpdCEgAa;AZGv09R~<-fJxiq z6HkBau`&# zoGcPB@ML>U&EJ0XQ5I>-xze)h;lNG*lQ8nyn+Ns96bNL0ag27F11MJC$I0 z2OqyMHnr8cNouzt#|hLo{>H((BJUGM92p|$vgW8IN-N1==-`#4b;S@K&mIMva4i|O zyKf2(zfDwg@nFen$^`iuP5bsJ5QL$fpOsRdQ+MrV{#3c@QIOI;Ux;_te28ymsYkG$?Ydj}Hy93>%bomQ^aLFuR zRaZL8Xa?V_gGTG*ZsM&XSF>>;?n)t6Df3{VpBHsv#w4ndmRSo3R|XWw<%d9C2Jf}$ zGF(-Jvb=(>?HoBMCCv@8F#Oy?F+#iH$_nD40GG`Lcv`Mqn?*_Ky5t3yZ)8K_kV*ev>IictMJcTZn0>(ygCc_I)Yxy&07X%85lCZaM_V`P+T@@6@ z(AYDCV~=e9<3#eYGQe!4?;F7D)N9101wUf9_yAm|5i)feUzBkm-9Co!NXH#7$jpcB znnS@8!L2ROkVT1-l>jI5P0} zD|^{)4-&gc!j5_uKjPkU%5K4@;Y$OHnaNDiRj9T|VqZk&)0xKK8yzAj!|~Iu4^eXy(HBn=v@YWe82F#XP6K2*dB! z;i(LhJvz6}dlVVn6J4(QyzUV61=B~0DuiBOfzdkUKIx;8LKtP-Bl*Q708seD;t<|}P9>^kP$?m}gHTi!%kY9~+GQ?Gr00kRw?vGi>Ko3hYD4x}qvzT7} zXiUm$ZyFT7*?k5f{v7=Th%1ISsQh<|Fz+gnteoe^|ud ziC6XW*~>8e+GCSdV}~*&a_zchHk3w@xA_Y@E;kmeKc|ePPF}(lD;o1GymzKS4jVG4 z2zmg7M&tPi4#(Wk^4ivpv=v#Ie*j<<0nYwHiCZ>2YGQTHozDSI8Uj`gQC1>8HSqA? z6!QEgv@kVo&za?J^`fNR3IuGY863nJ>{HW0?iggt&5InVgE%t= z7ryxf-CX|_LqQ!nGjdIoAG^GKX;a44bX~P|0V>>h(YOk=`+yPA0BTy@>~@vF6Q3e6 zD-4X~K~d%Uk*piwXoAZxZgzVu)FRzqG}ASC&%64Q&FRDVUfDT3f7HoM-_~BU+L4vW zrNgkj+k_5xyFiR(+Pe*Eo28Grn7B1*W=iqWN%eKFDSLNqVE*l5_TqdAnM;}OhI(NK zMTxJJpBz401A|TLudv>mR?$rrmrC5EnLR%)4-ARFSU(v*%jthWC79T(@K&wZHR_sS z6C3Hz!kPHlaoJdDhd2)O98Pl)8?{0K`L<)z=IVwjpWsh7&0?={UuG=s^TNRt6=id0 zRqrT~`O0G_gPfD|djSr#zenfLo?f?Y(GuL^qN$;d2@^lKZK536Pz=Wdb}l)TTg9I^A;Q8W zZ*6WrF#&=fI53n{e(dh<@YAN~gz^GfB#sU8J4J0MwoR-x#l;%MQIv_)u?F=A@#hlB z-QPFBw@$J-$p8CkI)15+k0DLa=P~K-h|I^afF83@;w|rpwE^pkb`6He4vIHN9xjaW zn1Fu~Gu*C-IRf!y73MB_fz&Kak!zoF+{7r?37=)np029Np8`6w5lWSXv=Ld`FnZ`T z!tDp68sYd{SNTg8{|I{^M&(J$O3sl%eoC{1_;}&{+kjeWk`ZO)UNoJ1uyB2rAALIV zTtJR^pe9?fZ1F};=H(;TZZ`h2=#Jh*aocFHMuL>`+DO)+i7-3gK^-CSSrIU3E5vF{ zl^F*1tUy-`otJ7C*6cNhMA1@}J&By@&UI&8wafwRn$+5OxL&Hw|A0mg!-@EDj@bK--VmI-2@#RR3gD~h-YoA z3BzzA5zbss7eTC#_EqyTkmkk%>m`^q1GznQ&Lc9p+{B{t=z*L!ZsOLFI{g-a|dFl@o&FT2-02^ z5R4ZhPseOkMOwG|4)?4qhTZAvt=X*7ZBrlFLy=T5vRruD;s(AyrkA4gsCe_*=mr(dm^Q18HM&2moT<8p z4eFI4w6ODwBl~99MVGcrP-g^^sW{|T4~U#ls|)J<&lP`&k_MGBmF7Jzc}}&1q9QF@ zdby76C8kc`gk1W693t;iw9wgfnK_Lynm^fb{M2mFw+qNl`~p}XeQCnPPw(P@&`C|=9;C3815 z2cbJGWc1@^VpR`N)QmFtam-ywP7S4Qz{oiJnL#UJbsXU=z1*T`(3&DN*S{n@EpqjV zbua{nGRzsAwGWcj&5=73J_t(@N?6)oIf^nUmIEwdmux}8kZbaD)ElH}U4(o+&(D`B z8_nRa#K@X3`Vpf)(Tkhiwrfc2gn&I3j1*}e1paH92#Wt_av?P$Uz$cr$mEkppMo>q7<)M;+$Qb`0J3i-t7EG3vU=P3Bihop6MLpyU~)jAEmAOR4oTLx0(G| z9X(?rH6GWI!8j)}KuLQa&*DAP-vet*!~1k5F>pQm5t-(bE2$2ao`^yy9w#EUh4^%t z)C`Wraa;_eqw3^TXyCo~P?mcIoM+3+fxv!DjUu=jh3cKIXPcdVtfra4y%&AL)l(LE zAB}1pT9#kI{W5=?0IChurwSSct^}%?n-$_iDz7_G7s1%ZE+NO+IB&n1!`}H(s$2WP zG4xy8P__o}DWMq~!uSQd;cy{*{A36=qk?!fA@_AsOJ(=3)dJ25kDSVM z#MNHp0_u4^g>n2*u>97UW0+xy$mX{`w{xy8V4N%0ors{QDOoR^;6@MmAfCvy+Tf4) z1A;)M)JgFZFFmCNq*#l@khGk6oBD#jrz7C}5ajT)<~jQsDX=<$uGGlZk54?g)(vKfgpTh%O4?TX?3!ZqUiV(7Alwyk?6`wBCA%j6Z>aD zu=X_liy?szX0fh&@M@@`KZ3j1+T|uc#VWEB@zf=yTSo;Otc$PdKU1t7gt#E7zFL-X zS>djH<*l#+_Xd&Eo$=xF7AB&f$z9r;hk+K7a5*=PXFMv@L>);0ag$BRaSBqF?oa^P zt*y5jvU&GNsY9Cf=y|BW@bR}A2rksy-05=+@XV=@Qwt!#i-XNXqd+0GQMEPbKbtYR zP3EQRGufO2t3HMn*Y%T;zh)0bJZog&fb1RISg@h|5lB|k8mR{HfcV7Jxi(hTt^!O+ z4~1o{$qmH=)nGA(8*_MdaQ+PO>RBbmi=3a1J@Mf-g7X>MI@$h`+VW!4mDqX@ikYAj zB>sQI>2tUV5>E*nP*?vj`F5oPN9ks&w$#E}=(&r|yrK%lO-@6R7XorfXYswoonTT# zi~lU-EN1G6&JF!;IJG-ajiVElt}p5Dk}J^|@pby_%|IP!kB^^TK-T$iRitIp!2SP- zWVyx`$^DDgX&GDE%KEi1pbT8$$=1aR$17fVW+3ypfLAPWarWpM0>Mia_m=n6G7Co8 z!%H&2ibgXhg^}3d>Z*SXXUX*75U2xB?qB-AgeN4wKn`rU&LXBn;#MX0wrwQlTQc$l zbcF8Y9ZXx$wtn$qZ>`b=3M528b#%qQwzWrQ6oaxvR*y>NeAV`UdrVyd9VD8JCuRk< zK6r@|Z@?>`-R+_TIsj9kx0ohDuSWe9I^kDtq%1sc^CPTQ#Hgq3)0l^k+Yn<0oXa3QC`W4u$P zK$;-d^!{Z8kqR#t6s4g--b}u`^OL&kw(MG3dq~~{O&+v(5;z9%$Gq&6Oc!?*09%p! zd$RH_C0DbiMZg9AkABb95bnM_e*zc?;+f_1ubuIX(m8Uy|3VeqmEGcd{qnMAe z=QM6;G_$lyH04r z_eYbLQ^vdQ-SY+_=eB1c6{U2}bp9eSA3p}{;T#{-g% zLgy#@4p}4lG+VbeR+EUKW7+*EzI{wD?{j^J6`9%-D|a0{=kD#f?-fc!y?GVijjt|2 z{^S`XvFp%?uK^|~d$zmxqQv~245Hn!2UB;5d<3R-a!Ld^EK;ZsfL zJNF%PwcI5*PZplD0C4mCNW#arbM# zoKw4o;%zpjd$Ay0@|7fSelLqDxndZvk6w1-PX|O z4b3^j%WkWnKoRYSYI27&IA?-{BWTi8@_GWzQuw_tDVu09aUjx_wn*{Mo> z_uq52i6K-rPc4HCFx1v_zESf$LScX0h=E%WQ=`F#R(=8lfEGgZRkikw zsAcyPdc8){%J%3`-zj?&-#kWY)5;H_{#VG+i zf!SD@VX{qF0)>>J>%2_wK>rp#v|IypK6c6<(Q^`OYI0aHk)6o4ycdx7(hB=iS@Lds zZO^{wMPcK%h(c-*gXB=$EO#GOu=V|x4k}j5titR7MOm$uYj;tHdbOW@)W9)tQ*ZErO>V76dR{ha*)FP9%jTJ|pkhQ*S>&FHSSTw5{h^ z$%2tby;gImp1S+{B-tbsz%a-w%6x#pN%fchgBG_PX9t%*$7tgl)0PBja004-Q6?5y z;&5gnk4HW?%Ys7LtB^(HQd_Bz)zexxR7PtJ%lV(Z-jxqaV&!X8ie?|-gYfUId<3OC zSE(DEi14?oLraLmJuL$IcYjU-aC99$+w=>;pEHpxtqr;wyaG5)aqZ4y-FfMY&cv7@ zD6X(Tt6xB}ah>6RuP(&XVP5Ejt4;sTNhSb<8a!mjH~ zzqfMM&X^=Hev+B2*FVF6Y6lE5V(bghV`2#kbNvg zm7^trE4{3a2Sx?hF(6^rGt}NtQ|nHrS_eK%v(`^C6V+v!%Y$PekT6m!9hmtpKnd@ihu{HnVD%4705LN`v{8Y$mbxFRxeb7bs$96spfy)qW` z>C@+F_1&-(UZB=I7Zs1{rZTfyB1KHae#+~B=Rck#iN4#%G%MYvpsZgBZ#%~(txR6z z0yM}Sr|poa?sqN}GtAP}tPAnzcV^XssZyUWqvgSo_PT!#%a-Ac1C02jRRx2-D9q{M z5FcBkRMa=D2F4AQNPZw1Mp$Q`s~fL&p6}{q08eY?6`@Dt5BK$C=Z}B)hJr8K8{kb; zm0X}GexmF)X#4$w@gKx^ibx*c_h7JkPu;qAykm3!1B{SA!Pfm@oS?S*qzVtSa#=Po zeS4)9;&UTSF>Jo!5~q8&tv|T{7>X&&b{<1lHnL*n&$Wk-wZz+_d_rJ4X>iK+JAqsU zCICVaEtysJDDC$9z>})UA6cOq?y*j5vjiCwKQ*wgjB$dar09=kqr@N9I@zGF)k~e~ zV1o-a_$;%E#}7AMcCQQZ@g-J-84h~=F1@wQ8TRa1+c89X#QJzB1Q2JVzG0Tt#xFUL z&)kzhtP~@DP%Y=jT%ny`p;@fXrEtEM0Y71{`)J;FsbKX(o_lhC78nUPK`$E zxk75I-5IdLy6DE?g#A;Wlu?HI8pNL&EY&*$q9A4{W?Uj4RgAL$_5oca1m)AqYR-1A z6Hx8MA)390!{eebGla~pL^6R$ox>t(cruU`5NhMMTAW=zVt07n>SjI1#)=C&HBQ@@loE%EIJeuJTR0AK>&1o-@yC&ds$L!Wc zFO@PLirDX0hM^#6R+H{Wb#(&Jv6;)D3yMmY5hOj9U_e|HTV(Z+FQQd+0jgMp^Ab33 z$zFoUE>LP&Cwro(CLhKVIuA9Z6jAgLO}_fub}yiN8quq)SW*M z9#cQf+xf(+c|MZJo+%;9gI=)t#SiyWW#6+fg4y@apP`Dc-yWu=d%z4)-PPtfDJ(MN z*!x!};eJVswUdI~CgwCv-?RZPd_QnE54V)^Qzn3^=-*@1(nNHz&JaH5uT-qIgoImF zcxC#JwF_J!-J)TxTm1tucq|8^6qp-P`B?Q^V9|wI60FI}_(Qfi6gt=s699_z6a`d_w4 z8bi#o*vy|~#rOF%EA?QA9_tAfTZi3x)^RANR;=D6`&`?oI=x{`kVgJzah9G66X59wiZrnrId}u802_;+I^oeJD&-wGXQ|un zMEJr!kaHnFl$C&B-r0@0wY(_YWk^nQJn7`QN&eK{3^EY>di%>MNS1B2wXkA7K9ml= zmRB9dl4p9eTlQ1#n;-^MVV8c|rz++nD`doDV5Yp!NMa4LcBw`PLDx*fpLv<-B-G+8 zf)ST!!Gf#Vfz_AQ)JSa9A~~0J;j6S(+RbYwF3h$E^{)K~!)G*8_3HaLhHnKW+A41z zxvG0lqoya_6a4Z#oN4^!34eQK4hll>sl6!$N5Y2vXOcl08k_ypxTd-|C$~A7jKQjC zosnBwD-OkxMo2`YCcdlUCQqAFu76@MsH!vlT1!w{S{7f-fINHA&+BALiaH-fi|lW8 z9K`ma+!jO{=xqwR5)c;na{}0JA)}CY7ias23fLJ%?}7iE7~uBjXew(SFbTBlmd>|q zgh&tddEmT%UMK6_8U*`i!+%@}`#w)9k|7I}J~1#SY~#Fw#aGV#)rtCP_sdkvC$hZoIc+}BZw?Z>i5stt+x=x z>Z7O_Sq2G+G{q_;a{v^+sS>nf*pMeMb55|(S@Zrg_Rdt&g!&4uGwmMdakvn}_->We zp^=(V66-quk{a%6t_{Rd=d4XP?3Q1BC5K&0!%fey05TXgp@k^-clE+E++?w}^Wi;F7K_>~0`ATQ zqLz`x0ylCxZ0L`fzbyxYB`L#^*jufjPMJ6(L29J0#SlEz{quh(q6{&H+LXKY`CiF= zhCk#<(&NvA`h#{)?%QzeqeWZt1z@HI*orH>cCL)Q{|<%m!Q)*XVa?ik4?EpZ6xdvu z5v4*7(E&PJ*C8jY5iIPdiG7x~B3wmK3z(c058MNfhDx}si_49W*|Opi+xY3D=g5ex zIxpnqcYV4ZJU(RsEeNZaEr8UMC#Al|@is1O)%H zw7-4nY!X9OXF+RND?c9eA^gHf-opG6SW;)C*9`ksOnV3|c}%f63lN(hHimwp_kJ^O z6VVTUVzaQcUhUoGFw%<-&VBAlR9_Z{6*r3EYq`k9Qa?TR#D|LTvteG?%ys!6=l@qi zQQaP2S>M!HK#99uw8gks)A=2S7fcwXcF*;aRCz1H-0mL1-wSOOU6%OfKShS_gLgV` zGlWJz-R}4a&|R1jgb~Me-@~vVT`CI0fWz3khN$O536)cAcPozzQgjjcwIuIo%oz*T zj*?0Fw$#5e0HY>>l~8u3>J-QU!h*ZHuOp>wXRyoK34Cw(LtNh*66w8WOyaZ8J0zs`VHT z&ZRSD_4!!e&%4A1`DGmHv8Pe{l(<r-e*PrRwvI9pi1%27q!_*g!q#CMlaen+PP9(_3Q^E*md7 zufK?-!0iGNObJc?QxNwW76J4-cT479HW3>yIVifB95<+CwP$g$-vG-sl?L8M)ENGg zQ@3~jbu&WO?!E8n|3c3EF^Q-Ptfv3|g2+KR(Kt4eS3P(`uErm=B5N3HVeX(E*C=2| zuZIsBfJAdA8(wwukF;0pubSE-vOj(uaY)ZEvE>0DMdBcjXZ64Zmib<5x)R%)CR3Q!&F>;FccW!~zeo_|^J$GjcWh z<+YzVr+B~^-vsL8EcgFCJy)*FyvKqd7C1vZHDlMKr6kn_Pr1j9xe%W2#=%#;@KWf( zan^$dR)x0Ewlkg4TDx1p?WYKP6IxIz6PtM`NjO)gC}Kq&5#p=c)-OXFm$(O9(s3Q2 z$xl8qSjK4*Z^cNmOVUxdyYBn{0xIzw6M??-JI;2t-7D+l>jWRyo|I~sWutnFUDoa!Exd_c=GAsC{KpUVQQ`^*9>`tD=HC!NE!-;)1G zK5Cq7ZzDvsR>)g*vh>g+R$8{FC*hX$>%*8fQN{u!D|X5GajZ1`A@mb& zpr3~MGl2;jzwE+>;j3(s>uk1YtX4YCOXGl}lm&jiE4cIkZyQE-S#be^G$A)Io*04j zjS$=1EKs{TGH9DGzB{7iYFB2q_|AuUpVEu3YvgP+2wo)!Tf3`&SgmnJ^D_3Tf_h>5QIm9k+{OA^`gPukz4_8j(qM z2^+I36W4H>YX6ftCzn1_(W6?J?a+>=YA zjAS2&85|vpxk(kRI{hwWN;c&R7+EA-#-?aA%^qw10)Zn`=>_SAx_ zoj<8K_~nMtgg!sxJ@l|X6m8F%1a6uz{LvhhSlYz4!SMfQktQ#l9MbztCrRgG3xEYH(vaXLv5 z!@yn7R?D1&rd-^~Y+u-nt~?r|PJ5p0bkj}CqICq38WX_|Ws4m7lMYLN@5n7&gYD%Y zX=luGjw{~Wisn`7AUxeKO)MX%giv5<49-E6@ZJ`+H|S9G(>PQPa7SOYFL1xAJ@(H&c6-JiXMI+Pn-aEz6G?fg&}AFXHQm>V>Qej1+EyMv#k`Lj z;dPVZRY~~IY3u=3j2u?#vS{@9x_EY$|WPnAXwUrrXjdj&@imG9_zI4V~ec8L@SBG3DqecyIQh_ z$3L*sO9Z^}YKe3igKMaWB?3!Zw$FTeFc}o{xbdoV0X0a_fb60d^dP9_|WX%QH}q7UaP7T#%IaNN&rD+NgZ~G~)sD;h=Y6T8F}r?mU*iPrwTP zfK@08JQ+p&28ZQ6#dWE`l$<2pOzh;GV%G zG@^V-n@92|q5T1f>W++sz~S9pO}WfUlAaS-RxR;^7Y0ygpDa2;VSUMj z!59j(371uy(PQrrQD)7@yBud7KHvnf_TXnageY3aFzJek8Z5l3SFtrAXPnsgLl<0n z)I$M)!t;KNL+CMf>!KT0EXazDHOcy(B4|AWOo|8DM%_*Qim7XWRuOsLjmg|FEG$<2 zY~*3QjW;7Cz`v;Z5yfTB?%W8MG29*8#R!uYuLru?mV`o8%9pmZZ1A3tpkPPv=g(#K zJYYBY@;ydRd0^$Clg4EnwTJE*9P>BI_JF{{_kvqEJn7P|$JE zXhX(LqM5pIy^V32&{gDJnmpwy0yRI(Xs1aDf3s^7Z{GfB`zjbl0($buz=OT{UUIkb z4>)2`gf?jugCj4=?c$F9Nahux;=c=0D%Gn1VNy4gr*$N>Evh(dU!2iWgvA$&Ctqz4 zW6?y)zMq)BPD8E)WZfp26UM<)^=%JF#P{YUdx1!|TziO;Ubsw~nGWW-Qsfcf$c;W& z-6acQL^qW2dlp3@)G9;&0wh?_6X_KLl35u^WGa z2bzjxa+TrW$_YmHU#BuRM%id_sq~zM14TVoZR55st#jZdY;FwoX|n&$yVbzP;DDWF zVo`?nW2!^svVeu2XEPCKfIR=$%r)uR8;aA8K=Z(VoZ!<~@i%c7O^X+L z4x_>q4RQ7;2^{68Ca(_(r<(mBpd`4DeK>CJTH7Y_K|R+z(K(I?e*RK!Q+vP4u0fy= zAZ+JT-Y7`G zA9Bw~wE9nvMj##51%4ykJ?+>C03B2mRI2OJm<;)0pUtXy4k9gH?Yr=GLrC+5ewQg? z>Kwm4&nmOY^;k@6X={QkDEC!9W!XbY&3|>wz3P!3ZJ4$7R?j*; ze!mKV*93^7evu6!9Zbk0l?b$ z+phb!9Q5Qq&6GG_3tM`)gYldF@7!yHK4_*3GWWxl_06FOPcnhMiJGpHpEq3LFfe3e z-b?@h00001L7JTyFaOK5fDn}}?P4P}@3|QTM2Y6#cViU~P+c`PgLb3(2$KJDSXl=j z5P8I%F{GcO8db`QWhXRD*tqsqji&X2qI`F3x(`dN7tH`>;q4 zNCpvkZC<1o?*i3eF^O6XVCyluAUZy4(N?Xx7nKgY@tF zaehgHJD3zoUy#>_p`^Ylr{Rs5xrv;=BCIVrgH7C~R@&;+-}h{7_5!e~ z)*^P;1M4vN9m8{Aqo5kOvd!=Om#<;Cf`U1iFlHs4{Wfswo&}M@%m4$w`rK%))6Z+6 zk8owIK}Z4V(!J`P{B*qFi4<}+&lyvPq|5=%$4rF<3>6vuxLrRxv^G;CVr43@Qf?Jj zQbp>&kX14pP`rE2@h?2AmEMh4fW`lwd0>*TXiKx0fg6~x?8b?itIk==u=BuZM5_o)+xRCyH&LkH|9-KN|<4$%+LMFFw2sv z-xxFyTLYeH#_#NIvd`dr+r^`cvA+dEL%2Nqj`xHFqE8|L!-@C+=69w4FQ8>apP<8F zR1xQQB6j89Ag<~w#;PP?kkA^;#QO!N!I2OltjLa1{U~g;?&0XuWTpM%KSXZi;PX9Y z$f~;B%x#GB&Klqt0yU?#g|OXAisj7j2}7&3mpxBVh`-aVOp8WU$K%}C0%oteN@rH4=vSG-6+r zWlr1AJtaE%zh8bwe-_smI#-sVJS#l+!k1~`E-)ZD4u!sR zu*s!N_NWn27-}RQ^fpr3Q5+QT3VuGMq~uBAa+3deUx)!nbeoTrE*KZ+=|D5^CpZa+ zBI>k3{QbPB!6z2e_;ZDXUBS@@jL`+Hm)hQ=;HIX3!v7Gt9|hd>PPDy7xn>IWs2Y;DDW%BAs|A*W<*fYr?l#{e= zI6w3i=deAz4YEK!jeEIdtIDV%gjge;w<1=8r-AMP=~>1zD6Xew|DmJ=t4@N00d-!U zUE=Dw!07GiK>NRZl@1wyOfPz(r?4Uni60et+^K{CHgJgip^{xcu2O7;j3bQ(K<7R; zl{tFAP+n!fH{utY!rC;g0TgiB2c5e}Zy|8vG^XDUVP{zWE^ukY34B2Cv>*P$_is`G zPpeZYwogQ+$yyFYVzeAzw`i;OaT^Q(Uf@S@r|O7&12Y8YEEt0gLF!<=q|%I)&XHK=F#Vt#u8c8ING1MbsRO%UBl=NIYRw7)B)p6 zP43i*zp4IsMm!m@&U&Zq~$ZTHJ41vFh*SDP{ifw*N`uZC2GnU2L* zvm@osv30BUYxLBzqf-mU%AEM)haRnd+VM`Zi!zFBYbXpFTX=T9Sw;HF%6$GA;qN!T@r{9Hhdvqs=_|CnmF7D!NPWm5pFw$J5E z%9&BGV|AmYUAzYp-w2<^$L2Vzgg@VydI0$??`T7R-fm?1RIx;j(PW0v@<3F%#Br)2 zcY-X|i);J)>M*?eENAMjb!2>#LhJ)szjmA#htW#i2UP?JhnPdoVcJvEEuP^svu}QdYUn>b?EUvT6_UN=6Hf`7kjWT-H`7 zA9I6O10^L) z#4_^(am!{%fEi*x3R)0+K_{zOo}GurnKeMIu2@qo^K|*7e2vDR;eEoDU~47Dq4_I} zG5XE=olH>4kFZ)}pM4^Q7&f@erG&<#VQE)esOI(TEDNb*8$+?soWxwIJIdgAx<{I5 zgRu|zoM@;Y#Q}-doRioJ$KvkF3Ef^`GQ_ddzy|1O18z;B+Q-}>1Q{FRzBv~B{3ZOlamQ-M zCkYNvG%}8&%1*mJ!-i{6*VzM^OB9NoExg15erpbS)+2wGRSN!Ey@73OUHz@6DI>V- z`S>Mwk#6>yX+D?xit3vi1o*+pDApND3 zC%x|vfq$S5XSECKgy+QQ{1~jCfs|`7w`ArQnPwWx55;hd3eI4_F1e(7Dfl7y;SdZfcj+Sr}O<@p7le=RucvqFgIKbn!50v$5oIgBk!f9@Kp zEP+cGW;+4oS3nQzh&m^mC6Tn`uri5wtBj}?&h$-6;)hvD6*rA7a6TfEE67(;XrU#u zaW(2SR7AmtT2=7~?a{f!FwCu7>-SH_RS~^_iloY2iu|AjH*H{8OjQ zG50A|dvD-`_)(3J70dQ!YU{1Ly{yNK;Fcp$S^Y9yCLRl94IjatjKazTmFtYmtQXgk ziSNgC`XGeVafjkaHDZw<{{+t_K_U

      _Yh4n=zSI#%I)~CBfR}#exp!PKo!V23Pe>c0~rIjK C|h}QzjvZ_E=h8{B07oC>lC-1)7EI zm)uZ+n?&!S?1^V%KOQ=K(UE7&y_@!u=I%5jT)aN(^gJ@s7-~WIHSDy+OI8HkSFDXc ztojYU=)WnB5CV+}s3P;V&q-Oyk+H+>Jn8c^#ksR`mT19S3*d^su*mchFk(H|Z=QWD z_O@By&e=NS3E+?YM~n4U9rVZST`A8>j+*rY?^sgQEFN#jCXKFatHv*HE#bL?q|B@+ zO5PJC39;?L(r4_vefom)e>N_4oc>2mLn3$s{ZhLaIANU>lNdOm5A4UBt(N)5s>t?V zoiR0pV3zY~=*hctDD@f^tZrks6Uq@O3yAd3QlctkCjL?yK!74g-{dh!^1Hntyvv$@FF&Tx5vtxu;Ru*U$rwnxi~VpjSU@5| zDTSR3_DM*~9b=JaijQg8_(!qBOS>#n&FPo3UhyvEAA&esn(a&u~F1l-1?Ah7*d;nWb=uus34(JHHFWCw| zHKUdgu9g6>67IYUf(CpK&2nO~f8K%S4(8s9p(7@v zA?HmJY(F~vKtb1B<%zLY$OtnXEV!CT-Ss5dZBjeG-d{f3G|4(q9b-MnPCklsproMk zyj`AxsZWK^*#(-D*`Nj1k!7NkIVQL2PLst$|3+I>Fo=p86?HWk+k)zlX`KA7`^i0N zUQ_o_5*MtaUif<8&}(r9oe$IyXRHwp=Dobh?-}sC#}w57>C;#_gP;ch1zs0g-<$+8 z&!lJ|t{TepoG#nfi>8+kkMk;`IgcX$<&*(p563vC=@-D6fw0;bw>3(o{ZI*=&^vXK zKa}EKulp#4ib)}=_Wd{NclD?ogkH189oUW0P|c( zRNJH{PPQl8T?~xl@K3fzcXv9qh94Npp3p{fbw)JQXh6awV;Te~JFxD^nzK?s=b4Y? z-apewEO|TMHT`#m7riaa9+1KPBZbpThn!Ep|Hzv@uY7ekEN!?p{E(_-XeO76HMImD z3(JII@V7$kd4JC`NI<6`F=}biP;Z~LD_-lk?2;!i2w&NmWpTZ~u!q^K2t6d(pA(KP z2JzOs-lUQCO1EY-)y9tQ)_As-iplMGoK1%NZe)5+)*U>;1_g6$gx5S0|IAi^%f{yi zKOAQ85(|1!gz648d#ym>8+ucLk1rr^#0m=BX?K!ujj9XA8Pr_V&&!sDC^+wCq4U~+ zABTrz9t^jaJ!RL9_5!O?dl!qvo5M)@;1`MLDP*hPh+h$Pre9J-mOiOTNf@2AbJ7tEWHp`>Kvyi7 z810bd79d0kx&nS2NPH{Z_$#dh83m&#J))>juQ)sRIt;Uq{BV~u^f6yhMvKadFYoXlK3RI=?-qIb@oHsk~fB* zVW-ruVPQmFHo4E2fmX7Yx_4(8^Xc=fRvb!wYfdiN=2<``~ zd>CRiHe__|_H%W6IryZbMn)v2R)PS52_>!5J3^Uo2Vxi3rTsM4!RQM-PU56mWr8y3rZ|G&iTPC%lvyBS70JtRVDhc7L=7?m8M}b#j@Z6 zI$Y*+?7%T|%@b4dy0sctVlQAQ3s>@8Xw zXg0mH-1FIg5P6Y?n47+#&Y=`uzBM1+NtYkZstKl>j>38a>M8h$_qPIRXNPt(0}5%5 zQq7^8O}Kw@IsC{Q9vH_}7dI)OYL3)6n!W9O(q9JVvJPmaE#z^4bI@%}o_L=e>tPI?8jSQE2qW4RBi~#Tkg> zacL8S&;{Wxm9Vt%PBA86f1+}X^u=h<7ML)?F;V$Z%$FP&-+Bq((>=}8SB@!HJ8Sxb zB)M$zPEX8t3ie;%HM^pPIl&rs@2&gCKE|)LzI3TiWyWE@Fs6To{p3qBtC6lbg*T;7 z>(b;{)6doC<2>tL=0szwfs%bR_&JcuPL;|7*3sIWQoCszA}1RPrTZ zA8%51byKargPVzd9AzO%3*Nx*J(Jj_zk(P4oc@w(*t@<~MOr>& zK7$P3Lj0?hBo~RFA0kFfn#`^g!qwpQd#Je3|3>Y)?Uu>S{~rHTTM3<2J^kZ|18V^F zm3@sI5#kKq_yqr@5A+$Tjrmi8`$oC&IU0&Wn$jy%I&_wjgL>X`xe0!$%6oPwLX9&D zz^bD{gVX^%iOh*aW2dR&yX96Hrnw@NHfiB<4HQg5QGI|*f*F1CNFtfWddEw!5?OoI zdgD~EBT;vP)t-8LAc<9m7dQ`9qzvZAg@k669V}G@TV(V4G)@+;nWY-;m;`vvp4IX#$@p-P!E9@Ea0-i& z0E>CDvnp%RAN?&-(c2#zx4I8bI|_{!6p8y3>&@#Ii35x|6HCW?RCx@$G>7L`uD)xWF5fC?}b z^rZCVQ$QXCCA#zoo^U6qA#~JxYif-sshMUH! z0YOy}CgOCxTTJ)KMuf;#)!B0I4!EL+O0x66$!-dT1{|Zn8)t0JQ zcL|W9zV?2`$gqT4(XSE`MY!@vLMQsSrPTjO&v5K^J;{> zO+p+3-VXFT=Sp5Qfgtcen*lF`GRl@}gCOG=gm=-l!N=a3n?K)^7C|KfIwX4r2%pGK zZ|Y;G*j7lc*sa%XErw21hzk`}ksBa}kMhOqRQ6I^E)5}Jalgh>9%0< zxh&vTsC)WpdxNS~(KB>`99Gb6icfX`iMaznfn1DeOL+T=$FlzV18}vl3`_^K>o>op z+e@aECSqtBrf-R&HH_Zk%s+espF#4RE=#(h-{oHyWnb62oy808y@l&#Zwvs$UwfGa z`(PgENNF#Bh6;XXtoBYHEy!$>5Aw9Qsq5SRqENE?xiD6Y`P{z3{Jmzp>2%q>Z-gNl z?*{LtlODB2@T0wI_ro>cZW^hFn&N$eu9_S)yV4U!~!QUFj{X|oI(YM^K9X9 z{N&u-Z!x>{V+Ut4>~)3Gl4*+5>7FRv9=aeKZX?*Nf?mx~z{ps-a!5Eeb6zgZAdIZc$63V&>w%Vh3{F!}qu@=Zwb zESk{62E|`QCRmxn0Xs=5a}OOwZLKoo5*zlCU#?EQa%=C3f|KvN196&vUl zdORxaR5k+0(%6FqkhD6Ah}l;4UAI|r`xH1wGt=p9EuGD$J=$;OLPXo=z?*1w_d3pY z5m0X=E`+4oo7`~>5K}YeJ?Zs69BcA90*j+hbtpNf%ozqkr9(rb1=XU{W;i>&h3}TB zF8!WWrfycD_v!S3LZ;{CM%CHwN-G`#GD+)1Hz^KQ znlh0p`VS6dF&DjT(hc0`jfQ%{KaPLl6eE0ZmnrVap1HarpTl?*r`_9O8>dh_umorv z4m~S=0!*$VAX@B&XS96+u}^DpE@YvfTg*50zRB#hG_$sXQXndq%VZ7>0WGU~?Bf#hc^<$24!DW`Kq#yNSI82D= zM3)MAeH>t+Z5Y}KES9x*dpisZ-rY4syi_%UI9Ed?Mwo3Fy0NBP?5R*1XSSzGA+o%E z4|wu8%x_g*p!g4}a`mQ3s}mCo5dxAAC;Y9l($p^1NEDWcU~HAb7rMnf!K`DJ3?Gk# z^Wz6If8-sj&2Z_0low&wNcMU-!1q_fAXMaib{SZL?URWa&A+4U(0U!S`M#Ieq)aVS zqRb8@l731+C?*uB>Q>sh;2{)9^)Ni&HK68XFVc5?%mo?Q_U5D%7kopLaFraou;%7< zmQvNq`(L>rpC~s9xXdd_yV^KV^`DhO(uk>VJ-)Q8?M!yHF{rY(o^H{zI~2BWwEB?b z(G;qn^Z5nnkc&xm-kX>@PCKyko0Vc}*8KzV;E>!=F5*~(mGka%(w^16XBUf^LE5V& z`E+eWRy}`Bb$x2B99;dF`)Shs#!f8MG<><_ct~O3qEo{lTsHaE6&dgqg+1Y(!~{CO zQpjYc8uu(+o+8^1?(qk_D2x}$*t^&LChnX!CtRtOP@93_{ZgWnBylimkVi*`7UGEO zY+Sxk`rW+?0U@}4V#4|HSHxy-Kh7nVd*< zleV-zDCjT<<1T~AU#9}y+_dRr6KER@X8YjNgDEY)#&?Hv3-wG3g+!<3fsVY2K8d%>>Q5@*(lGttFN`5pZ1>nzzp&YT1O!eEo-L`}Lg zR^O(sqNJM}N8o55G1tow)UNW##DQy-tPav&)50y3;ct;@hd6b5DXrB;1t%6ExXK3p zE0#0JQj8JBvf9}HD)TgrzQu67OLRqjWEgx;=`+g@ti7w*;k4OJUJ2NnILKoM?9FIf z3tuicE0saA;ZLC$^farcOL6Fu99x(3mV*MeLznSY^zrA@Rcd)lq1LLAIL>>gJtIzc za_;v+VIn8&?h`O_%vFyBt1p3ZGUSo0E!uR(moh9$YOurnR?uiX4ulU|c?JkRT%#W{kfD4eSb{Ub6hL-K2%+R5+kowk z>co14CwP`laq(afVOz-T#fmVXi~4%2kMzv?jO|<}{?L9=qWUi+fGh@~Si=OOqu$|w zxmW3vw$9)nyJBh5h6v{dY{rlm)7FRB9l7i8%m!L}!($m=0S!wEs?H%mTZiZ`M4BzeVjegUzzFAO;%42QYVe$5F0iuklGj^%e( z45g?1`)GwZ>U$hq)6Qd6qhNu~dd&JUNE4+DC@I>l7rbfu`B4}1w8(}mYFai&krDm2 zd6H8y7l*yL8S6IJoxA$6Nhft7`zY)3JS*{%p+`YR_gP8W#)UdfJ5#lmMk1DexR(qu z6BYkv|Go$!NkN~~Qwk%0r1IL5;-R#qQWY~FQt%+sbbAMPQ=S;%eUY=HB|v!uZVHTf zUa!S;6Y1t$+pSPK6GHA$Aw{$tHjnYRg^=;Q(SN^FQVma17hNMq<9O9MKruKq*-+CE z_01u8_m0F%$Cc)}r*bljFxONz#a!woUJ~ft%jH@G2#*;S*^sT|jhhb#JrDpZrHB%G zR`Ee@B$89~+MtiwEby?+0GllU|DJvt?afx%?Tm7Zquu13|K9A;m<$>_YJN=0( zAhEhsF^vivn`|STuOm5=ULrNddkmnH7CA3SON*woiPQ!QVi>fEET z0Dlf1e$s_ME#nw?X~}kTp~N)-uc$?{v~jONLKabk0c<{_HR@2MvMboOMHVI28~~}I z!5FOVs|gAV%y(w^Jz7(a)}9bN#5DhV?;{QMmJ z>1Ore0+T_o9Bz@0#_US1%SJ2rk)P6LSX zaM=};Dwd5-_WA%AA^gsX~M+E zzs8hA=HxCixvIOYV=Vj zevalNKHigPKB&qD6J#BAhMkoF+(cZMOY7NR;Ku=7PAgP|FDw%3~C}_pW@F6&H6093s#9GHCV6Ng#W5 zA^9u~`89vH%ICnzk8G(@kc#T=KmH=o3+C(f{K4g2Rq*{Gb7=NDXHu^K%z}&c8|UYz zJigarS0jzlg*Or&eGj#*#vRh&4qF}nZ-^aGBG)lf9$i$GLx1^h`@ z0UDt-b**_Pup}kx$b<@Q)e&7U9I&E}SFg;dP~7Q?k*Ys8_ma4WNu?#wATRaie9g#j z`_Ta*t-@t(^@JSGTxT@HEVa3?m=xov3N#VA4dXg}Ww7#@WRMu?q5!1n+Vb=4nFc!t z+UjA2Vq+=l#I^p6kFDQqOx9oCwa8Gs_9db>u+$U?p9x|FK$gczUF&`+*lrQ_Zs)H- zQG#^R7Y)pww>As4Cv~I*o&|6~vTAvjO?L3gzfhyG0v=Iod~;}j5LOwzq<-l4Y+i&^ zippNCwh=mZCM!I*7g%Hm2w2tB3TGjiR-6fe@mFAfT)PP@LG-*LhAg9G=}=OU`P`oM zADnu+lwB*>XWR;5#V&94VB#-UTifG3*g3qMUvb{VjS)9&Q}QNob<-L&%$??FP`|KV zX&vbdfw&28;Q|Ok%I+|W4Ur_*3;CRw-KKKv4QhtevsTbKrsXeNP4er}rjF^o_n-j! zR;-%a-{PYxtsa4Xa|3xn*w1n!bqIRG3fC{L4AaSyWCJUTE5-$@PB~{~6^)hxcP{R@wlf^`rdXiv0fZ>bJbl z9xr>A{FV*Kl?zu?B*RD|^!-j&WGm5ImW!S007h(J<$a4E1hxXsSq*u;z$^JsqJ3T~ zbOx)K#_rHU4+tdqTBRe6SN5m)A&on}@)mJv^uU>oLIoCzMW~Hlw>bgTP$g&{+#KJS z&BWLhpUque8&mtjtL1EBZ9Ql0tTIltbs9adtM>~dXX1QOC1j?FetB21^|><;L0fGX zX?G0B1<#u40V*0D$Y@1(<_nOPj8JQRfk<=YB)iM%CmFKGgN8(f?js(-!23mZ&0AzW z$PW6FfkF;?c&sv2CDo$(@Ufo!W(d0p_6!H@so@SHH2txx8C)h8sf$VI;k%<T|k}vMn&c_5C@#=XQ^yvX9i!b(BEQnJ+=~+%Vvg zQ`SB6h3sMwcprEiLRan6)gxFgl5*fdd6b)QJ~M2P)J+2-D6D{_D;|{qc(6EI$cB{z zJ>LM#okxHLqkyziUVec<5?#x`J0?7ZB(AlBv1+co;tdoz3cW250#N|&aXBK2%z)__ zB%>IT^&UYUp@=m1dOVc^Y%`Ld3HE}+DLs5i*_6UJ4Kr*2%3Cj59Oy$wy!^M+6lL8DBp?BF0&f?$jd zc+wpoIoM=2ZLN-CKt7LU)2|z*CwJ%OzF5OpO(jZhmoD+kR;h)Ve=&ju&~a!oYdS`UfB5E>|;nQDTCJMHoq&!Ai7 zt3@!b+nb}UljwobnmSQoX$*>|B+~| zW}GJl|L(sl<1o{}I$iqG_o!$3#JXi56@heUs3f=oogwH-Tb z0o^ytxj?_RHvQLIzqMggO?v;N`~&czyS!-aAn5`7Nw(92s7InC*VSsCUE~ICQEh*H zQ+7P)v*W{7=m;UR#78J!X!^VYz{rBOul6aU8DcdQKb{>i(EE07QiAJvczyUQbN zV>7k6@AG|+_)Svw&Z$Q<{rFm#1@2a0oEnc8b3@uI#kqHeZYVG)y%k}kH=4`T!!^EA zEopVuTh6TI9kf*zJn+kyd5N(rCrpv zQpS5*hGX=)58)Qb5QO!q*BL0u^9r8OKK&QCo?d%evUMgwXnAx$G6XW&X&J$dyU*ai zSJz@p{j7wvh5g(k~XGScUi!gQz67RVDc2IwjW?!X_R;HTjFsctlr$GbaQt}(t2W+ivnd%v#r$F zaj4U}6l+O{2>EQL8EsmqHAggvf^jEU8lY=VRPqvDSk4N*I}S;BgkV@}8T}nai@b)< zOt%pR{gw5EMSjy;H|!Nr;2@mV@{ z6RQR>4^p>~Hc3m07wGOW{tpSyh~AQDK}LkkKO-a-x8(NevPu~{L#chFQCSP|tDOQ> zz2%Ho`X~YS5^XY)ZWi@iT!M$Y@%91rx8hZ-4Fd_yw!r{MoP%fy?G=P3%G&P*y-g0?Xyd2=pt(E@0yrHRx z)e;Fxu6cpHUhr68et@TqjEYkXOTkl7ETX&P#gJ&J z*fnXORDozTn~?Vj3{HvX0|5dM0)G_Gh%`@WfwTfnR863af}#VO+!?>(*1$msRmci^ zX}D6C&0U1P^E-``iAo};PPz8Eh^(m57Aa`<(-Ir2BlaBzBAdxB=$(OCjUYyxbja!o zYikxn)%EL0p$W0dlaK;hpXph3yxsOgpo7}8TX8Tg=I)Vc%ql5R$K*NhAKm*zIA44aelw+1EJX=n^82V2Tf=)SKYS>2*0ha5^7(E2f`|ULbAWTlDlig(Iq?a&7w0 zF(6k-;VgTr${n7bJy;!dzLj<={kM!H>|@JtrN zrn^UFoeF=Ylfh-WI(7gm{rYz_2)NyOqIB>Us78tbNoQ*OH-jfzc|7l7b0!Mpyc%ul2G13yr+=4AgS0bg&_J3Z#mIC9J^=PZcXA5 zs8RM}o7j%?E2&|4O^gcep9@`Y6;>EBev(WR?N)WAuYeBMk~$rhm$sWn-^h!&wmfx> zzHk4pkNGZ1EwXtmIm`J-o9fkjs9Bn)<3AFkNN+gKyAQ6j{%r{Pn#n;01L&WS3FvSI2lj&?K)FNxZ-y%hl7$_t4a4^NSIT zsVDzfFbM}srixl>0vWzA=|cfc>N=+LiAaeIn6XF!+f0Ct275ghhXzfZZg9J})io*S5%(nxH+t_M;Sf%5i5^<2P9}4;yW~Zl z*bEbJj(wy1Sh|+yMPxmEOm=&v!&*xa8r5RC#)M?PGISHI!z&Ja5l2B8AA3iR^zaol z5+|*9#F~cDjr%eUg&ZqoIH(1*)l7i6(5A%IC{7FHHa5It<~Fih;wfl9g#Ohk0=S2* z#M4<~xWx;M!~;n&c@Ox4%xb3ume@)#HTsAH;D@EV3=8Pf7F`06oz1^s${-S46zLlR zs7Spg)NfGMzRQ=a_phV-bcgw^g57*Q_Z<(ym3&-nDTgB*vDRhAP~^MbSnNz&NtSF- zb)Rg`)Y^}_$bu$i#A(tg```so+DCw!GT#`tLaX5K6!A-IQk(%;1KQP8c5`|QKZ!`Z4n9!ro|uCFi<+{elDIOis-x(Cvwc=U+cwyG z{iE6Lf2BNdOSr@UZ1{L;kj8L`rG2J39Jz z6l>&#NkLW^Wgl5vqv}Pxoc9rWHcHn6sLv?MNOg18g6MBUZ+faxX`D4+xe zm-dE24=I`0h~BD|d8$&5IEtv8D;13?+xGQK>Dm9O`Ct=!{OTm>;d8A16CyZ=#^*Vm zArGVxzkWK(}c+n5vW6LIN}Ih20xys<%h?NcjRia=R1{=4INO~o(?=C#cl$*CQy2==Pt}I)Q z&2J(j99u=@(zVqeKBTBovQa+n&esCr#r1MKAW;?ZgoJmPA5!eSAYpDq8$WTrWJK$rxktJA-EFPyYdD1P)8K{$GAn3EbYi0tjx zL8g^~KXh))2W{omW~L~9f*%A;Iw1fbm|}PxvfKJh2eN69_xTJyH$vLF<=pR+8MBEea8+J^~)3lvN`u(ComXU%HVeR3T1ut8dB zNT$Dj|8Gw0``2avla{o!*uU=Tn=&Yr#KYl@EY(YVjm8a`zUE&T&by~Z^D~i;iQ4p+ z!5ndw!vRspf(>C9bPAK9A1?bm;25cc}M;qx`h$eA=^j0 zZl%Xfqg%S}eP_zO9r!`oNle-VmQ+qxY+e9bA%I7#ET*z$vuJ4t|DB);hJum1P`4@v z&Cvdzg`Kj>W! zyXt{&8EG5vkjw6Mcp9mzCnl{v)3^)z#|Pb$0?-bn*5IkgE3Iqn1{JJ$0tn_shUXoXo9aOSfNm07opav^i7abNw2kziVk8x1;Tcp6wW$*H^OM{ zJj%inkAuXH+GM9>XF;3;GF4AsF+sDQ`YXW&j=l;m>zRJ7vo2ibiOH;ga?q==c(B&c zsh?-48DuGuEW7JY<&a}NH1d}J6x0+?C0m1E=RX{P%_oY9^4Ivqp& zBSaxAyA)<{DkAh5i%YB77dSk(saD8WV;?j9?)4XO%PkXBU1*-CLXAbZ{yZOyr0Qjy zg`(+>4{4g^7w;i+1f%JEc0~tf@>e^Uer@s+N4fydOx}Wfod7xL(VvtRY4zzwq#I+s zC7TkiB145~Re6`=QfY$Qf+P5`&*kwk5wSRr{#c0}Z(g}3|B)EMWSgkEe|VPte>>0f z<5)C#s+wP!8I!LFyT2$d#1+_FW07wbVu)x*AFh5YT%B7KsyYa_#?e=ftmV7#nKxnN zF8Pne13AqfY)nYpOG7JiNjkPI9mJ#N6h+edY!GzQ){2&^UD4rX;k}}o41T#e+2!j* z$UCo#hQe?HZxl@S=7e&!nB)zWcu2G^!nBFwcfjO4i$11?iD9zYb)MsJXLLV18zd1Pl&- z8(DowB2Qhdz*K9*`ah9W`OXC}@n%UQ$G1z0g&A2I`*%9VxyQ#9xXjp4ZWTu#WUko7 zz08RZtPFirAi3N~8)3iT4=z8)?@Zb^se!}p7h~W(GJ&c@FI8=^TsJNxsl6R_-8d$B zMybq}`eoXwH93^dUzo+6O22ag1ry1?ALev5pIZ z&sL5_P8liYa4X}n&MYEluC1u;893*J;RM$OoF)1S>Z=4QG1}WcS6wHX&tSSRl*>PR zxcL?!3DxKUTT)b%Oy7UOzT1YI73_#$B7E{{V->-$&Fh#$9F8J`d1>i4d6OEzs`?aG zYOyH|Kp&-?XIdkD!2Z`hU-OXF0FtS~eoednCW_l>19M#G<}K%HJAn;^&dmdm>wy1UBMNiNE=FB%zb~#FM*- z|7>|re=mc*gv)s5q$WmW^angt$45qW=`6V6z19>#q)JtX9_xK(VcJJ%_xb{)KDfe- zXd~dJr%*f8ER5;_MF96{>8CZ#yK;aa4uwxvF$Xw4!2=_}OkIw`7kq%hV~Nnk7ys*ZFY65DD#&a>#`ATLn6B93@geW`0bMh!%FNqcj#FWc(?u+-d z?|84|NRW)(Yj0 zn=xOARYe4YpOh<02k3Q+=tXlU89oOJS)NQa7Qblek zfKs7W1X&^Fx82qEIiq|M@eIlQp-d2Ugjf|@hr}OEP^Iy9Ii5?edClzFbZhFHVNNs} zik^;=;%7dl7V(lg)s1&?2eAi&c!5W;d2`Hzmx;FX;Jtn_W`$S_I6vEr)=B=4c)&&w zgDTuy%O;5uwxVK{ul=WWd&&nNR;z4Psmx4rsfkCp`;Ltd(AT?j>hSPECC@?V?d<9? zJ*=<@;k;eCT!pX!1I|bgvslh*@HEE7Z8EfF=qMPX6->GOPYh(-3M#%jh=K@t&d|TJ zl7Rs%oBsH*!x?^mtsWEz*@K|X3*hJMSKF}oAIWFEI%iVAxqhG0d$ECVJ1`*#$ti}$H4v_Rbt&e% zwTJ%(Z^CTl6Y*nA+1&}&zQ;}YUtXm_p_zx}CT93OwT2<#vQUxnkRI3M@UL3x<1$~5 z$mXiA4`-FXzcJj1pK|Vn9i`E|5MSgTRxqFN7$zRe;k!U{Chu!W00PCmTz+UIiR-k)jp2u?h^&e zc>a>=&Yi>=q3vw`$B>hM^jx|NX7*y$uH=a8MRzN~&4GLQUn+lJ2q3VV`#9&sp1?o# zwD`E3C3$^>x0(E0Y^SCFmP^#SJQ5)CDhh9mH&5Q$1Hg4Lb*P(n+|00XSH%lAdFLMU z*J@6aisGM+K!Po%3E;qrE;$|^b&dNvB{XF%-M}LJz;e}wRvXmNMDIHF7MKAhwZmC1 z?pZgD{Z5Jq7STS3KF@jEf*2kxr1I|X5CM6RJG*q+DzJJ~GHVRtw5u7}E@a4^1$rRUCB1R!roJ&1h4>J=yC3g`U%$I`*ir zy^v-z>7Q4~Gg0w|_X(}h?1b7te2M!5-n%cM=v9C`CIMs6NVc*jGV%sOP;K%su1>278izqD z!XjJefKiB(TRV|NAsUnM0AnfO&!^<>xyXsS#8v=R3t~P5CKX={_7v%Vnc8e}eC6ax z1%$jBT5>mLX4abmM?ehz+KM%o7GZ&Q0_DW=QL#tz%&lLcAVZGpZ_Y2rBUU>aA*Z5m zJ}P944rv=L9ZU~ewDnsK(o7ONqVODiY660eJ`1quvgofrtegHMphI~Ia^rqevBLZUuDqR=U=@9QCV3DR4nZFh-<&|-mN-P5 zDiL=e2vsH8A;n`SN4ct~aXZCqf>3BL7TANK>d0AX;&6PyS_kd%!*dGeft^RCI_$SB%80!?vs0(L}_TaTa|z zqE**{Lb`tA!x^wPi3Ra$4DBtnf|& zmyZE_j;fx#Of-|;YyXhhw@|WA-|ESz?(&$&ScdC&V?|D#7e%n!Qnl`S3rX0K4Up$f6Q0sv?;>22SBKEsavv?dO+ z6q?3dFk=rR+tL;wdx+{OEo}&DagU#N=KAm@cK8?|Jnqk(u@MyzqO(foe>yJ7SXVq| z;NF(zmS|XG0t!{1SGi_D993LpGAEML`x!<$)g)UX+w*#7v_IO40NG4UMfR_+${@nE z7-UEW%X4WxaLNU0be|9M>GZpYA=HY5wlReaA`N!tNHvl(By9l-5lh9%Bk9bBj~XSl z13IGbo}Lryc;#n0>sCgCh@v2=MlY^hR^z5_`k`^lTySvxp}WBY z@Dcf}Q#$%$AZs>842JEoJTO5y>AZ-i7&MZG7!&paP_QfKLXZrFy)!7rQeX z_+od5sf?DTca^{r`(-u}twmQH$S=K$!u6!ybL zk6B4&+50vOKw1Jg;b>Y%;j54Z2Z(*9tn%YYUuk-423kD$J?3w?Gaz{EIrQ8wj3*7wrKzv%>D4D+bg!D(? zA2iYZHpw@UqYPEtL!E9#@S>qf3LyFl}S$ULDrL=gkFeYF(3Y-{T~#l+lE)un^*R97AK z5_a?a3Dw7pyGM9%zD7Y8ec#*|7m7avhwuE8)qyZcw;ipC`$N|VN5i^(!ixBLJ$9(x_AqHn;Kmj9+w-qEuZnno&pKQESvhm9 znH=_Qb)=NdYTC%w;mqNb_Z(Io#pVdzUr3OwIq_5%;su$?qHXp`>9T99p@}#?u)e=? zF)+VQlfpc6FvfAgzElFO=w-Dh+;OBdfEtC1h0^wl!L*H@IWO~t z11j{FB_BC6S?+JJUO^6TRXvU(=TW>17Q@~kp%f8sE^YYihos}~Zw~u_f)b3#8Mv*TBTl6^89x*W+$m3;)81SAS6m7&7NVHqPZy-oOk3J9#b84A_LY zIxxp_*#I6z0ka4V^5{i&c2ZU~)nlQ_b$N9zSru_GFl1xEE&u=k0003&n!Xr6U_$u) z?Jej@8BYL4K)Juqw;dy9zfwNuBs0GX!vfwJ{#^)0GUY&<@43^p&3u6E zy|qc6Pel#9X_W-wGAm|Z1PU%wB6aQ<<{uG{*SzqyuWi)e!}JCvS&BfBBy&EM?&hL~ zTh9(`@p)tjGYq{);|&e91mI=6<4#4kX!}6GkHdj%WP+c)<7+-NEHLZQ2wt(h+$oH&vkFpCVGSofr$#`^2VIQ3+p;lLI5y=P^dOsN+i67_O7}{v?bW zB2{(8qH!Q}165G-EekEZU6@Yve|!|SkBzvEA5u*Sft25&2UtQZJW5eicczD=YdSdO zJ=oMzz(7{7b7LNOQh(8Obhl2g$zMLOg{HN*2GK*8RB`tLGZjUKak!|7*~LHDGl=%o zF0+p9JraxL>AW%qRuv%=4hb+cCHACR$F|2*aP?!lSyHk%(N+7{`u#xS?5;^m;z;Vg zCJly{$mRr{QjF;Vv*A#krM1hYFw(RjKH`IH{(eF$$+8r4s{;|9Ebm;ly#EWJw`%w{ z$!e18Zq~7Yb7<^aiF8} zrgXbNXExRss%lZBF`XZEe0zt*$+AP!6-u4q-Gd#jZ6Sgcna-reXc;ir?*t8*la`b> zCsi=OCT6Xm$PRrc95vKf6@=QV-$SYjDHl!c9-UhVZ4S8#6OF&;8dJqd$a_11D^oC* zdKcU{zPPZ={?cQ%`g%*}@FvPY9<;AG7j+|>tiEb=cWa}$45sRo1oqj+`3SZVgA%E@ z@A=&#_G`CbKBU|GEnxspixnvkUE;bmZ;D*sTSYf}>_yLf;HysExGcEhl-Z|nf&$5# zJ_@^67Wgn1PI`^W?gdd?5-bx)!QO0eDn^Si2l*>~8~wd>x)V=b1Z9P?kwy={nT^8H z=iRZ#Ug=;|wB9Kau)9Cw85%Lhp5p5HLFBP7DIv8E2u0w=4gc^x+ndJ1k8mvkT(T6g zr5{VFI=pADvvh$Gro;alK0TrDRug`t_gbO%HfM=ICc6DjjD z9^;J4-QP~2Kb$#V8N&2xOZ~^9j+BqWy_U0-P`(oEZKD(Rg`UNm*d#SXeh zf%5$o++1Z-+C+X%^1sJpuS2^Od!P3&lsEK)O$-@kseOfOs&o?j}mTR%3*V(#Xcx-gvDE21Uv{&|ClupD*l1hSwC(%Vs5j zj`chXX24O`c-#mW?uMjJ(on-#P%n7t4dr-n2+SW#;(>_L`xJ_iXKhbOLMUqpf!6N_ zY*S9ie`pevm?*`Z-3wGET^1XNfVf?K7_N1IG&d&t(J`CFjn zZn_$@_Vin4f;DhFmtPTm26bYm3!u#xuxbzakS_!LffqI*EN+tr1moN;pizCK z=jeR;-CR0A32|3{w#3d_PCF9-?dqMqew9QIaFP8%29}BjH9VvS(-&T5)y`Ad247Ei z=&m;61&6_t=Yuhj_EY%7yJ#}5-b)xyW+aVbQZ(N6(YTHV*NA;{*WZFweOmjB&U&9z zewq1V)Pjp}xO2nSFC{1Osz2W-OG*vUr^Ujm28?y;CHi`D$RvxI~lSiWN8su_kigiLRb2eR^)d*^OrxRZ$nPeen(B2)M z${mM+JOQ}ak$pXm2fHbV=TskS#sMAlKv+g87S&u`2&AQvpWXlJ1*TA!f)?xh`{@qV z>wZ3>Ws1_VpOnI6yt65BVI6Kbt2*PVQ;BC-^p(znI7EWI`=?v@+2P3N($pTtbVjbVQTMVW)1p7ZUQ#e2S+`oVBt z6Zd~$Am)6hx#;jb3xu#06G9Ok&J+`zjs8gU}IP7mUouM?A`lQ|+frs7S zyFz=boMl$FFM*>ukK-xt6)}D&8*^w>sZM&;hw5^PbtMQN;v8pU+eVWb6~TLNBqGdJ zAEwsv4~?!%F*i9Z+8)!oUS^Re?kIrCt$47&^P?QSCr8L!jeK^#$DePnXs(J+^U!0~ z&(k;HVbAHl(m$LY1a_aP-qHX6X4!RCEkQtj%5VFS2*ww})I!E4I_dZqG;*+aikoB%Ud)87V zDq>ne_UOaUq9|<8*bsZa0<^;4PRo*R8}A4iCbOC%S`#T|6u$~uKW*&H+s1;oaWk;ob!9H)j{oh^0O zQvbW()Jp@fiL{BxIdVJLsxL#WaSOy`UaBz<|2zRjrlXJD_Ci|A*}%ti$C_9d|6W;L z`C>0(#3JwxoN^stHb|7jC(D5Pv1}ei%H;nBHZ&2@#e9x;U7qn9e_cyfcVhIFvx#7{ zL)lbDgxLG?e+?wz;D;BCSx<@sqFPQXv%y4N9RXQp5M|tuJ-)8@9+B@yf4J;e4Mea? zswcdbo7m7@f}Cdk%=w^hW2)Jx7nRO-Ek|$diT_~%vk7o4BqZy(J+7z)ESvAfsB_C305R1!Aj?;pT=m;@wX zvqShC0HX_gs=qNdQ+;BUk{H$LOs??xT+!s!IR#qjOqYa8wd~LKE-xB>y^cv3ArTsz zn&r}t_5yz+aG#=Fn2IJz7*xH|tQ&FsTyjk!;?DoWVL=-s89+JxOA}eK0Ikd86)y;D zS-k%aEzOq8a9F`t+knkt*+M#FLUX$i#4Mc&5*V+mHK-48bJ>ZJU0Deb+^~`CLlo1Y zJWU;7Jw`+_Ke+|iA`rkZT$nf2RAsleL!t?!n z^n-G*Wu!pnV)9_^$}7fE5aE6&pWv-;u#5;5EQcrFNEPtb^I{MI*W-ZKLgYSb^2_EC z=50LWcIc4A0BnJa1g#E6mhQi2mKK_?1gGM9tV`HM7s<2hg|H7?A*BEwpGP25#Bm4U za21>?AO$B@4&z%a|3Di<{G6r!H&=MIT+QhhXKQP2K3%}^C{g&EO7l|8I>1YpY(gHa zQ|W2W)=@BNPwnVcE82z4d}E@PH;(wmazM>m8o2J}v@k=+2;ol(XT~+NjH>On@~hH67^PG~_5HfIc+o zjj;$jVGsMouZo;bmn}X_P5*ojXfHr*XHTxiE{KvV-u^A*6b#mRR?XY94({!U6f(?u zJDM;GcXDLDRJ<6f&T4qixHapf73ihU#oktdM}%5&7{8B0qNkW&HpzIPTln0HK*b}a z<BL>&ls|~~vaAO;kca@0t zAo!kIFM-1}S%@6%edlrsA&3iO@V(n^8?lrqh(Eu=LYLmJ%HQm5ZQ{7EbzI!7oll_` zj;%`Vl5D3*l-=sWdy*@K{VL;&|(iz4yV>{7B?bfVyIfdW#GrO(f z&m)jt)-buaqP5C_`UCrSQrG*8YI5ba4=lFqa8?B7p#smQqZewRP-RNgEjwhy5Fx5r z@+)sL;HIc$(jDtUE=;+JSm#X)Rr+&^refd*p#mIm+!ZpY9LIQGiqHxLu2jll?QCtp z#R_&#oRzuf%m*DRm9cXh#O%s`;+&*Ly3?|S1m~zesV0IOq>=os$m;zer;jncSa2X& z1A-tpeyWYGO2Ea}-kY@omz^trS*j7tEn18){T`@e>gigPl-g!D1^RbwnWJuiagKhy zVrw}Ep;1I@bw$SHmxay2_o{rJPT2p~u{ahIcJ0KkLS`1(&1}KnQU1{{nyxATmarF9s7}YV9C;kii5HO{b^ZN9@unW6>?cgr*$t7 zP~t#tY3k)PZXZwqIs2Br3BymMPp`Q@#d(pmj1jBNevE`MGA1l-sw9?}A}YZQ=Vq@> z7Wj_q`QA`6yg4{0DbM12>OjUjuGh&gqv&nZk`+97#0E+mE)0?N65q0kO+9Lv;}I2e5Pt)vE@7);+LvEldKX>3i5I+QDvi! z--NDcX$&;~?Opn|UjG9>@VX0~@K;KdaBMdg%w(Wk7PXsx0S^_$9+ z#_IAL`N{7OO{_>ElH+cYD*_}~?m879r22VbE=9*~R$#qqujIOOhK?Q5#B9^;+E}?o z1Q~&V*ZY#I8{Q|BMNh;<7ej@(fhSCV?8ZfLJypWXiaz1$UPfLXFONH^8A4aaGWR;d z{nO=u^0@HhLwFS>yrqvDgtRX4()-Qx=-k@1W3GMm&fQt`#2|!1Nxlf>=17-&YlG5N zn-XRM@d?;Y?0LZdDes-~e7>>mrpRMnHgZS19BdH}5iy|qa1$n@t4|&m7II-Gf@Zd& zysQHu)=RRqcr7QB?rFv}UKr$9QR^}Z8-cU%{G_f@b0yDRK=r_I#{lX2Sl4R~H%5Su zY@k@S$@c{F7}J8inX7aK@EHv29M#N$@iNN^`vYk)W#q;cA>AVW-`38lDNrgqnqF*k zWRkn}tEk=%3Yb$lb6ybML{4}kEkqVUX4OE;9t9$BzP29R5U=hiE(UL+k6zpmMg87K zxvKPwyx#~g;opbSA)}@7=y?qFHc269Fk+qh1g7xA^J2dtMDc57hiY-x5J2Z6iVe$! z$--m^n;`Uy71w z#1+*;fuyAOs}wi#RsW}>T$$yLQk^2+6sG7i1ug2`D6>Y4G!xWCz-8fx^0Q?R#e}Ah zwu$rCBVV-159AY)I!U%CMc)R`?_{{cY8RD)qsEU7;eBn=i6++aw$8z?BxWaW9E9u0d9x1pp_wk^_09KJ1#%$N@;-Ck|> z&>W~#2`eVpH@9(_K=>Kd458$V~Diw+oL=_1`frUde zs9Pnl7hpi6nkP~>X@7LQJ{8U9BEU_=!DdeWTXXDjkUG;q;01B?@4jP~v16Ueo1E(3 z=54)U9$Bp6+I3^!S{9Y3!aemu?79B$N($>{_HXKVl}6^Nc16k$0Dwa6f+Adb4z!P> zV`XYxB@g$ZZu?zuP_n-rIgDX7O-AstY2(XCP1~o59of^!^(2W;pDhu;PIVT_3|N*X^( z{M?=@eX>_&rzs7K<;0%s@6Z95*Mn~KB=)vNO}scL>U6C95@^t6pY#T?_r(SmOa(ZR z(~(ao(DkNo~=6NC#%Eaj>xUKz9P7qcK>$YtLbR){7G-l6*p}izR~_e5sOD? zTZ5AyDW%fm!hHGw&fXWwE2CRo5^2XqxDXZhj~1`xjTQ!GIYwHK_gike_ahjQ-5;t5 zI=tk6@ymPj)7d7RzM>{5=52zdR@}aVSwhG>3IrB-tW>$M;Obi7gz^p?FOa|nOn=I@ zjFPvsj0JmmXLsTYy>ioU!?&I{7e4;MjCLs{&1Zp`0MkZCXVv24@}-{Xdj z_`(?gU_$%G0f;ZVI7bno|46XwxOn^FO^BgY;`LaYpe8~nn=Qa49$0i=15;@b>+i4K z{9>XQGx6Ba^RI)%p^M%Vjm4MARDFw{m>ln5?~=S7f*8QrIrK;QX-`9RFNykWMr{q1iFyr@wyyMcHa~jq z#CeR6*)jEcQ2pSS;4W`(+2RLAqgUq5^=FU(5u$Do9%R%0hngKJ5cDi2JB-`vSD8QN zJZGEo*acy_6}f{C+)!+cZ%f5)BZP_4g}G`OzUS1(j_$y7OCXoellW<9q0PEQ_;7itKmbb!pBz`RzSL?aJK5;Hz;nP7rL{o)7pI@C zXV=(}vwKa?BmqFn*&VbL8tdrSGdmWl8|7whm-ate9L%IeSp_^KjF~PQtrz&4-@N_g zTPBgg5mnK9Ifk0WlcuFPS0v#ibZ38@Xc@&KrV>xMSWkza`1mWPZxEuG}rR>ZE z+ungt&hb^%tSqGoM{(|rUxCqVigLI~iNC}U`7X4l#RuD!p@vUO&CbK-G^F$RR!Cq; z^smz&YrFBRi4S-KaZJ?DhpCa`uJxp>D85u`rVb-`G350~wG7LKzr&jo6wPTTQd|mg zN<<|L;Z7qJY97M)&jPwpBPdJV)Jp)>WEkKx`hm^)tE0l!(Ey}vQ#a}brb6dSy*LA? zvHcz24J~=ifLXv=%SBJvHH?|T*NNi9#3U&&Pli83JZt+;CPUmK5Ni)}8E!Szo5L-M zs+Fz)>e4?}zZgk?J{oIbI;-K(krj9M6d^B?3E+=a^?`Dq9;RdzBMNedpht^3Px(Dg<7KfB8(B1_;{4g+^oxt_rsX+_h|CuIjC4R|tk9GD!8xH3#52T4K0xa6 zEx%~DZ6wWt(I{1wBs-41#Shw=S|ZDA`g~ zmh~MWSD9y-tC|+)cqTZQ257zj5`JJMqtGhcy~S0$mg|9`qIv*}Ygg`|r zAIdiD4K%{3bV0t-{(nI%NKTc{^&)9Je;p5VjNrZ=KwL52I&sV?N_xan zzIM<$wceFAgDhavhsZ>7pV;S}F_AZ2Rv6Mqil9%2nR_eWCUXI{xj)bx5qF70!a|&P zWQ81Sz+8o3CRTzsq3GlqWM&KbJN()rf@#FQ# zwk873XfX_~-l`IvJxBSlNg{Wo{6-*zUPU933-BR2GiZ8mwC6TZ$M*Lk8ojeuZwA}W zlSQ{1@JNsA{0VRww_eq=j*}AMKm=@!@}c4l$vl|EEgJIL&qzR#AT_hd=`PMK@QCS= zPYeIvIzJ84x(()otw%d`>HI{M9umn%b1+6$Mu9`Y^?9OT&_PC5NM=_d zjrSSlKC>%`69znW7Onwa33-<@H4 zSm+XKYCj%~{`H)vG#z%zD-R?%D1~;Gh-QUjP=eHk2~fymcdr}?vmue8iyCZeeLx5M zV0#3zHd^-m!2(m}{R`@Usz|!7j836dk?+La4aS$a92L2egOO5v2p9Nhh*e@E3pYlq zv84#B7Kd09G z++8dile1iTrc4Q1ZbKw`Ie&vW{uLtG&FAz`gq+1?5hhH@FR$1Ne=C?k1D^2%4Gz~= zhgTwjtd}B3NMRkFpnh_n$tUb7V;N&^(%=Aj7^Q&nxCn6!{*>)k`BLalSqYCnGiWj{A&ASa?gaQ(75!LlD@448MmG;s8HHtj*f=D&-LBm74{W$(mK1 zC+}?}&PGiaVW+%|m;e)4!h~ZGMhP%x#Bj4=@OlehLr?$HobPHb0LCw#G8GMfBpxD@ zSx1a^=X}}?yzNB%lW1pmKLNgtv>_gjzAKL@rnA@uW@{f3w?C)gmQlnTQ)`apH2f`E zhQS4XcgAN&V2S+8J9s{M15YJf{(38cp(?vKfbo|y^@Ctyu__0OGvv~B#bY6M|3{R% zlA(~?Q9%^LW<)di*AnsJFmnyAJP7B<;vp)W!|NGcNBrG@P-*G4oO0!@RJO+UJ!1Xu zG+@H(OT)v8kt6u258&l-?^Z-p{|BZu7>l$;q+dYWi!(8D#KHL1pUthAr6}>MSURhD@TsQyN_KB=Oh}>7Fn55-AQ|b=Hm=Rkm0p&jRBIR zM12f3wNck*m)wts$1uXpEuTwn&t{||%NAA;`>6Ruk4$(_gCNzW=*2N|L)U`fnE$7k zq)PCVh1gu5LubCU23sQ9ptj6^qjXQV$VhHc=xN2=hb0jSosu)KA|EIEbJ8qX^>sY75DuF2axhWQ|QUHH#{Wcff-Ix+Akl7 z6Gc^x&zH?;Q@54m>N2vR^iPj%EqqUOhFxj0H9i^e@fmu(+ot;beP(tJqA$8~``2dd zHD!;}x*TZKy4RmiV0M~Jg<0?nA_pZ@zsl_wIiMplTg(eM2QMx# zdG1L2w#0(bXQ6J-(=Q@`uLoGSuh6N$LqUVDV`Qo|_B@aTkoCp?x!yp+XmQN-;eBUD zKv<`Mp|YBy!Elbg2B%jhnK{<#Uj~&9B$F}5Er#KrowF4FvQS4>R1|KLVAzDRdVdn- z+U)GUjpG%K>p(?7$Z zk#*IVtrYS#6J{3TRyh98QtvRQWLEYj7c!DdHL^JsvdiFZ@3U#}2|5g`al3hxg@z z@|L@q8y!zDSE8hSujoqzrj-9C6IzXR3Q5&}TQgBcOoCOEAOb8o0TRGk0|OYY$>G5U z!T=_Hst&#xM&D~@$nHb=Hi|o1&e1reg*iiRLYRtfZ9k!BU68y!*tzpyDt1l+)fi7Y zh;|aza7>GO?*CtLky`=RjElv;9a`j^<>VNZOu4sd$}FZMC*Nq zoaM1w2a_|m!*^#6dI0vH4XhyJQTjC%CQ*q%sTM$C|NE?`l4P*o53Eu@LKj@S2{UCk zBlVje-%Iv}`hvQ*U9_zKU6HJt-%6=c~#CNK~OERiWsGP_|fW?HFBA|6pmjjk)r zoqfPo@r~I^3&i|p(eZ5S276%6h0P2(A*PxlU`-j3i>7aOCsXiG&FuxCuxY@f!v}+{ z4TkDZfVq*_FpYbc*>^3+>U2O%yOKQy1vUituI=vLt!66^t%j3|qcRsMA@@*S`4&F> zx0KZu%uI`;;(>YO+QA!327jiWc2^c*{@q@2uu-J02`>3*Xm2@=#;cE9htFvS5T#6_ z0`cC%fU!?`)XtMuqck=-63ihXUEDdg$7|}l`btnznD7PvA6hLVni03YCDXl5kC9+d5?bBCxz$6P%6q#UWQUde9 z9F?chCb2l*`lC>pHUcH>Qu@kj_V@5=GpCm`m24LHaz7f!vfS*NhoK`eMnFo=f1&xZ zUBtEX6~_3h=ob>Kz4y*w85Jr43ZsfVSkm1+Ke#4f?M72 z`vf9NVTN)#{JaXcWCViCyW1j{5uoftS$ZUyxNXeBNcrYWm`)@aAoD|aN88Fcp;AZx zXa;s1N>GFX@0$SW_JI6DhEh$(TJpKmzx~oGkV`AX|8baou1l`}KJT}`b!E+#T>pUZ zz|cOEOPy_2>SjWviJ%C5z6s0*0>XNOGN= z09RTJC*7pU(lMtkv`qJU6j$}60WHq1h4jLI=;*$zFO0Zm54(DvcL+uy)eBb$wBivE zS26>B!WY2oPbX0f97@}k8;!f0RbvFqrp6d21;YbrAn2+p@;U}(CS;NxZL z>8#=Jvj_Rlm^DcG1PNqx69%3M+?t^ZnET^j{(`+Y+_lAk&{+!kusOCn`Ld4Oy?2bf zo3{;N$#0?7grdW+LN|+f30E7|8drS4EQQfpdkY(mv(99rsQFX&!gS4D72^|UATYH} z6A{i_z&kO1260}@7rRhPvDcpt4>-UbvPV1g-q2$CxWVjA{zXw<{Ylrh#+BAZQiCGg zt}6YQy|~C?IvBL`B@?=i(40uksE5*YOt6e3cr;^XxYM9I8h`a*s{+V3B^11Q(n-vo z2et%Q!`)u`$Cw6ADz2>U6tDSzSmsyQ82^dJ_p-T%2WMUUYq(q=i2osK3VGD>01ERw zFfe3eJ1zhK00001L7LwfEB{|&o;pb6+uUJJpKD{b`HXq4xZXwx{R;4 zlu=&)x(T6!kfo-d)^ICAU~8B%cDJr|kieD9;AsyR{8cy{@T?!5U%pCg9n;#k#gG|ns&fApT04%@#fAwS<&Wq#Lu{2$z#<1 zhWHLiCsDInF->1&fMfU69DV0#!8f4AIiPO&8K*DmC`FV1CjdD^X!K$Ki#LS6o@=cG z(e-(y#N!hYDe$)n`etP;hGbHqaC5%vJI5X%Ms_(bu+ZQGMZ0=E=zq=)o4)C#Yu&bv_F6S%z1`l8jtsM@8rjvOkBp>7<2;GS^hFI9{sO7o@~%1onAUC8MSjI8!a4Q zrnTko<9bIJ7Pgp(^IjnPzr-XLQGzd>40l6{9PO<`|oM zBtk4m8#85wIftaYfFSo@*%zVVE0g(RhZlYR^06^F){LeFbXdnecO!f`g7?M3@&h)} zi(fbwAFex(gXCRe>w18N{Y!BHg)RyL_V(QF$jsvjhuSFZ-* zA3C#yu9Eux0_KK5M*%vx%BO#6_hR-N$(*|9!%R-dgw$4k6*wA9Jv({HnTETeOjR`a znCHtJx+mHLSmrTaF0g|ySVC^{Zr|-c&wHlp(@>?R!xh3QtMMVifpWFj|6E29hWf$H zn{N~Y%$0#HQ1~TUy@e#8RhEiJJLlbAZ)SY!xWRW?AGx*1xf5r(W#qXVZ#=_ARCHHn$sxS73*3C`*lbJ;NGv3M%;Q&DXXW0Zj*^)nlHFfd_VN3>lOMu`ZD(f*9E ziJyTL^(M4;3ZhseCkmOV<=3Qt;t7ko_D8JmA=&kE4ReZ$X+_h{9>c zUte*uwr3*}v0l@6uW?#aJO)U}`q52YErv6lSj};+d~kD3vOT)!%a7flb2*F7f=je&UUi z!XK%dR~XO{&J9D;QBp=chJ7`{{Mu~uCj>U=r(kztw3jsSSBu3VvL(IzZdLM`_9EJw z@Hz}$I>+n%)RSBAjI*@CzeiZ}aKdc~c<1%dYT*&j4;po8U5RFrgp>n^Fx=*6uRIyl zhfxGT)ofH{4tJBD(_J=JSYo$>D^2Qw&3(SV8JfmL*y(ej0-f8YByAv}Mb5g}g?`W`lmO)VCU|Mdiho#ID#Rm>yuhBn$X$-+!k;?8-?SSo2w2{3=@y zn`UiD+@Z7)0WFVyz8u&FKO^<<|9eM&hCBKA%<@u|kvjga6iK|N&vnaG>vBq_WMVF{ z58Yc7-Rs4okc4=bZN7lSsyEy0M=A~AlLND%H1#rZ< z7lPTp;g1}cz(rI=JJC}Surcd{C8=Z;vb1MPefg(mXkzKPi3geRB!34Ms{Qb5sxYCi z;P5`G4s(v&utT!k#uHr`>o-I3PICYvf19Lri8M}uYkFBYH)g*}`%P+*2P0r&njmi??LFuIujae?VJ?R| zCtO5-%DElO+JA;+LH_TjAD_V0P#s`9Z$eO_D`00wmtdc){k6i5OCn&Zp_=? zBF7+|mR=W{o<%^3E;b1l78GyYH!L;#;}BJF$|q1EHEZ0XySZ(}=-9bNlgt{$4@=$D zgu#CG&0)jhO;epJH^N7Jf4m%PVdzJt10rl|U3>Cdp7SxI=T+hrWv}{9$zSf7=>u;# zjhyrSvXLi%X))XW_hFpC%V8b^4`0SmnJW_oow;YOaet3A3S(T!%lQ)V=gxymDgra< zAeH4bDL1*Dz(~lD$r`V4ySOJt<88uN7 zI<3RbWv#e(Lg$*YCzBP#buhCCqQ7<_XxX!O29*7r6J{T}q{1|RPbn+}wC7A_JTD}Q zl6q7IF2zp z?qR#L*%ZM?u%j*B;$jQ(n6R{xXWI2QvCKuQELJ{w%?S%QrGqCT5|8t26LkKM;-o9P z$&o8L^}{-(!wO&Xb@Kje8}{)0Q3gAy#MKD9@W})?u^p1;vBix^ngL%|oCxG^m6V>T ztS)L6iGY(;-340w2lIr4nV~l~|BU|L#`59(Fj}g3ht(L$OgM}^r#4*3=Vg&nfdk~FO~01ntiv8=yy*4vRCG^Wi; z+Brj#ahVT0z5mgrKKMXYB-OswSsMMQgg#f~;vfIcY#DcQxbY z$QqaI<o!Ahmmw5gK3PSTcx=E^R7l z;kxeXsH8unEzX%`$ZqS)Lx@fPg6vKttR?c*z2LT)*{q89`agO~<33N^2GdwP6!1l> zR)Vs05trrh4Th~kH?sAFq6@gbGaxhaxpTZ{M{bX5ZzqbOFot0syan7etd2{- zpOBLZyFe>;ij-IA`fXv%UlwBri z%^)*#=lCqaek(M!hYc)U_{SRCHD;aHJd$))Kmlxa(4)9;BDh{K1oV$7+{=*S-b^zptQ}UqzL=Q66);&HgG>jULwGk5 zs2jpCZ(@7}%rI>uc?5aH)!tNX$`=TQmmgxr@Yx9O_GI5>93PlxpcMlNoQT^+!Oh@> zfDRjn8EsM7eW-km!zB3kw?Xvxb$e*f3Fg0?UT*>UK6$6V>lkD?cPnoeOzYr$jjDl&w0yu7^`%gQpr(&$VSc(8j=9otM%mvpb6 z{@XdJ$`+tWE64;58Vs9JKZHt}(A_7$5BGe!< zh2&z{$4}vsT-0g#O}7F5MlaZ?#iQjEN{IEj*>?VqEl4v`r zZWH15w-Dw9D`by4#S?F+!Q2>3nw8Qh-%#o*hXHf5H%pb=H5q_4*5m{M2=90Pm*{$W zAE~j3vz2-24_0>wN+S8qshuy&7zuxMVehX}+zKJI0|NAjd+dLc)OCCzP0lVQ@I z?M*@c>a!cQZd=k4kNVKUW;ZJ9<^wAMq9I#r0h1Ls2Qy@Dizdo}Wz!WJzPG=$Gj7;? z?{95~TZD>QlgId9CW9ipWuuG`~jIq{BEvSWh z{DGO&)d@kR_zKrc+6|%z-DWljrc8OF*~{U@Uq?Sw!oMbZNr4OQzz(7tnILD8rBXo z!0-jXv7OCRd_~#6)^~-Rh14}V{-fmgI^RN^c!8JVJA`9|DdOdPWVY%P z^KR=qU)8Z_MQ06&&2kTjmw)iRIjUdK+XMH#7kyf0_Uww*JmsSBwC%2|@r4UCL)YTQ zh6fJ^pw6IP)*~xc@6#W(=Ki0&0klND=6*|N^d86zzmIQ;LkyXTq$u1Fi8<**K$4yx zTz0Vy+Jxq3-x8FKAY@6A0#i(gc_$Q z`c5ypCZC0X=P_<(Fajv(CjWov0FI;QFAB2iJV|-k8(Uh9e;wz#VO;gz`8-J}EC!+r z#T^_8bXU|z(sLSnTX&zWF+$X*d{2Mjo`zQ;NP${8YXCt&zQ1dyZ_W9=c8X;MOLV$* zrA=saC;@9u8drv^ZboigvDPU2w@V6|Bg3O-`{AwQ(e#Ddx+9KgK!pI62R3v zYSwez8)%qd z?VS(hmfl$0zVD#=6W==N(?dhFR(SA^AOCAA@x>4zHBW}UlL+I&B&eSTHv|)Dq#scj zrEkgq)XM>LB#v|jX`z;Q^SHg5u6Q7%#I*e@b<9Pe!A1Uv(l6gVp#3O1+7iXggKP~e zH7GpG_Kzo%TYQh1WwcJ>;KWk!6?8o9D0PDUxbz>D`O@HZsi#{y4me((f&0tLD#5QX zB>}X;O`e-YEzk87Rn_WjPzwKaG97&s<2P&vqp}7$>Ebkot)LNzH+Zj=A+(ZaOhx9p zQH|PI)%)5}ggzKM)bJ8zir%xNK_ur1S!&y;nZ7T1v^;r}NTY4%NZNDvhHE z5wa7%m@g5vIn^SU0NiQ@E4^`SNp0*G@IGoa)A^MH{?eBA5@*a^`A93CFY>>yrA`!f zv)ms@$Q>XQ9=-}E~DP0fYNgF&;r6) zFa#G7r+I7Ei{qH5rXIrXz|EZHV3F33APu9wED$P#%6)WD?wZEJ`!e3IcM)AdxC#%X zrDj&QD#v1bGV}LajhAV0$@~I1$A3 z`=qpQbmofWVYVov0F1wT%AIXcwdTkJu8tRV5_p2o2vfSLQH|4qm0G z525SSJBIHP@%*s#wF(u(4A?Z+@$T>Mk!fgDt!bm#yO?#3QR8FguF~~ha@k$*udzL~ z<>34<`%ZXwujwQjG_=i)JTaWQH+GuKIchjb1*rnARyrfcnC~rCYNWv5^K5MaBaqY; z{AoU>QR=}t1B!0K=^XOZnKA`*8aStXL2>IWO)1h5Te~kQy5lEAR-P?aE$a+uN1+u) zW#7Y)>g*9yrNKjTls{a&<$Bhcp->;a5x&)}uC0q`v2T=ekxVriT~gz8O!uAc2anLI z$Bjxqfb>MK=^G=n?2iQ-hvBI#&ieBJYyv19Qd*bx7qBiks?(aG(f1hN>O%r*J+J&=(aZRK+%$3?PH4IJv{ld|tPF-u*!q5#zhinL|Uo(((IEs1@Vy5t5Riemwx~oU}9j9#i&` za|-vl&LE;!gwJluIhRe%v<($F8;}=`rDrXPHp32dCafBOH+&J2K0Yr^r$bp1zZ;6U zJ>Cs7mualpw3okXr@2!!dc+w-P@*Wxzlp+Jl#d6hZsTO6zHo(J;B9ifsR2b;9uoAP zDutS22?e0ngRFOYWpuWsBJfpf81BBO_6usOz2?4MM{ptNa*BNYNALAMwCb?hd1Jll z?TkG(M<_s{!;b_szb14dHyUMaA6I`#&{Oiq2KBfzQPm!^>w-Gf);%vW0fr_y04#Uu z{(d|d2JThub@g3WM^d-7E=uo9q)3F0FLwb$C~yQ5Q!{w8UwUm?1T#|AAMqJD9*zs% ziMZiYc!d+#cNsy@x392rAUUd#hx{HHi?QaY^4Y&Fis`cw+PosIfct=Qv1!hSI)cT! zqv@X45n{`D252nns3?0q~_|NvQl_KnA!MCHs+PaE1Q(r`>uUkc531HW1AQ; zAIEhmqc;y+){@6q;LvDkcH=s3U5AWc)dwN5rL1D8MLw8yCVU%zZ9#=$5^bSHZfYsw>G*I(Rab5}^78L)m zDES402eX$KK#beGl+rB zr)P(s43fSO&VgH!@xz-FwzX1v)g9Ej*YJDKFui+3{EK-e>;-`#E$X2IlyM<3Wae^7 zJDts{z&8yNGxYt>CvD`19S=owYsB7FGD=@c$g~`MX*AwR(IZDPKi{bXp{@{Q_l2iE z+c-&=ANpZf%WhtZ!>9>9OdI3sd#IwY@YX1u)e;C+B&9A^{zj3tL7)CmNd4ZACf%68 zWj${~i(WLEINwT@U2Rgk)izi|r;GX5yWg`|I^eZnbdVoDXdZekw+SQ(4D6ACdtU0D z?fm=!K(}yYwS5Cex4)E4V|qqeyJG3M*hwlttkkA!K{Pv$7~s_Z25g(8htlN^S0AV6~ zDP$3fV+}x0w_Xq{Nb#y39J>C@N*BBOqn51HOMFcvFdfXYH+=nOs|r<=`%)g{0)pH? zbF_n7L%SG%ETMyV+_iB+@a&`aGVLKz%kONzQb=!3%KPghwk@T9Fp78;sOWL1jxh!p zDdcTD6n&uLN9RH7JqVTDoieE;*y zp}NqNsPXJUFpLIEf4}-S&O3L=W73k)!eXzj^2-g-KrV{8fHc`fm0|RX=>L9^FTD6@ zAFf_@-B4UB&k+3UMWLw!=*R5v%Y!F7fJ3DS46{deu?v78GWQzEl;;B11$SEP!w(x` zJ3@bi_`CBd(0`K@{h8WIZfo2124{!?g9IL>2y2y%QofAZ0p5SwX6emZ@FoP0;Q(IP zJ_$qds1<#F_Js}{fm$mVezX<_ywxgq)kF}HWgJPwXL8Nc=r5o>%Jp2bQ~=QEZH+cl z>SI)z2vg364?SslZu_8N{Kc_`wCql$Nn|h)4x>p73pQ3<2eAM~q?m5b+fj*l^UgGpo>t33|4Gl6 z=Vh)W4HR@;s`PiTXP{A2JN6)>qHLf!!;odq{d{M z;Vu`3J>QJGmcWtdE9mnehg`?mig@lN8xtJ33eLkii^xFV^V9d2EO&R;P zphw*xFEj<^nU#KEVE-jn|7K=Gnmas4qO=caURBVY@kQsG5OwGQ?c`7jht$7g-Vy1BT#^*Q^^;&PUb9Z9jT00BecpJ#Ja?{o!1HeE{9y~o?JmF=lrHw}V<;#%|&_h4e{}(BQ{^sr^q4jdI z+{e)FtAYVf?$*iUj@w$+A@eT!z7RPls<7FN{Hi127h16gs25^{Mwz8QS)mfEO}_8L z0cFY~3bjG)iDy1qbzc=%2?KX&{}mN8aOX3q>C+<{8Rj*vXO)GaBpdSBISBnQ%VYB= zlO}}w4?7evfMmnK&a^qRaf$idT6gf+vE|M{MtF1vyt;`z*T_70bv%gcV3~cdf3Vqa zlkKc~O!$2*9z`Y~_m6~LIbN@_L$(KuW`$QfBW@lzNo)iN{Eyi|ILN}rl?ELKJ^Bnj zc)3j#X2>sWC#WC~AiP&jwBPLEl)Rvltid>F^tE0x!^?`A*u3s>s8Lf)^@FIE7nu{0 zR%i$t6}SVTqsm3L#gY1rLpMzSUr&RM`R*HosYNN&#PatCRC%{u<8ZvZ5?~2W!w*^1 zS-gz|X3}OiIqH+;b0~7VR&TN9hNa%DVdc{G-}yPOTfBjrh9>&anxJZp1MxVLjHmAd)_paON`G4` ze>E?|M=!Zj4a1N6M?K7&1UI2nd99dK%3qop2AI{|Du_&}Dw#Wws}7GZSVLpbzt`?Y zbXr_#jd;rCtm;7WmyU*6k41#ojW?3sqHT(YhC`GF1ljouB+|nX;kNxcNe@S#I!BGa zR!D$dlO4|nQF*&q`T_HI0kopV%Rc#>5&F-K`uk82ZVC^eahMYx|Y+r@J0zkaj z|Kkz$+=t;zzf|0!ruhCFe<+<_;aqa(bxB|_62Cf!DC8t*sh-56eW8f%y9QfutN`_1 zOQ3IZUgp_Ep+9x3$ZwfgzdT$rCTjgJ>l3*=SpeHjbdLgu)Y33cY7(UARWNk3_Jd8S zQ;@?)^#?1g^q!OGbPDboCa<;a#7xy97WVVrP{0jBvAh(lGgkv0DG>qDvnJMXx4pZ# z*0*UbkGmP~IrXAUiU(hjQop@b65%4a%dMBnwPd?ds@qEOLt&vpYn|{czS2`YkQDx^ zjYSls-D`na*B4QP)Z;f8;&RZ*`m`%I3^AeO=7n0bj!y&*ky_upw_h8U8w(G|=@L4m z1$&+H6xvmw5TL)C9}d2h`EAQn4T+3~O$N_?rw%ql;F4ec(Xy8VG`ah zEjVj>Qy{y7xq-=aw8^F}z>fTFyZ8pw#9@@OkibQDYYLV?VOE4*KY|{LRu^x4ClKQXl%s=WQjSN(@UPbV^K%|6Hr^R z0WgNl3zx|ZeZPQ}+&1(6B{8ReUq-J=JdIuBM-?6G$V!6fgun{FgxSFrl*NG=sW(k9KOM)b{Hj$zI%y70 z7bj@VrNa$*!g5U1DoO#xvPv*DM37fploIO)GG6lCf=RKg*5Bl^m|R*|rx}j8;<{kM z<_|@j$-Y0&DPe(sL-9j}upgXgT?+W--o}_n8iM5^)E->Inc|u+9?oPO?2Twte5u@m zxAtXS+sWP-!AEq^T`SE*^v4n)lEFW;GTKFAA|0oA2lgL#jh74UpOF<}mHrPG?%=`l z1{y@nf769Ex?d@$n2(8-00_uNZH|Ue>xQ#?mPCFfT1?X}C~?nv3N`TcvaZKJf!)vG z=Bsa#CAd@S!)tGtv93yD7!BzZK0#JLxR}>hez10g%35h!pm^pX+EY-tEnyX{^%H|b z&{Ru&fH4+y!lM^@v`%9t5u~E7^c8U2xP^wmwGYW;yg~QWSpHq~<7Ors!L!D5Bj#0S zt?dAnBC`G~XBTBnI|up@2TFt};}jpouL71+*YYfo5BluaOJ9SDl8-ga&itV;ryM-3 z6|eQ$c@X69hg!BQ9~=p6-CUQ1Z}6bRg{{#6WYa)otMNC!^H3|9Kh1jrNljV7IM6v9 z!$!_z6uKbs6%N6(^YMyZ=3X>B4=$=Hi9?NZ=LHGX-V^WJustbe+MVAaz^4hBHpp@| zAr0ojM~$zp0bQB*Bla*Am?X5*1i53^x-~;_>?Z771gmOfcCWf2>Zt=f&q!=ldDSyeM%EydS8(W9gG|Pxt zR7v*rgTlq2spb}wJIZXPb?tbu&3DUl^U!Jw0N7r{hk_p6(0u1|DHaS6}15jFx4n=ICa}(Dg?_!cG0#Q=-ur%N!lq+dg=(2#RRL zMuEreg<@ql+wH;ZE2PO5aQB#L*&eSBXmz9K!tJhoKPU7o7KO2l|4MA5ZnD0WvV9@M z4K&Y_&f_zZ1F?H`oul0sUwVMurxO)egqmW=dtf(u0kivZfHZNQDpA-4PqC7R9f9Fm zqzhxZM~hC^@8CrFe_VxCyUcaYgu^`k6p}F(QvXZvwI~uMrnATUBW-WNI?uV(a#F*J zIr5VPY+M>(xZ)eKT*?6%1-I)`6;kz1%bHfj7on9&3kWL3)hn3(b)bAkW^@$Tb_t8J zNveyB0#C7K0V@GChmIhi+4P0K4^}?R7U@$Hp2V9P)U%AZp0Jbr2#SB>YZ0zw@Lp4h zq=KgpjL~aO!z*kxz-d00$$B!j^6;`|GiRsGNJ4~Q-O{p}ca(ks&HJ48OMNiA0Z|Xe zlL=~U%zlpI(%y;`e61yW5L5FKmMZT$&)C-#ga$va-qGZq<0*8&_*sDcF9QA>!kMl= zXP%~ub(QWA$xxmi-bBF--GpGQaLtoU_ENB3BFONmF@gWBkkrVuWEft&IlnfHq|4{; z&!_KnOsq|vijq{PY49A-aqaCZlg*es8g1U&t5B#do6k9GMiN_zl=E+~PmKx2BG@#~ z?*_7q{lLR>=6r(Qcb-#FD?C`<;`L8ZSJA_|1+xwBKx1Bz&vkE@NrR*%cLSXi*x0!g zB37KXs2a5~I>EWq3}!UICQp|3#*gtv8I(r%W>kt7X|9CAdL4No>Ln&#QL>3x)Luix z*N{oaOsU7%B_zU^0Ux=nJKe5}fQ;w|RBpbaOKqitg0+T}GBB!MuiXjX9WtOMb-DeB z#BdR5k7km|7440AZX<_hcZ@a&?IdQa^Sj9NqBUGpkK7>UcxGS)S75OlORI4%myDN1 z{}fz%UQ;0@Yp*~XAU^*A5>cQ*z6n9`$4DF|#4=IAxTgL!H&`k%r6a8WEG}J*a2+ED zl*GU*`_i38x&%cyDqo-6kG+i3A*V4IG|vNtion?OXTCr)GqEK#Y^M0WnBTC!@6WLs z>xEb+d@e|&&M4H9$I6Ff+oh~s#-4X1rb?iK@6$+uDV(?LiJF%TJ9lL~g&J>~ra+rn z`{EQd7OmBVoGldn$qjc`NnilNAuvJ^&OGS|K2Ufp+(a1>_fyjKkWPN;MGJ?Ba|u4j zm|y9&CiaE?MqXyU zq!q7m6xc(~8hk2nobDLEm{{f&t{sSCsN2`mSPZ;G6!`!H5`{zPGfOy&-~SNNPCCE0 zCb@@2yIBK{f6ZyUiK}lpRA@OWnaCr0|7>KJ1`hSVu*vZ`^H|rKE4K~UtVkQR(LccL zarcVdFz7FU^)3+y)-`!sK<(QTNy-PWqu;bFMT2(^`$s(iwX)wUNz)Rq%1S!M8ef0m zOcWh{Y;E%8UCqFAFIQUCc`oQs{r@P=(lI$3Cv)*dI zV>DuXLXN4h2^?6Mn&CF^^!dh?LFR18*&@p;`b?^i>J)&S)5;K^L^`xo05C9QV=*iM z000000YRGJ7$*N#7i!@+Lp9LH@9>inli+Y}S|3fId%`fMQg%i_vU{VNC)ZOeYmb@Z zG#b=utip}XNXiF_tWDp^xZ@{kG+f-jH`YDgY#1KrSOc0Bmuvu4$ZA-DLLp_j#ph_W zyRvCp)skLTy%do&EB;NLkG?hKDDkb6388B+;2BsC6wllOuxy9gV3Y^Bs z5>)JysfN!GQYG6(lkwAQIOh?hkEENw=061Cj`RZ$9SU=@guIu5m7}CfWH+Zljf^0d zc&w>ZYx(K%zFv~y^BIX#W^CF$P-h~xZOC|U9ZEdmD%3s*Ln=fx^s53c{Ir&@6wZ!% zkUbdhkOp!Oh3g|$j`l3Fu9W+*&Q&{$+3#R9l3KObD%LZ6xkNm}Mk)|+fMNaEn`m|T z%xTe3<6_Wf@;s>oVYX*?X!hYT7!}G*Zqq%F_Z1@E^a}a#Uw0OQIaiuLQ&@7RWh$IV zjNw)Ovcg3>Y6F_MQNiNW&*4lhhqFM^po?oVMeaVHb(Ze;1?EW-igM2@iKV?vHX-p@ zFqn}02I8yfN)3aTJRZqzaU=?hFbXzBOvXNh|*w1w9X>TY06ErSS z<*x2RMVOv~y}v1SNHo!s3M8$770U2|J`p6{v)hvT)uo^#|Ii_E#cYy#6 zZu)j#dvMwn5wc=RNB^Q;UTFYw*c|1a(uq>|tejo2<5XMI6OJkkN(W6PR~!}+D=FlR zi;SIhq;<8W7-G18ZJRCKIV-13O#BgeS4VgDZCmthl-MwzclX951cfdU@v%_F9IzyL zj!az&<&%yo+v;KzM+46lF!YV%=C2j0D@!FPzq#{32(*^-%i{zRW6jXJ@QQ#D1!oHzr6OeEm(nc?)|pZVa@QFOjJe8_#v z5AzI`PCvE)I`B;Ke(umMq!p5B`S+P{H*tx*a^`u%QnP8rX5lJ)YY&X6?BxJyqBcv^ zfRZiu#->g~{`;?ID2qC}nZG*jn*RP+9n@KU>zjY^ADpgLa5l&NX43>Mzu415njW;1v3 zd55b>lFdGe7YW8qlco+oXZO&#>g!adwWSu-3;;()h{;j8RC|e1U_(Bd@}4TF?~l&3 zaH5>ND=Ra2|NC-GHbQ{137^R*@Kw{%hfc1UVpHDii0()W>JX8&7WG57D7_#`MqAj3 zIJe$CR~0G#rBD|`T5JZa({mP`RhAIh-y^G3P zZljpuAOh$yYn1(+9Agn&&4aWBC0l_ z3xOh1kL^)Hc4SV3Na6{AXCLIJ%peeg2nfgaB=fD}QTh>CW<5vTQtN~srG_Hh-rMjk z1D;r`OM+k~!sv<|5btLS=BS;-G^m!ue@Eh0k^|PDUDu_J`HI&nq+ST8`FywIh^aQ> z=`&0um-sDz_@I(vp*n0MYtZaZHyE6_UhmgXM(e!+-J+xkmar-NsLSAbzdaS;;kok3 zxqNW;7-b>}>c4EV;EKwOmu~-%K}k?|UZ9Ng0BA0e?l{##+PY5VxkJ4FeAJZ*UMhTC zZc-~GQ3hnQc$T5**%+mE9xkC6C>!Qi64?wbCA@$5r*D4qO&=7|3VgXZ8l2U?{iXxq z?j|)10ijxnNKf3Fwsp2}Wp6mnqRE&~jTPWtSmI%^knSED@14kE@!avR9O{D8=rqG$ z^R=G2fi*8fQEn>-iW1ZbD=3(G|*L8Vk-Zq zTZ6_*v22!KMkCWd@L_d((8eCC=a`qeZ6;D4d60I+Mu)ZHUxDU#%r|x9)uDQtPn5df z96RkeE>AQOi^H!*iZ-fl#y1?*jKe^h2A^ci{=Wq zvqu!Un)_F$++ao^j|cRIBBY#0P`cIEdUSDkoovPttMRkiJt@W}463Fg07vh*wXk;C zxvs4#X!@8k;~j}$tDI881j9(T1|#iA$;%7csK8Sn`E)o^eUrbOQSNbFqqVlOj14l| zYIfUB`QED-;HX}CKK?maRgiWvYP2c&w-pc%V=Twau%z+5z^Ito3yW8PP;21V85q37 z_<Vzt!@QdXJ zsMii3LwC}1BIA-8NCSeK{&F57#2v&D@sQZ__x3pAgmck$pumM#T>$A=?Sp{R)Vj?*m6^yY5Fx`4;j zuKhk^>QzD}eC0ID$ds(NnE|+h6$C|eMyp9t!&$2^ZN6Izgmj6hzJ8Mr2rF0EWwgM$ z=y_Gwq3FxSZnjnKz3jD#w_N-$H=Nl)Txb9eOTIHV7ye-wwZiT|M)hG+1s4DLouS9V zffz9_k`cxH&NTvZBx>;Xtw({#Te*cgy!xeU43wNe4)c}@DYq-cBeJ>lP{wZGuu3FG z?X4j__jt6{dJ3YwdL(jX~x!b!C|a zCRP67S#j?%Ty*u$BZLu}PfvtnyVPEgL*X$@fp=(f_Hn-(k!gQXWA}%a?RR2?hHev` zB~t4-Q_D(Rvy_vS_l}_a@arv22l6qkmW-n`) zMVEeU9|jRz8if`+1t#pui?}Qa?D8*L{`azKEbTrub9Ra*hUP5@Ln4y2UcnqO_JnXN z9d2ns?znbsGIk2FpYM4R1i#`snQnnq(`2mGlAWYzoRT-H0`WTs*kb);ma-jef&9JE z{)wxO4jqcId~t#`!~N|<_R*0h44uqjoJG$yjf0=)c8gga`BhQuac`lRGroR^)M|6? zFl^M98XOkfP;WPDOsEHUM~j2liW4TVBS)?6k=3+k`lQ$%VhE~821OZ3@5%`-A~UI z40Y?MfO@6d+mPpZu@4U@L+oU6~%DEgakt>>5L{}xRWUQexz`}|wTbtgB#nwE;V z2G!?Htl>EgQJeM)y+MpOD}RjFL8>at;h4AVR70w*;U@6uW&G{XddtxOt;7B`f5D%= zg-V-ohpjbZaivp&KrY50Mn0-EU(aGl6`KcIS%9&_vMvOXN_c(Vpa9u4e2B?z=sapn*2*6a(if zBw71@EOQn|?xV8WneFF+K?+h&Q~>vWsuIwa&?((Y(*!1gKadBe<&gHUerz172As6K zbjV1NFmEuxC0{lr&SQ<=ikYvm1I&&sO2mE}Wg%ePOhtvWCB$Jv>?gVdXB^f%JE#bz z?C_8AzM>Z#=|Qy21|OF<8bmQ7>eDd=!z#BqdYDB&?k0+hNlD5&0({s2qiS~NdV8@b z)<)m2tY0CtlI|Ue013}Y*c{qj|@r{ooBzom@gs>EDSsf%-)DnhT8|>K|+M6ZAkdm&5uH zu$dEiS;*}MsS!FVf-g%mzfV+WRpZ_|st350_Z9S^?{z-FTosAoEWnvfEMxMh&S*fr zo#)X;0Gg$`XEZrmzSJ7&EsqQhyrw0?uX@PUZLfFBXwM>`8LJn`u4NtcwoGz)yXB`hPIVth$wqPrZyXIudDo`jt~Ui`4nHe zyw(y9&}`dK@XTK|W3TJmQ8t9+KO^f4s=yFs%yBgSr`rH1Pv%;REG&7UM|3@t+*l2s z{^cxb+MOB@qd@{&{X+y%1xW##I)>+09g?N}EhLpDOFkxdjb<)JO7sDMFv<$FT<4tx z6}&z~Jzo>P_{0YxS4*@wy_=1!SWwZ26PM*Pg)C?l4A!AjV8;C@#RBN{&Fs2^#MrZ# zNl$Xv^aVzBB~$Abpm!y+8A9R!LL!`U)l+~eujj1*u}V|51~@mNoEXDZl09jwW_*Iz zD&Oe#eN_gNNQtpTQdPp^9f$)Ue_nMj<^!k;F#xcZA8?x~bR+zOZsvWBWU#Nz!ZjB` z^Pp&64y{}#Ebzj790+l-WE-_F+};srPp=N8jOg{xs-lAA%nc~m)|wY?Q>cMWP?yCo zw~2fsSv_Ssay|e-N}&FF(+TBnsxPV`VO)`%z7d-{%^D(bmI}vD47`0V5!rHsG;n0` z5&yJ6Ta8B?EP2;RUYQT{j2ior#I?|hPb7Sp%J-s1^)a1HhlCIU9=xKpv?k6`1)y2M z7q~`G*|0L5{)}0xx>6&_`T|f$FpGLX%Wc?qRm(pZ_iR$f;12d^yoTmHvruBs!PU<+ z{kiTTUXknplPY1McGhGAAquP$Ppc$S@mMB3Z;aZQSyzAI{j;fSX08-t-;7N}NVOA~lpy&?<-C1+S?sc5eLKIJDU(KjdCPzw!AGHlM7 zNR>$9yL9_tX#Tja>!k!G;WY9HRXdgdj7u!$iCqSdx%8~$V}M?S&MTw_-QZjmURRzu z+&BY})@YFynp%uw1}*^Zug3_}bJS|VYD^w&-tcV0O6E#lH;Y9i2=9_wXySV429rBd0e01P(e6~97%a8=g_ocJ(-?K1 zGoa%S+D*U^T$q2ERHaY3jV{~4+VMA$!*8qS!N>+q12)wUjlY@~ZQSxYcLb;+71HO1 zDf6pZa$6hV8|#@Kx88Ghm+ot;urAX1vP~`}DfxnHWAKML*-pgqq4iYEsQy=B*(>sT zyBog(<@%`WLg(J-?E>OgcUUtofn>4Tc`_E-`+vh?wWR5Ch>^?S%Yt{~|C}v;Sm>)W z<+WnX?B&w}>|Hh%qQ$AI?*EF(5?kTI;Op8yzL35+K?illF5&?644lr%7KgMb61z}T zqNR;^{n#7kX)`9s>Sq>!62vfczP}*btwZ!iAP{QD-9OShGd9Us6^wK>Fh7yETjDx{ z^GVkK+zOg92(#aT5R`!@?z+c;G)x9Fu7p+K>eb>Q6psow=5+ky;QCTEQo-?CBa2aX zd1WR+Ela{yI2mic`F$`5+EzXL4z?7zXO$!8o4Y8iSu}_6GCRwK#{Cd_ZYuUu@~21O z>On0TVXTdw&W>BO@3Ji`3a&`1*C~?oamrUd7{t!9*wg=*SAT8dQUxSOs*b|KmTP!lY+W&LoO~nql zUh}5}{wq0#&tIP1Ex`3Bcds-|i*gZ+-MNu%BC5VoY{QwiB;0JBmh^M#Y^WN&DQVmy zu2*jq{+7c`>e_C;VJuylWEdqnRb#KS*|~r`HBowp^+=nG3PhsHnD`O`6ensOk$~~O z6=5Tcqce>6!q9u#&+Zs&YTf>tW~bK!>IDb!1Rox&K^YuhfZ$8@pMs#U)1O%LTZ{&I z7lYIabaSy$$;SV@+E`&wl^8K=jl9JXYv7Eo%~uxW%_)yR#kSG8*DCP$y*-k$oQETp z*UzG*6GUB92nlVO?8Yl5)}Ep%xrlQ>FE%$;xGT zsByn{H9D|&rcr0WqgeGK{?AjP=(TJX8-HfbiI)4@&6}Y9{~*@E%Al=pWRyIuCG0_+0eeqs#2lO(JDlN$MqJv%KV&`o=hs-37jJ!HscpkFyH& zn2ZqqHG2Q6j*5wfZ)meq4-PEn8}gD9gpd@at1y7X()L-e3-Hy+r`=%zyB}3ax|y1h zfGi}qsMZ-+rD1VE;5(7EzZL9qd@YtC!BD>qhUHtZSNd3{J}X4S^4)quXS6LtabjVh z|3VbcdR$8OH9P-6q=yoG1@$v24irO2(Ytzk1@E`Wfoj%vV*X41G%Ss`*;#*T?2I1Y zTPCSDS@2^UP1#Moie<)#pU`&b)xCR%5`Di`5zRgA_7dv7c+V1gQ?DM;DJ9SuJ!r;d z;V?6t7;&2+Y4c*emj7dRx~Qn4E*m)or9ZWTOa5RRr5O3p+t zN+Q7W@T9Y4s4Vu+Rk6krz>I{?n1L-KRmQT%7hYi)1f{L^w{efP?n{Gqd~U~^aB`2& zgW*xD7)a)x3kyfXG==^6SY%%K3hkY^I$$m+V(d*hXwl2{zPr8|?aB=(|H56MaNTba zj+xvl!vcALy0N7Mlu53mH-m(72;{8?n@Dhm}x0L#vg>|WhLj@9kl zXWrg8_G3+^L4+BCckc3d51v!`x4EwHypO>hIkg>Vj=V$TRPnr_-6Jf%Y(0WM^ZmJu zoPM2Hd3;zW&T)@5L1nNcP)nzos>M^uHlXCQb51%7W9*Y{M5st79)rj*0#(cxTmRxw zAp;C2ee5LGWq>tMB<>~LVY195BW983q_ovH5D~aZF$MQxqyR9cQ$*g?D}f(B9GAnR zXeeM%V#!<76$n<>(L}U3IK*FOB)2S)5$by-z@pF4V4g{laN zRxR)&WO&%E!}62U?Zlg}E7$@eZ+=@}tweS8_~c@)$1R6h!J{0Tof9xPmL-S_WVfR}=m4NQ!Gf=lC)Xi^{fC1O`@_0NPoSp$xAywYP_|@^CaY3& z&$HjqF2YPMd^-INq|2^HWbogTZzh|W-w9HKW07?Iv{l!f9PNrVdzL5;XHE3r^NZ#X zg8S8e*L|<;)VM;{>57w-lr%ci@T#0$q29g>xYg~^d3G5qEw@?6%^e)a5H>W&1V7d_ zb$#)M^MoNlELu5V_5^)Q-RZv7N3YiV@6S;`EmHB^c=`XoIx^T3~w8L zn@_5G$D#f@1`ZudkxuSWLewT#)j9$DlM?2VxbU)s2Mr>l3!3CdNxmWw=C~PRh*rm` zLu4p~aB%>U!ALt91XQ3SLuF_uoa#d;td^stj1A%}pYLx-wTvd(@cu-^5IaSHR|b~f zc*>Ptw$UZsLo}?y+AK1KHyyo#X`fAo3-Bx)mD3C#;n-fsAhU`kOtEQTq5 zAq+|D)buo|EpJSoBO35Uyitg0%_EvPu?AafI%Q}DdmH106qAz8N15zdKgA+KU*OEX zHbCGR&{*$#rV0&(xq5bWqPnyC&v2vi%IXCqeEB=aj6VvdA^BWAIncr2;RLx;hbJ95 zM`Av9(NuU7A{L&NjSEOWg~*p2`Bh@ z=5gb-$tPA8&#nr+JHqQ(Cy*shG{ZVM5nL=nj82JP`fn9^al2DK%83z9tziZ(1n={T`j-_@K&cq(e98Pb3d^nKfV7wp zAz&zjKyj~BNBDd~wW4I5ckK=Q-wob)Q^PFe07ZoavYvlwxEl1;bxrNO38&8n3LC`E z5@)*bK*p%{$w#_PDCFnR-cx(-cmUfX>^*=1*E~XLi>gz250K7AW$+=}E}Y0V;A5ge`f>pt&hG|73rCMwgBntoGVc)2|3Q z-vXn?x#^bIVVSdX-(5DM5 zDf=|31_Zta0#3%sO-v90KxG>iNPY=`=)zGy#^mFoM=fi23?o3afN8)o zuOkzqUb8}|_NG5gsnVB@XEtdQ70hQ!U%STNgXX#wB&LrX%S>whJOmPaPC?pXfmpzC zT}(k539W6{1ypNnd_&bJoHCG_SQa|uljcgDXHE`B$LU`LaI{GHj8IAK zuLQZG(=nfNp2SfT4sm1v;W1Si6-|hQ0%48set%rpDFmI8NkwHg2Q)kl!bc+d%DBI% zmODiR$J7EmpdDP6*L_V8)u~R0ab^bx1O^>GFBI?O`{a{et>pFme~!i+L_zK5=^pY0 z?h-+@;m`7;n`Gkn?HVHf&B@cK7KeYeFG3NF-45geAM6z4Pb}j_$j(sJvSXK)_XiSq z>h#vUGpc=@-Xu-E)?Z4+!fy$)(O#FTd|l9zbY*oK>S^jR-q}V0TyqXCLX;8X`G50W zs9*_`Yan8|56mzN`)0fuD3NUp8#RC&1Z_!Zi6v2AEu-BD5GfL(MauJWtvXEQsL-pN zTf;9RsolJ7HXLYw7^$gqo1-woTq9X$N7aYg)4qh{)TZZ0|wmmXd|M%5qk z!mqAu&vja((!NW49Y9xn9T+vcCn!IcI&GD2gALO+MC@utLpS*0OobPu;Xw*ln{@BR z9GF8`KY}y@)(CtGvJG=nBOlEjvb8P~?FiVu?HhVFHU2-|J4qz*E%;&37uqF=ty+61 znZh~na(BNTXg+bN*8_Zz8cau1cNa#b`hy*GnWD2m*r+#Fq>ftn|C5{4tS?C{383iEIRl17r-8~YgwA(QT)vNBHZ67Eo6B2pP1SqF@Ks)+mY$%2OJ>{Re5$G( zRfh)73-XO~-P@6}!VLeewBsa=Bz-n0PZl z1}{xw`erZn)C1@C5L0H4ZgF|g`wkP%zzgIIjn8{aUrB3pJau2#d?c)%`VgF!*8TL*|^*H?FLV2}tuSa-o zCxC8X>30ZYBw83~Q2pWaONj{cl%Sx#1}+O}7SOca0OeVgpy?xlbg`W%>~oyd-pR|> zoP)BU?DnBT+{y_9xY_AU`xEdr(@|Ye_?AXIydsYTzu337^a%m$;F8cI`x)lr? z_zGs`>IThkiQ6K$?2~l4e8?6g*Y?NHwLj}^eG-#NhrxEQ0R zp)$yFO2J9#Fw_?63|R64-7}v6Xx2p+ic2^9V$AoI&JmJLd=8+I#BN{V+ZMdc0a6F; z6pe64DNM0T<`tVB6&%mP2+2Zz$iq5?wYq<(fRGWVuG6^^uUe{5Z3?hX{x_~v@Z zblk-XtcU>}?84o<+ET}mXrew%Az@_s!H7^6lo?2ocX@>^w!tG}a^TlsqBvD4;6aGF z?6KQa8uh2$gr+w-2<5m(o}CS0Bj4NKkW&=8jgA2M-Y0kppKlg+eg0+(+B)c6evjga zYEo{pZp8$Hk?@nOx+u2naHG>AFLuo$rMP_%=@{iS&-Ww1is3hIm7aEHpLrBG4aGM%C6s+2iBU>w(Te1iif zS46Zfzd8$M3!oKvd#4@2G?|Q`+;Tu%sPiKxnT~iavp!i3pf7A5%rl3ohkGg;ScD6* z5+ooWo?Q`VGhUx&M6zV1^1xCACe|hBf?^P2RUSC=;abp^imwiTGi)ROUb=>zc~@uw zQ`cpIL8=~8sg%k~RfQOcl-oR*9OJ!Z3VQ*O`YS!m5)x<*-+-Uuj6TvUJheupbKhf? z>(km}zULbaB6`quc;Eui?#q+kq*(aZDzLY&Bz&$@1e@-x%Rggsf6eUlQEF9kNd4n6 znuJT4;7Q8YKpUh8rw0ZTf558br<_|JS_SB*+@Huc#{{Aiv^TdKBtF6s=wHE+?NUQi zNQx4`V?pf@6WcL{$V<(>`U81gHhf13fL321eZ{)=gcU`jvlad}!h6)YJkK^(FwOb| zZXZ4|%*qdC8#!BU_6HNmY>9y07RBJ)En1O;mMT>~YCz`=C1NF9=y;3wvjK)-WDaaQ zyHcFVzi7`};X}E9B&ewxj~=hxFM1eg)7niPsi^`FVlIwjwbX{dD=UYs#tp@J1hK&A zg(}`1E4-TQVTWTV%y6-EHIX%En{Tap8h2BAiMoGHBo&UK)-!q9@|H}M*@PHI)b=HC zsPYQUx+VTCA^J&upUy6v5$)1v>6$g2|CAR}MTB3$**ouc$pfs}B^`LJ{jmc0g49@b zD!hE^sO1+>zS;x4BXTbkOU7`cM_m!u@X0y8-~C3uX7-Jewx6^lUY*z|+m||oJk6m@ z2TH_S-yBJUv~ISFv}8Ezvw=yZza!VSDqky-;86-sm{V(sXEABWP&GAJO>5MiAs@*J zUO^l-tUS*D=I8rTgNPjFiv|H`j{9qX_t`L-dqSolHC7B;P~!1jSwZ_{atf*6=1Nc{ zlR75}sovpBQFFQhDJC?;(r0oP!F1Pgr-n^V?I}Nxw1q(@boD-!lq3{P$XpgOpHklW zT_`cUtAGZzwOrW&QRZ{cIm%VEym&4858<=utx)M=f7`t4-Lp%qdD?g|!CSyi@=?Pj z8P+nr=))uUZP@lFZT zs*mbFM4QoCV9$f7Ea!PA-n4rhVmiF~R*O8;K8*68ewcTMeBIN$xr0u0B@Rl5(t+fA z2fIE6tvu;tGo|Abl!>I7m+T(1jhpv*Ohi!#ymZ1;n3|Nl!IVCBN$IU6-Tji(z#hef z_Yz(AriE~daJI)1v{;DO2(VH_R7Z4mf5}RD9f4CtrNTV%|J9W56J&{%O@HqGJoIej zB$?q> zB>!BxnnG$JFn9N8lCY=WDD%?iR>Bqbla)x3=Q`DQ%&+sTlo!_n&-;c}qSj#G=Cxlp zm_!QFpqJ<832UVvLMru~1Vj*K!@qr@B58HMAzau1Pj?1gkVeBPs0;m}11&%yUFVs| zGG0_~^~h-h`ZCep@G>o=Ol<61oq(mhECoJ|5c(SK0NTZsbyCt^c>`xlNThm%#HxZs z7duwoDG;}reSJcT)&~;L;-FF3F`0@ZJv<0wdlKb^;uCB%U@gTa&yrO4s^nr+9P^30 zJ@jLF5X6fHUb1AT?e)iAf)%~-oSGdl!led@&?bn zcu}S=w~esPQ!8QX>`cWhfZJ6S>Bd@fr@_Bd&L*&Q9FN#K>=11}5KW5`dOOphI6O%V ze!v_^|CwG~=V+fD1eWZ|jBw;JYQ>?Ael~Wf$kUcz4$%RH4^A*&n(;7g#NGOEf~c3p!nfYG_>|IM>@G6e^3u* zEPw&k-M%~40~HNKXx^fDhm$}bHCkt!9#E`P zI@VACDGx=*d)$h*}IgXx!32*K~wViSZXJe-W0jO?{~>A4k_9Sp7#J$ zIs5f$>g=BHPGEPKoR%;`;X7bCL;ePsh$6O2KGRQOpBa{oh#AN1&-Wz|yAJjJ; zhHZe0#MPYt~jP~K*wp5>QA$7^_P@pHgIv$Q4!-GP*K}Fu?D~VcJcT;*J?u?IBt7g2HZl> zZa#+A1}@QR(<19=vgktP(+b%uQB*4ECPFd>W>p55od&R0eWn*e&yp*KnUo=n&s3Io zZrbg}Bn1*c=zA_3>;>O>Zl86`IGim^yaRCS;1y1%AJ&S6^1S;oAItITB`d&{Uu+?{zwGFpW++< z800Qlo)^ByNZ$3}l-ADDRZNy+&@im70?swPJ+>h#;YFi6{N`0-ZH@F#8U&APLlm(q zl{txh$rlDr=ZSDW9yWCeH~7Wm1J$EPz8cbXCIcCr(_4l%Q^69 zN+(@CjrVYycVu=&*ZlY_aC+GN0UXaYxXr++kFO|v8D?ZIo4k!ebD5iFP)zb96ZNIYSbWz5%tt~Nav?;R8Mc7SrD_72Urk1SCm z?>hu4aPBB`y(SCC(n>9Opo0JnIcy_?tVd?2-5~)Ih*m=1VsXI(gL6T5xEfT6+q7-> zZ?6>_Po(a5zk2rpmpY4SiOwaZ#F0zY*Jc6>uldF{;7qQv+cn>8s5u<2g`4c|9eZsg zwPYI7EEj&!9t4${v2@y|xaR?Gu;=D~t}c%8lj#P1kNL}M)IYOdwjl@>JM^Qq$m&$l zgpt<2*l2_aROUVb+wfY=KBGFs>9Koe6Zw8KHJRC<(Rhm zV}A%~)41UVS26?9aHeioGN$gVjqTjOxk#S{ zSkhmPmoTY`GFr9+0fG9ob4dAr1A~a8+n?#WUk6-Llf9;@c(>0qDCLVnkBzg7nt949 z{iwfKp}R1&v10IOT>>b9>$ratJ_xlxoA}D9N5uqJO0*X7-;$ISVQYPHwdQrAbotkK z1wYNu4oPtvd!C@Zi^Rwk5Q^0RChrVNcQ+N5ypfn=zMszgVI)FCnSO&hvB`pZ?dkkp zmhH^=AxfL+StKX~D@%Auu}vqi?3<*HJs9VrLe8z658+RdzQB*~4 zRql9~e2m~9afzaEN=CT5bc_n2>AuQ^jIL+HFl_QIsE{i)q^XK~vU~(&lXDsPTE$9|R9M#(8b9pS3^G>13 zW{7KRI#6)55c7WI!+%DjUm_PJ51UjpHwWakf2sB#U)bybJU?NtgJ!mLzl2b&nt_TP zX8IfkQzdD@PR5nsh*e7w;_tAy!6~P zirr=W$f}Q}YE;>(L+XY97y?#0{ZQ|C|A7*3s4UBqI4VJgjbxM~Q|gqJ8US2c*=UqW zp8jG;U-PWDbMxt{c_aGvbv*!jjFa+$9gSy=>P(9(iiT9I8I{pi=@cv!*%={T8$U0u(fk2wjCDTG#{6`siLZdtv3Fm=uwaM&mI+{)nSo307n3T&1d zrdA?am(Xfyi^#go2Q+<2b7~C7vu+Z=%8wQw!-@LSX6uh3DgIq&jZtv2x5GaKL%Xo9woOk$v{U(h<8JLfLqh z;tx(;glb6Ru_ONhYsBn)gwl&CW+!ggv|xx~oCi`dt}}&j*AuH6P5hz3Jas6!Ug7WA z6&K?=_y)1DdVX|afU+S%)=kgPSXsS*s$eWs%=|hZB6kP$U{0OhF+T{)~dvA8oQi$M(z2_B)~l&$Y>#E-uBn?mc^J}cvD zc4+iKhAvEWmjYv8kaP9MvE$pTq_}7M*kuESgF;%UU0vdLTySy(SQ0Nua^z%o5=iUZM{V0Kz+G#RH>_Sg zZ7N8S(Lv7%A=1;YY*%e~)!oIx>=}Eb|Ld4>#;cD*3X+*u1NYMd#Al~3bW($qGA_7? z%@_8b)H0WCw?vet^zqwOQOl?c70bmA)+k&lP2wsWA~$up;?DH8-aI9;E{Y&rK_?0f zsQtO4PlFE+jc2Q9xWzp9jhG!20UQ^?rYcADtmROEv1S--dAxRc-(rjZP8j)RDVD$ zw#ysKt4+_-{YgJgqJ!MV$Zx!LJ8(tWA7e)-`nYohRygcDm`TdUV{%Wj|>$&$pmO8Ys9A1xW7a_`= z#~%3yPxY{-lWj4y_Uu3F)s)WRemsI(M4cWZGID50nkput=epTQ(y#m%I z;Kfr7Z1lqmb9`{$ZoFY=|Gm{H*1A>YbD}sJCL`kvZ*$QE?l^9W{9o$PJ6*Ml$+*&(1*0`D9iAr3%&tGHN3l zA#;#Uxrgmq7d$T|{B(D*Ttbo))4g-qofey}W|`_{d?C0&Jy6}N5aG*^);?qYA$7#O z@&RP10bd#3Yu3H5=cOryzx+8Am=46D+up#Etc2$$5fJT40~B0B01{m@KCnLfg@z{UQt!the_Q8;=fK3_ZL%+ChqEsGPH8a zPOsg_E^3BF9Jl3cSzmEx+c+RD-y_fjR%f={A+_D2Da>t%If{YGNg$S+J+%k;m2(?Y z>{Nt=M0V_{J&Z2-8Zib)N^b_dj`)+m4KiYe4NsC{ZO!D^5v`5~Hqv^2=~(A5PsAod z4x|`=Zy(qto|P14@2{D7`xckicL>Uoz83^Gx#n0y?%0j<(42FL=y`=TWQ>ayB^-n6 zSK4!?e@Cy3!u0&%Su4xiTuN0#J_qnl-;W9AQ-YXkG0Pe-h~nJoLIVZmzxywoJOka| zICn8fXq2#QR2gmCh3zNMjQ*^c+e50i?se+8(4xKwmzr8Hb})4H2uJw230 zE>D&+Y+|R<6Sa83n2~vMP{Km1gq@`+<)}E?xJJ)eP_ndHLVvM*E0rkh`?bT zh6~=RzvluN-QNBtOjT(%REScL#<74~>$14r>$X!VR#d0eN$2iZ+kjv=+s8UEz@AFw zG4UVM8ej;qpk1s|rS61aDok{aM2UfrcB0eAt;)^4E;Kvl1;CJ}HN?LU#3%l65x{#~ zqk}K`q(C0Rca+Ch!P2yG6qIH4oscMu_o_^kVUXEp{>iJPqic@i<^J%KZB|>UC@74e zS5Dk?qDMfGD0^V8Va zZVmbYB6A=?2{H8=z_0DPBN?^ee8Om4?z!!j`pdpMzuGoyDW2X(K~742ytu{a{h+^* zuj)6$_uU#k*$ccIVJpw-U>cQzApC}yN^DCLtog5xgl;yEEiu!ZmL6_=`=~3q@^SXl zRLiPp6KIkpayhva{28_AGiD9tqy!M^T5ltSk$)S0i%Z?JJ+V4zS3JYv4Pi<VXEh>JJ_F`+1z|mbCjbmhB@yhfOlaghi?4`Z zKlzH3gO>NDMZuKL3vPW530<Z^ld{{sXgMrUE@r-`()Ub{EEGTb&68+qu->UD*#S1+dg>>SA6 znRHy}%L^!w;vD-~eHj>?#>5L%LRg4Ut3F^p<#mZ6Tkt*lTpG)iC){9ADqrG^6B3{Z zm%uX}WtrXrmq#w*5F`y7&kemOvMuNC=q~u_gvKXXNT@ImL^YWNg(aG*nLBE72_GVf zZOPisBSOG^m)wrgJf+Br8Mk!mew;eBj1h)D8bwJ;I?@GkWjb>&>c%@Y7DX*s+VI@u zEvc{>^-kxY_vH<9&BqO42D88-Fbt~5yWfX%nb(;Eb$bT=eq2~EIdHSN2^*QTa=7AB zw=AnEa|;*J3dk#py#EtPTM`zD*U0p(kvfwNco8SE@~L#fYQQ_)ecaT>GT@{W+oC9H z05zQ6Qkzxb>GNyxGzHCn7LgO5!A7qB_8b-hKs@&US3eTq*02i`Id@kc=s|QTybd9A z!s(ENlXkim>qPx+ZSt~4qkdpkfQ1Se5e~}5Q9LFDSl;%}_8|!6rAmN6_n^n}U$eZ2 z%-gzQS+RI3r^}J`%~JCXH4+4Zf1dJT3-NFrND$kY?F97v5``W8Dnpl_wdKg5Gzq1< zw=)!fa~fOl_v3L;aV!G&N~|LqXsFD`_&Nj5+BLuRfDQc=R-kpgh)#!> z!e5JIE@_&mTK`glR?vrKHGSC6W`Qi_MEeMumC(~Fwp0efU>#O1;=2%Yo$8fgVtvJYRa2RT5z^(+(p-d z!0DNHHj)X@mckDu$yU#N*Z!oUq$))Tm5x`i8CtI_pzFv7VdWZ7#RPx@NDw=}pL>z; znoE}y?6^7dRmjQnL?q!B%}`sCE-8Eb`?UGfH>OH`#4saw8%r)h8!eZk=ce2*VLFTO zC&N~~?GyG_*W2x9KDL@(^xF#5wpV{>I)TfbU+%!IV0lLxsO+cXhi!{^y&?m3GTIfv z6SmGla>0-D5O=gahcul2UULr>u;KM{Y--7Mxhn8qS(fsO!tk9wmZR&&ISDp_89vT^ zB+_OsD8m8{<7UlDmOSacOpPgK3EorA|?=R7Y;I zrQ9$xxy_vVIJk%l!HUq6XHP+ss){IX=!ZS-B6G2SHyU$%%>NC7U z*OQ2!<7kZ5XBtxAUIN4?o{Pu_e)eFZ5`Ui=5qBoh9lIx2lKJTuQ! zC!l5a2B^{MXyHljhmy=6v&L|!5%je*I$?=;?2)9fgUHUfE3qo-V#uYS9y`Hy|)0y}2P=%_x%@ zGv)_bc0E?4#$z}!-t;vcp3s@uT~CEO7)6|M;)i(FcU~rO6XQUgkt$5;Yy<;C$me_| zU1HwYPd04G<_Ylm?U2!kpdw;6m3HQaO1eu-#pd=l4*;X#-iys4j6+Wgw)`J0%S{jh zf&B$zVXm!{CT;0XufTWQq`1%nV(80#IxJ{6+y~E;x#$&)QzpKJ?{><{WR2DuNNGCZb5ZsHSdTjyZ{6=C6M8BBEqYu$<7643Ce(S6 zbN?a(EpMCAze`*Ho?Y6b%UwSvXU0AD?5#CJi?<^I2+lWH_uIg;KeSD-oZBp!ne&{Z zdBvaZvtc2WmeCvIOm4N?pnGHPDaH_io{oL|(A~FY*&)Lp>>T7P{Gxf8^)TE<#jI$( zjsM_lT+!gAfJWcR5rKKRN?%AB-p6az^;=yjA=a+C^nPFDme9o+;q^q6HL!N<^NrBR z>m#9A=C4yTZlh3COcgG0_r#lVjP}Ow394bOb&*o%WShy2$-&dT!fNbN-?hG$S|Djp zjbOS_xr!##I}a;RE`4}>!n%1dOYM>O)JJsjF?yq;1>2+$N) z$IkRm(J{_6_RDlEW?XYxo^bN{i`(!~TaD1{u2LhLa+u!!Gm3>f(-W2h$!kdeF>CVM z)uwP#29&_E@RJe?<7w^G#nSKX@{AVKCQEX7xJsT*msEu5Wgwf!WohgvlIu6ZVuE2OM&_wHq zr0mqQd0Y*z+5gNudX8+r8eZX`G|PHB3-3mTRa9*Hj(GZaoeUr9;>MgA9g;AG^;`tuvA?Y-T?VM(l*$z~pDYRL zws!6HqY-NsQAextAy%=Pz7znaT0IgZb!*#(o+>>+I)9X@ybc`y9Cg-~Ue9H7Oy!@QJJK5UwWH7!cuJalvWGbMDlN24#%g zzM;3Uc*#VV&ZE}jGPOcgj-Tkc2wRxynsuoQi%QJV3fr)m)&j#?!URc7uFeptqo4AZ z$#Y?%XsT$>%rz7*BOq z&DE@0)7i|KdQS|>Ln{5m*~ycG3|%%>umTeK)hKcBLKS@TX&3{u2c}ltm2x;J;wW!< z0n4J7e;jf6DBF}YFR>pi=|zQ0l6{-$I;alLiGgn+Co9tG06Y8@hSRs&$IvUszYX*@ z=$u`C7zCaFb&5BUjs=Z3ya;U{nIF8ChQ6~fd%pKzoMIn|H(eDsTA@3MP!#p>8Zz-2 zR`{|Fqvt!IPi$LE-8p&=dNQ5vjo>+)oqgSp=aRYTcMjDVTJDQx17Iums0UvMXmw|8 z{qpdBLSgc?(zx7#*!-2I4PgZ)0x>!c(%wXA5#q6>(0KuS}XPC5hM$TTCyrH4z(TLgK9HX zcHz+7>mXX>=HYB@AFkKHXH!hH<2*AA)tdg+uHG6x@TEu!=`}?v9Np`2n1x*hR_31T zhHUj+3Oq#*3R_pTK7B=R{wVgFQk|`ZsSL?1qt4X1Zq^k3%=S3tD_BiR)~~NB>|KWO z19Q`Q*FZ0tRvSQvbU%xIs@(9O#AvU0LVsKB6sT2j0qQ=b{SpmUPT5{ei+KgC{@hMt zZ><}?8)>38JAcq3T+G?#5tkJfQM_nIPXnMnL96H_?|K>M>B#I3uY3^zHw zc=;80(SBQ8@7;h@F3^oizEq?Zzy9G|B=&fSGYK6PF(Zq~2na9`@+k5R9}gn(Hb1DF z+C5`D?EX0nc1;&7qm8blG`@jZ+nP`6JYP$A5O<|a%d~)m=!(%q2wbR&#{ZL^CMTh9 z%i=^!MWFtz?&2d@-GDC3F@|bK4{T;NDn$E9GpF3+YjTz+5d6#6#fQVs|97>l!DQd4 zqsO$(>qeokebIH(*N?uPk8$$9v|S<00&1}}TTQM3-0zWAUFF|6B6Mm>y+_3Hl}-TU z<}(L-7}Y9`Y`kTn+dX@qx*YV;ZKHgl9F06?JN{>6a5v$rv5L#eS8d3g1Tu<-9isTM zT#|=i&^0ZpcvofMl|Y5i&IW%QOBXea-3-@g<>61R!b_KFvg_B_A0A_WBP%5JNW%8( zJgfc^wWy}i+!$)~^Y1sShx#`MKI2TX7hF|@1Udo0Mu~y=ph5?E%uAIDUEIzZo^Vr; zUzP4<2#&! zZU4svP$WQz1)Z4jXBn8hgH@~Ae~JSLg=HE!98g{cWt!kBZKtp^vDd0(FrO=<1;qIn z^zm2ISS+WkYM-f*V$VnM@OiN$a|4mgy~v}db{+}0%l*riK&ouD#wJKb6O!V zn7O4OpD3>JMST0yCz5mJg$y=?06WW-ywFVK2w@8HuK8 z{KT>5lPX|KXJ)P!vUhF(Aka%8B?2BT35m)d4ufO37wH%poWnq=VO!}SL}0Zn9gTz9 zmGOvU#fb{JJFkTfKkM>bv70S#WB5b7-b;f6QAqgQ8o`w>4OBthAwWgzYnQs9_n@3U z0Oh?Mm3kYnfF6&;{ckR>vY+Fxo+kV^UaR8Q2?iV8j8g&0A}X~AzWaxMfAENCNH_SJ zQo#RAFpvY%5iGD+NsSW8GsZf+KJcW;A1C;VKX^L^gSvY0Zk-0NaR3;1smkO+@V9FM z`g?A9*g}&Gs5iP2=OXw)$k1ZraOw$OJmY0;L+H}kUkTKlqQaqa(1272lunY3Wo5WP zBqpyNQaW~xO~YGA4X{dDIDe|Z;n$ySg#41RW5NOYIvMK4Iaq>1DtZ;0;ETrZhj)v2 z*d@!l)6Rr#nYR=3ST#^8l|!fU@d+lHq*X~)&X!(tbxe0DRO!{pn#56?D)oXqisR0` zQfW)5U;it)7%Hi?z0j&>5t`4J$U#ao#%oFq`EqK#SX9$#qEuFKT?ObT#xYP+jJvnD z$X3eCg>m`<=Su?tZHUAy<#V3P|E5je{9|zXw19AUxG@FXGEMgwvAe?j1YR?nAGkv2 z>Gx*4|9bL7!AAac$y3L4ujxzekp@~F>A?-2Y}vLfMxI@2@?07;t-BlraZ$&zhINYv ze|X@`@TH>yb1DH8e%QApAjtYx1?R?bq?2e1bF~0asWjf4h`wZcVBc}ao02ve@h~2@ zCI!iNC2CpF0)?K3R3H208$KFv zV6z;`#KT=%;)BHNDdQhX2@_{!89?p^PZCgY{GrXP&Fb*MnQgW(OrbcPCRj7#7_%EC zM(#$T`$%A&-YL|!DrT{>6y3$atw?dcFL9IIF zoR9Ib`-1-Y{LZ60)I94S)!X0iNLdqOw`zwnt=v&n1_dB36S&{h=)H9{vXyg)iviBjyL3LKmVVTSe)NZ;E z)M70yc<+(;ISBIUiiMio8&oMDZSGstqy`P3gZ~hkyNPhwG4tqRgA4cSyl}CzE_{ZU zB8TB*f7e9XQ91#*ly4tv6O0)vnW~&PEpQ&4kG8dF36Y_w#tbG)pKZ2ybX%r;M`L#+ zXyqRpR*wlw;WvW-9;Q{ITM-~^!6+lQ~rj$3VKmaf> zWMkH20000000BXpBp4?D{p?xZ`}vU@Q}*H2sxw_o%vqbv=f$`-(5eJyjI14F*@x+G zcN%!(0`H;JNTWUK8nMc_H3odL`-?#^Z*D?w$KKl~PL&mn`Tt!rta<43!fu*KRMduY zDQ(B~)#XSUuZwNuXfAIfc#=yq-ukfpm4Qj9H{f%whXL_dEu=*Y2No%3``#7-A11^x z(s2F3pqMtB8v8>MiTe0C!0^s|DL#LUh+qG_$1hCoL1atP11a=s`mm)fMAt*{1hu zx{na;Pm5L*eaY%6+(`JgKk`Pe>YU~kvew0uGDB^N0-m|E5Qg>ld8n=VvZ_nD=w`!A z+=Ns?1H&JAf>|Rx2TcM(H{P(eunfqEt_QNXKbbT>Zmt0#1`)-R^%*)GJe&0F%gPMY zK&x3R7~X@*ZPuDErpI@=E36O0nul zi62J?ENA#)R@`C|E5Xx5#C(Lit4TlANMDJGaPPZPv6CeE87M{K=2!UBDK;J7!c`}d zar}KGGOl!og5lYPtxYehi|+(MiN`m0G!tB+ zcpLb#S87r7e|@ts9?h3oCug8?%gHPB-+TEx9IAmhXXOEXp8LIJ3`+ICo`*h8jEmgG zkB$RJx$U*-Z=k{Ak{46bBUa~|cI=z&)tr^-e1zjdI?nfB4!+B2i-qQQ^3*pK+`@k4LeUR=rIvTDx{2;|wa|Ea$qsO;wOR?T zwXPo>>$Dndd*sle+nh3U_s3XO-gCjcm75pv`n4@<@DS=bmeZ~d+PKx%Io1nPo1We+ zOcbfmyVyO>)zAk_U9~Idhf2`ZABU4hzu$QBKp`sG(MWmzNx(PN_e{+xL+RJ_=^Dmm zGKilq00#8;H8{SI8-&r<1q3J(oQ+O^MHMB5UkgAgTT$UoLl>lp!8L)VUR_%|q$>~H z*!zy_2y#rW;Y@iPDo1pJXDZ-3@D z@XhVV0!4XrX8xUFoXT;aUw54^gf-Ku*mk5%R9(^C=Q9#;p{v&S3VRLj4d2)+G9wz= z71#OFI%Gd(jbNbjWJqBnjT_ZEa}{I6g2ITR)qeaaBoP9>JNB}#45S0?BE{(w7^^F_ zwIWsA5(h}Fcf67#MMxR?KgEz82wEy~2H^u(SLZ1LO|KG!eg)nAX_|r<>y-92Y0+rq zQ`B(W{)p`U8|+%t_mm%tgdn$qGxVeS&$gN_3dK5?7#y2O!L)(Ei70M<$SOYp@=uyG zh`EOVj_5sb9K4%)xXbOunVCcdvKoP6<@qiFHe<{!iWvSmj`Wn@2{t}8!a%l4$fvNz z5Pz9(%2m=VBiN86*{ufB|I1`E5O(n z=TxcxFT*n-tV&FsxpMq4w!|Hk2b`+joIm7=T(e50!gQ&`Qv3v5cwb$cw-^ z=Aglt_|vNA0$s!38`UVJ?sKgECbcSj^lFaAYE6Hzacr}j z3Ll<6M%~qC5JD0b1}CB1Bnql2MbZ|BgTD<>$vd%jh_grG$W3eQGvVq|(X;qt_S6tG z3GF5`ysMM7Sbg4)YFjJxYIA+FmY;|3fWBpdwIC5>gst!IP3A@LSpNvAkQOYqad=3{t z8}=9!wg4$I)h`1yMM?In=yHGgn5TM1S`%r$;vhd}FF1L3=P@+9M`65Kh~Zo0dDp%( z$sG!*aZVs2E7?wU(hNu^Y=~W63EulMs}|t~l0J%+T6fXpbi3;rNCI&-CmJ-i^7@FZ zNyjr{HH-{Y*-@FyK9))He~k|NlCFP@#h(AV;7!Xsug_?45cn<=^SUc#01$My0Qh8~(gM9m-xIU-#-!+o|7 z+Q|Am=)nr)jgYlIvnzQp5k%l4R?Hbw|Qgev8<>v^d6#YyR34RN%_a&;#$Zfy2LB;q&J=EUy)n1 z59FsEMhYc-C2)-#%a3H^`5urNo^jhzy?n5Sl35?F`q-@uRmG{DPFyU$T_|7?h~^Gi z-l<&PT8Lf|$-pqB>d2g}cguOvE<5d=A!oxpxkNU5$$4d9H>xc$id&61BcA{I;ms(R z^EWh_GHo)>rXJim;z+(AgWazVrCT!;Y5oI=x<-`Y6C=<};)%4wjnlxOt`BhOxtUj) z3@tAXh$&6p@pjtwThyG3y=aeq`;KV={~xwu4Z44{)dbx)JPP4Tg!u%H0o+_B!;{O5 zgLKJts-GOffB9EfK+NeiPaUlkVi;!TnP`n`20;fo)-(J%)2VDfba_a&V>HS6WaKib zQvSMim?lhx^!LzI?<7ube$e7ie5nGC3AS`r!NKmIC0!sfPrZ~|10F>rm)D7CN}`(wk<;Wy3|60*N{!Nxhg{)n%HTOKv*tuI^RjN06RzZ3=w>L zu<|1Cx*4sFU`D=b{O>M^+UN6&90m8z2iihCqvi7_LZM$<>Yqj3V0}{lSaT_=YVXhF z)zizk9v2KAg&&}YNu>v62n*iSs~^1>G{*>FzcTF2k!%nm;u!owqC_#hmfqEk6sk_I z5{=-y?Ac`Dq7SH1FC4S5TY`X#aM&VRa!zMutSfoik_Mpy35A!aK&=Wi7USCm(+Y|oI0LJ=kM?I zcC^|gqFt)GfLJPfq@}e=e9TjeFR|eI%-3N26+Upo2ZBa>?=+Lmrir5MIc;i0)Vwh$1XG>?gN$V=eR8nf68pUmM3Vm*4y>A#YhO@&S zm*c}b%7m^P>H&&(fn&_Dvfa{&%0dZj(ZtX(Fg8j_JL$yn3UqS>7YaSozFePj`6 zol2xga67GCVhr1RP?%>9w#pHybeKc$JbK0F5Nejq?tDVL!(S}!S_ZtX%oaYR*yTTw z@Rq<#Qh60NWgqj_fMZj~X7^x6hI};5vT9WY{^Gg}?DD}CK%%iRb7?2(!(9WIu<>8Fp3?eMvn1F`!+5C)L1 z6t~r-vw|l)M0CYc2@ShL&);9>QV}9!Uv65_&b~qzr^;JM3ia^<{XJe-n2#2NV!83i_x;@s0O6A11(tD$YlJ$>G)I8{b~ts zq%i(DJQRUY-&p;njgupee3UOn=1C8^wdJX3BVL#rKhAT9vqkH@*JerXx zCwD_SWASl3=x+!=(-Dx>nd4Ecq$c;Vy&KHbV=^)?!{A%z^DBIkh?_E{3W}Ij+K;n; zJ_b(Zkm}O7%wM$WJpyPNBit)?E#OjRSY!dzLPg|bpU1)V6zmYtZjkVRu1_Mi-pMC> zk$#Vq@aoCUS&9*}4v|^^M&F6Ae^wibT)-%NlD$I-n7STJ*H92w+se-(s1^pq$|JCF(Q#+tU`sIYa8H*t`{e6; zl@oEHjj1~^bS>JQ0bAVb=}YeNagj{${eEQc=fWmq@ARodrtjqd3NXDnl-}w$`D0dT zanG`8E)Wa>qhYcG@_V{(zoziXL?&09;qVA9ySj_qqX#R3mnCOI3lJ9BN%OrlufJf^uVIO12wa7_{$F^hQ{m?tB0)Ai!xu49rUk9% z8yip5rSF}(*G-sZ#FpO!C&}tM!;KHLrEI1y%Ngu}{o?PJO|^ zNsGOH$os}w`l6pd8e{7zaxgffMe`kkBhlCYl+EVfP2ZA42aqSkw_TC#w~uE7%!+A3I4zX+KqkVdG^`CxkpxNq)8mGN-6P}sJZ*^AGXxabU8jg@9;}XBo{$>Tkm50xv4}?&Bgk&}3Uu>NJ zl{bbiBtaVaW3oJG7-J1U{Ac_w_^%$MPOZFk0Ue%`XoJ0uh-U#5KOze%ivf%pLR?b4 zG0WPDz;q`=qwtmnoJ!wB&2~A$d2Upam?)z}9Rte>u^V zJaHwzVUwgU&(4bipQla{^t^WNUxryODw7CvnzJd}zbCUg_LN>hE=|Naf_u^N64%MB zfsn^BG>MevzEY2UtIAubxT`-9Qi#d*92Uu=3>Pnx4ei=EW{MY6YW6OlP#D^^|3xx9 z_anvKR4$|BT_E}yUc){ZbD<=W*6YyAAQ&TFZK|)P+a4a(=X=$H3|a8F`W!K%r7xoc zP1|`+Lqa#w>efUSdxHD~oSWoIE?f`6!+hhBri5sz9Got1MJr1aa@M&6R17wLefR>D z@&hz5`SxiVVt%1ezA-1egV-%9vX0>^Y`3h_@d}rDtXksY5R>kpvNUnlhYPxs(ymNf z-3frc7`mL%2=kxV^NN=8J7>Z5>BnDw+Gb{H*Z6W%~Wbz=ra~4{=D}+l$)JtgbOfeg^x|;r(s{Dkke5Easyp zRI5S7Sz+UokC6MZW@#m~t5}s<1{V~DaiZ{DOy=2SNFOP~wm>7wp+y)~LpI+4tqF!& zR@r%Sh*Np!0IoZ#n?2VfsJYgqOf<&OXufAWB&KM4J8Y5qUM_DmQY1V{E^T zADI4LZ45`0OS5j{b`1#pz^RcRC1;H)NN$5!&=mGnR4+Mrj;&OM4VEpgno zmq!!N@70=P{KL;4ig576;R23JN1M`_^c3sp%t#*HJoH_$3afLuWFr{t&mm?Hb;B5i zBK_{sbA%O>v;=GJX`iu|e$P?5C&iHOK)MsPFExU9ZooPQBW{YPk8$DqlH_2e0abB< zFApI^%5RmrwmSr$X;D{0_TdXyZ`J2b0Ffu_Db329V&0%Z6}K2BOc!TXXpZ^-R9+s( zY+^EUpP&YkRUY#Kw2JUAc@3fy%Vx@jiA8f{ewKGP;W4q_tB%T6bXXJ&EJ*-vg*o84 z!H*X(o#&eV4h~JAmGBXoq(?J^tsEB% z8jbN3$G=iId1JN2M0am&rpp3%@IiiP`Uc*S5dooPOPiib81772F1095f2O+CBjDj$lt~%Z6k$XN^h3$8AQeM#H$vI#}^YH13r;3$HxjxI^rGR6Xov_TR z$b&_b=@ru6twj#Rp-EG*ALPRp-^ohZ=-zE9E#L?->TEMFaP(lCC)XPd#C(qIHihxI z{SrqI$L=jn>RM)8Q~O$;=$l+YBdU z30ed0M&kVZ5QDX2ARn)``TyTm3Bi(7x6%p&gVmf%nz;m&EYz0c?H~O-NOFAcR128O zI?oh63E?EP-hj{e1-(8KZ$$;V1r2!261=NIo&*_QU-duG>pLR`P0DcyURjgkcy2Oa z>Of{MXF?wR+a+y1CG?faj#cW#Kxla9w-nd)At)y+h9X)}hatUhF}tL`EIBOXY(G+Z zMgJuCsS7Ndq2COAH@uZn&=&C3o6rbDr<@N%AkJR@$2qh@hCybLjEt2~ zsG7Nsrl?#$$lcKG-+`x5%81_%Dw|b!Q=FnZCU_qqc}?{_sB-2JB1vow*O-Hf_&X(% z7HB2hM&Syx_8UMgGhYmU&K*#EoKhlWRg%Jc;%Pqdcf+jZZoiyR2acR0Y{J%`GcZwO zRlIT>s%h6-;XT1sEV|MBgb0CuSe$ONiE053x#uJ#65h+Ws72Dvbfdmc9&X$ z{Z%@w+)J8WnUbknteJifFID4m6}yYts%h%;S#va(V0(%9!;7J(4fAN{W``b8qe{oK z(pRg3-a}tSsbXXw)?ckSEL`Yv`9FRYT0KTjG8taEO8cS7Io$jsee>C0R%EXDsM^1Z z8kh9yH$&2C%zdvGUAE2~eT91;B-`9e4bi_8BE4Yy+hWFX1n=BXhyV<`okJg|5|X>Z zA_wrcB<+lM6%oa;183OrO$)ASu&cM(2KL?h2WKRj*Ju2ng+QjVuOCVvU8NK8n){vYES9sS!*QVK!Od2oo!;Y(#LK zJ3jTq1r091O@34E%DB3MA{nNOLN8JJZNVLU?i=7VX-Me(UE5^|-oA?m%CRQucIWbf z3Gq`|m_IhU0N=l$Y9^@xn}CTNfU{KPx1~h&0%VVPsDo)?(cWUYU=lY3Ai@0xYiRVR zLWPh?`^)LNEkBB#6of2NWq{?vmh-p>y=tmj&Xt*{N^T6TU(voFOfA9x;u|xLuR7<6 z#Ku&Ao->5B$tbequ^;td7kqlSt|Lx~ym{CY>r7liar{RhAIS3gHNWz$xo3TX5)JY@ z&)1^+G!=$om^aEK$M1d9^VdInR$TS2BW}f@S8avIM|4+>=bO7^9OKy)>kdrhulB3AYWv5cDasGdQs zRwzRuk+4EaSOeES=HF_c(`{6@yonvX#U5u)42bMtj@OKZ6q8|y zGjD?x8u-|~*ph@0Mvb=)Y52aW&;n#ZXwu|s&F*+@RUEsXduR%=zu|25s4v~j*aj1T z0KKZS#l>mKHq4vKe%Y*?p(f=mVfz&7FsG`&wr2JZS50_fIdtp?)jxl|MTjGSr4uk5 zV)VUE2gsYUll0MlNAAC?SrO{Udps0cRS3dZm>NG0(*m{SM?=5UyFUKgu&-jAyf%Ep z8~>D|DGaj5!#s81nU`1OSSI$CKS&iq{KKP{WaIB{FS&PTr zcn7~vm*U$(IjnHxK6mawAO3gv;y2x_dqsfs-PbnP4iO@c=mgm=4=fs2$>q!tU=7a zM|tUmaqgSFpTst<{V@TYxysrUZ!i)`0Ap=jm4Wpl*PigQif2)OKU8KCB{NBjo#236 z-K|Fhdmq%0AV%XWn#u$sY2!nVD!_}ZA^u$julL@OnJkzQw+FOG6SSeCL+By{Tyawe z3U{#085j^r2|ZapD;?aOdCVGnED+0IGMa|501l~$$j%jeJ+DTjg;|&UhG=~`Orh=R zC=_rb^OgE~*L`2;wLPZtl*#dr0441_#uY(72%3QtE5q+uD-{gB(x zENYOnxlZ@exq4gP;m1>eD|~xaB|=cUAQlspz3hXjeqt;y zkjDy?PjnA+HelYS34kt811^ngAvbj0)1)b(~W-(Z7v1cR3&Vm#6c$BBN0;N)$t|8dM$bXXQp65_qvDar?$o&` zp)0YskhCUoI}qvHDOshUa5{MQ!|FEOdHFx$X*uJzhVd<9yWASwE4fg7wx z@A1p9|CnWOib}i31ET7=!#`ACB^&-y{PaU5HbEw{AFS5Bjb2#nep$B7SkU*q1OgNQ z#=L850e8uR4G@|z3i7xU%Uy(kqR7R4xaVRw`kJsk2g&r?(;imuCBuyXk1_FGEV>Cz_pfW7;|E zW35FBrV2=+HK6NrwsCd$>X+3tL?W%qKHVcu(W7@sfT0`-1x<;!i-QU!TC0B{>XYcm z0Oj0$0>r(b-ja*Bsu*zLi+7zpb?TIf4FUR$8^Xg{12ItAng!^thUy*{qXtabk1 zvFc+atXJg+jdPdiwEm+WbmCiYP7H=9ZHrMaf>oY+Jzhy8B!y}epFJ4DFOi@wV8_qv zrH`}kzU*70NTr^~x0pJEtV%F^%s=W^tY+)byEW8KV^j8Y7};M(z9IzBloN_koDgWdM0k z7V2mxp{1(_2PMC0qGF-YI z7;fQUeAh)OkO9|#8T10ci(`=U4860`M~1I~v0!Vv5zl&=3!&aF^)QHkj1qi8jo^U| z&&>GUb1vzQ|NM?@)(C;TJy&by-BS+6djHLf;n2$IzQvUGX{KK1%imk{-M5@C2WMM! zNM&LMYtqdEvftnOSn?uE9Oh2R~q&Woph+4~UJJeNvn#`B$EHC?o=MbF~7*=jEp>4zqN87wJA zjrErx2omWaiMe`T1i65ZUu9?8lSPXRsV-pnV?ddu>2ZQQuQY2}_AKO$kp4vbF*%&( zfqL5f$_*24`#uyT@;F7Njk-X9TR61C3P$(xD2x!VZfuN8DEYM03Mw6oyewI4za1C& zwXdy>-Xk>tQ7il+Oi2RpZukV4U%fBYqttVG?-_d|)5NYsExFrTD|&Uos@3n@7Y-9d zTqP|}-06h91v<0u8hhq@{ZSW7J{cOf_D__0s_<&h@$abdgz#+Cnuo4cSz;*XJ;^^+ z{NJigem0@PY>{WyMEKY%HucO<1xoyN1-)0P)_w#Jre7mG_kPFCoauPuIElL1sMM{} z8=;M=URrC(w!P~VX-s@_14XaRCZPVAr(Fo*6!<7b=L}}j_%VKwzN8k^$$df-;?VTWscaOh`soU?oHLYyV`Do*3-N#!@vt95cgQ0;nN}WIg!#f@Vn>*M9{O1Mwt2k3ib4UfJ9=4{mK;iZ*an*8y|dRELrtX-9+Yf)M72-$lL<0^i&pX>8Qf3L@N2BLMqV3vv*0Ke+`q;3t;DR+ z3KO3N$Cdunv*u3RV#?>~tIuif3I**Bo#H>j>ApK5sN*?{fOL(%gNzI{XP^s>O)I>u z1||Fv{M#A@t3mU$_=VItR|>-TF%-z#?+@Y?(IE@!hQ4D}Eb+SpJTcC~g7;GP z=SHBpk}DIxzE>x)fKO$(YtCL*{{obnWp z=$V@G0f-1TI*1<1utKBA@*+nczo=liLe^}`7%w6!QO*Wl25SRYH@xPhM5o(9NeWzg z>3OeueDCK}k@%>fn8*6n3o!B!E0jU*jWU9vChJ4XGjW18Rs)*aQy_A6oji6GG$5kr zfeLeM<;PiDI+=|zL7_W$<5d)L44qj&lPJ=*8=U%C(yIg9i*AA1=>B=F|0E4t)3WB-E{P*|xTD z_uK)=Xl2~YR`u|h_B|Nk6HT%A^gOYa*6+VH@u5pioC#l1&wDSyff@7zbFV>iKFUNs z!s_Y$n?P`$^8Y3u#Pd&8SBzY)NQ<<}UD5wPE^nr>3`euP?1y~_bzB8$Wzt{_OHuF2 zM6$_1iALabw6)2P#G^o_sr>E6(UF}dp2FGrXx)zRzKVEV4Qsw9; z$kg1Fi8ilhCdqgS_0F|+VtLqwAkf(fZT`2md>7eC`t58vwbaOhp27Nd?Lh@Y$p@%( z*ICKs)utwnqSDK_j)a-E^IE%T2 zA3ok)DVp`!&X}_lDnz^^)Dv+4<{`GX^K+qeHXE7DRT}Cb6nZ+_sU^B3O{~ctQH`SJ zAQN{eP|#169VJiN#%^_@?RJHeH$7PXnurBvN(>vH@$b$0}4rzU*s>@VQV`^Om{r-2}-(+JTdId*qIp4Ej4ez#TU!%@e zp%o)i=^3Lz+5ilydI0p0MvjB?nQ$2RZUqPB;UdjW)T_V1kx?wjpkr6$g?U$%l}n*+ zRz-Q01u9)jDet0+`loR>d5l(`KcLzCLb@#L5${Q{PVgL`wmt}x%$dOE^#NvdH%ko3 z^mnfMSow(eKkyX#9?MZrL<&=aNF!)P-(z_^!r?TNLf+{}y#Hvx z#7XzmLym0S5TSMlwS)a41T3VS$FCnegOU98m>`{}@8FG8vPbU*#K%{qL?+JzGswMY zFcusxYrpBHqB(rk=$V4w>CUZqSd>bv&vgDB#8<$AD7nGnp?|Br?;s2kc&v85?3=^* zRIyjGrVumedC+ahc?14y-(ZDy@=G#Nuy`jG@bPJIsV=cb44AUlPSOO!pFA(DJSiK<99- znEe-)2M*ONL&qCC=q2gUGa}nBH;^v&xsekECQoPqUAN*az>2l2r~ z4X=IvVce160dde!VCChxMd{cgSIPJAJ+1E6%J?^Wsefm{SSCH=!ehy6 zk0)QmjBj*|&$UtS$|Y2S)cE6lxq>LwCKaEU@Gu>@ZGT*i4GO@uZJaQ!6LW|XSktSL z!bKP9KZ=k8)Ls=kZmEF@RssYtJ^LtA)nh$B@&e#oKM{m_=A zOM6Rt{h$MK;Dz*j&xMex^9R}Lz4Y%%C{zvDcR#&YXRXh-k=-`@ZZZq;yX=7gZs_T7 zg@W5dySmZh@8f=<_|<pR zYI*md8MkbC>#CMlEJ9#Bidz?O-siBoIb!;|F)wMOq1Mjub^drFO}M^cZbeEKl`RkL*Tj^be#wt^u9y_3!*xuBR`j=Yaaud)&l1L#6gd z)QP3UG9xZwFfoE_QNEH*$OQiq9eV6)iRIqt%Wc_TIBCL!&>GFYfqPlpAG&Zpbzo7` z%~yh9(yI?#QA=}b^y#=L0+Kb-727A+sf6lwj3p<*#sdyHW`L0_Rngq4!4CA(8U?)D z*SrF~sOgpePR9^r1HX)Ej@ev?^5Z%kw?A>`f8~chlu?HAonp|4dew?O-oZcGJXhF} zvSstGx_L&DhW5oeqyHESTm6v%t{Eebe2yuuVK&oiRO{n^%qR6*L`-kFgw6hqQnycV zn)+N&+)3KJ<=%%n`q_DOuBWsQ9%@hOe3zgiW&|ZK4OnC?tEj_jv=ROU$1+=&@HE0- zbUNRoqKG!&#Tt<|pt1?5^6P-_D~v}izlk3bvB1MG{J{kG4V7&UxLX`948_YyImguV z8{9%wFjW^#eZh8q*zd@atGT%wY}6FBz~BrRMF>K7um7Gx(|X5maPo&5I3Gkly4vb^ z32nE1=N7M+T;I6s_tl8=nP##7mq@uh291q8*Ge=Uk?rznL>A{mkU^BriKH;^Vr@V} z?<{?7s`(itfLV+L#!yHG^_P}%3MAOTlJd4P#C{iuXC!I8#(scMT9k!FK*7p;GEt?s zr7Va+v0~D7LHv#orD^&5AGA`QKQq5L;)_CUE`;j$MfwL?)~SC6r<>l^G1>yA^{WW9 ztCwe^WMn!xP?`)rVWxD_&4LQ4n}Fbt9#qFZnEj z!Eq;dz^Rsfykvb@UsVkBv=JrxfZTU5tYYJ|Q6_x0Su;ClCH)o0A0;d&kk>{qL}jjU zzMzrkmg)dHf5oKjqaL1E#*V^o@RgwLh zX0vA$U4MRYv<3y=gbUB8Wj|+qOF4&li&pnxGYsg0OV`Fq$yUNu;d@Ve&12p9mg2E3 zdsqtk-b2UwcK&UFq5b4H5>?!3Z2OznFO|5Hkk@v+tgH1~fX_{KICt(@m@lseE?|Jn zJl~(N^uEKJ>X4h0tt7>Pi}c8~&XG_4WnB*3jGk?w7KJam(ewaJkC8WA8|qQ|h7~xv zgk(e7VMQW!YtywOS#{r#zzSF6n9=DzB=DyuR^!JeUd`XZMvCO$eXk%t*Su zgyHugNun*R(vy!C4NBCvc*oG@suTvkczJp_S_QLH_Fcmd2@~V{;}LZpR|H`%VX6l} z5R+LecCmZOLHTTfu{d-f8^*(LVv5Zncf*cgZ_Jr+CgM$gZpJx&^F5%3XVs?j5Q!o3 zvtgPS{`5f?;@B=5tLWU1us+L8QvkGVLJ?6EyTFLB-vS5xz}mylg)$+`B{$dBv9ZY= zNK=XouupxKKTOmQ-?!^%8@APM?f2)z_F*>V^+<&=X(}6+y`Zk(otc}G5wO}>8XE~@ z36}`)(NVI={Tz;T76V`8!j|1R#VGI(EfYD?hG)+SNz>r)NM$-Ho1oad!=iv&W zFCdnGv8H;>Do_-kajY$U(%P>P2Gmv}oX_K&U`aoqZ8)eg%45jmvsk6ng2Ryoji00W z5R$&2U=LihR_DL2V6Eg&WUzKR4Nb;B997PF3a;IG)T>9~9xOi*nn>B_mJE+uxoShS7L>~mDleKHnSN;{tFLJvk!8Mv(WiuP4hZ$7@$BjDsx+~uUy8x4IMUhbU z_Vx~Oay;nJ+2bKc0P6yb$nnJOASc~yji%MBigDUg7Cg|~jWaK0&E+;qH5FPiHTqll z{0(*NOrqf(5Mn=(IF;LMy49Q`)n3NQv7(^+L8!9vpfQt|mnw_sx$S0ja|GSNp&q8_ z>M4CTbgi;K#2|{r#TG|n_#C$H8)zYBB?iAy(^O?_%c#n>EqQ@*(icr2=M?J1;lF%Z z4Kt#YlSLx_A|T(wR`%eL^b^=8l7+MO`GSMsP4^F6~GU)ObqmNWFp$ZYjBdrl}_pj71N3_R`XhEf}zjpQm$^sR1#CNbr+Kp_;3_6lGhAefk+PKwt-Pt zz*FbRTmrN5$G-34*|wrK+*bY5yz5!weQwNL%ec>D>y>gC&-;z;J_ewPf{^XtRKrEK zU`zG4yAMByTams$c5vSn?>nok18V@La708i5^P6r1YQ^wAk4L9a3`y-=_|rH$ZR70 zj4@xgwrV-4^IcDw&P^6u{qaU-J#FW;a=LU122B;N?*}7n>>Br{V0etr>rax>SKyvB zA)tVp41K&Gw|58s6XL#EBxhLKQ&p7qJdXrxA;F-|?DTB~s7+IPmu&91yp72!H3(GZ zZ(nZ*ER{aSXW=5kHl3(}A6i?3QU+#2u7JRXH}skd3npR0qa{b9{F0vhWr|tFv91Gs zn|3{NvMVhlR(*{Hxd=yG^(XO2T6phEDF6>ILf?66hYE1s>2w4ywN1iqThOCX;ti_R z_GwoYi!ChN+my1A5|la5h1N02+TG4X?5GvRO?B+JUO=~vIKIPh7ic6Q=zdu&w3R8w zm!kIl;SR4Pf|=cvBQt6D&xi=h2iRLGwCYSl9~nuVO>|x-h`ikiGL-O#1ZW@qZ|QBL z{(i^Y{-T*6gU@(mh6goXIjpXJVP`jRjbbgLB`asKbyJ!>n!1g{6j`usa@ZS0Agtz? z@Q=$|-&5sKESG?L5GB;!dy}lj*9y$Xp@5A!8i@)Uk=xj?b`CC9)O-Pn1JUlw#$qYN zx_vK=S&5vBo=lAjvxF*>z@*ambfq zMF2o;9JvyYIwp`8FRhsIZmn}xTYa8GIrsj7+uMANSoFqRU`eAPJ&20M|KHB@k2;MA zqNRb@fMT)N(JA;fNlic@?H5$;H^;xYtpbs((#&4$g12T16EI~sV|M?>A;RjVA`6nc z>PM(tU_i0|%5~_*+G#E2bkMQy;f=8}N=&3Q#9Bj1{sVPyUwnZ#H{MCcZ}U& z32EYzDyBq!p`57;lxe#bL2*SqAu}ruN&ec&dj1>kn2gKb3Mka1g;c?R2y&1%^Grxb zR`!!;EkX*Ds087Q{q~tS(789UJOh7hf?$PxVXHM+o?hIy*6j1*eqqsqSG#GL&~q{i z|N7_%&jbNam;6Cf2t7T+tJYkqKStHbj7ON2@B4JemqGael}()}g*5wP_ccvJjPPPj znpgE)1|(U7#Da-vUyhpUb@4}hnFW@x3fj{HShDm7RTvLnra9PrjeB5*qSJ$CQ);<(Yu--|5V!A`Xc6Rwy9~PzJu_cIt7)V%5j%^*esA$4 z4(@^U z^5j^uU}NBl!-#Sc+$3-?Q~fVM91LM=_8PrKVNN=7KrogTwLpr&Jj*qY#|TiJ07KrT zc1`Ncb%2WdoBv3g+6^@JSp z6~-%zjf_C1Locod^{+)C^U2;=Tppi7l*`umx$7pIEo4iG6}L)_2lv9R)$ssvCGoWZ zJ5^?<>?H^l-)S+vN}K&X|I77ft1Z^$pE=JNia-WD10cPU_oTH6#CSPom>B!{ z8K8Q?&~5c9^C6%oQp!KkKR8_K(5doH#bPkK)U~y*bI#m%D74Vb#BM9~Pb2C5r0Oi` zXv&H|2KFO)<)<0YH&*Ktpr6d3EcYBwQguHh2TMPPL*_ToFlo|TNK3})HF|qd5T4@r z;LNOhH9!C-W?kDHS_nP*uWGJv_klF6c3_r6N}kbzrCh_oL8R(?0G%`XTq%*C!z8pz z)tLA|>8ECTR8n~fpckat?tp)ulwr>&)M;oiJ?X%tFE3F-P-Ll7R$heM{I<#SyU;LU z5wyX4Lqufx1B*Td^5P<$n$ijrr3<$%@b#9=JlH^N-;laklU2{$hG)?L$f^mV-b^R5 zQz>lsB3Hx%yV6m;@QB^9I;$p=OtF;N7Qemq6*`>+KIMKX$0TCShK`S_CWD(5`b9YG zHc*CJ`U5VSUV5`jE&(ee*|yeB8nHntG~yx|1LOfrpKePI$U!#^jhHmGy`N+_;UM#d za1nQBc&)S)EDOuV+989+Ujk zdnoby$m(0iWCYKNE?U zoeecg2?XSSMkXTY(!rR48h4QHS?ouGCqFX#1nO*B-sC3v#MxVJy~%q?8VWtaMX-h) z&7ca~qNh@i@e)K~YH{F~cczGvs?UIE-Kc7t8$jh7($TT&CVFgEWL>ZwexSvLN&nCi zi)WKHY?Xf$0Sc=*FK|_i$FD^aufQ_wIf((2<){W?f)KuA0{OeaAuO+9fB%vu`*wc? zGQcl$20SVKVY8bIqs1=x0ftAsN!H3(ke@oi3nn={%oz8LR?BT3_Hv$x&J2VETt^kP zeRKypgoRfL$h_UffGIWC8e;v^-;TMsrh7T0@_n3M1FZ3TiGMhCk0e~S;okdCu{+yZ z1l(d+w6B;dEyeVih>}Dpqzhc!WRyzGH$cPZGsRIhw^ETdNV2_jx4sVP5i58~KN8+v zBPS=<@SLP%Hiqh-g*96`Y_%dhSvl8Bz@xQRt0!sWjX%>d^)c!FI}9791#;x5g@sZY zaOE>R)7KyaJF-^$tTB#4W2izZb|}sVM$mm^FS?-gUQH5BAVQpJYOT;z(`4usgv-sn z2|#T2ccCEc6-oD}QY1I=U)P{;So=A0|HkOzj+!IR!}t-QMcIrTcdL(*R3V}IHB`X$*ltG5P@jREx2@)1U!$&9 zp>}az>GcB*1vU^PgyG=cu)jMcgfmO&_;_q;4A&!QW;H^6u?5y5Y8@|f+0Q?cF5zSX zYQkcrqafh44ujwPI00F*%dY%}*ewD_|K{ zOILV4*IFF^UN+C|f33B;snHVeW1z>AP$yG!2gqxePB-Gd7`ekT9uUklM zJ;TYwG3FOg1ZS4+n%3V#9; z%sOyP2zK4B_1IVOAv49<(qaqa^#0w%Pg``QQ*k_i-H(f48NmFFInhAHpUKV#n5^_j z=3->0IniD`Lyig2sjlZmfU}%*s=(MEy{rpj{otgy|FODa|}w@|n%6r5Iuhwx?|aP^mW-$5JWF{81mIXbe|pX$A{b ztH&~$^>{RVg4o9lO`EE{7;<()Lj%hWxc&+f(E(R1ihZXhR1jIoUziEH$Kj1qx}pnp zqG}-ROXP)MQ2ivQzxWy&vz%F7%ZF}-m+g1*x|+2j4(EL!EH#aDjV5bO4sIrEWlOIt zax3h|7+xtuFN#_)c2}OweChZI9*D382}eJSfrs{F6eV$WGmzqT&nbiLm)J=u zu6=*oF)m978WIf;1u_U@e=k=xq(r^Aj^k(c6>6|cGOGrmN|TFOH&2YabXy~q21I4$ zSkLtD-J^?1?S25@M>OW&0*;w4jIvGl_lJC1$mGzIp9Q0gs%_=$6jeO!rIfbY%Kk1l_(sQJ2 zma!Mc=S#qVwQD!2DhGkO#UfwnKI!GYc8}z5^Qwf?3y^St&@$90l>7&U{?sWzc8nvt zRQ4DajMD=Pbf7j92_<1Xi%bAH5;klM)`XsQRCcnPz?; z%cq?svCqpOB80f8Fk|*HfgS%^(sJBL`ZJSOA?dx>tRohZwD3qKwyatd9Bz06zV{ZH#T zfy9T`?$&3PvJknx(a^YUR*j*;<2K`};u}SZ&*$IZ5Au(nH{CTe|Nem$RDY(-G4?ow zA=~hzZ7uf3d<`ya(}P(fjI$%PJ$L%R*6&CqZA+A_+r&jAGzu&BPP1c%+ zv&X{hAP^geq4x(P3w#9~&zvY&`t)>Fc|$ex)x(?UQ??2s?})Z;(G+!D zap*BNkjH5!A3Dje6E2ZlrP+{j{zL1|l5EoEZky3{yEM?vL;E0;+uV)tT{lX<(U7VW zpZoWc=6c`K0Hnk`We3xp@E6x{x&EfS7u{~e(1!DFPRw<<=6FwkeBZs$4qF~Q9YIK6 zmC*tCnrF=y!8rEiIFzk7y3D)b$A{0w@SXOJZ;&2Voz*qXpM1Jh-jHjH1?>CL9KkiU zL2R#=i`_KkmBfT*G-LhOCiyx=x<5XImGWi4)XzP^p*OE@8d5G$%kHs8<;rOhE0G8K zBmXVEbk=4YziS=9HkMR?5;DUcjJw%*-^*W`P0M-Z7jsfPKENd>LxV@m`s_r=J6;+Ucwcj(d*FG)i8h*<1G~pn1xW0f~!70>Y$#5wW%>~y1Is-o>&+zz< zahyP{{vSK4OAV;M35$E5lDx?0!rsXODWM-41oMKe!}d(~CQSNPwG(!i3>2|=tI#IJ|J-W z^RU{T3RXkhT3kiti(*dAI{mP9x)6dQTO$(Dp!x=!wUWH4O*)Io! z_R=A2@m9k8TtFwvZ&Zr7RH4}2YqG3c>F#msQQB5{SppHBjLda*X1HG$!=SYZaD1UF zUSs?qlj|nzOu8VB@9;~XSD#L(WL@4&5v0F=>?cxV;w%OZ3`G-6*IVBNph9DtV?m@$a?Ys2`)~r!XMcR9`Z`i0qr^b}tQOL<^rz_cu&{hlf103=yO&PGrq(+LME$29mPAak?e zS`@W+7c^DMIA!xyzjU{~(1gJ`oE}RCU-a1q8=p$qC#wV|9kB3pz!B>8>(VaBP9xlD z=xpTqv^eQQni}a?H#e|KhccAzX!@o}Z%G~>Jb4*^4IOX);_$l?ojdMgOV&-ATOHCJ zT3)A?5dVNr46Gv+(7aHlI}Gz@SZZMBR=l6;96V{j0pCYLT5|sjjU}5l+t1N~vCFdJ z41HM{>A$^olVBz*IvH_+D!Nbf&_mz;Y5*_oy!CQOvaD#^Xy;14|L^hy7ZwlA7ez;+TOK7#^w-vPQKBehfQFxIfvlxijZgoX$?~@kct>=Yh>(%0qQ+* zU5z^2jpY9s#o%WYLSmQw3%axY?UV9BIGN*=ux!dbbXv991+A@N*Qeaw__UUFD&zqg+X`6rLO>T> z>4)%9Vip8l)&dMdxT1}n89$^xqr6*mvALjJKb z*7Au|FY12P3?N>;N2?3el3d!w9+$nuO9l0zeDS|}1NUO|4~cu^WcQ={Tq*PzP6YA@ zEWc9nCq%ND-OZ@5I{PPIFLk)Jht=a1uXN~^5ma~@oCc|ZDOKSzsd$KN*sL)dIWO{3 z8WhwX){E{ZY^Z%?Ux}M95U@{I3#*-S4)g+J}V>rEb<}nYJBvs6+YcFg%owhXW{kzI` zR*S1ZQ*et><3yJp4&}3$80s7ip>)W1WH;$Rxc|8NCLv>r z`|OLz@GZ@TE|j`-F*EZpK){F8JpZxqI4z5MC>5;$*&MH|!z=$5x<~~$$8Jrg09Qb$ zzkIn%uP6ykTOE8M%XkP~$$ym@>i%egB*$j(b5!1_FyDmrfi3|*P%}JbtV<>92nJ0A zm`F>;`^MVl%iVvMe)v1S(4|%{gX)x&S}=QXj%C!gwFSUwwoN%PRe)%8q<4_$X`P4+ zk?9!PmY%rOwSf6+IVC3*xue%r`{4hXBp8HIZ&T?k0+sae4*dSmPb3bD?89>HRg=NA zVq^Y0wL{W(Eg%(iW!!H{S@R3yJRD#pI359|1S$1NnT{cqCTnq>Ku&iWGYIX2B&faq zMREi-Ds)de1e7w(>0PJaFaae0WfV2hGP^VNwBq%$38Ais;75%}6+*=Cv_`#I{2Rie zlz`6}DG^EtWz(Zj455-ED=GBx!Q5~^`w=YNb|A9<9n^!{)GVoMWSV z#xR>(%R7rI-2aOa@$77|D`$|MQ%F&vUQRgmA6XCV&8I!nn)w!G@-|>U`iElV7;OA- z)%ltB^@7JZg#sC5mF zDZUra`4;o1 zovqy7Hni>@HPaOo_|vou*3tFN0H813q|y1;aB9z)TYscZM1SX0X8Z!Snb{nZ+#w-i zeWPT+;SJnx3Z6A>HDGL@ZSVw{GgEi;oM#e{epb>&O$o@@`n5pU&DxZtWV~nObFCLN{r|B*f8_iQoOvkh zrPdSVxS?$l=U_3*%`cLEJPK)ovyPf^Tl(iYT7fHkdX2qc6p&WZ)QR5b^uu;lYcT{8 zGiQaPikr^F4lah7?-`yfiKtUoADeX@hhO!INoF(8L}fNLgEHPd`a-5)>1RI!C7MnT ziBVYyGa$=!RN*Rmhm)yoG0Tj5nUjG>J@(gcsTzBv7WqtCV{mZu+J^yBOhWIyhKHzb zqyHgGDfptGUPZR55@yGi5dnNtn9dAU)n!`>Q96BkGVHF+I?wX+d@0z(dkaYsP3b|T zGJvu*p!omG{-N~qVqiIRu_@W^U1|g?14y8fZ4Uh7|`{_Q7*2cQ4g)R@21sE@Gak=94y&hZqg856YG5*&97gTs+%wqvd7+|w%WO|3 zC)fV?UXF0^X$k)O)>}Ndo<1kNF34Pi=TO1Ys8MH zYD}>-M9yWqwq_%N6`^5Y%?jQ13u8asLB`V}3LiD-djqIB6GXeJPVDACA9f=2Wh22U zUuG`dlhk-Ay+ zeuX3hOZ#otqW`WmSw&W^2=ZF}bfYal4mswM!e|b(OU8L4xQluto8Ft7C48QN0q%&a zsRv!aLtQP@AP*84HGq39xUoXY*VawN(v@gR6cHPnABIu4MY&T8*sw<vRTGwv-GLL&)D(SY7?Uv zHjm>A5Dv-4r8&XrC`Lmw)x|!QH%h;@U+zcDLH^Z8d(7>!X`9e=*qO4n5wyhX$`x4` zfb9wi=VB7D@YuCnuqiBp$|sma+^X=}%?go@wStyQ90Zux7hsW#koZzM40S?HodS0V z0XY`ud2idtFV3b}lf)MBHsF`LFNDuJKZ#U>;eB|*@6+1r&~j?N-ou)djYH|7=zF{~ zHbrEHJEq$FL~y4C$9N>1?ApEIgIiW5gSfS;a|odynE}wm;2s%929MVAjKXKJ?xb$luO)nHk@9r&VGcNosD>QJj3@xMv)&p1_2(LpR{ zZ7ojkKco$rmXiz5r~%U$%UJ(6#Du87Xel-SM0Bx(MAL8vLA19VO~Lx0fVkQsywn8* zpq&TWN&Qd1x?TW7a?WT}nfrEowtnuTE!H_-g=!RX;`4fe3ZOI`Co_6zw5Z#LM~QO_ z=-p}mb#&h~g$&jK6qgp>LQDf z>(xxiZehdPBnf#m%Gm_ad6LqawOC>o-q=3CBN1B=5CQCov)j@rUb~6c9~3=u!aO(Y zF_QUhLEP@jgP-3{vZOL2FzUX|r0XBP>%YpTnySr%Gm!lFByj?2w@TM&Rr@5O!=e|4 z3;yvXy#XWhju4qz+iy2PRC?|{-cJ{xC(4bgpA)j6LFTFYSXD!1Y*$ZJI39hRYEDD~1+E08l_d%s?jHt+#I=7=`@ z4-aC3NQ&ke)6337MjSQi~X&V7jGVp8Tg`0$GuLI(zSw;7|yq>MR# zgKkcca=nIkmil0V^SM$b2#ZC@7BKisX)F!OxtWO%STIp|jZO}Dn+pt4DrG9uNIFyN z|JD`T(+AGG&0(ayaMBHV>>^IPDf2(jdndKTWUthZBVlD#Rc0m+)Cp48jt17ywvBx7 zTi!_X@7t;=ze;Ie``|A$A#D3GVWs{TvCG1{-Ac&65agp~)#5_*zc}NIt#fgBQ*B>Ss;8edN(q3rD&u+=@`8hq)7s`$h zsc{8uLbootHYTD8?3xfhHN-ugVBl*J+(8#kWfC1ifuM%Sm>LKOZ_|tWoH+FqP^3i} zm$2m{uYFf4_c4T_G36oQ=yAJs`&h*9Jf=KwRPpuqSP%k$)@UB(L6@Yh(&Uw{P;gxz zs~&_CAe5)?D0(xvX~lXv>2*-b076u)n`QPjV&$>}NuG0bbqmU!CX_ioC^C7LT!sL# z1QPz){Kn&PFF_4wT~wGN*#7kkt)MAHo!lF&JLVNJxNo)R7txIcev73FnA7=R!Kq6B z4zdFcHRalNfNPt{EUP@^?FYBhVDxi$&CX? zs}F8E?C*#jNo2LN=p*oeto#iO-(8F;8+AJtu2R0C@CTQ1)G!@Fij9mG>e{1Qz9MlI ze|V@4Vy6p@S`icINb&(b;lH$~b!ecS3hfgp32ru69ElI0h3~j+w=p5}@EvJ?=EKrd zdj4@Rx7t|1(T~4ZAMfH@s%1q}N>8s>ULb_!N>8}nAznGtA0xLLj^1S0fGMa3{vt>> zuaFZ7XJd`*hExM|eD}5WW1U4jmRGJ2M$S)U=;gMF#^LhYctm;EYxZ_kPEIao`QS8j zOfcVLU!Ck-TasleG~Zde-RBTi*^?{y+gX4<{SlHuX~`d>N7nma@3YU(D^fjl7RB46;E7Ma10d}(wXr`GfFSRGUrkn2 z(*3ySwc|pq2~qhmp4$M8oj=q_j=&+lF2NDj;o{(diINs!^whGrw^quQ3X5Kjxb@z= zrg1Eg2Uqv#Tn)wANMgeRA5iFtWRx}Y^m}AQ zV@?)EHkxbe&(cA4mMO{p1{9@8LYs&IUGxrYFj1)yqt9l^nWG(xUln-=q;g^m%Q&$} z_1R{=%q|fPqF_bMV(KTD=@!AR(;4xsNjr14Jx_?o#1KPX@^#iiSaq=gB;D5ie}i#p zN$%ARNDbT+Et#4ok6M55h>WIXAAkrGN`|{A&Pc1!Iggq@0@{Mkv!t2EY_hV5VVKDC z`tWy}VwxLPF*-NE-#^NNaRGA?vYH}_l}1F=Vf2q;*;IzoEKtkPG0k4+MPv1HQ{y&o zd50iPsmCQR2{HOAX^gQ>#-x$Flo}0?0y27+D4_U;w^5Eo+ta~*D(UQ@629Rj^s58K zV>_xLq%eJnjS{;?6uzSx^C?@!oxVvWK2%F30@9 zq(>`Ly!6l6fwE`P7{>ti&W+Do>wX`%@heqD(A*FONLm8~_%#Ti$05j1Q$E0X5#6>C z*G=v0_G2jm93UnWf$QH^K;!LQvxhdj?C2r<4Q_fP?slDELJt33YByUI zVf_h54vhT5dlzi|GZ>@nDohDip-+x)GRs2M6-V9Azu*BT*N0b)r{xJX1%%R-K5DW| zQF3vU{cf7uCuF+X%>jfH^N|w5bk+~00mSfX4cq9jeeHBWggT0+?^Ptyqn9Iv*!M(9 z#X~{5(adl!H%PIJIj3QD70n5lr&v)Oc^JHdfUR2b^5b z?X08%XMZ8&ml6fd&c~3=TCqZ94;E@uPs;)JDxx6l`$^e1|HXPA3iAC~xF1$nY0>xr zpm}Jea)0KTb8~@iR~BPPOQhEj>Kz4h zYP18gSlh?vEcRspgZ^do-Z$_9GY^|2arj2CSN3)6OV>(*c+{WM(Q3wvZxR7CAhCD7 z(wmR7Kh;>!PA_Obq=qGAHUJDKU8-Aw=I$3e5Y)=hW~VtVhd9GIXytnbyvpTF7D2~b zp3{q#zv4VzjFt9KD-zOCq{ zZ-hz1H}c~6s-zP}sYcHWZU(M88Vnr+^a6y66qc$Z4V+UUKWwoh=czC-WMh~i00000 z00BXtLPZfgN114LubR>k^@3>&R=%RU5B`CKZz$&Twc{;UAsARU2_J|>)BvM=oh5Da z;8|gMYycgJeqzB``sS_i(S=^e?v-++4StAqMxv;x{WmV-vLpwN=Og97zp2V_X^`{I zfQ7BTJaHZ}cGLm2#32~fEZg^^Oz!;$BJb}C%5t_w-hXh!KA!MZb$!rg{voMy>n7xg zdA>=IZxmzxddIhtPfBg{8<|1B{v|vxi9e_CoC+)<$o^1<%?5ez*E;f5M)RK;U6U}% zU}CMbfcC&^Ztb4*Ycqu7%a#Bnbv5br+$-Z5q-0PTNB0QoGS< z4Tvj%cq#;9M=n4rKBE(KBL*Tbyp^&j{)aQ1=ikarkHp@u1P? zzH2e^W2biy=7n&#gBbgb4jbCG<}1N`Em{70-Xoggw`4>?&+EB&x;S*C-01}SWk~j! zgD;qZ#G&a6uE_vxjmUm#pt$g$am_zi@kc#T;M-8iZJM~tF7AkDv9EURdoBXy7$jfn zq_}x^YV+sjK!4)gToRNUzY$woSHHt5(TUlv99xYdQar|+{R8y(3_=v>c5=QR(`0dP z^w;hN_kWup*GV_#ltRe1zTI0ZY1Y-gIsal*#~IY9d&RN5 z-Z-1;XdPTDax=LZXv6x*pYow_qe)uC?w$BjeKTl<8gtNDp8%{?*epHXt^oq*CKk!D zC!OV)%JgOliPt+hmfB?IL1Qw=&wQtqD!d*&eon#sn{)M$QW)QrTGau6L-S3pSkbuu zrdLPD(;J1@%}v#Jf{~phlG8v>RySm6F=^hqdVIi4 z1d!ic|4lB~6^9|}`P(HBz5_tCXJpO>4xSREct#Jrj51I5Y5mdO1FS>E7&#JU9=H80 zO>!QHRjG{X!3(_NL|gwm039x{?LtlyKZHo-XQp~+Pihq;+6EgB=WJYT6? z1mRhPW?3zQ)^kRD(fKfTW}q>;wkT8r*zkyJW!X2+o~%TTgO=VDyRPL5yfITZ2l=?B z`{x{(Ax85p(RxNWv*YE{8K*b>(@_YYv$vi8?iR+{2lg$$Vyt%(%EDc9NN&tsiGngj#sJ-dqy$E2312O_5&24k4_%p^Xl@EA#Ed+ z2myiD2Fi!rW561CfRw3?!kjZyisf0G6S9mFt2%6wh* z@|S`aOtgm*Uw4*F@PeXRa9`&q4~SP{?jkp>zPK>f(6MF!93Td|;+uXy#0H4)>0?F7 z`xj9dc>ZCCBt6qK!L~V+My{rFF9=qMKo!l83k!CG@m10A&?R($ z>p@PF4{oQR;#%fl4dk`%z*okE0rXv?5^Z?!l#jZs!bvMB&Xs$6?+bDJa3~-w@WSVw zmAVM{&?ax-xUUE17#f7+8SlM=7E-{$%c7cc{9|Az`8OWbSllTm9!{qlLPHQDXXm%? zT;}F{FEB?qftjt66;`Qbsz{(!5KE&fB6%t7jO0lwE@7C2r${$!f5(R6)?~b zOM6edJ1tsMh2+_uTH5?YAvagFZ&p;AOhL9}ifE{7fY^j9W=&KqUAn6|u`&Kufe>#L zO!C5MZf{lYSj18`>L3*r+zY&1HyE3%i@@&~v>a9P+acRD(5UdI06CfRK+Vf}~&Sq%Ck63UBieQ^vbY$(o`kw#X| zY_u`=r3>;wPXu###cNY7w`>d}V^ydcZ(ypDtC^>*SK>A!9;8Z`a)RkxpnC$#iYySl z)23UO;Dm9}jjk*`VsA63E;h0%%pUFn&749M#>Mg?l^vd0LN0l<$hm_YME(@}F4Z2b@kWc+biQS^DHTObl-r~&#< z9TIsuR{+Sf{jp2t%TG2%BB{$0%mgd@loFD~Cp*XboNxJ?-rD;;;+4O?_s%DG1A6>K zdy!826Wg~2^@?>xb3!;5*Mx#|lONOHf@8hz-S(kZLYI0etg2rW+I#C`Kmm&Bz}4&` z9l@f_mC~BuDix#xL!_Ymed5%=KGHViaMC4-wIhH^B0VcRql+?P;-7a-xD<3` zIM%%7dGl4lyJG5MvMscEk7HGmLlu%FTYIWB-px!(r$BZ7{U$S>`|v}Y5o?F{IYkHL z!}Qgha1xI=eJ=c-VO{B3sA@oAA!#WabBHOGTz0$pvP=pP&Wi_Ew(N>glzgwPE#Kb= zl1kmFM77>n9girCIEEQ4El5qva@oeRMRB&Ek6!!q5~&}r{L;?VyIkO~Oz0_&D=7@m z>5U`dq{3r>=6>U{i6`MS1{RlR4Nc>brb|^vMubs}HTydVlW$}-D%I1as#@Fur_1qF z^ME7me3$hen@s)EO^xZsI$aL}$~3r9Cc7_Z_*ChBN7Zx@E;F);B3ZV*ow>jCbg{qF zJkzSNBcZ4`4RLI}5@jv%THSM3KhmCa$duK^7yt4rt%A7-Uydyh8sEcMv(3WI5f5OjT7i$?49|nN>lb@xJ{=of|0oEj{JL&p+Q4beL#+Falr@{3Fbw# z%LN@IJoN>a)Z~41^ukx$wgLjZiwJ^<2sU07#c?eHJ!bjepqxZH0q$ZpC=cRd!kQZHcm9#EQ8_YpLB} zOisbmc~zM$85-qtc1)DAhKt8k1kpZEH~M7gvL*_w(oVhw+g#dzS3B7smG6PhO?eC> ze6K4n+tbZ4>9162=OWoEP`Z?!{Xy3*mMOvDS2@t|5+QoA0$H$9nr~_N*Y4=hNT?&8 z)`zJ5AaVSPd+cLLwY(h^mSPDZKI-j9n~H0~ zw#T(pz~9KuT>$tb7(*+OIuE@8@hQbqt+CSz^cG&&2T0Z8biXblAoEkbg0Np?ECpxD zFm618%XX?f(oBoKfjUckDC|mKJsFvY5f0brq72DNOI*@?Ms^naCjX+ z^6UPW%>#YNn(;_!!d$tb^Z<??lHl#qrJSB<=d*T^tpAmft@YW%e?7%vRnJ&6gj}d;tugp*z3IQ@q ztGS1b9B^OQ6i#WLn1}NTo}azSb58df^xot*=2ySA!mv5RT#ocXQ9ih!qB_`HC%rxg zabQ~Xm28H-@Yv5}#l%9-qF|}+Fd_>c0)l1cB`F2LxNBNpiXzQ`7xn>G_N_v|HDPlG zr8gfVzRd9UyOc{_8}?@;i^urvdkc0!u zT&)%AL2DjkapC~{=bbqN`7~{a!2;GeSeI%@zy!fQyn)cy06B@C-+`1p6WSxc#7jKI zjgec4F#!r2334<~y9=GXh2KZ}?MN zur1zf=ml_sGAE@G$bX2&;o#aG$y5=z8)h3f%DF)%8rqEJ0W=&H* zpX$na{e9srxU;^GnaO5j*N~%V&UL_2l;6HkM@x9Q@=oBeMpcp4086NjhaoCBQaUp^+3UlL3yrn2+NljEM!R>2K)Faj_L*769Z);S2 zfKwMd$$H2qs%}t(TnPBTB#u79aMRdgz;WvllztpZ05E|{J8EB<;HyslHK883KjV5c zwq7qx^$hT+?nJ9B$4fR|Zjtc4n}3p*_%y3Frqc@B1{K%a%fF;-8SkBEFh})3<@NuR z=Uz99?A8Ku%7qt@6q8RMK&0UhO?k-X6D{Rk`9hv0Wia6m%F5XH<1SSg^I#x-uGh>8 zbl%7e&t?5WDxbRLp?&8U;uxd`VTHJBsAx(k)9W41Te z)57jXmFfD%6Mhw>=_d(Rt==<{2o6LO_^;7b3k(7~4wNjfs=t(&3@BWl38ma5zC;BM zaz}C7TIlzA1Vu`bfq6o{_3of`fL)-!IRpRcYCO+lb`QU4 zW8_VNp17OD*u8BRzy6~HT}*jmPcrR@(I@kINiM9k;ue*BB2>V;qsSg$)-B?&ALj!a z-bs?K`}=obt7OZvdf2Hlf{m*drk#9!8j>&Q|broo8j4#jKT7{tS1+yCU9XXf`RfRu>4T#G~q=%-Xp%k24R zqf&bC-6u%2S?;3{>1_8_C#ouq*OFP)Cs#!50+u_5q~;$QpqLK6N9IoCSU=mUPHwaF zpp70Xb$PuxM{)IIOE;@2TBP`9Gq4^zV^aMvD)n)UK3qmpXV?E;0*F_~u!8ojhK1T+ZaN#5;K<{#6cW?*~%BXsk zcQ>n1T=4PIewjab>7-t<5GG>H_T0rM_D1%dQmr@iXu6*Mz0UGAJM(SiZ>|);%5{KK zL7(M?d#yi>f!>S3FyWtHEmP>>Mb03<^qcdgz(>L00x|Mlf3B3&7M(|V2(ozy=o2@% zc(+rymn(Z!*yoNDS|md8*hm77FMvu4%uinDR;721&%Al!NW0XF0V)t#11Q&kaz9`> zp?;o*!`%sQ0(bSyAYt8&Qf-|N{R^r#D*V?jYEr`s%jDr~`Wk73s9d8Wna7xulmd{J z8c1%Zit%Fa-n{V1nw>vF)k1OcA@yhN@^ea-U>;g4xav5H#BJ!4bh=b{l;yUTQpG>3 zFNuPu*^2^Y%`@r2=kIkQ2R?(VR3A5#^kbB{d8#PWs)jYYk5d4t+&sJP&7VxB(_oD5 zcVXTvfua}4NXtyg0D=+nKhL8v?uaNm#g~u+mkZ#L?qeQPXFRUP$El+iza!^Plr9Gr zf}AI{0;suMWybGxjGpvHXKbV|kiB*N6~`orK`prhIGn_;Vv~%ou`nXy40_%=o8@w7 zZTd@J8g9Ufi0yt6xJ}Cn__Os&GfAYXs!r8K?cQ&MUgHLd(JBAA%AM2 z`>F|#7FgygICV>tP+d?pH%u*auTNQRbm6}{t!7P{n1bGKFVidk_%s7ZVChW@G(0VC zSwOGvw+?gV)giMDbVmFZOBJ{q+a({MQ{;Y?Sz!Ex^M$33$aKzZr&Ws<}IbFS+Q6`RE(axel zqN9`vRY|bbATzVNAz_OyEH~FdL zH!DUIm$Z%P0>@ZLs(SNNfAhlTxsio&7Z=8G|Nn1)pe3{B@GbDHGv~DOKNRryq+cJayNDHd6u)Rqg#wR+d z1w==8uTBgt1N9@T!Z>B-n!9ref`B2~m&U>OaOg^9x}(PuPu$;Via3{96#Ls)ZxP+u z)eFc;N{MzY@?u~jjKhZ3@rXc;1UIu@lUULrI|;r{!n11fozRvxMM~z+97i4$wR$BQ z%(s6q*TXP0jAJGYY!gi%>*Jjo9Z7enNWuGhw-+g1k)n$2<00)Hdn%6aqIF2Ct zKKi+=a@5nAQEqmjxAVW)F$dAU+8dd(7>$lWXj~~VGwhcWx9I2-&SBgJ2(!GKIy3>c z<-nB?bW?XG^@;ArP}jLSnE#=zP+|N{et+^~r7sZ(Xu?!=fhrXP3`71%wqVoA&=hCGth`pk~DIv z(q$ql^4H>NcXnIZBZ1;#_-geE^3_enE{(C+6OrVnr3PH>RS3&(Art!;m2QC#POo$T zDu6WpkxPweg_y~BXidltY0jv2c@D4Fo6ZGu)rzx-rZ=SI3oO^Pugs?)5G zThIo`KAMC2xT+|*W20=HH~c3IMLJ3PZ-B9=vO-O{C2-iq(j=s;v&>`QbZ=2Nupf!v zCR_H%cl+I+vaKGU4PY>1V?0F4a>72EBpYGzdffl2C@Mx8W#35(#b@fc-$18dig7|N zTuXGKJYGV0H|W2Nu$ElMzn|G8e*>6z#9W;0|JLqk2axqSFoRQ9o{0dvC?b(7_!S1 z8XcvT;fjhKZks%6SjJRayR&6v9B3OW#}OCKE9|=ayDL8Tgsir@KpBJEF0DLzwiaEr z)q#<8kEyf8>vD$*3->K#33|DMhFJFWkPX43iF}3q zL>@4rQBhh1l-|W{Btt#N6k4Z>_62#JCwP{{nU_Zh3K_d!<*Qzm@wP>O30>(MNvdp% z3+(-cmWmD;jcWpuHjh;MZrzA@!a+B1f$3a}ES^=7PXs~;2drO!5fm%kwb{Xd>OXYZ*#agZr~gRd)>y81yr>`W8R{JEX&svdoz)4XJX znTVa3_RD$J1nSvjBxqJhvMuRp3VEjN_LnO{pMW$vOq7eD^{fGjXq{SMc_Zc)O`tQM zgP{QomdC1JfyEUsbR1AHX+c4! zQ^{~fGwgj4Rs>H7KWm3^75ftJUVnuq$H`3K7n%om$YI7qHLl9#_O7eUsthmcSBspp zY1c|V=d-(qDN`MSo$SYzZ6>JsNd69bgOAP-Wu+$x(c$i$o|3H!>Yi5EgIj0teRy1B z8dt6VpDUKmTrTsNu8D3Un2wvUl6BGi;Dui;5^Gw)^05-v2(}MXs{IxcK)0?xnb$)O z5kacc(d-O1zpwt3;6B<^xgEGs)>f7P2JHZ$6))?i4EdXq9vHX%gMb{XQCbCI7QVg! z5eg$52?d`+-iBl()K1))lIBVgHzX|kcuAwud+E^ygN#%I3|Q~w3H^M$F?xc>FD(?M z{%FBsDElaapiRYRNG;C+O_t6-G!nX`pn#=v`q;PJ=$q^W&bO5F*L>lp-J>?t@Ky4~ zxVv8+M-~MaANKb(;Z))R#}Z5}_!@!FF!Yu%B-1z(agq&Rns*Y|TP-kWLBlmy+?uAj zCu8J(=k45qFOYxNz=}dn-O#x-%Fi7OKm)rD!wnWAv#0h&-J7LTu!Q{-Hp8Ro434evg77%21gN(bWQt# zz?=EfEh?n5M8`xkg*&y0; zq_|f1VtSmEj8?}Rhtx!WA1HF4oh*;D9%7_uKK8PYK9AhH%e>j05$;E1_+o<_$vu?@ z_Y)jH3{-6GM2lu1e!&2vMP}pSN4)68jd`m^{VPaX+3v&Gei1e>etiVFZsdgtf~q14 zw8{91B8%=Q`I@rku)r#xATU=Cn(BiYw=L>Z@>3rpkfOn)yC)WXubbj?bo6>YqVyyB z)pP3UQt>;Oro&YcEG0swdpfk?sARqL@7Fvo<@yEOp~E8*`LTy^Sbi!ETAnjLtgXdJ z-#NkSppu%xG6ElezqOhyBDkw0w{Sd0ChE0>yn#jDdH`Tb_9L#Wjv|=$?pG9iW&lm2 zIAjX9$pzUqTWL!AGqdYr>>w~OWMlXq00000009A?V?;;D{!k@)<{-G^lv3o>o0= z;O6DE$=nwKvjZLC>E0}a%EaaM9lCa@nnG~PA4?sQIQ!pd4EsEsdbOzY0mVbWp21V# zT{i61!UbQ#08aP@s1u^vl2UCBezG)Ot_Qm|LrI)S9SqOuQA-BAweqSap7Kchq6XvP ze=0S1{S0id51Qit;RI=zgCd($sMBspyD>Zt0yBD^E=ZRZS#{BiQ1QHA`QMdMeBa!$ zJ_h#AEDIv-lW7`^!W^wqW!rgB5Cy4CEi1*os#w&3aUMnHmh^MT->>6D_qT0B^`MGb zj1|kAD!{}f?4ikJIsFX6Qe3?s|4h8}P)2_jIOl%N4k}t~q{O;w?N~W4{-4o2Oe98Y zNV3l;7HZ}*%m0~iJP^2DJMk?yfD_5hgQ<8Il=szgdRtq2T}E#f z5KW@a;}sO!w>YGK`{EI|P9%m&CFwqQzfZgn2^MSH@);XcdIm9W= zbU2VA`a5eAz~Hm^a~YgJyBX*I#11|(`%lgpp~#K=4B)e=X&LNe4%YRoBqg<~m9Jh% zEH#A%h0-rVUCM+xi=|+wM|52lEwrzTUK?@M9S5zHc(zqV?oN1W^Gn7oVauc_U{DsF zK#jH{xDMWc(IWwmmS>l#E|T)PmypV=vaGG_@KScOU>9>^E56fbtH>#rwtDs>*DlQ! zdwn64vK2N_Ia|YM{4e2KM;6XsJ}{1j2tSz;jIshSUP^{(W~=?Gt(GL8BNu0Ia72A8 zSb7d$6IC16^KVB|fr1&@4lC&-PrjMom|Bn4Z( z_1p%7A0u6DzDRASGX(O}L1g%?&u3*wr+y^1N@*#>svH;sPnG%chQJ#1Fs&Z{hbfqd zcE(wPv#?$vEdfa#OE=c7Q&-QsX{Z$dgce5JIj0goOc8(msnNzf3K(1C$~=u8NJ`S# zSHbz$!;rbkhEoFf8@!rCvh4HDBAp@y6)Ig32o0Ve5m-*|E}y3)?D~R|GOg0SN<&R* zHBhCB-L~bc1+{RQA6Hep3?cdhLK*MT;H8Q>PozHNq9MCSpIj8q7gJIa6v**4MA!j} zswo@m!-0dZSTa~6ZM5`1d+0rKEN$)@j+Lc|U0Xk4>8;6<;df52Gi@u_arZ|LH1*># z0m^0(uLv*3OY3)i>mFaTXrs%5uCt-5vf6W>E} zG%Gk_}?P02UDAzDyylDLv#*gBC^rOM*-6y$;Nnf0EPC+I zvP;*tiZSjI+%zPOVlkZ2nDP{1DyJwYDbQY3nl1`B-)&g)eEFzSy__MFg;2Zq5PG8# zpJo`|NYkc5E-Q5U!qhn+-Qa_{gG(MFI$JJ{+g5i}1bh)Wn9H>{((bBHdE@l$wiV5) z`3+uiNy5KZ^|NvnE@hsu2Im9*r&xqAneETq1)Nwx{{_to6?3*NgS5FSPA_FV+Ybt;lo?&R5xalag>T;R`XA{ zkfB%2X`fGKJ~CuGKq9jkpe(kFb<7$ij7chuyE7rjCyP>*t8bd7+;z z6%9HRXgg$9413=V-CuuNjzoc@+qRnf`o*6;TM1061ImsIDbh2ZUk9=us@w!`Ms!MF zoUN{%GvzG*DL~od2nx$el=TZ@Jlwhp>~if|G>7)DfZ1UAk8%^fbbl}YcY<=Tzv8tE>C+mgy^t>A$uw?Dr)T?BH_qHI_sJN4NO8p9pOhFJz zGDVu}4sAtQDrijE7;9Symy>E3f=hy)`2A<%;k||5QE`Mz$$+GfwC;|keJqZeUwCD^ z$XC-Z^c5EI?nCE;2u@wu+Ii5@5m2z9LJL3M?l{sp(hY9|lClFbGCd0wJQt8)4iW~( zTOLmnG9)593C=hSjrZ{8R#dyYFmAFWvFBGg6o-{3JZsOyw55B;Cz%&Fm=m=LqAk&n z5++QYjrMPnAK5VCf2N&9)C(9xfN~nOMUYUM1eWy;B{N@qrqf+*sDus{X1QQ>8dzqf;HK}rXc!9^o^_|Tbcm30nJUqt|G^cEeHNKV z7pbw?D-Pug>%IR!)5+hY$OG(VDBBtRUCGvc&fZtkEMV!)E$6y!H$eQ~V3bF6pp1u( z>b?Z?ZuH)rFXo|&=C2UdS1NQs{viVU{{fi-(xdPD=8j4w+6C{S2j|}G;>w>353H&S zOZW8aWI6J>r_plB7l)js;wAfqfZBkE;mfB@66xSH((aw0lvDo+iSM-*sxfx32RNKctBGcX3GRp~2>t@%I;aC>5r_yr=8|bHziS z))&)rtjMFh?rzV+L{h#g@tH+r+kLHiV?JxofmCO+oFtP=7FuEo$MI$`SKTvkk4|!n zdkCzcdg}rr!^ky$`(M8Edb)B=Hv|K6c6J?UzDDup_w^YdeI69$wq#W@YU|j1NKhbi ztzm#d_1qNHS!X{@MUfw<=7YAea4E)KDQ+!(_rk6A7O_L&_(&eiC++|%jvw&W*ZI5H zeWK3O#-UGxr{!Z+hte%zFB8D$x%zEJZI)km#^jb)#=<+ge0Ba7i;l#UhBCg@<@#7J z``nVd`RyXh1QFLTXh$5Y=d9O>!G-)^yy`KncOg`+nFC_dC{I&vd;IT`cSE=|_(L7^?(u*eaQ%*IZq&X^v@kIxw^mMN(5)E9hoX9*N zlG_u%g7$=QI_0)74Zkj3(fT)VR5*C(jnZrdXHhrniPpM6tVlNhwM5_rB~Q(HJa?P@ zA48hGw7tc8GwQ(F5oR$)5kWkxJ2onHHtp&RY7G6BchnA9MeP z^Di8@5ECf0>~c=-Ljt-Vt_EDci;Z5$o`Rfp`h;`C*|r}vu_4lrgy0&;Wiu?AlLFp$ zQZwuI7H8%RVZgOmU8Luk3vHu?a6^JA%WEDKkrp*~mkX!vBq!O5_HcDpG-HtUJJX?0 z2|A(74uo{=kOA!@2n0IO+vB4fpDC!P>SzTCj7n;jEx9DbL)N0i{bH3LbAZKlo?lUU z5RD&(<$2j|v`Wqm$k`BjJ#4{+%UIG;~FZURZaynk^WcUGq#Y#PMVNx?B}7lT@BA zBn{rd5T-NtAZ~3=ve?dFo0Aj#Odw|C5jtAak0rCY3%*vFNNS($$ja~+r>RKUH!lV} z(p|uyqr$!n89odTI?-%G#*aj~L*ym*CBZ5BtDeU0cu@Dgw&4uQd$ka3Q1zxA>zqV3 z1<{(8>%zY3ZoiamSYd&|dzb_z*hBmeEANM3Dx?|P7)qr zzK=HsC7G^Yn5+KIvZia(@1k{9)xJ(!+kS+{ zU;ruVeFc(jVI>lfRWPnzad$m1O+@gWs}$qOr2rjaUcF3p00+wWx?P+To|MJSnZ)e} zA*>~u{jmE(vljvCyQ8sz^U4*fQK2(Jg9!8=cuAJVj15ottjActb=>F8YOI=A0xI}VJNCnQfNqLA zYoC3Z>v{ihUO$X5$jSAO^$1=IcC*e=&RGg;#&^nO)xL)nZLE*e8lN2H_hiI}TZKOX zNGVKV(+10vn_m_=4Htm4jmzFRkajF^c`XWa(JE*LU`+y32j6f8ac{SrQUttbqXf4( zs%l<`PeHtsyvj?He$iYFcNh;EOU-0_Me|abgtpT9{R9ZcEh8g?hIkci|NBuFkj8=k z7B=5B&Ut$@hg(md)&=MIfydMsVLj|=3TNP zhtiLJ^OmZl+z10@kFD2>gD}>uKWi7ag5XnC)sc-NohVT{P5P%^?u#on6{5-r`i+HH zRA(-!g26%Z*#>o5c_+Pqp@M>J(yK(_*H4OtVHi%MV*dl1t_css-?7A}o6fS<%(TDUc=3z?-rb30xB%@Hhq4SiWl(V6&GIjK zoZ*dtFz5ktX4E`r@7-|kOll)%TG5;IXotIu4sfJ2tM5rI*_qH+*_gKsJ+!=5NkM|x za1ztm%WYcrm`vvt0$|LN-|R@QvWA;~JB=Y6@iq1n3%Jy1Aozc8|6 zB-p)lRN>9K%oeijUc9ecj9qmRrtj=(l6a+~&W|&ogZpAwjfPpwjkc<7Hht!K$@=aY6#o!7Ef=Oo@(m)EZe$JL|`;`?dxW zXbvMD3YIONQ%^s8F-*2ecP*W*J?_O%_`B&mD->PSU1gKoFZnfXUXII=h8`#gg*752 zLkWAXyFkG>p`vqdQ)_tJuLgH$AC0@Xd9&`^6b_5a;j}<;y&^0I z2Ys3$!Jv(IxfIr^@J4EFjI5-t-i!R4X6M(f3{7M-%S1;z!=;NY&e^Q21(G|i(IMU@ zRAfd`ni2(ZSWMQ>b-}Pkhb8D76?`Nga4_vQ?qziduk44=4^rqh)(Cd;@|#d!OCQ-7 zOnh$Blp-o>l)_Zwu zwhLeqT9)qNY_X=+Up?J0R>h9tCeXuNxatfNCrmh|ToLL?b9;N`i zhYC=PUGhDPOMVo-kfq~0fBuhBRT5Uh8 zf@og7dycE+&)x0TGW$f$hDIqhNPk`z>=#~sp7a(q73ZXqw&IF;{VF<5p443A+63GR zr`M%`wVd=!Apm)dXd=XHN_>T+rJFdedKO3U3&DMK&3ydzqDifZqliqtrhg%v_}eO7 zOj!YxHmOXSoYV+THVXaRP&YQB{o{1m(hR(y)iX__nz{7ICGE(9?djk0j{Bjdj!*ZP z8Zej3Xk@J{RS(7W%6jUEMpD>@lU$K&$3zwFVy77wh-b<;n2}aHmZL$^?!-mqR+mZ^ z?#TSR?rwR}`qw^qb;#bsqFD z#TYfICyb(iMP$IaFfWgKNw01VJy_a_-|cr0#u!=!q3uQb>in?DHIHoXCMROed31){?@!Jo$TUVw52xA!^tw8 z$Mj1@g#P`8y*^Z6t|4asMW0SMr@(^Vl!gQl7ZfwWQBlciyGR5mc=LFDOO9AGT2GI| zxkM2l@&>0NLB-E+mf;p_7W89WniKIpM{X;FLP7H=XCXmjKtyX({R(96-dR~-%M6O+ zl3T4L&2-plC$y0;(>K1!oJbdrKttmNl8K&JPZfSyQ>c%Q&$dP1&a=ZZ-T^`k9nxs- z@%(u*@61LUEbzTDY9ACY?$R&1$}mpPP=?|}p?1Sp$FMw&K3h# zDRkQCz9!6;lnS8F!02n=w(yv)wbA zHN6pAcT+1gvG#m#5%Fu)jpMm>95vYkC{yhB(-5D@@{t`bdNd*JtHCk_m^dd~Nslx~ z=y|tix<*LR_!h&sbeYmHZe_`seW5ayLovZMAg;4viL*Ru>c*+&sYEiFM{x$#90zw}~M=|62=C zq>%GH=`H~82tNShnV8Gol4>7R2Xpj2xGPTCgyzyq5u~uTl0bAczu~STwbVtTvq;hI z*W|JGrROz;09x)xMq?SZ=u|P2P;@m`8cdO@a1d2uGv|R`5=c;AB)3iFww%`oD-yQl z=?XmMGel?rFqj3O8CJ{HuAFYaH1Jn1ip@_7#>Km@ELby}@;!5o!Fk56k`?rjQog3e zGF1@SR_Z3ALrptUJHoS<%s-f{pJxAG$49wr(v0X=nB>A-a-^=ySNp7}7NwGW#tVV= zfOPoJyN$+?LWTY@-Am1sXlK;1=3ABP2w5!pe>7O2%u zrLlR0gVn)zf!%E2a-WuaEENMicFW8K%C8_r8G5pXe9wb7VEk6pXYOXiuqR+1=&16G zwh1aT-N#eD+CF|S{svd>0>!+{JE@ddQ%W^T_CjJ*{q*_fsS!7A<5R*jkT3+nlm#J# zF;)46A^In0vU3JR9rx$!2Th!w3t6x%Cr1jRL{8H%kT!o(76~cY-}hNM?sc zVUC-p74<_GUWcLO{!S~L)J^@~vG5Z7zD8L%iyf+MuLa$JUDIF@%Aq;bgzUi*)^H?= z;svZ;_SeE$Cw!Cv8|$xxirHY=2q#U~!6_h3KE=aC?w@)HjUq<>hQcL|0)H(h;qe?kR zkSPpuVuD1y;)X$DGx}7HOGgT`0jOMf>OH}p$o8++%?MG-!+}EjV3oW`*F%hL5ISH@qebJhE9@7G%P*^kbN=P)p;C!sur0!O?eD z!(;oVP1YePJkn2O2G-h^X<_M+ng1^OTlVA4WmmpWU{>)<#gYi#zw_#_F~zuZg%C zIO5CDF3DU1sH&p(DfG1fRv8ykfTmh(X_~*)M*{zTz-i!N#)tKtEprq!ZJV-W?Dv1a zA->j|Hn-1jZRFgFP$;GLNgW!%F5s#ETSIusZ#;rtrfJ!xMr+*GDRx1gP^S3!$f_6l zMQiEyvH&@5KS`6BdjE|b0 z)jSt!N8qE-9idPMRsAPFM0(pE3X1B>P(4L0-aj&&2++JYSqd@)GXNJwvaKndgNb6! zD}ZkQ-n>5lfOIwoC!AB*8%@^**wQ>N(8%!c9ZW#d$DfqLBbTB^?gU>_h8l#S^s-gSW4BFVsj2l&1Ay4Px zn&2e~i9hOFYQfMCx$_#t19L^`$Uj*ElN;A?&|QNmNRRaekS|`= z22A#&OS)g@kBv$P!vt$(*R)Zy`Vt>sv*i(4GP`}4wPe1aHgKcUu%#zgBZG(z@Zje^ z#Naoxl~a9Xlehc9Y(y+yMT)*g8iPHU9VSs=bi7qp?84xYX+XdvyeqX@5$s1P{i%Dl zDT_G=6^vdGC2bmaW*mDM3zCbR()BGla9*X^@OH+xg^fz*?%Od=s#84Xe|T zZ(kn$ADQr!yQc9V(NXDU@gp~x7P3*boL+RMq|aUSBPK*kq2G;O_O_nxm^qL-MVVlOr9El!(fnLpBquBj zSEnPs!r^ocY=2EKK4CFLOfV-@KTvWg5^`4!@|n}i5iqrT8v``QyfZ#{ds)O)9vJ*w zPkjR5t)a!9_E}|<3?*RD1<0Q%Jtl@9$ZAf08Pr4}$RXLHt;6=G>mDK!YnbXm<9^1J z+9Cq6kVNYGNZ@`KE6(PPfcCEhu*hqZ?w(m&?pzD@)o1{^+bT-qX%(Qpn6}wCbwgZ8 z4~$4qlGpO6h}~!M?&`*v!7;i@>KfVD^(fO1s>uN(fD1rL%xk7Ja*_rSB5M`B)Arh^ z*+s!v$?BuI1|OmnO1Tcd;EXz#1RBD1f@LQy7tuhLmGkXKdwuG();H^N z_h_ul|0$M--6&qD_q&R8=#RS@DLD4^_p1WQuC25H=ImS%x;X`@qPODX@p8_@IMA8A zd^H)LDFPWwC3w39Wbqpj9sxLOou(X-oay4s8FWGZ+P8qTQ0-~3k zEkv=XeRXQh&SXZoa>%7Q4pRqyX9+hY+>j$nL@}4K`5tx^9}c$NW0Q4@igSP)A~35A z69X800j25aub5|rmQn7<54iKrG4DQWWr-gz60gI-caCqFVJght=MN&qfTxBQ)%zmB zji5NAqZ?}XiRh-?8;vZTn zvOHOJ4YO)NmwEzYn3qHJtNN$AYRr#De2 zphd2PW6j7T++2)8lRy)AXhRSi^u|t+dv_7|K@&&Uty7r137h()kU<1t1pS0eixk9W zcrW6E7>eH7u$YCpPJBmHBJnyJ8x@3rJd>h9SFl&|ouom(^O*bqcbldm%GyoEz3ZVH z0YS9YZ2Q0&osDe2YTAqn+mz7rB_7XA3BQVg3qo+pAt2VL8X~Fh&*d{>MK;=0^yr@T z*hy+~1MkPo7tFh@@84@H>gy2FCnC)^(+g67QF$55_a`$Rl z5Q!(E7Ko_7-Io(IOS`fd+1U(P%FvDHwBF0@ z6;79({%*r!7SpQ;ELUw819KrAV!RQJ)@TLmqKUsGc8W#SYds)*|HxoqrD z`J$*!{@uBy%_DN)5>0IJWHK62@7>kX5P!g2&a%J5(^WG4N=O?1)eidKK^RIT3%0F| zTRi6+5-u|e{ySn`mRuvJS7bNjnUpyjtdlAX#s$U88l!bKI)39I$AK$s4desC?|(6w zk^NDqtv+%HAbA8yk{(n-MLcZmQ?igt>==AVXJJd&^OO}z%+iiU;F+sAt8Hv9nysT_ zdE;=R%KBn3?6M&jucqh&DllP$ZY%!r6SoZJXF$CRLe8r^n4_S!O2D?eLm*8wk?JE{ zGIl&BR%YiTTKRlPz(McCu_LI=U>U-DK_8b}S`%~{LXpPLa{Zxd#X5End9Qw;jlNc& zbl=l)frhmuDE_-0gwn!oHo9NZywTtuM6Fi)w4}Q*i@XMq1oaOU0ydHPL!_K&dC)|Q zX+lj?JKHjj)ewzjakhhF6x#$eH5fB9mAR3M=5Ls;jd>Rn$AbR5fHz<^-+>KI)m0T~ zRy_-_s9E-J#Y8U~T9L71pIITUH=ENT)qwnuKBAkTXvTqaW$R1znSio=humwre-+nF>O zt=9&f^6Ofz=n8`RPgE};x-J)!VZ&A@hutA3>o3bx0M#XHp}o(f1)jWenYzHg^eij4&{ zWPiw|>S_7Kd+B=0BcGEocQPwP%n|z7-}F4<|5Z`OVFIUEH~C(RKR2D?%xdayIfhsg zo!h7zu)%rC_R4m+#-=8y2@32rZ&-1&hYn_bvam&{Qm$FNJ+A@8w?|pm?o1D#E=QC} zBux$DQ(uhyv0?>j7_H1SX#p$<+1{XhlGbN`hR2?70g6Rx zix^7miafMyJ);BBP(sx}9RX4o`>C5gtEYCYIt$`0M9Zep5}qDxy+_0OkT7;woIQI} zo~Qvy07iSb1m46l#m7PW!QzaMlMx>5nD;%^+Ym&&X&z6F7_!t-$tlKSxS8;^Mq3bO zDy5$?>g;D`x{Yir>sJ5RyYs!0(v1r*+=M-4ofQK=4XeW&rnBT3b-eZU$0+UCgLQ+| z4po;+hZH>AoqfCHU#X&IAXn4BJkld@%T$@hhiX?n^5>2u4SArk$es&-mq*qu(8qRMI~XRRg{G5L+D!- zN&1C{g+{f3H!MVx{}!-#B71=AJDP`5=(yQo|LaSL)bB(<&u*IHb8*Z=iQY(LwelXE zOaeRu)tHZDAgK%J@Q_!UMAX$!UMy53+mZ}XL?jh!v%yMVbR87?xHK<5OI!*|f|QJ@ zJTFyRd!)E{B>VmZJV8JE&Mn*XvJ~Y|oOmBdw$`m?q`yrGRUeOkny0jijHPypG~1|0 zBG5L$alDklzmDuvpQwQ)3Q4>D@ZmJaZRv6D5I7|07W4qqFofH2YG$1{U!~WTlviVo z2cX~@%)c6pW7D|H8c#i)gXwd*;t%obrwEGE47AlC&ZbYyk`lC*iF@0;dz@4bBy;eL zk-{=A8At)A#yGrq#+M5-@BuGM0(tGTD?c0HKkJ@?viA)tBd)XyIA!IQVJZ2MiYiKu z>C^(9f6r9d*&DE4Fd%>Oa`E~PBof$KInAv)ZEy7oX^;69g9yX`FyPGjty%a(aoBhR zbO^~V04m-bO*k4ZCaho7+Uo?VEqXk{mFJrnf}zj%w^)=*p=qDBvX@d#Ok_WbgNMzRZhUG^tW|pBoddO-u=ZRERSHR zK6v=y%j@zTl;oG|@zWp!KOwoY9`@$-Hd-L0T0_++kC*`R7$Nmz5L1tIO_as`>a6E3 zg&yg9`_^}iN>I8^c(7GLZb0IjcKmCVMK9MRp>y6~J5Qey`0uq>gU{R=0uaE6E#59@fj{T8RENc?Ez%B6;7YMQ6m? zkzqP-kR7#0baT}K%21WtJ$R^cmf%vqlf^Kg|t*@tFV=8K%p_0g?q z5b`fF7amR(5@VIhQ0QmOs6r^`>GOR;E_N?~O-1!FHB-xas&f!|uv79xGzHIxJJ0io zSNOYBXqj*3nMVMF<9__R49p{&0^jwR7PMbZ$doNze)uS|`(lJRD0gjjWHa!(r7 z&L>{RkjoDuc7ML}hjfq_l=<{7sE(W{_UBB*4|I~>_=IJrC?E-X#>H47ig4?Mo=~CS zwkA@{n&G&p=?_Z#G9_J)PlGri5;GVIqOUy!Zh2$}huwKfjrwYR`@&;R2V`kXu}QW^ zBd7-aTDk4oKK2LDVdl_Wka`@otZa}#(Qfl#+nmV7rH=kiFk1=QN8nav^NEVTW6R_) zp(+Zyj&O4WwvO* zZr%wI*MtDys~`ZR7T4)@WMGssU~ojE!DqgRssY#lret$IYjlcESRG4c$N{A|@5A|> zB}!iIGo)|kBk%KtvvsBGD}5dB0%O?}425Fwy+8)|lT|#0L>~fq)!!>rMH*nPCHEB+!Fn^ z9Y?sabZ*@e4_&rCTV3nzP{o(--4(&)gNcmLG`HQGh1HoE(3SDD+Rl5Z1Meh=RgWcs z&EbvH5T&m`9B>IVg9TCtli#St7O_Qy&S6i)4>4(dK|I{|1M7nnQ|#pm(S>9u%ygMU zrv;9^WUCtKqt4Vc_lS!WTn|ZM$U|_AWMmbSw+L73z8`YOKmoeaLTTIl45Oa(Q zd0D1q#Ev@v2M^`Wk{&fzNfY>)_egkaz!DDit|CuDV6Q?IqcYAsk0gpa>it@(omKC_ z*ut%2kW=&7aHzE$5B9s5$Kk^4!&D|sSn!v(H8tjJO&wh{R4MAyq-*(A& zt2Vh2vB2wob~hH$QsLK&!^k+-B#qsHR5gG=b2J zGK6PJb&xYM^!h**LTC^oa zw>L-!$R*n)xr-V{fCj3u4PXs@icf1R8~Kmr&sP(t{mzsiehXdQ5lP$93iU7hX>2iS%{hbQj@Jw3pS42)kx&U-Das_kb&K1J5V^YEHg zKGoEK&D;V?X`kB*(EWF2INA&xi!UNG21bRIBFUQ5oqE6-94q0iJtg8yE;+0hB(tvD$)Lek;uFfzkK;V$b+p(Jl@EL5IH=4Lk4rm)b)72>_))Lspm zT)@X3N{y_(#w|LbXr+o9814W>%U@UdX-q9c`rzr8UbtX~C*| zh!e4tBYQZsJL&kA17ns>S3kuIk#mQ|>pis>_;7R{9xaPWcOu!m^4<3GMJCn_z$O-L ze_Ij}Buyy2i8^UsJigci5C# z-ZjzQ08?cp1##a{DoAA12CK+v#@Icty1~>QHkVsqTre4`r@1h-1;e%|P7lW`k^idj z>B%JKwlo9JzSYmVp^}5&9N0OHAr@n`6tuiBAV!}1OVAMnTti~|%Q3OWhaOzE724Ep zO&la|!!Ch(UPd;bJ|x7h2B-##!v>IvL$8b>=xpsA3d3uGp*XjgI!(2=ec%&#-beHb zlMmb>uTOy4OQ~cdDNdjBPY$`^-$7BBAU=A?`HJmWal2VoZfK3TClEB;U9MoJT=d&Y z?r<{j|9oI;@f;INwS#E-^)j5p2j}NWr7M(RE}3DX9jAQLaHltn$fss~T>f@I?+In^ zBd>)?H}v!JTr=?a;b0lH2;nyXxp?eS=^$|5%S9yCX$y>?o=CGL5{4%sqNI_6@^?2G zoZ@~2m;&wa3;U3R4~sY#QO08P~X~Z9!Wax`H|^{Pi1p!kyA(h!hQYV8-{eW zky+pG`PP?0Bp&}3gIHV1Exr{i7T|=-=K7M%@x)1g>d~XIy5wgYV1tG3Ls~$L$mUy{ zYXXbPdnFZJb-;}zC098CUs`m;|yX_Jp0%G zhcdt(!&X8caXYn#*Gt$e1!Icg9N(npZMx?bvCqi$O_5?G$F~v3)HRCC!2U2AcR3C! z;p=zza<#jd9|!JUme;!$O{o$|7Op$cMh6{hR?ewReE&jVID-Y;ovz2k_}-M9h(TClYs3}mDC6d0Npa4-payxO7lZ>- z9jUg1ssS2@%E->4X1>`}{Atchd6q{|iL8T#rZ#v{(CVoPj$0sxIzVcTWjXzry8=WT z) z-E{jBQLicBX5OcC7a>2xZQ`VzKi5X6Wi7IlI>Ny>Q{wfM-BnDWmCf$7>8bYmX-qe~ z1Lsz^xEHi7rI>|4-dhi1@fvJslIhF1x3>YgGfd!e7lkTgB1_) Ul;(6x@oj-&~% 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:skG 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

      Ux+Qt!J@v;F=gLHkVI3Q3V0c#QiL4bsg*9 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

      9@rw)c4@QBfCTi*=659 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 RL6T literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/demo/test_video_structuralize.mp4 b/openmmlab_test/mmaction2-0.24.1/demo/test_video_structuralize.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..1170c88e8856aacf38332a50b448635e1e311a8b GIT binary patch literal 579876 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

      ++^{g5NRC6nll4g#kKy! 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


      8#Y6lw4X2Dt zWlG6@wS*k~2%_ktC;$IiC!TEdCdUU2z8i$Pl}^7IV(~8e**q}z1h+NHHM3fUbq_I| z*|DTFH^ZGZ#oi;@w0BqDYl!|_aVu}8>>q_I38MSbxmKj&;Fh4CP@vRbc+da*j`vSkKOM-6VBHbzmkyqB)q>FlZA9pu1AOxIS)dh#fbwfBCRb$vm5DT?njOU-5 z6RnBzIGvnI4l5h4=hY)Q>ld5i6S;WO7G@7v9-GkJPJ)!ap4$R5lTz688@CPQ{PgJ1 zqMxYyz~1Cb)|OgnXJ{miA7RKooIm^HZ%cr} z;JSI96+TW^Fry9=2u=gY+m-SMFm^78=4wobM88Y>m_$5Et$^f$9rS3MNaz@PpXX@Q>0dcTn+G$>~MWlzf4PBFkQ8-sbkyh zB-ZLuMW)rfJQl4AwVa$2eW?6LZ#9HD9*KVLZY6#&u`S;N7;|Z+oD9d?vMI|r6+vZf zALXMCzuxGTV+>Z2w)`IP#3uOxCf#3Taw^%3NW?4$reb4^9%VnPdXw9wXyw&9uDSja zVE9yqO58&rt``qp%k2ef)H!q-d>-EKvVOhX6Gk4XkiwP+2XN)Of#D9`HkLo4DJZ90RfFXkD)VkAL{m$$}t<~(f~UhMD$b3PYT;xSxVnjS$~F&YC=}LB&r(x z#+tB0?2>2CwIDSIts*mF)szml3WxW^zTt(*@4p-?wPG&{GwIMhEx5-}w?C?SF4ap( zCUA|bimBc3(s=cU6S=QIZm}5RXa2Fps8-MKJuyHeT|qu>N72hhvK-q zJb5DJVfG*pQw5g1sY6-4LB$6U==+gc=@3~~B6jvuk+5V}l=zSb+x97uBivpK_jRSlKMT6wMN`qv~Uk;EW+vNX2I6z7HJkQ@N?Ah z@FDk4>Q9)BoM(_E+gjbm!7bwC%5fH|S%`aSlqC3|WQX zav(JOOPa?6Xr2nb`SGc?wbeahs<5{mEqg4#^33G24GfJ;a8+j(z~YFwmrQbv$?|mz zaP(=YuuG=X+bTWtRWiFbBdWz^)qgr#8bky(@rTUrL5HQniC{@vk1Tkj|Jt^oKB>sM zn&ki#+>pmS*v(i)OCnRb^1<-FMKvlm=m+KwVLJzlmOmH78y)7I6Qt_t7aaAuLO|as z;ov_wY@2JI+qXB7A&Ybxlj-N_paYCDSvOpF{vX4OXu~xZTdx|GDi8#(KeuS1N(n{_01%po*NmH-ty)j%r!$<7#dhPzx|F_@9wlN5vJK^ zi_61gIZQi06)&zv{>8U}^pA@*)!?kNk2_P-8(@KV99LKJD~ zsIF8XDV2K*I|7PZy+Bk;B~GJ>ehM1+ar*O$jz)2Aa1FHQR1OmNqcUb9G*}EYUs`w0 z#@jN8mz4F~7&C?}8-glffU#HW)``2l5;c~jJp_bKvS7}((kyb=#CQLrCF;3nCf3R_c8)&N+%}0;L$x4#1*NMtkPtzdD zY+YS+t3Ga|lhT_9{zU7O zBr&?7RCe-+idah)^eJ8Hm1JP%X`iRI+BZ4lVj3H6?;}g(P*;HQV8AybssvD0Csb%( z`?NH87`>AM@Tasf4}17E4S>mSLGBLv>vA;{(r|xX!=GS%5%=KU&O|r!(paDsu$(8j z&J1hh#i|}eQ`6X7S6Jj;%Sc8;Y1|-9b5?LP|HAenM#~dYgWNyGivZAs;zX7*as>Z| zbc_Y|IByS4dLx_AnvA>wT)eJDYjDAZDU#EU`x~mnFMa<}e`VxTsUy}~d=Y-9sAO=? zl}h-ErSPLhbDuAY&@rL^IC3VbY;0c=I$6dtSC$}kS{!XHN=W*}(O5R5^VE9B>WeP- zmg?h(eGV&|GOFwg?hu~tavlGuhiXU!9tzmc_W7-K^1X1!GY(mIQsV59w=vm%L;Et3 zR@|Tho$dpZAQ%Bfe5v6;UuRm*wOBS169Wp*l*Z<+jr3E_UV*gaVBDJ;Oa)Kt-fTKY zYh47$lj~9?=lqoTaK4?fhZQ&||C3&6jvNRF2@e@q)ni@%+`ZoqQ*1l1_~_73IzcPU zNCu5y>wtVk<~e+;=D#fH59`p1!~ThYVSY>)D*fQI^#5HoA9g8ny`IDOZ9t<&jDKN4 zCd@z(E2dtexrwJlpeJtn`DlI}-S@ZcdiVsT{uFeJ9$z|4n9>!WNVIyYaMzwEpz9^zk(UG@ww~I|-9wW}!ja)5$|&pO_O~?IWd{GWGu-Z5X-577PdUJ2;3FYbR;p zgmG&0@z|ya5-Mjm=*R_f)zO+|C{f-&^pG-1K!W3+AM7@ZYB1kpS$gc7UX1$DLu;#Ic9OozZC20Ae9WuptlgM#PAb@bjAj8-)a+ri@jyA1lOUuJGf!BKo& zN}zYs@7x;h-X&&?r4?^f-1a1ca^&8e@+g4zq%{}#E^W~OrjaW^9I>nhx&j%@(aV{@ z-ZU1mi2S?kDnE^^F1I--h`Cvrj`Yy8ugiI+FDJTyD3c}sq`*@=l^G#<#Mmcc%&yYP zR->t`^&#JSiXyUo=Oy#>I$1HsP(dPgB~41jcJ=PQlF?N}n{j9qy0!v9^Q(}MX)cyu z8c4eKuvK>F)_j&Ne1JPApM6#Uc#g_$`?FnBZ+{Z7DQ2`>hcAJ1v!%MbU<~xv4OT*V z?isf0w<0&vg-xEq2Z{rzf9&(TU`Pq=MhG3_$x4n`Yaoh$^CW(mHmuRA`sUXsI^$2K z+?=rdZ)q&8LnO33bMVCuPU%+2CZJ;&nHQ!2L|NH7iY3=$qGz z_WH?vxtq2Ytjfi$IAW_+XraQZT0l{8{2rG}3^}OfjDhnF-TnQ}i`98ovn*co$;RPI z^q)~q z?7L~_%T*%b=Q^;v>Xz=CGEZE4BJeyGM7bmPPoZ3DDYG`?U@p1{Gs2z0)A8zPT@1@C zaWZoGxCfS;ke5CF)o2PRq4o{eVhhmg)nb&T>l0*p&qq)6{+UbxZXD1$2anh7LWES{e?WY256mIwI++FDRJ$V?bv^oR?uZCui6p}xy)Kd2}gRgCDktSVk~R(9xIzVU5qN2F=v`x zsdwuhevvFXo$JZReo`#A#(N*Hiq10PZf2T*g%~NJvWT|w{8fbMu?Z`=BH)BCs&d|D z?NpgiFjA z+S3Ep-SNNrm>JHk+Ium$^ITlPeCW zqtpt1D!N6XxclV;xx^H_7E7cHpUW|azQDj^Xyo5u?abR7Q53SZHZj-3QlgBg^Oj(@%^ybM*O=)5Sw*!FWsTqkc}p5R;l62f%7o` zN}NnfeT2jPXzpK)9K4O}2A*^p=OG(uqX8u4uQ!!lNIKC08IWMM+MZ`dg{F<2|9H9s|H}T`A#}0We=k$=sd17FaEh zyITtJ?kIckk4B_;U%%IgPzWb06ws^%0A|Bn?ip?EXJb*TD8R31*E7!~R%OnHF&?ps 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 z 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
    1. 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⁢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

      9yLSAGD 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

      D^_Tm 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

      |lU^|Z3#lE7uqZ?HHjFgxNlvjuhcgVX{ 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

      8Z@QNcF{J;Z!^%-CX8w_L= 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 Tf3~5TEfdaYJ@GyAfcml4B*uctr}p>Evy0u$yG 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 ~{FP_P#gdx6?%8(Y%b8p1*--Y45F-0npQ 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 #D|GG}$0~Nj=V4h%b{!oYJ&7ytt792TITl9Tbx! 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 literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/resources/qq_group_qrcode.png b/openmmlab_test/mmaction2-0.24.1/resources/qq_group_qrcode.png new file mode 100644 index 0000000000000000000000000000000000000000..dad05428f5602ed1d20621db0906701bd7955166 GIT binary patch literal 158874 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�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 MXLm}alYh$p05(s8;Q#;t literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/resources/spatio-temporal-det.gif b/openmmlab_test/mmaction2-0.24.1/resources/spatio-temporal-det.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f52fc76aa5fffe5bc95fb4ddff06afcf22a9910 GIT binary patch literal 1302833 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 yF%Zn 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 z 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˟&)^EM2 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

      _mojYF2Sb4Pt9 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


      eXho%h5RYmc#Mv<_)ZFdYYu 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μ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νq$!)Ht(j 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

      nzq3vH^O%*L>aA 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

      BleOu!O-<4iCWZ(G;i3}JnJvDT7{oZRkt zv)#KAv{swXULeCIaWLYNtu>3@a~?DsGfR<3_?oQV;=Axm`D=5^>(7rkclj%LzZ-Y0 zff%OZMa~sj+@3Ssg#tHgRIF!y?$p5`8#Ab>D@h~@s*sul`NFUGFD zyJN(rRq3Y;hbr^yMMpY_22Us;@ctEs7HGN(eIr!4u&5fwbdDKYcJZ;OwJ*pADAFYK zN!erE_@LA3$Dwn_FY@K>dbe7*6a|KdrHK)?2v&9~>3@7wm0-bkRkp&oS!L_{=H0O%m&E-Oo8OJ0;y)J1^=oJ~W0ifh;ok7XUl3n17qy8J_cY37xtouXR} z423LiwLOWN7t&~_(kZr%i}!^No&YWvE*BFHrARSxHtU-S3g2}MzyHlOMK+IaTNk** z%Ex`Es(i9(!6Uw*UWukJpL&%3?SmJ1m}-S%ySc{z8|JrvI>zlPy*~qngYf@@D>jT% zC{+!u#fT;$wkH-GB?k9)gK`>62E{?10Q(AkEHbGWboTg?_DVblVpA?gx1vtsWW-!> z?RGZCkj0#uVnXVTSXb8OmS30mppJeQJKBxLX`4@uWx!nE<@e$F%HdzIFZVR|!$9h4 z^Td337v3O9?P+yu2tRD14{C3rEw$orHj4a2!wSk5!?1XMlctjb<;IqAO_qGL5w)+)25x zbE#_eu@Dwnp$CmR>qHL&2aBk@Zxzko4NLxs<8;77FQUYl8!okj8y+ByzO!GPLmLTL zQY_-9#-a%DbR)^N&t*@$U$7sgw{AVe_^&!l^{#4Gg?WGdvFBRmH2sac%-}wXtTiIu zS1~HC@yhxrvc(bFMcH(D5PVz8S`e}!$k4WgH9zw$;buH$^51UlXb)o$GK?28zAA!Y z4R*AM-Pl+r)h$l$lO?y}{&za?K@*Wa0gmu-^OIL_)C5`ocITMU6VF}qE@;lnH`L1f ze!v8H+#T}Xo}%i+X_Hb^v}CiOu4BW=FhGQ=CbvtXr49+a8>VXv&<>a}x>Wr`g>55# z8S97sX=R|M_D84I@hASCin3M58+ayj%%Z3u;c73wTaMHD7h5l!oh0W+UxNfH?8gpH zqthoNJE9*;zh3BLH#_X?F(YtVUh~48w@g|T`TMu&V$0-9fo|*Gjcq_5zptrU108r7 z`>$eepg)1uRF8}S6}eN6)$db2{zC=Dr!Br`?9d}h=vvt()$;h6HEdJ~X_?x#bj6r}BT6*uo*&FRk}7Mt4I zj107dy|AMx(y7tWb!^~eP6y5hWIx0I`!=~I#vq!4HCjQtHi%PxwQC12^+Nj9Vo6=ywOH=Q8bvm8N;a(>qdf6DZs1aut_9LrJP>@pGU>Ix6QM)6P}va zY*K3L@X9_Jd@0)x&N^VJbPD(mxWDLm7rl%a2*l}!f{>0ER)+ra@R~rEf2-0`rIW~E zMsssl!uO&OQ|BC<({4vQsA$UKlJ%Z3z{+KeyHiVbhSYr)Zcn8m@{W`huZ!tRxEUp$ z=Jwu5Db1?%(_=;SF%a&yY*gw?Nyt;N%>L7+Dn{juT_ zzb_C^{p_$nVWB{cuB%y}Xv$jSr{JWJIOnPDxeFy%Rk%$o^9JyR3O?sjiB;YGvQ4o$ z@LF8hxxpl^O_1JI+fRKPOz;YXq)J^if|m_t+?rZZIQ7e&TgjbA4y^le6nb=s#r}f> zhEPfn4+g+8?W%*bnpR_nuYX8_!C|FG+A(P=`^r*<=Bhp^g8#wY%|b=|ROo+wc#=^j zNV&heEpnoExo{eglh8Ebder)ZnzGg~8Ygs=ZCkVBOPRR!*hWYG3sV2Voq<$ z+U5Rq_X6%9w|ZZ(G&x%Te3)Dtr1!dS2Nk1Pm*Pc{>UTB{-st$W{>iUSu7sju&Ce>h zL090+!vYR|5-^zAkD9O^U?_>1-x*ydZgI8-bqGOd~hVXk#ZXV20be zlJ@wL|L>ETl(}>8tJs|bz0=q)_an{Iy%ZNy*9InfDutAP6TCS*H9wUFkMz&lZQLph zbZ$ZDHcom9cIN?KlVYka4Er6_$I&x!jEsDq`o6|zP#f(l7h+npbutb#`?%#PADP-A zRLT#xfB}Ru&joFS=C+heJ?bh&mdiF;&C`|fBWQFClDh$ffz+6bNzgfnRy!tyM}ZDj zbEx1u9vb*eMwmzs2Bf+|ZcmwA>YGx?($|`S{qncv9q;axN+f*wQMHFs8IhEYt_uIb z#Wm)ZZ}H3bOq_=Di;@f`BaO0jo~t?TY;Oq}ROimOJDTKaemcQXd+_;m zq01M~iGL}ai>ildj`&;+A}0Fa=?CPJQdpFjaeD4YXfvSObb^tVD%Dz$Uc3K4xCW6> z=!=D&s|{@3pkAbXIC}x|w{AH| zimDCL4Q=n3REmT~nPQSEJezsR-L8{CfqP*!P2J70docWqpK<-FXO(l?LTeyc!Lq|I z)+2XY!ykYb)n)P&H;u}B$s_+&o?|4_l6-NA3SK_3w~wcfwN$Cxch#O#lWd#`fcRwS1jvhgu8KAKmVU=%P7?ZAn=LIbY5klH*N8A${*X*~e z`vVf1L`CMrp@epLx=pDuCap%^iTtk7{^@c?vK_IlwlZw(Qpd{GG)OOC7r)Tl^)GUh z2~|>v+C?^xFRm@Exy|cC>!+iK!b5J`)jtZtRBT%OkUX5f6h-}ddt0V)TsH`SpsVj$ z9az<}PSvMZpNOeADTkW?ohdr!)nmFAoI9ANV|6cEm#(*9fvdfyD$8v)mmljAqeQ7M zEtl}a5Y65-jR!G~1VNe=mxEXg`NSua+G@sl{rpToK%MX~qfOYxA8AQEfL zf2v>C=xdG(d~T*lD7?X~V6ztCpr$&@wwpy}r_2!Q?H5OlJlnZd*g$j(ed2d%tE)A8$e0lt6mw)&eEerlN*J8_iltf7`EHND-k(O ziK+_Y7eIMiw;hJ(o%sHP3k*2 z^AE-XQQ`~q*=l}(-|tw|oImH&CCN;Vrizy>>2#a!S17m^U6V0J2(+tt9(w-JY0*m+;kg0vYi1 zJHV+b!`QWdxfSKXn@-^R{yoT%x`M*#W2KC6k?uMWnWV5al`Z<7GNe;{8}e&izxtF( zHSuV|d%#t{&p;m#!b$v5?zLiGj3j8&%9_A0Ph-o2F=}@rxu#B-yJ>@k^&Z1~BRavs z+~HR=0?QIQ-E}BCSF~mGY&v=UD1a`APCe|dtawE;g(hMc>2|8q43Zu#{FDF#vvxY_(zcC%fkSTAmIX;{c? zK?vQb7B34iy&*`1L}R)Y(-MwQlz+khEW=6EN@0EInd0ZGz1yTEUI;ml%!}Qz6-_Xf z-*%q6%EPUb6l)(A}7^4F`AEk9lk7GVahN4-!1~IkAPCKQ)Pdo_XgvlatT?%%+D$08mr3knXs?c zwA%s{pu7euJiU_|)PmIUWal=X=y%G-<-NQx85j8>+uc>~!Vt}r&rIVZ)LT(^7ubFh zQF1$TcbWipsmkRM$11;b9zYVs(J@FJD@skj4yddnIxNfTMFH{&m!nURN*BCPZi?sH zXU50|XNxtw=w@Xoof<&mTjC^d!KA9TGCqHjLCdtsQ5=6oId97-IXDtSd`wArr`Y!l zEHQsiiNt!nGP9eTlZ7IS4U4MDkt@_mR1Yw%w2-@%pIGC@@q7@`2+p>#W>4|-05o!< zFeXNU?YKJ4U>Dv(Hy&qcwMAF+mO<;zv0jIGPf^kkL8xR8I?pS0&Q-am>e%&pLCEtuMT->}W#EyW833MD|G6u075+TsO@Yw;8bQlNMURy=rdE5$WX z+})wLyB7~0An@D#ci)|z&CK%wGMRaDU)Oz{$9a=gs8Mlvea(N%@8C7Gp$6OASZ!I{ z(@fV$7;W}z>^h5XS03SIi8j>K&nj#zt=p#$vIR+J9?s>4YR?vqSe#w)ldL@1{b<%e zJ51vDvdt`fn=V?EO^7`J(~VW8lAUt3Z-@b2KR2q08vR`ax?GF)ntqRFSqW&KYh}^{ za>>auv_IH=lQ&k8zz6-J$5N`hdK>*CX@bSlYtUBuE86Z^!mDPd`$^21(X?m#lCV`t z%Ky+%T&JKAaS->fjiEOF?&SS5hfUFh=7GInoc{nbrg~6Glw3YaU!mmiUP$$u)$KNr zgVaW&iQbR=wsf~Ti!nDSGGf*@=Fi3nY42B6rNWnfqmK$no}}xm#hYJ)jL#yJ3NXcU zQ({Vc8aIX(<>&15N4N+dHM#*UFVti-SL*wiysMiK*C=A$uVQqvUUqGK~ z0fWwNj8QH<93|U3sVV+|L6*&i95u~&IMtGrm>OTCi@V}MW)H?G%TS2jF5GT=y0j;U za&{I8lBRgZO9ojrdV0kxW?lKmcO+Q2Z>=ShFr$>L=-o1%C?e`VfUV!sQeQTO8^#Ft z49(S;{vPQSgNdnxyiz_3626t}Sjq{XbDYMqqCb&524=>p^M=4eh4 zLnlmFYS1rvZ64ho*0A$sqY^0QmwcN^07rk>^aG-@ZhBYwrweD?jP_QzM~9uDSiy2f zML}5FW&l1w8H8Bo^9&+q@-p4l$;t7HMd0GfOC@mJUn(7K3MDCgF@zb4A4#_f?Dr!t z2wgA5zn8QpUd^mQAE|I8efN1tTub!d0m{L(OlJq7ca3zwe7ua^M|tb z;l{JjBg~h=JrA&$LVKNUNY15Uy)~g>N*HjLVQ+DB$~ZnG5r%J^%Tr(Vt5?-bIWSdL zg)`RI%SFH0!qOm@r_v??V3+fKZv2M_CBD~wTr#0XNthRT%5>-n-_^%ZnV)ZZE^c-W zD0W5~|B*D0Nunb!4PDmG;8BIqnbM}6F^I&~vrEOJEbmx%Vdd(iN!uwf2j=E0>*;J7 zn4stL^_U-yEnl{LdZU=5qH2HIXG2YaCIKp+}rnmV(v9jCb8XBfK%0I0dy@6D;4Q=4Y zyTN+_zs?U=5YA>^T&P#9iQy=-tkWi+u+$%iMZ8UBppXl}X@hzE6%ArRzLMTw2K(rAei_VRd6v#28=mk5x_q8m~F0@8@ zyFE~cdajn!l+Y{VwxsGoS28-iPbdRa@_ER) zEd>k>b>otGGDiQJ+cjV#-_4LQ)c5#~IF&vA4}f)x=(*46XX&thD^+q>lYCW-4$A== zUbhDUfse1DL~}XQEmS4SN%(GQ7fOi>Wln$&a~6XRi}p9M=5s}ibNe^PAMOFRus2FA zU?lS-v7nKyp-MT?+i&_SUO%jsk`|Nx7INuH8)3iy!HAExo2}vY>3*5t7rv?TEK2Zm zP2BIS#a-cO#qAFvnlx@&oi~V;KP`Kln_QqmtIJt|+PUF#$b}5k$e%KIl?a{Zw%mDj z)|cRWvB%j}tcRSOhRVtHbh)`Q4XcJJUY4lHTx(v(gN~7Kf7&`G&3By9kb@nG5XdcX zqW0LS>#jFDtVP5}I=y)Rg6q28{jX&bJ9UmOLoQ=bH?}M;1?Sb$wb_4wz~JuUuol|0 zyTjq>6UTUrSR!P_vfi0JT6C+4ylVb_m_OO#BN@^96}mnWDqbG^vr5dur4Zdb=y7El zen(2`JSr(yi8^LQuK*EWVRafh+&nqW;cWGB;P5`3i6Hhn@?Imv(4y@^_V3qeO=2;W zo*%li_@`JVB~{Hya%|aNizT~1`KNuQDM5y@5CS7iv7qY6P5GHis`M|&eb@6o_?$3* zv_fjsss&a?L%)5rt7*ZHudyY65XM!1_#3@rdWwrmt`gmp3 z+XC3?Z1!*x8TTlwB@;eUQjo}h`^InT1hsrf<3`K!V@&PN_{k-2<5fNEw#!>rH?orf zw=NV?KNJ3n&vlR7h&x=S>9*QRXBNHhWvOd?AN@r1pLfiAQK5Shm7Wy)UPGSABN%)3 zw^cUoGB&J=~l27q4JCZ7?I@7Uyai!oFl%t)qga*F_{4l+>_Iv-;+5!&tFkC%5c zJecEx(7Cm;T%^yldyRO!7&zjbgo-Ow?aemue~YU4TPBrJD>BCR7USVBFY`Vt^nD-U4N}}7vr2&L znHSnXX!V+~TII|&OCrWg*DOJwCJI{cZDrgeJO>WH{Lr0vA7J@e%I;*mg%?0X2>FhX zu30|ntFgKkne&FGA7?vyBP>mV^D*AMOD|X0fyVr$Q@&RwZNC&}U>gI~i}b84YW`xm zweLROm1a*)RZK+k(eG-j=Nwx2xw;HaT&omVELU6M-x17h4Brj4jIy-?M{F$;zTY`= z>oqN0dx<=(6bf0Cekqlz32RkO>veS3iCUl7)fA8?>?Qxud`b?FKt*1MrpUmLFJe$v zI9G@|o(e-@<`1zXqPuN055JaGwj{isi{A4c@UONda|A`nuUTG{4c5!AT8D|@o_+cq zamV6m^Z$yTzDboHo%(xWQp?0`W_fGIMD?Gr`Aum^YOkF-Vo3v1y}zC~?Hi+_n7%v7 zvVoSMNdcdJYbQ&+7gj8~3IFB0Oeu-!XNa@`Jq@^t5-_rkG7{AWWIe%1@Luv7RnOY> zb29ZEAvrUf8i)m!R%t$R3E)3e_&zC5-8F!sl5D!kgO|Ty-Beg=PdW4?T`d0|Kt0J< z5@o|waS$$6Z||Ngk{R13C6C%nSg^(TET=wYk6u&0Sc^z{)C(4R%1l>2TID3@1vc|` zo@{;bA3!cp6gK(3YK!Am^v-N93##2}AW2=aBs<Afa#MmhTChEgB^~3*n&Dk%@C07zyVB1YoOLJYN?c2uO z3-=WC0=|xsl)Cp&2Evugq4g*Cu2R7PHMwWInlCe;>?X`=dAsiPUBkYq8xt#KRs$^p z{+-j4dFCx7;q`5y)xE4H;lS|PzNt0avgt2G#wOnV{2kD|Q-;_{=l}Mz?u|A5KWWzS z|NrFA{8cPk4Y*2C2=2=NO;~`mqk<^8ZcMkQjvTw_*CpXO4dp$Y6S4D-@j--~f#3gt?pU zr(IYNSp0AihwCka8<_*I6Pv!vNRCt=#6PSsH2*=TCFK-7=blD@7}T~hp6_eZDzX7G z?mt%yy`wT`jm?!Cmw{T%P4%*r#iaerxS?g((_(lxIBN2OT#g>RU_gH^aX+giKgdK| z92ZM;%-ZUs@n*T`pG|G=Pe3=oLXFR;)(6;i(I(NL96Lf4x(@02t;lC0w+vZ?k)_-0 zwOCsS1`|@o-Cj~{?R}sA7L_%tI5+z{_2`ERoJYhGJ{>3LeiqCVXnd|07n4&cdELFo zO$m}dgF^b} z!t`t5JH2k_AtxMKncWB4yZRq$x3%(f^L}@lf+v7y@$X8M4@AQ%#r6Us+L_COm1uh< zdkTMT&uvfSvrB;P)R*MRcN6|_G>7(>L3_6H^+WK(f?xTvTh=YPG9aB}AzwCvX{5Jk z*l@B)_e{+bz6E=qYxVNzKXRelBU?1Oz-QkD?zM~Bwg+Zc)J-02>lbx0j~G;YEIw|V zMYNQWKRt|2WG%fttG3MPg=HtM@0*z)Ri6Ek$r8-Cp-Y=~b53v?{(Y$s=$YO@{nFEC zh3$JK@5scJnN;a$_1`D`vu)imWG(Ri(Cdn4y)fL$+2rFpckUBDCBk1Up=;y!bJJ$7 z4#u3&)bqsi8<i2Op9nJLNC-U3PuIRmW! zqshTimh!>WC`>^t|BSbo7uo99HaJO7#Qe>}?qFzm-8!c*{k`xO5qCX1*jjtT^ z4+*E1(hQ;|vZlG(g^)f`#;r9B0eY3(XLqLHNJsT%&{gnY*o{kB5bVn#QEJm&6!32F zwloSk7R}`bH(HLVUddX+w8ko*^d}uB3=`fOP9JDwvrL@ImswS$e(uIn&xC>ZHS9IZ z_+wX!r}~axKTp`t(7IN_GT_4@LiSixNQCFzypdzw95|EzQEFBUDv;0xKO$bFGl_7y z9K3^jN8}(--9w}KDPQ`Tvd3eTFMQJPBM%YM>nEaAYayLOYUh$f-6C*aLZ7skb&YPm zDcfvjVj7cG%%p69nbtO&<2wvhc^nM7#LGX1B6BXz61`y2O!2=E4Upm`P9`A=$JWCh`*(3nVJP+ zQ3m6>k=Ss0YGXn=C7=9jiM!cTXmX{t84j=ZZr^Xl( zNHXtqXp9Pr*3HX2ngU>ZUn)3YP3mqB42gVUj{ z>g`TimmjXV9;#ssw%)Kzq-CGDTxd`dGxL-ioz{-Nu^_vb;nBcaQ<4&nF#4y(y18@0 z-47=X0l0#wPWbK5N5g|9sFQ{e;;(q%<`PDiH5m%t53( zyLD9rdAt^Z<}UVx4Qn?|6t>lQTC`O&s^U~KVoZ+j*kTnhcv5=IBHOhUD&bz{kY6Se z`@m4G*jZrVPB={9bLYDUUeutXid813R{P|Uyf4MZ<54)hCh(X+baWtv@+(Gc>s zB!-SFE<-@lg`IUQ}Cd;i~+EvEjJMCwPrz1Yn3+e6 z3P~^2Gv5-@@@pd(c4=5WHRk5jaL;uL>fS}cz}&E5!`xe1931>i)8g!!8}#!nL*$mJ z=iz!-vffl^rnB?L#f7O{W3rX|Q+mI)kDC3KKt2xt=J~mu(V6m@sOed~%0VY*Cy?A* zfgB}J+*4g$T|kH~E}6V6E(7F_lWCLw1w>(SgSBq|q)lP-woM~^*v?1tqsKyd+xg2k zzgwqI##mg&=l}Vn9YL{>_kG!vk_x0h(0F-cWp=KCx-{=}bZ}0UK#7XueqLd;Tat4p zen%7cgr3hgUM`@T`^nkDpk^TXkJ1*IKfL}Gubuk zl?{@~ID_nloVshezEqp1)Si%zEc&)H(@3X{$;(Xf*J+yvmceqSvVjIMayob^NGu`r z?c=;(O?C*zwQc%*e~y6$dA>iJ#+O7nT~X;Vhz`j8L5xOM(btNVpKzJ5|S?@8l zF+zRLv{31Ndd#9-VaGLx7Khdj6k9tVxfTX*Bl%ep($3oXI8I%z^L>0Tevzq zH)DOwqk&vQW{Hy2;9pgrL?JbH*-;o?c+Yf?PNH|kc|tSH{vm->p3=52QOKs8tVTo5 z%$|uBA&81ZrgyGU98Ge==BU3}Et!4@ZU_zog*>wEoz%&BJ5c3wOy#p`rdP`gAukU* zCrc?e?*uOlF=PSb!xS?jM5#G6iScTu482h%UkOOVoY8AD)mYLCa!)_doEoJ&Pr4U&e^YQqdkC zLxs$OnA4|Apl^b+lfboSKEn09jb+{74Fm4~V7E|Wbdf1H@zM3i2Sv^2zs?HWq4-RCSA9Y9L#KzI76dP1k4cxVCByq` z2|6qGXj7eFNOA0~WA|IYT8WUpS5 zaOh}O^Ixd`Ko`AI;O#o$r8>!{mosryvEJT#nF5_VyFv??w+mygRd)k(W0gj$@ck=K znN1e=+fzMmu7Z|W7Leq*FQ>w%iP3>IQLx&w-WLa_S53!oGhfcmVx96Br-C24-d|eN zh~DrxCta03UN%SbD;c{uZqStn59YDG)io(Ew{2oAU9}T@GJ*dMU;lx?km*@7W2R!S z$)}0!8#qEKF~A ztn<$V^uuKJ!|tQbovJBkZ_PA6U&K=KmGp4H&S+>U8+t8=Ro1or=-kWC$F^5p=cL{@ zOSKS}9g$>|4UuqZ&eC$DGurYRJb`Qi7YXJ3Xx|Z-R%6cLPG3@Ar<9WZ{4QP4Mu&Q+ ze|)arAz9u4EJoxF73}D&Ro(W1(QL52P==bHyN9ZXT!pZ}|D)c=dj&b>^>^-P3#?*f zc{bQUz>s(b_RU1Hc6m|-h;n=I0rOog5Q8}rq3&^~f_daI%Y74DZAUZ0NiTwLtcEC$ zukR*Yx%+?S%g^D^I0ts`_lj@#I+(Lm#c{z?&Aw&aSc|bCO)FPknWjTBp53H$tR;Z<()9lvF)6B0Qla*>I~v zStXsf*&5;EqIgS-{?z-ip}i$u|0HDr>+c3yrw6SVNZazPl)Eb060aHipY*p8Zw7I_ z0t}J+ToeQsSs)QsOzHN!I}Aca?H2mimiov)-R{vA%rbh!o1Z;TP&sxf`)ncNF_9apF#s@j}C|DM#{g+J|%w960Yd%D!ygVi@l zN)^VN5;_{SMs-F6G67{fnns`*Wq#8Z>rfO>VaCnZLp}XdKwk8-l$DhbDu9%F<*6xH zwXlw5vK(YUahPOlL@RZ@RjZnZ(j4j=J~~;md`B%oO{DlpW~Y+wb@bLY)iOLwK=Z{) zooZ;7{_M|5h3xR2d+p!3R-q`%kIg|ncRICqRDr8H=ei2J=G>63HH5A{n7>X`R}#7>GjL3*cE)$lJ(9c zUkr>d!p`6Gse^@f>#04c1!#Hb>tWu6A)6561uP1$<(Ix7|qn>S5CBr2nziqQ^ zaO>3R??@6y9o?N)`9ab(g4mw>rVc^FOdlM^e)R3SR;<*~{{=lP%hd(V3DIqwFEGWl zig{mribc;H7WvdkCUYJr{w=2{q5&WH+Syov-wTdvY9$gMY880nbpG@G_eajOibEi_ z^VY(9l9xU1P~%tBrgKZUSjQ_nYo6GW;BF6sRuxON_3}Q>g-43sCY3%Mo)pf6^NW5^ zt7nVGVB9WoBf7w_ok=KA|*CTdC z3AHgo_JJeNc;MvxoE)Q3r~mB0%Yr*?%i~2d8y>MG68oev^M4TJT)RW z?0YwcU(UkjATywK69VBvgz_~gjInwVJVyn@j3(r$FXt{eKIjjE;AHXw;@XZ?*@+zv zE$bJWk~TDecK&~MIdxxC^9Pr6zY6-xB65Al#htaL^ZSQ1Yt!`9*LMD@vsjcp^^mKT2kdJqQoML_+D%eWs^mso z|6ai!@j50_`%N2sWV+^yh(RU)0l6a!83O*tCjzPJ+Es5Tv7@g}{q>!<&)g)ZC_k+j zsLmI{Y^_9-7w2eA!${msFs)Y{(661_){oEe16*~!giXR;dnC<@{3t+Lv#$t(f^+v0 z4mby22XDAX%PkIlQ)u;-2U5K(`FB>L@zbOzB;rj)E*VD60r=mO|H}5wucx!}Q9oiE z<+Wlv)`LtEHrm6eh2cp})wHp(FYM97k2ggK-uzdP_%@PEozrsFVx4au3Nul~wx^JX z-(dOo;vpDaa=p=+&dl1KRE35f$X!kKTbgmqPD=f&)W6GT+4*+3JYGV(AFy*c=~K{u z^Rii9VNi&tuJJ}^#hM~oW6b4!FNLtwrVe$LFIuI+Cko|m{}O+Dkrkf$^toc;=1hd? zF`8WqmF_&re78pt%Okdac$O`Z;-}F;#Ou8Vwu$_n zNZlfy3yl6VXWS8kEEQjhQIl?7D6jqv{9{yKwYy4%bZp)#O>oGOx2VDmcVok|hPk+?|o)!?#Z^X8?YWJ6wxIpwZy~Ln!%~gE}2n@L#POR(?LUT&2n|;o^GDE@S)JQ zlC`{skV5n~od%^lPOT{|6{d+hbFN?ce3CQgzCgCCLGllEV9V+$x|tAwgAI30Q1m?g z#QS&3gjr!qIB7FMeqD4-==S(t6}Iw7h|(fH{Q+YzmfZwW<0j$T(D@dm3-`Xc5MGJT z&L9ixKZ)%jkGNI8_Qc#dMSJF|%&LW+UF*(VHZSCoA6$Gk3t()dc_0jCQ0~dCsG9Za(diNvO zWX^00f6?MW((@wzWrLAwc^9mM#?H=ddh*pe9wursC7c%;%#>U|N{QfB%&AxU)qVZlh7e{UQ`ZZ z$;yWzRj5?e&Xe{}2sz!^WutdVSMl@s-erXYek{HtWuWOC6L)U8N(9chMq$xs9`_}MVMqO1e(v)g+qN0v#Tm;Ft@y0U3 z&x?V68C!PoGJO5%lrfY86N7Y=-_1U7vUh5dG6r=L#6s@wz{CSW$o^xtdlIM&YP??h zHS&+#Mhx{RZ?@3U6V=uWGLL5|0XVMo&pG_>8yyzJ9zOhN`IPjkOxnSNA;Ab!-{*CD z00okLduvT?%7gjkd2fNCK%zE2=m*pX#0P{YwNcB|kg=RpZ<$N|f)nl+icJb-#e5~> zxI}^-#`PEsW|4c{ixlaP5*|~U0oRU8T63z<*^~=kXAi0K4caSe{?lSPOJoYQpIi6q zi3v6(gHb@@J$*Jw!kzP0IGg0hE;_|??vW$8RuSF1G!p)xZzhQy^9P2}3BE51b4`r( zP2MR*Y|iS1*bHMALUM>2HDx>hDI%K28nk%FkcZ@Q`BKw!rfd##n=$Y~(NMadI^XR~ zlkR#iFOU38=5=ZR%0ad6m0`W6q;2B84^?^g$o>dsC3lkrqrTWL&F9kd5jhzrI5+;u z8d-D!ru2^^n5;&tit-ETC#dZyJ0+>{2wrmHh}knGf9dInUrjlKJh|>9Pec*(54^fl zLd{RyR2dHFmL!7Lh}lw1ImAOReia!B(GX)f6lQO>XYr!um}_ z9)9s`&N@MlpLI49h3eb55$HFs0xwcaU_;F@Stq zP}y6GZ0JtO1K}30!=rOWMQI6eUVTk3ux%3hA?}y}!Hddlda_Yp7iAH`@`{Qapu^B% z(N<5jSt0Dn3sy^uQfO({Zj#a3<9lQnk7l1PmA3PxzO5dHk)cUYu1GD}NI9f%f|D)p z&$t!Sl+M-`&Y6OAx^%YPXI<=UHdF^5H`j(biG8`n>aS|c%LLTlPSy=ziv!?SY94*>7lkPciry9~EFl{hU!Rjzvt`K;oNwtUP4rTCw>huZDw3=T6#W6qMno^*LG`djsq?q&1a9kYkK4h(l=rskW(bCiree+jHS;tl*p~jJd++;Mf4>fq;9@Gyd_p&u( z?wl~0oGQ=dZt)%$gTdDLf9(}}0Vwq@2DY=+nk+h`W2$S}K|DLSrW!uXGyaad){F2N zQC5)9J>;Gr*3m|Z@*~cUlICKOW;!FP>rDQX#PmAT;zVgsNl)-ok&fEclk#S)HeH|r zl=30#krw)F;`bDqHm{?;ncubKQ^2Vsiy1C_GFG{ijHI{gUa#rI)DRsL36<;l%Dz#_ z-j(cE%WE<`@IV^cz)AXJr^ll8AhU@V#q#2M+;FKM0>S7e-cX2ceJ%>iB`nGH2drat zP+hEH#-T;ajkyj|(orwOa`|J8r9$-tH#p|Fp26~nIMj?nXeV_E$dO^S4$S4_JZHP^ zd8*Zqa74M#!HA%AQp3%!5y*9Tr6LH_~P3);!K+Zc`Q+Jq;#E1>L9#xUC? zHtH7)1`d)UTXkk?0x?jZOtI(b{f*I~BP6H~UKx$$Zk}YZD z(is-|z`_Q^j+W+>)1}Ws&4b~r4=2W5#w9{tqX{CT!B@ZvUJu0d%J$a;{uH|k(KVRJToXpc4Z5qxeQAhlzczkApn1=(yS}jL>VM~@TsR`NGIb z$at|$Hh=}*s-n97W(Gk*Vc2biEtRO0Ma2gvte715@6z$asaKe>i*}KU?w4JBgf2cJ z=i;W<$$ybL#(t-Dq9qe#Xkompz(BE{<;+KeiN&8?ka*ASVRorv2u}%3U%Ebb3fts} zk&?o_XdSJnvnF&|o>`y_J^kF#j&qg}k{}qyXzRBi{iaH#A%L5XLRS$p&rkRhEz=@pya(08_SjiI^;V!ZRLih4o z>E>tCI>wTSwI&&&(en&7?CRVw3_vNs&Ln{&BGo^OFf;*Ha|!N*v+c4K&L)N&4^V&8 ziYC_eQ6iay=gwzArX}6&3|ROxcU5mM325)8a#AD|mCwtZH4NGp#``6XOqHu~AzZxFl(fx#U@2PTxCmIxi}~Kq%Kbq6 zg_3sB*zj!gTIfv^ckA}q0gt9GM{#rTUg4IpQ;NSmfDpo@k*z#bCbqt{JR7B^#11s< z8Tcp6XC}q2*bDs+u+dIq_fnP>w=5jwxtB--n@w<2U7aTw-Ih!)4u z5`H$lCv@m4>=kw3?a?Jdd`6%qx-@JCqqCi+&%8- z%t(caS29{2_8I@(^{8R|%uDL!oqOclA;R(R#aJrT#i+K6 zC9)9QiGSbw3@h&Hv)t0Q{lh_2mbiS8LvQ-5UE!pG1m+xw-ZI%o`%P-WG(ay+jM zv9@1p1?ySx=`%DSbP1P$yl*(`hMxa@!OmJ=FVJ+3O;imuo|9mJFYacuw&m%R?^*82 z%YPs}iM4xJ>6tj-pPxUD=5CIB>Jv23>p1wFXZcec2q)H)CEI)9kG7_VSh@5wRUXfp z6`n~>h|S+g=68*ke+guwzE^|r!0fb+%8p{RS7l4hKEwLCJ|YHB{ZhyT6lPoQ`yPcS z-iBSPels~%xC=9i^;?uG(r6y9TUx$U%z`wuw8~n>X>SW;Y?pss`BWE0uZ9#iw*K~$ z{tdcxCrlayNvn_kZVr)5a-Uq0d-g7>TmB>`;A&vh*Vf(sCM8o_ltrFpo&OR)TZD7R zm#|bNp76`?B9ZQC$$n)&^}=Ukh5H^>9i$KWn9vmlJYlpkgq1Tin!BHq$#wCEdt+t! z&&_pge{FM;@hE-K41{!Q*imJtp@T8@zE0`&|KUTJHsBx@thAllY>Fj)_7Gqe^bxx; z%CgthSg;fP6Mlwa*KWa4WTW3U-W`lMr#+YwCl7g7pS3tTQ3|_eIxdozG%zKDfl@m!WiP{i74;b zK3>YSfyxUCuXO9G7ooE5HJe_0ET>9P1_Y1&s&Kp+abL;Yz9Z87^D|DiPk%#Uvf!(i zl_p`uYQDU5?G>im#1=2-T!=%voO9Yc^^93LpT#V6dB!97w?lJ1sfMB8lRUAgcR2oe z(C!1fyfXcwK4G}-nb?7B;je$@9{uf9^k*W&(fw(a2`S~POlWIFzI+tBO!Jrj02*l% zb-hC&T#^-HgQc2AO?8vfr^Y%Kh3@obS@WetZ1A|}W_Y+U#?#8W%kFeL@6}Ik9HsLt zVrALVn!CmK;?}5GJct>!pOgj-V~y<@x>N9_3(()s>TpQdMD0&aBcw89JEJ19KO~q; zAb)-!n$xxKO_L*$AQ8Xn^^$CZsDpC)jCMeittuON9Ctt4d;;#bh_VZX+>g-v41muPm(nvkCZPI= zuKOFaz+1~B-_lJRt?TH$#W@5A$6l3TnX7y?-u;T8o^n(Jf)RNGXXtw!c+X2i^PT{7 zXp#ypF61Gx@?IKn5l?SUJAQ}>}c;MD= z@%4W@G&_7&?YO~TqLu;b8dOYO%x1}hJF(4WO9PjfVE7W0Pb+v zzRM@~Vz?p#dKIX-0MI3)r|htowmMETE9_A zrLWEPrM;*t|824__~%oojRg*goTb^^1a<77$MgIi*2IQwy<`XjWfIX?VGy&&Cl{H% zHVlGVY%ADbD%YDK&#$C80FSB-z@;a%4N&zi{Q_r5kNSUCUWIQ?RSOZyG+F(sxpFw~ zPC>60)(PjMg=|I3qDTZRzXDe)V$AM`r}glZ3>DIK88CbL;82`=;b#W#DU1Ui7Hg@x z6GBb!6fa~cB)1by3O!_v|D=VKIY+lHQ1r!>3c}N7C*Edi^)vQbSBct)@?Rk}*vqU>4cBO_-m*$cl;d8OD}7Z$gip4c~B( zdRvY^!|f33J2UuIYGFQpq`#3R4Yhm``DQ{bntC-G7Kt94^o01AT9k+N-NzpP?@DxU zjr5W9Uls+w-D2z)1>>h7O>T6|Y+_^xB%Izl-cR`&@Jp)*F>*MUX%}6t=LM`WLw^5O zlSnV=WzkH$r1m>vV81e@!mn4FZVLTn<5;2FFjpdRUdm9Bv70@rCYqDWrqEMx<@qNfU(76P-C*a#_01T zFTxj3tmJ(=oXk?0VBb+nNUcp^AA7sOEI zTDoSZSw4C>a*|YF#-HL4*(4X-^};lDM$bbwrciK{iKbU`nu~FUt6=KnQy|?Bn>=zw zWTOHu84J8Lr*pj&TjC{piz=ctqMT!9Wrxjutf6~jBebAsLRZCdi*zyQdKAgl@z1e^ zwSZ|3YA%&4`9dR>yBs~PE9S@w26NCn->KM@__idA-!6sGG>|TJYamD_MGQT^ zD*5v&#>Weel6Olj^f3cc5`7Gu6EzMh-A(ccAM5->&X;Qooq~BH%&&>EEO0_PUwN-5 z-sc7RuL%U~tFs}ii9>qD8yfEw3r|XIolZS2m(D?gTSxNDf%&1v@jh+sJpG4bM{EB9 z@LnjIr~fZIEHv6P`L@VGXc%H;r9V_cvsYgqWg3Eq?jcb-qWb(Rd(KDYP~!f3)1Nf4 zjaWy$sGwqo9tvVVCN-?jGWou8_hPV_H8MYINci#FuqnfFCvdb;6vw%OwyqlO@jL}n zT*3~Ut!~!|f!$VmWQ$;-Xp5S5BY5@|u+T}hl>{CX!zx!o8?+m9;bzi0_D^K9z4Jc+ z0R0ttiUyg;Og-1Al^5t(g1dCGYvydl!N4FXF|B}D2=c>q^aH#NgvQPK@^!(qr|mgc zfLo;J?CXH-<&Rn&U@vMjt@{olD~H>lx}k@8l;GLn#$3NCX_RY6Q^Y8jMxT@YYmVe3 zO~t1RZ_VOK32?z`0#E7Z5M#I=9&uf0@%?z> ze*lcMqrkV$DRx~jf}^B%b<%Wi1~^~^#auD&`(e1K>tAQ5M>i#d!eR3HxnBn9)@%hU zpNfX@VT%zq22`$jY45>8gozP;f=f#Nfcbuorr2m&5ot1HkBet$Z{6CAwH> zjqV9eA?>5z+fjAh@l(0SNFUe2eOv;D06E~<=D@q5S(oAn? zqlL4xoBFs!+ohmZ19IW3cXfCv1eNVme|Gd!Gqa8NT;VrV0hPJs7isc3ySGhpdT08I z_9vrtSDr?NqGIl6inq8K9091gtTGA}=5E5b@e+6+)eKUQm}-YRy*wx%N@Hsc&hVxl zne6|4%GZmJ7gV)CM9w3k#P!2LhxV14nkRm{2gX}5HecTX#D=z0*pdDRcuE~<;5E%- zp&dQ41C&6hU%;eLTMm?lT-W0(`v1Ur)LOK%ZjktjEJdBgPh1uH{CZD@^tU0J-XMurg%&IhS2~$1B7I{#JO2eR8D!PL$R%7&oRL7@3XK zK!h8vMS&Vn9|v)k=mmyA0OS+w3AQ&u%)geYjz>XXOH;=X)~>NBh}8$6|1!rNFW5c*&Ivs5gslwp+~NPw%L@2Sc%! z2l_!hZ(~(B*sAC&vApT%#N9PIro7$ObpEizkHLYbHk~hx6mF$R!R?OcV{Y8+X05MA&Ny z{`^423mbBdTb?H`}VD57|VbiH+jUK1E2w`miSnWliKdbLgMLU-AjXT~drL)A-)6N(Mp?47vuaA46WtO7P7gZw=Fz}2}v7E>*? z5=$;;yGb+k9f^naq*abCUn^?WW%r$HgS4#akT4FtCZ~g>-r?;j$$GV+^cXczzTO0m z-owP6L5{3yj1!=)g$o4eq? zmxj#%pSN2t&DA0=2a7$u55P&M^3AkC?((;cj6sxTjkE+1`WFP)?S7AhXfKrS*;04E zDN^nx%{=Z`V@)cwGzI)FKS+Mwp}{-^v-`Rzr2OV6$d)a5voDpGytj~DV`Z%MV?;9$ zS}P$l)p)F}*V$f6aNM{-8fbCa1tW`JGClj_papJ7hrGI{a~m#HAa8IBBQq_~c9DLD z()iz>Bnq*CpjsX~4m`=|pHZ<%>C(>^Y zj?7hGQ9ig6^XBc((O=~nM%F$AD`EOl6;6eyI?zZIQ{ahI z7$Url_i-5FKIs{{VVwXLynhdzHHIE9Pp=0z5f7NaeJA0XVYeLyJInJ^r-d?wS6hFX})UOQV(ST^Lgjn#zc~)!XDsWT~(?6pJMH7{Je# zov%cT)h4$X(L>Krn@#sNqHz=9MUkSYFi)xlPrK)_S`F=cQ`^X{LFqtyKN%Dezw%P3 zTgMA`bUS4%y(YFdWSOwRT)^!7$rfdv7V~+=PLu#S=o8r`<4krMrn8<+>Oen5B5?iG z1XWCHT=FKi|H>F4+cAesTo(f4qtQ_eIK zl?`j9VpP5M8Ga^J@Z)wgD2qfSTgzDL$mJa%lF2BlJ1%XiHDOR)D0E1)OsLU?;a$TC z7QOCI+x$EoIAl7(F!k4;D!tf-S9W20`Ye&Lbh_7 zq&NMZNe&N3Q*o3AB$(o(-MUemA0DOwdTZ8u?-gkXg5bMtIH=tY)ULBX$;7w?Ci3M` z^g#Oe!f69KM&%r&TG(y~_N9=d{2wy(zlTR%`ToN?-@-aA4ZX#+Wmdaq1gb%AVGSGT z6zCrN1Tt8i5S>y1Rqt@ZaC5b}19^gNNS}a+Mpve!CH|;hugk))+)Toc2P_(i1dW#^ zF)VFbITHHLCLFd>>R0eTgmGk-U@gwMcj|V^9)sLF|f{G}w2>URiiYNpB)BCef z)h#r|Epp&H0%JkRWBwK9I>(5wHCIS(f~0Yrgi(NV-1?e^Lf5kqb9KH${{Ss8IX-}Y z2&^Wznk`OMxaBs2ta=<*^o}0`7<@?nTE*rvttR5Ehu)R6kIYV4jxpDo#B=1##w5YU z;>vJ&>spr=61M1F$7N1LB|6kt|-HrO_KeNGZd2yjhu|~4M0=6;eXx#0QJ?6GUH){ zACtZYY7rcx=GaKjekysM=De5Ko#Jw;sGxu|yS*0ZCz)B>3%6+=wV;c>7h(Z1u6BZR zO}ATlG310&Ily8`$E9Ycb68UMtY=;O=t&jgzBc{NzrGNwgxi8RKT7$0 z7sP!oX&G{Ab8hPbVY~BJ^nGq^E>AK7S|&dhm6 zwCJfvQ|0MZlwZ1g){)|S4NDP*DK0Wp@N24!t9$0YUyA+hU1x_XIM%L<;^&|Gu3x`p`o8RBZ`Hi9%lS=R#CUEcCzwEBhr+BY7@4IE>@5+QGt_H3adGd ziOZby;-~WGj%Sn1+>MQ~fYPUck%=@;(zgU{aU^{wJ^x2B~jJcwKOWu2UK$-?{8 zGO0-Sbw5yll?xrxpDA%FHzo0c2hyThk`yuQS0taG7$kP$x@o%{RW)ZjsOUDDurm+c zP6uJZuQj`|n#x9wP)5>5dsn($LXj#m$fu4#Jm#=(EUm8ZvQ7?23w*sKKafRPG?BuS#Vo>rIL5cK#d~ zwsW^RZgX832#y@!aCrLHJD@R+&72N1$?aZ~;NJpke-JKq*ngwxgK(Eoak?WDO351GGR#gks-uO6G?~an1?HuD7LTLbwdSF5pC$;t^JA$b z@Txnp;8)b2555T5X>r?YJ~GCksO$_aKjqd2KEwTE0fCmt^cCtJ3-AYryc1$Aw3q>% z)kODBH%~EM?A>wb1_10Ux&T+@xz`g`#jj^e-H+nW+Bj!{@cDhQIFEXxTRoSd5LEyG zxC5{l6(WpM_32COE9G^2pLUW%sWL0h{v&)&@F&7w55I~&AZqYw8gOEY@{(Rz0+#aP zjX{!G2vR~Kvm72VUy9!sf8e4&6+A`bn;lExu#dyq9*K7&+uM@Tok~1~{{T%5wOTe& zkcz5Pci!9s52VOAPcqIqrG$sNzSG+My?-vJhnsN@6E8_ue)H(J^*?*4uZ6#6zuSAj z9~rc}9TUb^c77W1w33Tg)18_-Tgh7!BXU? zIRlFQEd8cGX1y2ojquDmMgFaOqv{p~p2F%09qpBvjlz3f>lDD_sl%`Euo(yW@A$Lu zQ{oT7KM^;FynCg|V$4ajxyrr0++!GcU0H(;Mn-a{h5(BF8^esJCdE{8#lCvWXg#gp z``@Q-r^NB5WtrjEE*)~ye`#<300a8e{eb2lSy_5%jO*DmG}`IyM+|AmES2zWn{0{{U}a8hj;&KMDLm zj&BtBZ_JHinpxc6Y4Pxf%XShOVpJIs5!(vN39na+JTuke@{PK~{{WGHqxn9EpToR! zWU%><%3tUHXYbbs@T0Fv;(QVD55eCNbXfdD;GJ66S<|E#^X+9>0=WCgz!Fv0xIHVh zQ=V(_nv~^EPBT_(x%z!6!lXIi?w?dU8OODJANxvv!u|sI#cel;JQW?cg}hd~r1Rj1 z7T3&n4Yv`g0dN%UWB~4BTX#eEkgqNHsqvfP-@%^`zli*QtHY;3f*^ELle+%C z^ZD~IqlblgM+q)y-$!C9QP#ej{h$8;Wj~1j0JH|HZ8n>0Hk09hF~!cmaS{745#?DS zQpjhMcguu3RD->SFn>_IYySWQ*!WGWcoM@w@MZnpkFRNBLYlq6S=#xeAfL9Ph{J#e z6U*7NIRNqxhnsQMRhQR}9=w~A-rDl|{{X3>7e%MpG~<(ltC*gYkRn( zZN7E9ply~jka93rIA9wfd7_4m!^TRokW{Wg1RR10=t1dNXM8t+;tC$sz1O=nzt6hz zG|Kb5R!>&ZS}o%L0IkpK{DA9UF8xFHZs+@B!fS{ZRFz%t^yJUV%*mIyg*gREw4h)s zVM3qUZv^=B!T$gev@3rT_$OAi)->CW65`T9B8LDHj5uU<$lQzrDd2%$g=RS}X~Wp1 zS6JEmvs*te^GyA70h(p`<{80SORQe&`tFbBljE1{@9`7%e%BjL@twJSGHZz;)3t;F zZLfr2Hc)S7M%qCr*dv@1f@|ErW-r)}#lIZIuZ(weGsU66I9OtRq@{R&FX;QD&%POaF7PkH zPYpxiKLP1b>6Q^Hh6pn(&Z8UVkmaOua!F&&59v=0?V@+{gV#Nnlp zP!{uToQ3n_DhXf!c*r4!HnV+cg>}OWgX`Y1%QHO7hjEhST(a6xdq3-=MPl%oetm>i zmE+N_kNW7(3HK(6GK=yAbd5`X@vx__it!nx3=F50K}vs$UDE3Oj4~>CDwxPe zA1hP*-)H1~vEt9zN8$Ff@IJ%gK8>nh+g|9eadoHabIl}+_PdSbnXSVJjCo)-qNxEv z2PBjDpYfC6XT(o{ek6~>e-LcqiLVTjSY2DlC4%-C$OcIN0ElC73>X3l?m4gO55s;V z@b`;!du@Be8jY^2rrs|2F0AEQp^ySW+UQ6)AcN>Z2C}?w@bkfc5%d}SHREj_*I3i1 zQVdryhT2FYayQlGDN(dnS_0WJl4B@heyKP!D$zpMe^X<_eg5R}Y>__8&hZnlf z#9swX{k!2HX1}}hWX1NLfjr4tV&@XZtQhZ8xG7LnoV9*CbbiARb4 z9_o^5moMd|(kKlL+%dRu6v)7aQb$|{0Gtt%U%Y>_KkcF5kB-pUcw16O(R^yq;!Qq9 zEe+el8F{6)kwF_kMs1IRtAUn0*Yp1X;;#sJr@-3W{u}Y8mvf`)wxoHsmq=1Y3Z}MVM+6W-!K`R*ZfxByY~^?+jDnIz#a&3~K^*43`#s@2w>+S#!P;$mvtNbRRsAM> zj!(oGyrQd(uNAys^|}3bBW@J>{AvA`zu=&^)|VFk3HbYVl35iI+IWbeSA?hvk=>+G zw)JoM?r_V=kgz#l*c}&J(tJUtTI*UJ#EbsY{)6*8Zdm<*h8QIu?gSPyKGnsXArjcQ;jvqv6ZmOW|8 z$lM;ZM;YA3&OzzzNbr^!iyMK-`U(wOGqobls~+AI=hm_a^9PorX#+K@dn3-jAS;eI zKi0EEY=utju+CWLrEg7XbCRbwQ#%cBDu(%k4s%pyVkLdO3F5S_qIrO52$TcK2c=ZF zj6|r+r!V<&U6DyGPHEqvog=Zr`W)t*9OIrbO_&nFhfb6r^CR8$7^_a^Egk;=!#0op z6HPVb{{WuK0rw`qO$Xf{L0^~O4p=vh^r*WD)c!`lP)FS#L0_HmxBJB}Mt+&VpTMi? zg{rrzt!pB%$SP{pR=fWIk7)<{CcZv9qwXp@L9@z|{p89+mDor*85tGuf5!sNQ zr58M7+P>>WDwzjp$?eyg_&ei!gX7zb9Q=a5mnyTU?b!U=F_-Szea|9(w90dJrq|G; z$3aCDPytE-G-ABh#orS&zYYnktpK^c0H)vIMm@>(6%(3@xurT&o3v5V_?N{RXND|g zxV)5k>MC+Ad1sY32_rf2y*iiyCk1#{KVCDi~VZt z?(gI-%yY>mzVQ8m5;;6e;#k~dG#2BIy;{7yMj^{>k4~Nu!F$`Er^y&dRh7(**?1qV zO*FAV3z=|Ciat;|R{GQ;AjBj}(W>Np-F~$U_D|)K(&c;c)A6n(lX{!ItaFVX?DyuP z@|raRac)WHwra9TbqhRmg>WAcx}Uy>x%4@!LVU{66k)gck3;mYUN1xDZqUb#rH=%3 z^{+Shqa=gCTF4|hTXKvSouHA{y&8DaDBZzr}3jWoXb1TZbt-`9Q$UXl6DqYDc6k-5C2>fapWQyHDOiCQ!`x@wp zymmG`8dXMqE4Pyk|aUzz?5n|F=0LAU;2t^KQuM z#<{BdwWV(&>o46x{$-yI!yD_itso3Uz^+Di{SRvTYQA&O;tQ-=mE-q|Uq)BXXKwR_ z`yXGy-vw9ZzaXNDE5ts~D58o0|J3*BEWDQlq-;OB2~ql*lI5i(!5&;ufwg-K^}(WN zbMrV1zKNgfQJYqgl)JjbdaLnY)T`drpUG7t_EDPx8D+_Dkb_nJdv_%pYi`YHPN@?F z{ts%#mv(veJl9+*X=92|u!bdOCQOjWClzW~t(wovgcZXEJC1)ULimg3>OtG}6-p+Q z@&HyH@sLNRDxRhjX>L}LSPXh_D#9%A!z>_@8w3pZsljDC*ajn&wKrFkTgCEiNyDmWkHQ((5bw2(EFh0X}vF^{J;Bp6AIP1KG^ z@0yyyRv6mZ!wt?`Ipg!Fe(7or>NX@}zB`DCex#wn{OhB#M0l1nBkq2tPH;Vl;gF^NErlIuKYTUP0h*c zwFc8(UvC7Yw62?mFmsNT>Hh!@C57+qA&ng{gFCt&dsolq@BN-f(`5;LVkfRe8#0~j zNzWOt4e{Rg*7u0<7+eNDN%~j3yLntH7SE?@@SliMV_n#Lp#5v+@DB6P_H&t9o~IS( z1yC?DPBT$W^8AKC`Sk5cuy-{Xfn#4dbm?D0qU~mUg0+f=aBLoxVH^%KQ8r2G)|D0# zu5pK62iBJ=DOx(6c7x&>w2PE!T1SMCHU=Noy}L}-Y_&DrZ29g~k&$0B$s)3eY?(_7jP$Wn^{a5PzL;Vz6G(^CQy2W-^A7)gM#mAW>d_;m;aDeF{OSowpq~Z~?CE zrbGaf!LJ6k9(3NQ_bFF}Plf6uw>xoAPlZs#g(L2h&=d5lK&uSmp>QPa#bTMGNh2{O zo)i1_-=9uKPo+mCqB?n*DgnnF9C}uqjT#{1*i~t_$s0!i>H+*~YJJS6uB>7;vq%WH z2jx8E)mKG$oM3Mm0GifhlOa_=KgW}UjCRL-)_Rpdog1 zpO}-|+M{S7ak=E%=xXGxEC>A}J&H&1cgo>MJ5CA|;4fOMz9$ zeZ@~fR%0Rp?=O7fqq~fql0;4l@+t;2)98|*UX{Yz8mCgf>MS56#Ol6>_4pScnn9`~`MgvJBoFr(anUA0YlU)~t z{3qg{AL|XF_)-|;k}hs8X2`dNtOdv00Np{{U@&hra=&Zw}ZY@h6I& z0Ww%yKHGRh5)|BA0Lq6e_W)TMuT%RHy8kNPtvO(+H1G)7moZ%@YlswJ~Z%@(Lt(d z>{Wun=6Ef?cs^53i~)ty{So4)UNWAsz@ zRsDeVUlYls{7m?@D74VsW4yA_;&~G4C=w*w)zhVuh12m?9&vPIa6xy}F? zKGpDl?92Oacq`*NTlizevP0qj02vtfJ+zFmSzMnnV?k{!kCu``;}IX5t}+FE;toJH z{J+K+{MQqXf7-F-lG$5Cyu14KKYHPOE?-9ozq8%b-SuzJ{DrOy;vd6b1^iU- zT#{4`;wDz)1W>p*zyJ#UqlG+5Q&Ga_8|909l}dvYi)NRwzQ2= zNMe)T@17lv{^YE2O{4 zo{9TVe%!tj_$tzPL&7kB!b9Sln>iXcf)m3AR;0aK0 zr{@4EbNeHwYMOSdX%+UFaTV3H>%J+WaU^cJ##NM%MnM()h>$ap*1nne3Hw+4R`?S= zj+3NnO?TmFZv6Y58g)mBqjEgeg_(CkSPcB6F6^9Sl7AuM-wmUP=Edc%)7{6T^z8h$ z^gl)6&NX;wsu=6aJsP&2zDM*k@lWA5f&MV~W={+F>rIbQwIs<2a_aC*0Sh8DY>o=& zI1B@HJXhe??HT(R{6P2-yTlf&}#2#FW0&J!TbsRoxUM_fAJyF zJShj*^y_%U_qx5(vf9BBV37a+Bo&U z6|6g2=&)@+Pm)#2v$CJxI;#fq)PQ&l%U>FP(to$#jQ%8CYCaD5T_b2-54nNuq_}95 zYB$i#in1hyi-=b{fb#IgTa%m-`QL;9D8K`tudv}C4BVV?d8+>aw?FwV-iznh`EDZP znAzd7=dbgBm-(G9i+pF|&xk%Cy76C)^-1-8Uh@K5n}*3MoGPk}Dk6@EfG8x8IW>W6 zWp#IR9i@~K+|Ma0kwT_P9D$M*R1!`Ga0PnL!OwyJ01&=8c!BgE0a%HAg)MP=bG|z$ z2;?M_DmYhes=Y|&zj(d?e#l=6{s-IGYgYCPsrb4ZUnb{SxMp?|NEgogJZwrttXBZ2 z-M1q+CqHk*JYRsw=`1}pd99-!p1qgie7;M=ILz9ksV8Xllm4}5$Dgs^>@TTlT9%XX zi{j*x+f5Qff1_w{O7P7DtT#n9)UoYg%A`1nSYgg2#@0stc0d(C0|0P6F-Sn*_xjhs zpS1Vw%i%wS3#oV`z~ObD8bXMNAT^DXN)Ak}8|RS+K3MKXXRxuo_> zXs^+EpRUt}2P469x62jxxBh3=UlhJAcoX3FhORtS<>Tqf?(w@C*^ck*Zd{VuxeF^Xb z_LumT`#$R;e+^x=?uBu5E;S7f;m_HwzFmZ?VT=;(#vKPcS9-Fj75m}v6ZVz(d-3-` zj{g9|cLvu}i9o*6?pP(oyrg7+GyB!R$aKiZTpWS?;P?aK?~6Vrc$&|`ehky))HMs) zQZ*5y7~plnvAd9`%`{ z=sGutY$DP;KVfU7*ukGF*3J~Sfj1IP*y9SLB$9AC*1GU3=YNlXwBN&T+4E1flg0DP zaj9w^V6)R~!pU;`5VrRPhnE&WUF3B*0N3L994;djRyb@lT%|3N>VBh$uSX9DTDwUu zuc7of^Vh2X0Kr5*XsNtsCyBJ{>pNX2O}ZTq?9sibfMfS>Azw9%W0&2KNya#@ z*5BFN_OtkH`$6fZ4JLo=zY*G`X7fh7brXhUEX{6mJotfD1(aoR^C$!p^cl|u=6P); zTD)%_yt>=h`my5WoK=9v)O4x4HQ!76A5!4ajB`q-H0t?FpGbJ$#y^2y4}LiKaA-a^ z)7E#lSe}CiZXQLn z)~#Y9AQR>baDcJ5kg4dzsoL9FuuXqU6`QH)I&QOLai!|k(Oy~I#?ahb&Vop#jm8;W zSP(%SL9egjjxxq%)h!Qto8B+dK@KWIDI zZqWY#!ad=uLZahSyM(hyWCWtnhz-eiHmB@SnlI2HN;9!O%$!lm(?= z^UWxEr+wij^RSlhsh z_KSmUA(AOBowpXr+qxipv$O&ZPJYq-m49#j6XFNiyb1A|crZuFqPw+k$jb@FId&ry@UWMXli9QM>Y70&gkb6! zNFa=Y4nYQ;Ulx5?=l(tTYvE6b`f}KKn%B&DL;afOGqQVTZ~zOiuoNbH_Id~8^b&-Qdp&3uN#i4!1N&3 z?3pfqhsObKn7q2HjcEJ5A4Xn4RdVK$1a71-%APr@=_@q8Q+EXZ6=@I% z{I&iOUh2P7#L=TZ;Ib8jAVgD@E6#qkTIyjE22vHhd)2#;`BnprRar@wYK6!Gt{a%m z88Ddww!`<1TO+zl^E_fQKvraEA;QC z2cQ-CoACP5Rq>XRE(X#r5%KgnuhS56Pp4}9^Nl3_u}jgPqi`x}m0s6E)_$f{Z02bO zR3Xi1ReP|8+EF0Nl{ppiPq(t=U$c{_Ec(w?-H@1w|S!BN~z4W+x? zT)L!DjI%Mo6`QMT+E$4fZ9-tI6tGPE&0jD0ui_r5;slb*%-LupBr1W(9Xab<^()3Y z9W*e~sj54#AN)<83E{Eu^raVRGD@s6+4S_qcooIemlC}4F=unRn4FSNy+bU5L%1HC zQwXm*rDoozuS$$*uQE_c=D$FHV0PW&UlaL%d|NO0?VS^CqxBXyR|)5?;1435c%a+Nv2eQ&dbY8n4a1?TH<7Whx{r8JRE1&J z@veAlGYLZaqlfZ@ep12}QAyl6B!W1{zG^~|xyuZm)RC?b0&{`ZpNtV++;%=zHoFIp za30mdd`*N&;2mBk83qsPE6{6#_?%gM39GXI01O15pdz(^;(mDjj7oOw%78wVN?43e zNAM{G4z;(uNCa|&gU1IL&1Jd8%iEzWsouIGZ5@q21q}G(Lu?=T{NLPBI<4w^Iu5U&Sy{es@;#T;Qs*ORP_odqP%15f{G}h5C7Hr zFv)HL+O*8_s3Y!UpyMX1PQ|VKtA~)5IZ`@|Qcvbe-!KulKQSHss@g_nK^@X5QTKMA z>(;-hoRUA2n!9Mhf3x&?Bn3ab2eSNB-l1U%QmGE#t z4bwGXd6vH?+Dvf+g#c%h>0Lb97<)H;OzCk9j~P?bwOxWMhya=6A$FV-z%=HL1uh>qM(w_3zjJIY}#;0Jq=m1w-BVt8H%S&p0$-p7fvqvqE9_> z8je{{Vb?Y4zYftCP?(naigf&I$

      1*>=a5&H={)y-VSw4<4g%(qQgPf)0Dvi<^JD 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ֽUZ#?zv6#s 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 Q5e+X_`$G&2^w+8X1u%?H6#xJL literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/setup.cfg b/openmmlab_test/mmaction2-0.24.1/setup.cfg new file mode 100644 index 00000000..ad08ec3e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/setup.cfg @@ -0,0 +1,24 @@ +[bdist_wheel] +universal=1 + +[aliases] +test=pytest + +[tool:pytest] +addopts=tests/ + +[yapf] +based_on_style = pep8 +blank_line_before_nested_class_or_def = true +split_before_expression_after_opening_paren = true +split_penalty_import_names=0 +SPLIT_PENALTY_AFTER_OPENING_BRACKET=800 + +[isort] +line_length = 79 +multi_line_output = 0 +extra_standard_library = pkg_resources,setuptools +known_first_party = mmaction +known_third_party = cv2,decord,einops,joblib,matplotlib,mmcv,numpy,pandas,pytest,pytorch_sphinx_theme,scipy,seaborn,titlecase,torch,webcolors +no_lines_before = STDLIB,LOCALFOLDER +default_section = THIRDPARTY diff --git a/openmmlab_test/mmaction2-0.24.1/setup.py b/openmmlab_test/mmaction2-0.24.1/setup.py new file mode 100644 index 00000000..16923e98 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/setup.py @@ -0,0 +1,196 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os +import os.path as osp +import shutil +import sys +import warnings +from setuptools import find_packages, setup + + +def readme(): + with open('README.md', encoding='utf-8') as f: + content = f.read() + return content + + +version_file = 'mmaction/version.py' + + +def get_version(): + with open(version_file, 'r') as f: + exec(compile(f.read(), version_file, 'exec')) + return locals()['__version__'] + + +def parse_requirements(fname='requirements.txt', with_version=True): + """Parse the package dependencies listed in a requirements file but strips + specific versioning information. + + Args: + fname (str): path to requirements file + with_version (bool, default=False): if True include version specs + + Returns: + List[str]: list of requirements items + + CommandLine: + python -c "import setup; print(setup.parse_requirements())" + """ + import re + import sys + from os.path import exists + require_fpath = fname + + def parse_line(line): + """Parse information from a line in a requirements text file.""" + if line.startswith('-r '): + # Allow specifying requirements in other files + target = line.split(' ')[1] + for info in parse_require_file(target): + yield info + else: + info = {'line': line} + if line.startswith('-e '): + info['package'] = line.split('#egg=')[1] + elif '@git+' in line: + info['package'] = line + else: + # Remove versioning from the package + pat = '(' + '|'.join(['>=', '==', '>']) + ')' + parts = re.split(pat, line, maxsplit=1) + parts = [p.strip() for p in parts] + + info['package'] = parts[0] + if len(parts) > 1: + op, rest = parts[1:] + if ';' in rest: + # Handle platform specific dependencies + # http://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-platform-specific-dependencies + version, platform_deps = map(str.strip, + rest.split(';')) + info['platform_deps'] = platform_deps + else: + version = rest # NOQA + info['version'] = (op, version) + yield info + + def parse_require_file(fpath): + with open(fpath, 'r') as f: + for line in f.readlines(): + line = line.strip() + if line and not line.startswith('#'): + for info in parse_line(line): + yield info + + def gen_packages_items(): + if exists(require_fpath): + for info in parse_require_file(require_fpath): + parts = [info['package']] + if with_version and 'version' in info: + parts.extend(info['version']) + if not sys.version.startswith('3.4'): + # apparently package_deps are broken in 3.4 + platform_deps = info.get('platform_deps') + if platform_deps is not None: + parts.append(';' + platform_deps) + item = ''.join(parts) + yield item + + packages = list(gen_packages_items()) + return packages + + +def add_mim_extension(): + """Add extra files that are required to support MIM into the package. + + These files will be added by creating a symlink to the originals if the + package is installed in `editable` mode (e.g. pip install -e .), or by + copying from the originals otherwise. + """ + + # parse installment mode + if 'develop' in sys.argv: + # installed by `pip install -e .` + mode = 'symlink' + elif 'sdist' in sys.argv or 'bdist_wheel' in sys.argv: + # installed by `pip install .` + # or create source distribution by `python setup.py sdist` + mode = 'copy' + else: + return + + filenames = ['tools', 'configs', 'model-index.yml'] + repo_path = osp.dirname(__file__) + mim_path = osp.join(repo_path, 'mmaction', '.mim') + os.makedirs(mim_path, exist_ok=True) + + for filename in filenames: + if osp.exists(filename): + src_path = osp.join(repo_path, filename) + tar_path = osp.join(mim_path, filename) + + if osp.isfile(tar_path) or osp.islink(tar_path): + os.remove(tar_path) + elif osp.isdir(tar_path): + shutil.rmtree(tar_path) + + if mode == 'symlink': + src_relpath = osp.relpath(src_path, osp.dirname(tar_path)) + try: + os.symlink(src_relpath, tar_path) + except OSError: + # Creating a symbolic link on windows may raise an + # `OSError: [WinError 1314]` due to privilege. If + # the error happens, the src file will be copied + mode = 'copy' + warnings.warn( + f'Failed to create a symbolic link for {src_relpath}, ' + f'and it will be copied to {tar_path}') + else: + continue + elif mode == 'copy': + if osp.isfile(src_path): + shutil.copyfile(src_path, tar_path) + elif osp.isdir(src_path): + shutil.copytree(src_path, tar_path) + else: + warnings.warn(f'Cannot copy file {src_path}.') + else: + raise ValueError(f'Invalid mode {mode}') + + +if __name__ == '__main__': + add_mim_extension() + setup( + name='mmaction2', + version=get_version(), + description='OpenMMLab Video Understanding Toolbox and Benchmark', + long_description=readme(), + long_description_content_type='text/markdown', + author='MMAction2 Contributors', + author_email='openmmlab@gmail.com', + maintainer='MMAction2 Contributors', + maintainer_email='openmmlab@gmail.com', + packages=find_packages(exclude=('configs', 'tools', 'demo')), + keywords='computer vision, video understanding', + include_package_data=True, + classifiers=[ + 'Development Status :: 4 - Beta', + 'License :: OSI Approved :: Apache Software License', + 'Operating System :: OS Independent', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + ], + url='https://github.com/open-mmlab/mmaction2', + license='Apache License 2.0', + install_requires=parse_requirements('requirements/build.txt'), + extras_require={ + 'all': parse_requirements('requirements.txt'), + 'tests': parse_requirements('requirements/tests.txt'), + 'optional': parse_requirements('requirements/optional.txt'), + 'mim': parse_requirements('requirements/mminstall.txt'), + }, + zip_safe=False) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/activitynet_features/v_test1.csv b/openmmlab_test/mmaction2-0.24.1/tests/data/activitynet_features/v_test1.csv new file mode 100644 index 00000000..5e713e7f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/data/activitynet_features/v_test1.csv @@ -0,0 +1,6 @@ +f0,f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32,f33,f34,f35,f36,f37,f38,f39,f40,f41,f42,f43,f44,f45,f46,f47,f48,f49,f50,f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61,f62,f63,f64,f65,f66,f67,f68,f69,f70,f71,f72,f73,f74,f75,f76,f77,f78,f79,f80,f81,f82,f83,f84,f85,f86,f87,f88,f89,f90,f91,f92,f93,f94,f95,f96,f97,f98,f99,f100,f101,f102,f103,f104,f105,f106,f107,f108,f109,f110,f111,f112,f113,f114,f115,f116,f117,f118,f119,f120,f121,f122,f123,f124,f125,f126,f127,f128,f129,f130,f131,f132,f133,f134,f135,f136,f137,f138,f139,f140,f141,f142,f143,f144,f145,f146,f147,f148,f149,f150,f151,f152,f153,f154,f155,f156,f157,f158,f159,f160,f161,f162,f163,f164,f165,f166,f167,f168,f169,f170,f171,f172,f173,f174,f175,f176,f177,f178,f179,f180,f181,f182,f183,f184,f185,f186,f187,f188,f189,f190,f191,f192,f193,f194,f195,f196,f197,f198,f199,f200,f201,f202,f203,f204,f205,f206,f207,f208,f209,f210,f211,f212,f213,f214,f215,f216,f217,f218,f219,f220,f221,f222,f223,f224,f225,f226,f227,f228,f229,f230,f231,f232,f233,f234,f235,f236,f237,f238,f239,f240,f241,f242,f243,f244,f245,f246,f247,f248,f249,f250,f251,f252,f253,f254,f255,f256,f257,f258,f259,f260,f261,f262,f263,f264,f265,f266,f267,f268,f269,f270,f271,f272,f273,f274,f275,f276,f277,f278,f279,f280,f281,f282,f283,f284,f285,f286,f287,f288,f289,f290,f291,f292,f293,f294,f295,f296,f297,f298,f299,f300,f301,f302,f303,f304,f305,f306,f307,f308,f309,f310,f311,f312,f313,f314,f315,f316,f317,f318,f319,f320,f321,f322,f323,f324,f325,f326,f327,f328,f329,f330,f331,f332,f333,f334,f335,f336,f337,f338,f339,f340,f341,f342,f343,f344,f345,f346,f347,f348,f349,f350,f351,f352,f353,f354,f355,f356,f357,f358,f359,f360,f361,f362,f363,f364,f365,f366,f367,f368,f369,f370,f371,f372,f373,f374,f375,f376,f377,f378,f379,f380,f381,f382,f383,f384,f385,f386,f387,f388,f389,f390,f391,f392,f393,f394,f395,f396,f397,f398,f399 +-2.52400826749,0.0481050342173,-0.727137195971,2.75537272315,3.09127621822,-1.57007092339,-0.418208286763,0.0913230466118,-0.536148328353,-0.527615223662,1.09348152733,-0.740857539139,1.03076939449,0.947990020203,-0.00932133916349,0.546988826083,-0.737920381243,0.823520260094,-1.44379751155,1.67705288164,1.85386635752,0.62453161102,1.13374109944,-0.161873651211,1.40335457467,0.267813141882,1.40327533282,0.143771933515,-0.29447495679,0.779869429758,-1.38585145822,-0.361671252653,-1.46679541523,0.0859254586217,0.266080879981,-0.680839165484,-0.774731957742,-0.618207527285,1.57201336054,0.875829197772,-0.896498123858,-2.55398872891,-0.796735937603,-0.338483746318,0.511324636391,-1.21437529424,-0.0488620607446,0.253289302886,2.71006785221,-0.573161459164,-0.341657902954,-0.854258292083,0.562081610284,-0.828878082845,2.00327134909,1.29068322546,-0.418051389774,1.14570354001,1.39098484308,-1.13415579068,-1.01751984858,-0.823485884605,0.354335798556,1.79059040272,0.609877418462,-1.01807533199,1.56390048495,1.00308338848,0.226345738051,-0.145077751076,0.0986133282503,-0.0274079232177,0.0618308794267,2.33058959297,0.0527062771437,-1.11440070055,-2.85928208684,2.15750540841,0.866524370256,-0.999664886812,0.65322760642,-1.01907039308,-0.827862563442,0.702348045951,-0.266591888881,-0.51787754913,-0.87550654118,-1.08840756221,-0.330164993751,-0.885034718769,-1.09602854198,-1.90739000514,-1.41201400125,3.55564525741,2.24864990051,1.85192671744,-0.886962869481,-0.706411036437,0.962288821262,-1.30219301658,0.0603706527015,-0.672105670826,-0.147220359933,-1.00931681574,-1.34130794644,-0.0213488208036,-0.965187689045,0.427090878957,-0.922304333641,-1.13947635577,0.637382086489,-1.706998011,0.00132625548269,0.663770250584,1.58249601114,-1.04340366269,0.375227416108,-0.0870821477482,0.551722806776,0.588611513848,-0.477017772079,-1.51536188044,0.237936462599,0.31261506067,-0.198127712396,-0.318572429209,-1.18890325315,0.035582087437,2.67528950232,-0.197889107378,1.55762961412,0.104639883842,-1.66993450781,0.702282006582,1.36717389178,0.634535223722,2.85315937821,-1.27367064913,0.483830422936,-0.869812565212,0.641265734616,-0.11914733068,1.0239396073,-3.92902142357,0.694317328488,1.34085481986,-0.135329176331,0.0261293066915,-0.303456270416,0.909167548313,-2.04735304332,-0.285427697695,-1.03457319064,-2.77420531572,0.197031497599,-0.520362589547,-1.37924786457,-0.418569629841,1.54322130788,1.83725603097,3.35605137842,-0.117215889143,-0.970470848036,-0.339063598965,1.57921290781,0.196319119013,-1.22568776573,-0.448961007657,0.609897182756,-0.168152849526,0.254480323573,-0.51589471003,-0.253088873187,-0.716572365129,-1.56268640697,-3.33835895995,-0.679914745818,0.107016925667,-1.61204098026,-0.387739681651,2.40210230323,-1.0956975287,-1.72501473746,-0.766200882827,0.752211827669,1.55532805525,0.113983938016,4.54239864121,-1.36827292666,-1.88835217549,1.40817465219,0.708602657522,1.31514883588,0.0314930005956,-0.79571607963,0.75615035674,1.14977174081,-1.72166323668,0.565034879125,-1.41448308724,-1.57710396359,-1.17078288789,1.1485206762,0.393694747107,1.20387821507,0.699366232003,1.80047030851,1.42655580688,-1.41627641805,-0.0899006423315,1.0611155262,-1.131250839,2.23898952868,-3.58230877813,-0.889216990584,1.40956827182,-1.46751403757,-0.691296854089,-1.54265676827,2.65262625498,2.19788404633,-2.01697903653,0.611521417417,0.359316692791,4.6816105414,0.862952723244,0.167491980372,2.6932665368,-3.00625465314,-0.351348050268,-0.89827277051,1.1813078626,-0.683418750015,0.612255702038,1.80744153164,0.0561640557506,-1.55411351133,0.711329718813,-3.72017506799,0.381065155569,-0.414420442519,-1.60570235569,-0.599320146458,1.05618929973,-1.47036342112,1.14814616981,-0.245414197276,-1.86036272008,2.96957122081,-1.61679375941,-0.50189343957,3.2102935297,3.52676818145,3.37559696234,1.65133903096,1.07003903059,0.246458431642,-2.86996585644,2.9472088513,0.156860758686,2.65348488352,-1.65249707957,-1.10731408448,1.62994935577,-1.96909845304,-1.9090510476,2.51069158859,-1.65984114813,0.148115664273,1.10611308391,1.18241718985,-4.85953441229,-1.0049765752,3.88280249662,-1.75265659238,0.372608524032,-2.22002927662,1.18168715581,-2.87508345833,-0.676288569625,-2.44675108062,-1.55716385372,-1.62059798953,0.724381881496,-0.960783561886,-0.552230426264,0.121615798579,1.04462357852,0.118085120237,1.26606201262,-0.380661477003,-2.58578204132,4.03374155601,-2.25326988394,-2.88061044978,3.26819336615,1.91267201179,-0.19674664532,2.05710699236,-3.54867236793,-0.326269919106,0.752888089223,0.132116086772,-1.54644230279,-2.836589684,0.141382075407,-1.44156945706,1.19807019893,1.68431397116,0.438746488152,-2.06834516275,-0.842738093366,0.465043608979,-0.629041527666,-0.0120976683258,-3.00099798249,-1.73881566772,0.881273090875,-0.540746588847,-0.38645376593,-2.43880278615,-0.563591295604,1.477140512,-1.75295748363,1.76406287775,2.66264589914,0.484454554128,0.273973214982,-2.05206947308,-0.369256326252,-0.689306857174,1.66270560488,-0.131857610115,0.955091272134,-1.60116198558,-2.28544168464,2.11164102397,-4.18991734267,0.173959671197,-0.0354114097397,-1.4089728089,-0.311132524,1.89336391541,2.43192427419,1.01858890895,2.03606205304,1.62452822335,3.64225894583,2.28056802496,5.64531833088,-1.1566376147,2.07540663589,0.620578413989,0.750977221371,0.0162535885321,-2.16207619048,-0.105952032448,-0.117025236938,-2.50755272675,1.48142693144,-0.430885550216,2.23543980132,-0.326485130108,0.0243268507167,2.06152002688,-1.02234084951,-2.0303752323,0.561301589735,2.3433107876,-0.925805005171,2.80904484078,-1.94807647011,0.329007639042,0.397634451785,1.47111085828,-2.50084066219,1.09999789629,-2.99330297808,-0.0599839422321,-1.9690194292,0.960052060426,-2.19808352939,-2.01816409011,-5.65800942077,-0.0169289777679,1.16420775694,0.723551353918,0.643957264021,-0.140148446853,-0.056547111384,1.91572655252,-1.37543404733,0.484043939791,2.79265339713,-1.17311209973,-0.371278463653,0.469582405128,-2.31444814128,1.41635027072,-1.07100369346 +-4.16998558362,2.12975610028,-2.56134395649,7.28089529038,5.71112143199,-1.43967841108,-2.27770995537,-0.621412650546,-1.44766437213,-2.65973161459,1.36775091092,-0.475116016803,-0.587382383942,4.81157625596,0.770176066954,0.363275742132,-0.0876347057022,-0.475521533538,-0.0547252563637,4.64327842236,3.68908154567,2.63090462903,4.96261648734,-2.3996240147,0.249490239721,1.12136919369,2.95945439398,-1.5711039712,2.68638911406,0.584886546134,-2.50314228614,-2.72285134157,0.61815967679,-1.74822253416,-0.311564020118,-2.74809125702,1.47346679886,-3.40588476142,1.47545339028,3.02455658674,-3.94506848613,-4.14376579285,-1.73336583535,-2.40840473334,-2.22219073812,-5.15251653036,0.988312865494,1.78566960146,6.54388860067,-1.45725802938,0.214708279868,-2.72405630668,2.83319289843,-1.85521226009,3.58616267999,3.34310981591,1.02165599783,3.42570413748,0.846149519881,-2.93276470105,-1.80281494916,-4.22263733625,-1.52749340316,3.2283666563,4.42827975909,-1.44139790932,1.73660321256,1.17811784268,4.59021838108,1.89355262021,0.455512814919,1.27808425168,1.62865997315,6.70429563522,-0.847455751549,-5.35004572391,-5.12095170339,6.48116056124,0.300556570692,-5.01764505545,-0.875816748044,-1.82039844963,-1.25923923691,0.632047503791,2.15801657677,-2.92180285851,0.511598025958,-2.96027669827,0.547309962512,-2.98510901829,-0.335630682309,-4.73974208434,-2.01421547413,3.362338895,5.79285810471,9.42033552887,-2.91738398632,1.82035643975,1.98379708379,-2.70420178073,-1.48058941424,1.56434452216,-0.992579338154,2.37859466165,-3.72032371362,1.26282515267,-3.50253353516,0.00376921892301,1.18962185065,-1.0557041204,0.54337829232,-1.99295026461,2.62920855999,3.76263545752,1.2841622142,-2.72069926341,-1.80479015474,1.58534218073,2.60577425917,-0.440677909057,2.20203198473,-3.39447330793,2.79975073894,2.23906295717,0.677189537287,1.39489221702,-0.518861652811,-1.19545238594,5.21395279209,2.14497482498,3.99990809123,-1.70296090881,-2.09669830044,-0.502894639969,3.01051452478,1.25882732471,-1.28701953888,-3.64675308704,0.679585470159,-3.88040889422,0.100971349178,-3.87473366777,8.57528485777,-7.33635827383,0.620873548189,4.256256452,-3.20197622975,0.181273331641,-1.08387027582,4.7040402782,-4.30957582315,-3.2032131656,-3.55255149682,-5.39665594737,-1.43142532587,-1.0020887959,0.310152183772,-4.9755616792,0.544686280489,3.23141360442,3.48532564084,-2.27912784214,-5.4400074927,-2.9422715648,5.55690115452,1.07856818487,-2.60423706293,0.296417542696,0.018438497484,-1.6693427813,-1.97826829297,-0.649584023059,1.0299335142,-1.30126957735,-1.49028243661,-7.05598390897,1.53666977635,2.47103852113,0.548410004575,-2.33345104297,1.05941242347,-2.22456861824,-0.833920312524,0.616063261429,1.08299628615,4.64962686857,-0.85913300693,8.38019424758,-3.35722782453,-5.88692650636,2.48297270139,-1.82296590428,-1.72441059232,-3.50540684352,-4.86662904103,1.4669711864,4.01910547892,-0.666310483219,1.94299481273,-1.65633018176,-0.233463008008,2.92032059917,-3.11237916489,1.65681514025,-5.82044394652,-0.84150699973,5.2420919474,1.65209466338,5.1169664971,2.8554833293,2.7991078945,1.85252228816,-1.80552712282,0.913601561388,0.441482040088,-0.160765804846,1.5659571287,-5.15831661542,1.85946914524,4.30885611724,2.5515617756,4.66296468178,6.40177754471,0.323659792742,2.79168056408,-2.54396620949,2.11927359978,3.5409553499,0.143619238635,0.247531717618,-3.67236700398,0.0737643596032,6.4369303449,-4.20339368939,1.39238156477,-0.479590680996,1.23359161367,1.11356295109,-0.530017747878,2.8127275755,1.67139578978,-0.648806054595,-3.56483347257,-0.00777567660002,-4.97657731056,2.76010027647,2.79106523007,-2.92366722226,-0.381967118582,-8.20272569498,-1.22538543622,-0.975923561257,-1.2079847001,5.68413191756,-0.519274702668,1.34021991417,0.46834429979,-0.752738639987,-4.23064642449,-6.19847359916,1.9824349012,-5.77588344375,-6.11922142108,3.66428396702,7.66924429814,-0.776042481264,7.10654588699,-0.732527501781,2.01595049262,-0.872191261451,2.67919575771,2.4503210032,-2.90921337763,8.53517298381,0.212812230588,0.476091645162,0.748127258619,-0.886277671655,-2.89118565341,0.142637886207,-3.79416944186,1.11709731897,-1.30126662016,0.359220613638,-2.86900741637,-4.63997180067,1.53915568789,-4.55603598674,-2.03369594216,-1.81275931041,-2.69728669763,-2.77373948296,-0.780138870872,-0.710413366953,-1.87378830453,2.78039755662,-3.32990742207,3.18837203344,-1.00930721204,-4.34471332073,-2.7804454573,1.49880246004,1.22752761165,-1.44689382633,1.45333088478,4.27367163022,1.721656696,-3.6055589668,3.01899054011,7.5569880708,-2.61906720797,-2.57271003584,2.80881048858,-0.415334333976,-3.0628209281,-3.63716221015,-0.194801000356,2.79870586514,2.79689924727,0.0788984746723,-1.96187414487,-2.75171196282,-2.28218094111,0.444554739001,4.8369281887,0.373838265736,-3.15276482065,4.03460666657,-1.86244435867,0.253326237999,-0.800799566707,-1.74990467469,-2.74444140275,-5.73288337012,-4.91918236891,-0.418412837584,-2.99338801781,-1.38950726748,1.11461923277,5.90281201998,-0.707580384415,-2.67438790878,4.21448961059,0.828290172268,1.15630444248,2.80011883676,2.65575761526,0.483185992143,1.03626998862,0.131995103361,-2.91395613949,-1.43565141161,-2.69984012683,-0.626701895692,3.98586324195,-2.19652486801,-2.48867563566,-1.19348388483,2.79217995802,-0.750475711823,-0.945274029968,-0.126381392279,-3.6633948501,-1.54844618718,1.36196402073,0.468697243529,1.29018088311,0.94496485432,0.257892522415,-5.15796130657,-1.53281098127,0.595785883914,-0.833150585492,2.10806567272,5.13338648002,0.01430302143,1.24969169378,0.00611201127369,1.25787633081,-0.926280161539,2.16456234137,2.116730539,4.47622630279,2.12537882169,0.520683592956,-1.542467405,6.23520137549,-1.31958263814,0.309113717082,-1.16410690943,2.81666246732,1.45756631712,-5.58640872558,-0.689133227666,-1.21494281928,-2.40350431559,-2.07186533292,-4.34414368868,-0.898425387144,-2.84011162599 +-2.85525532881,4.14924573302,-1.27022984872,4.43080223083,1.04979521433,-1.7563615183,-1.1571517543,0.443647010723,-0.840120493175,-0.564384366473,-0.631840480766,0.532262438599,0.584832645258,3.23352189611,3.05675490737,2.79432141225,-1.4358461082,0.0141486930853,0.928806241353,4.37966580232,2.8490308106,0.783738804857,3.78208962361,-2.80982620994,2.02718123476,0.447202665606,2.01867037753,0.748949680329,0.626896452109,-0.226885780966,-2.62637141645,-4.79518300573,0.517160896062,-0.495881884893,0.551008209387,-1.1999056525,1.58518931756,0.092337232629,-1.19481320501,2.92050409516,0.70208245794,-1.14886969738,0.497751923401,-0.698487961093,-1.87117256582,-1.65841737827,3.39620117505,3.17374242703,3.50091727654,0.480773175558,1.40684746265,-3.40429907004,0.423096078237,-1.25402658423,1.40384977142,2.23528889895,-0.70792874376,3.44265838623,-0.298643459876,-2.92092214823,-0.387096325756,-3.39548440655,-2.21305868606,4.01884763082,2.1962247467,0.178924582303,-0.175330102443,-1.81287087758,4.0013677895,0.506375047565,0.164289975565,2.65211846734,1.90428843131,4.45052925507,0.60681405703,-2.01008831143,-1.829990381,3.47248803615,-1.04316819509,-2.40825766305,-2.3010283341,1.26562317558,1.44828870733,0.254433333177,-0.294035871825,-2.39190562248,1.16849062324,-2.10750372112,-0.213768513898,-4.53380696336,-2.05353827099,-6.3679600064,-3.59502876282,-0.357480708757,3.44140817722,7.012797233,-1.16484250784,-0.17219096899,-1.65201326678,-3.91428116242,-1.39317485134,-1.78935467323,-2.13693570018,1.49206449827,-1.47030715466,0.326555347044,-2.8691151468,0.987859331371,-0.0670162276435,-1.38699082017,1.38502636115,-0.891648494402,1.63707906797,0.654039901097,0.315870566068,-1.13308484296,-1.63928325141,-0.569100450525,1.42651925405,-0.627428011101,0.216225209237,-1.25899307927,0.828946293494,0.974174125592,-0.332280605535,2.90402588169,-1.104502304,-0.644741526048,-1.07491079171,0.416999756893,1.47221087893,-3.26141314586,-2.26964950522,-0.0280790646872,3.24086038212,1.20009862085,-1.75527016382,-0.539535063108,3.23909044464,-2.99914438327,-0.492613923551,-2.91626054168,7.31597944102,-1.64774904013,-0.73017560184,0.442671738662,0.283633226553,0.714817404846,-1.79878552278,5.11262804588,-4.30506066322,-3.61411044379,-3.82477523089,-2.89008922736,-1.73692337195,-0.71265813748,0.314715143045,-3.16757190545,3.47336832523,1.5834569327,-0.637929768363,-1.56214804153,-2.64970105807,-1.12900751829,3.98810140292,1.87983502666,-2.51413838069,-0.909131198054,2.46703845749,-1.16912671606,-0.352692016586,2.6085906589,0.711290110747,1.82539761384,0.137608984311,-4.09530947288,1.01127222915,1.98808420658,0.725776154994,0.456542024016,2.36024162223,-1.51671710104,0.909857604951,1.3748901693,1.41866263221,2.22546428785,-0.842200076581,3.517446268,-1.94564609289,-2.96543750087,3.66959119841,-4.30324907561,-3.19456482887,-2.38057807227,-4.43179172357,-0.982803171277,-0.41006461223,0.280178608544,1.95349114498,0.637461675009,0.711961734593,1.80234276384,-1.78083568494,0.520603844326,-2.37248194615,0.146621232829,1.95268532594,1.55047165434,0.825010337035,2.16551250696,0.958925328056,-1.03714228699,0.654975053468,-3.01727262656,0.247705178956,-0.0690905296781,-0.235510739784,-3.40891237398,1.3884248968,1.15451488764,2.64650440057,0.807570249241,2.08921063463,0.508586264452,2.52009829918,-1.11128878554,1.39935349762,1.06951609214,-0.485668144226,-0.460008237761,-1.70877252301,0.942621914198,3.41737226328,-2.40122259855,1.40087889274,1.62360543887,-1.58665239096,1.05352225239,-1.45161462784,0.468765456079,1.15845116933,-0.269039389293,-1.64486767074,1.02112615665,-3.15314137697,1.83668091496,-0.21584566613,-3.70026185195,-0.418916064101,-3.95508877378,-2.58916404287,-0.282405416965,0.0237940859794,1.56997692525,1.15945299725,1.77722654502,2.98457802137,-1.70026101914,-1.18428363204,-3.13462997307,2.47967257818,-3.06139141003,-3.33533022483,1.78348285884,3.65876099269,-0.542083423932,4.338555275,0.646300950845,2.75761772871,-1.33789882819,3.41355988423,-2.1038232104,-1.58832200845,4.30315493663,-0.497908014457,1.43125514845,1.23661852837,1.89458917022,-1.27604429007,-0.118665337562,-2.98061999162,0.96282290379,-0.317447299958,0.177331671019,0.190233225426,-2.25885749382,0.633996060689,-0.931709454854,-0.453512817619,-1.06709086379,-0.45003234585,-2.11921728969,0.742342797123,-1.2796056505,-3.18736832539,1.89475087484,0.647759524982,3.05645425161,1.20850815674,-2.71339397748,-0.888974133234,2.6798757871,0.973526877165,-3.10087224166,0.282148707707,-0.588648343086,1.1617284895,-0.947238893711,1.91763001402,2.77221791545,0.242102493444,-2.7309236304,1.19404949462,-2.29922574123,-0.496662088036,-1.43388394435,-0.541529648303,0.914798926115,-1.00208673149,0.693878029583,-1.63149386843,-1.92279982587,-2.83413622906,1.15527868609,1.48624739955,0.0722957122324,-2.01015367587,2.79194158167,-1.34159947316,0.350978424549,-0.150799014967,0.594457630018,-0.702615435521,-2.49834770679,-3.44722706755,0.724352367323,-1.91413194974,-1.50618719021,0.208274304816,2.56051458041,-3.38282206297,-2.67611726205,4.30181331436,2.60196872592,0.980345343721,4.28195017179,2.45016477822,-0.720569800933,0.134198579739,-0.29681619644,-0.620866637628,0.0668065834062,-0.820043117604,0.427079674204,1.07770038346,-1.89850125671,-0.367198590239,0.309245206813,1.49165853987,-1.93249949853,-0.770264412958,0.697864535651,-1.92503979524,0.36664308548,0.6772959585,-0.407557226819,-0.110297719638,0.0780190831417,1.13796422362,-2.93108891884,-0.108831601143,0.0333983715381,-0.582767866453,1.68451089442,1.07477574031,0.759609896341,1.02592154245,-1.07680930615,0.977406439981,-2.15689084132,0.897650267382,0.871076323589,0.485362575054,-0.271094031335,0.392738024197,-1.50007651523,4.16120113373,-0.87542103827,0.770962069035,-0.193105610213,2.63168554207,-0.0860587771735,-1.02318051895,1.64206330359,-1.97631421804,-0.459768193164,-0.987577437561,-3.05661367973,0.700944906869,-2.85832208077 +-2.40668356418,3.32200128635,-0.583146995504,5.17893602371,0.543722619215,-3.61351331234,-2.15219051798,0.154239282607,-1.86185589939,1.86499222438,0.546306239763,0.173791361054,4.68988918622,1.45787520011,4.61635592778,4.10645994823,-3.2520207723,2.82534058571,1.75578262289,1.28921755393,-2.56118538936,-0.681506864627,1.08718702157,-1.73322505633,1.85559087117,2.59411209822,4.86438429197,0.952494197489,-2.00043742815,1.56013310157,-2.24776257197,-3.37023128669,-4.3081034263,2.49645762126,0.0613088496522,1.5614004375,0.196160220802,6.71882646243,-0.515890210072,4.46806035837,6.49843154748,-1.07791967916,3.66291252851,0.340969046157,-0.717211693128,0.893422653279,4.23518612067,1.59024640679,4.00953623931,7.01554282506,3.3829888622,-5.28307714462,-2.56433442275,-1.21852455298,0.420509056251,3.97645592849,-3.46140729904,2.4203199927,0.499145697951,-3.22149805546,-0.210846113366,-1.82363392035,-0.608880066672,6.9203904438,-1.60331305107,-0.572833641767,-0.809020875096,-3.67446678479,-0.751598751347,-4.0169324255,-2.54423304001,3.43391434272,2.22814426263,0.720494257411,2.44403583368,0.126800663272,1.21261574904,2.80068611622,-1.46503902833,-1.02387386938,-2.22691595475,2.92893217762,4.35140001932,2.05282717824,-1.44687641621,-1.2482182169,-2.92161394775,-1.7117234171,-0.664106516638,-4.8541015784,-5.77170533816,-4.39334596634,-3.39425205867,2.10928462108,1.63525372922,2.20211301041,1.6979695034,-3.62859933059,-5.0955384318,-3.70584682147,0.913468626738,-7.92930506388,-5.18711395264,-2.14751714547,0.553891262807,-1.69585991979,-3.80843970299,5.93398868561,-2.32868751923,-1.18235898415,2.63725592931,-1.31388532559,0.924713171173,-3.68923300982,1.09287478288,0.447131590248,-1.02456968466,-1.82614021699,-1.27993409872,1.58124616583,-3.71338141124,2.08220694741,-2.52321253032,-1.8201927487,-0.489585822324,2.26087673823,-3.07679171085,-2.40032638788,-2.84321398576,-1.48280228813,-0.933238696854,-4.71049805482,-2.02947084586,3.95902432919,4.56408443928,2.77234577179,1.14790276547,3.24662017902,8.24014697393,-2.22661842028,2.16570036093,-1.47694238861,-1.56150964896,3.00861291885,-1.58600352287,-2.14261006952,3.36371217092,-0.277815688848,-2.55071312587,3.11163931847,-3.03255870501,-5.94063932737,-4.34915611903,-1.83065024058,0.344852973223,1.66785877029,-2.92896215598,1.02625600656,3.99294057846,-0.764026923974,-1.21331283232,1.14239682655,2.6062800312,0.555238639911,4.5995118173,4.17675596714,-4.47169959545,0.607188218708,4.99268372536,-1.10778329849,0.359094379742,2.3692166694,0.923014166752,1.39561937173,0.489449826081,-3.64099951267,1.49465563099,-0.864940508206,-3.8856684494,3.41578993161,3.80568179767,-3.16751228809,-1.90362671534,-1.0676062123,-0.827274825275,0.810656501699,-2.94211922248,3.80980886777,-0.505323204397,-2.70784498771,5.20668672403,-4.93021412532,-4.60470018069,-0.988903661569,-3.12164619764,-0.759834496776,-1.40789370815,-1.30719569206,3.67482577324,1.25514381965,0.729897277155,-0.221074349482,0.727831269502,-0.159013110398,2.35894515037,-1.60380238533,2.4536198473,-0.0437957082188,-2.46773814758,1.21704642216,-0.603128572703,-1.80407706489,3.83205666224,-6.8485059007,-0.767830495338,3.48311652978,-1.5156415077,-0.384740158121,-2.00051572681,1.33816781203,2.74709336281,-4.9876317811,-0.8754006657,1.1287828366,4.12337694327,-0.0656415704896,0.988705775539,1.21024437666,-5.10868624687,-0.0440934690972,0.0288263560326,-0.0765196786313,-2.51989612102,0.279547793863,3.3720527331,0.871332397062,-1.06302194118,3.50864712556,-5.51388967832,-2.0657237343,1.25920955737,-0.851355524064,0.682309628327,1.77832262437,0.827240066528,2.64016712666,-1.44682307978,-1.31921160618,3.49327129126,-0.484558734299,0.692844864529,1.00374541759,2.69691859166,0.154326318701,3.57687735557,2.06113112768,0.991898488825,-2.44635528803,3.95126618067,0.472989312112,2.33190206448,-1.30573364337,-0.437735764186,-0.251160595852,-4.47043835958,-1.51135720338,0.506121761999,-2.44358267824,0.0295987832554,-0.774288076561,1.33123704235,-9.26131312053,-1.16106868347,2.29522511721,-0.143810934227,1.58851175785,-0.934488321146,2.50735031327,-2.19833483537,0.610350404581,0.244342085619,-0.716844118736,2.41659238497,-1.20272970358,-0.134129219055,1.19137221933,1.4639560167,2.79779875596,0.0395902216937,-1.13805999756,-1.18215333223,-4.94711904526,2.09147545735,-2.13449596683,-5.07175304095,3.36638139486,3.70780602773,-0.945894616344,2.34982962509,-3.65934572061,1.50665946653,-1.83905771414,0.419523326158,-3.01953722636,-2.5896670572,-3.02772776922,-0.675756167273,2.18817773163,0.581919515134,-2.15692337871,-0.136594539186,-0.149565262596,-0.947531465589,-2.10921741764,2.44600348274,-0.959342634677,-1.03096477588,-0.498095233439,-2.70281470935,0.375763909419,-1.34648666104,-1.03886758149,0.246556117833,1.06395082176,1.52048031847,4.41094911337,1.58565980355,-0.538471474896,-3.59832179228,-1.84744771719,-1.98041345438,0.181751922071,-1.86992271225,2.09672110558,-3.00351278146,-2.34073953231,1.90364366372,-3.77574122826,-1.82476956447,-1.66754270395,-4.17944864114,-1.643569568,3.2956170102,4.84715448697,1.54389404712,0.413878052236,2.01489253759,3.26832122485,0.128817051054,5.05713614782,1.29822279056,3.8207182916,1.3051289777,2.15857723474,-1.16148341576,-2.10272764564,2.65485213935,3.33767395735,-0.225942747493,-0.0608929246157,0.386773107847,3.04139202913,0.880819526515,3.79432223876,1.34475161622,-1.15084494869,-2.72890689214,-2.20355211159,4.0270291551,0.831315397334,3.15832736333,-1.64833269834,-1.15337079207,4.42843692621,3.73798665524,1.77370616277,-0.414466093183,-5.21718411287,2.14873480677,-3.09902131875,-0.431480846305,-2.21315110326,-2.32947000265,-7.03267769655,0.620159295995,0.669400061817,-1.29065409263,0.639066412349,0.412046761511,1.52948790789,1.63768410901,-3.5861120669,1.49905408064,3.24001261135,-1.20556717555,-1.63470236778,-0.0621758023897,-2.13516124328,1.88267453392,-0.0397303390498 +-1.94168348829,1.77759615302,0.00324969291651,2.76537520647,0.356809294373,-3.04903903445,-0.571212081513,0.542071000835,-0.3627079765,1.24325743755,-0.427730951508,0.239423566062,3.11484637578,0.816348610718,2.79456279387,3.34600726088,-2.36868370374,0.960648590526,0.492966024081,1.63726032575,-0.520594614346,-0.710762829333,0.599766778151,-1.0725793888,1.89727054477,1.25175032437,2.9051876543,1.70391878923,-1.64619573633,0.92607907027,-1.19849523346,-2.36430278246,-2.74358758171,2.20087053259,0.111789479652,-0.408449259351,-0.328728172382,4.23223049204,-0.694623126908,2.42802311579,2.87807498376,-0.740068741241,1.62616318464,0.592944381834,0.159329541226,0.917487897477,1.93800289412,0.471566647292,2.55488344431,3.85311472585,1.20064109365,-2.55722387075,-1.1082152708,-1.02037551522,0.175513311128,2.44115464489,-1.72615523438,0.765665462018,0.977433196902,-1.83432733496,0.349625592828,-1.36312687636,0.715892488958,4.3416105775,-1.06046443701,-0.509649908741,0.497787223061,-1.32805623293,-0.711287250494,-3.12120837728,-0.91976089676,0.324390023948,1.0570640707,1.21327393075,0.919257143736,0.591331963142,0.457342879871,1.42952108284,-0.507037276824,-0.131746374767,-0.758843362331,0.87595297138,1.89250633915,1.27972093304,-1.20407567422,-1.03513803601,-1.98328871648,-0.134607525474,-1.06089170476,-3.55350990852,-3.87543780128,-3.44827607234,-1.73182748934,0.474614856841,0.146985151768,1.38470371882,1.86053468158,-2.31340465764,-2.91458182531,-2.94684989293,0.104040072957,-5.12927719911,-2.74529750084,-1.73663758914,-0.050694579085,-1.07352878233,-2.26959511399,3.31798489332,-2.0237891674,-0.758091919621,1.11872776558,-0.914398193459,0.528536718686,-2.51926944176,1.82730301281,-0.9518930234,-0.139356404841,-1.27573636502,-1.00687736809,0.303327493866,-2.61500696495,0.686027350427,-1.85459803333,-0.927233275571,-0.823916974465,1.41521901513,-2.20459855944,-1.11158712417,-2.42684030851,-0.775827880999,-0.958329697748,-2.08249924024,-1.46892851353,2.33831092993,2.1452542154,1.52739960074,2.11092267672,1.58193236212,4.76442153255,-0.500175990462,1.07725728969,-0.0380358799299,-0.134679699142,1.48794374386,-0.768634611766,-0.826269167265,3.30978691737,0.666516949734,-0.977266769807,2.49315859,-2.23554114183,-2.87566772004,-2.56910360535,-2.05376130993,-0.0498415172097,0.0825265093635,-2.29967758298,1.79486357128,2.97849754334,0.294754260181,-0.787193464239,1.07911070456,2.28606698573,1.0229565537,3.31828083058,2.20088501116,-2.9493214941,0.495515686273,3.67637633016,-0.658510478187,1.48509448349,0.636143160462,-0.197983719906,1.11500002464,0.257854927381,-2.22390707294,-0.292455268702,-0.33748634686,-2.67893269607,1.85805808067,3.25056247751,-1.99736208757,-0.936352628816,-1.63319216132,0.0197323211029,0.691710200409,-1.60304873069,2.2222357738,-0.494030532042,-1.08713753581,3.57224936565,-3.01036009913,-1.89224094709,0.0352522730817,-1.16673329006,-0.490160132845,-0.675803392779,-1.24046576689,1.81585133443,0.898491098881,0.944541202783,-1.58925671836,0.205119132002,0.531537915468,0.253908309937,-0.676644065382,2.24614178936,1.33602100372,-0.244497090975,1.76761640933,-1.35158142765,-0.414446250596,3.73523249467,-6.43518327713,1.29597712395,4.63066692571,-0.613321131865,0.561347877184,0.0711209956796,-0.127557443778,3.31162866752,-3.6926500086,-0.285006345312,0.5099318854,4.93547654788,0.868819684585,0.137249038219,1.1507523783,-4.40680729866,-0.0998956763242,0.600819382666,-0.423278113404,-2.2000334398,1.6212370952,3.27790774345,1.55507115324,-1.22907078028,-0.029405062197,-3.98268408457,-0.990495022685,3.63038349777,0.218821062246,-0.752823298723,-0.248150258065,1.06529252927,0.178199325207,1.01655516048,-1.81574172656,3.30965251942,-1.68384102901,-1.26371297797,1.5262250487,3.47741630872,-0.265562386513,-0.801813617449,2.82347845296,0.909660657868,-3.02272153417,1.71411415577,0.936149520477,2.0352847523,-2.75044326146,-2.03834780852,1.15331309106,-1.52446875255,0.960695721459,0.943234353662,-0.174043610891,-1.19030439148,-2.10528520733,-0.142430415601,-8.60760105293,-1.17194890261,0.969270079944,-0.40029415071,2.89137278279,2.72696355025,2.00195770899,-3.36749429703,-0.503019749323,-0.34973009636,1.07590580434,1.94033220887,0.0662941793603,-0.844664263724,-0.205224726594,-0.927714525858,1.82151385903,0.716765152912,-0.505078462759,-1.39169801553,-3.75972258488,3.03527408441,-3.67419142961,-4.80039191882,3.66278994322,2.01150090774,1.10328300466,1.56799778958,-1.6706875356,2.33891484579,-2.23406077822,-0.0790168158239,-2.29835296949,-3.19061029037,-3.09279531479,-1.82349063297,0.689713494777,2.95120071332,-0.454457020759,-1.06216011772,1.86404781302,0.412750553488,-0.312192496856,-0.901166524788,-1.71619956255,-0.00137017687125,-0.982375823656,-2.71353883425,-2.3097029229,-1.10547592401,0.557556620639,-0.718295222919,0.482262715501,0.333214447946,6.6798358191,1.22103029927,-0.80201618895,-4.47059836705,-1.35593414923,-2.29788345019,0.258600590626,-0.521844846309,0.437594954967,-2.18392724584,-0.493631593385,1.37908267339,-2.26255252202,-0.30756078084,-0.831326435408,-3.69798319499,-0.223937482238,4.03011242072,3.48706426779,0.441070608024,0.828923836351,1.9435341994,1.40788590272,0.878239062827,4.71550399621,-1.09901936968,3.4838750726,0.68982342432,2.16981327931,-1.96828734874,-2.21202177366,0.926186291775,1.88568594058,-1.7648316586,0.236547902774,2.64866965254,1.89112312635,2.27105943719,2.17706474463,0.199846277238,-0.520975260338,-4.22671780745,1.23446348428,2.73591025611,-0.260378292885,2.32260232011,-1.45908730944,-2.6201878802,3.38336368958,3.02514527659,0.979315823712,-1.99782266637,-1.60707169851,0.0483122205721,-4.34822138787,-0.213511068026,-2.52483056227,-1.12644841035,-6.88962921143,0.44326542365,0.096239015261,-0.0212235212322,-0.688477359512,-0.351519578299,2.47742046833,1.44010951281,-1.97519741376,2.6616740036,2.26513570666,-0.766266692481,-2.78300611377,-0.376965727806,-2.54099842787,2.187827818,1.03102740248 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/activitynet_features/v_test2.csv b/openmmlab_test/mmaction2-0.24.1/tests/data/activitynet_features/v_test2.csv new file mode 100644 index 00000000..95ab4725 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/data/activitynet_features/v_test2.csv @@ -0,0 +1,6 @@ +f0,f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32,f33,f34,f35,f36,f37,f38,f39,f40,f41,f42,f43,f44,f45,f46,f47,f48,f49,f50,f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61,f62,f63,f64,f65,f66,f67,f68,f69,f70,f71,f72,f73,f74,f75,f76,f77,f78,f79,f80,f81,f82,f83,f84,f85,f86,f87,f88,f89,f90,f91,f92,f93,f94,f95,f96,f97,f98,f99,f100,f101,f102,f103,f104,f105,f106,f107,f108,f109,f110,f111,f112,f113,f114,f115,f116,f117,f118,f119,f120,f121,f122,f123,f124,f125,f126,f127,f128,f129,f130,f131,f132,f133,f134,f135,f136,f137,f138,f139,f140,f141,f142,f143,f144,f145,f146,f147,f148,f149,f150,f151,f152,f153,f154,f155,f156,f157,f158,f159,f160,f161,f162,f163,f164,f165,f166,f167,f168,f169,f170,f171,f172,f173,f174,f175,f176,f177,f178,f179,f180,f181,f182,f183,f184,f185,f186,f187,f188,f189,f190,f191,f192,f193,f194,f195,f196,f197,f198,f199,f200,f201,f202,f203,f204,f205,f206,f207,f208,f209,f210,f211,f212,f213,f214,f215,f216,f217,f218,f219,f220,f221,f222,f223,f224,f225,f226,f227,f228,f229,f230,f231,f232,f233,f234,f235,f236,f237,f238,f239,f240,f241,f242,f243,f244,f245,f246,f247,f248,f249,f250,f251,f252,f253,f254,f255,f256,f257,f258,f259,f260,f261,f262,f263,f264,f265,f266,f267,f268,f269,f270,f271,f272,f273,f274,f275,f276,f277,f278,f279,f280,f281,f282,f283,f284,f285,f286,f287,f288,f289,f290,f291,f292,f293,f294,f295,f296,f297,f298,f299,f300,f301,f302,f303,f304,f305,f306,f307,f308,f309,f310,f311,f312,f313,f314,f315,f316,f317,f318,f319,f320,f321,f322,f323,f324,f325,f326,f327,f328,f329,f330,f331,f332,f333,f334,f335,f336,f337,f338,f339,f340,f341,f342,f343,f344,f345,f346,f347,f348,f349,f350,f351,f352,f353,f354,f355,f356,f357,f358,f359,f360,f361,f362,f363,f364,f365,f366,f367,f368,f369,f370,f371,f372,f373,f374,f375,f376,f377,f378,f379,f380,f381,f382,f383,f384,f385,f386,f387,f388,f389,f390,f391,f392,f393,f394,f395,f396,f397,f398,f399 +-2.50391422427,1.68599787994,-6.01226188664,-0.125473405835,-4.05747392075,6.31113406836,3.125083399,-1.28819161128,-0.594363160034,-4.04687042561,3.33266554158,2.05021273438,5.06569788016,-1.51135614382,-1.75754686884,-0.330255823582,2.89510802927,-0.73977406509,-7.89353751824,-3.45772308633,1.17079686934,-4.14460512795,-1.39475490187,3.86253584502,0.447348279778,3.92883117367,-4.46848521844,-3.76229701362,1.69349113829,-3.27463325871,0.924009592578,2.12999677853,2.85659594768,-4.17102590297,5.99293164916,10.2884632288,1.83231558377,1.4478797998,-4.38947245616,3.90167659309,-1.85908630842,-3.78404481822,-4.00131390917,-5.05896560394,-5.12547527286,-1.43005141799,-0.799648821025,-3.57910595264,-2.2926393485,5.31605148185,-4.44407908701,2.30758203368,4.12896344555,-2.10192899924,-1.57365770347,1.46184540219,1.02006796352,0.693975594963,-0.882507590565,-0.268305251769,-1.78810432009,-1.44049936972,-1.30807676828,-2.54602796889,1.91918086343,-1.87330246853,-1.19116743588,-4.94173944111,3.41346881759,1.04477840726,-3.87883468949,-1.6401990057,-3.11963649974,3.10739194639,2.00107403406,-3.01992488162,-2.17734208151,1.18544464156,-3.26027744456,-1.38117784752,-1.12807281493,1.23731617227,-4.22769494609,-2.31104123998,-2.73342858264,-2.60609814517,-3.91516964902,-1.43564934755,5.86923505644,10.8698481406,-0.0644558026284,1.29974983175,11.9821762355,2.63645925008,-0.800439528532,0.305979802689,10.4448009584,3.89998507623,10.3629906773,0.987935663397,1.06111665476,1.15934493999,4.74597180691,-0.53357543254,-5.53819862455,-1.08892905758,-2.84128587559,2.54403880204,3.08628575869,2.26009004126,2.77060999349,-0.582374569877,-1.77802346002,-0.2937931835,1.02838354244,3.37142584142,-6.2468072647,2.20336157741,4.02669576097,7.7139954797,-2.62292807265,-1.63856477894,5.24209850422,-5.95689444574,10.9237309757,5.56173629091,-0.06239338509,-0.11586309122,10.5260359799,0.0455641002992,-0.143587274683,6.85981490484,1.30256727268,0.099060309792,-0.99507694974,-2.39523977029,0.646837872527,-0.549287130061,0.528060432284,0.478981495421,-2.87669151504,-1.24631201746,-2.76280551886,-4.99648601327,1.56782352093,1.72098800023,-0.0553381940814,-5.35496277362,-1.12433242997,-0.526286978024,4.84426140262,-1.67891876845,-0.0265676538691,-3.17656040053,0.26415708479,4.03517758548,1.4993594204,3.83278299704,-2.77651900406,-0.861125229206,11.2030357751,-3.15313750697,-2.50459314309,1.78739187732,-7.82420403389,0.904809594012,-4.18456179152,0.60995901817,-1.44564015234,3.83168430104,-0.00437937539048,-2.3451228437,5.58568740368,2.97791145801,4.32271502614,-1.54512997459,0.536759116431,-1.1815032758,-3.14896126398,-6.86535051022,-2.70346348657,0.0113500145858,-2.77794979296,2.35137890776,-2.64285167165,-3.95364762035,-5.22867795339,6.15572625407,-6.91736113212,-1.52054794698,-2.80880080933,0.30321730122,-5.91560237718,-7.42976562356,-1.07937648743,-3.26394725639,5.0495641506,-0.553299233738,3.96384933141,-2.30659410078,-1.92410211898,-0.0740623548288,-0.741995456365,1.25729537246,3.06146581722,2.64592689772,-0.768545938319,-0.368544330909,-4.14440217226,1.39461226592,0.549227126659,-2.66866894906,2.50084337145,-6.41121511041,0.753405646177,0.280067476256,0.0344201303652,1.11097541213,-0.756136736626,-0.134220118965,5.6025168238,-2.69538654726,-1.20349766834,-2.90915489789,-3.07136878235,5.78831844318,4.79880530822,-1.54153241949,-4.93687499883,-1.02846407186,2.11793406884,1.81036372992,0.928447236083,-1.67445344365,5.93752378918,5.25534441684,-1.32955752029,5.02874157984,-8.32498580794,1.22665544488,0.729978278127,3.76998885216,1.18933444305,-4.01561953996,-1.91036380149,-2.01600540918,-2.19074894269,-6.06838036269,1.91566910093,3.16219263298,-5.36112836713,-3.03646755643,2.60723549671,-4.73392456058,-1.27864055974,1.65558185437,0.35871136493,-1.97445669054,2.00282359886,0.766041404302,0.935142604145,0.146960995005,0.90301123882,0.584378651645,2.43738964301,2.14986027277,2.13076803503,3.4849176696,3.37372560032,1.19906408345,-3.25606738189,-7.18101082565,-1.28755031363,0.930275378818,0.638566405974,4.33632120663,3.7835789624,3.41258601273,-0.279865853117,-0.651737863704,-4.7223025058,5.75545690528,-0.820105519292,-4.00676441302,2.11396374954,2.60952237005,-0.820631582523,-0.546553676079,5.33481172893,1.34852465273,2.93794032376,-1.33422280837,0.00903616898423,-2.36627310158,-4.99107783527,4.48972757256,3.85615534734,0.528791357535,5.58767522678,0.127227772965,0.973913995567,-1.8062694088,2.32322553868,-0.442473914737,-0.123751487135,-1.67863033336,0.0891421785383,2.82212784306,-0.478511586228,-3.3537200428,-0.522387139102,-4.25974474021,2.87018204241,-0.111813521457,3.94839403804,3.74490500576,-2.30623158975,1.49538655047,0.530469396242,5.1296629385,-0.453469798231,0.306027388129,0.35104102143,-2.34272025863,2.87870763106,0.212640115016,0.719817214469,-0.20345939615,-0.506974699062,5.3592568385,-2.28140813929,2.88992723737,1.65410613199,4.48693866632,-0.09672872709,-1.87582435405,-2.46928755752,-3.56278716312,1.74785164057,2.74009034813,-7.29490411233,-3.16100976408,0.847520336401,2.92602454656,-0.0986801903656,-2.16201799224,-3.39690165524,1.53765563161,-1.41997380147,2.71161737728,-0.0167333157083,1.75945290337,2.10004583364,0.765974609689,1.79493778887,3.43569638106,1.49552039321,1.90617850633,-0.592973705882,4.00305455331,0.0335191789012,1.05186070161,2.48385107847,4.89055257951,2.06091725733,-0.18432842804,-4.0123498625,-1.32194922277,2.87064841629,-2.07818711219,0.695646315956,-2.8474977249,-0.372025591391,0.277543174562,0.348284025789,-0.54074715731,2.48928393808,-5.685446576,-1.66416304574,-7.02726226008,-4.88155203391,-5.57406386037,-4.91916411608,-7.94337537982,-3.65389317081,-2.97659988583,-5.97952768511,-0.575712613136,-3.38044490327,1.89594224776,-0.106777342905,-1.21814931744,2.66339186237,2.37583883107,-2.34277046832,0.0847875222918,2.1196259109,-2.034442402,0.994460807731,-5.99126604669 +-3.61196599602,1.54396823943,-7.05199570656,0.70936037898,-4.42450754642,5.79873381853,4.79998759627,-1.51375595927,0.041889913378,-5.36947724223,3.11711617708,1.87290850281,5.37537143231,-0.140440261367,-1.07927534082,-0.8091666732,4.91609726548,-1.47799203396,-8.695467484,-4.09717354178,-1.04496299029,-3.85961924196,-2.10038466751,3.32289713025,-0.286860848963,3.96218072772,-4.39675701856,-4.40787660479,3.73622534722,-2.87716412544,0.454319910706,2.42820411325,3.82069679498,-2.79692421705,4.38538633883,10.2156878471,3.4358463645,2.12645539939,-4.04702971578,3.87549848557,-3.44834155142,-4.70891635418,-3.76960349679,-4.85522414446,-4.31793097854,-1.22963698059,0.447048375012,-2.53883199245,-3.42271156311,4.74730663896,-3.28625443876,1.15255518705,4.48008643985,-2.00973020792,0.25715895891,2.01633035838,1.72455749959,2.46865062863,-2.55920924097,-0.941734179414,-1.01115750857,-1.55530408025,-1.35561941266,-1.23846808225,4.0139059037,-2.82922329605,-1.54500077367,-4.14823132754,3.46829478144,1.42298098058,-3.60501238108,-0.478655001521,-2.27799000442,3.80441823602,0.555091810227,-4.56343603134,-3.86684781313,2.51266635656,-2.34452754557,-3.54211790189,-1.63034411222,-1.93864814639,-3.73451783657,-1.60328631774,-2.4672175467,-3.80095796585,-4.04769252539,-1.72506986559,5.59767432213,11.0820033073,-0.191732565476,1.90799899697,11.6760043621,4.55487689376,-0.31670263633,0.824923895671,8.5647937417,6.5042055428,11.780738759,1.50271001905,-0.0258838802575,0.435441556572,3.30290358961,0.377896644174,-6.5453125,-1.00815881342,-4.10386363864,1.63551698476,3.23607475758,1.42431855202,2.55384192467,-0.456127088517,-1.94804133773,0.550055715443,0.636448504358,2.32128318697,-6.70778397321,2.73787901104,3.27784690857,8.87038059237,-3.74099546671,-1.75985428691,4.34281664491,-6.43530688286,12.9979223013,6.78234988451,-0.806176937745,-0.697792875396,12.720209074,1.51877520681,0.540385435523,6.74378789664,0.843219137377,-0.0813938416541,0.253477528694,-0.220510208608,-0.133373232186,0.959342181682,1.10231779218,0.231312006339,-1.99769770503,-2.40456032157,-2.95679311156,-5.95258055926,1.98243983686,2.28856839836,-0.382299264148,-5.90337668657,-2.26504155695,-2.81989197582,5.54886015653,-2.23119397462,0.655153363942,-3.77459974289,1.65176175833,5.3708147645,0.977352631095,1.60295453668,-4.00599938631,-1.69029248208,10.0866486311,-3.23101823926,-3.1206391573,-0.391065824031,-6.68118602037,2.16630054861,-4.7760153234,0.383674836252,-2.48520847857,2.07149813026,-1.99720753431,-1.20698849112,6.08765767813,2.54862617255,4.67334094047,-2.9711537391,0.948479612171,-1.01456621587,-3.11699818373,-6.72917854786,-2.92183075547,0.496130555124,-1.61810724959,4.37298168838,-1.93378492743,-1.86215627491,-4.90786517859,8.62715418338,-7.5756526351,-3.27301322818,-1.76513157338,0.75444869213,-6.96635819673,-8.78930687905,-1.7524562791,-2.41629351974,3.68741244673,-1.43222312816,3.23068808318,-1.59724262357,-3.27234983742,1.24265492261,-0.0109941303718,2.80159805715,2.48849355877,3.07970299125,-0.557770807296,0.432648000119,-3.69374324679,0.0467125833038,0.424763832987,-3.38139162659,3.42404463887,-4.51077946425,2.03796033263,0.507232870907,-0.506469908358,1.50909484178,-1.27529992908,-0.255473581143,6.49730739594,-3.27221466898,0.583703720573,-2.57865453363,-2.25019647181,5.4004673481,4.42697024941,-0.0842542231125,-3.7730645895,-0.905618444086,2.8413999021,1.14175421931,0.425801990927,-0.551772788169,4.81836385727,2.67149700224,-1.60633691549,3.67677226961,-7.09939215183,3.07843704373,-0.603567731382,1.07058879137,-0.284542271494,-2.65182375908,-0.966910338403,-2.21251030267,-1.5918459788,-6.73685925007,2.16504070461,3.16708334088,-5.73397156,-0.0308346152315,3.96178902388,-4.34651784301,-0.626209998878,2.96317673624,1.55037861467,-1.6240209043,-0.916502046583,2.22772178277,1.73989147246,0.425792780239,2.44748416841,1.27179720402,3.01824558973,0.45870998502,1.6810954839,4.9340551734,4.52931187153,1.22776987255,-4.30461632609,-8.0007350564,0.293104887008,2.59760651291,-2.09017359019,2.84267843664,3.92640956045,4.39850687385,0.263943502309,-2.52996243984,-4.9456074357,3.01140740514,0.060671949388,-3.45182769299,3.45659797787,-0.717935073377,-1.70038859993,-0.159526935219,4.78994245529,1.73284136951,3.39466386437,-3.02896884084,0.745040215552,-2.42295794487,-5.48635936975,5.81924671531,4.81498251557,0.588836860656,5.34480842352,-1.69491340667,-0.931661537289,-1.47670565099,1.95115838945,4.33551876547,-2.35900820047,-2.03742983938,-2.51175971031,2.00818323493,-1.02861073502,-2.83876619935,-1.42532885447,-3.22665929496,3.24723680019,2.50910392105,1.66940991878,1.98924016655,-2.976414603,2.39372268021,0.0301794916395,2.93753557801,-2.53472368196,-0.224031038582,2.22086050436,-4.60367997885,0.344105190041,0.892087735609,-0.732750460502,-0.0278959076854,-2.04538312331,4.39118845462,-1.92525613308,2.48760456741,2.12224386633,4.20933679342,-0.160378366895,-0.847533833979,-2.68713091612,-2.85529101193,1.45633238703,3.13940095305,-6.84778351784,-3.07674325108,2.9240462061,1.66283178181,0.366562292727,-0.474471753836,-2.22659401149,2.12781591714,-0.698044653983,3.11203145981,-0.0878812848356,2.08509909212,2.37360790372,-0.383632448313,2.85876693129,1.43884898126,2.44588458538,1.13197429609,0.669784083962,2.82567384094,-0.303028093278,0.0804680705045,1.01148720384,3.96722738147,3.78676999509,0.484674140066,-5.0017509222,0.154588726159,2.53468632102,-2.48899200261,0.211847947538,-2.28771493435,-0.277051561698,1.01623694403,0.347248692065,-1.88412645785,0.431219244007,-5.62209599018,-2.32514169514,-6.17786878348,-4.5459565401,-5.45559768676,-5.25804600716,-7.30329209566,-4.18787643314,-1.41929989755,-6.36565381289,0.691979244352,-5.4266118586,0.243365764617,-0.33372869622,-1.60025772154,2.65902011394,1.72226278037,-3.51518207789,0.837280854209,2.64499332011,-0.451456475259,4.05596930012,-4.51415959 +-4.72683149606,1.45348708808,-8.07086817742,1.63604789376,-4.73549800873,5.20675960303,6.51230325818,-1.76839387298,0.728590119478,-6.74178866983,2.8130164218,1.58456622004,5.62148933888,1.37578496694,-0.371593541978,-1.41557620727,7.0383985126,-2.29083102226,-9.45700079202,-4.80206114411,-3.43986400128,-3.55278479934,-2.83554306328,2.7735268724,-1.13780232042,3.92281681627,-4.25488941192,-5.10927104115,5.96552311688,-2.43940485954,-0.0862283119556,2.73895709873,4.89024929762,-1.2763541922,2.57022780523,9.9613841939,5.07362765074,2.82582543075,-3.62501172424,3.7390643692,-5.19941673696,-5.66170942306,-3.52688271404,-4.6018137145,-3.43782470346,-0.992310488373,1.76652944327,-1.43113125652,-4.60094419718,3.99586562991,-2.03482079327,-0.160126103461,4.7740121144,-1.88776037335,2.26084538698,2.65253681004,2.54412336618,4.38450802416,-4.3977601847,-1.7176710071,-0.0724306311467,-1.70681380391,-1.41692107796,0.200332455933,6.24482979595,-3.83351793349,-1.88694544792,-3.24113301516,3.48263311743,1.83456811458,-3.1987385869,0.769642335775,-1.36940517485,4.47494917393,-1.01712017417,-6.15526720286,-5.62981627226,3.9166711688,-1.23287549198,-5.84563351884,-2.13252854615,-5.38287308335,-3.12790068805,-0.774887352436,-2.1297221756,-5.0906492424,-4.12367990136,-1.97023809493,5.23813544751,11.0778312242,-0.275825666287,2.59604639888,11.1118171802,6.55417260289,0.203035293669,1.38965836696,6.4515772891,9.32944820284,13.2775346517,2.04594562918,-1.18929040372,-0.312611132264,1.6740041858,1.40754847616,-7.60108621597,-0.907561735809,-5.39238245725,0.626936522051,3.35088065982,0.46351477623,2.31236622334,-0.229608643204,-2.07551843763,1.55680642903,0.263669897775,1.0858634612,-7.05738488197,3.32455673039,2.40335632682,10.0899427987,-4.92568675757,-1.80175588966,3.28225847542,-6.88330174923,14.9608820614,8.02759130716,-1.60224438258,-1.24848374822,14.9900966168,3.09142677188,1.2888044706,6.5442295146,0.330789602659,-0.286123776287,1.62822659672,2.06531837225,-0.982651502788,2.60571396113,1.63691263556,0.01017631717,-1.03312850952,-3.68506930947,-3.12813932538,-6.89839523554,2.3975418067,2.95167421162,-0.811870859787,-6.43306355715,-3.44969232738,-5.32219609171,6.3486418271,-2.75835331619,1.37597230494,-4.40136899472,3.19074914694,6.78243587256,0.445585229398,-0.808829127549,-5.32398023844,-2.61561192304,8.69628513216,-3.31122705817,-3.75478894711,-2.72484310418,-5.34768217325,3.53855306476,-5.38706000924,0.145446739923,-3.58612233102,0.120355840028,-4.15744045019,0.0731746891131,6.55438641787,1.99956796408,4.91731314421,-4.42644771397,1.40971697062,-0.784811406731,-3.00484983444,-6.53485749721,-3.15200479388,1.03534908369,-0.301970368177,6.51142239392,-1.10611675471,0.418995252622,-4.4721977675,11.1724257183,-8.21665349245,-5.11762260079,-0.615411399901,1.18636612185,-8.06906448126,-10.1247596884,-2.49426667422,-1.32065032601,2.17061477065,-2.33631666951,2.38926856876,-0.913166025876,-4.7118704623,2.72928834141,0.775672697726,4.4457443577,1.71014433921,3.57591197133,-0.235582885593,1.25215531408,-3.14634150744,-1.4078004086,0.365033659041,-4.17761438727,4.40297134757,-2.42336025477,3.4580388701,0.689679874331,-1.04557964027,1.87770598858,-1.80380414367,-0.417696796171,7.45841611862,-3.81225969553,2.56200723887,-2.21683688522,-1.32409115911,4.95071142197,3.92624093532,1.46352795839,-2.46225001812,-0.77849281013,3.50410349012,0.434351972267,-0.0288636657596,0.669223650095,3.49293913841,-0.137764969467,-1.96554630518,2.1402142328,-5.7265598917,5.16214273542,-2.05637966395,-1.8495585683,-1.87955528319,-1.25644548416,0.00674796104395,-2.43147389591,-0.893102669418,-7.49637273312,2.34914988339,3.13358963132,-6.12764425039,3.23036705017,5.41211955786,-3.91730147004,0.0444684042034,4.39211372912,2.92113072753,-1.25977230668,-4.12997387886,3.87697173372,2.66106281221,0.736292763781,4.03323895753,2.06197661877,3.74714529276,-1.27023549199,1.21123526514,6.49754122019,5.87128979206,1.2765970856,-5.3870420897,-8.90884536504,2.01509624004,4.4446681577,-5.09674575568,1.20312212527,4.04149165512,5.50566021562,0.953406482342,-4.55933359832,-5.21267021895,-0.036395560507,1.1284481287,-2.80024212361,4.99020810008,-4.41919901133,-2.62691727608,0.226202066541,4.16152264595,2.0979556495,3.87861913562,-4.9043425262,1.60233154863,-2.46861632347,-6.0349463439,7.17580538869,5.88561519026,0.718002053499,5.10737453699,-3.68287960738,-3.00543767631,-1.03803471714,1.53446617425,9.3747028375,-4.76337719411,-2.39580845952,-5.3522044754,1.13427948356,-1.6372946959,-2.29562118411,-2.37800694928,-2.10207263529,3.68294849873,5.38075784862,-0.940855975155,0.0137967544802,-3.74462119222,3.33829092682,-0.57550301969,0.537392029762,-4.84174327537,-0.825007719694,4.19546295956,-7.04726793528,-2.39606908321,1.61995286934,-2.34724253952,0.159427139386,-3.66048334882,3.28457990646,-1.59395935536,2.02604223549,2.65396766722,3.91925804377,-0.170175538174,0.293078864813,-2.97810955763,-2.11363542974,1.19750591725,3.54246556639,-6.34636378288,-2.98813998103,5.24311850287,0.266658103764,0.848274391745,1.48310565829,-0.99932412535,2.74228922785,0.028886015862,3.42641401768,-0.174800014277,2.45710129201,2.67823993087,-1.63095737636,3.88755993008,-0.699719142316,3.417716069,0.163006665744,2.16666536272,1.66770118028,-0.553962221444,-1.03107923508,-0.689737435581,2.84424331307,5.59421723187,1.20365538374,-6.0307972002,1.79253649413,2.07976007581,-2.97050522506,-0.320198328197,-1.71101762295,-0.148553741649,1.92997103455,0.389586392492,-3.34172380107,-1.60005307674,-5.45010868966,-3.076508376,-5.23991111994,-4.07970976352,-5.24768321514,-5.51570352555,-6.46153886914,-4.78648862958,0.280570674728,-6.66282331825,2.05202573478,-7.5744939363,-1.66311737061,-0.568106225319,-1.98653774977,2.69276298046,1.04291445166,-4.88652718305,1.6799737481,3.19981912076,1.09642167091,7.33881660357,-2.92239319682 +-3.95618640951,2.16822504699,-7.02749201775,2.07438584924,-3.7952008903,4.66516063452,5.66598080516,-1.93683131397,0.83286083467,-6.31038688779,1.93803728581,0.415994385479,4.63695873261,2.03064954996,-0.546765608815,-2.54600209773,6.67720080018,-2.60086139083,-8.36665858864,-5.08000973701,-3.84362360537,-3.51486208201,-2.64075744003,3.07348869205,-1.94571852326,3.0428294871,-3.48582068503,-5.26945194721,6.5893364191,-2.27115260124,-0.558212063015,2.65741990924,5.38911813021,-0.610317340195,1.36496483032,7.88430027903,4.24496084571,2.5491838041,-2.95291282773,2.46365449905,-5.8806508565,-5.27971760869,-3.57540645719,-4.17462575197,-3.20521330357,-0.712461964526,1.66458856776,-1.43753664225,-4.29921654403,2.28583934903,-1.82383457958,-1.12579432636,3.8323690407,-1.60873620778,2.88645622611,3.1870587337,3.35539863348,4.68089458585,-5.01220222473,-2.40511398852,1.23198447682,-2.04995642841,-1.54208872378,0.738531426192,6.23694182634,-3.66800229013,-1.47559821933,-2.51566377998,2.96481087386,1.93647179783,-1.85266061902,0.897218961718,-1.2290535754,3.62848708004,-1.39016747028,-5.53799726665,-5.19588583469,3.79989851355,0.365908132196,-5.86183534264,-1.74588927373,-6.0965897572,-2.17361679807,0.099301538021,-1.49651467532,-5.28756560326,-3.35764337569,-1.22807119251,4.41288296581,8.37310397655,0.329299056678,3.0666925776,8.31520066255,6.03162533879,0.254658643305,1.52927615046,5.15474370718,9.92706954478,13.1178707933,1.9851475221,-1.25251645445,-0.040588879585,0.598402907254,2.09637820482,-7.39962798595,-0.736607771963,-4.72784618586,0.148764773328,2.82482881815,-0.363951296807,2.18847515703,0.851648719757,-1.44513312698,2.82303802848,0.789665968129,-0.284895439446,-5.39480451405,3.52706449866,1.50199447424,9.94445934776,-4.85012166024,-0.775828022365,2.07768519119,-6.15859429717,12.0614514388,7.37984260201,-1.64554053068,-0.434650133851,14.1951656962,3.12879480362,1.52092895806,5.6518155706,0.0597475437445,-0.432820611596,2.15243572235,1.70108392119,-1.19518387556,3.0659382844,0.729992161989,0.512096637264,-0.702464946806,-4.23238757848,-2.71316921115,-6.04356548428,2.08492669598,3.63833817005,-1.76652027816,-5.79197620272,-3.09022756994,-6.01349622488,6.92608562946,-2.03923279405,1.31198180869,-4.27980091691,3.90416300416,6.64981202126,0.73166857958,-1.23485268474,-5.4199275887,-3.10880723954,6.33416883498,-3.2787891686,-3.49453917981,-2.87733795069,-3.98702534318,3.87149213552,-5.16316780805,0.178835353982,-3.50880401373,-0.771996193229,-4.59445316195,0.868211128412,5.75491086721,0.921819759609,3.39493911088,-3.67554339618,1.67544182837,-0.174868727922,-2.08721256792,-5.95615169048,-3.12308293462,1.30280533791,0.644019361586,6.33218312264,-0.25693573624,1.04176057992,-3.36895969659,10.1426500809,-7.50808531523,-4.85486101508,-0.170589606464,0.612994321586,-7.87276499986,-8.79793308139,-2.78509446978,0.942439908986,1.39931613266,-1.95726648182,1.68011825532,-1.75475023031,-4.74921035767,3.71489373327,0.868516312915,4.43326895118,-0.263135685322,3.9764669311,0.911694865376,0.85224120736,-2.35560669035,-1.62565724194,1.2212044698,-4.61154775619,4.34895780444,-1.68536224604,4.06422766924,-0.0101673817625,-0.609392880799,1.22532760024,-1.5149737785,-0.805999085308,7.55067921162,-2.93719872087,3.43533396363,-2.10260034561,-0.721583162695,4.52110221148,2.69720968336,1.40812491387,-1.62846618414,-0.822517428993,2.23470644593,0.491862057373,0.920802225173,0.962496383188,1.928562572,-0.802637988328,-2.72160144806,1.0092707017,-4.93745543241,6.46554609537,-2.43392473698,-2.37087579571,-2.17133839786,-1.93240495443,-0.362681306601,-2.54449704886,-0.17978616923,-8.05280478001,1.39086142182,2.67881788671,-6.08614060402,3.92572582901,5.49754135013,-3.72346940279,-0.242022804468,4.81397798061,4.11047571898,-1.36651873588,-5.34488024235,4.95870956659,3.41118116498,0.89432107985,3.33253220856,2.74165137768,5.04070746183,-0.415948872567,1.31926612794,6.72856174469,7.17419068098,1.49098495662,-4.98007160067,-9.318038764,2.46224850535,5.27640871287,-6.26628448487,0.635381773711,3.60578859449,6.173201437,2.24732711256,-4.89329962254,-5.55538270712,-1.49875565291,2.64946635843,-2.09067063332,6.20336785316,-6.25677093268,-2.50105109721,-0.0861860245474,3.59812706232,1.57726798058,3.84794261813,-5.72557672262,2.46239029348,-2.29553559303,-6.28103302002,6.47278197646,6.46319063902,1.48405849189,5.35767221928,-4.23237529636,-3.51878979206,-0.00904786854982,1.29577608407,8.77539933744,-5.03432886004,-2.11539484441,-6.16999167681,1.0546652633,-1.90332779229,-2.35973056435,-2.26917619407,-1.82008438647,4.08268388271,6.31470301866,-3.08372749806,-1.22069035709,-4.38186541558,3.19182102323,-1.42976873428,-0.223793095648,-5.89660835981,-1.25134502113,3.99110957295,-7.45729860783,-2.86559789747,1.66721295506,-3.13464591861,0.162813140824,-3.38049943731,2.39996716856,-2.15944387913,1.63885930896,3.04169135332,3.98578349114,0.511457957626,0.823394746482,-3.67019996286,-2.25544205963,1.80545994013,3.28000457585,-6.05162557602,-3.00187867403,6.49878694773,-0.326051785648,0.684602611069,3.36035886407,-1.228521097,2.57487190307,-0.46660696879,2.10812581897,-0.305482617393,2.75176966548,2.83328473449,-1.89653189778,2.65913075805,-0.83185869336,2.94031493856,-1.53106848534,3.9481344676,2.79967945367,0.710376281441,-1.93211027801,-2.24844452739,1.20713421225,5.22792970717,1.27727831364,-5.73701616764,2.55549032926,0.93986610532,-3.48593280315,-0.51567519635,-1.94204506159,0.172434514092,3.41956290126,0.900014420896,-3.65240677357,0.294835821394,-4.22226468399,-3.63110159874,-4.85140349388,-2.80221052408,-4.28761808038,-4.3011406827,-4.58334078341,-5.13591312647,0.760158468181,-5.32113479346,2.1639226532,-7.19870259762,-3.37775546551,-0.481121961772,-1.74219072804,3.14396611452,1.24187298924,-6.32387711763,2.16209208607,3.14260455966,-0.531431690456,7.58907546639,-2.70918695331 +-1.8262197373,3.46346980632,-4.49737847328,2.16065784335,-1.95281272531,4.15987870455,2.97505878091,-2.04312422812,0.517240521534,-4.57863372207,0.651493945123,-1.38716154456,2.76521640778,2.06453320265,-1.35841371835,-4.05420722187,4.5255736053,-2.54840182424,-5.94124334216,-5.05016509056,-2.81190917194,-3.67080595732,-1.77554705888,3.98575968385,-2.7226165092,1.5568113219,-2.26458370864,-5.039455657,6.05570743084,-2.2971960926,-0.980765613618,2.29306887269,5.47656385183,-0.560339287222,0.599394002372,4.49311896622,1.63815704465,1.56890586585,-2.10052304626,0.367122573851,-5.79060420752,-3.93543901801,-3.83389718414,-3.62215631246,-3.43940053463,-0.401958022528,0.53790163979,-2.24713481337,-2.93054077685,-0.115260034797,-2.36293837487,-1.84129033774,1.99996710196,-1.21648682684,2.51857071042,3.64827320695,4.16069695712,3.80975566268,-4.74414714813,-3.02875908077,2.80003528588,-2.53125300467,-1.71329928577,0.627459498644,4.61502670049,-2.65913504899,-0.521180084049,-1.92113643766,2.06333797991,1.81511531889,0.170950590374,0.216834144594,-1.64254453719,1.68837884694,-0.898700688779,-3.32811955512,-3.17814456463,2.586751405,2.31587963283,-4.22904350161,-0.718470119983,-4.84180047393,-0.968689443319,1.00650176987,-0.650119360983,-4.69666749001,-1.9845663628,0.225895456072,3.25188346505,3.7214648661,1.43130174562,3.38060764193,3.90915834465,3.69100523353,-0.0311959603429,1.36241446137,4.44646521807,8.91873133182,11.7640150213,1.48888324678,-0.522589141129,0.966836237908,-0.0783090251672,2.53949897528,-6.29179323673,-0.514931401759,-2.65529345423,0.0529807021281,1.83676325411,-1.09529018879,2.14935440898,2.54911320939,-0.268381892444,4.27633724332,1.96361587535,-1.7532244429,-2.28158183038,3.45261253476,0.581260310115,8.81487321379,-3.86599963188,1.0199303931,0.769287056774,-4.58845028997,5.65657658659,5.3673800838,-1.14614109278,1.36291043639,11.190714488,2.05933052063,1.38084109723,4.25990110517,-0.0372709861028,-0.537679631114,2.06346488953,-0.573661087751,-0.94866688013,2.67103304624,-1.21616028428,1.53528989427,-0.828803119361,-4.25112649202,-1.87550593019,-3.89059672713,1.24767834112,4.34198590755,-3.09971417338,-4.30684231401,-1.61756324589,-5.39918883562,7.34323934078,-0.421631439929,0.682198462336,-3.61873383403,4.0223959434,5.40389529228,1.60736526251,-0.229281746149,-4.63487404227,-3.29047121048,3.27148656696,-3.16514086127,-2.58948973179,-1.45728034504,-2.60679310679,3.4551587224,-4.33734436273,0.408040666226,-2.58206250429,-0.901034320293,-3.78914433122,1.31350503355,4.04259036302,-0.537077046634,0.599152674081,-1.33412403017,1.80021581352,0.709162880183,-0.588873988985,-5.10033129215,-2.90737100959,1.37433995247,1.32315881923,4.48205828667,0.607754543123,0.468945158216,-1.78444975466,6.53551485418,-5.82657202005,-3.07283199429,-0.23395036608,-0.685120877029,-6.73997298956,-5.55178875566,-2.75079527497,4.04717801094,1.16547028959,-0.65315918714,1.06632480771,-3.69622943163,-3.77567577362,4.33929287315,0.461161797867,3.2264848721,-3.09787745297,4.30806201577,2.65380481884,-0.426790667771,-1.38944570095,-0.951971263289,2.73767599046,-4.78429574967,3.55026640534,-1.92020277738,4.08365875006,-1.34608724355,0.52991460502,-0.16311301112,-0.636902204679,-1.35728861392,7.01656522274,-1.04194504768,3.51204951167,-2.16685251236,-0.352366254777,4.10601737738,0.943123545944,0.196937171517,-1.13858823061,-0.989929439423,-0.42760035634,1.10082056798,2.88289318532,0.586945049761,0.191918394566,0.0784438192848,-3.76375469208,0.170746930539,-4.56917799234,7.20640591383,-2.03627742291,-1.162803858,-1.52358367979,-4.10165442705,-1.70038300634,-2.58114453554,0.544036584797,-8.4628292799,-0.39101603627,1.92033407032,-5.73090517998,2.77129089892,4.59895916582,-3.6993329978,-1.21856652394,4.50981304645,5.16903883219,-1.81281971931,-5.11896033764,5.63131075621,4.03798224807,0.94242796123,0.983446211217,3.34165998936,6.74135187387,2.30066786289,1.84391614258,5.99896759033,8.44891975641,1.82473051131,-3.49935032487,-9.36754787922,1.99033073068,5.37617359877,-6.11145027161,0.840345951319,2.77300786376,6.52381299019,3.97701953709,-4.00499682903,-5.95263335466,-1.81812204599,4.49724048495,-1.33929533959,7.18550524711,-6.75075093508,-1.61648165077,-0.901867833736,3.08160940886,0.417978906632,3.44625248551,-5.78684989214,3.32444414914,-1.96475922584,-6.30903808594,4.28494357228,6.6853062272,2.70926908404,5.95959033489,-3.74483410478,-2.90718505382,1.44551556975,1.18541310728,4.11113968076,-3.76723547578,-1.37445659459,-5.52958389044,1.54767837942,-1.92233352125,-2.86162799716,-1.39507161677,-2.14555080593,4.45648285389,5.85169536352,-4.88964028836,-1.92099967062,-4.92469491005,2.25878873229,-2.46324559539,0.196596455872,-6.0487574029,-1.55177951395,2.21588104457,-6.40127635479,-1.69814975291,1.22380428523,-3.3257760489,0.0335933651775,-1.73429207817,1.6753979218,-3.37144515515,1.30529874444,3.32560100317,4.3093956852,1.69156472504,0.913729201853,-4.65146396518,-3.03416330755,3.03830222517,2.53774605692,-5.90589033127,-3.08939878225,6.98781540632,-0.339520339072,0.055654079916,5.17970392108,-2.50772905916,1.84376598061,-1.84338212296,-0.387204087972,-0.467715920136,2.99068574548,2.88048758626,-1.45433287024,-0.196598118542,0.482496773005,1.41811820263,-3.74789556999,5.93477154017,5.5825525865,3.06712063462,-2.68137378276,-3.70440641046,-0.800623167756,3.29453107536,0.885642924309,-4.48956893444,2.6876345849,-0.693841806652,-4.02581026554,-0.468509003222,-2.75538569212,0.6321949444,5.32430804849,1.74790291831,-3.13624450207,5.02021304012,-2.23322165832,-4.04383488655,-4.85901101112,-0.93985485792,-2.78530479312,-2.02520967245,-1.95793826431,-5.30569067717,0.360007514108,-2.79794396788,1.37599081039,-5.00351879596,-4.95408667088,-0.162458266318,-1.04320560053,3.89612897635,2.07402950018,-7.80881192922,2.38426132559,2.64415159821,-4.4487659061,5.65304963946,-3.48982639909 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/action_test_anno.json b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/action_test_anno.json new file mode 100644 index 00000000..e19fc76c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/action_test_anno.json @@ -0,0 +1,34 @@ + { + "v_test1": { + "duration_second": 1, + "duration_frame": 30, + "annotations": [ + { + "segment": [ + 0.3, + 0.6 + ], + "label": "Rock climbing" + } + ], + "feature_frame": 30, + "fps": 30.0, + "rfps": 30 + }, + "v_test2": { + "duration_second": 2, + "duration_frame": 48, + "annotations": [ + { + "segment": [ + 1.0, + 2.0 + ], + "label": "Drinking beer" + } + ], + "feature_frame": 48, + "fps": 24.0, + "rfps": 24.0 + } + } diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/audio_feature_test_list.txt b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/audio_feature_test_list.txt new file mode 100644 index 00000000..98a4ea9c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/audio_feature_test_list.txt @@ -0,0 +1,2 @@ +test 100 127 +test 100 127 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/audio_test_list.txt b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/audio_test_list.txt new file mode 100644 index 00000000..57935b08 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/audio_test_list.txt @@ -0,0 +1,2 @@ +test.wav 100 127 +test.wav 100 127 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/hvu_frame_test_anno.json b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/hvu_frame_test_anno.json new file mode 100644 index 00000000..2a543073 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/hvu_frame_test_anno.json @@ -0,0 +1,24 @@ +[ + { + "frame_dir":"imgs", + "total_frames":5, + "label":{ + "concept":[250, 131, 42, 51, 57, 155, 122], + "object":[1570, 508], + "event":[16], + "action":[180], + "scene":[206] + } + }, + { + "frame_dir":"imgs", + "total_frames":5, + "label":{ + "concept":[250, 131, 42, 51, 57, 155, 122], + "object":[1570, 508], + "event":[16], + "action":[180], + "scene":[206] + } + } +] diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/hvu_video_eval_test_anno.json b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/hvu_video_eval_test_anno.json new file mode 100644 index 00000000..f0f98ddc --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/hvu_video_eval_test_anno.json @@ -0,0 +1,18 @@ +[ + { + "filename":"test.mp4", + "label":{ + "action": [2], + "scene": [2], + "object": [1] + } + }, + { + "filename":"test.avi", + "label":{ + "action": [1], + "scene": [1], + "object": [2] + } + } +] diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/hvu_video_test_anno.json b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/hvu_video_test_anno.json new file mode 100644 index 00000000..ae20d24c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/hvu_video_test_anno.json @@ -0,0 +1,22 @@ +[ + { + "filename":"tmp.mp4", + "label":{ + "concept":[250, 131, 42, 51, 57, 155, 122], + "object":[1570, 508], + "event":[16], + "action":[180], + "scene":[206] + } + }, + { + "filename":"tmp.mp4", + "label":{ + "concept":[250, 131, 42, 51, 57, 155, 122], + "object":[1570, 508], + "event":[16], + "action":[180], + "scene":[206] + } + } +] diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/proposal_normalized_list.txt b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/proposal_normalized_list.txt new file mode 100644 index 00000000..e9a5a3f5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/proposal_normalized_list.txt @@ -0,0 +1,18 @@ +# 0 +imgs +5 +1 +2 +3 0.2000 0.4000 +3 0.6000 1.0000 +10 +3 1.0000 1.0000 0.2000 0.4000 +3 0.5000 0.5000 0.2000 0.6000 +3 0.3333 0.3333 0.2000 0.8000 +3 0.5000 0.5000 0.2000 1.0000 +3 0.0000 0.0000 0.4000 0.6000 +3 0.3333 0.5000 0.4000 0.8000 +3 0.6666 0.6666 0.4000 1.0000 +3 0.5000 1.0000 0.6000 0.8000 +3 1.0000 1.0000 0.6000 1.0000 +3 0.5000 1.0000 0.8000 1.0000 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/proposal_test_list.txt b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/proposal_test_list.txt new file mode 100644 index 00000000..840a8d68 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/proposal_test_list.txt @@ -0,0 +1,18 @@ +# 0 +imgs +5 +1 +2 +3 1 2 +3 3 5 +10 +3 1.0000 1.0000 1 2 +3 0.5000 0.5000 1 3 +3 0.3333 0.3333 1 4 +3 0.5000 0.5000 1 5 +3 0.0000 0.0000 2 3 +3 0.3333 0.5000 2 4 +3 0.6666 0.6666 2 5 +3 0.5000 1.0000 3 4 +3 1.0000 1.0000 3 5 +3 0.5000 1.0000 4 5 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawframe_test_list.txt b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawframe_test_list.txt new file mode 100644 index 00000000..e0c7c713 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawframe_test_list.txt @@ -0,0 +1,2 @@ +imgs 5 127 +imgs 5 127 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawframe_test_list_multi_label.txt b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawframe_test_list_multi_label.txt new file mode 100644 index 00000000..bfdee423 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawframe_test_list_multi_label.txt @@ -0,0 +1,2 @@ +imgs 5 1 +imgs 5 3 5 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawframe_test_list_with_offset.txt b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawframe_test_list_with_offset.txt new file mode 100644 index 00000000..a3a81015 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawframe_test_list_with_offset.txt @@ -0,0 +1,2 @@ +imgs 2 5 127 +imgs 2 5 127 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawvideo_test_anno.json b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawvideo_test_anno.json new file mode 100644 index 00000000..8ce4ffcb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawvideo_test_anno.json @@ -0,0 +1,8 @@ +[ + { + "video_dir":"rawvideo_dataset", + "label":1, + "num_clips":2, + "positive_clip_inds":[0] + } +] diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawvideo_test_anno.txt b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawvideo_test_anno.txt new file mode 100644 index 00000000..d487afb6 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/rawvideo_test_anno.txt @@ -0,0 +1 @@ +rawvideo_dataset 1 2 0 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/sample.pkl b/openmmlab_test/mmaction2-0.24.1/tests/data/annotations/sample.pkl new file mode 100644 index 0000000000000000000000000000000000000000..ee61c7125247ab7d622d9ef6528ce01e88af99c5 GIT binary patch literal 284438 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≈!ffGhb8t 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 a-`Z~|%9!}J=Dqy|&V|i-4pO*v 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�$e5T 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 BqjLZN literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/eval_localization/gt.json b/openmmlab_test/mmaction2-0.24.1/tests/data/eval_localization/gt.json new file mode 100644 index 00000000..4ee7b128 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/data/eval_localization/gt.json @@ -0,0 +1,46 @@ +{ + "v_bYUmtLBL7W4": { + "duration": 224.49, + "subset": "validation", + "resolution": "1920x1080", + "url": "https://www.youtube.com/watch?v=bYUmtLBL7W4", + "annotations": [ + { + "segment": [ + 11.553655226209049, + 57.06805460218409 + ], + "label": "Wakeboarding" + }, + { + "segment": [ + 68.62170982839314, + 126.03987519500778 + ], + "label": "Wakeboarding" + }, + { + "segment": [ + 135.4928658346334, + 201.31368954758187 + ], + "label": "Wakeboarding" + } + ] + }, + "v_hDPLy21Yyuk": { + "duration": 76.23, + "subset": "validation", + "resolution": "1280x720", + "url": "https://www.youtube.com/watch?v=hDPLy21Yyuk", + "annotations": [ + { + "segment": [ + 21.392480499219968, + 76.161 + ], + "label": "Cleaning shoes" + } + ] + } +} diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/eval_localization/result.json b/openmmlab_test/mmaction2-0.24.1/tests/data/eval_localization/result.json new file mode 100644 index 00000000..98a6075c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/data/eval_localization/result.json @@ -0,0 +1,120 @@ +{ + "results": { + "bYUmtLBL7W4": [ + { + "label": "Wakeboarding", + "score": 0.6533445119857788, + "segment": [ + 0.0, + 206.3465619982159 + ] + }, + { + "label": "Wakeboarding", + "score": 0.5620265007019043, + "segment": [ + 33.64346119536128, + 206.3465619982159 + ] + }, + { + "label": "Wakeboarding", + "score": 0.4421495497226715, + "segment": [ + 148.03122925958965, + 204.1036645851918 + ] + }, + { + "label": "Wakeboarding", + "score": 0.31284379959106445, + "segment": [ + 0.0, + 123.35935771632472 + ] + }, + { + "label": "Wakeboarding", + "score": 0.2897574603557587, + "segment": [ + 67.28692239072257, + 206.3465619982159 + ] + }, + { + "label": "Wakeboarding", + "score": 0.284942090511322, + "segment": [ + 33.64346119536128, + 125.60225512934882 + ] + }, + { + "label": "Wakeboarding", + "score": 0.12905514240264893, + "segment": [ + 0.0, + 53.829537912578054 + ] + }, + { + "label": "Wakeboarding", + "score": 0.12616874277591705, + "segment": [ + 67.28692239072257, + 123.35935771632472 + ] + }, + { + "label": "Wakeboarding", + "score": 0.12591737508773804, + "segment": [ + 100.93038358608386, + 204.1036645851918 + ] + }, + { + "label": "Wakeboarding", + "score": 0.10444077104330064, + "segment": [ + 38.12925602140946, + 53.829537912578054 + ] + } + ], + "hDPLy21Yyuk": [ + { + "label": "Cleaning shoes", + "score": 0.5667440891265869, + "segment": [ + 21.222965776805253, + 75.03834328227572 + ] + }, + { + "label": "Cleaning shoes", + "score": 0.414698988199234, + "segment": [ + 21.222965776805253, + 43.96185768052516 + ] + }, + { + "label": "Cleaning shoes", + "score": 0.21768000721931455, + "segment": [ + 0.0, + 75.03834328227572 + ] + }, + { + "label": "Cleaning shoes", + "score": 0.10800375044345856, + "segment": [ + 29.560559474835888, + 70.49056490153174 + ] + } + ] + } +} diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00001.jpg b/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00001.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e846e5af2e8cad0c4d99f440b0d1d7709f82fd26 GIT binary patch literal 19241 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 literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00003.jpg b/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00003.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6289b32ecf59281f846de097bad6d577b9fb59a4 GIT binary patch literal 20135 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%0Anb*LFck6EI6i2Lz49U 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 literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00005.jpg b/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00005.jpg new file mode 100644 index 0000000000000000000000000000000000000000..25828b83669ad72e1e76fb249282899798167eaf GIT binary patch literal 20364 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 literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00006.jpg b/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00006.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7f0fa6ca5ce2bd44b3c2108c9024cafcd9e12fc7 GIT binary patch literal 20500 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 JA&ahm|Jh-k1OWg5 literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00007.jpg b/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00007.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2ebc51fe1b110d26e1201299eaad86c4ee5c0460 GIT binary patch literal 20522 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

      !LWWV`SM>b_2x$LE_$k^3W^#ys$P zR%Yv6kEQf4+Ura4wuXE)<0V)%SYeKBCsQBlFCc%sJ+WS?qv(<9{{R>KDXyQ| zXVULKZmzM2vG^Z1CDF7wYv=D2K25M z!mH&fDLe}6>|{XOi*R}x?xS<`dht=Bk)br9zZn>=jeTx|c_-bC}UW$#`|@z}IJ8q^V302 z{p#;L6X7qNNpDK?CAsI0*4{{RI) z()=!(UYVuYS>sfgi;wsR{{UXT8IS>-3hB0|gO8!?8PohQ_&@Or<2Q-d!ru>kKQ^Is zMo1raHU9uVEv}2=8!~qIcGA)BE~MIoYcCzy_@qyzUTXgU*gheE<4^wpgmw?I{{Xzx zTy8Ah{MQ}X+x0JFt2%urNccnG#D~J;;p{#J@urR=^7Wl|?B36HHhN-H|LvlX!KGun?c+P$Fu!2bZW(D-l2emo+`ZM+e{{VuD{8s&mejo<2y_;0%4YfL@|)cz-Go-FuX;&;_;w0{cRI$m5uwE(Q{i{3l%GVwo(wCH{sd_&W9qiuPwX!Aoa%bb)a zuc)hE5xh6>ugCuYv#sC9FNmKEH1F;CwG*f5cY1t<7W9LUJjOqUl@-gO#`ifpf7_?Q z&%JCsZKvoO9M<@}@b#{i4b7AP02q!!K4I@&pTJL!{ul8(-+VoLM%6U`01;pL{vX#a zBOhvky*;btEnmU@8P{XmeWu5^u|>xfpWtr@_=n(6itPR%{2$g!HMQyUG;8-JIsJ#F zdbB9r+mTYzF>t0E(>;C`)ei&;u_WDPG zFFaYN!a-}B_c81v_@c)k)_=m^j}ZK1n?}<7ap9|-68BZQ5L@0$^V{z{XBFw*GX0lz zeM85#{{Rkr3F3VNRGs2id+#`?LO|+0YUH_FIcrfz5#s*<_$bedeiLZ+y8VyCc|29% z)Jd09(j}KVmW?KO^4#+@Bz05Ly)(gIv=_mT+Ed{3YW@(4D7-b|TXPNWm8l^8)Pw$7 zMBl*c*dI!Y*Zv8_0}JmF`25ObjEkFiSLANRD?iQ=!x|JN0qLN`@PqGBR%bH>s-+^r&PUsUx^< zqQ2t)0D^M(H&^g)?E9h(X21*C*`6>@D-$+Qf8QWi!XFKnQqsO7+k7YZ!{L*qUte7; z6I)x}w9(pbKf8Q%9{$z(negjJhr@a`mVs)4BeJ!Q1yvZv)eHSA%z8@4-Eh?_&gZ9i zYU(rqN!Om0yJdW(7BxKub2=aT#rjs>oBpwWztX*IKF8K#)s>A~tK3El9@T}Y>J9S} z^>b4sMx-BF!_*1M=e2r^W6AqwMg9H>JGrbo+u*0~3cY>Q{xyev)c!Ocir9Ddfd2J) zC&$Tycz0L%`8MuHKU(za@~@8{@&MJp>(#%lXH#Nc=i|1uqryHb_=3zPQ8k&u=g`R2 z-uO#MSe-&3;0ot8J3apZ75qaf>;18GN8s&>^bZEuG=+16@`~~scRajC$9v#yH3Eik zKKG}!dWVPMRa7zX0OWoZ!1!)8jgTm>K+u2H52bEmwl-^!@on+bWd72nIvQTSG;k9BdYYqJB!e|OfQ(g?#6K7ze^G;Vx`F1i2NT73U! literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00008.jpg b/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00008.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f9747042fbb3c2409c013b288076bdc9d2a0d3aa GIT binary patch literal 20547 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 Gv;W!3#?jUQ literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00009.jpg b/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00009.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b4a74ebb0debc4fcbd9c96e75fb679383a05fbbb GIT binary patch literal 20527 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

      o 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 literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00010.jpg b/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/img_00010.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9944e620895f613649e97c7cd74a4c3f6d1ab746 GIT binary patch literal 20762 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 literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/x_00001.jpg b/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/x_00001.jpg new file mode 100644 index 0000000000000000000000000000000000000000..705ba4b6aee3fd579f0c6ff3edf709b27bacdb8b GIT binary patch literal 3888 zcmX|D30zX?7QcXiI%XR-(x9TEa&a=n4NS~sP#_fnO^0ckN-MFRFF`G7EO2Rx&|I*E z2sc2jY_c?Mv1Agr#tj@(ryQT6W=_*)HTIh6p}qIc{qDK<{O)(p|J?IG-?`t%k&hF= zDn>Xx9DqOo0Af0TkG}$802Hz$OB%W)X0Rmata@`0B z1UJE$W@nq817@q?YaG2o5NlaGkxpqSqPV!y+&Q#CYr`IVf%D$Q&#|yv_qi>4y^E_G z9whkq`uUT{0byTJ!y{;P1}8RdYkb1j+{C2ad-f*tQUvK4nFkML33K!EkNt4`gruZY zR(AT#*>m!$YL!}3Q(JfO+V#e!8_g{@Z~b(?UDwgs)!m~v4E-|vaAb7sUz1bD>6zIl zb5CEsdcE-G?Ylo0-+vqf%$L%(8BjL~Znvm`QZW+-Lp4fo&YX=cG*=ySx|aG_Ng;f# z>dD)V6zg`PlNn^WLn4ph+AM$s|~<8z40ktwX;}4Wn1&wVMA;3?xZN;x^&#C#r)z(W z3&zfigpzObtU;^Y4RT>EOB@})Bj4P?pCd^{cuCN!i!QCK)cM$%D4uFjkvbq9!kF4t z9Z?csc)L+;Yuuq9G)2IuFT9r@`Gd2Zj`Ey~DbAJPt17cRxU&zw46LxQ{9N&VrhL6f zmruWA5O?)%u*0ho#q!;#wky}{T2}<_#SF=+(KDq4Ixuh?7uqZ02czE)#Qk#6*GDve zlga&uBhJbIKESext(3V&_7#CHND`Cxre?pb3Y?=i-P)CtXEjqIDfHr(9IZ= z1-7`n5?ae%s9u2#`=JS7f<>E^vU7{&p+v7pY+;oQq=4p~2r-)#`D%oI$G%2>h(xY@ zaB~s)P?>XPClyVuEriUEpY2z|T|6GGX#YD_#;)k@jYMToc!T18=rLOgh_8|)daQ6k zlRA>sfKn!7G5iXvltD5U)we$-7FQS*7*4;mPR@UHV|Q0@%Ja8zjSP(em)r4SefI_C zS?v#47)vO5=FV2v6yn(Jz#Nz6HPFL-LeVBV#33>z^dSL4!sSmBVT_?pVDPW1+7E2$-F2OoqA zx+WEX9U;Nb;f{BF{s)WWgQ4OlgxFi*9mB}hy-y?S`3w;yrPaew@VG93V{4odsc*55 zbwX8JfnAkB3j-D9Y7c}b7y(0JGJRrNBZgHqj4ZC(%Q#~SjkSrd~MA@G$Mt_7f?~s z$~sHT0bZjK*a#Js`#VcAOlT+;?a21vilTVzKn<2X7QqAw* zF;a&YRBAR7$9|5?$Gqo=DFq-u90V<434F?*>~7B5J^A8#fkx^OMkQd@XD==A<|fPAb+_Zmx-VkisxhBD$7I>6;>HB> zZC10($v44${VvTl!9A(GRfmfValkW$+VFXYEa=qS%)brR+~QpR|6q3A<}0HycO&#R_=#Y+EaAaGFFt%GEV1qrcxBMA{h{hw4zOGcS zmSv9rpLV>nGeQF1{jL?uUg=aG&a6jOz@%~uvQ~BRjOX=rr6LO9@+A>5<@W9f-(7v1 zW!~1U7Z;KNhaM$_0$+;pkDyjCbec|?Q?1tikIQB6XLfe*z|c~C!4E!_NWqq-Z2bO2 z949~tN5vgp+;09(tR;0{p2Oi%H_#Jd+aDzrH!yokhnu*AHuvEjBpoHOlN(c!Ub8-f2o4aVqB#6 z1{I$PG-Ue16EfAWRGaU=H`HO0IN;@WjAig_pyA0fGC%zTZ)k}ZTKkV7I%4tNxhn@b zTPo{m#(()05|5rq$vG_j3K!Q;@!}rAG?(`7>+I@$(CkpK|GB-)eNC3n?+_D-jv-@3 zZgn+PxjGWwu1-t012G5q1TRsRjT^VH_?Cm3D4$nS{ggFMrIIyHKC?UC|GMtmT_=qNnT1-a3t=kIFy{|>C`o-S zkK;$L2q*(w%bDB$VXOH$*e->DuaHV(v+=6k{n!`;!h89TiZa^GEq`9r>7m&PA(44X(sfRfxCW&xI$MC2yk4m#`JLJ6z*A`+QB(4Z3z}Byo<*2sRqZnk~7Zkf&g> zX7hJHmB_$}$#PR=lCf!#RZ0{@!X*$r(@aD~aK9~xhC$^MFr5nu8o>}=_3?(#w!O81 zF@F8~9a_^*BE)686DR2Ise;(uO|M2|(u`T?<>cef5BE(#*B}$S>UCW(O5MTokm#+w zw0h-=4JeMo^O$N^6C8^c9uBIbf47ACd5@dy;cc(LMpp1VbIe=8*84y9=`rz#cZ2zE z4LhwV70WN-7q80;rf`3ZmUElb_nXk8XM(j%Fm}O2WZd59Xo4S_O@N_`Z$P@AMDe~E z!Ez7}+m&j`gEiHKog4LhA}8 z^+sM+WjI{emgs0HSkr&&|7=i;lX)zt1@$FO@&nyn+Z#UBWs%AFp)QbU5@b6L{fdP2+AkqB4ymo!@k zwZBhJ<3uPs+E z3L*9S_LDS&(bf^%3>4c2Spo*b#0*n2FV2*j8t8mfoR%~0EF^wGm;Wu5Awm{jW?Ys z8hMj+>?H5%a;8m%L}R8-tu(72yTA85=RD^;=RN0r&gZ<(`|sW8 zyGdX(hskCFAP@k6oDF#Q7>EX3K!4JoqsyNJ0slF=LLguW)D;T-Z-=?NL1FGNDAdiv z%^m(HIcEqDIO5O6I|Jb11}uW;AkY@z-95n1dAaL+i+@w?AQv1dazFDX7yYd9m4os0tgx63k=L1nx&Q zDZ^D$ESImBK@y7ozNne~|O65>HOBB*YBEnEdK@teCM@ zJ&105n>U^zr!;4I^m@mDQ3$Z~EovKPLP_^#5+~-@ESt|3!TA~sgl683J_QFLR%qQ$ zZNM86IPLpoO(%__PrTJiIu^~Yw9DEqJSe92qOqHc_=zuDF$A@k#WK-I071d&disUd zd%23ox}(a(1WcE?eb&6xe9i!TqkND7``e=r;JYWRjM4j#h|nP(Q_Q9i$- zHv|~5$^YwtP)iHOR+XK47?;SR_M=>WU7+VasVgw=hU5(hK-7h5QF8S=;O}^>8u^Vp zc#|3O9R=m0RjQId?M(JOdB}8h)1E5|@z2VcS!O11I=lqc45VTCK}YLnpN*!e_9{$~ z^(2G8>J^q31l{Mw%MqO@3mNfru;4OD9Ra&LVq}M6ATt$iaWUfHJZ*bcTPHtT@V<8k zIma(xRlgIKw7-$k3xNB{(vChNV>$72$ckRq$4IWeqde}jX*(ppk^R?)YG#3X`+l{O z737(m)=fN!r|98-kyEg#H5-nerdpaXwz>w9lgXcm=LEUmFJINX*Knkmq>~h&q&;Yo zgTH$M)d5opo_1nfq*udbw9HdrsdbJm9==MOi?YsO*AwKPV3j-gsS&lq`lTK{IK|2~ zf|qr;4AkZWOH4~)U=5;-Jx{-LmEuD}#-OgTtUiK*qcDsfAI^hPn&wk-+WvJ}i^mYE z_P7m{dhJV}im|dg?C2SJPGPex1Jm@Qa^t{Pk+pDPUx-S$y&z%rMUw>R53CayeO@O# z#>^J+y0E@&d(spZt^9r5`hjodH5RjqPZ_kEw+CQ@r|W9L4hOU3=(r^t_OMu!qG!N6l1Hd5t_dq9J^toT+61q|TT@9tR*sOub^^r6@ zcuDu6Y~|ZFX+rtXU$^7hX{21WS~!|eYgoG-%s`l>yt8MLkgUlx2R$X?XngmsC%N;z zm>zo*>HesVUq@(0-3ehGDK8W3@&4Y&Q<6!DZA&2V;;nz2R7c!m>k3Ui#1kvz zulfi1g6zYuu9h4^Rs4;6s4PD5irz2isf-8&_h87{VU5NGc63Dj+?M{}_6Uy~>a~BH zZ7AmeoOc;p<<8$*eW!vDE~|0rE)8ac#oQ;Z2`}Zu1xB2r?V=Dp$vV=4nQV1x+QASuH!8p*jdD{Y$AA6(LkQ zn0ta^L@x8Tq4BBfQPS62=9mv|p|Y|%G}HhvC;1F&;+}fCW^oS;-N^o(=*=x8107WA z1`(3xor#l`rOjC?FwY`t^pYhecaLk3B(&<_v!If;e+p{>UaPn=l1qf7t1}igQ$NIE zvNU|#OTVN{NJGs(Q8{7!t^X!5MFdCGPhrKG9-TMFYUHjTeFAfE9=B(xA`%D2_#hvW zCVi4WnMcbsnq{S--ZX<2x8(|lencwfs7v2JI;we|%A}Y76B%q+L$B@Xw2LAPDFsy*GP>!-2x{KL|WImS*;lxAu83MX1Zam3u`0&{ar`YCIR zwTe2J&>M)13wtg-v(UQ_9B{RF*L1|9KI~SivJmT=iFrNRuPGDdFVI0bA^qA93bbe9 z!AcfStRAivqjjfiKGPOHC+$J6^n$t%NeqhL#_G!0Y34vnQEHt4<}a_DFeZV}v$-2{ zuXF^At(XJ?UkWy&&NY+MGoB9qpf_Ut?R*R4dh`l~ZGX3D>uE1zS0z%3H-+wruBwy!CxE4qUNjCt-@ za5*C&54APa%kzF0KMPUu$?g&j85%q?Q~++$S3SfgRA?dBj|%C1 z+3)KS-ODlo6okj6(+xrAe+x-kW+Ri{uk+nE}42OrV@2fNlUkxQn;mNr#nPI~vyh3s}SJ+QZDW0Tg&fVTc zq#>u)c(;pSt;BI;FrAiD^uRFxP<6om)Q^)Kw06;TZMrsQ$+t-%hNy*6lXe%0w=8o^ zl(jw-y}MLT!sYAMSSC~lBzK*^xjtUR#6%YGrLx~@16g5}LM}4Q60~y^tPhocqhjv2 zHq?BWAu07jZ_N%{=N-rb2dV)d*TCQ*-VvlTvLOcz2#(nJ(Bn^PwlXG+-4Kw0qNDf` zQJvuMH?Dv@L`M1qQo4gnw^B7Wb#Px%g4`XIEmF`oJ)%V>?b|A}RN697+vhn(a4R`P zWGRaY$Va&ZvB@yQjD&%!zAq252i9r9vQ22}S~V(L`(f-LuZW*hurX_ZfvKo&q$~9> zL3JoO$2Is1u)l(ZkEl6)j04V^VhoV>1vz578k))_lw*BTBAR>|ECsJNp0TU;L0^yP zqY>rn2{N11j{|$DDzBUrzT!1rpcQDq;<0i`5Qw6;4lg>r=+43y&0vKpN~2z8OG&Ur z-B?W0wzK?ePR&uL*mxaIr`p&K@|)FgYW+C-wTrXGU{e{}_`pn8a%=BcHn#PnPBs=(Lev>uWmpa{n>ja#eWAD6VeP14WxxIz#lbevmSZK*IM)N^W(+RFN2H>2-ul`{GyRQhs`<&H0BT3{!s9_6oiz+}EAyMv-Log$hx z1P6{^uht_*XNgCl)0t>+z?JWaIE8wqEP}(33Ln;m6@)Kww6aZ9H<;=$Zl&ch)v%(m zrO(uC7J0c1o`kY(NRs#Ib8m<^*LD86j+Z(Df!rC8s)R}?J*ZyH+}M?mDF}qZ)JR1S zkmx>Z>lVsFobOD1KgB>yF!@#sGbh(-nQr>YwdQrFjKtk{JzQAqMTwN2yI6>K;vMBHdWW>=J zoaHw82d;rHt?%*RV|bHVvchcZ&B_LwNrY1 zn4SD|ZmnWTzor0U*0*_y-sx?nI9PCH@?Z(jeU^`hfJ57fsiH z5k9H=WtH4Xt1O-?npT}9_RQ1-h4bPA;86^;#`X8#TG3oP`7+MJ7Y~G4GGJ8wKnyK} zRY>jKq4qiqJB#`d=(1#}6=LS3`yf@ny*j#g`+j7XrNSCueOLx$?O_sEVSi{+?B73> zPP!C_o{&(f;a;FY%*@5+tl;XtuVXJUfjI^h<6nmdB$;D2J6RiWyaG?0g^|mo!jZFP zk9I0~`mP3}+sWO#&U5c$7Pr9E^Y%Fo>$sSeh%Fx;t4vf^WwFRwv0UK(T(IvdMelpL zIRl$Dtq{)--y{Oac&J3PE0--rSd|tvlk2`gqJzaO!qG#E5P_K&hlh zbo6K@)w`f!502v~1)(S#(}w8AXT1Ruz9#7w!bd zmMG)8&#~M#agbaXcSN&A?c3J&5FK_QDel))kudf)c8i(t!7R@Ae;-x?dE~1D4Bgxx z?Hmu6Akk3Ni??}5Pyh1AXupfQA$A%p2`aor?xgldR+5lhx)!oz(gmbtg(h6Tt}Z4W zK%`gsIe!ad^t*^V<=Zt}p1!%StSha#8}oY+kE0wA@v{NiGRK)KqhT1@l?>Qlr| z2bpGSKY>BuJcAkzm*lbxU-sg{a@?ACxf!s0AH!lv&1s+BP0LvL{uKL7&?oKI*!zp2 z>qA_wTfb&9*fiJ;#+V4-J9WEqo@Mgn(9f?<*JX5*l6@n+1nBUpV>Mn!OZ#Bd1B(~TkaKG$ovD8?Vx>znr=qT+doh%LpbGtiE+zioq<$%XxgpbOoTSpk0$3Bv zw{44}f2K@l4SzjTfhPMFni|g%t$ILh56@WETt5mj`)1q>T%ILGFPn+D6*6`=E|E?< zRC};xj`lNw=p^?=09S#h~)#qkdKj)>i8f)O$6 z?T#Q=WGfEbR0?O*n#?4aS~+j_E;$`(?R($dh3)Hm>4h{(K^sY}? zEBc*#TuC^jpc%62V6rEb3%%IgKHalxN9^cE`eXHpN)vj%iV6>kvBo4T>Ap4R-&6B# zl8~VnddvcI%E9QL6|fEcI>aWt-`Bo1BwNEsy8ZbQ=P-e)!%bG-uL#JW;~I|BUuY>! zKd}wXXPXqt>ie=Br`eJ&T^Ud=9#Hv>Us2mh?*^Z zNUk9Gx6|CVrx?ttZtUBK(yh5FB(iWlmxT@o1Q(eS-X-f#;-NhJ(Qvt3mM36I!=}uQ%OJFp7|< zC1-tzu%hc3fQIJl;W3Hy+3Z5irLg4{odFxP5CaH@)*p0afY*2oYeaYE0M`?RT^%eL zDIVWqkv^@qD8f=+&c)s$JRcgh(~4UT8DWchQ`(9)%M(>rVd@2E<6UaDilil|%Rb%; z2Lre0iPi_mV*Ja{F38}xO~3iHyuK%oOggi~{>8_@b9amkiw6^`j;DJ2*K`tOM9io9 z{Z?obPpG=Mq)ucF;#M@9MJ0KUY>NV+?1-X|c)GjxnZRSKXodXyr#GsNbnWb=_(r5fU1GAEF1Z^ST>Mjm4s=~wLe*k7#`!6(5ao(~JA1GdkH~H4Cc-?f Ih~EABe@YCDm;e9( literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/x_00003.jpg b/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/x_00003.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f419d712d874e67305799c39818c8375e3c66d15 GIT binary patch literal 5625 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 literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/x_00005.jpg b/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/x_00005.jpg new file mode 100644 index 0000000000000000000000000000000000000000..399fda2544f4c819ec86bcd460d90fd90a27c1c2 GIT binary patch literal 4999 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 QDp}o7TDfW5i|;T02L)R0(EtDd literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/y_00001.jpg b/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/y_00001.jpg new file mode 100644 index 0000000000000000000000000000000000000000..743b0b2a6d1c16093a5a20b1d0583d791145d4b9 GIT binary patch literal 3921 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 S8L>VXjC({&2lL?Pd;bGC6tnmM literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/y_00002.jpg b/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/y_00002.jpg new file mode 100644 index 0000000000000000000000000000000000000000..37f84d07eec4abc29311f743636c9e33d67bbe15 GIT binary patch literal 5547 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 literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/y_00004.jpg b/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/y_00004.jpg new file mode 100644 index 0000000000000000000000000000000000000000..af4c666c4c411c97ab8d48034ddaaa0b8c05855a GIT binary patch literal 5489 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 O?}<%Mc<|Y~hyMpi(UhzJ literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/y_00005.jpg b/openmmlab_test/mmaction2-0.24.1/tests/data/imgs/y_00005.jpg new file mode 100644 index 0000000000000000000000000000000000000000..41e05d707236b7cf9cb3c48d01ac3b8d2cbfe3bf GIT binary patch literal 4722 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⁡x`1qTt7D4SIFNgUQW)1r#lEGYE)xcYX9V z?F4zHYq*)hCy45G_a0xSuIvk$&GNow^&9?1R8Z?n87x^p`P?T=B>!CiNiel*Oxkdu z?HUltsd+0Kr0FvlQ zyn9HmV9`L!V|%`*VD~T4>3n2Am;2NM8bB+wkz+zLZmG6bpPxfbm~0%#UB>}Rjn|N- z_+?ScX~C`6lW1cIXLrT0*@U7bbr5p8nwd7)GD~S;-||nTYO?n`rBPAO2lBv z9Ca^uKl%^N1$FbL1Qg0I#1%ZWQcV=fG}U=1x#^JRqLQ}er4Y}iakHagWEG7isMHvON! z3n|RJO~ZTpF1m{JKtz09(cUK&9ZB(x&rl|_(W~<-0ir1$ ze*@V8^CC|Vn_;>-qbwk~%tVsY%B}m<-W4xFV~7Zo(uIRq>$PvpY=?=ip3)Hy3WZ@g zUcs6aCZ*WvYt?uS?4U)bXEZbr*iU5U{~8Dv^^g^o6U9g^uNN8|_TXoMe3;fxnPoTT ziPxjKahuAbLod4k@u3Of|KRxQpEG;?kBkcmJxmKYnNiDi=6WVItkrG!=GNlRkn*xp&LDL!iQbEJYRWIDDLXinRFU9$zWc7z#sgkui`Nu zXTaiZsjMnwLmoGDsY=48$8r0>c5RDmXF8-Cq;Jb9xY=UpN#FW2UKBxs)yFuFGH(EsXf7py-|@( zDzeltoE!{eWEOgb9Xl|@2Arz$bNgs|hFIy+!Ej^358SSr83fK3u+aZh$ZqZDKME>r z)kQZ?x-^ejt39sE6jNNW@G8GeF;r$j&?Qm1Q?P?z?k)3fIB-dR z7Z{OqER}!@TEd`0<`uJ@QXFHP=})jI(Yir>^(jyLa!JhC=*KqR8225}6PdT(sIJN? zazo38B`;Z;Qo&|lH5WKt-K}pc6y{mV8PZIR9f|P}(-Daa`KJ|srX}Gzb*!#>*Woj- z@`TOvE3K%=s{FLp;xmSj7+X7@Og#WuxuYcL`n<70XqC(tdNia;AvEXGX}4S(5DU_CapVlT^(LX3 zK!%Q2rVH^gzq7K_Qb_Tw>AK|q-puvh*j$!AJH%1tul{|m9ww=I1H)czY5Jy)J=Qp4 z#~uZzHca}{#`^@I?SeIU{X8FScW0ca++YFyTk6TJBt%fV67kY(v zxKh|L-C~|vW^DW%FVt`9jq8)3_Pf@~{?79y8Y>O73ye_IEK|q`Mc&-3D{MtdTPd@G zFg@hgK08O_0UyMAETnjz=+m??>EvCS^KUqN*3Kjkbm#_>9}fel9V0FbPAUA^vi9Zi z7D;%ef`I*>VB!0MI}v(_Q{osc$X`AEqOwHNS7I~i+qw!cn*cv6n8Ii!njmQ$mGDxG z=g&UtWybvVTtldB`?^46K3js4IN2HIer)sO0mHhFCK9g#M(}g1>zcHf^JO$*O6R=;1(9lCDJ8reg`Sk}?}vxUKNy;-o@_$Um-h zw<@r8Z$Jm=i0Ud2GPtKGf@9=EZjLfrnihTV$l%8a3K^$<%>&xnKHE%KVaQ4^n#X-% z$5}(AO#myz+^-Ks&_s*|v&1{R^@5qlhW1_IV|P78z6#P*^)NFn$}KS^5G>bc*iQzL zLC;^ADL|HdnB+|ii|RhloLU;Gro77PCZ1s7^ua}5C@q>^XR1jVKuEUdVu^asO?KtH zNtT>dEcrJKT$(T<(PiN3~}FV_;wian|dX!cjSWNDhQjbgl7STD#(nBq{Li5$OqlKqqiQx%qu z_x%a_N=vm^Ab72Pa+C>AX1NGHG6b`-S{EwB60aiYBWyIIqR`4p)DLb_65xCv0mZED zwNj!-PTIOi^K+Lt&tKQpGw?anTS8&GeSlpc%C{HzC5#(G8qJhLwJ+s+Y0I)Hj;7>N zaov=SlJQ4eF8mm4L+6RbcSreCtdKn$BuR!Ik0z`Fc?>pNBXItEjrJ{SSh6-tIIAW7 zcdUwzi(crQQN$Kkf@9c&)#OFPFSbl!$lxPZ5h%LKmwT|j&jH&B`AJMMjGMuHO34_d zYyHf|Ro1zB$!bCp^oUaAP#R`jwREfFtEQ+c|x4qC2CcRR5-Zt&#@J9&C>DL0omlk;)X=6Oxy?MywnI6Bwd zg+lA=?#qqQpyq;R9*Fu&WAGP159E}@*KAAU`1|U^l3KPX-P)&cGD*!V?W%N9yRo0; zk2^2Mo+#x<*Fn+TvS0&F6i7FAVjEvNOD+hCfe_SR;N|-Q$T}1jQ=Qy3857P4ocyk)AUI;J&1lGK4Ut z>)PUBZm~FhXSY=|=sWFW>t+=4yH&pqK>S*xAKbn9;0-fv((4!N+z1%%@%3UX(iLK^ zK_Lf4laF;rvqs@o{ydqewj7lKv!~aDs#J0C&x{*613@hFVI+(X4V@-GIF6t)`D;AL zvZ|5~-g*x4w2$t;0(PT5rk$x-FqdyD4E4g@7_eA&=^}BDcnivn2SzE``r||J`oCVj zp(HlGl8yT)LdIJ2|DGm5iN*?a*8AP~NRY*E175yryHaj~&Gzdxzdg+;)gtsLFOx5y z4mM0u)DpRK&DrurIdv=i1(@ZE{I4!lp0Ya?5^Ka(xzVa}0#LCX!bbAYk_zT zBQ~=KEq+~Y7OBx+WHo#KP#-Blv-izqDfAJ*1L~nxbJ2&%QSAk3hGSuV2O9TsWW?P0 zx$JgTyiHTFF(lK>R;|h}IjRf~GQ7>1^=kh4)H48Y6N|)a?^5;lNggO};U`j3g;n`y zlfza-OO@f>#GT=K7VMd~Wemrq#UoPkJ#FGxu_^`cLz$F>SBXc`oQ_zfls`{&ePQ8Y z66(_UUb7jSwfV>;4cyZG47g*lCicYsWe9H%2oCcNsPrRZ^-FZ(SFjFib;S)JZxC=J zlj=M>lecK;N+r`9wHqlSF?0Q}Z6(WIEv1Ywp^d4p&-Jg=0m1ru)H07D3H0L;n?-#B zsE)h#U5x7M%g#N@;x%?l6Ob4%pNOfKMzSfvLSS2Z`tpw7_hkBOWj1WqDXb;O`ZcMQ z9+-4zvhh8_dszIM6@G@$Ssq8zz;Sh z=8(I+S9>7%^zPJ;hkq5KDg2`kHw$?`#(%%ePK^J_*(Z8~GWnWm#8e>cLB@*G?E5@B zknMaYQPDWsX7)EGU-8# z-NrLfvMckV(@o)WaDm2v^7sN1?9d?MH6MKS)5dB~%O7@4180?1)pqFvS2?!E7queX zRQ|rxp|L|*+FJuQ2>D0N&<0MU6_mbV|3zf$xA$Nppb2GGQFu{*PKth_vfdqhqt5VA z_&Irm4VR?!VmHyqMLzNpFgicVyZ>yyn`iU^m0mor_3_u4C!LJsSbSaohDVAqAYs8I ztVVhu-gePBXfrm^o{_9l1JTtb2Pl(DJC7rD>s7ymV%L0yWlGl{)gmZ3dcFVeGD{QL zg@>Hk5(b(9H7{Hi*6c=Rcp`wHXTVx|QE1*k>M6u61=6%=Xfxq#Nh@N0&i_0AinBFow8}VoJh@hK9>3S^-JEk^NGbHf&)a|tf~cu zt%(p9E7mqCUxKXr$ZH0LRA}|?T>K<$qwCv?v}e--yPdV>qL~07bXXhdvf2TFJQC>v z!#mxlKx^?rsx6Wdj#vE>eL)~p9`~F(A+nCIE4&BY$?yS;`ZgtQy(g@BLfVJf{jSxC zq->|liOkcUlH+-_nl53rG_x*FCR2mbe!QR}7&NqgnviTM?{#KT=RnmbrOAjpgQ;`x z?Y}wm$G69e$<D|8BwMk(Xh0k7dU*jmPJ6u=06FoN2~!KBI!b{otWe~3@U_2w$tmR7nrbNZVZD8I zR9sEd=iu({5FiA1cXt8|?(XjH9^5UsLy$mlcL*BX-CcvTljnKf{oZ}|JGQUF9MYKXR3R7{sa6Jv4w1@ zc`W#&S3!yl8J8R?tF!3SW#AcD3MYhWo)`3Z5ycW&cXJhK?ltt;E43|5B@=YzqMTR4 z5h!QFynSD-o?OipjCJ|NgMMB^ovTN}pWc6oy&qtFkU1-D>dz>6TAQUaaqFQ@=pg^K zHI5!y6XEQEpmb?t{B=tIJZEudE-zARj^u^8wC>kNb&Ga|=;H)<4vNqx3~gl-0Kk(j z{IeN;G_-~iQCK6xLE3Y@!J1JOjHg4(-bHzI_mgL}(|12Y+UE{gW~S>6L51JON^)G3i%B$Lpg6S+&l zdM0(^Ij3ee;aR{who{sAaRjIxo`3(TqVTT6-Fv+7a~x7cc5skFn*LLSA?P1*2iycf z?e>(Lx)nv5m>;GKpm>L`lRiZu47F;xHfJpJgU~kT)3U*O0m_Dk z)1~hge#M-J!C8?Jh%E3;La}e+k}f*?a?3zfKLcaSj+t=Cw9u(ca@C zT|m{_7=mHNO>N1Yfju^>BYOElPMheqmD0d(N9+bn1;e$MecpG5WBPWRnG6!d=Qk-9 zI7LLv<1nj}^4RZmw_I;#CgUaXMzld5GfHt5?4JWlExG7*zx@b1@;LUN7HpSxbFyFg zvB2w4u?S8QO>lMYKaQEv&`+CK^MPwgvtxbHKA)dn-U-4Dosf9%n`l~9_rBu!@_h7T zwVH8L-E`IP<82-I*GhRzlSjMR1oyR{t8TIf0^33oo>x=rLc zlk8Ss5Hh7|S)>m%rFH0jtpx5+ zUn_Zz98@R{XIN^VTyh7abDTLvY!*w69yZ)n;okFFI_rn^c0xWs4dQqtu)P< z6lP%ecN(S`z~2iT##>mgV)uy~M;K-=(G~$xcGniEItwe0CAk^v)=d-f+gR zSxNTstg5Nd0#4JdCG&&w6nm(}&Exy3mK~Z8h@4rv0$>p~I38^lxZHg#X~6nE(Dl^@ z7(BWYpeJ|Mm~ie46gOi}1DEb5I4SUU@2>HhrwhNX&7U(HE&CH)Sj5V3PIf^BV=6G; zB1#3~a2GN3LhhCH*rS;6m>L<(l~Wg1U7=3!J1w)`PK47z4~)f z(FiwNddkpOoAvt6)1S2J$c8SV3WY8gUI6fj%NFF~&0d_s`OsNTtG|U9bU^qmA=SDh z&6s|Q`WDFu+pT@n@WEcpe%dbgm&g6vtX#j6<;jfk3w3sSNkV%OY!Cb->N*6v8KxHN zBLaZx#oqvO-H4^I2&43@_piJK1{|pQC45za&yA~m_^6!K9qUh!)^~(kO zh9yXxh?FxcjWrq?^suHkuFjRcoy`H347RSp1ZCZKX)6WUY=A?s3Q=JKlY);Ws8ZN0 zZ9C5w^tgZ2&(qI6b+Q!DH4V=$W{$?)b#|S@6PrG0OHjzFgEQA|jzA^x8bOI<4KF)a z9cVzg{w6CLDHct*`DS#-+UCE3NfBo1N_Hhg%_&Jw*euMjF z2G`SAEz1}>(>|K466~Wle}{}-9}F zrnGnH7g7WFbP9JP_;+I)vg`880mI=^;&-KXfpurg;I0dCXWO@qGW12Ml@gKpgOC=e zCV>HU>VjJ&?1#uC2AwZVq)S<`EGCx$DgHk;Q+>X-zOmf5!@h($Db8Dzd;tcICyc;aV(#o=I4K@rHyBZpklnoYqhUZdiWYa9$iB?oG5~Q;ZDTr<#9@jdZ-e*-#xtnz3`3uoH;^+2 z9e2s3yiMLcZG<{X%ZWt(tWtQ=_e1LAh|eI=Qwha7YD*6blv<2_ZTw!F?bR9AzKA?* z2-`-P{6&vWE#*eT?YvZ`U>FDQ`;Uy+co}2d_01$^VXhu}pXD1j5zgHOZTU^)cEh#P z0H(=0NxToPr<1vC3PeBVp-SEz2uHHJ6vujcV++0raq5}XF?zm<0+&*02%_MFD)b$@ zLh-vp(mt4N^TPKrY~w}Jv`}%%52nhkItwOrXaMy#9#&uKLP|GK$(`ak>jg6Vgu4p=gjz6>Rbi+Qn51FS za=jVa;@xR@K`E(RFR% zEk=MX_Ir^9cUfJbK&}WYIscHR|AN4#f6i~MbXiIEYNm1babsyisGvUv0oWFoZe)^- z*Hu2MuR^VfsHKLLe2jReAV?oWzr#zRmiyyVOD`bbSn`KK;VF<~6u79%oGp6rIWPW= zV-h2lA&=C~OYF81eOuiaCqbB|Yh<*l)D)g>1=Gq2vAlxb-V1{{omQ;Ea-z1j5sByV zuJE^laqZzO6y}Ecj#EhJgn4cjoLEu#P(ZgD07j?MphN4bAMVtu5dIyR9+a}SQaF?J zpLKic!x9noOI7?~4P7bb{pX^$YB&jEG>AJ0Zf1+JT--eg<1#32nr!8RWFLo6WlMW# zC)lErIb10O&#r<_SLZ(}z0}u<;mJusUe1h@jTj*u_RKf&WHe~j1v0A=QUWlGdYo=% zxV8F@c2Ni@rVB`Aj=HiW`1l9xI~YTf+yKDAOfBQ_|ru`5Ne&`Bt_yEW`h8AwgtG8dwf zx*Muse=vnrx03b44@;?CNL^_%EwYoBsEcO9*e_%6lrQ!jCn&;b7Tsz+LXC7dOMN$4 zQbHArB9JE(;ZR)Yr#(!LaquMrW8Nv!pVHK=a#5a*r*Z*L{lWLr8YpV#Go&ohX@3sE z>;ShboQ<*6#yhG{9i!i~lw~NfH`1Zm@E?(&ixA z+84p*$DAO#*W|2Hklm60)-~(2TQ5)i(5%@hq(c}=^3XN4ZsRB7=LCuvXg*{8l$dd@ zt~+_zIK~f{El*`I_n~Qwaz*#mN$;e3aqMR~uc{h~bnI}NWscDxVDqRYCfid-~yze#WbQU($IM9MD zbWP*(Z(XA@f~uQx;SlBj0A#GC%4%`F{y7d$VTJI9b2gh>9vFgHO;u%!n0Qo`o{;AE zQNsooH{6G4yHUvNjY&xv=>FgiCz_kvk z)}+t8Q747PUMMQx4Y8-O(^53mj!jQ@w_P%L?M@jkrgqlo9*{qg`ox`(Y`BgTp?Wd7 z+{;aYveZeGXV_&dOlKy3U^6xQ9xZptGB~WV`P5xiFwG-sm;ROF^m*J(foh>Q+r4RM z8Ef`hzBP=(J}X5Td$zsDy_ii)nFOsNp)~~>*u}z8Mmx_*fGd48eSseF%dI@;z;CEc z?D-|6+ZZK&77S6Xl-6(D0S@z;45iYSQ(tLqn4i1ey=>nt!vnlk!Xo3GK^$XLwryN_ z>RzX0pSK9}NzU9;8sDek+`B0Pg&tZB z>1P7JTLyif<1lJb2giQo&@J5n5p9Su+v^73(6NK!n5P? zJjhUS1)*r);M=>xjNW9pDLs=lephYC3j#*uo2XKpmtd2z{4nKl6@$(#ELV#*k^&k+oUTWcgT$)Ch}*hyP`i+`hKR zlZE>CBCzgT$u0IUy8%oIxu%3+q__-}R-z&o9`3z2>}>0Y!$CyLAg5>_HboZqpEj2Y z$JBY)>~JtT$NN`_QbX`LC=1=L2!`|c%|#);U8()LDtkG&nzh$xp_ru88=C zc8#qplvr}ZbJ6C#S(;#AhlLp_d)ukO5jQ`t$B7VN;TnnG#gq(bAD3QBbC`S)3V^<( zn^{bc$chYbK)HFlm{lcNMHDC9?KuVCgOYk|tKfm^D&S;mkHtmfN zQJ6v3GBb~kKZgD9F&AE9mM+VNQb zYi;y&k`8+0QgM|7friyh0L`&G;dTFcgBw-u_|Vm9Kb-7Kuwn68!C--S?8fslCZ6;{ zQO=V9^m@SYJp^}2gFKnVT+QRW_jE_IP`^xiUT&SkBN-~S1c^F)p$TzW*S^tJtoCfW zG=c5W)iZdy%(yIa8Gko1ao?K3Wn;S8xH6aYJELM1P$}d+;SdqOB!hJWx>JoiB*<(7 zU&H7GefhzexcWC%FTi@i7)49gxX($n-o(%j0{swp_$WVXsE*k4cCKwRF+ z6;jnny#!i<(E2#TPnCN0We@aV_&BT}2B!#v*0<^a#oL~SyAqpLN~sn4!tzkg9T}n# z%f0lny7V`ryFTx=XJ=w?l^ZpaUeh)t2Ku^a8C>T@?IQ z?m?2(gx#-C;Z7&JK`A>}W^_-?L`4+PmXUo+ja`HRo?~h^^f3)A2lIY&&5NqOIz{ z7%7FxN#Gg|y9>L@C-Di&e3kuxw-Ao2JeUZhlRhDKaWKMbg(} z8lher?3L`*5iJ_u^I&Wa03}FVXH?F!=gcE8V|24uWfX|K_;9a?v6@c9-0)@K9?*W> zfU+PX$l$uph?w$_MSYX$upr%~F?_V-7d)3Y<__mg7rO~-p|+8z$OvSR#bQ;{KKs$4j|roO>=H_CdoK9IQ9 zgsHkB$AkA2o5^MIq^Atr(ypPZp_4dL>1-%oPxA9C-$^c^^gcqkt+>2i*LVzn`9;l~ z9=lr~DSoTd^gc4f5j_oom*RlRlu5scBW2Z05s%IQg-HLJRBQ1Nd4ugOq+Dj>{;rz32 zaN9)UN%-v;S0Ij&l~>kn2LYk`6SPv+&q;hrZMhTPHMmjpoo{`;BPUK>2B=9^EILJaU*+%VYAnhsB!j-q9qj6IgYZF`x3jC zMSd~-f~MBxzeTWo8^`LOke*)rTE##Iwpq=oD|yQHPMnX=7R*~9SSE*9D+7(eA5b&B zpuRVY*zd)qtv!uM4qCGsSr($pjcDHJ6v-(CPl1u*(ZL(a1=uLfD^(wM^8kjkOXVPK zG2K{j{VoZQZ<<~TK|h)sJ`lt)oU@=H8rE)20=j^fdQ^-m{El!pSau4-W|c-L-)FP0 z-5p%X<~+%-t}IVQm~(A}r=U@-%(_#OBX6Xe!M7`R8j7=Ggz$ZqMD>y??`lt*tyUpy zZ6xu)AM=?f9!QJZFpoC)f+C}`FKB4_2%TM7TgBkmq*{}7@8_#sk@$nK{(eSls43?l zF~+6;{P(gDw@|)VkaqBlAu;dlo!`P>z9F4cb{p;EA*Gx6w|f(Lhk8ra$frUS&${%VOQ-Wz1_Zhq zV>qw&ECo%flMHc)KP{8d84MPY`NHMx<6G+;h|XVxLd3bY<-rP|X^rNzIqoAVB0)$m zC};9#UNYPK-1odfVU#R%z3YoIbC=bfd|32VqtJ&}R8P4Bmz?C#e+ zG$-@eO%Wb-_q_KTH8f281suK-tE>l*rA=Trrtd{C9yProLfn>VftZW{RgwQucS{`B z_00&UsO>^0ItBU5{1qgLlD#qFd~mq9$0E0m$Jn})OKN+{TaW_Ijn`SU6_ffZOaFIT zjYI=ZE}}+r0W8DjM}wZ=ejWigRFCz~OXlZ7eTr9hNna3%bLyqmorUybr?gXaS}{wy z^3jsF&^)9=8D^9ao~&+hLd%#veW#NM-${Eqij)x!SDp3ydyy(S{pZw14^Z5=C2uiH|cCGe^hL(_x_zOl2!;2Hg5l zn*8BwP86Z8KfvD2m#8oXxejb+0?>WFbt9OyaW?va(pTN=uICEs=0znyIN|L!ER(DW zlmby@M?=GzIIS8I!#`jzILmyXF{s~m@G*-fWIW8R?B3+mwS}GKoO|8etwN1EbSEX3 zQyE?x5i~9Ci4XE9`NjSTv~+)zZ}{XDWjC^f2+t_oH3_3}%w>_8aG$lhFmZEr(WnnT zPB0Oj0Cp`503Q{}sjvKo3Dy(2e95~s%GrP>W)c|Ju3Bw2 zIqAHY2%S@@1AT|0);z20Bn8z{2*mCLki!lh(N1jTBi|vGxzgpKZ~*CjeWwY+w4)ee z^^AA(OVN>I)tshWi{BrGNoeHsgLZQ`)}M| z7^*h!t+yiMCSHe6qPJ&yn$pOS#U&@&EO9|ou*&s>i$Rr@ig6G_F;Bx1c7W1kVg=Z$ z^_gMcJ0uNpuhNhDEYBe4>|FG$3e9O)AUn8N2Mqm zQC^X0-iL1{OT_t|Mk4x1Rq5BE$P2lH0%2+xtO7&M>K6sytYkd_Fn41!_3fUlOa&2{zK;W>RZ}sAWUZbbe!@< zj6;+y#mF||asY#0Gt%!|XKdpNn(BLUy|H0CSf*G$3|{p95%2o!%PhDR85=$B^0#Gg zd%@x#P01PbZk6TH<>VoTg8e(6n!}(1VP>OIY}kow%)9+g58ZT^G4~`)yRN5m>KZ&F zj-ByM&Lb^Vp5u}~%7<$?4s21hzx-f+qAtR4RWuAINL%Glc@}mPA@rP1j%W z5|dPk`0$4I&cjN-K5Sa=)XW?V!*1jUoU>=KA{5!Rh8&%^@`na=w18H>I}TOzLkY)s8lUY9|QRyN4} zz`}=tS1M0}27C+1$2N)xk75OJjT)VL$4bC;T~O4Lvt8CYYkZ@`o}m(7?HGYNZF_>xH=jF$bUX*ShBXnDa^)DoSV3_aoZ;L^bU{)Y3hleBH|j(AEU zKfN104T;^1a>TyJN<+ljFqN;)UsGghGq-yRcjc)boC+I}+K>!9siJPm_&b_|b+o(lwl*5cxhYbrs&_EbvK+#Ej+chhA^rm}`77ipf zf()_edB3PZvz+a4okxr|9IEmcF{8;fXH}8sM4CfA%p^G4DLW5A=h89{y$RbZ*mrYi z>^xeOtfX-KCHymn(Anxh-QZn%0LVK!p73xf)S=}(O;-bUOS+t~t_1O_xU+zXTsUlk zDdoz1Rey1$UydaqA-6U#0A@Z5%0(eBSk)a`yyF)F5cG+SkTJ@WcQ@fT@1YG1Fr1G~ zB6wrDY8B2$7QR1mp|%D{BH*iF2pp>3?;5x8Crx)l^Uaz~07Zm&&lGh148;VW2hR8_ zrJTI!GoT%T!*-=sY$+VK=w=O^SPK>ALmLm2+R26DG1bZV+bG_~3Qng$FSZq1^$)Fj zNZ>`E0>|Z3JT_+inqJL5VNm1kzR420qE<9jsL3RPF_stUL#2GV?@auBd6RRIkZmS5 zl9L~ZC9y!pV7H#*=$}K3EyCadwEslnt0o&b=zSE+;ep4BX&d6TtR~4F2=nz z&@G=#3MpRXjLT=WX3mNKaeaWTNd9`491g-7OP)<3?;RCDUpr84UrEu`!vKLqo3m=l z7fP%q-^L@@4Ouz;$%`wV%hTdyr64}eH^Si*YZ>KAVP==I?E4igi#2PCwzh>?% zJ$H+}e9ntDh>}dF88Hk@wNr&4aeQ`}wO0;aJ>nZLlNm8@GoiNs3GeFK_7UgeaRpH> zX#hgwa9i)@AhTGKv8WCjVy4k+1i)B`902?hBKf%F|AmZ>$pz!5UJ@S@i)SwzB4vae zD9`pdwGL~CdV`S>+?C!lfXqC|TOfx=bqDR3-*^%Vtkg2+K{o{I5!Zjglg5@gIB5^3 zLch#-vJxzuF7@o{LsVtuL!)Z&2knT0w)KQ1aqDCrVnD?KRKU4yjC!U~WNSmv!(>9G z=ju4Xo-5H^xF0<29EL^|NV$^2MS@VvXWWapuVLIuHv&G%H~2#6;x!EN1t9v)05 z5=v6d0p_pL4E3hPY~IP@dFtM-NAhS}AuH>uK5}6YoLne0TVcQ2jP=%n>s*bPS4CfO z-E5}2ahl+2bVdakDx+)rn$zP|y?o~^Ttd=X)@ww7#jK!Obq%%H$+Dh0o09_eX#9kS zRIijjOZ{z3o5U$#r~C`crxZGOgb1{Sc4aRKhznUVNzlD&Xz*$3{GglzV{y;z+%4~5 zPyfWBNg{#H?3>NY??SU2<*Xnr!IZnN_2Dj5&y(;`QbKuwRR%66b4?uU`otK~*gxw^ zfvG5=U-<_@g{`JT_J5~x@FWvyV>^b4N{|!{mFy3k+8Ts;Fp-5w6h^C7x+Z=|55>xi zW!0khsORFV2Ijavzn~TeD7;4_nLwE4@rRLx9Dg+JJtf=#Z9I$Tvl`9gGwY>u+7j=< zBvGfja5>LGu8pZO_k*Ye$L|#U5e&p2Iy~?95?@_c^h@ViA)YQFIv`pVsBQr2+3nJU;(DOOojRlc(KTc&rfq4!Q zlML{%5-_N`8dk!$1RiLNG+^rv!kj`v|Grk-48PN;*c`+f8@blu4PZU61%++5fE-cO zw}!lb39^nBY_f)!Elic~j(Y3IVh}kub*473^!E6!|HbWyo=ccp>kIBx;niVSL->la z)JL;p`(8CT%{OUJhwKo<2o9oC^sUs|fd~U4xY|kX%I*m3l8*sE8MI~&3cK4NfUtzM zD1A9!PSsv~nT2T5A@P93h4&^HsvmYIQmMRW&<4(0&IAP7n1swlq0|X$e0O<2kNi2zUdA!}J99R-OCx}pAy`YJ`MIjk2mi2B94 z6^9=uG|>Fhq%LI{(wan>(n?vEd6pC5ZzD{Y>Cbl`jzykXt*uoUalvA}B)m&#kg3?&0ac^y<=MKJ|zPHK<3%n+q(e(02^C33(#Vie>A(0ts0OOrOBvdk*qHvY0Y9^~v@-)Sm~OUzIsNy;rZD+iM`+??`p4!E z{m~=3I@yr^&4Yh)b}_O6@gQ{m*MR)7`D*B9%nZUm^zT0Z7N~$kQXuwE`9uGk#oyw8 z`^J5L2h})1UPZx707&m!0Ah0xRxJq|gy+8Z003QLprQKHSrC9rKE)CZFaWg0$=3H_ zP*!6As)M1k!(TlK0DlG5ah+ZM>g_-N|AZz5b;KVY6Lb=PM&S?rk%I~ttnq)@lKd?L z1^G({{SW@t7G(Q>tb>gHpW6N3{Qm#a6N382_|FN02o&?LLi!ITgLGaX{$E520ML^I z0QlUXYb5{xz}5i(;Pn6itZop3W-r<}NCvtp@!>!jr$I8@6p%a~0Kn-2VLs@gY#T^^ z0J47r)d@gyNf3f&H#W!@LL$iC4umlvyIv69fnL560(yZa$PWP?C|)i|UIX}RERF3! z_=o-+FB7O3xth2bf>6uW^e+Ul0J49dEub0ZWa!}V=Ysy9L~r@`l%yLf--S1HUtHEc8=~p)Sp$?!H9=}mi~wIvjD8k-HeTN z|BJ}*!_almw=p&5VPFLqnmO27>+Akd830ZW##UD5jz1E+8@rLA(~n?iZ_PvhlY+jH zhpmk<4<>&e%rR)Yk6D`oEyv57pAx{USFLX*%ft*HQ;#N3$QggQ4#KFZVyYgCUQhg9*Ue;HR(umGz_WF#Ze! zVEx}+`9@fsKK$Ne7UW9q-|=IN%u4%mAi+DG+Vw*Cfa*H>7@(e?y7$w)m3puHh> zl7HYm7BKvaH3kD;VH_)9j(QEYvhxJ7OL~>(WHs>vCx2PS?BLB|ZOR#M%Qg_3@Y`#( z+j}EjAUvg|fau870?n6g*nB@NprepCbI0+dbHZVddigMkq!|Ntp1gTTYEmEH!P0~| z^Wt?e6nG7UJG_`M7=#f#FMIPX?9|~TzBIhM!WvH3kxf7qlVMpQ(BCL8n}l2n`aMv; zpao~uDRN*vqYgFIWsb+?ClE3oiGC=YSIS<6HN~TDl~Z~r>zkW)SFmIAPsZ~td|4pb zp}cwusM*#JR;8bZ#No8gU(DG;-;VR;$m3>VZ3ofEiZqWgh&aq`ayopNn9U9nMy%fM zfFWYe@)N;D9(}b)5SB}D`WA%Be<8u=l~{9mN;H^Il$gPLnl{J{VwT2;uj_mcA%U1N zO2%5{wS;j5tL7mTT{KXi zSt{xicd)~$Am9rkpuTHX-0g{O8hxQg^qn~8oHgwM^Ch|^sqjw0#H_`~PfBbk#^fCH z6|Sx&x6HU$sBnfj(-f#z7ni{AVh`R^&-C7un1^U&sxtU5zm=j!-E70cp_xF+sZVO) zOhEI2{<4{-h|Bk1QN`m_Y4_9Wo#E`TO1amH6{6kzyCM;Ux2^HkvWs-P?f{gix3EFX zQ+oBw=7k(zt+ybM-Ia$fiBO~MiJ7-o>g-r`4YFGf5~Y`gQh~;`_KAI8Eu-0PBhdATZ7yMa@@55Dn6}o?P^%})y^emG0i;;jcV2os@Xd3=9eT+Rhe639 zdG`*=$66ZX5#4k2l}mTCiljea4!a!cBJHl-4w6$@B!Ad^DA`CXgB&7j+}NXi$U zn^rXGXq#I}bU520k*VA-CvcF@#kS`Z;Y6Q1+D{p}X3XmrZufoILAK>UcV}>l1f3G% z@WdjQaBJ<1ZTYAhn&Kbi>#dgKnkQhg2Q0TQzrh~0CR+|+i5&jX5ni9_RLw+7vJeLe zE7+ZiZ_>O!yRF{HAaO&f8aZmd&B$MvT>2Gf$4NLdMx4akHvC@(lab|1gcBsP7B6>z z!k8tFcnT$*# zyH<%36*!}z$CA-8*7h>*fxUfBfnL6Vul;nkJ|7YXX!4-E5}c%J%k>?BbSS=$rh}0P z1(Pl72lR%;(?U^%JH3J9`UitU@*;#7@mzK@%6-}yS@3^TVwxqh!>_-Zuwh{ofn@bU zkzz#QD&$w5n0=vp26}jDZs=NebM=*8G;lj0(fB^x*;DA0uA5O94orN5B+uVkAQ zJ(r!Ro+`1Apln#)rI`xJ8_z!*K=@|Z-PeAN)g?zr4-Fqio13Yrc!`MU3bIR_bnVnh z-X!rbW)$wueb;g=%DX2o0##^R_@+1azq;nuT)|w4~{-`CAuL0%|dfAc_|at14{pmN(Tt*%GKNw zWu*sS49`OIr3)AvYO6_P+X#QgPFm)k~gKM0S+L#GKW}e z%DV4TsrTxColF_ux#DDvEY{8iq9BkgTxgmPuNl#j`y2TOgUzhxK?xAU$*7z?WCPK9 z1ic#g3*v!UXR6D0LWO$8TX@#|#l@0gGLt_FWEYxld?&T_HK)-(+u?!6#>P-%UY1v9mZ8p^$DEDd>t9+D zQ#CDmz|!?VT2Ow`Fwz&4DZw9;nuPa7M@;Y4ypGyJh`+X-_Az%)l*dLDKeU&rI`h`C zKa5(}2&%f%8WRFClcpTxgzid*mXWP8n@E#Kz`08Ri?32S=p#_cUuAdJ?pCRMhz?uA2X>gT#CXuI8a7u1+Bc9J^d}IYB zG1S=n6?Xp)fonzh2^711AdcS2aNJ5|FwhWXw+l5xOd=7Q!sghc6d~i zX!Fzt*gRQralE+8`%h3c;qfPi)J4JIUfly7hsa)BFA$XNXfL+II2)C2~WUJBb zTV7jw`eS(wd8)a-6kIKF8WrMN83kNJ z$L=ep7diwFTOhEntQcpNw(}S6e|IIkDl7yrMjtq1r0-5LXg?#G9w^kw1M=VFimQ{H zFsa@0z2&6>b}`uXo-ktkgl$x-#k|V+pRnDP^50~ZS*T#Y!Tr;m zy+w)jK_14kT1~wV6-a;c+z=Y9LEzi5Q=IiSKwV*FHq2=yuX@r3oGgA^sU8rsrr_Z+ zz6&VyEn}&%0So}6x*VRkJ%If$?keJnRia%}hgVQK2Nuk$7lt%DWzO1S9Q1F6;R&uB zUU40=w9ecH{EmUeXT^FVKJOfxv2WmTk0|0wI}mE=1|e)ueio70AkiVEYyJx#6a*3k zN(hwz{#eem1o~rIL2JH$@(nQRu1U;RA&KZEr!~6n1R}xLgSQWSJWB$?Y7+3%HNpy6 zCN~jupf!1cg%+GyYj-_JNQWYhD3^c_~ zWAjmIy$o3M&BJ=3C^)4QRL^^`w};Ru6XbqlK{6AYfv2u8**hN=QHvz*0+H;ALRO%6 z{!8;ud* ztY&SEl&7BalJANj(zkuw%|=s1YCF_TiP%W^HggP&d)BWUVpX^RM`|=2UbBhf!iEug z$F9Cup&)=(n6%FWLu&bVC!4J9m3A&ZYRce1A>Sbho|hG-PZE5&Rnv|Dr|l_iKn_FC zliWeoFERt8f%UZ+1v1!`$0WsOQ?=RDhEX|=N5nia{=}AE+WlJW3%=9d!MU}oZakDJ-up>d!!S2cniaI?U30D40kXqRpRWBuxLgjHa3wVxO`jib!`%}) zZbz0*S@*NN2vmw zEtZ$!%EAd1j^D)tM#;_yi=~oh1$b9!BZ&vnf_G)Ydv@QJDh>mrbjM!6yqH}jyh8nn z(NO`aX5cl@xJ~)8ai}70OiJF?Y^cDkqGo3=)MnD$T&h>EGAJ#++o?S(x$NFGmCmJb zdBD>cgaH>M>k6cHAYrlxBw~jcz^`V7Ds1OnZ90MQxg1WpT~k z=}zF@8k92NE5yxab)GQOovc60mINdd%mmbh&~%QdZsXHl6$IQb?bypeGK*YhV(TPb zD`V?^r|YH0T=LHz&4(+hUL4UofkuINFsmPBHc~VRb@YE8vWcEl*1M(G62jDz(*;BbX`)R>jSD~IM-D;7J+q4YAs z(UUcMe;@5bxUU(GDZBuVfyW0SM5pXTBqG8{fhTSKh9)$B(!*ZLe7N$gR6OA>C0pfm z$v2Dt=tHMg7jS5?9B zRSpW9n~JTw@DwriBf))p_8+-YE`U#a`{2XY$JKfvFG|I?ql8bxbuTLUiRiFEGWO;I zZ7Fw!=xTJ&HLKU*lvOAG)o7TG=#Xkzd`#yV; z>GV;cdEQXZsW?dPh6H6*oKZ7G)0`S`Rz{Y$2M8N@MmFX^l~E@G zl*qX`+Ns16`}Zcp_%trI4a@5vVeOnb@M8?gO1E0&sg!5S3TTSrD&?cIB|>(KN-*mA}jdknutg`EZA^66`2JjDWqkyH|m2Z*ZZrlkXUf>4BJW&LA-C{4c~ zg(to+9*MQZjiS?^t>$CRcjmFNaY1m68~YvRmld^n8m0S`M}K4sbiN1Qm`J7v(|yJz zke37#*p#cm#WdcOR!1ZtDB93?{W>#-j+~w}>|5c4kLL{067Sg6Czsc#3M7|jqXK4r za=yA`>RpMd?s6G|ao#9u&jRUm3oD9N!>F9z{l^-al-h(d{Pv_re6xh5e@%A181R4> zW5XH7pShnV<7;#!Z#}e&!a(jiHLOy}qr#POLD=|b=PcaBwbWy040ttI!Qk&w+k123QWaOCnwOsb&m6>zoLa7mP>k%@M^##t=B!UUhQQX&s3W6!hk_MmU7FdT>uki7arQfm*&}VdQesHElV;i#s zxY;f@0;Cks@9jcejzip>%4(}I9%>Avc-4x$sVEnc=u|b{LFVH#;IO}YpRGcNFxoP! zAk?Ej#@dm9B?4MBXKxi`0ZyZaNoyp7&03GiJGP%)N@w@;vV3Kc>bABr{nvkQUc$OJ ztnlixW(G;C3C4(5o`Le1f2BPrnPT)v&p7v(QBRhyU+^dy{3~a4ORZOXFAwq%c@?^~ zF%V`0p&h*-w-{t-5?@~rt5dpU_4zV>z^;4wU6?N};6oP3^jy>32*3p;y^So?0|Rkh z30+RuoL(4|uOvDnYS&?&!~8PZpg|dwcgm*WJW$*PaxA7vdO_NLMnV)s~0qE*T0P!-MicGYwuX-3gj#V+^;XQ6YLgudKZ_DT%|Ek*sh61dlF zuBs6@6@Hi#j6NDsTSetWx4LfhWNR|C z6?zfBr}@wM;LBB=dkYT;*Cq4@=tx>syGD`BRp#PD8S=gte1=ORb_fMu1RFswLLp*H za2?oRHD(tX4t~~9v}6xdXYdfG$}cF!Ig0?w^{-G(U{MI5$=&K_eETSA`$z9~G$qRU zF=C^hY*`Y$$^>NXPemQIL16(4rWUTr-t{IuSeBajeiH{et8t4BhAwpi-LzhnJr$a|JVo>oSPzTzJW|Ppt|}h5Ty-_2af9Tiqb|o3lV1yWW`df@{Rt z!`ZpQL`_f5hOJ=9!YJv*;3a#%1EOhrYt3meCfsL+@73P~!sQ6R_|()G&``@}E8`T* zKuM+dvyRFi-%^$e6sc~OL2oN;1(1U?@URsJ`%^&oHOBU2C0*ri5Vt zQzgj0sr~4(5^yRN5ljHCvO;%cUi;UY8GL&QH)}?6z`Y7A`TiM6P!)Td`lc@;Zzg98 zIf^;FvHc$Ch;lj7A~?W~P*~5Nt5Nj?YHg0nZ6y-IaK$W*OvT!MW%8rrWXt7LFo2wF zXF59zF23&WTP)c-J4Rh3u;4CqVBI)H9Eu&j|e-AOXqMiq4r-AE`wyB zFe$WCHf6sAjrf`q^G0|vXsqYNE^bm8?j&LE>Q9o3ua-_&8%($#D&Y7L(1@dcH{h-t z1kI73zrLiwaC$2x`Nlsh11a@ndk<*-QJYuqtwMv|#6#~jETbGD(hT=oAiKMs=LQkyIyKfzs9auVYqHszJ-pJQJ6VV=n1*{mr0bW!U$Yn znbKl;-QlY#KUW+HO)nGUy{S%|WI2(ylTf#-)?l>HMSn&MVb*lf zTd7g^DGy`@k6`Whp5_YClT{=qMRF4;^9b(|mL!Q`q(`c%o^ZLEiD2sLoEJEbb5j0k z>Rm&ZF^Le;TFuiOwpLFKOOtGcq}*5gHX9sxAa(b%Y%x@)2G9_F{_gM@H`LLn z)ub(U6Z(x!VUk#6=t#ZAefzOeAy&Ll7qIuDH=g7SgHjXuSu~wES89IBpYXaiFz^UE zL`@Qln+L1WA%h==0*%IZ!=uc*d+xabSy}q5Ga%wstJVrd$@r$yq6+X9Q;@9 zMq0df(d_IyEtuy9nw#Vnq54B%C2QU7)3M4M9CiYD@A$Z&6;?JHro(1h_{^~wK>sBmakiznXhM`j4W;W@UhILoxMnqGLiLJAYi%QYzocBh$ih=) zd2V<7Nun{}`c0`F28L3cdj;_ij@Q;poJmYpVO+KGdK>}yn`viPqvt%1%A)UOm02LOThqL+^2t?j5*5uWG5&zgjRtX6%F%zi9O1KV= z$_))=5VeJn%v5@lknErsJsX3r26LfEXVSu7=|n)x#r-g6iyuZ@PgISSRhLd>O;C8VSsp z$;8M`hwsP^{Vsy!OWus5gg?GrzHtqPclH-H<&YJHnR2_WFl1w%_dr_91(+x)*94< z&QM4)A-Ko$n&y}%XDZN6S*e19&&;W~x0_)aB=q(Oyu&3x<`V&-EtE2dE=7_O`fGXh zy3``18n}a13)Ck_U=9j$>DL5GC&IBVgM1-Jp2H6RNbcQ5nk-7_KJQ_NjMDn0P`6ME z-Ar}u$ppo?kTdsUTN=91qfWhGC5F54#Od+-&8OmZ^q<9)Lt`58-}F|zrS4A&S6g7u zs5)+#+9_F22jz-jeA>)4K9LO8Z~44t#?N^(`hq+PCyiFf9QGRf=D45zYNQNK zJ6r$7ER&bY&p`1T)JKJ|nB%OvqkJ>z054P0?aEzeedS1MIx@~~J$o@{um0tIM(6zn z8lH9}2%`YURLN#}p6wBATY=-9c&JUjLb-f531-7x7KbS!kPadzYJjAEqa!Rnx8ce3 zs%AKPHIfh4)h^+9P)+teJq(S+wiB;a9Uvm9vg$R4BJI7yYI$Y$$Ho{g=OkAR4b1Qe zvq~rCZK^eapxTw@S9d=s`PueU!g_60rFvV-E1U#e?uD7C`QJzEZdGK%Zh46q+*AVM zQ9k!V5XJsEc#;cm+dZ!9M}o!d^NQe;$wio4wetPc)6+bB`RES4P@G3_MBK=ftZ4>T zPIB_Udy436)tQr5kU^m8S6_)=Mo}HciF_!8Uk>Zq(|4W=Vb(2&MC2P*7aOP|mJ{=6 zgFnx<%+)nogAxe$iN`G@I*v+1a!HMRF+>YYI{2`)D8-pKk7mox67ujY?C6t^Fjzuk zUSiqDa6tM8M=pcvu z&If)wA1l3hoaRIR?O|kXe-wR916iUKL)A9Yxm02LD>^_%da{Fj;Q}JwQ?G;oVK4hH>xH!e3UJT&dE2E4GN@RRAKRvu<6zu5~~j;3{;Z96Q4R@?D% z-e|G&y>Vn+fcDPi)p_8_6IaQx{1YjG9++*xG)C^z*`E0?^CIzE(&}!BHc2dCQulz@ zll!(q9R*dzsZ+;08I<>#w(Sfp0x@JL#()^c_wudr%+LNjDMsnJHd{U4ey@`>wE8Sn z$cDT08hC(oOY#IDtg@~eK=SvGX`-xG!;;hInFJ^Bew3f1E{cnD8;Ul4U6 zIC&OO!we|R0(9R%fkgfirt|aF`IK#CUXWUD4|-+kvorFD&%zt4C8*Fi|C&NsVYLNm zC}-*eWk#G5ucL!Jwuszd;8rQQvl!Fy*T-En@o$5=2>Z1m3=gXOIo`OL{8}<8R7^cd zo$$%6x0RS2W@OA+IbAuMYuUG-&ANi?!2!i)1?_Kh7s1gLKWj``k0>K#YRO`sE46ak1%{+%F`~+W+7+X z6)c$}+w$7J^N<3k&&FWlj=6sgT65mp%C;drB!Nn%>FB9PA4qoB_%B^ABTB+2Nqrb^o{XMGq5qK=ubI|L>sd#r{-UmSL{{3my@0BooS?d&hrG96} ztu#tsxtD%Vm$q)yoK~@13m5$; z_q)E&KG|SrFqT`JkWWCyj7duAM(o^R7CRfFOd{uwF>zA}NKhy8>JckSmOis_xBE5! z{M75#IzV-2N(SGoT$}K24W^bu&dR%!Sww?yd$L~;9^6HbS+0N%<4S}tQ4eo9}7 zMntoTlSCzR&sZYp)pWMvpxM1*i()jzsItGRa1!(740CDp3WQ0-49tR^h}Ic(ZP7+- z6Kf6k$bt-z+kmO~*h5rndO|D7r#nGqiS?$=YWL0;ke6%@v+c(FNlm#g!~Z@xfAX&O zv$M1x@nTggm)6wS<~qwF_@^wvIIn-qR+Rp;zL8WpO*ERYxf6?oETgNz$Q%RakJfj1 zw9}dm_`Tx#@#pT@Qp7T8sQG@kHItmEll7hjY6g_#(Ty@ZfTNH_R+PGAk?SpqRXv_x z@x8v5yO8S0#RDuIsE$CXQ0L2aty&p*rTiia=TIRyB{XEL*fcBHQZNXY=4Pq#Ic?f# zTPxtW$K3enpOM_0;u57$UX@K?v|SoRhy0FaeI`@UB)+XQS&mulWz)^`zsi-@tM3NP z?SZ(UuQ&>L*>Ii6VxG_?2#wu4tw~|7a+Y&gGL#W_Ol%lXw;q zO9_k8i58}GZ@zGXrTs!k(w*BBaAL!ybP(Dl^QDdd?c*meb!pjN_(L<^JNK{C3KwYM zYYMB_$)U{~@>lO}fg#ET7-I*lQIU7i4mPW&!0Dj2Jm?Oa4IBFvXDhd3Rz-mwy6=k4 z(MWu--4j!})49KgxcO`kMjU|m3gmwRg7_mT*(O|9x@MqN>LuBdlPuEZHd**+a)_GJ z2MW-1OUeZLj`92^+3vDcpFoo>(K8v^GzbB;k_A<<=)W4?qm#f(#v;TB54Oqb8$oCR z9F=iXs*LO(f@I0&_%-nl{?5e}e-^<;6DTddHTOVqBc8rGMVjNg3wvH+&yX;iLmG7* z;N7Y*$rq7%1=C<_<57lZwV?Cv9SE?A0%gdErCk=jk&RlsK+(ojT9L^EKNcvI)-hg@vOD}a& zd_+?uiU#dQEwqqA0vU}%xS#sl#DBZ@g`}xoC*9Uw?p17ZQmCJ&d_$FEbs2K}Ic)=rWsgy2g;p3%ByLq(AMY$_*A}#R77tQnxnCApHP!@U|WqxcIB=!+kfh@|`;0ZGu*O-BZtmgm>?i+Rw=k^3y zv{AYN3>ic>34wrcSOhYN40n8-W$2teUk#T)x@UHPo~8XNq`0)qhWI5H2<>OakW-o+ zJ4@nA4;zuJBqzHg_r^u;WDBg3x<&kee%n_g9Q<6?YBy*_ZYGI?i+1fp#C zgar}Jx|jl7tya5PV5gZTOjD#%eo^xI8%|I8%j&IFbNCg9I1~059zw!D7I6Fgy+0#R zObw3#3H-x&+se_7sp}P&$~_FY8_GA?%j;Y)@W`$06MhN$*ss6MN>xW7%V^;2cq#r^ zaQy?>$wle^v02_0ys;Wf~kr4Us!irIdU0ik%DBZ$Bc5uJAj5>d2W20zT!*V-kxc(*DT1)<#cp(K!JbF<2+7xJgf;?nxwx^UdhcA- zy~*=(DKF`iZR*)vQ|plKy|2Ia!WSnK#bW0S;T80^otnOk5Cd^u#|U&qfHLtl6A@$O zzM@xjje%D`5AZ`d%XfbOk+z|8o1AdP)icpaZtV?t*^&V1!3;r>G>0;bBB zL`$<-lTyrI*CI%ubDD*1OuXgdM{=1J7atQm|Lvw0(wDHJjw7{_UqYIuNS74YRI18& zoaZyt-~DroZ9GXv$nwn?Qmm7QQ@5wyVoEgoNJ{jU7w#{Jy4t z?In6Q?_`Z11)Akv*u9Ak3%bi{Ok_fq1vvR$n!vV~4d*KA`nWrs+^UjT6nuRC5Ct4_HM zCT{_uWbOMJlDSXynrNxl9tL!sUN*2!dH)fyJm_#Uxbye)MOG&1ir88s7h0F7^7cKd zLSs|0z)B^C!#WIm(S`#E!+I9)1Y2f^jG`Vzi7|?y85rvyw!Ei=r)8}o^|Jj-$}T1J zp|=zyRr|D!rdCI#!MTw9@blvRy42dI7>FJbY1YX#Pp-9YXcKTSh3cOC(e{Q%)VWU*Q& zRgTpHHNzmW?0Ete81#Mg89SMH|0f7P$W$hBKq8&$Y+)&2q9xvwV-(&iH0=tP@{Hm|> zm~mM{92&3wg&574RsmKYdz%m-6}Y;&_*(6dScIr$!f-=xTa4FD&HoAE{&V3DZ@pu`rw~-CP3Og+p~wDKV%} zgTo$xHBFtCj>Se@bb~?n6R=@S3XgaVom1p}X|mzSadaH5ZUEF}-hOsoB{)~y+Z;t3 z9sj``M|vVMhXzBNj<+Yq}}t zxpyvnM&8`gd5^{sFukH%&FR4EC`9Qt@_cQx77-9ZRlD_>i`V})tYN7%N)2*R!YaTo&(Kz_U5@5PhRMQTwdeu;$he0AAavb6(DBz29-df?w-0(TE_ifU~C z3=;T^e!5!>sam}bBx%ky0jMTPafha>{WEjPVvK3J^0o?c-+*>yozv|$n?&7}fmG$) z@Th`m3MbMP-aP9V$YCBRHl%jMTroFpn<5Kzv)~;sDRv) z>>)){hAemZ3&AY31;c?#X5i-&i|$ekO~IDNcDHwdXJKPCP`3%Xe9qkYFzaah3c*nWv7&Pv&fs=z9BP8uQc~pGDeRIEX(t2< zU=3}=roO7)x_5`W%V8qzoBn0UBr8^Qa-FlN;~Qq^jd~lS zb5u43b3_oQatwEk(xed>cLqd?R0lvhZJll0*hMf#{4P&JkR-q(kjmp`7i!Our9gSw zIc-e4Ap2%{E-es!154(Z*A6YrP0{2(1&g?gP!c;7=R@Ne>~!3r*E;Ag;VfnT`j^rU zcF{WDn-0#1gs;NsV%gf$=%Vi*`OU@|`?gT_CtmY9zw7Rj;F;U7V#wRznG4|jbIZmC zdeJmTMGYog*+^UNPAZxyhc=I^Y?b%Vzqub9k&|Y%ZW4aogE3seN#ZUbVFTl;V>m5_ z*^>d6yb_Nz_nugZ{^0|fc(ePp^m37&1h6R0iKs-LdZx zsD-bTA>dGcHWZhF7R>L%So*AAq7#TyWi+2=DFVH%y}*;VVi;Yf>EZ0P%axyHeX+R| zi0+%nJGuvnOcF;JC7P$gU9a~WTnRzj6QEs?m5s4w6cT-#e#U_)DJ;qkbH8aD7jXxj;5@vO0DtgS5UyCPbW0sya z5^Rdb2bcc*jlXbT8yaPm;s@>mgGisQyJXqF%YsUq^8s8|rjb?1kKUhEyza-B!f79y0L6h3X6s3WO1pCwaZ7 z@>u^q{3m+^8$OQL@T9iOEU(g@~FH9NsK>fkZ1EBwrq-ULiVg^c1lHH*X~xkMuL z+|_Mo>(~3FpjlRseP;H+x~m7@X^Y0UiXUi8Vg7zq9J!LbV{8NJv$f%BMR9b#<;q+! z;!;{B6`u3-)c2qmS!fY%)dp{mJ~mR~!0dLBIAmu*HN~|R-3jl)dX{Qvw((jzWo7p zDEO!!5m>MA-qaj4pJKxqsOEvII3{*6uCm%_?!@{uS??B$_J!1yCj`u#Ni5^>TpMR= zLGqVBApA<4wtt3o%u18cZt=!uD#Yjyidc2bFqAK{)7u~+O>{TI9@IcGt`>6w_wXmh z9n2_)CP!Y!=Ry&(rfC3K-e%Ht@08`e5(EPGWZgj=Ae0%0*@jm+Zv4V*GlZOgLe|UE zsWL>R8&xMok?Hw8P`(UreC2TJ)5Iwhw#q<3y6nrEjoJJwf*#fydl_2`CEPleLXprdYEHVq=I}1{ z-iE5kr$Rq}3n{+k*wdi&j8ykXeXRZMAf#GffPY1xmk7kI3*4J;vUoh-%P-^a!KbX) zvC{)5l3ieSAFWBH8Hnu@kCv1IBb@M6T`PlCjv%n}De9^YlUQR$my+3E8pZE2q~1Fy zWvK!7Es}!h$UvZU?O%t#+~La2n#P2PnOb9rWnwY8`J2Fc=Xh-WKncQuLTbzMtdMiU zrmJ^d70VlYC682&X+A_?|!0F5=+sN^xDj*M?JLWj?4U zF*Axso<<NK<0<2`zo|)o3 zK28bUbtiM^QY9l1`D08nXdG~gbZs+uPMgva%sH(K$SfNq=1ltU7u%?o<;my|EMB7Z@=d3} zgbsRq4pcg;7N=Tg>|#;K9pK~@*Gn3b?a@8OWu=8KZu&VV{{e#PI|FRiun${;4;U^Y z8vbu1G0P~(X$b0tdmoL{N(%deluYNC*cf;|)mADPnaBYJ+AkIDe6_UWxeO7=1^K2Y z)Lw;$>_5LoxJx2;?iDn`65PBpDdMTlj(|*Bh>y45JwBWNtrY_WwoR*-~w-j{B{!j-2=!Z~#5H zVy$F_f&d$RyrVyAcz{p>dSs!+-M~3zfaX^ma37Jv)2-$@+-2J94^<{&K$3=qTikl2 z85-V*(P`oS_((OJ2M=6jO}qOK*Azy?&Wl$vik;%p(T7`Z8nMq5e(jmue2uIfchRUq zC|k4lZ}kEg5Nv}2I`Jwdoz$@!c>Tw_ zxYmoq2OS7njRAwq=i8??AaB?^(<$V!J7m`+1g68e?+^5}s&74yyDeVIBTnxl*ezy| zdxJiQcWS>U4CUV09x~}N_*HBDyMak$2h0|Z+HU#Hd`B^VgE2M6AxCmDo!F?q<%;AE z;i~%yXOH|%>Lm7k)V(S*>-|@}el;(gTeffkn+}f59KjMkqQ9nG`G4-D)!BHlj_%k~3zYBuQHKC;h*~ zAg%zWYce{@tSLEh>hU}4QIRada-G28?ObTG4{L#$oRC{8U4;&eOnqFKZLZ5`Ol#^` z%84jvd16h21TQCM=&B|!#QtQv@&$Hdd)YaY9bsz9*(6}4u z0lXBFO`*i08$`&t5S0-dCNW_-1I3wRELMYd+YV*IOM+Rx87@^N*Cj7@lDQN=^Y=%- zES0~me+GH;I8sCm*SWftclAFv^*J#VPnr9BiNL19*!wDhpexH~{UBJ4R!xne%bOK_ zC_oe4jh3doHA0M>=nf0pr1#D6Mhl?M`*PrXgpK7RDKsJ}izR)ctKTczA8quC&nk|B zu>dkCD*X#lU1^}e4Z2G5#v$Nm{vphy^V~Gdx%i(h)nFyAj1Q_eUM>$Pv=MGA4}qZJ z>bxWMo^{;=y3Vg9@8LRMNIfvR$VN*RY%OyxiTHT zAo}Gm2x!e(wjD-GK{@UwhQF6xl05=s+VTMa?#Rz zf+Cj6%^LP@J#vbm*)7FJ`?QP|du}DNU4*s56XwXUIv2sJSna!;J6MNW3^1bOUKh)i z&h5NJeaAftAfr{G^Ti=Es+l-u-oo}$dv8LKLF+LasS78T!`Qk%9Y5~-uWd1l~n zd^;XVOE7Ws>)eCQF(bANc#FKOZ5{s$zE37baP+s#>U4cRkshjCTkY@wZ+FjMeeP`h z^O~aRMQ}yZC4o>~!0GtJ0TnXOJYc6Ro&8g?{x3il?dpw$;4xl^pz=$4FrW99n0z%* zt_7hUbA%L|;b>Pk-Y2@iskj9IW*)SBng}b9hzdJEicGeD3&^NRMZhb>Sw~5K`lw|R zEG<~a!Lugure&J@H`o(Z%nIB^wb*@|TJ{bUP?zRkea|E7{BAtN+tE=~`eVn}-YW-V zdWe`CNLUN7C1n5l0eSKy(D2D*AtN;=y}kGxxK2DuD9HY}yzRmY$FA|}MU48qp%Zwf zpb;?wGrD)xPTkX@^u0Mqs8P#Y5zuO+RMTn5@kbDA!%m^P58@uTY&G8nETLRfK|8KO zvk)K3XDL~-;rPpdsUetWZt*u8bA`YP#HzS-`72AxZGjM7UdP*;4ai|@!svGT9?=1( z5R--tpSrUFmaSHwY!Lg#I+MNk$(kufA5~4az8N^o(8)zS6<$CxY{7-2uld7qS3GO^ zLr)G3V_LX_w^Tah-R`cC=PMcfWG6{igV$gH01SKqoI_D0BkIOT|} zJeF?>+0S1NUY{bfs+>-JKZh7ngAGAxPx-x1{|kloM>kBucdc*7fIxg4^Dp3$ zrpeSG$RB92F8h0RN24VHQIW0dax9~F=DQ$eAWQNr-?euYi^gnX(vomnr$krEA$@j! zEaBYaGl%UD}jvX7zf$4kHV;D@&YoMTLBPF;&7i&P$jCxyH1{hiNtHH?ekp&{0 z8^VYdP!NM#wlZ_He%T}mqv751&zy0hi0~fi@WA+PxF$CXD5>9s8>_+VwN19-vV-*4 zLjs-0c7Z(Qpp-Y;j|$gai8{$i_K7V{WJ z?+Zqh#s#<8JN$sMnmA+sl^0Ov(a^+#1rWE%W*(gittc$mrELRB{w;3q5(JwCT{_ zyoB2N3|AQS=~`L|em-6uPX-}?nh}fxKhDhAM-x~kJK(M^+mH4!Ct z^p+xU#fXrAB!o1>g83Mpm$_YSsec+DtmU|Mvh+|}$;M4p8mdB0ud0~JH*x1z8L~3$ z51v!x1q0_Y3N?cauBMH!^ys64(~YZoYRtuEZ62Kof)Z;3RM;f-6_!>K>+%Ct%v`2U zXR19{05t&K#h7Eq!t(cNS7zmY6A2Fu05qEhkhlAGfe zOc!v1z{ekw*QwfO&c!+1yLl{ewuKri1X{5o4U(9I^!zMATSYx0{~@M#bxW( zh2=vn08~G5KZy6?671ZxucbW7#}2`%7p0|PIGD5Av4frD`MRp@HK%CY5vS6nXxALc9y_I&WHWDY=uySf^d&6~TF!{rb?LpK%}+&jAsR2$2d$1`X#z$DKq~Se31Vvs6ubtx}<{ zd5Oz!^~uDAjI3AOeqr3J20BT}2y!ubC^(A1MSu#%m7L$MFe>wmjL-u`gTmQpSXl9J zvo+lbCH=PAENC1*%k#X$9Z`U2w0?O7K_^&w0#cK8a?C$oiVlrtIJN`vnQ{h1-kpfL z!9EaYw6u2@`kgLv^GE|XNmWMfFiwzuVQJui!|5kVmmz4oz~Rzi2F`f?k^zkMKECUi z7Vh#LXq8A_aa$Y`;#;AwznkKhyUwD8f0Ai4|NjKW`9f zVY8q1eyDmjt%L1JTSY0jCl?J%Fe$Fl*Ve*{^ed5qeRKN47?Tbi@}Sj@B)+i$D$k$At%qD- z*zDmCC>4fh?;JT@SAU4^s40oHz5ekzUNZ`kY?FPwwv%9{CjhF&R*`~)RkTuggzXRx ze2x(z0yS`Gbw`Lhnd+aZxLr7n04+r8f%^DaawH=t=c@I5Q;X%L3?4R)x*mswEMKcB zYsaRz@@|PIxm12-9;@?RbV}`C(%(DGp{$xe_=#*<{vREfXwdTsa5~7gQW6b|th2;b zVV(LaK7vYZz6;3SyQWZjNZb$ld}HhOP={H#V%Z!X+n8j%|MbGkz}eCd?vrE4(GX0+vV%p@Lt?Iy?BtS z*|#v`zJF}E7ein8lyd9K4o{xwh80fWx4_22wr2Ek!FM&|Cz3D?v?|gn*Yd;UdD1T_ z{5qX5;!n^AmDPc`Luo08gQphZ<7>M_jN&CDb@c1wnRBR!6m*AIEer8N%ybQ*qu`gA zPCT6}@&hF@nqG0E85rBL9Qx2y93N@Mz61`}F(*(U-dT1`2nC~8g! zFdIL=92wfR3anCjq!^OV<^eezhRoonzS6o>O&cV~5IRs=zU_$`+yalIe6qW7`Qwk< z&`%jUXDGSaVAp7_G%)oTq)KI;$4L?bhGRy#VOq$od+%re3$LRQ+yD#Rg@Z5J=Hu^2 zLROTBj0ZAu&A^iZYMImR0?_^)EPViY&k(&=vKo9yE>he&xFudo~ta2g?*c%*XrV!mhBe;zpS7SoZ#$V-LH0;X^&ng1rHSOtsx& zsnfkEgM6J#Jg$-JFxGU_2v;tzqT$+TcFG%`};}{ zoJ*N=2JfAUZ-om2q@1k(XFT&IM%PYm_!VGB1dUeKHu~_7NItzd*2I=Yc1S|yKEg>< zhgll17)61xgVC`<-}1npC3cbQ!fNo6poJaf{#JiW7o>E=O+@KnJfa*`?o^gap)P1> zZ8lSX6)e?Z9b-7jFWya0uadaZA{RC$xU zV1FF}cx={OLkXm^zB;^I=@g1?98;B6!Q4dAy6EW3{CariabJbhJ@l1tefUV1vZ&W)v}4t?8V5NPNH$gBZ4OVkv8lw-yY-3lSn5K+WT-2l9&# z3Jcg`4;ttf-XXdXos062x3R*3(@n*w*2VF*WA(NB5wLGz@p0Sw9er*u*eYwv#fhtNZjatrm)M5#6tN7wDy)W6IBpABAbYchk_8j9a@7B|)`B6n_X!udL7|r) z7!Mf$02Ww5nnXMylPQG%Uiy46qjV)mqJpJN#=12PB!^Yk+j~1P*jU-=Zf5 zAo9r-*x|qZcS!2wxyHkA40)xno+ij5QOwkMQ_fI-7#Rk)dT?Q^lj^?D{C2@}t~Hij zEm>K2Z9MmzQoSV4F8{nsb*wM%K1^Q31=#M{x%2B#fsdQk+kK(93T=WTWe4_tgo4Cy zGR#2Z+=3xdUeF+51m7fKRs>h#47?g+A+Jq0(RzzsG4ZxGerrh~dFBV8JGt(2Q zZO6ec*I<;sow8FzV60S!Lx#0lj#!Q}7`xjC?B4Q=K$A6`#hBKC^QNQ1Dm%xcg8@kADU z>Wp5f#K1i}LW^s58k-u0C0)hKt??3fO?g}!{=fb`5G}k3-vRv&9bM$#Vd&5Gua6+8oJkz`g zO%9memeA_1aI{!XUKJRy7mm{Ld6;AUc8z8cHRUFRo~gn=Ag1?Q2BCOa_^=w+N1?iE zO61~Pv#tCY1d&v^OMOspk`OV(o^}&^!bwG%n+3f#3<-?YqdUV(VY|B!`Z5TG1!*Vl zbD|4^oOM=Ls}Yy>&M*S5rFh=8yU^jf9*Rz+ggK)Ab^Nd>GPWU&>^d16(*&y7pM1&8 zVKt(gPU`ejy_tHyCPtiHUt6}mj@&Zwu)wdYd-y_<+JZ%E;`{?Qb&KPSCpM}{J-eTo zxm2G*u?Fv(=7}rH$I2&|orhYfCsD4>hhLih{z*Rs;6f@(;g@?W5AN5yd9LR|oki&C zzAVP4EYo}Ch2Nu#w8cJ=g?Xz!w0Af(h1&1lyjAv_(Aiqoqw@~{qYt-r79p%fboxiQ z;0!f7n|F6FK1Ko5zu#q+(fqAg#-}asUb^$JxRk$PG}U&QF3X?Maa`cqCBry&AcUXv z=8y6?K(k)_)SoU}(y4w?m&wCnm9MDr1E@hb#k>(%!ku5D&J8tJ257xxfoy1X?lNDc zg7?F0L-KP@&A5|G?J_dw!u2pfOE?YhJ)`E)GSY8fx_0_a$AT{? z>{sWU!MV9Wz6IxcdUpAH$Otc=O+X4$^KB-IgSQ|uPbVY=LrZP&@z=GN4q_f~M>RZV z0-bA|i|0vD1U|b%o4zl{SpoXZ;Z2(G-6@_N>L-k8J!IgF4am^PwrQ&n2Ji;Xvvd}G zzw48}&6Jj&HI+*_=NQu0MQNUS=48sXtawmW+Y3b?vrg_T0fR(_f4A)FQ zji|2;n~G|WiYm>-YcUm)&D7_8-f7}@I|_+i-Ypc$eUMtv4TKsjtZEV)slg$*zo-5L z8i30RXqin$e=WE!jGKX!EB%)ltoBMk!GUOYDH`1bUd%p{N#mnnXXSId)h~UWIq+tD ziXglt3WkacCkvFe#ansa=8YLG3q;6%kC|Jc^M{g2C#vt}BJM!42jMHeB!Q_*LFzhGw(AvrfvuW8WrMFD|#_7c{00Wi~+3HDQEjO9(SISh_9> z;T8NP>q?cO8U6s*smnP;Q3Ec#B)8iWbbXX4C6*{{W2hSfU7YnAXk9kKFcv9>@@SnA zf4Y04@q$UXK9moPgbfy*M+N=VCjWZ{OSQL|7JW81Y?Q17*wI)cuB3;jE6bwz%=zMb z85l#}UTmyZblhrQOgY@_xXW-0EohV-+Q?8k5w|jp-*P-%@ zn^l!BdoX4$BP5r(5$w`mX@ZVEovh9D6>_Tbe$CA6 zyTt=OuL50(&0#RFKXbvBsjC!lQR{75SPKf{T|>7_TJ1_##p0gs?(mc$okmmFGACbw zx_13z;4qb(ME6z1<2VjI=d+*ZBI(^ci(S(OU=c~=PgQI=)A}>YvJV(^D=19dNRbv> zSK+_Cq5Y-hux&+Ap=BN3QrZju2M+GH)WszT{Y6FCoJ5JFU>l^6R)6W!V`-s2lCw4) zCvQ!CDB$4ChZ;oto3=o8sp^~4B;ha+99_8<2zf~^pd)pSV$A89LCh25x$RWH@T zDZHeE)L$Ce84pzn;0V-rEMp_XQxpwn%aw+W)AVCWl)+Ixym_&XabInt93L4m1c&5} zRi-iC;IF$O?YJx`vG}@Lw6`o5^genZ(rM#o@kV`2k+0jv1AFzOXdNgP@G-@mGb<`j zAm97Y(N;&RLP|(1NXlv2@>&mWFFF4@g^n-sg9_@9y_maDB+w| zgat#*O^TYD(;8Ilr`@4rdD2n}i|z&lZKQ@iZNJuw8b2q=s;&%SYVK)*QRzlY&4bUw zL&Le)Lfhim>rvvzRs-;=89y~C5*qet%Fv=6F|*FW7x zC;caDxpSGzV7SC9AZMX-A5he@=D+=QGuwTeu6-$cp~G&F*M@JIk}HIk_TvehyY%^5 z{3Y1u_kO9;*6VSYQ7s|73C76j31u}kJru+u+H_|7N=|df)A;tOO_x`z^l?(3STUiy zD6uktISNr-4SQ@CPkX+0>_+FDa7@Y*V=R+hf^Ju>gY~MS35^>E;Dq+mh(PmdebJfa zWH$q@yQ5`Ru~-yB(RK^vF>As{S3^2$09)LN&g<(L{wzRbO~C-f%7P!_6=y0oX;WU_ z5OpQ7#JY)Lte$M~ajwk&2YHRi{o-@IcWN6w(AmpBf?|>6-$4p75 z2#F38b@71>XLdcM#wUY-@A;p#NJ~CjhMt13tJm8&o2%po{bLyCQ>AkK!A=~)Wg)Wd zZd-cWI&rBGuA5ht1OC`JpT}i-%~|T(%{%^adI1ep=NTJ)_AM6TO!5#iq`}Z-f+9&Y z?fQeq)hmg$@?!LoGD^AJb!%01^slZxYQ>5nAPXMd>vMeY7iTo{L1JQ-DT#W`6@>LtN zU3XU(Qwf1bW&w7vJxm3HBi#W^wXnF@e<~Ocf_Y76K4^4IB*YjE8XaGYYEf*xV{RJm zs$vrXEt5_34;G^?W&=SU-5Twd9brj!fvq_5SSI@G+%{HAS0;}=SJ*27fy@(SkiD>C zZw`rf0sdvy$Zz>yy<(Kqu~ul0Wl)Zm^QfG}=UKSuKYkI=c#XP&<;klx&d-2pP)Ww z8_VhAV@Ll4sDv4B5<|6S)0jZO9iGVZbe#mD^g>m$!WG030r3gsu=k@Qo|iEgKlUh+ zm;q?-2*I=a6rU{o^xYb{R7Sll*L}{?&qI(WXJL7_=5r@hI1wD-^09vQ%syiP`G!hp zEa&%vZ|4R=LX!K8(vuW5sD{jd)6iLe&IJ4d-FPK&YfK4&yw6NiPfXxPSpc|M|wk?y>SSmETe^YUa>>) z=04>w0wTaNQhaK6dHTZ2JkpqxYp6NDP5P(*(o$bFn25wmrfY3hy(`_>w3Yptas%{x&VCL8g}@SGPgC!4(ehsZ15Bkec%8A54|NKs3_8D zCm%95jVje5`pHqIXnm7n&v?CQ2>6Ww^>`pgH_L3l164YDHFN;5WbSofwmV$}|Fj*G z1*p>??w<-^1MX`IQ5-XOAQr^VQHJ+0R@7ZQe%ckWPEggbOc%qQP~1`blzRlhvyK_T%AEu3eicJZ$k#wJ ztQi|m5f7fXRXbw)6i4=_=Fn1(bo>D}vSwb97e(>#SofO52v=p(aLsHW%lvBRnNoEe z89t|$&BSRFbN9<`)3t^!Ovy8HdT{E^58CY+ z9UTX6vN15rQ~~T$VT2mo$6%QS)yCJhEO;xQ3dLHh&kZ`Uhg z-FGX=?iKdKZ9}+fC^*RA?;b@QHl9|BxIjk@`R?$g`4?OtM6 zCbhFKFRVwW{~F&iYlm1Nr!OJ5P6DsF4SR_Ic?06Cy0fLb1EYpsuz+C+A_YVHyiQFu=lS7pG zwzkb4rvuEbovSM1KN97{dmEep`d6)!RB=yyoHc0rtZAcQm=wN~iS!%EkxQ@#$B`F~ zMACmre+A^h)9(hB47QkpsN(Z$@1~2T7H;aKvP+uMB4y2i6q^=QUS_Q*bKL@gT!rm^ z`yfaS?jWqSuz~`ezZE?GsEr7wYYOMivjGWO(rsclA^KkQGdM`bKy{ZR58>M*4!Nz9 z9ECG_6I)LQW8hKupVO}Z&2WUp;V>twS>c6)-xx;yTneg$hasqeCJ}zYliT#bSX4Vg z)i37kpi>ya)cm%Oxl)=9v`dMAw7;(}6XIM?@viyUo}mZ0RLX%LK8HNK}bhLV43_n1CAH3W+o>YZczG}A# zZTDO6lxq5q;N~-AP_*D^9YnA8v9W#3L^-1{=Hba}|0ZZt4cU~PG06grItQwKi}K7m zKTjRjjiOYF-QScak+acuiXCu9f-dU?*?KF3fLBp%9b5`m<0nTf zB2pDSw~(}XrDLo`A%3+08dgd(wb8!g$foKdmMN3rT@YSBrIbx!mc z@B1i8ciFhgA=q9LPZXAHPLCcz{*sz1MXy;M;ojA{>m_JSU%o9B(l6lxOPi^;qYLaD zd=Q%z)2ZJh!q-?qw%v$xBMygV9JYrbz4omORm^`y7c=<5I_kNQr&^rJG(hLzv=IQ( zkX{498%F8Fgt+)I@{S(fgJumn{dT`-JH3u;=gOI!R+3+&=jlogki(kfaSsy041>*X zjhZxtrFmyVEC0Mj4wU1P;Ij3hu^v84Oe2!IxGVtU!~3{Q`W1=Rz~AXeW1k9_svM@Wdf>_XZU3tXJ&b@q?#!?TAwY(+Gt* z=)B3YO)-S~;!2?`pK0Z4bnO0^V5R9)Ly7V~J!q#ksT`tm#T}<3DT3hvk{#i=m^VLC z4O?U{2tzOc018?Go?~i%%$=%(_O6X8H~}wvSAP63wA+H#Pz_?#+6KU0x!s(D8w-c} z7N4A+=9&q-tj=#3c||WsGG0~CTnzqH@gFpk;4XLCvE=V!{0ApAIE`nA%)Y7T+m?CI z*~4|=1@rZDko)y|I44Hd&YR>?zKmv7U1b0gV+{oqKqiIotI>uTrY#=eXoNzp&j!@t zE^op&dfd5~k8+|VIz%wU;(1nE zoSIyC@Woi4a4z?!stNA>)(Ufgd$bR2&H9QE1&7A}hnqX9Ou8__0rFE@e|mZSKkaj} z=;rLB5>Doj?E(V-3|&B<)EFjG)N~<8kKm2Ge$_Ap7Kw)btiG&T1rQK39^~dunb=9% zlCK;oE?H`D5mW0fbW`=0Zxcbv@52x5p5$8oFt$Z}YF}IzYc21p6627SEDpKCXyl!HEj}DLA;f*D;Lby=RNYB{78sAu?hO2mQ|KrF0F6l7Al`N_ z8{PCU+?O%$XUfEaM)jbi3npym2|}nYoV0!Z*%KJZOU>r*?^rrUHu8%D``W= zus!v(bVp8N+wcz8Z zgN-~N{}x#YXhyo2>JHdjd^8h`=c$XIEug{I&C zq~X{=N=xv^bX^Hq|B0MqRjHN>_9Y+Vl$c4HBQ1aIBoB);ENfLD_`c3Yt-V!{BhZy{ zn|dtJ<@BiBCjF$tnPU_8n=5AP+^)Y+mmZqUC9_?}%*8zvcsV9deVPmFIrXw6+u(l= zJ`Nap4|;z6=B-DU;Sx6$-m`v-mzs%BZl^Nq~PI)i+d_sR5aS)maGdn4FceFoKg;wJhH*I z5r#yzV(lW8U@wv^A$L9@O8Uhbz>z-;8MDo8W{X-1y7p)MYck0cu0cX*6R6ss0K6;v z7hVkxa#3salaK9p0Z zZwoqOMg}7G@y_9w0y$jX$j*B_+vZ9 z)r@fz>>IGc5l7KZdO}Xl>dZ0pHy$5FV4^-P9X`nu=LD-te#f~JiQp#8CNGv_43fJl zxH|KhvOfP08JWymYK!%Z=pMK=!!c|psq_dgO;BTH(VL34XW34C-n>GchwO$SI8Pt< zRO*PMxkLcBt+Vk#NyYm&s76INsM~7*+-h^p30Y;Gq&74w?1^PUPdwOeZe&lPzww!;IC5&TB8 zjl=+xtQ^cpwFlBKjgD)Oug9ndy>A*w#6wv;gV9NN2C(AI@i?1MZ|Q39FzF)@lm+F} z(It$`uJ?o%1Q9$fD4rV4gz8QuVmj7gWY;h0JmR}&%N;sV?q8(y5pzae za7z5Z2AW?H-{k6zhX2h2KS%3O;Qhnimac+u+CPq5ML#W;@Gyfk059+?#s>jsap=!+ z1F3~{MHWkT$$MGYVO`)%?j(J+F8{w|uZq|62Ij)PgxpsmfpQ!%bv~6cU|tn`F0e~N zOc1^NB3+((0q1FpmxKm8frFK0?^uH0j@n(M(LugM{Gs<4!5Rjwq9~O$ zsoM;|4z!cPMDO!dJ3Q1{>UmC5%$S8QFb2u8?Bn?kd8zJa7@wVb@_TBM5OWr}tfTn; zLTJ`QM<<}rF{;?Alaqay-wht)0z!p5FITOc$Xb>9jbqb+Zw?bxjxBAm$B*53JKhta z(arUd?%}HoQr5#}vzIK#3GML;(o`CljOeY0D={ZDLh0KFsbN|5U4unD$OQdI=D-Qg z(w5}?IWhVb`?<=$kIxo7cdD*XgTQh~Bt(q*j*oq@ri?sWS!^<6fcIk=C^Oz9orwsx z6<;<#zCx_phT+HWpqVR4cYw@RV@t5Hjh{fg#1vaJ3Yg+~?_oua@Y@Jy9DlmY>t2WX zq(DNV|2r`+sAop5inODi+PScg(bc8V)aVm3Ioq#LXq-J626qEMoG1o%~#%HjN?pWWX!XY7FwLbs8ipv&J~0M4n?d<_|)k~qD#Tun4)8ttAO^TJ4l zHl7XV(Su_+PC+f{Y)p6vovtgs|Xouo^#*32!_C z-2q-pYoE*9@l;4Y{Gv+jR?SNpZphlJ%K)|aXhANB%VmBfOG*==lBdJTZPI1KNAA2qcX27$R=&%sxDxqU(BC%b~NXWn(>4;e0;dnMf_<_+=kVlKV9?eDzB>A zT8&TKq}MlR4(kO!S{P}U=1?t-xc~qayg`~~N#PGBQw2O%o}g-gp+j6fZhSDU8e>#HYz1cXF|YDemC}Z9 zwz3qOL@nJxJV79gWDXo;ZN?*hZ@&-H9Yt>M!Z}=VacE3|laYob2#mMdE) z7QtyYjR8Oc%Z*Om_&T2%5su+zL5=)nmW;BfmM*nu#A(f^p;XQ~f+IR&rcVX(nUAQk zCBlLw)EmZYpqJbqOxv&^aG>U+U+}Gbj~G37FH9$nHsN@2<;05r%DQSJ#1v{s&XjGq zq%3vYU)oMu6TfhI)2QU_4NU> zjYY$Ga2wpiYoccG>XB14tb4IJ)HrOa>O@R4LK0p@{vEFL>Kz(2{v+f}7xuv-A@aJ# zu<&jsE(+FXZH`SVj!dW@$wn3{ghNAV8kR!VnI0HRaf^32>2Cz>`~*6oF^Wp1x6Vf$ zA;m?8%dNYh7OGX(^L}J6ca*cLK68hNnVjR6cpE}iDvr{X;G={n6?B@bAZ+`w z2dipvolj0$|C%NsOU*D4bMK2hqoGBMqTz|}IauSSwtRsw`{!!85hMsiplJqlMz?6iVgu235E&N*D8pUj{bD;#7V&>Oy35~T>{O}b$@QD^3 z)!rRPuHe{b@~!e_*sngO;uOrzU6dG`sZtjK0kX=*TQZ3=_Zl53G-J6v_j&5rj`fc^N zhS(5*hnLSssk+p;_qn$py3}a=fLeafL=6svRVz>?eCXxDv+Z-z5h5D7lctgzots(( z?G3zo*uSbj8X*4jJ_m4~-?o%`5p}}$Jij}KI5=1YAR$R;IoVDGwZdWxA-8CukBW4q zNv1tw-f&bc$xC*l@H=UzUB+C!ALy)1#mE|s?J3sA;UMJhE<-Z34X$vH37ps&ClRAf z*iwOg-cI?x&00vW`YIM$KIidLYc8V-(g4>a&=KXMqaR=1=sFnagnkGGM|-UWQU+7XZ2puj<#|n@iB7?T-)v7; zsP2hxrousHT2X;XeVp!Hck+2~Y$sTi?g>shk!9#q8vi3xZXA#U-$C-&iT@z^Q9Mzx?OR>@aY3;n30?le(z9 z+2czTYwnH{^6W10!cMwYne7Y>VDg^6zmCkgaA<}F2}p{q+w%$uXvewsAL4FDrdSrlK% z-L9q^!L0Gg>k^^@adwvX%6TWi_)#NnV2jX(_j0A|>m3Pi_?Xl^#Z(PLC`tsRn3_yn zCWaKZH)y`ElKu318?PUjxq7dn?((A!D{d1}25bLuZZu z1MWl`3;e-N=)n&gTk5$;3y%-T$zm_Y{~3x)edJx9pdXPG*ybs068{8|5=Q`x#vi!m zmnHg&VEjxEJemu^te-vDr-7mI1^qyZ0($J3YC zx$MA5-iiFKUYDtd#|(9~|7-0sJ8S)=L;_>~R3dr~qZ)A>9(S&TcOd{y&;ay!-72BR z71*tClTvu?h(#kn(FRjw%po;|OuVGaQ$t#$*&8Zwpn_`aF!&u945@q9tid_Ny2w-= zt@V$aOVGz zcWyTT^I-J1Br8?FIK==i@V&!rRk9XV8 zk1xypQxt>C+X>26FIGj7JJg!#KUuD&-D`S#pPx#xArHlN4AXOD_K> zSjvMOs}vG>b{!#p{G*lIhwKh8Z^D6QxSc2HP$vVoQL%N?TXGkSY2e6_3Y22%zH=t- zzpl1Z|28;Hj>_pX!=t>$HyO>bu~v6&!3DG2_+Vy4luRPF2t!%XV(ZxRD%ItvnoRJW zpPTC>hY;}J1a?W08*FMR&j4v=L;aSNx#X4Qi;9dja)0HGc9KulCv*>4K`Ae%Y9DHi zC7raWK}m}wTQP|O(y(2%^6W@jfcvKrME#?TMktVOYIVi23irunq^wtYkUFj5`w>^3 zRP}yB0k8Zf;HbO2SjK88nJvTPSy6pWX)1AxQ@mN&Kz3PCLu8gz2zj7f>!di?3#nc4 zw~T<{f*GEiYaIXTKKCfaT}&$81>vGkzAmA})CV+6 z*c;vDzSG~_l+}!H{m`uVEKFS=EURCe(l*5MHRXswA*u6|n^suClU=vL-lA^P4$>*> zcWO$CPiR6gm48xwS)k|l^2>$*YRvhdLD^t%IhVf4ZJ_@&bQ<@kz~zj@$_yh3_$u0- zcD^bq6phN?E=MU#TXfc;XLkX((q-6ln7FR}7#nJzy$q_hs04UN+GM-V7BrSoocDoU!>8U<_n(<|q*bgI^BE2If z@^DX2^CsU{PN4OG+_&8q$K>&Gv4CHEHBoHpjf=Iov zGSnNjj)y_qd3LSFqV0>30yNDVbn29yRCxxYgFzgFa4;~!$>fX6(dOiHpWby{hksUW z9uFZ9HZzaQ%>$NX$)jm|sLw+Q%fbK2diQa<5a1ptQRLnqb(el4$&8vHNUUuK{kPcL zfopj0ZHDPuPCa2`sx?FQ@Wb&vz^~nRAFMQK%ZeqWc!dH0wTW;xT`46$$@V3tIdYy@ zZAmmjyPy`y5L%+A+tBLPK%j@Su_qKT7b*@vfAAYE=CXqu7ZYBAr`1im?|nVkZ+qPK z-(XwLgVQ-7_VtUdE*W`tmRYbNg*f510dzy3nUqqf;{#|nhLTv+G(9r}vHjb)#!GNw zT67GLkOG4{SA9ypqwgrUR>+_3r=#epMrdupBL_q!=i5cwDH5R$@Xs}|@i4;(C|?GAbn0BN9+#{;GZ7Xbkn^V9%3dIwOu_*;YpcT zKS!$IfkFwFbk*OAp<7|W;)3o!!#6|U4cc&NDnS;D|(t` zC^a;W57bSaT~ z&BRp~TGhS!<>%Vx%)6FvF_ILx$VSyf5%g9y&Hnf_W7<|qm~Lv;GE z5B}7@RGe?>X_LlH@bSLvDj_U);oaA2kUk@tqo882T^!yvxZ$hHTHfYUg(}v?cHi3R zgSb)|6x*kwcz|3LZiI z6p;*?r)#rap}oIrCj_1Yi;Uri6Kvm2{i`Bv53~aT%ftn*@2r`kH&oA%oMi zp-GPNp~Bvj+Yd4~O^X+d++elQ=BD_asm$4bXjxfgr3y5k@N}#2eq3qUKgj4T?*T)K z9ZV{%;caf0DO}zgE3lWXWixx*=tbGbwJ5#h1wXHs6rh@8Z(W3Y7K`zC(mAs=X|(*7 z(Evmb==q}t*IY8Zg5zJ&foJB3fCT&buBNn8LHp^?=+ysy!=ntn{C9LZy!&Ym16?Dt zEKRoQ@mbj?bReqCnocZL^ibdvQCh8vj19>UDGCi%aIMhyFh?I7PGE!SfFFW&GX@J8 zVtmW?igVIe2d2HQmeiy5r!<*#F@XdBN=XB%Pb*zeymr_&H7%{8A{;%aTr4%zm}ep7 zaN=p}8>bR-t@MfSi5g?ncb>WN^9SJ7zJXJ!YeNVec!=@eYAVu=a>X>=PZPtXoGB-0 zLH&->4Xxx)3Zs9|js>9KftO1APr>-a8-AT z2Dsa8bplJE*)o=6isEiGox(9Ka_@4wW;h^Q)`Os>pdmsC1mV}}p5|$a6^a)$>{1j6 z@*}PJ$afLs1iqNi~&>?uniFCZ04**X!!B-PSEY`;n zrt()zx~Eq`=P@nZ)g(nLl**F(Z7{Y5#xOP;bN1{YzOXlR&X5!;lNVD}Ww*M-w@Lo_ zGq!gRY}c-}I5HiF<$klFV-t?dfg`ze%XQ>}^CpO|NZ!$@!v$BO)olevy%cUr7yN@# zbc@c3~%^{>uMvfWQBVE=sMUG-mwn!Y%EE}1ur+>7XbmhhM43WA5ojL&OKXJ@S zPeTA%8Yfg(%_O5HK7kW|`Ly#Iu}iUZ!r@_Z0w#+P(^rMgXryvP7+)^nqbd7(55&XH ztrQXx*4UFik0&ZBVzcqAUK^f^FTQ@V1s)G+b1bA{|Jz)vQ7T{rj|E6u_%`1r7pY!U zRVTXTQpo6O*&3s?6w9iK&iPjsiC`pl8oojhM{r?w-m09durGb!iViVNPRtV<=2~`b z5tw(7kKzVfBtO^xQyn$B^9~Dskd`wx!l}4wk0nN1vI$y+xt_RiG5LTCN0kW7uKk9M zkqBRuTDo1Mvk65vqGa|gRtP8S)awI+^4YAB2MVAn*s2CJ5i4Hf!m%Ii29Od^TgpsH zOo{XoX;d_$$%? ztZAW&){n@(W5%siJ#m|z zRe@2VyhuR#tV{j7f__fQ&n$Tw{Z!Smr)vN0#uLxUf-6MBpiTJ6)*}Zw!LCzAK5(J0 zKsb{flEdW=SB!r#bmY|QZXm}seanH7Wh}I$?o!)rCQE7!D$dR?#^8&PQ^OW{rmIe= z7r}L$`b)6Fp<6iauj`g-x`@>z*HUA)78LcY61uLHZ^3y>&2B*A4a(A~u==Fef{Q1xPlql=1iA6A- zgK_;UKQ1(=WW9~MF3TSboBrQ?)aBf%jA2krnj+Rq$H=s!Ls>0gOuj!)y~1vk7nMMdz!hWkrFx=1Ww$q(#eO*9-3T8;HlElbT1j&V zG0scqhQon87tPZpO7uSp(o(k&g`Nd_e*YqzLOoLPiAL`kvdIkk!yt1G ztw`-ayTi~uDsOfvaE8Yp_9FGy8nP2CdwQ7BCfv%~N6kPB$+1~aSMRCq8#IYV)EMW6 zjKHn~1{avdIrf)#d!balUk(+dJZC1X&Y)e|+nqrVi1sKp&bLw69UlWylHjkN5+5TA zx035dz#+{%{cHRN1zIOdF0&I_L~4NC4vysHiqgs4h^BFg*omoi9=aiP-zr=P_q6dp zvyd8t_Ha4!O=ks>lPH5%EEgtwrb*8cYwTZymRS?!IxjM7$(*FrV@$9Syk+ca1&;xb zljxagbW6r{;2)($vxgofN7+5wy7>2p0vMa4Mpb3tbX=x4`d~)kvsO3lnnV|R=W~s@ z-5k_QD+fT!`H(HlHSlVP1_z>y0HNTCRCS$xxvQM-2?@%mQly+fTe)b4_=s1d&<@3) zl)nghi=Tk+Sl9mw#gZ}x?ZE&53UUFSg=&BKQZn0QY~09htTWBgxjo>H_hVAnYVFnJ zcFcq4<5J|{66^L92=l$mpTGfhh-f>T={i>X)Sh3GfogHYFH13Yy* z2P!+%l~Zm;bGj78WkR=f-}=&f_hIUggp@LE8KBsbLE3li{ayKShHKSSqu;|(CO;ur z;8G8DMoPN0Urp6%Mzcu3Lc#XLbx|6D7=1m?l_GEpzDEP)VeMks7D6|r+CXYpY`Z#@ zh${g7w~$W9@AIG7t|pVnZ4EIi*Z?FYSy^)4D&!ysu>dYhe@-Xu4e#W;VM~Qdh4^Cs zoxy+bCMK~yv8lB^S|k#R`(A8x8Pw1b@vsXgQ~Qs`(|*}HDfJ&lJj|c;RldK)q1en4 zM_gS{y!3@KP23W@ufa~Cp|3rERTK-$`EubJ007SSPgextS}=_AmICu^C2ts&Yef9K zO3Z`#2ci!m@`anj$7`@h`~wi;j&3>u4P12c*SGeubxZ%HS1mNH?^o7PS1S6)FnriF zf$MCKsriNa8+B4wHcc|Ik^=n^OWrCj;Wd7^F?c$0d(;^S~x?(#U86_FF`c%#Ed_udvjo& zg}jH#1w3N*aYCGWZJG2}%uL=1Ht9cCm=*+D@6mU4uPH=QfN(jF#Xn919kH6t>2D2? z1b5AMULMx*Eyh8nn4vHTS^#y9N?tQKT>TG9Vc&$Be(Q8Ztj<{vg`%f#@LzX~jsYU| zf<-uohFcNOJiA|}$KkBoBouBrVSxV3>Ur9Tla~73Av8cB#vi}sI+A$4LrampVI?#s z76cLk)NN}!+nL~UOvy4JSNpvJdGImH0In2yX7S7d&GRknPoCZaay^(o9!g4Wi<$1h z>DfILu};7H4Z%%)^k|9C5vB{xI8!L10T)K?qj3=A`}fe>MfS#1BV|R1gOwcQcGcYQ z1b6}7+$vQDY6vmN6!XWMQr>1QQ5|Qm|NoAMN|b%K`~}z|{|OaF17~(w&nM{g2M{C7 zn7aSA{SXMT@v-(oe)oe$`;j56LjPR45N|~lp7MHt+7h)NNhQ8-XDaLR@&N6~8PBxb$QyNHVKP2Vm(s#baE15&5uqHH7KeFipLpQJ`a`%prwg)ehwE)+^w zZt)@Ne+q>cCK&?L=Ithlm()2(OSB^$YmX3y38bGE7yx19$xww~+5jyVn#r7Sd58qW zPMmy24S$!g6Zs60@7LV?@AM07!8MF#8A3u7!PI34#kkBlk0#a%OXD{MnE+%GLiD0m zjbUG)jtiNOp@!L2ZMxAV9O?oh`9-og0r_t}bE!OZs>};e>4XoT+&P~WmQXE6w{7F8 zSU`IKz1*&S@GmENmg$l_dv^Z**WB>jeOekMx?&}N@G1JH)V7hNetM7FHpdfK;}Ao< zcrzfka*5odL%MZ)s;f4%6d3POJ z{_L0ZGFQ)))4!ocN%JhiGONHlG;4?MbW&5}=x(MLmWzGT;0+;J&INiGCWD`9SIT z2s50eKe<0JlkBr=y;n$r!i&GACD%OXIK79Pmm9#X|KqojPQ&@ZajzgjJ12AuRm1i{ z@NTaeSz{u5DU^VIwWCQ(kYO@%aW|~AUKWw~yo-ac*U@G0Tk9XXy3eCoJgYKP?4sw(3l66mBxylL z3k6GSNA0r%0xU>_55jDywDGrE&&^1Sjn~l%SiG=?(X_K!W9iTd8v2|vC%-8L^pVsp zQFW)jR!pJMaSri2^hBwrY;eV`AhKqhQRkMhk+O-UMVE&lF>Wd=AW+`m485s@^A{1c z7;4vH%{|;Bw%uS5XKt|S39Gj#ETOU!5|RGlwEW>J_bi%9=G^QAvx6@s{r*B97s$5T zfz6KzVg~W+3eHk`CjaFMmE8cYXD3K@U?0~o3-z3I6F^XQ+zZo@?UAI+aRJ~G14K@j z{siGp2j@s!_wpIH*Xa@tlj=@u*;N~94v5g;=qD&zmcuNN0;6RZ)IKFqzY}T7Z!hPX zg%$Ps4owX*z0!14!g~t6^3V%31d`}+_!<>l%J$~Y4#d$JBX5!q#@%gk0K2U6^M@OGFo>=);=G2e)E?)8=bRui26!K`Mds4fWBFsQ7Ro{4FFCuS9n)I4?K z##_)9RO$zPy(257oZ3;mnIOnyo@s;oGXIBwDZ_(G8u3gbdoxGHiM2Y)fxStJ=u)*O zeAgHsFMi6MtM%0iumyF^Iudfo1T;r|>Q=;o$A062$y5r5Jp<2P6rd^Pug!ZB`0<9f zrlNa`hCm^vU#E-pY19!~SQn*i;kI*~QoZzd>kvO^rl+)59#RM|?OTkB`KE5~Z+>Dm}Y)pcrKMgS1VN zJ16h>K}R^m#d`N>A|*{|ZEaTF2zgBN?I&{JS7vamB zY2AfCPZ`!+V8uE2;tZmQ% z`Rq6?PwzE;yzaecDgB6FgIwg~Zn0B>e@6RX;f9~!oamo|yIpAD-*M!n000rmL7In2 z;SVNL0xSQbNDvsi&vE>TtXD5u=Gm3Hnj%w3>+oovT;+1u{xL3P!HeKt4UJ$$(TQ|- z+60PY;;!~#yJ(;RIFGS>?j)NdzAC#Li;_244QK-@Y8>p5GCTR?Q~V_EM4 z$%hVhWIUDeEZzlfV=6nhEWmuB;K5aC#>-)}pg$K`+-~4_&F3(7uBLhSAwH2pLqjih zV)NNsM~|rB zq~WUZ%d>iy#fwq48&{RQM)hyKfS(u0J9Ud_4e3*$vX7D<;`;8O#wBX3LU%UBY#TSYMvZJD8ALAlrur#rM8#IuXZNA zhc^4MO{8{{binh};b3a(lJx<`9Jsealsxr!Qv<`nCH!YL+Rb~qFA{a*)(#RX;wClD zYV)-(j?)Qsd$fa4TqJ7YKhQA^kEgnLxUD3j$eAy11llq1Uz{OWQh-VejU&To7vVwb>zfQ3!!p!N z6VAKp4->=HhY*Lsg_}~+BxWK&Obum@PIs*Qrc&G(Qu92?ievIPhT4<0yG?t@gE?PJ zOX8)o-Vf=0=?>((;SY^!qvFDlmB*2a)YME-7#gB=@`fK3dThv{)4=LAodIQWa&Y?e zG}t65+G#cvLst^ z=gB22nvZ)54lq}IgN9xLQ};~cqjHR!|D~w3*f|~gFfpkDSTA$(d>6+AxpDRaD9^{& z8`@y@PL>s%QI23%u}XQ~&6;b#v^XjX5Y=wdtEsZ+af8SAbDPnuCViPYiV$k?exjRG z=txvUB>MqZHD$l|FAhDr)#=s>qx~4frg~(yon@SExa~OU|)-wl>grsvF~G zub>G6S#z>6r3eA?heSpbRu5#RS-X;)NC%&cBA;WsLVs%;p6Zi~OXD~hKVha=wrXpVfqEwAI%91m4Vm(5RXIA zgm-)k`v+&{^wir$9h7Ac8JO-OX{6U#lc-44UEbhwMe>kIa;>cqGLM2&UNoYnu6vl zDLqsqZaXyy3X={tZ)y?g^^Tidt>-dEeRqwfi4ebDSB4$Yrwoo&wg14Z$G$Mg(?qwz zB@4h%**da+X@wKG1FmQ|y_ClJ;B1k;Yu z&;U1TGibCM9&^{65^8vU2FB4e3kh{Ujat~T%nlYBvN0#04mV;S39I#E-( z@%*Uwf|8>RyQU~ibZRHV63txwRUP^5EVYzp8)pAk65*Hd{|wM%_`hd9_hbJhk#OtY zLSL6yyhkxoR(}fbPB%gCG-YDs`B<@Ep@2wcQwz`^K*?D@_fE9G`;`tg`1F|3rE{l-2kVFstE?NZ^m`-|1hpK)!6B2gfiT|I^mB(SOa;sok8!0$)z z;%jN_#Ux8jzX{F==huCZpy4uq9ZqFANfd^-(BrZbtlgeALMni|b-E7!*8$?D2E_Ni z)r$`jTezfG5(z|wQyj-NtLNvIaiZ7uu%~_xfgr7o8GdKU!;|s>1jQ9SL>SD1>y)}W z1-oP63tYZO&+7Ld1dPG5T`LUWk$4!4;n7xUoy_F)6!V6)UM%aHG%*NK>Gh+^JX1d| zI|icuOP5^+t~7u6-(FEvWoX?nWgK1)CM=o^!DtkKU6)CApsdEz zX>?ht@~fq8&@MCykGyg8F<8G2d_DOSa@lS5a~z7$B!FlIO+mkhd|+PifCEK6uBvn7U6sjztj`pC3*E~s#!rIFQkot~N|9MBaO4)X zucjP1!U4$GMN5&={Z(PSnAkMna=f@cKWJGz{s5jwpAXX%8R&C6H!m|JEry$xPAqnA@ER zh1~D1DVpjo$Ri15Ot+_7)_0Yf=JO0^z9L*^QW8F6rk87tktGSiBlK%CnC=BK9&#Sy zaWt{V0f^n1?-6O=^;d12VY)qN@f*){^-4`3`-XE~!$Ob=ybKsiw_3kZJKwjF*8^)s zUGm{?Q7ua}cMNQn2El#KXYN!GTTv+aL0+|9%yC0d&A1Js&laJqRh|&l@*c zX-(i{q@Y}I_(BaUjSoD7C3ZRzWk_;I*)u*=A za%87Xs|6lxe>?~XPGsEd7~2doQj910cJg9~5}?-w=5Uuo4R1W$z@KdM#F~zw!D|?; z6GeD1KRxUt7L4!Jv>T}Fcub)1Nepm=we(~d9G)finGES$aMZ$HVjET@NLRg)7JIN! zd3K2*h~-K9^C1q@KP2LtMfCVhJc=f)rjbyl{rbB{#G2)K_Mg&z~6dK9RlcoFqr`xds47>q77da_nq?GQq-NA=4IEQwoCvu}~cN;I1d*u*s^ z$$mw+%q;tNcC*oF%@&1%F!K&dCwbyaUTABMRO_I#!S7fRFw3u^)KT`St(BQfMSr)( z^)UTq!MLRaJjPP8%_VQKmhqR!gK|+tSU38UQ>WdEzNToa?4nh9zO4Hf4V(gqvhK{q zhJk)gf$*8p#uJEQbbhRP8Laf=A@Ow&F(a}0;R&U$=2vcA-!ymkB!$XL&mFG1qTZ&H zI*-TtPpVyZ>^`k09R?r@&( zE0K)Bp65juL`PDDyuym-w%vOm3fv-wetJzB5GACMOHdFNfS zXJw%L8Ik^Qt`n`)C`dM1bZh9Pddr;Rk#B(Kbk3fiZT139H%BBnn=2PkD5U@-IkPN! zAUVtM)!Fl2S^j?TE*MlinZNxs!y8oI@2+p7mEZ0+&xQ$yD5;w)LS3)*Ge*RSc zU+Tk$)pm|Vz6s!C7SPJ zBGh5qW|-zj{*LfThG+7shHF{WBkTZc82|tlVL_UxOW_DZ$aBE_;26~0`tT^PT7aqgnk=wk%#`a+!awu%%lod$pn2>uLLH+ zejr@se|$%43q`_Q;5QXETyz$X)DBsbfj{w_32^DwWP%6AwHM74WYkGOY2of75e6GN zb9+XRaE@DS0l!0s&+PceH^(#UiA(O>9(R9-ip)^3vsaZ`5FO8ZrjZq9Sj!28(WsXX zqsT{a>jpBLXFwtt2@(vrlWs3+HdRu!ib#d^Xa>TCEQZyQZq2w(n2FRakiZEz0J9djaS$P?Gtxktt{ZD)>LRp>Dzpt42lo3lr@+k(lX|}z9*_#X@i`txsTRBL z-Ns1X4$BFcjyT5pgZ;Q^#xxXm?~%QKKU{Bnqugzo1x z>zO>F@XNi%bda#&j^-nisTw69k(oW4PT7JW$Wl{hwr%xSFO@dBYfhInfpmaEIQ`kt z$gbQUu7tc*nCXkyG}sIdf&G|dUce=xyH;hYN;;|&0NGG$|MO|K-9aRk(dQiCIr5YH^n{iEBDCp~_Q`Y4f3mGcVT$_o2(X+nu%_ z;_94X$R?#&^PBLAV36s!ht09;4QAAL0*)k{1cYC1wbCl#ZDIb^%V2g4*s9btR_q{! zK&$#k=GiQvF)?ggOA0UgMw#SbkC{hwghj)7 zRe8AAZDNf-9OUAlL03}}o-(vDMxG7#x2mX9Bu}OxasV@iw5|{%0gqyu+&!k1P>*_$IV*E z;tHrk_%G+BFZhglWe38H0P5xug*+c0v#52pE;-a)M2jf1FV-UYt`)_WPuLPqnmWbQ?%WKy)l1uuXXP2H{j}#OlAV5DYi&QL>(%|`8QB=fFiutJ7I9qA4L5-CX%tBWc^I%}DBOFmwV?1KpI>{~0Bg#`+l>vOf-ye6 zK29^Wp5m`>hQ=G2a^W5)Hqn~?(gxOtE5Tkx%|D}`Jj&zfko54%(P^~ zyKL%(bPr17*FV5!(?~b*8rUtfshtK$ozH} z_nr}5iryI)jTZnsr?)eqh*`3^NjQ@Z z0!?pmSLf6Emt@XA>1R3G4+dHLo=YqSJV~m8!r^^#8ADs64@NSB#tE|)&e#TEF}2nj ziqkdZ)z%kWbG+H!EkRiMedhh{U3;>5J5{XEp(Xn`bDi$Ug>543V!T|8zr6Ui2)C$P zpK>v0qxgIoo%{?VFH zxPJ`u?ht#TtVS_8Zirtd;VCy_ic>{#@1+kSWC5P&86X)Oz_hT`nL)MMSh~co*b1&M z#vf>mgn_;ypw^Kk344OwB`<{tt};0?W2=1}2n!Dq|0Y?A0e10{zaA$G zgjVrzGTExwF=KxCUioBw_{{O7lwWnxkU2Eqi~MU?@{)iv9eJye80y$5)Z+fq0>K2)KuroVwsya9O@HLWbd{AzjiNt zjh1N_zcPSk5@O0~*eyJ?cS1!6d?5eb(YbhycN-sHBquBRzm`f= zUldl}8()SINNVU@TqMyJso37~>N~c7PlqEk<<#OIe2mSD6^kDh4Bs&uODvR zVWV}XO00?_4k+LxPOSOU@Z8(tZHEc}H4-sb5w6w2;r4R&(d;>04rD9+`?zBS-4JC#as6kA1^@k*UcC8~23o*DIQ;JUV|ZPLD2YW4v&=9lLln z$kDO=_S6#Lm|3a}IK`;^EU$Os$BJ#|Iis#q=4DnuhQk6`;wIb5Dh1H1(*C|xaNk@> zUC74a#XgO&Gr2dtl^LV0I^pLSH6roeC`+qa_c(!s&5IBm4O+cv|znU?A~ytZ~;wf(D{ULOQ~Fj4UtZoG3TTi1&{Ry3x`I<;(Q;lPg2r}Yt{dMi~N{V1~o_(HlW38jerzC z6s>7-C0^cAtDLd4;4Nqj+ir{o9b@&!y|l&Oz^M?8`L#6!EXBdy=PG@@;F1%}_=R2b zNV&3`J!q^^B=J8Yqi+6zGUdTNGRZ5Q#G(e%dS=T~KE6`9MPmz1YGe%{JMh52-{-+g zCTVEYP)US>5)8oKUl9sEHHa{k>_oqpNW-;h9A!fM*^1`9FvCWm&fE1)Af}$zNY!1N z>PopPGmeCkc0HZF=l$mWIA*Ye|DU0<^^Jf)WcUe+d}+I2cLyHhXFyVjMGw;X@8u^; zutG?a*J1b}Nr%(NOJwi$$0ibZSd}65$I&D79QA3sUO8emU_9}sihz!3loRzd-gzQ* zkhB22O#rFKuq#^NKw8FK&0?C8%SHiTx7>Q8g{p2q;T+wlPewPK=4C!mp9 zbH;Prv^vxe#_y1tg7JgA$xdEvuS3b#X`c2G;U8{U_1W;dx<5!LO=BRV5=wWZy|WjT z!bh+7vo|v(4awZ~-u5nL=u0-hecaYWW7FqPMupNzY?>)vCgj0YQcoVG;nc)^)u!jX zae5ImYp7NjqhWI+7SvTF`nfjewCnacqD@g45c+_;K%v;gp(5hXmvp8|74g)V1()b} zsXCl<1s<%hTk+81e9wR4=+#L7)&*mIHygZETM*SH7Q~qkS__XfKf%$7XOfq-Gwpm9 zGa+{yfd>Ppf1U%K%ywhn1ylvQn*8E+xlKK|$`k-GTk1>nceYJLEW@pfT}8m0D1wLIHDKctpS|)| z7RrfnAUA!$FR$WwsX+F94^O*=V^KEFt(RrC_=cQ_u!?0b-d6vxq!6CDN$)0=*^KZt z=p%Jmg<+*i!=3Nd*@$z-=1*n20udyQO&?kN&XY-4#>U=uB z``AqReD_5r)JMH6#8)hgP9Vvw@YUZDaA4A6H^JmEHt@O60t2PU{G0o0lB7q`o zDJQ76>lr)S+2hFp~ z&7<062N3XKG{Hi?nRnBT`y->gTtC6(o}~<@xEt4GKjsBVBwv{1<;appQKI(YF?xPh z4=HrWDQD0w)b6-VVGMhrE_-XC%qaNV2nZ=0C#xP50i1yfN(4aK*2OvlAvau zIIKe-ym)?m1R1T&t7iD&PJQ{(lTU9W;P-VXbJd!O;{kq?NAHO#BdDAO)3iRZB$(@t zt?yc%h72AI4l0R#*@1pd`92y2y3s=)2D4akqW!k#<<64xc)>+|L`vqcS}gSe zm6&6fp|TMjD2n^7%|k&Laa+to7tHE3@w}*MRWr9Eff19&MamQHcV=QJ;uekyvpg3K zl=bZm2T>a{lpR2~Jf7Xo;{meIJDr~2MUGxIJ`6#A9(*+0{U<^*#YA;y%U&zjgXiql zCRf(hNUQG7N#8EpV{=EHqY z`ptBF!rnawG=F<$+6;Y=!w)n~+bA#|E~#@VvYN!*fxg!RslDEcC~S4jRYTaofr%U- z^=we6?ue%`ci$^^&bMWCea7lw`t`5VE^6|%`C8juTv|yI7tgqok-*sMrfu1;w@+Ff zJ)9@+=Z~HxquOEhbB6_ExGh|@LwwSt<<9XdQt4TUV?g5j8*RpPr|qiCBVN4rF4UVI zL067M$dK6`RpI6MZh6QI`Tk}3`)KgWAprceaI1(C)$YbKbHl7kq}F4#tWEEx@*j$D z=tNTK(aOU5jD{#tpj&BmF6)re+9!J~cr zsVql(Vui-e?{?!U3D~iQ5!93tsx&zlE~|;K(@!?+*!Op&u!)c~G5cYz-RX$+W5~9# zfFcVmRRrJ=t^G?7u<3qkv&5SY6{{Vbt8EPxFf6|NwPnZMXfzk9qEy@7eJt47DMKqU zds&VzOU)PsSc}E%ESq9=myfJ5lUU#i+mr>{{_>1Y`>n*!I5Tq83wbBFq`dbodN`yP z%5mst-M-J;lqrl9u2kwx8qsQS3`(XI8D3Ikb%i!l2fwizM~Y|IOG?pP=TXIh_uh^Pfv@i5C33)A8_~9&`IQ2xL0|k#xG1l*#@JY zMpTSW!UMuLxRs2De_mSEJpI#uMrO*GhKFPbKvD~Ki8H(W)FaLI1MI&aBM3`HvEN<; z2888Lg_M|JQpmXLqFPLm0~zuTJytV#TV7q2$=7$3oh>`fyywhNpm};a znam*ZAkOmqBRQm78%$CtEm)MH5BzX;fL6AD;5?AuH3ij)W{BOF479khqdy9X3ZdS% z``PmE*$Oq18m*G$dv(I6vamJo5uxo?UhN!s5V!u1yPXe%itjz{7EH>otUYD)s< zIo6Qkub~ntZ5+sSwcuwTVXn7mxoB9{TCQ(|0bW*7jEPovC>V- zDNobLhvr-hF9->PehftO_pjVWw-taJP#h29sx)-dSH;;$Rk=}vsvR+TEw_83A2JD> zwOV~~e&8J_*~ecT`C55uEpovLm*k)RyQ1Q|T@*G4iu=_Up@dU)6nW_6v6r0n+jNHa zgp<4h$uspa%^%UV!;&T_oN#K)-iM+py6LAZ0@U%C6TW*zwQX24Sv-;aUfFWM`^)$5 zwVC%dheursUt)!=VXlDu`siL=w5A4{f19iFaFiNA8NUb;bYK7g8U;a`%1Pl5CQ}6w zJ%4du3ryqf&z)P;n8FyBlP7kD3?k^?GrJGM{*p9BXa6N`3++OBn?5`k(anE`o0?^|jICQYeR9z^W5$;AObLk{{S^xpy zZkfn$5>dzHu+E|%U-*uMYVN>2M4O;yoZZ|Qd7!3r{}}}b<+WG&q`m`xTmR4eV$%2^ zdBnGVUKAqN2I~FOTVTM4oU*&_#(BcQ(RL(~4k46F6Mh9iYXeD+2QP)$Xuc|5AE(!R zI-B0EG?QjJHzZYKBkxT2x>C!`yhfFrlOKQ-jt8FxFu)+*&6NCK0vDX=h$IS_^99Og%Bg!METZBg zai9$mv~>?c$Fe;*o65q4n)$v0Qs4D+1v7cs7sPsdl;uv8=yz<|Mj?IC%6$hC11#4w z|9y)G8W|;-+58+=1*tHnBRIsJgv}6d5{MH*THl;6MBO83?xw3~+j_;T`&T(~hozVj zSA0-BJgGJl^;`K#JjMBGeSMD(1M@HxAC}Ze>P8#qm&r72rZ=^#K2kL`=;#tibk2sY}zkRG}|W!&BN z{#?x;Jm&_%!aHtpixGwGm)b{)>A3v zVztWtu-hESYV)FR@?v*`q!$0o*Y?Aeff19E7J>VWUDvRXrdND}$M-t>0CP|{kxmWZ z%mXbw`R~b@=Se?yhKKgVtAJ9T-mM!2Na0 zSw%AhD4c{~X;r!Psw6%fvN>c0GB@`*kbuR0-f_A>!j0c$j?uRV=aga!8+X*g) zBj>0OfjFosKsKLd6F!_o9<-^tQ5VJL>6#6h*jx#*l+TAm_#p>~7IOG|v2Wd$#@$4m$qdHpVK-18vXTvW`V{bbIlt@H9g+ zSGRAH9JgVvtoK*z@jSCE^RWiu#b8Y=10Yx5KTcmdC)mmkm4U*K&F2?4d}0ox2=S0` zgz{Od&`V7W;`pL=z%V-hfStNx^;B+B|3{(93HdmL!%0j}`?ByEQJSyZ;oV#I(EOa+ zN1fR3DhPfHO>_nPd-K(r)~qmSK47Ullu`u2HEN;1o15j)FmRP72X^ZzMv9|?E#+~1YDH|(K80NqIV`;$7cc( zu^0han6{9$$^REQMxi&Kp?^6_N)@*$U$ z_X7=&OITt>!1nX$>$Djry22lnv#$TTKVP=nhy0K=y;^ya`;Irjwa5-zjNs;Fwkt!; zO-R-|f8vN9u{dD9*-hQctAf+OO;ZSUPf6V>zKEZu1mB)kWZw1^*;;1puvTA^XXQ5< zUZdKL+!(={9LO@gxnpR5e?|017&v*jjy%N+v+>4=m+Azl!dd9{M;HK>xvYC4L}81C z4P`=5VXG6nYl-n>v+%Y=9GX4cJE!J-=imJ@4LoJf&yPQ^43UxXy;e5UPzvo8%MRhcmciZ= zK5*%vL-mo&*_6~El$bi<$)Eon#H~VhGHiii0G4unbzH$gjYG^W5-oOcu=fkYWY#jh zG&%Rat1%Or5dr{a-goCmH0e@O`HVMALaRQmo|pQv2ThE%s|Ebn_tr+&HC0`k2m-?h zwXY%^Z18ez+1o7YgwtC;nAWKiiMXvv3N5kLEc*h)QEHeqVh zb#i^tso>W?c`bLLo-?XTfWh#mTd{LX2>BVgCso18f+ul^X?8Mmo)FM8QdgZrpNX-$ z?!t?N(!Go|t@dFQNTC4B%wF@md4y0K!DVGmm>r&c950VNU`zE+`HH3@z%#wqt)%?}LM zkU%-PCPY8{#Z$8SYOi8ozMzEyTXTv$gQFwR7W#wHr?73`&4d!;4@R zajwjP!milgi?JiG@M9JAO|zlvnSOgZb5OqthQl*$H^Xi0Nh+IoZw~u@nUQ|70pj(C zHDjgIzvgqzfHxo1g{ig#s?zX@)LJ+MTnKIMTv`W75#5k7Un3zBWD*Lh6B;M#WYbnU ziW^`3WAx&KBayl)u}H>uYso*}riu?&*+$#={p`(CEfH>L;noP)BV8I*eo~pXz(3NS zhevO+`a0g%hSkP0T;*|rJ@LiKF=LI<$EO7ao9)Q*1N$f|9Ck@PMm@c0Ak3`k{D|{l{wp4>>Y{bO& zEpPp%Oq_g_F)PQ~+-nEXnOE-uKB-M)!)C&w@~~t1Q^Dpo=nN8(E8UsQc+#7^w-Fv% z)h+Z|CnjH44!yz)X!`psa{rAH5R`P4=^x!`qKzLl9o$spw`I2aBjZh?1_1IL|3}TZ z#sCeK8+mTQP%~hx2UCF*e#)Ur@e>!(G=zXiq{X=M*-);c%qhdO%*{YGt(Jjsk9+7h zQgnK|81+wHk!1ry%~$+sVg(RXx5bM5b>~27yUfshl0>AOt%|b!sKtd`GM8O?c-FPK zaNZ%cToPq}RhR&GQ;zvG$;#7KkwsN@U;1|c6oj%gmeNsVLRyoO&(aen^zgJoTc<*I zRv&?Ck*Fbfb$wlSI5ry9Uv%FaM%Y$pnc#+0+IA#Gs(*xXiL&CZLczyexYi$LfuHtL z9(pUw0dnw`6m!4T+!OQ`waZ6@ak^S1s4Xq*d{?R3shL>E9i7})H17by@pV+N#+67c zT~T!H1{m4ZhWMA}C*p5lH1!>>t?L)R^0OP)uAx4{s-5Eb%-?l34gcSG3hUm?^)fT@EnJ8byFmfE}L8eKS7@0lS-!RM=%9-8A7%jEO z1S}IEi=mu+6xrtvF?GdPB-S~*{WzSO_BRKiE&L{;g= zzRk?@V&ZM*=J($T>tVM&Q$#bOy>NT)wy_kMgr!kmGT1xy(&{DRnJ46+Jc%;3T~%la zUzQYyTRY)3=E626r<5^Rakh&gs1i-v%`zxFehZsN3qi-UcLK<~WS$j#W+au}Ec5NY z!=Awq>dQA{y^~hlV%af)``CPhrvKi%o@Zi8{Q6S!aY+tv-LU=tgWOs}IU z+7TolqLyLH|5aw0r)Zwzky*)W6bi~3w-c#G+Mq_4XrBna=Uc=16mX{dS4*@;8z}G< z%a738;Ipc^Q;UV4K!;UwosMkJZ4WwycD7Xx1}qO_y>x~=*ojfE#+LRi{bdXWEKF?! zTt;0+tXyUSDO!bXg{RigPCz_I*NGS2u%thcqhw<9mt+SFcndPKc_`UdGJ5aq<4_t& zHq8uN?wmno^23lK#I3dg=}R45$CR~2{tF$mVI)mPs$n4C?qFljgl)yU>qU|pRyO>u zjUcxHXNg8auB3Q$57?VV_5P5 z0H!WzDq(cDDOQ6d#YPWA2z(PHqX` z6O{t9-~Hw7fA@;wm6h~W&c>S|?nX!KGm|7;IkSGUgkT*si>J64ZX$WOJou#tt?GwZ z)JRHr9NYR)E)T%j8s!I-a-{BvE1YGwJ8cd`tGqkFsTDQ2L13IL@Rw%%eAz=5sVmS% zv~*kt2|= zMMcm4%K_+5UZ;uUjkGHIwNy9c8|#Z*hF708<0UwEC`^qc6fQm~Hjr>i_R?`$cAbK_ zvdmW>NV0G(9VHkEH%OJ%3RyP`wo&yKz%bR%lx(EVkLXS`d5Ur}pBKEvH-WXReuLTi`SgXc7$= zn|%Pt5M-NatUZ;k{kx?8Iw@l8C0@}7Y@rQdqeyHj`@(gg-8UrjF!dYK~W>GT39hvzcC>U>nFPv}*I|4iQNSTEAv@Oa=j6TgU*4BO)5ym@O2Hjw^ ze3`bmaibS7DHmc5bJsrhqepbLGg<1uU7hP8tEAqvGa0r4GcQAhWAM{bRqxu{91G#0 z#hPKq<<>40%HYUnPv`ei8uY;H*DA<(dMn6>+Xm7=-@Q;5Oi*z}`{FT??LcuVnyT`& zwIBjF7!HLGg_W!&>f0h`$7DlHhPZpp|J5s?4$DzuA5Xnqrw(J3PPqVFO&m$}>=sS4 zmvZ9ibXEbBHCPNKe*M%T{GZqNa)g%DcuVB}5I|5qsG%K{0M=dx0rHZ$3)L_W_;gM< z?wXZ#5=*S63n0T1@$8F+4Vr?OP6Y*NU-n)c_Ha z^F}yc3#q6rhujOCRR1N5lZb_pbDB_(-9WwWdG=kwTgM-&>U7|mi@|uF<9r#j6_Xe<#h#lQMco0qns{Xj+mZz#`L?a|?^_76L z=KplRW+_?BPyRq?Z|UFF(C5>F4!{^Qi?K%aoqK5J#dQR*qF?%AL+E}PPFfjvMdI?S zFXxnz$$-SCOr}s^60jG{{-i8&TV?%Nb01pe!h)0yf)%5bS6f;OtH&*jhhg~5{JCuI zw^HSt8wifEQ+W>0WhPX84-!2wGB7NsW{|G0{!BBy2s!6@?No>uyI?Jqr;UfR5on`>$q*2`RaS& zH?@^x(Oi?@a_NBC&qDP>V}2N*`DhTK1bC@_dbz9&CyrfL)0_;i)O{`gX3*MYPgvtD zMM@f0t)V87pX!g9z5z4ohZNhVmq>{Wgx!&o0JbdBi}IubzISt*#`U+0F>UwYLlo9k z8a$*hG7k+8F91K!-EBVeVlpQb+Kh##up|Vru~qYn{5Cg!aHa&__x{%wVj^LhxU%5j zkR@w}G482T>@OF2Y7SBhVTa}>hJR$GspyoLWGQu#LLyW;Dy%{!{Ne=ZxZUqah zJ#2+E&ozYSbzg_{qH8NZaEhxaovEUJv^xgR<5b;Bh19MvHLC}iO5Z-6?+Kj=_67DX zP;<-cH?g%eXDEx6SXzBc_%ngeww2n)je#a+#B(H}p>9H|K0o375;o@}u<` zv9<*OQZ9Fxb~mWoo2{rWPtC}GqpEh_CMXmmgX%kcZQ5Ln+CbCy+UCuB-iDf+2=ThT z6!U$>m!{t7K{ZVDb@{dU=J@yTuUCHedeY^?7TWE@9SGu?%Vu!*UzPTMvcwJ2fJlf5 z(2AGf3y$zVLnk7#K~AP(d%l+_1N)InooT< z84Yg+_y$lSpv*}_+H7P;jNMbElxz}8{OE%RiUCgsR#gD!VNhE%e9nxi?v*T`x%N&K z(?X#%tjtm?Z9Z=5FL4HhcaNX}QW2?BJs0R|TP*H)|M?zbR{>D$i^ylg(ZiHJ4yu4m z>rI$i;IWDf{Pph15DlgoWQhlWB_9qv0pQN|rLwn4fxfjV)1(t)Ng(avHm#?iuET?8 zq0i9KFOAs7L4j;m!ozmXbg=vX2I>(IT0Euq!0Y0OO3UbMLU|rg`m4^Chm!{Bgs*bF zzFue+=8DFz?GTMU!jJ(yo&$pfMN%{vCL=@^rPxpoMEym{w?@F17t4h)U3BVC`j(B+@-ic#5B`Dj^vH4~z}&G72zPaR!97j;**n;eZ% zCFxmnhVw>un0mp4LsPus$_|(zb7#BHj^M>9p&3#?b-rpD6f^s^AVG%S$}g%CvU%tP ziHOxZ(93SK-VNqZjW$lhwdDD)eq5EQYpt8$T6|X;ZS9~KD_Dszxou#h!3e?z5IBFR z3WDk+zP3~FffY_?S)o9b{OPGay8;^ijOkg7b7su&4+h!#(h#^P2nlRzJGs?y0DX~# zQ5R0gPs2lGgy!nBj>Xog6fYN2**Ra!3>Dvgu>>M`Q$`iVFZe+lH?KutS3qMdV{n#k4NmF>-@y@Dr)AJO2 z1?RocAoM=iVipn_-UDlZEAmZ4QVxk#WCXei^8Ffj zHL|pm3pfPD(d0w~u~&=MSY%T;&6F0t5te$9Il=+)w1 zMR-@Buy`CZ6|i{ue~h=Th}4EX1zNl#r5q2qdk7-kOKzHFqc*@mE9FL6o|Q8CP&dLk-N*( zojCSylbk{wGy2dwGL%@DE~yFA5?h$!1+#HZxTp%qilAtWHq&zNfbo}x`r=-`D}pSK zewe6tT6SXH_hCTc%s~2Q@5AUgFm$)Ym+Tj{>6<2SoeTST>)2Wyz(BM4Y_*tPaS8z&0=E?7E@1c3Edc%2uBuBe z3Z2Zait5`9uYpSbrHMg8U25*~GaPC7+&rwRJ>nxQMqK*NzFUHJkAu0Avp6SL0YxIv zZ4NM^YrR{FFn!IxUa1pS`KZSP#k1vz8MRLsM@q@;HMjJOr5N^Rb3Z!9KTfSZih=>L zB6zWF3(OXq{Hix}?Sah?XLwu}vA&18*=lC#(pl+IfI&UAf>CezFTAsiU!RP9)H+$> z&akrf>NS*{P--4cug-J%BaJoSHZ<2Xzqg<!Y9Rp}ZB%Jk zMzK%7yFv{YpQq_56jVvPGE8~gKF!)M=kr)4?hQ5oosyn7c)4a#dHO$^epxi@1DMTB zLui2ciQ@XorCaYtX!9OpW499)fKYX9%cy@fi;wj15-IIKkj$wRAQ`B`4JEIK2O6Lb zPK1zIzU6zSVUo){-6SV@fh9T!=1Dv(K=-xozsu;_Kn#T9$cDbOb6o zV0H&Bl_Yv_jamH!Fq?13hoEh%3;>OjM4Qvys!_=b2*>@aKAvyl>rz4j6jaO9k8r(y zF4w-4+zP*^uD=BDib(sFfytN3dAExeMlR8VqmHe2Sr@UPklww(ASZUGXIeCie`Vta zTSyM&w)>W`Od0&1FnBTvf-IN1kE$k;PsxR~33&u$1uE9>*(;7uP*m+hk2bAYg=)LF zGGSTuw71%=CrY!K7Hqa9hbJC^fN5;9?o87Y2wz7z8ix+zL@2*mwHXGC( z`6v^$CNZ4;w-K(prztJ^!^(WH>$OiafPH4?M|5h#`Buy?J^>rP)WYkg#Y;71tl1fSb2!A+ zr8oiXKv6GT{Cg{>^$br6z;zdlbcCU>CA;F_OQoLXVZcV8AdkI(eI`|lD#AE$bZgBe zKUs1-Pn3JaFPIgY*a^|Gsa?5%JRpsV)lGbsx6Z&rPc~JUFAjvv(!(EEe#eR-AH8Q` zb(EcKICGFvN%$FOaIkHy?^v9ZT=&-VR6?M$lotR}y;#XYZ>>F?J?)NT`|mS4g8h_; z?b&WSZR#sK3V)A|9%_P+*kqBe zB+&%w2k3z<5E4gg>|DU-Jzl!_-f0hsVqgz58YxlhdmI^|% zy=tpH(Z65Pj;N#;S`UZLEWlEuSh5)p{CP2!NXOAw|9mQ%6YHxURcgmX(2Wz~G~b3o z_YPGwzzqaGRogMw8;S>RA0hC=c+Nx@N#o@0x)PaST<dRZW2c&T~0se^CyqsySthvf@fg% z9uI;5VqC?tvqz5q9lg;%rT!Q%4X+89pu??wrOflW6boZF{L4N_{Z^{tjJ6IeEaDS1 zcO4=Lx1ry3?`j;Ad~g9+sAIjUTJn{JOLn=r@4IH&ATdGd1CIrKy=`U`JE zNL)jif8Y2$eJ#kZqUgQE@25e6U<93u0!N8JLJ#$6XRS=M2O6FjqYp#7C5MU3@R=2g z#K^3hE+cRpYah4nc0s4(Tf)n=W0|*U6mQ}Rl!(^o5~I4YeB0CANt`R6<(#9F1r|`g z%=Nb5kNtwJm|eF8qvsPSvs{&7Rc3?eBm5>A0IsJdSF}yuGE;rtS^WY>Jp(--@v#v$ za$zLZtZm8@1yRFUzl#&~!!Gq&QUMcS3&N$T0Q`47vCT_(PD-#7;wIr6P;q znCt}G)%PaGixkJK?x(dredt$-*pwTxwL+_}>HUCa0Yzn681hRq?GE=HooR17&Dd{@ z$#U9~Df0|qMn1D}YTxS!ILG@HqdJ}O;ZA?kAV80_yuuNl<@9Flx4_WZhA#H-#B?)L z0ChA_ zh7V+J21T&9%iyYwKG+6aHmN6d`R61Sxx9CVBw7)+aaLk^QmcULPIE>8V;?LCUs?!d z#xdN0NfO5+G)2F^v$+I}`pro0+3|ER-ys(QN1Q^dqMG=gkQDRXE3c02-`Uas-kbRL z%dII!S1D4UP1$Xc<4;3Okk7(sSLPH;ql5lv$O6KzhBN`#T(c5gE>gTjHNYAyGk_st zku@-GC1$1OtfM-;s&RKetAvUz$h@!8sY{N0LvA3%*39*1Sf}UjTa>t?C#oV1PlZ^a2X z1z-O=;%|JD!hrvc-gGh}itW^?Ak|BbJMr%&@R^#VrH>NJ3kph0dqsyTEp*&0J6#tT z*a#sUnp2n*!>1uFkExA_onZGY|2vO;)YgI?d!x}Y+ULtJP zM0@x(rN`z#_*^_n`XH>O`NB0Vd%yqJ1se;Fbdy4ISEFhB^Wi*TPlafk^LoK7Re%2O zu)6@+;j!@hV?gB8nRA#=PjC?-*snU*u(z!OZBMfs1yRzqzGc~>O1P7HN^VF}*@2Ip z*l>34|7isPtj32$8R&sN0!0?mFV+DsfnGisg2t$vZ0gBjXwvg^c5yC6fqWqLf>5Go zJYkTsKnHGBxWFO^Di0*~-* ztblYo!-u**tpD=|epFTD|8=}3Xsj0B7Lv&~Q*WP#5BdMwx|j&y%lCq{(NaLXRnfeY z5xZdQBFvBYM2S-m(7T_o^cycq3Qh0tcHsD&=eH9+WHRv^_0I0JE>oe{wY^49wQhXu zfof(PV>uQ>OC%ebZJV0-bNRtLn)l`W+n~UGwT#^E!pvz~}_iC0xyqAb9BxG4Nov zzdK$?D|_sTJOk&Av`v(1gtba>$ty7It)-&e@?Suh5ErQAsO|ZZIbvA8_hw@79MM0V z{I}`gO?; z5Ds?Gt3MpfbZ~rLVJS%Xee4Uy$`0q$!OU&2RxE^AA}+ogui>R1(+Y{sHfniLh$<H~<_*fCNu{{Yj%j_;@nW?tDhMC*m>?5*qw$4W>fuUi>E6J$QJCRIzGqkMZ!5M39%ZO(Ta8TXgcSJ?xZ0&gRhV(Ezv zpN_Y@L7n=hw6p{-a0hI+U?-glqZJ)=%iBoZ_5ey^6@M?nSj*aQ>dUHbHbA}El^L9f zfPh7G=p+Balg{Jh-N&Qff%!dT?wHsjnHLwF!2lgS8DS!%pRD!ddSkZIykycC_=XA} z5cgH3W><$d2kn=GwWzm{b6-%@k12D*D7Z4R6jY;%}(VGKJ);x#(_+lIL@RWr04 z+rb7Wp2DjD`AMO-+B{gacP0TaWSt5m-xR08ZndqtLuJVPayE~fwGtXHIgPyW$Dr>p zLt&Ch{RsHv(GK%G2%|49t}Rt)1VVE$x=3)>crk$iqtpg!fvq^>TJL?5kL8;6`5K>* z{IlC*u)rv76(iIVb0a!Bd+0ArfA_Yj|x#`xZYKyR7f2R)o7Xt5< zhhfEV@nXT7yxGe;xR;C!S&K>P#2)dqsd+z@Z?b(2X0F`1JBKVWiWFgV$ z26ZB-m%c0qL_GkGP0;2e0c&-%g$jiwLx6(fW8jf<-^Bro@_Qmxm0lf$fmi|?v+@y6 z>d0O-d5OVSK*m~xJi9Qrl`CVaN#$9rwUIbHH<(r(F&-L%W3j3 zkIS&8uM)zp0vU3q;&NSYt0^6PLqL4ILH1UTgO56z^||)bXD%8JD}6@tF~pfgrJ)-X z$5`|B&vZN=v?#U>;?9)87)2JJ3CJ;fTtDi+_gG^dtCY%<1VgCSIIwGelRy8HjH#W- zs$K^mSmt+~lT}vACOy&{P&^$_1!v0UfQOlHL-?*Oio2-n0w0@*_1_9h@Mx>-nWFW%p$AN81^K%ZDE3re5XLX@B#jO z(47(k(E-<-{^q(o6?S=0tJmGSPzYWMj_v(Mo@E%aN!FNWL*ahoG$v_z(*#FnSik?r z`u@*d0f3ych$-7(Fg`d+#IY0M@pUfzf!XPfR;!kSylX#-vFTQQTNgQ0epu}fG;=uV z123X!bSNcpIePWOqu!Kww9an28}O8s3zHHwh+xsb{IR32i?;B08qlNf&)AS8kvQIe z^;%B38&Xnj&&?Za^Zqwd=Ue!TQlo69W$ zSc_w=CRoV`;~333;O7VpDJot_{RLqq&Ez-z`rh}jNI;%BT@+bL%B4^ZuF3SzYciM^|-Sa4!nTLDscd664n7t@Rz$`EnN%rQO>To%_AhEya+s62^}d zI>d-j=0yMIWn!WTXJ6=53@5je$>~k408O2hM>A>!1N9t0j=XhHZ`6Yglc^jHTny1c zHvI<)bN2I?JWE7m$0^FuqUS1`m^wVA>LdXPTUX-faB|<_^@2i?a$m~lOL9WJ%Lr}4 zTMlbWLG1wgGHq=AdhCTKqwz}EAieoQCr>nlm%7v``r9STgY&}e+U-Z<9jWZ!wb=|v z7|M^ya7GBHgvXXpM)pK!CL!Q2*PbB~_XN@01QOUa=QO~HaasMvAstPdWTcolWI1K5*ePmb35OxVyB5kRKB(Z`u8Iu(+djJ7C_oO?1 zwE@(8^SXLd?=|vV>!k)hv-QZmD0-9R5pud?mrrbvWVw^I)j>v)+LL45k|U-0AiDar zxj*g09-yLp@OO)$-CGgKX}VYU<#|Pt*(VD-AYO80kKq)QPcLf~J_)%5HNf>r+F%lN zG2vEpzm%3t!`RLG$R^KzE-`S(r~c+Ojy!PCT9BFf!2KFF!gg8Qz`U8vIXXQQ4TenB zda9d_wWlk$B<1Rc1Z>QDzPlP%po;;+wv{44=2m_eY6-7I)2zy8s-&2oCq zBVN6rtU(l)A`M4a=DtHhOfAK1iNR_7Y}^QlP0}R2HJDxo#C4Oy9U#fQhsL zX3c-5m0NC-n>`}oV8XmD$CCNdw#nQv47fcu8?JAQ@@Fxt9>LBVeIB}{CdCjC*+v}# zS7_u8Y4n@Sj+@EQ1BOCsCpu~Uy6{rquzQ;k3=@FfzA2rWF&>Nw2WHVO=WTUFSN{+v z?(kUy1xBArqsR2n>geX&958lEU-*Fx$KNA_3-mW+dj$Gjzk`eltP`NSf565YRd1&Q ze5D0*$SE+54%2e0B4YOPH>II-E&Moyr zX=*e}c03{Yaow&!(*NvoQL22>>zcU&&$!ATHon&w(HhRt2QQ`B_{lfQU=^=i-cmqn zKWk)q%fJop9HFcHf#~EhHR-U)LMAoH5p8_Fa}H z->GHk-!7A8Zl~|=tX~8o+h!#hiGv^|U-jtTMP_oDtzOp?g;>w}J6F%MKTu#S@U_J8 z6f&`Ub@Ja~rf|8}yJLZD-M9AqNOzpwRD&s6&`Z|a+P1^du=;|>Z z<7|=zLjubW4FO{^8ZykYrC~+6<|5h2DY&M#-nIxDCurv`{5eWg1-bf!oF^v{6#;oH z)e3`!@`fSx+(4`Cb+UmI{M&ee&2-wBh&&DO92NNvd=^DQ_t@lPk83I@Es^SfbScgU z7<#*P$BV7uMcIq{0+8k85Ua1!dlQ=G_{P?ptTtY{J!5XSO5VWL@+hKje4__VuwESd zRb~A?T0i8wvFMX2g58PIFYNfcWxA}H>rY(q15z18^PXUx=bid1%U9s~cij?3pr#zT zBS#blergcq*a0jk%a>byP?i3j*%W?^A9@kQ`4l!`?RoC@pxQU;C13z63$x!=jCLnC zjU(fJ;6kX$e!lO| z>JM*UefybQxI`HtbMKebY*LINMthaksB4W^Bzsn0hZ;@HH2C57jQN<8X%xL44eq13 ziwVHGXW9g^A@9fnUain;*BbUs_pe;Db#tG3Hf{P;^^>=Q- zB7mgetY&Mex6UUw&*&KIOn^c@(Cjo&7R<&7JTVxHE;{XfVD%)^j9Q7oK#`!I@jcCj zba$QX=yb6Da$=qOp^w!C9N(2Kp#3x6G5+l+0FY>jf?+lOF~@`8*p-~F8l*b(st694 zgBoll(rj>Cs3o*v?5@2iSv-sH;IMcda>_pHK7+8C-xQ{tK9#!*02Tj6a#X~0d}HG) zZD;j0Jv<)}9uuv`GBtw;E4j$XdUAc0!HlS6(0c#k{QUQLAq7Za*s2FN1V>3F&EZ1H zNN`_AwWzoH*2a~CYy)MS)7OvLJnpYNht4>o%e7jK`%2CQ7!Loj^E*u+qx?+dUNlhB zqlXLGkHBJrcvoLrrlsrgE1wI>##yZqL)t#~ebs3@G>^qxcoz&`wks?qJ-M{BS|_w@ z*%^5jYp!xW?gBuvLW{%(RyT;EHu83UWJ@OM*4e{0zP5`q<(%#9J?{YeppkOnxk7si zB;Ai-CyxV6?Ya0dI1;-$YP;@(%eQ(7?L>pmPvAZBz;P1>#@yM9snlCYZuG~Bz!o;- zFB;%@+wRzNV3tCO{7WY{DXv@C$TF0x5txTbcDa*;IL~PcuPUqw0d(Tn;h1xOU;UBw z?1$7Yc3tsTjb@{61r~MC5fXMm7+Q`X5|dY0yJvSbdU| zp^l(y<-6Y$JrGLxhD~`5iVG%t!~d0VG^MZAx`hl0hEGl zNtxx#$DlN#;mV^Ro89y>r1}}re`!SFGKIVX3q-|_IYvgLeLi@A*RE=>Hqw)cEXI&K z8#=RgMpfc-=6tFM+7!||TX|y&sm)2Dv^OCr1bcCt8odHUpPOBc*=}P)QRG4xh1iiY z=dn-N#!a!%1%)fORL7kncioSHnnm+#_b1))Uz22}F`HE;h+;1Efpg}GPB;{vN56sN z00H%UlvOMY%l?(F<4(NN_?vZ8ce}H6|Lh3vC z1MnP0*hUvO7|B7FHPVL2fxTcj?6+#vMU#}H!A-~;JYf!D=0(!!Rs=1c_4f}RRyvv5 zvJP}sIo}p4c}=!nQ%V;Gt9kh|QnBw!7dt#b6c}>$xb3<8s4dF^uAoj!5KX_;fSsJh z1tQ`A?m$z16E85CTGty(5;%Jv!y-3+V)sCO-7K)lZr^=epagz7RJ&}O4zyMd3^5>= zT>rVF2h~VaPd^Y!(}W*)Z&!-qq_14>-{It2tu(2D6pQ3ZK2O_&;?<@n@l;(5N|K>i z-w-dOujXVIi_P%h@i=pn50&9#A({(8Lz`d<=o^}PW!0lj(`3w6n61fZs4B@}UJYYCg_ZBn`lZeV5tYc~Iv zp#jI#DnN>}GWS|-b;J*Sq=nN^m^lSR0Z$brj9#EppYvpbt!W$-O;}9MqoW(^_5caZ zULGO)+$(!X({^6{OaH+)*u7E0jN-YE4c;f_;T~74LMfN{!sS>g&jBc`JNjO#PIZay z!Jy$}B(}9+58Nn0#LTFCh`6v#BD2KqPrU+`?3)6i;nc9E$egt{L%G4NkI)G4HZD6X zByXFh?`$)Q9_^43Zvb5*OaX+zy!^mUNnaJF(0>b~vmmsmQ{eG@DINY`LWeTlaHR;e zZ>H_BhBe#qY)6k2&Q2dBAw2a@4&#)Li>c(W6*c~={&ovhrhi>&Hn;vLS=4Ft9kX05 zLh50Jr0Y%9Dq|F4R(8m-5{6so*Z>6)TOt31<8}^^T`CB`?M*w{gC+vtfVA;xU~0r* zKkgl*>iLpmF+ka(U4goN?~sW_hAbk|TA3)7UNR?VlV3k3mcim){qu*-v8+?gsW=A( z!*ICF3n}t~h)aRM%^1HMjWZohr$>KkV5GzP05&f{*B#j#Rc|1z61#x7!q=`#nI)r$xrge~(hm;?@-s|^6|9fRCd$LcM*pxuO>Pw zAWWG*|1d)bNJw?&eSdw%UN{ZbU0>a3KeKgknScX_dop}=sKdGJH6f$F(e*QJ{V5at z5J<2P8E>a?>!m=-aUfYb&a$Pnub}Y7qp7%@ue3S1>71W4#CBcehBg@e_8*HGwm0s# zT@}tkrf*ncU=nMF`1nO@=`xsW(~aXSJkX9|k(8-|6J0^N9B18fonO9~iw;2dFGM#z zk3wI*({UEA8Zdtzfp-*HJobaqtBAg(MnYsOF%@{7a-b}Rzj!*Uhc$wWZ~y=bi~*ku zYFF>jbM41g)NDBE67&)C7koi%7kHuCB*$zMaC4GZDd|37qncMt2ouZ;Fc%}uRC`?U z_p2H8>{gR%pOeM1m20Q_Gs_Vv?1#;LK#6rsxAMRpDgTOr05*|+eiep6I)K$%{k!Yd zzk@(aC+nl0IZOnU$%( z#U3Vtn0x)fC|k4OmlBr5?oTMXFSeZ_mWxT~HT*s;@wIx_i_JR`XcEYVy`az~HUo)( zc|)rm8yIc069uknPPtGa;^V!WCG2K>cr`rCM8lX^3jA83Y@Cl9Qv`vRGF^-XP+WCq zQAxwCjsOb>dM^tZO3PMGdko+NtU2Eri_tpE%)Q4~2b!YmEq`R<3NI`JS}*{MNcq1T zrqgzq%y2cr0I^FF+tL2_IPm9^Mr&_K=?0OrQQ$SW#*1=a5vT_|UIi>`CGrkQH5#|< z`F(+WG*_SXYa0JYvyKu|D+;LgB23Pa@ef1=P1{qIG;JX-FniP?0QGapD%g8WH&fW; zMlzN&Qo8PU=XcgsALQi>7^{F$z=zZxigR4znkp78nOWHA0<@8XYoqj^d#c86ZB2eC z<4m0=!wKX2L^YyG&_Wxd@qMOT^H&tceB6U{J~j#@G# z%5+S$d*HUzzJbl6yU{$QN~a#C(nc`kb&TqUsVozOdXLY zP*&cQ$j=oh#&4=|C+&HUTaCLP=>Y_6U;KDBA*TO?8b3#l%p80^OIS-v|K&iNyxcWj zSOXy;k`9eq@N@Hi%786qE>U?VA7gn{sL>^8I7iEp=b?GD*BmcR4hTbs-_A@TyTuZa zBNT-){afwJvh7oFCtwH&2QW+59<9x5pq&pKf3Jm?0-yodr8LrKTz-52mA>CVkh+0s zMGHbrUm*zf2bG zX+YSO0?|SmpJ#4*@P3zwTorM0Oz8TptOmGJWMW>xNZ#;WOjwaR2bZkOvW9z-AJcWl zwG_DX=%93YnU(O$vuTiivAR zq0YieL^lzMrL)QTB#7W@_KOEM{2>J%YWmjD)W1dXvfhGco@0MO+uf^GvO;T zlHkj`CPOyoQW*9IBVQADu3(xpT!K^0ws3hSnw|#XGCV1K#e{XUr_6prE_~RfL1-8S zq4gtLJt=9?@G(c_+p4 zwd}G7jW|aOwN0x9Ca<=6+ES-2_V?;w__%Kx&WEj|Z`Y{C{-n4I=S`MBvaVv@f7KIQ zIFq^DPdRL&(JiV!rsz(1O95>)05yiLks}%TE>m#Ae=_PsMS&XS4tK1^n3bbBX8tOK zRY^%+)^uOE@o_rg;jLIqgPa3-Wk)c08&7$zdTTDH`$-nxR3(pr8`$YP_kM1{CTZ%^n8+O z=h7NVbExe9IxOI!2se@jI0wvY&Mm$$ivtd=Qda0U5M@w6yI{gzAZu!r zy$|r}!+%-vf-8&VOeu`H4L#ZPxo=|g$VpT~?D?+ler@p$@E6_ov=oUPMw+9T^+<^K z5C{I2>Ilndc8iZ*>>i+dS^vbx4P-`c8zDq*CWV!VOxCLVKjkZ}TO4q|o_uZw#nx`@ zYt(<#w;aXS!+C36AI{Nv486oJdcaed9lJ68Qd>6h{K@o^7NX-^Npf!wu3ALZ7hK5k zWAi*>wmm$sx{gNKpv<6$WQ{dd9?)tD&Q;Y3(TJV|h8sZXN+^_w<0}cQF<21WO z&g0G3u5gm}6aU<^SuR^Tm8HheV{XTB5H{T(NdmymZJ9TTGfrih<&#xK|9&d?0-O>Zy^g6S$#(g zCZTJ$7shh$A{=~C6>T`h)AkXF<<6p1(FNV!7P8IYQ2!1K)JeV>&_M<*AI58?dr~`# z5}jK0{U$xvlZCSeFxITPkFzw|asPDT(K#0dbs9?&4FgIhYjS`FNsgFm+7CnATG4>B zFfv!4bb~R`1!XXkm`FzOM5*XOZ%MCh*x#Vrg{n+h{H6N1&FN-rN_)#56adE~BhXA6AII7%~N=0FvMxE1htxcfEed)x}nttn=bQ!X#mqPGce~xv@?VZ_&MjQe*(9e7DfALRTvn# z2cus?X!y8XfzW!E0wJ}!AkyH`@i~ZIr0C>w*ZXK+GiEaN5pklDKw)Xo%|HhubTns( zzfkv+u*_j(6oR6fGG!iv%UL_;rkH81+^B{jwLVFV&s)I_NcTLRWQ z*>#JQ-GGptcFnr+M#!i&ae2uLQlIW?3cRx;6`j$TWFr6xrXaHKOj z2$(J$7H}jv*fAJNP3g&K8?Gt!ZwHgF65n<@;1o0rz=SN@<|r-_GO#%A%ezT)pmT)v zIDI^&O>*H9^Vx3OQZJb>@T-%BRxO<&@rrin%+#DDlQtwg4OpPL4!s z)sE^XwN?QwBS?v1u-i#=5eVK>=^=buSPBo!`Ia0;TsO18>6se`&fOvAe%NCHsp3Y* z>jLqh*G#y9Tpuf352Kla+lhhq7R2nsM~qd?A6Thxj1R}%mON_UT@x0n&*40jvcLWG zGh69u&&APgTuNh^zkO=(qg2K+Zn8ed^Lkt+4uh;V;A6J{m3aGb#47!JP4*IB{}GTJ z3T)qq!tv)(j`aoNw9h()**0kImY3C<7LmT}i__!e zX>RDrB{apM6}Bq`^?aENK&y(eW+Y}7$zkau+Wgd##ftY^f+kpnCIz8zXon|$R@1|M z9Wvaic|mh5Y%$$qEf3l#pC4ygsb`Q09IG$OJK`;-%0qh5Ck1$?)+AezeInsjl~cl& zr7$Ep59i*`T;5c&Me0%1#p6bF0nXk1;yckm+0nAA)ZBx|_Lf{uc~0uw@W85I9r3KY zcXh59O>Ad?CeCzpy$1ICtK(^!Ll5%DNH>#G=aX}~*Vl6Fo{L(>mOC2{gU#2BV=t`5 zBH^7OigO2xek83DTF4t7LZ{b9>CVs$Cm5fXVNjehVH6{i_&>C8a<8sf;;}mX$3c}} zs?s}DWSvIM*191TVK_yoTskQ3EfZyCoe=i)1vAmHOQ;^`1uB@tnq^GIZCbPg$ok%x zm+_G3S!2jBc2X?}R_AnreWQC8K*xFjOQPrn_Bswu2?Ll*P8Ww$vRzrBTXTP2*e8Yh zx#RC$lpLzU)|x0TJOAd`3o}t`C)(bQ5CGB}T51_Bk zG8%PJTQ+5vRWo6&ZtoUeYYn|IP`#v{Nk>=Z#?hw_Rc5?h5Pd&V%fJgvFo@&^rxDIu zdD9Akd?TA#-`GY)wCj2jmU@pBnZ>iD6kw^+4?ZIR5Vw}z>S#RqTBp&R3!?h`#%LeY zHfN+4i$S>`RZx_DE-ql` zBts#f#c@ZH+rO{BS2I6$2#q{5a7ziL@$b06Bgn-^mf0dVc>c!7oS^5YmO~< zk-8eiT6=7d9_-d;cZM3BNA*FDRp9T>WxQaxFboaq^sd0Fxo^cHiRlfjlqlARcto-V}8x}Upofllk1<(F>xEMqYjT`lDvt<#j|2J zzc655UTMH>h(*{b201Cp(f_Qj+>3BOVKDKPm&M|t?NW~~GtLS!f6Ql)Wzoou`dl5a ztdTQ~u=h_$<_CHFVs>HnOT0W|e~FS;26(VO2f6!v3}AZ(x0xQA>lY1-@zX|714CFW zNqPLLWN9*>$3=pY&b_s`R4}m@!(c{k^*?Cn!dx>EpP=_+Vj-bkz#QAq)|GAF6Cq-m zM6ZzC1+g{rA^+}$>9TUtqNgyR;Jfg56>Q{@wAfJGA8$K9F7IJILG<}%P@@AdwM&Y9 ztu{}vEE@)fpVzDR;EObea-Zs30H90O?Q&vk3MwP&nXTVO4|uB%d|SD*nfZ#hQWoAq9A(E8)e;Yo{|k33zzV+vqfZde}t^DKfE+DM^C&LC!wA zxd9vn`bF zrX4msU}@EINC<}Wxu$?&9_Ej+!!Zb}2MG33cs_qx%7{ZHdJj3OapQAVA1*l%culKy2D4e(Ek%s$s_{U2>>$YI>KwMT`oGYia4FRL-~ zYg?5?(Pb?O{%gIQZ;arqM*K+`-!QgW%XLD3NGj2=WaWJbmH9L!?unLMFyoJJ@-j*2)U$OU`< z5-rE@pFzo&EABI1Kj)ONuUr{3ilu|6bnP=+rNC_YqLJLObb>Ca$VYy@v6TvRqV=aGbt!FQwWW+O$I(u!2QSd@F5+c* ze453hSg*t3Qh=tkM8 zhU&7afosfjv)|TE#tQn{9{h_hEzPpurS+X(qxwT z{SOv*zYlAhirevpIo6Hb$SzOG*2t=E`FQglCr&_P%SKW<=~jp8R3v0G5JaB&Luq?M z>_mvl@nFHQfGLmrSkSh2=vFSMd>H+V`sQx1cUIlQzd4 z=~>lNVTLKkr%wO?aXj=C3}S(?4WGGwjgm0qO4|P5lwe7b{Z^~Lk^VG@Vp=wxa<^|0 z_E{Sffp8N%4Nu$pb=#<|y*__x^j2_S>g*3gt1eWcTpAi^Qg%#9MMMmLEnrqbLIN&Z zjb3}jN(nWH(+Hs9p^m3Z;l&;I_g|g~@f6H6MW>Vdtwvx*os^h0+%A+o2WNDeBLW%) zL5;*tQU?sd9)Q)9*#FFE(R6>o%)V4TfU#GanvDNIO`$Y$f~F;Khdlg{p#dog$d4x_ z!)5OEJL+A@>e`Q)%Wx~AyJdPfjCqG_Cuw|n0XB6m%n&3l0ta7zeoofR`G(yuE2F|^ zYYBAz_eyuBnkOgz;j;1`+B9Ld1YfxIb;0KWdj zvh{>iYEwCks)U#GOAJe@|6_%U;?r5{G;H7C9l(r1RlsCqSm%D~YRxrjgGo(_6#|OvuAOM3}-@>`O%jge%04@5vKdt#*j0{q<3B6kz;GLW$E4yZGq>@AI z`Ltm=4xqUBGJ3Oun|!v0^*LdY!dyHpGoW`KC%P2ay!!q{hCW3(W%u9uSkrh zh&xP~{0)0vv0<@&;Zc=Ls;{9!+3>9`{*wZ9$X2}+atb@!oI2TbX}E&j2E4)qUQ+`= z5-R3Dwwxr7lsp(2yf!4YnHD$^OtkID6Qvh5cTo258+-=_TVkU1fi!lz-^G1HC#Z#C zsz*9b5J zq}uU|JYC-@3J-`Y*)APf`xFn?LwR2k&IR1{7|VRbN1A8An#Kml%^>7X0MM73G9qN# zLNKzPT~RFR*~-l)iQ2CyW;*Z$8yI;YCcv&NSL%PY!z*T;?R+c!@>p+AptiWX)jcQ0 zD+B6EGOrf)ndIS5VRR+aH`@56x0Cb|ZvFg)Oaab!nuv?31#KR{d5>U>7nqB1_-lE_@4*=oq`yE*Y-#WvLu`;@AbWnb?G7@5ZW5ZHQ7>(y&QtJ%2-%Rh*^f#6_h98{%x@qYCOsUI5&Uu(la6ZMkfs z6XP-GN2e(AQBsi=Woydas|c=*BQ92>AV0r@1}!G*9i9Xp#*0IfXJiv1qye+%JTiHv zAU9FWcA=?TwCfQ&iGb8vIP?=o(~`-< z;rYU^uWz2k*r5Y^#p1wl*~#zvUX6mLs}>u-WEbP~*C|;humM2M_}jC5fo;?>wu#xK z5qlWTQAYytCM5b}w0(eG%Pk#`_5uK0*G@udxiEn-Huvy-&{AwmkNJsgyM{rxs%CkX zm6P}i(}v8e6*u%xqW<4wsvYt1D+41D+as9Y?9;iN56%{~z=sZsCJQ+aLw0KmQ?!RB z5X_=80(gSCl*k_^VP5$bmLV(Z4#Dh0s{bub7DsCCr{5YuS&3Y?-=T^UGRj2&-!{r*1{_EX8+}y`tromtvEu30ofA9Q#fj%d9cB9dI#*FW8 zcD)+n>$9v594bAvazX~*PK$WRFv$|2Jc}#x(bNEJ$9iHgv&_>gaY)uMM1^Ov{FPH|G)t5AsUJVMNy_ z??=5PpWl~No^Fx<6LHiv=o9r-Qadx?JeG_{Zuf@rL}rpo$J@12veVm*J{4^7A=S z>Btw1sg9scV#VO=RID{dzrx$r+OR22;+0&(>#|Jx_J+oSOe2dSUg2!oofMR7loz#+vGCu9a+;w0R z<#IN^K?PjNSvJ5SS%Ue2os20Edx0xUKl&}hsKu~iR&N^&fut$;8Uja9fiB8nlTf^x zR?BLDyjodKUM zYG2B~-ZyJ_q$>lA4*b2r=Z6Tx=lA;<_P2IEbXfsEa^8Ihrl%t$L_z z>L^5g%OtL3$PcpnDWn*5?I1i|U?PhHBTJtI&4;FC7jm0vRyQt%BGG9m72#Vhk2Lw- z0alBv<4))}Mn-1;k|cVC16bfD&B8_N68sSGEX|qhvg5G^EbmKG#j!#9(`*f2bQ zHnak~Yugnu&U_-zpj|a?8~YOdOZLCMa*!LEwchpVwQaRmab0(><!=4OUItunOpTM!Ctke*2b4YwTRATRee%; zm9&B$;QZBos|WZw}Y7F>2)lv{e_X(Lj8eOUn^jk;$T=An=d?D;XWGtT^|0 zzG#G$xksl4znU>k5%Xz#O+<8;8~+lra>j)hO8x6p01c1F$W{3>L0R~nZalAxK4@@Z zNy$@`e23}yM@s06f$u!`s7a=y|A23>%0muCq5^_26yf*192<6+kP`G!1)309S^2-a z@~PPvd+zi;{@3nW4k`9fM*g4l1`08iHvJeO>p9R6=UOk2K{0#=OHLve=%50A031{W7fl*8i4{M>-n^9+LcBR74-{88pUhv)i{+}JY^M53_rj=%S6 z-R9cQc(KzQ(-95BD`t#^1hIpb=i( zK>4aoy6K#-ZYKz2dmxCWA9F&3(3t0(rNKp0a~~WbP&#oDq^n+=DnH2~Sv6#bRosXo z<@HQiLqrA(JF`bb5K{z#&|k5u0740z*lH9#kY#m7u2ICfRIMgJ?K0vhY;|c1q!Q+k zgZmdQib!I|zuW*h4mqFzWRl%Q9%5SGX!6Lp*L1xate6yXU*;xdX?yp@su|TU=tQ;h zNpyAA>-@!QM1D5jkk2{> zV^VZNSW`y$p?Hh^59cbX82HaH<2QL9l&#>VIY%s`EzE4gIVxY1da94~+Lc~m5ooeR zr5}ed(mE%1XWC;ZOhHbN>LmLQ^R~31nMd&1g30ZqI|(_goP8|&+!RE1DuB@%f%2pj z*-~2AzNj#rqwW{$115`_=yViHT5zj@9zri3R}{MFWtB+>-lMGllxnLp|CJ3{3Wsj? z#lFHg)_rcBfGAjUggrRHf71>pwRieMq9U-@i>WP?>4AQb+)yz)&tA8U2iup{DNc^z z&jxnl_a`vsToO1OU0A*l`4idlv%U7Sq&b|0hW%%z*FplNo3EWa zxs?9;qO{4)SZzgjNUu|6R@Ls9|Lg`9!Qri{E(3q!Ko32$ z-)A|<0Awyiaph0Y3U52DPkhJ$)OuR0L-hG=5515OO^|z+(k%H?X_RjK=BBDuWVOW4 z4@&d6;HFfNo%ezg-WV=$n9&jP;a+}9g2skgJF9;_rrt3p$E#M?MkGrm~UtcL?6Qb9l7Eh?Cn2f5JMu0J3FE^ zv879S9R=2JB*HT3B78jW9B;NZ7#Zm{nmbol1bKUg)=kd)1xufR%ntGN494<#pEvI zDerfPJQ$Vw&)H#K8GqQiXvrxRY&;#5Vy7<&S_8nfBHzt4Rezi$<}ANv)N zeBt;b)!guAv#K3o3QU3O(a?+nz~eQ_0bMj%GY}(R*O6pGRSe&aa}9bmRa4~-jVES0 z(>`cUv4}cX64y{nyaMw*y_@fll96m2A&)e!oP9I|pE6r0vr!6HU!8}x0v+hA+2@6@ zh- zn0jf&(BjoNa-%uS9`cxNo-&DE>(5h{Q8t$fb!c_kSaR}_&Ej}IA-u`Rp-W;s9qZHLX#1v7@nf7>G(v#aVSIJJ|K}H}fO;tdk*w*+gsQ9jHl9!QMhh84!+y) zgdFL)$Ht`SzcAWMM+!kMayWlK5lr7JV%>ZCU=LGZm>jG4z}!+7V!Xpi(^JX(K6Gx>uJMOgBnBv$@37%}Ke$lHXr~?gDR$p;7pNWf zis&g(#{L^WbUBlS=E^2>K5j;UQx;n^;6V%GXjDBCiN+;H?qucj7lp_qWPD?8vvIMW zh6NYb!DTo$kT1rkh))5!_Ot>eA_j=ID8W)AUGmmrD8M=ch%7A_%ANj0R~+AC_Lj{u z3p&qL6O(wU)X)8mc*zmc>a9VI*RGsXw{}}ARbg&NC3zj_=m$Kt)%a(T?t&77fpXgb zm90tv&mx5XV7bc7J21ItmqK!dz}N(bfkK4~Lejpg-0N}g8vPRp$r-jrTce6a><60H z*IL9D_r)SK&BS{5*c#nXBSR}!wm!cHvu(#@iCNFt1$3aOUo=qX2rfUu#3=oh25-k# z$i9mvZj2nNXY^x;)&U;YqNnWg<~Rj>frqlL0`+Lu?X3&Mt5PnO7E(cl?-3mQ5SZ_h zojD0+9z|V}ky@w&f`Ch=R~it)P{m6hc9ktQp}Zku9I|IVsw79g-~#}FZTU~^j4A}n zmxL^xzT9Bw_0aZp3oFTHq;5fV)HKdu#Yz~Ol=uW3!wgqz?z+P zMf~JI?0f`B5g54p=exUJOtO=mz~SaLY4c5!-@yCNKWk`5cTMO zMWSCD(h4Nz82eI*S$yntSgkG&trhe=U|+dxbs$n?4YUq zh@~KpUg!aIKFro6eWIErbTd7fBKW?NqtPkD>=^x|Ot z@+t_Z5xLCdB?d%MMkB(I0z3#C8=dV^>oC_U8=c}o&$e6Z)_!6~)_?(B!_E@P?Jwv6mw~(L=YpFGgm2Wavy9K^-DSNv(~Wcpu60z|X|aTw`M+ZJZMv zIZPdE@^VR0(Y-;*1<^htbM62$ZD(g8orOfYU=>!~d1locZE#IQ!M#k1&@$%$!C#(U9ESuP(3W+lz%kX(%W%z*~` z6gqsMqH|pX)}@my7Oy+@>Tm86#FyvfUKM!s$H@)OB`fv=2=Dc^e!?QXoY)%65UiAz zQQml|g?sE>6Yjo72oVsVRJoHGD_7)7%7CJJ;tD|@II2&h0p*X(oGS{{=D)UOKXCUc zfH=0C{iSsEFT*blVA*X5k8sa3N}3kKF%%gfQy+d0q{=C>(e2fYCbaSDjOPs%6v!iP~NJ!$%#wm*23m8p5YvNp2g`8IDD0u~V09&gTC6Gcs=Rpd_nc zS1W>o(V2BQv;#El;p?C{B)z$FX~lBtxsM8ty!*%Ix^e zBMIf>?^Db`v+65E3m4KVM&Ylj0t0k58}k1&tS%h4h^4b|(nH0o_ABq_+{sE-x5=MT zZbN0+TyzW>ga_U#HFWI0ilvn`!zBA0rA}a$=@C*y)#Oktp0WkM%gs!xyqprJiMYUN z|Ie-a6`19+JMnbv;8+x|_yw=6P=}h~_>_@+l;fx$u!r1>ZY09a%%gbRC%mj4%ubV<@i4&h}iRn^uncT8e6N7tgg$-z%fW zDLJM8Ne5ibVH7)wg~7rh{qoYMY36tM~zz-6wnF)lJdFLGGFF>+eRH?V^c(8)_G z;)h_lSFSpM1myOY82LM9`?$^#9#PYVNHgYdjdR~wagisi7duPYF^aZ?)v%1Ggp#{w zs0(WszZEkpul!YJdrtr>f9d8m)$5CEE6++LOmgTX^zn*3E$JfWbYLnpTemm+c1|gX zgv1wb=Wvt(O`$if&slQ#(Fjkdbny?I+yBcA%NOk<5xkpqiZ<;qO`k9sDWz{ zR@2plj!!9u^2TN9ekzkBvleG>uqdWCBmB7=^eel2XwiB6MiaY}K!(MQ0i*%?APADT z(5$#85Y4a+u*^k!|LYYOk1;GM6(~}U2|%u-ihJDqgS-bsLqmtprD8m7PN_0NiAJ+y zJTtUOQc=S$mg2@8T+%L%+z~iXH)pXnpeL zGUCo<;D@1kt>e4udMhVtFZ!hp~8TsblvfN>2|!Zi;nE(vC({%OHR!1axyylh7(#;?zSA5UhC)W zdr>xMwu&v!0j5V^h*gj9AM0$^tha8*NH8lNx6Yqh?d)m<0wbPO$30pf?|=Md)gJUj zkdX%#3mBj!WN!j>6NWv;u)F*P#iY5iZte7{iP+P86I!rgQx9m9c?!v<`DpKd!HVkm2Y$GPTeQ?+R-RS zT?3pAt?L*c)h4n8N0cc$LHU5RgFWdD*wH72z&-Z$GQQ595i)h)f-p9FBycu!HUIFB z%`6T>Mh*VkqfVz){Fr?NEa82ONQic5BJxEyoM^vZkG%E}!}@x{QZI8~DksILab6Il z;ikJlLFF*%qd!|ULtKjYZsK&gqPsuKAa8DY{NLk%daum77^;aiSf9CFTt!<&5!_tp z>%Gx(i&HJJ+7%{?;%|G4Wxv<=lscdvf6-mGF8 zxD9|F8X_Q$pol}OMzGp`2)Q-V_C*%R_umJ*H&BZ%dyxfK&BZ34UeyU(1KK{F!nyF{ zR+4B_@=g(2i+V_iy--g(8XfD>29d3UN;B6h91?Dx5B~brke;MSkAe=>#_y_5NQm~9 zl~5Qzt8`~{`69T&xCKR8(nxfudgPQ)@ir1NdNy+?chP(V97J)mvmhpszCg^COyq`; zut&vxdK*(_j@K3OHhDtC;$$D&mJ7Ww6K0V&%77ro>#9l5)$!#Ah<|e_VAWCpq5BIT z4JZJdUT+Ftb7-BNn;IA(tw}fO(43WY>$L2$dsD=@+V0KKkdv}TIJ5=*T*kGA(bT-< z07ThlcrPJ6|7Ta@KcqI;FQ-8J5kH+YYqZ0B%Ym==MvW;$lopf@N&t1moNBg3!z0|3 zQY>9pH1FjaZY>^>*uxB*BSW|E4|0=_K-=a1;#pSb^F{zQ2ka%VO|)dOute(}fh^Su zUCKcnUoZ+h{Gh2|_mt09k&>7XzdkSaF~_F$-}iEEU+Y1c3v2vL9R*TNeX3>>fHTGR z26V$tsAT!s8*&NIC7y^&AM+_qi`axd0x_Y2t-zTH;$EvzAfM^M-4v?o;VufP9@T{p zfjc4P4*GAl?&%Wl5qoaIQ;SR~7GC$z2V!AQLxdQcY3S<~kjBs;U5j7xplcEI$dO>Q z7*EJL32(Zl_kJOl2cizh{VP>23mD5>-HYCeUKGtZmM&dEz?eP%VupPSpt}9w+ORCI>>_w z7Dqe)gOzTj_q2M>@E5Ca(V*mRz#_=!!vejB`d*~=mMiKei|l=exB}9=Q`e{8{Ks_? z(+DgZV_w41gE3UlXlyr zoI0ADz)B?0=ibAlr-TSxrQeDA)*%U1RUH8_cFx)Hjgw+mHrSaOo}=wfp~Gc`v49Fz zbsI#DJ>E5DOH?lOn|BYq4=H%lrlqRX(Rs3;tXrkkef{b zM3womxVOJ2=Nopb!(NRt>{>M@60;+TM-pb5WEU&4DAE_6onY0`6n9IIAE=5Dr?DI} zcUKiv(eBv>!R_7RW~jm+tu`DqO^?3Ef)F@H9(pCbv8qz0_FmtmzwU&FI(|4T{f40B zjt&yT)9aU(o*s~;>9-?oxsy*zL(2}U;nzm`!Z{6cZ^!A@B9}G#m-*Ct`+^MgvKpsB ziYYy1jl(D4TEDCPZr8Yf&6N|+;1ZS`ntgLA@mka|FHZu$)GJM5%4jjxLQmh8Yy`xO z=CbSq4w@jwh&ZmpSw`O7tFChLtM8AHhsu05OQD2&_UMyRid2WfB_bGpp^@F;5)uaF zq%Q6o&rHTXR{uR~eIXLx|Gqi5;_^(K1yR5QLfx552 z(l@EgnhIoaPt(2a?u=nR+j-4bH%Gi(**MYVvGu<=S8Fq&1j4)itX0Ws#YWcnX^8qC za;_+|_!f_Y>%4@%;~h4mtNm*erb^{K0XQkpo%Bi)oPJ!s5wJkGqqO4~2NzGwxAtCt zq1qJ-Qo>e{CD|7OPh7gU=J%JLeaf-;R5=A-@C*?2(1h` z4hmoG@V96{uB;;h|S;A~L^DZ~PE1d0ICS6p>sfeH|Ga(+>@ zvU+#Co)@p6VeHx|>a*E*!W1EB+dysNf8JY!td?81Su4BJ#*gZcFb)Y|~6%DjN|h(;7lLDJ!bdRn6GNp)V1MQDOV!B-{d5b#YvP zg#;MJikUrXBv3x@#SL#ROAkJj)bo3H6GE*W`4-q}QjFb7jQzwSvy5oapwEFth-JMf z+kexJCWr6mgmJLe;CvV}pS7SyHivA|6^tXM4WW`Rq+KFG$=DEvzA&=bltDUHxOea5 z7FpRz{?!$wO;844Dg{fyV8quAh{?z8WNCmXcnfD^RVo`yM!B1)8l`M`Evs!LLPQKJ zt|Yj&Zl`YP>0w&QjIT;aE(`@I%96Bg*RI(M$SY}?OvmIjmS68a3F6a1619F^v)u!H zP?hb5rCB*dFX{S-XbL#?Q6Y#-o zZCC6gXZ|sPN=Kn0YtD0jQ{~EsVL+T1&j2smynX^cyGY#7iqBxq9az5B|9PuiZ^=#K zZ|H$T{U=6qns|(Ujt3+hOk~6=LmBk3**xym%)(_qHn4k9#aL9AE(&OG!9NK_OS&d` z(S(hGdSQK|o*RUA!Y{0=WE_OhD`U2F(2^T4zBrnh0>AAcDO|fd4uDNRV*%_Do=yB` z7UDT#$F@r#0>IRRQf@Cata(qjQ~#pf*+FbCLQ8>hHMC1tS?k&ouX-FF9xAws*HE>Jp4RaJc0s zU2}~Rbk2U;JyLjTSQXr!3kK7>!s^5ao@_{FIV+3oJJaifkY{H(KCq+7&}LAy3n0Yf z>7K*nFavA%HYFaQ+$@;oJEvqxMyVAZTh?mPq|38RQ$9ECz3?^eD3GFIl}YXq=j^OT zqrFn@Qam(d+k|wcR;%b&LIcHGC{b4}-)0KzgFgllYXvPLhTaIZ0ZF7^I6piH-K=3I z^I1YzfeN$DoQpKD@VP)Zy71Lj7BKLq$M_3j_(^lL)|Cg1KYAhYQ4LFP0buc-0sQG| z4=L5j9VkVk3+iszLP}hJ?o=abL`r}#I_Y=`_V*HxsCI=5_Z&sQaoImC7==U)&!ZFX zr%VE4o|yteS%U24sV>k*kH&{^J<`a+MEJsN1b|VFKBf{(C^>o{uS%?kK$MPEd=atQX3fWLklgHeJg&w_Nmr+U#3s5dWPW|}1Z z`nhEZ?TF+M!psPw_Y+|nI{)(KVTZQ3mwB9)thb=QPY?9jY~)mOlyykhWB4 zLW;LKPydZ6x1+8q2;>nI$2Y%}pj!fxVTIY@bG3<-nI}7)J!ZG{aR( zy#}^uC8&>tB^s1CgU3THd&10~Z6x?UU{G_!)`$&DvOO#V2$8^LHC>>6BsD8um~ag} z)3iA8$NGJ3Ltwf3i{--v?$-xp#WYZz>zqYBVE#bDu5UVZchQ2x`Bdj} zX3%@0<0FKK9XP9Cly!ZJgeP+j7a{~98gQe&0H0>AYua@tZ6qNp>`O5_uO~oCBx?*^|Sxz^Jsmz)tx9mTE|}I zbm|MW#$qhba>#;S05-`NXGc%>5^V;Kv>OrG+4e-UpZo<$ghn1vNt}|T=qCWhF*`?Q z9JU}LTU4hJPl408nmmzY;tVTIG!(-&z@#MIL6NDz)O|%oOm>!Dl4=7KII-b~%zk`` zcu;5Z)_-X_&e`WmSCt2%q<9coquWi7_6wjUnG7s0#!>6+R)FKzAfD#?0EXe%(ESNU z?L87IVvC{-3oR=uiG_fTTBgC+lP;PEp&}FP4}on8QCwZ|WB-m~<6D7wd@y|;-^Km< zo&aPxXGL3xgdW<6&r?{@`lt_+<2CcJRgf6LKmF^PMIehEeniF&xKY{2aR>ywY~`gV zONYC{M!6$iTM!z%L#4MSnI)@Z=7p2~LV_xBwL#c8&(2?b{?{%2c@d>mgj z9NfpErOI<>{)^=KX;U9HP-nFB(OXk-BrB2xHAr;Wz|rl=d0VJsukWrpvSBBfpu{LO z3wj6D|^tNQRV!O!Y;zLk6*>)&FW^?#AoqfL(nu?Ak5Rb>2NS;I}mC}5| z24q^P=sf+Nm84BuOg1@YEJD<5^Tk6#^T33)PfrttMT zp)Y{+u~YA@lwg8bP+o^Um>zTPwP%)vH%r+lXMhI>bus?nCU>yk`JTmL-Y3``F3k7W zKy3s>grG4AOo{*g`eCi!Xr~gU4B(kwN{L_^TqlL@2^&9qUO+AqW{nTL7=G<=2Zgoh za3|v6ZDW7#)Q75IbKkwf4h@EU8v6dEQ(s*q0fMfapq`|@Q!EdO$<+$Q!BXK4IoEdp zfwUz*fI_(j^)6rU8O7!RrkY}ctQTgL9*}x2<(wO9LQMC6`uB>Kak{9#m_hj_7JWP1 z7VX3KgeR(c6gF@6&@{-{cWUE%L{-7pqX{jfeb-dA*ID&=;Y#))U0WHYAQ^#jy8ZV9 z2m2$T4zfuzb!E5K=2_W8ZZo5&#;`?=jyF-f@Yw9Yj&k(BG|7frjDzlZ zb*7#sq4#|LC`^UqBj z_BG0a?#NzSz0gobdp;26-lRFOgNjOGzc#>bG53WS-8c^(>571cHdnewX*M-~HRts2 zK5n#Hpt1$DNeL4O1}>onfu0&~2No`Iv!wf|LqxQ9&}ih|MF)76*be#VL$&>ihjgG@ zBO>~@CKN+1@RC^{T-Vz#P4|M;UB;kj6x7BXZ52T^R>QwHs@yO`4tdb0es#Jd($H^f zh}D0_aH!0Lc|FE5hm6OylI^Ji^%w(PE|ry9j5Vq!NHLyy(D^PGg=zEYo&Q&{%Q7JL zyGny+($8AL>i+u;$CVH<+HQlaO6KpQKqDgN9(KF$m-`>E|H{CV`qsXe2w{@>+Ik%u z0_^*g;MWHDO`(Qy2{bYlBgfr0(jy43yAL)nC{W27ttL@Pjd0MjF}e!90ifVgYBp6Lz7W=D2-m9rRT6XGpyq1Hw-P_AV}TKL0JG#jT_= zi%(_y`Ym|t@4$1m7i4D#U~-XCh8}IeXfTZ^b7piW!Ej?D84xy0R6pgo;c5KgH6s10{=l+o;w3rt$0J<8C64sipYi-7B4 z(Hwm&E7Vt>@CkcufB;B6>$)3dTbFVTeJV?g{^thimEDm)7Q78j-CmPCe=_PK6vUN7gAMA0$G5 zw!pfic)W<&clry8@PeFA4tsaWx9*W(OZI0M_U-VuDhrv$8Bp;}*7n-1T1DE?XFLkyN0QkD;*xUHR(gcF7j&I`Z>>=Wv^``77{5z`axsVI@taNtIlUG8#&H^r3aHOCtBBbvCOu$&adyT10uf*oIdRi;a#~7{W zAm%REfGB>p8jWr z4+B_#DQHbS5?;W=u`i%>bh)firn4`IC}-5-9^cChw9|ulPt;c-^O%-o>=(&$a`e?+ z7%4VsWGdz{r3z;9mmjxtumiE(;7ifrv>wP?dRwJa>?JU@!jL77L{lFVQ*@rDf-jCa zC_4J|e`Eo=BQY-&@_}o7K*KN}?dqBHGgE;G_JU=$E?F1OqJK&jy4Ukw*!V=x`$5sv zWso0Q71njG^+!+5S8KHqCO5?Rm#cIj2gDQ=iEQ3L;og>tM~<&UB!;iyq#}bzlS=^W zKlF-dD?~7)xo-OXbB)2n`DI~jf<;jhhSPD`a<8Ofd%BH^{CHM8;U7;U zzTyXO`}Gs}su)c_W4h+wRU%nXaC*%Qd>!owATN(+Zl*ghxJHPE0@t+;tL1@lUK`i# zgKwi!s=a%Vh!{6m*XHf>d19;3!@8*z;nZE!^9kMn6n^&{jg~jyW7m@`l2Ep%keCcm z_^FHRA;8WPao7gTULl>1O6859GK6OrTAh(+*zU<{{x=4)ygl!*A2jf)dFOUe$~>Cx zGlBP;R`x~uWDi`Kbd}!g*DF-aA#U}lHn_-W_bAJ2Rv5uR+M70Tbc=2%si=nu`pu)?V?+G1_OHTo)|@OQm_mPvy_>nWkl;Sn)O>@WnajMbAn z`Yw2i7~V+g1oLZ~A6MHTFIkO1mIHl6TmLnJ?J}=U(QD1Z>C^n$+L@j2d*n9+YU%NS zZRM@9VPw}bED7o__%e3Ra1s3eJ`XdX!fx)|1fJQ&;T*+d>*@7ia=c(n7>g~VhSK1S zO2l4%=%xqUO@|ks=fT0FPVf@DVa#4Qe|muD78LARUuK6{5W^}dT00GgW}8Z+-wn^r zc4IA^hVLdu^gu8I%_d+B0fDg8S+~JEtd*vA7m0qnUa?a3qGN5Q0MhsGeoN;vii1}s zkNMk_hLr@bf+C7cfRllQeAE#ZiaR;xi4Ni%g%X03CAy7mRvXXK3)fySJ~w`UFsv#N zUS@{>o%_@-)n_hWzzs8PeKt?**}^5Yu=OZ4f?`X8@>M6tj@U4JUU1>WrK7$eKIlVGuCps3+pK zO9H3DnGucJo&>eUkZ-ufVLiUL5E1iY)R4E8VC3G1}>&U-h?lb=pk)ZMajs^^e z7oSEx9^z*PaL`54O3-fnF{gk$L(dKF__o z<7DWPFXs2P@5t70w({UA%_1Hy2&j!+=-aI` zrgw&KN?qHE(x+DD<+^o{(;L9WKq>EWxf1Dk()%R zK;tRW#0v*k_E20P7&$XJf5=_zvXXy&<(rZ9R87d1?gQ@lh#>HBV9sihv;*3ED9ef> z*5@*Sc1RYl zf5$&}dtdwsI|Go%XsK0_LcU15Ea1U|`KZ72Hl+(B3hy^8G4_{+nyY>lEZGaB_-%Z0 z4qY~ZMnbK4g->4?8We;%qWQ9FJgJWUb!YBvc(I;vKhLoRd3o?iOte=QG4;;4`shm> z;Bqh-+~w8!smAc~AQc_|E8a}?-*P?1;pY)|6!MIMRTmBuf>}D_1XhA=K7EU!srXo( zsCJZ4s2JeB5|g{ON9Qq==kM0~s&>n)vsD~{DSy+QcwZ6PF-$Ry#NjUcQZja zT!_r_8+AwJLQ(AXRAqGN;K~U<9V%k~8#6l0xU?tV$?((6)N|%oCWWFKlT{p7@&y!w zD^L5?SnqClar7^2y_(B6NF)Cw+=_MsDq|9>jDqFJzpI4+_h~9kxU=5>b((AU_ik+G z_m?TzI`RY%%y5b!17Ut#MQ`bY3TE({o~lMc=9990eb+gCHc%|W+IDCyr(Ib9IPBK4 zYI*>NQJNDa9ocVXdu0&Er4EtC+)6k1^e=WjS6iu(=u#!h1hRdlzSiW$sF<&*@6@_kGfy4cGh>F0D}Y4p=Jfy6fJ`6X!v zSnGkJ{L%Uh!ULyjj}0Z%XaZ0{nxRAo6v$}uPxSjb4T zLI)li?Lx0F*|n%CosH$+#dP}OWg3GI@g>!V{|F;#i!4!;CI{>xhA(l?P+4Mp-UVB# zU82ybDVo>}9#K6#`hXTV!a8TiX!cHOan4v;(*3me8 zz(@8^xc=0fxev&^`LrR0S-gR7iep2~x~F#Lj}Y}3Ve&MkfibQd71T3R0!(a@1W`$E zU`OyhazgEt!`&Hb>lA<3ykp=jei;fAt#cH1VKff0rmH1i!HK;guJCaVmG$Y9t)XG6 zC$%NDMy^@_gunIS8Fq?{KGHO5-CYP-@&g5GW1)gVsbpLJaK4mo22?Hv z1J^!_&QJ5SO}T(~D%2{n7I<^4&FH<^lgprFy4Peh%p!*>u*bDmG`>nVq7m|vrI2nY zgAZN6ZaY0<}s*}1(Jbkv01~NCU6AeHa%p?fo@~E(G(A>?&bxJv&qNd^Azwb zF#JP+%93S{(fI&msf0O3MX~vzQq)x(w+$(NH3|$O3TMT>_nRRx*kX&uhf@odM}@qY z(M$7(Zpd~VPO&YM`eqD4;m{|d?HqzO7GjD|6==x0f^CpcI03ORZJziO;6&i^f=Y^l z9RvgqMcS(|5@Rv0k6?7qg;@)i!i;#7tlbgmj)9%RY!WOEo8g6c4U+JwWvHsk#AqVP zH!X=qkuR=gS(&&tAl>XJRes>$@m-oC9Ge>nnHf6X`C3b=O{8AE znk?}5NJhYU<-mTt5EhoQNisF~{8g7>+@9E?ueLw$>UN}V(M!{#Hq$Yh(%ZcSL%Q|! z`GrRa!z&mG@u(8S+Ob8%E;w&PRp0ssQL%nmKvza=PApMH({-o`Vmsy8TGT;OOuh9&VCE`S+gbGn~UDhS^keM7@Z#8 zzpjx5df8$sfVzg%{0c@i+~UxuMA*1UF1t5I<3gb{=<%89&*68IQ>Ys#2QU!{R6;7l zUbM3bH;lp9T~?$s_4WCGz#=AY?Sgh8M*V3BceEp`Ho1G{Td-7gkQ*#_e$qJa*#-1O`~0{$dP)9{ZY{c{smaGy zbsE8&$6C*Nd|`D$32v^Azv8ZB)%FJ2D<6)&5`}>P&3+mfPV!5#>b85->|1KZDLg2y67J>-q;u@C5F!#_+K z=z#3Un7ER*>W-`h)U-A&$-M?NXI%cK87m@m;0~_qO?&U&$sq2TfJ(=MOJVD*nM1k6 zB0n5G4^!xyq>~+ZJvg6!ZhKUrM6fJ4Wf}`a)nC{K5l7Dvi>5IL?OMZ}i<>W3UeZ<3 zzS!CE^mlR0zx$T<;9BtC+bOM1;a&*N2RW>9XdMOEyJ=?0jHRBniZ(0VLoX2 zL-&skriXBHmT_@aJnLm93AlV))Q|&kU5n6>?+Lp~xzu5PRmqICO zxI0gRIqJoutwx~e2Um~ao4%}f^IS#N<;`mA?1kgoq=Q9z_8+Bh2g!ZW)A3SYB{%X0 zr0A!7@F!`H=cb?U!8^U*oeajOVn~!f<)3HP!->;~s7$~+zQvU3JSUkL*8x2GcI-IM z;u}0t@1$glxFKzcxg-?5aX8mP_n+e@ClGq^E(6Vp zHEti{G@_-L`TM|{Q1j$@DYfLmUzqcuLNZP)5tVUkg>{dL7H3A*gAoK(OqDPp^4kX( zxRwoR27b!2aT5w8+I^QWBUp7EKc|ZpEflHO2&Nq3b>&4Sek9L&`#lW^pcx*AX`2fx z3Tahr-bC1EnpyxizFBZ+3vcx41-j5|<`EvXlJuJ!Nz{dHvrxP+tS{#Fv2b#?3;1T1 zEIo`U7&(x|8?u`iX?gp8ww=AM9Yrc$aR~r5YzkR3M?Md*K)OcI-qI5-(T&qn$@T_z z(YtiPSS6&!17X*?14Z>mE?WAgRHKOMJ}at$SY^HFeBz;KluTZ%ySU=@JFBOvO zs74!<>al3%-leIlS_dyP23EWQm00>uPPUccuBzc*E z<9uVytyB5G&Pp+=WTI-!?j^3@P+kfZB%`7VL=xfv#&F=2C9W;I&P87TgJDwX;r~+b zePWxefAq}n;CY#w*;foCY(T{{9cj;t^0R5-#R`V%jO~}1a=I~wz}KA=kvpRMMD;4b zLBO&nx&#EUx!P)M?O?^qc!@I-`U2Z^h|?`~+G@!!N*sLe_Q}7h`y)Y&K@Xq_zG%7- zK1#k@feRGp0hau7{NQ3dg{oB*rWwdcdeOxt$436Rrv=D}nd1{WT5H=8F(J|G89XPN zM@yFQ%I=EbEFFmnXw4f`ZWb+!xJXH{B-^cW@RqE$#(I|-yu_KBC{@FSm}_210AKay zGA|of9o??uw<0S&+{L+x4|NT1A?r&2R`qK4v3A?Fl7iP^PWToZT*gEGwN3z@Zwi^a zUXT3rN$m%JMlEvtoC$;}3JbnFN*9MWDDT}7hvd*{*VjpiH%FFAR&V3vMb@udg`M>h zXeT5n{@BHNvfJ5wIEpbt__<&-$KBT!ObJbCpc8lYf&%-(j@q$-s zk?cFWEQASV9mQXsxdsr-b3H1X5Y7GzFusJt&E2Rzfl)^pRXj#}Jy%VUU>JPrUd5016iYpK)qU z|A*D;PsT(xZT(6@Un?IUI1kL<_YoDku7W$mnJ~qX) zKO36H0X+D>#0KaYO&LF+x@kFF2S;J9yCFn1oU<&95AqxqaYL~b)DEW@;LBM0juvec z>yk}6V3`Pfw4f7U9*XnUKv?)WzENWFYv zuJR@vp{_mTeq>-xPxDPkF1|~VApIMno$F-?`^ailCwgR7DV4t@-PIi)*VHtX3-B3D z7d`~rWJzpS=_khO7p)>uk_@Mamhk}TjvGQ9g?py-Xn4u zh6t-~l`5I|Lpds4B(;@+=4dDTJ8U!^z79|V=_#tXc%k|-4C&U*fW>4`zRDT^Q2{N%E!}KhfkfvV} z9%vP}i4*v~>W3*GGvL!BTNX6(8Ulr7x9e}$|3GB3=pigx>~B=Lb1> z6a&o#08RZBFnle=H|R06pbZY}i$4`zZpNOHZSlWPQ2&98wAGJXAvIM@>zZlch#)d>u8+fSD+aYU%ZD$p*sgg#ocj!Z_ZcO;hyqTDmSNID=@ zaEpW1p3Oh(i4k0ajf9HU(40>AOPL*8DJF~4uZPTo5C7n-RxH4;&dv=z0L^!z4l7`#26ZU*WjJ(i(AhcsNqY9w?(X(>$s^M z3tHLZ>_aQ%CqH@%?e6$Y-jElT8?$BbldC>)OdJ+BJt3JBb4Lae_X$O0GN8bR519jsVaHdUlcZU%knIV#K7>kEVnx|Qbx5rf-XP*02<#X-zt}<2Uy+-1zLrZe5p^t zm2ZS$XHAW^Nd?8v9861R>zA$>fq{USO2nn;V7_wsoa-cXSOdP3Jb?x0A7@X^yu*b8 z_$>YOvlq3i0hRR4c}8eaVsUqmQ1;S9m~mgYEWUU^3p5FyOsD}bS^pLa>(T5Pt}uFl&M)u6YE>co zFCD85Rl2S|B0OB)PaXl7^o~4cc4xnQ0#i~K2Dh3G(xC^V##NScwQ}Jmf^N9YBp-1#v9#Ald7E3{Bsvk8I0y5FER(b^aFhQ48pc2p@06Ryt?sg49G)^ z&%i7*>*L5-XLLnb#%~qZB&hI%%)e_2uXKOisS{?&jG}gmsR`V&x-#e*kopFwZ5ofu zzr}O3_MXATZ|5a?rR%%(Ef*S}8%9*D^C8ug*(=Pe(kQB8e_GP}hrId$dwP#p6bkV- zTVIA^*BS=hWZw|5TN4G5Zz53lS64+mxb z(4p*ChXJy3kZ-)sM%u<~ETGT3ZBfSVXJrE|4{RPtmj?!|=~Uw{o9GQHnhwEjlIO|h zRBK2+!6C!CWGSp+ASN#`j0f4Rh?%IoduVyW3N-WZ{Ro^dp4u1xonYz?b}0UN%z$uz z&p0=?*Rhx4;8{I{^2Ay=bQKbE3ik|khFk(dwwda68HNztN@mp2PXmt&!_22g^Jh|f zh9{|Z(-Bn{0&Sn!%Q?oKO=5SL#P!8!x`250~l$a~(6n1Aftr%I?!d4U}usE(B~IcU~-lz<15 z)+5ccg^}xmHM;&#zqt}Ed;7O`(tY3Se(*x;lX;&hwj-pd25Fh1gjSv=-!h`|czqA}K z-@DcSN*IvG{o@9#NAXlZXe;FkJH5i>c6eoa*hVbpLvtQ?tiU$Yn*1&fGcu|xdH_@6 z5}hdoAniaQ{Gn2Yg@F_iq3I7ehgtbV=b4CQ}7H|ApJcrw^MC z`Uc<*z&klZ|IR-V2;-J(8X9gRQ(=A(gi2ybQMZ1{nxtOI(p5nOim=TuwZqr_VaS-M z_K4pjL@kjCmp)L`YZ_N(fyBMzZesH!2`Ff6vJImNcJxB5J-ANeu<*J*X z6n=aY{gxca@5Sc&wQb>r6*a=(?6&)MG16NTT2uKCi;8;qDve)cQ{PK8WOFTnf5KZw zUJaj9^#yGoOFj@;Ume`l*k;ToN+F}}LHzP8+pIk7PTL+_)j&N~a(zI?AoL0A&1-r= zh6^fY@D6tJp;bzwc>3>XQ=|SC;aN@(zY3Qm@Ov!%w9n4a?8e@(54&r{mUkzmH?TBa zpT3*7YGf|ddlVqg^d6u>o9TjCKQ)DjwRZ&ISil?wIE2E7$B#!pdrY(^?m8}FESSC( zi~DN{3*xVZrj}rcOyt=J zUg%A@d6Mv_8T5fs5MsWGlKr&)8_P96WPdFdRHg_*6!c@tUR%#{kG~HTcXW+9`*>2A zG{aF{pWy0M-0gQoKu3>U>GVT{YTH|G8Y)*Pm0voU@wP@#N>i)Y(Qax~HO8(9h7{B$ zBDuhHh20$KhQdQm8?0ty6nQWJuR=5G85cz+83U*f^t;RMwUX&$2x?9kDhIL((u8n8 z?htv0iism!O)7>N#HPWqU+q07@R$HZCmJmPKy}?B-3Y3QeM-y|jOns66VP6P$yBl-y`~nVR!yMs$=n?gvBLyUmteAr zMde>4mnzqhC5P^5uYMh(nelyDo%#3HDuTc7r8mYf3wb6m-o~!Q>hcm)(n(&*rItm^ z%U~;**OtNO()Lk(KG$n;8T{~)jLy&=g;DXW*q0G)wg&6v7&DgAwM zu$9RQ=<zcZ3G zwuKX+X->G8*SpKkTGDjKi1s=Rf4fQV=j~3>lhhDQb?&Qh`iL@K8IJpY2yF>geaB95BC9(phQdxqATaUD z7J{;K^)DHhvGwBsH!8N>2Uydd6=t0X*}Me*I<>;9j07qjJpYJ~r)%(JT#;1WMt>3u zu?=RI2&lnVP@Vz%qrm~1`T73TE)iAu`X^=?%(&4qw>zaYVLBO-9SkzC`=@VWPn<=>}qb7z~(^w0*%>n z>+YXZOOf>FH#>Fmu zh26K3^YWl_8amB}=@(P5M+Embac(ZZPdQh}bqh=@ zN@FYJPP+RxLIJ(ZVSX2123F@=!m7K+Ik~abjk}omT3Df9p*v?riE|p?{{0&+?nF}l zQ9pN!;U<=jehh*(pJ$|{^r=eCw3)3B3y za)f~9jGeYt-hUIeL`_o@kaiDoXH0pJzsWV8Ni~2FEMtuJbm?`XMJ&9^Gveu~$8!6| z9|_IbpNW?EbvJB)gCyDMV2(4^ToB9{5p)?|c|R78etvl;WY#7a;=h7NmzoH5EcJJwKhn zeds!rH14vKD{j7#4T-?T2xaKED+=Ag|K?=TA&G&=pryopN%RCcD^b_2F;ymHBrZs< zwQ8%04VoHh8dR;J%Q&?}1B({2`F%^Dw=5e%yl%z= zmCidi%$Bj{&5E^$P;ia-RXJVhxf3K|VwNpa-b?Udc2fv~M%C{Erw(f*5Qt-0M1X-& z|9Due3eTpT&f@V>=aQY{4D}88EMa~rCA1)og1Q=M;oSy}CiG;b_I-{PS_P-_pnk69 zJ+A~B81o<`qu3QCVXFcWE+;nW8$14fzFl(ZBtoL-U_w|{l35=s)VL$%DiHhzkcI!$ zftyW3XQu4`0o|pr{WzohlY~`@hz26vew^Zn1^=@Ipm2U#@AU`)=z5*MKRRZcnH2AS zfb1Z0CkIhx)v&Kfh9y+AR(cW~c+`haFA#9W^TJB%itB&MZ1yhE7E zy0n2hugB!3`sgVP?OEPCcqI{EYo^x@P#4aj6`zv1o7)ZCLP5+wxbQ5wrY;<6E0-Jhv_lIH0laJ3-sRTVjZbaSG;=3D=XcAmV zK^U=8gt1cnjcvtaS0)w`=zcQQhfqMG9NWWIkO zE=M=*&HW^+kCCS<*@LM1`<-l2knKvnnP`8#l69HFBfcX30A&S;x&fw&65~Xed4)c5 z5F`>(Bhq~x)$nhiGm3?-!GZRo3HNVzQ3{GC552+JU*C@ecM(+nXydBMfhsci5fnqo*RmK`WT9d2GH>Q=?m zsKI%a+NcPb?qt4v8l38`W!v0`T3v!YxyGl8x4E*R>f8eEj>aHFL<)e_2+b*PcaIre)Sj5&nr_p5;L|#tHq_c8w}L_Znkj zB%lPF`<9oSe(-!7QewvdS2c4Vgt0b>g+sHY-t*>#*CrS2RAp^GGo2jXi7KE55RX*h zmmkUAAh^xaKDJ<9^YL;@=jou#;oAzXfxfRe(>q`3B17Z@<54I(_Qkdhn6=sQf_j%~ zOTWkjRJJuH5=Ep}ha+C!@p2GaB4152lvKplA8X}PZSl63G}j>{g~khX+Q8(H06-i6 zH3na6@V9y5 z&M&e}6FcR1BI!DX`7NT1=aj+mcq5w8`an1XBrBM*fGM49|9}=w!PJDy}6SnL6WNl}5Xg`L&^uY+jR+B`^ay|AUer-n-#FTFs<#3zL-st|5DJLb@f z_>0|^^igvo)yMf`GOPT-q4+30Ev^C~Ka{OOYJI!K&cy8|{4uF9lhj_(zFURhqbK<^ zF^P5--qey{c#1aCJl?E(&E*|Pg7qmn_XB6p$pZU&`y}g6c*_g47B>i+rIQd;(?(_Z z-SeJPl}iBGG_$2{Em@mN40-5ET~?p?U{R5^c`g~t6~#jpiarSX`$7|Tb2eLebWB~e zUWZB>-uMjZI{KQMI=nOpHOx6B4UY6w6oQmKxFl8MH|ecDpRBq5|3hq`#>*eQszHMZ zhebGG^CYEU_lwLkWl^}Xfv$htw>0>8oLY`=DNL|{Hhhivg#66Nq_NAei*qwmoxV1l zUw#mz9(M_lzo!e;%{r~}fPS#!7=e^Kpu15DD+Tiez-fd}(xp2ut)6a|?#_QaFmGNR z!T<}!7U@&N!)uk;GeKRfv`*f!{1+O}D;(g#pEUHcpumB|k&fj{ z2qg}cFN_Uf(E18gra7H97RN0(Xn%%#XhNARp?<9W<1$?|MUdvN@*In|PI8lO zKGZqXAzt7UV|V72)hY{V@|BR|p&Qew<*St4Dx{m0{#{?B%-jqQ)XK3o5gZ0#M}Xgg zza2k*R}L0NrpsESV6WY^6`iJF>npPGY{hpPswM=wuCPLVorncKolH#rynFXIAx@0v zf0&0{dLS~g+X!}NTm!R{vVS^4nzn#oMZn~*E}>ib{N&3c^|yi!kC~&NJW_()vDYsuo~SwMv{PW9LS){+XU?sRYIXUs z$veseV@z19(?6It^;ZpQsdh#_7Z+y6r&Y(|M#rk4hA|Sb=MBYMP0b0HK|{OKwdrcz zb5Uwn%Te%2Y8grBe#TDS5B{+(A%I&!OsYCG-5@VrV4Cg z?-jX*?~=lf*JhSuJDed!Ex9er15b0z+Bh2yRe=UP8X6~?CBqFG3pe?1%rimeagT|w zqCCqzqbE$NlJd80gZqHl7RjMsKFd zH*?FNzGXy0_@((*0oS>qDfRHwhZOC}xsFnFaGt#(lnLU}7w!;3(Ow=(7T%PB zodkTNIqy!^QvpDcrK#P2ftpbe>C51~ipPFmgG==Swx8vlhfdnm4$JD-$hn}f!cl^3KdI&_;#wxDi$O!B(jI=Ppzp$GKx!4se zb?dtg%QxDwH<~NzI?nD&83$28oHz#rb3iDO5lye;ST=3Po@QdJCAwby(T9aB<#l^I z%|Df{>Mo)+;T+w2FXN@X3Y$xC3rUgJmLFhvs|e6VeQqem;5C|8ym-hH-6+5my6jwW zpB|EL6z;Z}rZb1gpfp_9YqwJg4bT`-u}1&yYLb^ze#}b<*g;~bzKm-HIP*Ko(}_he zCMRsFZZyQphT--TpJRXI{@O)L$r=j^v#u#b#+>mcROV3V6Wy~#z*;nY{8eFe+I9qR ztXo%s$%_FmxZb?;t2mi;f=Y2(0ErFuGAEd@5I2qL2Y}HMo|)gCfaDYe3bWrjR{WNv z{o+F3>7M{gK(xR6h+OTk?$6^*ep4M32ie6>vz?)sUM+C_9LFl?s`kFz#eK>NuRb>} z`a#JTKl1qf3ebBeJaJxXd#$yB#VoXQziqu}){(?qs6-(Sq$!ku2FHB%RS6lex-?&I z4U1eVB`Rk|PUOqaiLodcv5;TYg9XL8QxVAX;4)Ug{9jtkzN->$UsoTv=S9vAYO(I~ z=1dxTii_x9Xd3Y-X*}DZ2w}41n!{*fx}fR0mQc&XAoh1s+uhP=b>uGa&IzKE#+gS8 zIJPa??1^}Ns_;GWhWW^f4XjapCg+e+10Ci?MoyM*%wIxaCtDMHuI?un$y zB#`nIj1a+k#m_*e@2lMT4Z$-!uYj>86(A21O7%$u9fjFdS9qJ zM{v>ABR(`mt$P)DSO3gO(xGemFGKF53TbdYOFD6Lpyf4Tj%>f&sh^N$;FJ=Ko-tCc zpgLm|1f?qL>j$Ao@%j1}=>&~j8anObTDDhsuew5Uf;m0jAeu1Ehh$;fnfjSbwVyB} zPM28Ved`8jXTIA&R~TE6f8SC z1$3cY4-`6eK@Nv^=4J-Jkka9@nRruxf0f%rF}CV8Gn^5bDz6u6nYD%`)O$KT+-I?kvfE%^_dk(V?4^MGR>;HBDG(%YX>gjURbR0A^D3ogeyfPYvMtMRAxmy>@83O zo=I-L1}Gb2BEUPrU%VL~eyuX(btqCdmkf5EOag<)^%h#Rx`5N;ux)Kz}j|wK} zj?Y%USdIx~Bj|)Y@EAKNLW{$AIAGr8Erp)D2;*pSMS9TCRl#5LwK+j@pO2{7`VNcGdzRL}(h2 zD=@ldn1KW4v(%*S+-1V3$#!bV@M1y0T2oEvPu)XFF5@@4*4#P+RdghJ50NFOI?f3@ zY%s;C7}OLNwFOgY`WZ6{&m_|%e_TVVOax;20nBfyf^8sC(WoGB&;8Z?O4xAv+O)&Y zL<{foQ&fSp09!BjC6cmYk-=!;?Ma$Rbt2VUAOv_a`_{lpf!`Hsfpf6x-OJ~kzhJ5@ zvzjIyZ>JsZ`p!3a3XlCDyo(` z`wnVK-pPf+j(|yWKfB^vGz)N5<8dH&pcG52O;-{NWZ*a^47WpDMns3b9}rxCSBgJGxxom@tvz$p_o&Y|)LyT7TDXWF7l4WVs!J1*d&};mN z>?c8cuec??p0&O>(?$=yS4(c@Y?G3^VCNEJQ-3?LdAb%U^+id}O3mfMe*;p9+uU(W z^PU8DaZFTNRwti75=e-8|LGnLk|)nsi`C{eb3cp^SLT>!pf+GCXuJ;4zr8*plyQ+% z_d4pYbCy=dSRW^m z6C6)vV7E~7*i(Q+`D_u`+M^m=W+7YX%a6t6&G5pgZ0SWlx6BL=3KP?g5VnKIxYYqS zSInjoYhK#*nHHo1NzZdkc{JL{O{@z6 zhRhKRaz;obDy;J1l2rVRb+iFpOoj}!R8Q5wT$0RL==wCfCfYlPGKn_Df5v~wdm&BK z>W9yWEvXotC6AY6Fk`d0C$&Eb_K(G+=a98lV$=Pq`n-Dqm?ASmkOZiVAX$RGZgD7t zu|13ZEtB+gZuVkWkAn`dD=Wq@ig~F0mNJ>JJY469?K8bPpbTOL*Ky&&wA2$=iCh4% zTCdK4kg4t*FKN4B zunQk$z5hDNtptxvNc}XG!&2Fh76}dm!ifMdcKIQ&0)CpYf>66F=hpcugeJ0gi~?RZ zFb%yuH(LRR9j@eobOB|pahtDfE%|KB|`UbL657yha-2F-L|Vr=HlJ2 zKcbKQ{-lX(#>0wJ8(Y}N0tW&sWro3+#ElA&?>sIvI>IKz=IcRdqyZL#0%nQWS_w=l zN+BbN@axf-av(&asyc$7rADuxmsZI%CfS{_h`p1c5SkFB3a6ruK8%p!5Nt3B9mbW< z&{$S`nkp`-rEli)Di!5cZ+Lj>d8BQpNRFIZVI5$_`Sg423ES;xP8@VdtyR7kDGq%5 zOo=M;s5lOUu{uq)HA`Pd7R2-av@Hj00yQ6W-jPqr+l+~jz9wykMHrk=^dQ=bQy+oZ z7-be(uQP}V;c3PSh96&*tDSa#mZUSFXhGCnXCXtr`VZn3%NL9wen-9!DTTLA7dGm) z+@ZDh&_NTWKU6TCacAdF>GK_>Cl$R~#B`-Aa3mT64(?r&Y)j{gCqWZ>XgX6QCvgh| z82LiqlEEILM*ro&0o|ky0SwM9Iy81M&mn#{m7%0^WvzL*ENe3HzXpA3eOS# zyP4BUlJ6|stCMTqsrwR%gVOPJZ3IY{rB>4mHJ+ZXRO9kU#d6kes?tTl9KTYT7*3xRWA$-IjNh#bngO#cmkPs55rczC*K3+9yP%b_ zVMHHK~_|(!-FKcrCrmc(AF^*P`Bb7&$-PS5)rZsVwZSp z8*a1wFD!-#n?p_(vFR42e6TpZpeflxl8oLEbP0s%iC2qZ&_C*4WSD>UGGX?43e8(^ z8gc6FFnuSpF!$O9XV^fa2s#N#9-DY~<3NSumLrVA8I&$Dx~W^+cIoDtzQTJ4|6;$cAM4(*brh@NLZy|FJOA741loPmp_ za+{%S(gQXtT)r@n%l@vEiBA`+`FTJ7xxUGG0D(8VckgF0_*fH86Iv3%CqJ+ig*B>Fu{)N`TAnFFybP z7JNaQmPz3cCQ}7GA^+1-LmegBL(>+H11xNdCwn0SvyqESu>G}f;doj^4XCq9{uV~X zp?Xrr*BHab<|+w+iWCeFE4wqWY`=4^zh{Q?=W7J^1cA@=qi1^Vafsye8GeqI#p|x{ z_7<503drI8h3gzSq#r=#p|RWI-PQ#@FgJ?P>?fs}8*$zB(UPCGmw+h$w+TZ!5u^j^ zwUg#WYH(u(^S^SSH&it~dP*xkmCx7rM-lJ?b_-z-fXp6uj2hmh^oyoY&35hpZ=Pu` zhs46RoEm^2ylKM6U_8RsUy_OB^o|g~Z~Jas7p>jMW_^NhYDXJfz5QzAi&lsqg5wT3 zEIoeCIxe~sFT;;r)pFaYWeWX~$N32p!SlHrR`Hfnm{dx-6^fAV^cWYP78;wmTov=N znm}wMW`~1j+zOz(pyJWXJGU7IACv;t>m1Y@#L@3BC2a$RJ6FxTdb3k0{pba&oPI%J z8N5$h$~lr#vma61V0nw|M)9~YPjJ)1F$+)2OWn-cln00Yw?bBM^p}kZP$vV`Gu;Cb zc(6|#iJ0;>o>1i+y}m$Mab8_UNYvgZVF1E2@%5fcvjU3hUWoMcg!V!M{?}?E-dz;| z%|r<^8@zT^2D?!>1peTEn~bZQlRIzX*b|rQ?@8sO#RG=GqvSF5u8n!{$ZHbrQvuZw zA4sP&P=Da5Rx(+74>}>Azzw5xdDc^MQmD8cCbi#W{K~6G4MSS~zZicd($Skq8YH;F z+{IlI`U13wanZ#|A$5?*U5h0EPM={DL!V)Zp#aZ9CofU< zgfGV2qLjyBccF#2dZ#lGz5J4|LKX7F(XT?O?IUdaX+KK!evJS7l#vrH)Ll=70LSb; z#LLue2o8?ymdyouPT%jST1tIU$*RfSiwl(+#%R#|c9K3l_DcR>1UKs%G>3)B;+h&g z&Dqv0llV#8Zc(`62z@si>VCTeoHi-+kL@eZUK{?&Y;4RSh-ZE+vzb|Pe62Tl?tPyk zDA!G8z()Tm{(!W|f_@BK{+=D-ulz&TGS5`?!$|NBKwltdxjKZQBLIA2>71n$teiB{ z))|D~O%JJP$Y#BF6q`Ver_z}@P`&P=Oe51WHKA(yz|e4SU1a^A^ZOlM$!CV<`lWjH z-J|?mpfT%`hEZ8@E*BUxv>YFT(7X?uvkjT0qn1E&o5ID441+AJPv>}yqxhV)x$ABL zG11}opS}d{w=oDObr=Cze9RPJAb|TwZFQyXP_HFasCgFnX z4W`u^7nWv{Wdohd)1E`zL}e0&N$s~i?f<=yt7pW^0Md2OQ?Zf z!_(2cPQ(jOZem}3isNNY+1evaH3>IYp}hvC->HeV-Y2IcpkCu~Mr!&oObJHMAeo#K zvTO!W1$Jf4^i-{(F{LbT8Gu#*7=em&KJvO%y%t#eKnSrD#E?NVKHVHNi4YdZr7i?+ z;S4M#OXWt-R+RBBnn%e0Lru7XSx;1ja|b$P{3A{BT1ZxLYBTqn2eIFX6omF>ds|mA zV=HQE9j5ZQ$;xg$CXWAFPWbUh9mQ))RLKXRxqxaBM^x*y!eypRuNPNwdSqpm)b)1k z?8lKG8(T%PHHz|{uDh?YxEXqqc3F%NEoQ#RslU*mkNwHDfZ_)pfw2xhz_K{{eHMBZ z(tRoSbIWXz)>GLxGwA72CbFLy{xW(!t7)@Azl9+1=FW&<0}|PHsa*H`gDfchjxF70 zF6gat5#TkI=OxcQbuS`J?N0amkyg`Kjr$6vbuP&=Zn! zF0f`xKBB?*;jCP)x8^6SCp0KWmJVz9;iPdA(^0eCL5?vKoo2nM8qUQggSHSy^I?B`cAabu zEFo^x&j%N1^xL+ey|)*iQfXBDk5ytDX6~AHWR9X$tf;DOf^{ zL;NNiT{3J8U>ep?qy|FsJr#e+ln>!GbA1pg_<~kbleBmGhx-EG*rO*s@_aKqfDe&kY&F- zoPrv%^iuiLe|$Ahd&t`G7s6?}hBrY5g+EP1(7&Dpp6FHHLfFivoL(So-RH5442hU& zY#9jyKYX>hs+n{49uGvX81YdXRK;Mu07w!*Id97QDS%>Yst*Jc>Hav*BbEHh>IlHk zy-(1TIEUPXyPg&EYZl=x*f8t6&7Kx7neLg*asTk91N0YK|IYHO#-3j^ z(P*3b4~S}`+(dllPvm^!dQE$=4&FV7`#aFh3PygtIZX^}f|?9R6{bBZAbbP}9g;&! z+7401u2sRU=N+CoEh0PcsuS}f@%!ZBafpF-5doSYb-!|NmqxK#U2y#)Nf4nKY5|AZ z)v1yo{Ed*rr)bDIaK>3$AEV&}mVqUq)5z3&eE6`gADqZ?m@V**q8ipqAx|Br)vMKX zsK)3UxZ`SzAFz#Iwt!qc9@T&EW~_kZ zjne#JerX`!wPC+>uWCtI!cg{tH(m(ba^)gT%2a(WdYUtVe-Q0zkoC#;gHQDo1d<7a zol$9>TZR3mKVoh+NfMzaGivi|@z6WH2c!|Vq@6Sa3cU@bA2hfioYP3`)^l|k&dI`j zw@CesbQyz!!mUNaMXiM?D~?R z$odKqO#V|bU~%2ljCbS6X@wXMcm@V2?aI+gh22J0cWHU5;GG&Nq9KSChD}R;6n8X` z?DlUuFW7WICov~)Y2Q9yiz;B8FvjoEV(#PbNlJFq=5No&k!RTt)qg>{x6^$B{u=vNBdMf55!vcwYCqwq8WJGF&C0DG| z1ReDifRk|%nG`}2asdBizQXBi!6I11w{a%z7d4_~y0PveKn=w(mbbH4!q8ZGcKj+H z-s{^PUvN`y0%k6Vt9Voiwu#S|>vn+d6>JZe7=1>Eq$^XH)hp%^<_0ACbizrx<&*?% zxTO_Jb!2@Jel)V9>pU`H9Aslh(*H(tm7|#T(Q2uiJbm$T&DoRsx`&>+Bo@~pugtMM z6cV{5q7Ix1Q5I$pNzwhvh#)fJ($Fgqc#bMI$81782gBduO>*o*alDZA-NalG>bJ>D z_${IQat;$1AcakaIqGp+%G0*otRzzi#Fl8}QdEjXTH9c|hU5r2f3KehYm#5#u$yk> zww{C*h!z_jnu_VhTS%frz&u2v?sKcXcE|m_k?yR2rSPB?O(}pe_@be46{UzmB0*%j z6>;9baJHY8V=CT^*|tFu=z)H$r^X-jUp$#s7C2$V4R9#|mAup1j=I!+PteXNL>z8} z`^*%rLtA%jir6*5z9busXh&Fyaa8wW^Vdt;4XeI})YaTCx++Dhbl0r) z2c&s2nZSv?*JE4PlMbBIu60ZBMd}To7 zwNdeQL6;-lIS>bFXF$l%1(vwkTzDuR-dEKP2hBD!yci~(JAiRa-0JQ8syG+)|H;b8 zACAxIiaDqNNL7 zt_gZ~Lo_4zMeeL>cC5ts_!ii)0O?lACff{9saiGZvqDHDF@>SVNWBRbaSLgN6yk8> z2zZk)?;ZvFz~Gp3B`#DOGmDdK+$stcTM2fjD3R38#|1yI6c90f*jnJ_&gnAvCUw2x zQ5Ot`y>-1zuK}?Yd6hgwtI!Py=P07VsOJSs;@Rw~WIpZm1Qzyr#5!{YsdwGg%1ZZa z7j0ISho777tvmPH(E9GB^tZ11lXtVkAI{a9bZx?_mssG=bcTl^v7_X3X~V}e>iK%CWg(&a za0&P;LN6gj@v$lMZ7NJG3d{{PmNx-}@kAbxGXDA;JN9~zx=uo4qTSw?t4Mh+KBQj6 zDKxZ7GkTT+0`{$Dr`59H&y8}1p?1XWmE2|r=sN;>YhEn0vKWoG4p}N{fxG+N?t2U0Gc5_LAq8_ly(6>71V^D-CSj+n zsxmF1c5LZ$Gvc4V1oL-IJ?Kq-Er$NR33}tR<!5(y{=B&WZ!u9El z3O-^|;AE@*Pbmsr7#)#G3KnQ_M$pU7be&T%4HQJit3um*KaU77j%xgv+Kg}M&+>)T zb=`vQjf5TCwr4n+xSkJ{hzZP5(q8Fiu?qd)JHp!vS)8%OqM~ce0kg28RozOhg|Ar+(mL8zA+4vhk35zU8uT@S>XV-_)NhMD1W) z`sm5?IMXV9-W&U@XX9g84K0mpC*{pejYIokuST9;0okB~I^uV%y*6)7Selu8&_q(F zsyRz*M$y~s=Ed@;6rVD%SYg%2-;j@7RX-1qUA_*HwZSkZPX>Nejv*jdx@}i5_imXxll1#QtQXW&ji0+9pS=Z9#>HUqRINb8^b)`0_m76d2bY&)XpwAgV2V5%!< z-`pf1t46LA2$b&BNY*2Rt;1PztO^Ge1y==aPtxV{IUm-sI?6OTt+zY2dx>~K%E`a( z;j>9Uc{3v;PEAEAqCcu!%;J$ZdzJPO$YctnEgB%35C{tMywWN~k1*vEA&hPqt@KS@ zfXx%_<{+Df5-~}AwJi&(5rdmCId&D|UgBmURF4Zp$g$jb=9W3RE|@I?>CO2w-Nu0~ zuM!~o5r&PiZqoU*9t{Hu1n3QptDS9NKR?En*=|TY%A&-GGwf!b%od-r%ew_mi!waC z3%^qoWdZG7v2Q4FD>?1iDO(D2L}b3ej> z$T%(6W49#N!(PZ}aO9a?w9y z2GU$iPu*5mddb4+Y?bh13#H>c zvu_VJB)9eg@g8=FWG1kj)VH0qOQ96j`5phD!&=Zx=8@%6n3~#P^g6fg^D~r5=lcD< zslWP_LmPw*iD+iL3Y6AjKqa%5CtKZ|sj=90FcM;aTmG+K^v=7J8ELZqrn z=tRb}0LPif(rVhM??}HM&UKC1#3PJ58|rd)E)9#%T{%$GLFv4&)6nEkoaizh@lvZr zftaj&T4BmBu7ZR6d5%k`(Y){j$gvj7m@OQVQij}CpmxX=f9p?Dx$&GZ zmcm`^NtBcugZFdLd4?!HL(nGL0-Ro2w9+2YOq5TQt&Et?S*emVG+^UQyB9?cVZ_0E zivXSz?~ddvFyz{iI451vHiaZXw;!^w&|0Gz(6Gj8fg*UNhg|>w3yuMwwQ52i^&zq5 z+hsd{iFmyWAg=IH(3^J)x6haA=4s?DnI~WVS|FD3pndcz*SfbgbDj9O!}|E8b&%))3iKy{+Y7?hbl2$6;|)kqKR zwa8}oT!eZWKGo({7)}66A{rfQ84y!Ln6?a*WbaOy=is>Lxa%aL#{n0BdmiK zIvsf?*>Jbg{?svKA_l(SKtWN9Q;dS8;Ap?tosqMiOKo5OqXtqjmXSi%l~d!?G6Lnr zdTPQF>K9MY7pEbk(*15e8$FVNYl=g+RBBg2#B5C_qvg(k<#1^TvmHwkx%AeGpDiGt z4zZfXO)bC2j+>H=dwM7JWsukNgMTSdEwaF&kn*s9AERZRIOpi2znFn0*332S@+*r_ zx5+;e8P^B^V5FRGIyPg-i`$UjAM@L|gs51A-cySWeRaTsN1}nAKu0|41aT-oS?wO) zpJi*j?P%TXMwWrq++zzah%&P;?%R8^vW)E0VQ0cFrM}6IuA^Dg!T?Mr)x_SZF5B0- zVh<2C8N%BN$9iY-rO)tEADqtu{C|Iy0^{yyq2@q!Ot(1O?^!({aAfz#+N!wt>U*HL zP-~uA*59LwRQ!YP3H=sDBNwVcg8K`@v9CD7qTPm5CBo1yz*<0>3>O5F*_976$=mi} z5Sm{c3AYvz3!*3?JY~wc?%J{(@%Hax!o9vZ&g^Jk!mT#GT z{f9ii`ClSS%!IKfZ)L>~$i4ne##oPXnCz#T2hDsXE$!-JZm}cv&@jkpxPKe5^ftgp4$^$T=^w>IDoH}OEb;(ne{PJ zT!k*0vGYPV?1FrSRK^iw;7$NT0`LK?(_Wu<)H21}AWiP?Kg|Attc5)9aFs99sOASUP7acnGY zD4MbB32j1~AU@DUj~Ab`kLQ)-ep!f7)U3>n1LhWfD0?Ndq!(30~`I zi&Zaqx;%7~Y^&mZRu4NhOjqa)l`TyUoz;@pP$g!4RMD zX3wPGcnD`M<)B_(99*&DL~TKzn9?4V<^1DSh}I~&(qAH~^P??M={w_~EuSoU<$Kiu zlAT~_t(g=AJ&U4-!w=8b+yST8NFj{w#(XKq|FO=-SK-*!1jo}9zwO4rN-iPqO*jlN z6X12+%mS%`i>#KA<+AJ0i*vYyo-YU%ynB>o>K1SUs{d|%o55#C975=*j!d9o~n$+EfoFoql095z!~B7Z&Z^?{55wZb^G(G|&JR zifw+hQ+mQQxCH9Y5G?Qb*Gmlt!;^>ifqBu=x(-uN{MkOv|#-x-I49xeq8I3@5mBpRh01H8s44}CzW zP3f4zA6oo5&m2y`T6itOjQ=bbXPK z$Aj&akN-@r6FBGQYVp1)+{>rpvkA1vL($6C4EqjiL-{+s@iG!MkRvUr3f7Cir3ldu zj9fzBZc24LAm%JaNM$?4D&Ayr4{U5Ud>tN8>Zt>c(+)}mwrhqI0dqgi@>^M~;jO`Aim3h@`Wh6N(!;&Yph_m!t-^YDW5NCIPUMq}| zrdPae+CK*#vHo8|;`AuTaAC8MqXOTKQ`GvpMH29GyNfg7flTB~wye+HZNq*A8hygX z;!KP=ht!LgI>3oWWV(I=$Kc=}Xl=aSaBQ-j_!C06Gvj|z!mld8HXxFS|LB*y1KIH+ zH8+A-U6+;nFSs};igcU9%v2U$b_+c`m^Yx=NX-YR@AgnD;}apG9W*`6)xuD#D|f^+ zX*tiL*V|~V3RjuCm94Io(fR}n@rve~lxxg_fq%c`C|25Yk+=Q_ZQj1` zx-+cVRg#$f{K#lTs7|W^HG~=~g=$CZZ*76B)yb_|>=)f;-4`*Kb5?4%M^AxN2kM}8 zCc5Jk%ZcE)Pudx2fn{Q$l@zqtzPoFT6pE%0T75OVUFD&vrMC{=8?gJeEc0Nqa=5n|*!zj0xnLlb==G1plU{_}z*8PXTllbz znD_~|V)HI1veXh`OY|28eto9ux<>AThbYS9?cwWGmTKD0PEa?t=%UXSu7%bPtGeVVr8>p_QABz^TUJZUpD1(Oeh7D+xq!Jec-QVt`Y)kai z!;$|1xHeTy@4-J>@?XJBvI_HFDIZs_r*kdpon#Oew}HYj0gvXj+S0!o)d#v6X`x9@ z?j_(vslJa=WEe59aZQZJJ)F^kv9yKxw{rKg*A)cXjR$H}(%wBwl0zzK(!QS-S^&;; z1%zX@g75f^Cab{G@6TTaxTwxyf-A8kzP}2j!~&c=NIe`Z)>m98Bc?c8^hG<;T!|uF zXi8#9uI95rB;>K4``i&Aa%fw>#o>n^5nWW1kXH-H z19dAbMFE?(S?h6W)_*R0YLsf4>=`X;I?_xXB1K#^%^@H+{NSo%_u9$~GVS%AD7I-8 zyB9xe*Zyb#1-?25dh(AQ5e#GF5;1bBz%W$JFc$|*?;r~b`}BnfA+AE@rfO%Bv`KjE z%qu?jk>x~OiA^k-83LG|zmHn{`nHobn9lP5+GN&zLGV4oen$?^>r1MrWeBiiucN{N zxYl_ZJM3t<;M1_17Np>?4Rq2+v)OJ1FcmeBPe>)_0PBfgad)64{Op}tUQ4qe2T;lK z=bo59c83Zm`#0viGI(dyfU({A{U(Jed;R}&tHc^miEIXfQATE8KzkngL(QXlPF!Tn zw?jsvfkTG;=rP`eS8c?3cDHuo29;eJE=6Ptcggj~(Qmecv`NNeY7KlUucM%!yhxE) zKuG*k{!*(=5V2D?6(Zo>^3XmZTiLFpks4cOI6LLOe%cnvFR`RBuVRTCfBsD%Le;8L zZ7>kny^Y&)&(5Dw(Ht|-Eg7vyhn)Q^$W@jvePGsPJi=p6zGg=`xcZR4Q*DLZDILS; zz}7_$B{Oij$#v9WUkxi2Ra$Q(YXx*g_Gs9Gk|{c!-Ax3i?rKdILU9B$CgnbgF@>d1 ziV7aoYpUxzRK&0lHhm~JwX?oHC0Sz;rK9nB((25e;J^Q%ZdTx)LT!Iss@}V?9AO=? z;A13H<>Hr37C8CK)`;hpitS_$|H+R_;3f|Dgh?v_-~8qHv%$gw7Xd-&AEi#hg2OFQ zICjj3#K|g^<&54_EhRONhr1i4F>dz?C4jK(*a`$c!a-q|Q;TE&~KW{4UH!_r_R+J(uK1__*(ZYB9a zB8?LqxIiH%&^$*#amDss(5z*N7RCS}1vkA6O}uQmXPV@_wZ+mk^^*!O2&gk1vedhq zuc$$)co|m@A!$ex+exaB>fa-8(hWw-VWo~kA#HNq3Ssc%{tu+G6zmkL;>~=4REb^e zsZl(eP}nd8K=Q$PjxU+QUSyRjf9iZ+*%1>ynGUBr^kKXkR1z$fPTa^c8^$j!y zw#3@ESXIucbeJv$SfG|8kxKD6_Q{WXvHdY@)9K1WaEPV%Y|tJRlqJc`T^`QleZ& z&S$RojYt{Qbo0G#MhrU>45m-(sr{8ak3!Uk$1z&t=Vq69F+lyYB%5iIDt5B94GvOR zw+kXaa}Rduf}mO{Y0z(pSQAizKSGP>oXEUeza*yGQzdOF5`fK@F_KRtuB-?vo-x+A zZx>Y1*-22D+b3T%a*3(0n!Jo?^}w~xOM*$pu|JkmFe<3*px!Qt`n0J5`g7%0FqTkI ze7c{EsIv4@&OYdGy5V~1UGFhDy|Mu=*KYYW1fP`71j!{?uF?x3**|$5e1GpxjuY$K zTdc;YD6XdLSlv;w??S0v{kj{l=iT6Kj8H}?6VU(^Q-Q4kM^6l^CF-#?(?@C^gLA*f zD@K0N6dn9<@gQ6$$5yOak++B%F3x5!E^!jehUmW%Wah?bb{k-}$|rVQ`MV#gbOTC# zN8AhP>bo(}JZsX*gxnLcyMmnErsr+(my_(;%j!cO%;cgVzm)13Ga)BVzp4xp{Sw?^FbA4XjppP~;0_-QhjbC3 zlWWg@!g)tl@s}a%bstqRb*S*!izB15Dy^AMh4;V>9CzAoF$_F znSZ=eT6o?PeB>`UI+EI!Z*^NQH(=I2e-ej7-@4c(Z}iYzLRfeH@$K!5z`ddXJ}F*S z!?-sX48~T=HN?+PK*X01cIDqD@`6#tc37)1PyLKIYQKJ)Z!2bNfKxeqMHuE$$`W}nXkA^Iv2Yf~E;+jKHx9P6^rFlJcv9YIaoy{>mdR|M4 z!DnMux3dV<4L?<4x8y4q<9%q+f_#f4Tq@Ys9P4eO^DNMc;51l}ro^5c{_B5-=TqfJ){S&*VyZoSu*PVK=$uDi9p45J>IeOG+S@YEuX?balTIHimq@V1wxuW+6y7N&%)z%-cIqg@bJk^r*fV^*PTQPf_!ve$P?HYMBK4F=7r3 z$~A2lLV!Vts>NszCDyF1@)OQ1U45~{n>FOhyH>@Ru1txiKmMe*arxiBxN9< zzFX+xOx!03-7*!v0g=K-S49#EeeUWut_=7f;eawrbG^ zHBIgmLpgKrh}XrVIkZ|Mcl^Eb_Jf1QPi%OZ6R4HlY+W%MgBO%>Gj`tehS!9sczmF@ zHhI8#G6KIxekS~c+*kz$fd)cERGV8LaYB>g>fsQpHW_;?QReQzm8KV6l3X%1@y%*7 zT5zJ2!;3Sv}dNazXyq-sBH4G9xxM~3iF#CV1 zXGNO1`E~*k3*@D$kp6LVXHPhMmFR>4P||2sSfCl^$(?(i+(UBG_alLqrj}E=65(iB zDVxgaMwcuz<0lGJ>k{zQjY0zv#jB#OZVCK1W|YM@QUYTk!_cxrM=`MXGpBmJebTjB zR;!M}ahrZh9NHH_NUzHO*!F2^-H2guyI>2Cai~kXh0D|CAwL)zHhx2$G2=I?2L9Yv zQBu!+eYQdB(yDZL8KCo=v11JevSUj^8V{f&@m2reFke3|wN~OBZ(E>dRuz@@UctH! zRX#o+XQN-aK|=Sl;jRvMV@7p(V)EYaaPyS+I1OWdgJJOgdu3t`e=6)&Kgv5a-7E^G zh)J@Aii7$?JQ@YKxrDJ_+4Y^BSrJ<1suAj&8Q<@XYq3Q562Z(^=FhcyIpQZ15yQIv z;?ARJfzP+F3Jua3c8FZrf?sd_zxujoBdFRl#pBOHe?L$44$7tBc0o)>C9SLKtH1>~ z#G@P;nX)2q?dInfHQ0+n)H7kCxlQEuolzk7B6pM9flC2GlaJ7_6PdKN(vM z5Z%r;c|$%bA@+B%)g`kEkR>8L3i>hvw#ad^6_!M*QM#u_=?WAMNkcnEQf|ZTmO8VE zTwsf7ViLh0sD^V(xi*$g&g&%4wCp_ZbxymO0P>+BmB*)D%ty_L*NlMm>Ar@ScY;3? zhecl%dxDl@!EbzQorjmoHu=3uU+v7^1o_x&2-Bbv2G7D~lqmEvX!k|>HW;ZYGDU7; z7kT0y%{Y(=S`(m#nv%w!q4&G2wDC`@!pzB?XJXVtkV2s-g&jB;1tY`J^O{G0a;Ykw#_uUGyJ-jzyiGX_H2k@L^ zY6o)V^(<4*xw!}@aJ(F?=tES*Z+>u*kZmO1V!o-~!XF~vp_wrIZ;-YvqV;dGrHieI z*oO{fD zyPzB$iU3=9!Z{SjB+;L_hsaV*F$=VDc>eo@BJx&w`w-6cq2-016)r~5Af=~9M%*%Ae(il0m zQOri##2pRu>u<+FQwwbs`L^VVKY^FkJac^D`rxoQ(7XtyxlrBHRL4-0>D&EhM2Lv+ zQ1xKAI+8oWd~_Z-=W#jGrEFc0;Lxba6P{B@Ar~Ca&Xzia%BqtjH`?3e^^e1%c+pQG zjcnv>5Ky|hJ8_pUCS+yKI3=$Sp#HH)qXzqlkt9TP)F7eAyIT591a@oRztkj2PKqi~ zx4k#|E%mzMLWIY&IeA56M|3BUsebLhX1jst6o!-gLb*r2y<-` zQDj)Y%<-M@A?PG%FWJ|ZK6ii5PF6%%;?e}00mLO{@s^uP7P5{MTh4Aq1C zY!^39Y9 z32l+meCv@Kp2gq(Sa*BuYW6T5&c%LQ4*Y91`JlT#4AG`=NXy_Xl@qz>C&zO9DeEkq z`z%K5@qon8YmPjWbPQ3Vunvznzeov1v{uMcH|FF1mzDztrTn%6u&#T`s=av<%K!J? z8N_-wvD*Robj9l8hUwHk>p=V5cFy2z__z7UGeTQ)Z>k@0;J1L$3Xd&n9l!h6NtaMo zlSV8OEwycA0ijbn+y$E`Uq6a6y!IcjZt3a9gg}rZ9j}FJd5ILik_{_nbu8o-22#hR z@?7(82}p!1-pSwOFTc>WU^zb}mMPcR=sZ@E)LQ1+`F?0b>0&o7SUvkz085;H8Xt0$ z?7!3VZk>rnwYwb3i52n%th(X7u@3<`yk-eEiq5W}=Glmz0}P7ksV6;eEnTcMN)aDe zotPnG?=2%I0hgofMU8*fDxJJmBo6jskki~5O>tp;M4st;H8^m74q#lgi!}>si;y$0 zKak(o(IKm1*JdS|k3)G08F>Qu!Vq9p;v`vaGi|n zi0J!c>`YipyC$TI3Q&v&nZASL5H&ZzQou()>*j>t!dj%IS)*Og$0+8LeZYmBDVF4A zHx+scov|s1o}}(rnppnxlFvNq)i?jc!{g3Z;E|+kheRqBwQEIM5X*k%2|w<T_c^3`1Obh^2{~&U`RF%3&82RA<}YjiBX1Wkr&uq(miZ!LO6fi(;q6-%heud ztyq`a(4xJxh{5`gpw{oB)qf4g<8C97__5#h(@Nbp<9EK(*C1 zVtg==?J(rc9W)kWTOk&LM3s8rIzeCp3NyVyB{EDGnLaVToZ0O1le@2KOf+Krh|GUz ziF{NF)AP$lk)D<2rTv`6thD&_JMvT}vUvFzKKKA%^BnW^jE=!UHrIauj|S10lc#-c zq8`Cq)RndYIE{j;t`1zuL(gV@MOC_I|GOzL-A?ciyERXu>72#e%qT;S^h_JWt6Ys$ zIa!u9F%Qb4Em+otq|!hr9B5K+J+@Va<_9o5umh*dMj{9{*Fh8|u9Lby2-PuI>$VDDGge3T^$_|p4gn9cd7A*S58u5d)^vTyZ&l@ZCpn@zdYV;8YnL=MU^DVQ!qtrIuGi{e<0hv|P`rC$ z8a|g@z+vm>M}pQvIjo#b2_4jC;+G8T@4vpyY^j_1rqIxZKhWQWkdAc{Xj5Kfv((m& zU?;cV^qOO!)UJlqS}R6*|EaXmQhcMC$klp&LAYUdi*A4;|EI09xM>=B){3h0sv(?jWJYT@}Ijk8o?`6%^xM!s2?knS{+h`-_(e+$E^!)PR6d zG|Axr01Jr$pVw+apZx50mbSv~s#0~Evkr2tr2%4S08d7d(w+f8w6y(K@ZXcVsHL%| zjdAJ=xrXE1#iDtLq)lPMg>mX(ik4&95=eF=RghQtA{Bia*Z#>uOmcX{02ShtjS5-? zF_`YL&UW{^F|)#G=A#Y9pC9@^rN@HYxVkt%tZ57TS{eUyTJoH9TS$!{0c|sCi$n4K z@)7jpK85?^nob7JM^dSfKb%7C>YU@;`~Vz&!>mOYtY-LS5d||`Jb-i$%N+dRRYPiI zhzZG+P>B4BKSmBs{7;QLY8Yw4Cvan)MGhzNyCOe6brxHkAky&>x?dL~i*$D^f&|1J z^v{a8(g zXFK9v<_3-KA`qq5=f17}zDPAy0MzV-aTVhOXI%y>F`p4Q4$h1i`%J#t=bZ67zPS4) zYL0a<+&TeY<*Q($r=p(-WOYro*z;n(^9N=?%UZ>xcBOz75#2WuSf#CgD>^cC_~d074Mx-*6bRntIhMb%Ji6}lwxwizVj38r2+N!KyN~A&)e3gE$haC#jflPPMR7e zOvo$k0niZ>_YP-URr2_~Uz_(79Ba=l)5J|yZhc=%AIpuCdF&BOGzKk;(9^Eho|d~v zl3%6Kok#jhGt){U90wKOAH9KL>JIv1KHbyYUyr@|=#U>RbbP$?5RE~^_O<0+ep8&c z9(u;8iOg$3K`<^AXUZ;+W<02=A+ST4C@@59F%6YUnBN~+uR)&1ne1pb910PwWIg60 z698kLQ>dZh{X!@4{pFSAfwDJ^mA4DPTtqOk1S6Hy<@h2?@@mo2E}HVb5&^A5HrkEP zkuOhsI9onI3P`W_DLrznl%Js6I@xWql3{;k{m;4wVoAt{()x(i{$kkW}KKg z+^j;=JnIYVha8(JIwPrNxqutJniOeh!HZM)C4e)x|5jy@l(8FN(2b){)ONU|YEX)p z?mYjG{>psFCqzj0a!Q|Gg*AzfTBmZc?EP&#Hf38~{=ewZ-}n`{BqZo^Ev;&Hhkjwu zu8S7Xo#rr5JjT?@gkD6?5v0>7V_=r3R(eEZX0Qd9P>b=3&@I9Cv09kCbOi70MnIfS<-ul9`Fv-t&7SZ|An33M9AfJ zBe#6paB-y74t76s_k9q|BN4si?95@YRv#YR=Q{_f;v@SX&>7Z79?}S4c6At3@(}Ln z4+u)qFR@DNGAd?#!-$N&UUai=F&m;68<`2L;gEwQ2S+MvS^OnLh0`S=rf12n8QEj!h=IOdSAO_l!3syH7H%wou<82W4KESZ7w z6Qr$)U~4q779x|f@{SwZYOG|z^sQ2RGkYV?O0-SOaz_kYSgaHu1X5uPVL_3&GAQvB zbaE-$wA$sPT zzXRyz|Mv7zkY<`N9$G|Goe0@S1Z^31m!}Uk?TVjd_MFV248I?Xd;6E&mS!0GDI|lC zTj`o@tE|9b={2Vc@XsVA9+uJY(nXI!YTq&%n&N0u{UtCCF2Un3FK~+g%#YojoN5nh zqMi@}#KO<%g6k(v@(Jwr4x=W3ss1^&+>Gc+JztY*q_Ue(E=%lD&@{!DdD|l0lm_gz zhahwktvK@AdE$ZnbgA(DqoSbfm;bMc?n$bM+$}^~aA{iI(vnqfc;S*uIU%6c#8z9| zAyMDI?;soHIVx(;;HX6U{CXn2&tC$|^e5cedDE4+nh&+TyjSTwYwqg&k~2@Fu7Xu4 z&7#+;(on|MXHzQIGIZJlq1BZfl(j$lmOC%C`d6g9dSIU>Yg?>&R6V$EwM*A0HG>=i zaNE`sFqhRsf*C};WLfA$E(~WyM0&=xItsW*%&g({Ny1N;0YI0Ms7#QS$*#70xbjNk z@MifxPNl$X4`NuBwT_OVU<2j_IQnv+JEWT?&FA*Gu8IzPJf$vyOa{YgJx+^fR$3+$ zo+zG=*Kl?=d0EtvkTJVl?j<{{ooW|*A&u^__dF;qYDO$S%{tV~#4q5h$*_zW=EF06$}+gS8Lx7rjLL`))8 zbGYpafTthD#wi|(e53lpj*XR+>j|eavmCcXZkrqEi%(JT$kv)R0~ccOLjMJV+wYm> z!VQUeA8yC3>m|Ew$Z>@Wh1jiMdsG=;7Me@OyeB_7j400#f)-xN9*g+HAZJG=0x~a) zYb}bIFZ0BR3U-%z-s|I;VWnqoPWP1j(V2FoHUlJrXtW32JpUUOAB4kRS1Tv+AJVkc zc*@;}njdoIRaXi_$b|PKb-{y9RJxQX%uiU9W~dVSgFzrJ5=FFx9JSa2fz}Mi^B2q=b2$@4Mg&@~?#>E^&7n@NcvF7O#iKqG*Ysh!LAuq9)wXrVf3C zljYU?r}(0&3IW#sqtZe7xO1$hLzjeQg(0V9jJW!OEy50ow#ltp))Kl*yz9aFji-sF zevc`)Ja2gX5uxN?{j~`OuT*UKSf24Z^M>;Ci{ZaXdo}4&|S>e zrIh3R?}KXdOX#RKk`8E)ec@Pmlmo`lP0M?*|NgG~vJqHk5^b7elc^H}owTQIS9OR$gw|7V+{ zNwn(*)^JsaDMC4HesjM|XIuOQy)Xp7;9HRvrJ*VJ`0B_UKQ`W#+W9MD?HV*rws5^D z9(oCu9#z^5KX9x{UyL+8oH*DK7dZH#?@L3)=!Ng0pB$d-kB`K;Ye%fF+Y+aMCJ&&DIh!QWXGjupJ)7XX5V9Xfn?vN_C=72a%e7 zKXC6ma0kdN_vrt^F%F^>qyn}7lq%79#369pOj=8gw^1CPP75J^{hU0*SYBZ|g7GC4|b6%eccreckHXt>nD z*dFluT{-_C^SD8Y^;DATn4&7a#>OQj0zOh1m!_7 z9+VF@^xM2AjkIPTCq~E5CHbzgJob9{e%t+lNLGl^d=$Fo!M%_kFH})Y!0ipW3n(XU zvraFmW>*rJ_(H#$5GWioTkP|_O*~ara-aoT*7(}zHbdPgwppeb{l%bvx1-H0q^-qdqhE& z<4B^c6v>nLhLoqwo}Pxb*4_rq!oXGhy@t4cuglWJ%pc(^#P(`w0bfuo;46WoktUVM zt>0ut_l3bzKx$fENIvz6Gn$hbw%ecXDoza*xZ!LM?T`AEv**3O^?C{KsKO&&`*M(# zktdC;WYma6k2dTO@@Nd@N-;#@MSody!QLNd19DnycJ~drZo#d?cR&>JVi9iY< z;w+5sCjrbZ2*0YHg_+6O-6A}q<4y7jirPOMo|#iSuLV!MPLt6|tV=dR?@*iZfpM3! zp-5VWQB#EyL>&Z$h1x8&fcCKDCS>ph+z#!ri|x8rZ43J$ZlVw zuF!(rF{!De0}F2%(3aIQ10DUaurqmcOl`IZ9y(c>TSSiWWZkEGYP*x@j)vA?P0p?M zvFK1NMIjrKQAFtZ+@`UUjMhfwbsQXH=+g@>vMuI$!2M}DPj0{@Fl-C59p1GL!VpRL z=&(IjFNU5u43Bmu6Q$_fVjgk#j%eA(Wg*`dXfxF2o!UNFhyUlx?`B7#N74(5B1)EY=Oo;&jI}$_*4iK7 zZrxDlTi3>@qJ`$Ta&cFKQKLWk&EpXWjJ^=HOfI;z^J&s&k8i>S6jY6`OvcnJ^)UGH zAAUyW-Mqhg>$SqGX(Ga@WC*0~_~ut82?wZIuwrmhrZLhce67Wp$R$~#OC|vfbn!4f zIlu5py;VP{8pD}0`6qjSW~3U}^DUX*y<^y=rs^Q6^q+ms#-))gZ>uIDh zb>mgYtUjf(+3tQ25@95ji&sN3s*+YpO10iQKlST$LL!3{fKr#w;LQD)U3uP~2t_GLPXKtz(&WjNiupMAtD)gIb%QhVx++ z5fq8_+I@$7hI=^U&-ghAQwILV-IbZ@eW~;G8kltnZG)c zPf-(9;bs%dQ7e;G>dvy;$n&R%2G7HJqP@)K(oOt;=b-xIU`F@N1T|c=`+9~v6DP>3 z8vV2>t9=iZcCO*3HLw)#)Z_YTwf!gDiY8M^BCHy?EH5evx#pM{ZL&y{xqS)rl;V5k zYRoUT2wpbfQ@}=VBT}q3>>{$bbN9}k1>_Y3m*OguGMd8VQB~Ep7*C<}UA=QZeVRuO zr1J_Ur<;$l%1|xF)G5A;Y4m)NuK$_-v^}PL)*x1*?%DNCYy+?cwn`nrY#nk z4tnAdgvc;!u*Mc8*2k-kXNENBfI-oql+14uBHcW%>U_#cX@t=H)iMcE7-t*aM{KUE zA~bgT7ijV9z|5G$S;-XkBe(@)5i2Yp*|J`%UvGsoblZ|;dH*8)rajA0ZY^EY_iPeb zC2Y3hC3^=_ppOCGYW!S3OJ}Ql=+K8|RY15K)pG?zx)+1Q`N`#G^G>(}?(Y?F#C+M< z@*Fx!%Uk}Y;q*XrN8n#Oqxy7#$~K@cFn}i1bD!l3y?RL`yh|=o#XET@w1b?~S_ahM z=CW)D$-cOkI_@lb_P=B$LN$K6qdNxOOh+Ab&staS@QP`(5MXZ9>)Zs(GMr8=&3T7s zB$r@|=z0S!JH+peMY!PZib&YZs%xK6982@7+#sf$M+7+aHKFGJ{HhixGZrzQKs}D@+AJvog?>l z4z!7nnJnB>V;C>xSsvM;CFHOsd$vNh@)+X=`%CjabTh*p!t8wit~MLn(PIY^0paH7 z64|ouE$IFS2a2Hxp9C1ua1#p4K9*cTCO1g_l-?*d; z^Xra()fa&;By~w+B+C=WIwuF1ZmpBkGw!%_brhc3a(w(2eJlLJMSPe8VN{kV2xB7^ zUagE;M@#`{>&TpbA3sc>Ll&g3Nn|<#cVv$Wv;n|dXh{;9oPJfwKU4~Rez2um7!Ts;#AO|v}~|M??HTwQCJf;(=H zB(=Y&I~S`J$`FiT7CygN?m~1ZD3+&p+?%p-lDuEhiMiN0-MlIRv+Lv~FE1svroQq8 z)#nYNXO2Grw`3-<2%;A9N)VH2k%!=xaIc5E0NqDFC-2zOL=35G?oWC$GXYmrVtT$W zK&6aZlgKc^up=)+0=ryEf`45Cf2^~SZi@y z_`vnjq#U1qpk7pOLT`w-dZ`=e6OhikdPFLNz83@umPGbE#5PCnV~z^0Gtfw{ld*0J zSZgAa%Be+NQzMl*d45zX9vtGb2$JgMDNSc;Hg6XX{5bGl;5h<>8}8;tz~|e*{Cts! zdkl(98ziZoiQPDJxtAZLVrFDg&>8!ZrIRXf^YlCtp#fWjC~A7w1uo=%&@Qx?mX(87 zUp0Al$c~19gMYVrOz{5W3}d4f*ZxcYv(%Gf8{nripbW|5AHAWIgv9VSfm}-ghw4`8 z0XE}2&E~92%hm3~gDNd-Yym^1BJ%uXrGoZDce*o%P3&AW2qgH2{(zjRDnWku+yquT zfq-5%{8=XI53)yk6LWd|2E5euASs<6Xz@_$hN>;vTTIm|@QFbecDQ)FmG1!vCZ-!q zs#|Ee9j-J|{Xk2Db3Vz`VgY8|KdZI)u9ZwGj3D<%10FUXuFLKh`z z8Iz^y)b@@AecHQg2~X@Z4T~m!C$y*Ic%j>A1NX+-DL=|5HyqRIK%ZNrL610?v0|t; zvIaz_A6$qTSqsJi z21fn$I;5pBuqDC|;GR+S-WEj&nl3sDzeoLgLzuT8@lY&^iKA2)@?>*B6 zOxDU!eB{c66kZlq@Yt2a_0D5Frrj84YB=4uM<=I=*9^JG(HXcieE-_> z;{3$6bKo|xIsQ^nw)L3f{tv@gpxd0(Puz`{k9L$YF}HZx+q#r0LGUoqyd%OGkX+_y zyy_7L*)2wSQTuz8D8v`p2ZNZvh-uoV|89&YK_Sm}m1j=W_K&YhpPc$fjueQ}eoJ$I zNUrHq%5+}~{AD8rnRq~V%nMt;iJ#Bm{@3`b;33dNb`6_MS#3s)!wZe+A4JncCZjHZ zUt2;DQ4QeSHqab4j4Br}-bWvF`v*H++EJDO%|~ZrQ}f1<8!S*Hg3|hbyNXj}DJJJ9 z{O5vBhk43m%L5iv;H9`7@L+C>ySZP;DSx^_Vcm~A{)AiOgUHdXa)5yo$ml?C3KZX8 zHVw|?LO{M2<6PUmC0XE$M|0QVka8axwj+|+{Xj|WZzJi)F(I=Tcjnp%kly~qmq})| zDo1B?M4ok!JrM1!Mj?wx%*Bf(Z{hd&h)>>Fu?-5P@qn#~c z__~2AolzIS_SHZF7DA~c%3e+^GxV33Z|ToS(y1e=`2?iebH*0`T7|MkycRgDxK-EA z03K4(kGz)0S*^hQ7CBU1v=uWAJUr=vXJJ%WL(nySyvZ^YENCb@7+!keQNxz+e6lehjUx z6Szm^X3sdcv~nU7%@KSt#=nlL3;)|{Xxm-B@PoTjYII~H6^-}&so9|Z^<>?hBIXV; z_yvA6EJ=>MMZJs!QG;!QUf|0R!`!n7)!(SaT&jGqg_FX0ifD7RbZ9^g0^dc3yY?e_ zI*&1o-UaQT5RZ!{=1wJM(gQD&NkL$Z9;c@huSZs|d(~NCiFecG8kJ~WE5Squle)%O z#2!57ULNN$NDry$+nLO(&D1{Hu;9SXcBtEDXy6+m)da2^$%#d~I&pP+O>EQB3nh(h zpRH$CXE)w3oGC-f(MRp!-q}YV1k1PvC)>I1*eQ5FJK1Ke^wl6Tb**2QjnBYhP_hmM zNx>DA+aR(dXwh(AH5_`qT8g^$_45TKKJtokh01x93X7Tqf2RKiPKv$;3mb(EvM+T; zKn3*G3c^-9YwfxPJBVN(=HbA!m5Ae0tVNQ}+6WS96KHZD$Xpp-P($8&)zTB*bIhwg zEer%gIE*e^BsZfGy<1Oh%sueA8jP|TX`Ui0L)tvLCkxSBKV+UnG;Xvyo+Xu7Gd-yN z->FxgPr@9kyEcY%S=g(7zzocSbs^Q{bwt$hGb8!KtX`iTppFvz980XyP5hKa+chmBh2?5+#M+)CMcUD8SoY1> zEJ{DfSg{*?!PY?VrxDvt-5!ulHJPPt>UcOiCNJ3i2AiCr>=W%yI5mLolG@cIxLTbCH$N0RJW<@-NLg+!z8oIM zLKnPhA$_hxCz27%dgu7_mzw!FKCXfvV3>Q4uE>bI+}QIvF|?j*^=z86VMTz`Ie{4b z-3lGmgcM+nw)dfxBZManG+TVP8|RGz;mh9b)1X|2Z7e}Q*WR>+Tw^^c3KI=;#{UGd zZ;xL2^7mePOZBU)W@v^;&E^OJY$^7i;PmfMI8p~^+uWt@7mAMMfk`$dn@&;Z_0A(+ zA51@Ow}9&jvQIrs|CtaHzcrK2uG+s09^@i=>|Ny2|ks1Hxb2;XKOR zd;y|zVL^PHR*G^MTTGAVd*n)$?9A*j%20l0VaU}#x#jND`8)7=q#{D&XQuZ<3#9b0 zxr(z-BD%__TfHW)cb6k4{P>xjmjXKQu|A3}B)2!DMjF$grn%w6^o5)YZBuY0_KDl^ zSG()gmD@zXM#||*0R$>OB<-TsV(8e7OsZgYJ!H!0+^{WzK|%cYIQ5n=TpOVDl?eC* z1AHM$xgJ9X7laDp?~wJZU0oD79E?Stw**G#@{D*kDn8+#9!d*@WNN|1pWf)ANChV; zXE)}io!x(@{erY9f0h)ycakS;h3YJ@)m!Mmi6CmeWR=^VoQ|yqsF*`0@y*xy+j0k= zI%^b6#U~!wJf$B*LRIf!2rhCA2d)K;TY;Dsx!pQ9N_4US_D&g1-ZWs1BOl!#egf11 zC=Yvu*zFD}f!!UVooLj`J4vU&R-Ph7qb2Yv|{;GR!Nc7>mjNvRtwU5ig?^!QL3Fb0t*h>g=4=6>Apb!hm zIHCs|1J>HWE!Xi|t z`!a6L5hz-?0bsDB66g0U3)JYYR8?QCFJYIZI*pkxEQ(phi>WW!P-QMag)5$N`@j%n zxQI#++B5*Itl~0TaR+d$t!==@QDejS1%@%w#NDfMow%eEo9u-y{ZwIg`~fXzik&yX zr1r3zq<{3S9Jg>=SC=XEi$o()kMY$V@3E1xu!IPFr9XThIS zS1IbQe9s!_T;pgFR9R$fLLofTL+MJF+EdKdS@mM-Jx%b;52{D`a0QRuN7uf#Ien21SV9;xbD1unle zjKq`;WeJZPs%ZDXA_QDH8Wu72KgRrX&eE5ox8=hX@ADzM+JH|}7L7R;#*S6HM*;;fEjT!|Iw&DLDgn~@zhI1qz?y6Z@k40y zx!eA*E-%-3B`-5ChH<8*!F(C;${Bxo-p1KoOy2!t%Sz4|HeZ|7A3y2+rHL{;9IgTH zme^SlSoN3$TM>Q4(a*28!2>A91F`$zS8n_;GX#LbfwcL}tzg{V*qGbWg9%a(so2J@ z;;F~}m*p4vO!)&imtA}P3E!q(U*GSyHl>4D&jKFFl6&^YG{25-F8dzDtzMw=CSH3r zZY7=oV1F-!mSQpsQn+}f%6MSBFkK%$wTy9Sk#9xt1RUKq=&%3)3-JM;`D#KR{f5?W z%KVZbEBY~Bf#Q$2SAFg6!YW--9Dtzn7^BWuzs@eyhW9`cPpJv?9`s8T@FJo!$O3O~ z*^-eA+hcpBjW~h(;8x$ss>JY4WJ}_|DQzpRg$!WPfVh((`H}ZBImKsu^)%?%@J1mx*!5R;z;=|ol~?N60MAaz~|CaUX7h@vLx zh=zVX>d)U7#G#;WN_+pZQyX7%7=p4I{jsK5`8>w8cP+U&FmJ&PYou&&!ULINdH&65%G zYfjH`qH;E_L7J0yR;*dI{uG{vYOkw1;l6fhj-Iu8chz(n>AjBl8~SOwRBG}xgPh?Z zAJKR!lCtbu0wMiFFaa4f?&a8JFHoSCkoVYj*5LMn0A(*(E@e+_ssRlAYPjn*jcQ31 ziIHsq*2BJAkB$Xcv$zddX&pBc#nxpIs`Ni4KYD_LN?QwSX53pyAN}q8zn==aR9Zh-y5HNl>riEa*Vi1V}AAYTK zLQkw|Eq|{7mBeDbD`SK}932++dFh9+W$Ujgo@aZ8$f2j(>D2qz37bKc>O&vN|EOc^ zLwwnmBOZKB@--{JFV9qYz%?5JR-cHGEb&O#Qtjkfeh$(tQgLOHH?a|k=c(!ftv>c< z*$Iux`NpXq9e8l%iRE1;mp&+#X7JpDb0(mt-8Gf0K<@RiG<`MH5<`5jcOo5&?rY~; zY7B~KfbQlbdIO zRJ+9fY&B{OkCs@sa?b<(=&O4cM5U}5jq-b`v6o(;u{*e$*^Iu10s|(c3AxqirWA9k zwg@_BTuKLi(4nC&&_tqiz_;6Hv;#!hU>PE7SPgX3h_9I~y!M{EJ%M1#;304!{yn8m z!(@t9q_S^rw7h1eZ(?}4uh)1lz1j=!0*23^2Tlc)MAv?6qBtp_NL2R!HZCoPOZAXP z+vIJk4O8aJXn+pF23E7__wSqOupm_W0nIX@k=Kh`dt`MdhA(Hv)i8zUT;h#JeznrE z0wR83@&1Bz*($(9)F_Jb7|Kf5&2FM(?I@|Hpeb-E<$xP`+B z244HBxYY)MLlvg=&9KgY{=34)T1I;tSFLvJ&x!S;#|wx1d3&BpY{FX+D({NZF7+z| zJ1Uc_b2{Z{nV{C$Kf>rSx{E3B8C-N-VPgyHbx0xl3GUtEGf7!$pGRZ!v{WwQdsUL_ zT+57f_(D5?v2q7$yX?G}bYbT0`sw~k^Tna88$GRK<$#rvY+N!$&xGTUp|#nT`yut3 zJ0u=khcYs{HQ6&mymZ*$ilYYc;dNk|m_sYtOs8fz)k>#Yr%gG4#G`7>0{smOJOVs- z%l==2Y#lIhv+s%%PETIC@?e2Ki`yx6uCguV;)jq5{MQssCC(u&@)sNdB|_k zWCAD0R}NVNHfmTzQEbexUT43dvaw~bkE@o6(bz+o$@4yAbA+&V8m;Se?~hhUqm@Xr}Ytnz9&`YHXMkXA9g!G1QfE@X}@ z;@|GXbN=(uXP~XnFL0V+_2FKnIx#tasAxUhplIef#YJVrn=uE_29mn$qy$cu)cRT= z!4#xb1uR8Or3l&}$cH`nf40isoKLhxDGr=M3Lg&&7R3Mox{za?S8~hTd?%z4fve$b zCd#DS$bhF%O0Dw$0Q&J=k*tiV`e6a*VVgt>3mCQSdQ#PuADfa)xg;;s+c?2YxPHK0 zVq6QYrvOJt9}H$~nl?88Tz&`+*f9RaNaxe}|CINc^@IzquL2b|L;AFaaizUWVk~nD zjU2$*(a7wu6^xVGv5+^NpwBn^l25alq!7CyeL&jJJ3Zbxg^`NOqo~R!HXPMy4u)Ga zkWC0J0JnV-#6pU%k3sIi^K%H+H%z*NgW=3#2r_W^M6F36<>T~{2Kd8 zPCrgo0EqUTeIvCzh$#MV3ZaPW1SoFYFji6-Xj;rX{7$5q&XxkGp%apcRw4g*kVJ+0 zDM^@e;Z-?l6Qr_Cl7m^CI{j|}E)JsFn{4ZEYfj%6O3!~S_<6-w6x)I+>9eglrvi46 zzfJUW~&wDona^?XKhX3P=gjhHUC;B+Jq{50aodL+bG=I=OGJ3UzAfYCC7pu4l%z`)@DJ8-bPf{MY8TZ`D341_u0c#Nd` z{1G;>v^qUUV+e=-R;4HJ*s`W+Q95TZ^nCJTGUNG=02&&RelcaBU$#HZs%MetBy?lx zX2F>Yv+e%KHuGF#S!i}lzXj!`lw;--=XZ!5HB$FBvC&jT*)C^J+K~LIb$3ln{EP4+j#KM3I+9bOUobRvI8J`ts4YjhO0F37n;o7QxM8MUBvc4f zQqx`&hw{}DR`k7Ci2B$GP(k&oAH*{ImKpO=L{xDk+~5~%-_qBcjFb-1maXV?si98) z4EDy4-1Hu5^Jp$F4FE`YXOP%DNVnd%5QhFufOJ{i_v4W_K=RKcH}J~ql8NiN-twY+ z6A8FgYB!3%Pxt?PLDwX(ZKIq}bgNh=5wrLP`cb8c=C-Ew_s9@`&M-f9h=c;+)pUmj ziL`5M-F>T&5rB*33BQsIacY<_ck=1jHKrwms1ibhb*c92Cdc}yvVFq)bDEg%M;LP; z@1EE^H8_baSDo$7jz%`<;wOKeD?soyxBlQEyd9(HL=`$HX=*rxm3h0)cR?xIk%O_jaRs>IlqM3Bz~XlRuu+BABUNz~t+kR?oRUzI z2XDy80&sRDu5A>f?NdW2tqt#3>CmmwcdeiqN3oh9&u$F zR`+N>iYM2qskXL#5P*)T%J9u{_NDsQFK}rj#~$tl5l9I4Ay%RH=xDi5U=?nA3oySY zoovK3+GFuEbo83M+27TGcgn>S@(uxqVBSPOqQ>9?etdHv#$Y{A))nd5RArlGc(*vi zQei%Wt&os2wa4AfOk;;gaw7hYYkz2B7ct|y9+@bTMfUtQAya`0){N2FN^TDC)JS$# z0gqLuG~a=HH~;vB(P&a6hKTdC{>6&sNGkJ_A7|@pKHw5RujK{mEWNGWKCQcdgmm@m z(vHQ7WbsmVyWUiI4v)E$-4cw(-3@k>nsT_jASdve1%=EPXH~UE>T(V8w!?;j6#3m% zvBJ%c6p{vQi1n1Z$ncuhD6%cMDdwII3hC|(?G*$1<18#n&l0ZekT3tDW~2C$HijVW zeOPwf2{4;ZNnCBGe+pKjhJ4;Z5+vG zv(r|7flL(&;f8t<)bp!hw{F=jdy4QOA3~2-`y>D)?;gg&%(ty_8kDau`Zu6}RzV-h zQ>@%sL8KH7A^`s0NPUP5s!~{&`+cd)0D}I#7s42_va;(>ow}5xrT#!R9p3HG&`aLo zBrYnR>@XDkCWqk>`3aO19=zfZLWBj{7|uon8->7s;xpDU7pXI`mxDsWn|abPfWOp- zZB{2>h^{VnvVB@&Cu;-GRJxP+`{0wDket3ucA?v{piijr2x4{aXuF!vIsMrjIw5ya zV4e0sQ62c-&tCe;TB9A?7_tg6XO&RHr0uN=6<1ot)2fei5NE+TQX3Xt|I z2OSeZHTlu%=Pe*ZQDO-#8|ujrfIZ6bOK$y5=Oa};A+1R66>As!w;#01*g0G_Z)T!_Bb6{0!OtuY=3)BciAOE(nt{P?AeNR3?;y!GX0oDnRtiC)9nr z5$z;y6rtK9GVuCSjfe#`McTe{KhGg@eBZ^1$p0x&wah}}bKs>^#guro1yYgxto5nC zi1fUUU0vY8m&%3C?JuqK%p^8|5jTuPu|V~TfK7_x0f|zE9<({#HLS+E(lrD7Mkb< zbL8VExA@;vRA^$BsNFTSxm6E6V|ZaS2HKp%ts^;pQM%02duSWMDijyFJpg}BPZnpl zpTf(GKkF&iVLXvOP5psyrQ;4o1W)Zw{e5TMi2^jdGfz`-jBaTVcIKoDCrmj**kF?E z4g@*J3KnB^G}nb6X-Ubi_(1z1YFl*obf>olVjCSz zDLW%%>49Q)YPzsjJ+)LD4y4|6f!UI8<>u?G@te~sEeQ4~;L@*?pzaAZXTh-*7|hD^ zvSoD?pcu@JAafvP3#0r(>_j64lw|rXjv@l4BmT<(%fB5b0G*TM*vRz8baqmF15;g4 zGfjYqJ@1p|p5P8jI{vmZf zSTy^=zl2Aac`}$Ls%+dhzErlh68CWG3t0pKJa!&nYO;y_*~dzX@_l>)rbKycG>qTA&6EZ?VORP1WIO9>?H`x0Fn1-2b9{gF`@5JQUsc zR2Vmo_1wmLj^0{Ojis+$v!hDci4vz>F@T+dixIXG^Sw@g;_gA%W)%6P;gr*&b6^9TGnZnV>Y; z?wv}fNK~dr!B*$byc8-QmQ`>A#63qNf3{oLpW$1x11fNOdyW_aPb4I?-fq;wj@X=g zX-^?|(JyfCbfZ6jKNpw3^t80Z?luqwt%qyxiim9TPpdJQ9z_)PN^3q~mo4)bLI6!YGv+q-TeT#T5C}!qVvC58?`l8FDv<^2VyZY&}?9O!b*J zHa%$UQ?MP>N>zKGF;)gTJymQ#)VABt%w-+!>0tO~qh9#pr2-5g7-;X3aN*0g-v!B`I2pB%mBlMSM$xpblK%byN6 zcj4V;%5G+K2zIliCU*%C?dEm)_$yNg z>yliIrcL1dj)$L9f#1WJE?dL~n(BT)v&5HX7~dik`K}I#oEf#ujvnOKcOb(kGISr1 z)oEyCNMvSq;(J*uy!O-XlGqs^^n+y-dApuNqJ12JqZTL!wK)1YSI_$JfT|0%WATL| zD?XSgp`7?DFGG>r-&Ac~pKoUSd+HMBnUve`tDYM8w8U#}3jgiFlf!-e5bRCo#N?dc)`OIj_lh|lvb$>#HkQYX}Ybwm%K|jK->5El@ zpvLcm~YuS0KxxIQc-@z)H zH*)DfBhP99Sp>7E0;uhi@O{vNCUgNW(A+U55THvyJRAUi$l=<5&Y|prJI*6fHX35m@S zTCL#Hq%YtK@F}_&bP6)`u7zKRqi!7SE37cR3AAAE(wo*UF2bRQ>;L2>)_&=EIE5k) z>!Q*9&97&izi_T9@wLQJ{*-%9!dl^s`I2^2gl8Y1q!3Ob+DOxMi7m|vrn&jpA{yH8;1#$%CsGE&h1y?g-wJ?vM!xPg z7Q9VvM~0Kq3`f2|R>B#`?`-5%>qZ>t4R~C+)J4gQ)Hs0q@`-Rv;&l8IC)Xt=KVR`* z{`-6v_iUnKKobF*$L2eM4)27a%ib&i@ElKr$!rAoFG-Ig2DRm&DVtyVctx(>=mWBA zf6!Cu=0k5J*($vBoA<cICm90Ose8xDAXQaiBYSGRaqvx9H?mItF$>Zb|0{DyJpqA1T3q;Ko0?TBQ|$c;l_3tT}JPMvqJNKC;*D6=&)w z5WV^&u9~fQ`4juyXH&Ui-A_^~g3N;c?Mi=G^LG=H>9UNsT*d0&Q+kq1a(nHHF6$W# zc|iQKnykJ>>Q4AGaSr(PH1SDu+3bS^W)_Tj-wS<9yF);sWTJieU8v?7=A+y!o50kR zFod8tx&B;4m4ufBKT_%hZhq!NPTIQeziwq|eI4V;zk+3}HtGpev;&M%fFuR}z6di+ z2XJB}-p;lLx1o4ml)>s1xyud@9Z+dnicR8&kJ^*|^XiRvcBDQL8*p-h`UFrIPFOSlTQ-6mk;}1& z?ST9SO&H5RUl{eQSSFd0Ef^-gXys=(#16%k7NzqhW?Rk#T@GvhR6hchmnG>T^IVQs z;U>;>dhd9Rk{=l8LDZ|gA3JyuzH8*v0bRAJQf|Xb!d3b6Mmbby_n4Q2x3ly*nrx?s(CXMXFGpoyM@M8uxJ zLO}I)o*b*I$uRytpe%t{#Cd>BIBPK7+%?EZ&o+%i&S~Y#Ke!FnWVPkmK?4o2%BjzK zWsyd>gtL4W5v-wK%O0bu!QLWLW)#QULdP2bp5iU4iR)=G47K1>j$@9%(^NB1FKH5W0x%Lnfu!E5x0fPvsPkZQn3q-*ot+;n-~zr5?e_&)2nUr1X!m+dRi-8TF#l zcgWQD=edx2fv1QIkv{@XEj+Od!(^v44x^mlQM%riNT1beuOUon8#AyT#e7#9=pGCP zh|RMYa(L_=L>Zz*Wh>+n6+s1$dD7yYJkWAM2|%w#bN+AomO@srw7Nh6n<})040iIS z$h@@a`n6P6WxlwU1sQDXyu9!;GDbV|b1BZri`i!Vyx94_IkIBIT#dn90GZ5rv7HXG z6#)Cs$|6+s&5kyQaYCCb=M^`Ht8P2>Iwp`su*lUxzJHvfPGY)5tl1k;2FR1 zgkHVQyjK1O^1_exDWB>2Nf^7G{lIXs<0yZGKoki&+hUs4#K>CXmGpA`KnO9{qQ`H2 zWaqbelKmf+bVR>dYkKCz&ATVkf?u`DozyXIuyrdD$EqqWa1^@LxEl#r9|$L22qxm< z6dQ}h>sJ9R6*IBh8K|~a*SZMtJCI7Den1eimoKtdffItrj;!}*5^4FkTru8GqnhIg zosGhw&e{#ME=MdMjlTr*l_9hHQSK15heuAJFM|=^^BsjZFB4U#QUtfe-cGm{XMgR< zee{q;IGH6P;Q08a{5p2~`ns8}7r2}QAak{wM-Q4>cFL@EDh@B41Tp=F<>ql)x{)JkF#o_k9l} ziYITNmqpX>6h8)K(ggq}8vylrn3!T`LlM{GtZ{q>n2Q~FUAKn`!wA~c9F9~|{ptdi z>jd)Zb1BqJ6?zFmY}gx=xI0Hs_DiHv>&Z62dGc({>FG_&;6iMNl~lspIyP|OK^W@s zQ*Xc2d**^4n#AsC*^HlGqG5o32fREg#jISk6$(>&qqK@LT{EDO4o^O4nvp_Uo;ghA6W2CVS}*Q z`5%8ke}cLsWgp)`Tc04`k2_ZwgJt0mFhWt#hPLz$UdHC~=s+6Sq-32xZW&nw!`}nE zVE|KW!-C^zb`><-hjsqK!Qc33_#E7__D|N@zsI!J(h8D4iB`b6b>Y2K_f~dyWQ|GO z6k8ZGmHE&_cni(jJsf76Da_8mvV**#%`(w52F$i8 zN@WJKjq%;pJXnzf|Lwtt*4L&WD`bD)jWW?j|5Z}j<9=ulDhi6WoE)LL7krQSnP79l z3Mvf8^g=n_^fm|FNnqsu4@Z9i>=2Y2PnrQ}ERS%kW~luXs~wQe%O^qP{w$OxDF@H< z0r>CT7?7I&(zGtHki!8eImvzr^Y7cQTB|A`h)#QmOQUqux!Yw0^Tq> zb@Ai-0LASh(WFBg!p@wYoqHhDVMtO_a*Z{hik;k zxc61hM5;aRk{`Yl^(IC?;0qVjw*ysY3q}U*t{%vcjdE_As8Dd1t8u@pkYva46 zk);d|EDl!-(sOzR32ta(j^BmujYMi`lb~foIM^~en*6Y^|pgH)?PF)bzC}azmwO(i2-N!t!beV zgpTCR{AGkLk&8HJ?Weqkgk=AFP>pXdqz{PC^od#Ft+O+w^9SNC6T>I`XtQD6L1nW& zI!S3M@j$2N(jy7owu2{xKq(_O4WmwNP=O^SD!NZS-p1OD-6wb zatJONF0hTcmtod(`D(qKZ!e;?_Q5H>S0Wd(fXdXTK}!sCQH&h_i1svC7Q^Kz0NwGJ zCm$;GflCa4000fV0iGLbMt}W+ZKSa0Zp8AIi=lB1IWXzzb`8jMr%POqW@U~~5#i)V zt3-IUS5np2Mz9}zH!yk%_2qiQM_9a!t_KGm#G)q=C1)B2Ne%j>jn@$P<%fNqeyLzi6q5XrXGBrViWYHVU9K(!Zr0>e z^qJg3k5y*4`iV9J^}#5npln@sOj9!wGzyXm$aq-{Ie2UY)}Pc=wv%}x_7_lp zJ2`IPntqkQ2+pJG7LvSVbU{c8h!! zQ;XFkEo1&1_Y8BmXw(lqWy#*OyfF}V!el83IU8B*k31B z?Bc*pun1LBqy??fw!!&w2Iy4N7UjyTze%Ls;XcQ839+Hk^-%k@UY-09Yaw=!`mqL- z2$rrSj=04hAS6(Yx7@2!RS6=}m(D@Q0*z10#ALn0URAcdRdRF(V7P_6Dw`oLr8tgs zqlXPPRo9`9jaR+g_-NqZ%@F_@S;BmkKmz`a-leI?tE2sEl!jWaQoo>y5+!>HnRrVTR7zQ9$3FIk$!t!(3KJjOs}pVIabBH2U5p_NWHveQQV?o74ovN}h z*pIT-t6n6Bg@SH@-`NXH4SQO#w|A?SBLTbHVb1b>=7ADRaY)&2Z!T4Pw}t|b8TR!a zAi>!5HO4MSMc+pi9qF!RNz!+qj~{yRNRRa(s;2WlJ)2-oK~YVeTH>XXkmWY+F;w0F zzz>ElUn0=D49U5#E7~(fbD(xGQL!88gT<=gzH^+8*s%ti=fC%2lF{ zD&Qhs3EwmDQnXY+r{aL;D_6fGR7gV%4}iB-*oeGvBETvCd8)J19iy#S5CXUi7nvpI zTFsFMYLq%*o5|_6X0;!Y*%w1sdShCyp0qI26N>);qVQBT0hDd;HU{hVtJt2CO^IyJ2!dg z=!ZsZop{{~6yXuBkx1_wX~;V&>0*9X`3<%hV|!nM9u^m#eUTP_+zH$;_yGLPE%i&o zq#xd^m|BJAVhd3X3AX7YVx;-G&!dyi|G(JHC;c~Nl*^@Y1&Zn-LJ05ZnP@2&lGV*2 z-}StVdoaJ;@SkI_&$BSQX+1mzn6&53)KN{;)KxKRDC0 zsYINIzD;r0%;V)GiPOc5XA`wi>p~Ckn1QQV77Y4}@-WhbrK%`FKFeWXjV0EDi&jw! zL^H4aeZ11IlSMaN1Y_O`p`kp6SZLD?9`S|Z20k1zS1GFZaBIy?n=Ul7lzKNcK22Sl zum#P7!Agc?x>EZdB6e%Cr?P^%jRRxqCHeD22Xczk*CN@p)T$#oo>4Cr(g8V)8&$Fe zh($UpIS!3!8<0o(2Dxy+@znv5Yh7VA-D@-XNN$y&>#J9Rbq!eg#!Gm!v)c|EH$`Oy zt#M;edDQmVS@qtlGTVG`t|iUU8`Sn3GGW-2O%Ppb1VdO)hG%KChe+qU{glMy$`hz5FMk{&gT;#EWu(Ym+ zRM^KOTYTh>`ZovI!k1g!{LzMM-BW@#CL$0=Z`e2nupJ=@ODo)hQU~~Z9iy{DU1be` zRq-ztleZ> zYP~Sx2#k){0=PI}M#_sbyxk0b0Mf_Ut$$a#IVE}iAVD9#iN$?^W9(qET!a~pxZP~0 z0OVqoS$&I&7Om)ug)x;lx{g4K-WJXynyo_Q}NBgGjr zz{PZ}^nI34#KDIAk`{Ofoglu14q^KU^t(|r%S5zB#e>Mvd0MS%7GWZDWR3XF$6jfK zLHaU4Xc5N0`F>1B=Pfs6x}1Mz>~}Z9C9mQYQM0S7&^gNp?uP$R`jL5y`(#J9TVM8k zlp;FWSEJsTi~i#^M8w!vf(gWO50-nUPvhoRFssUgSYm)(F_bHc+;%0y9cJ&Tqvfr_^fWuKq;V<_fSLa)>P)5SBfnUyZqE+#;KX&A&4XxCyP>QZiXU z6xFFC#txlRfG<~vAzJ2LJ*$YPteZBme4l^Lr?CLfQzZ@3ca%kiDU49_tVN9UcE=0s z=L3}V)&3DSO+rI7D>*)&gMi#-CV2Am(g0uOKh=O%v(tg6WFQG{?LnklYH+(nI18rG zTp(?nYUievDhaZHBrqH^T*L}mr`|@bkjT^^AG!tyftCA17LkJgdqyo+55ciL$P?!y zF|9?xa~(sUsXsEI*Q4?G!kOMlf^G^w6|(^gWJYlo5>hKALp^C5TV@1itD>&&C}A6^ z^b4}n8?hFUfA^-$N}Be*02q9Qp!PC(kl9LPPnCYw%^;SL&H98Z8kXrzV+=s1=Zj}h zNTG@XX6_Qq8NH zSA75CuiUyyA10S?E&;xS8QS8#_@c3;YiE!qF*nf{R5gcGo~7GuM(WJh%$9=T=*DA$G(zR=vs);;lT(emQ#leVWnCSYW%9N zP9I@nw_1J$6i>(@sPljt$-8~cv)FgNcNX7O+*j8EVd6og$mnj<^XEIfAHwNP!xr!!?Bc_w78_eKTMf@ek#@zVp%#5I@r5a% zc13%C)1N+iBjR!m7CM)6u1_@qy#G}lhZ1gXyPMPDJCN|;9Iyn65(AkmQ3&^9TL!_K zXq=rY3q^46qZhRekQ!yFbF_)qnH-TZf6W58n17Wt<_D8jNb#WSAI+)+S_=hL%)6pn zZjUQma>j6&#CHYPg(GsmXS+bSR&$(6kH0HL&RPC{o;G>F(Pxm18N<*ES!MqG>lphCJ4XLRg^#)lpG{(C-G(I-E~w_ZW9psncj5AapM_L_pQq000{mL7E;( z;SVNL1w2QZLt`fjzX^#`cLB~Y@#ApYO@v__v#9-lD+F_lkq zF@Z`KHDbPp=kKP1h}i;erMb<%rzt8|tOFqxlbrzj!prY9G9gNj?Uav6*hl?7uBZf$ zh@1G)_f~MGmE{`jh&Q*cMqCfwENY?Ne4~OZE1>|dU-Cw7zCi|7>vQdcMKiOoIgqWO zSbHXm99sp6Q1n^(f4ycqQq6!iH{ob6^uG32mg@BVLl;P8L&Y{1;corYwA7L+SAL7 zKh|*Vr0r4rWLuXm*4X~4QR!=?4C8fWejQD@6EqCLwFeyMYHSqov3pqgDl2NtzO&*U zM~RM1@U52{!5OxKFPPBU^qUtUe5;;_6|A!IhMD>pL&j_?LQlWkuW?NJw=NspPtVJE z_P!Qv{I-L%a$;W^DA+(y2U%kSOq#(Z!`|e1TABWZyI(HC81}dwza|8;Qq&nB!u+b% zN#WO(SyI_&2%*@TbAVXJK;f~%wyp42z4H6C<)>naq+4$3%TJ#IxhmpQ#CcaGWXF!V z&!rMx69S(jzh6Pt0$a9-DaRHqZJ6I?U{S@3M>T+`T zLoV)WH5DyQG7dNh!zxey>uKjO6J^_q{6ze{`(K-T(ES{I%3XSCBc4Jje*E8u8#AF zU{Z*>FfPgNyU3@?>A>8RO)#r)jCFm;wrX!0?98X{)FefNga|p9{#~+`S=V8O&5ke(fp|eQ4ZL+{RuY78U^NW2%5om%Y33+ zT_B6&)z4kxk6os>qorG08j8G(SWfMb{S9g~?sS$5|PLk|LD0cv1i5R&KkyAPD% zr$h9nG~DuCs?acnoWf{8C zIf|2W_oo|6?yiGMS}HcY)#LaikD}7blRZyA@8+s%X+TbIVZ%MKEU-VuY}oE@-2G1( z;Tn)}dJNaJTHmc<724M2o7SxGfgKM^@U#7`IMZ2#_Sr4d;cnsud}oQc0(#jPKVKO0 z^&$?^f53-_Bw6M8U39c~z6k;pDnWr^7VBBOnfYZ_Pa6m|&M(q2$xW^LU^S9uQY56C zF)npm&cVQWq@$Y$88nUMukV^uY3QH~qK8p!g2A!AM(WF5ra}_2bLr+_D+v)54WZ-o zL_N^@5?*7NsmmyY%GKW0S_Ep2kr3%Jqh{WrwH+F_&JXPv9C-YPzZuyg3Npd~sQPd! zjQkz6@f1W)pJAZ)$JI++5lJD;ywYr1TF1o5&A4;)hjFD+8WdoiCU#HPVMR2u=P2z< zl5r%3iZ?d8Vd&oSbSQgH@?BXC4bN!Doa1hsJmKG8rcmKu0Jn9<~WV_CVg>I-maw7{po+NknO^03}3Woo5df~r4vRg`*pZ#mjbmE9!{B}ewdp9 z9)JMvl(6PwzW7!Y@pE#$w2RY})nt6iutQ2Xj3f~M@DbUS00Y^4BW;;Id)srj*=6ng zYK7*8UpfTUiX65m#PGsoqu|zB=BCoy0>n=s8&$aU!r7*BLZyW3E}96_g=>Y)SyQ7& z78qd3P0*EE{xa=f057%VHhv}uK4fzhYNF5|7K`E*Mp2gO17_A1pn5CJKz`LINR#OH z=hoSe;a3ucK)6`<)6T=oE&ojSZD`(DXJ0hIw`u)H*<@V0#k1U#SKyDX$G82iyBQ5d zdcpMki=!t9n0(84jCWksbMcTh3d#M4x=@*slGxR~U0SPgdhIfMc5KE` zJRc-Zwa_EDd)KqR(b5(9(_?D^)qgwi98@$-zq@5CWO84vMfIm&fRM=5dyrqN?_fsu1x`Unv%&_9X z)gnaecyzey@EY!{!yNoBA~%t80Nr(rR`{O*oxl$%L9u$>UlycC_O12R65_kA3QTaN zA?^*MLNclJlG2ZLz1H7Nv2umva4o@*+t=n`g^iC(|)Xuh>+F_n?O6a)lI?eID}=(V=mcG zL>=IQyjhk?EE|~J9oj-@{GCLhO(DVI@q1G!|uPwp)58zQYN`OC4X8HR7h;&7Wz^u zIEeghRN+$~*wZQdWt#j#AZ$kzN3A|8Rl2k@Nb?D^xumHb2!k@fsW6=O$wle5oX31a z(NLU%@V!BsuUB>PMiC|!INp7RWN;⁡x`1qTt7D4SIFNgUQW)1r#lEGYE)xcYX9V z?F4zHYq*)hCy45G_a0xSuIvk$&GNow^&9?1R8Z?n87x^p`P?T=B>!CiNiel*Oxkdu z?HUltsd+0Kr0FvlQ zyn9HmV9`L!V|%`*VD~T4>3n2Am;2NM8bB+wkz+zLZmG6bpPxfbm~0%#UB>}Rjn|N- z_+?ScX~C`6lW1cIXLrT0*@U7bbr5p8nwd7)GD~S;-||nTYO?n`rBPAO2lBv z9Ca^uKl%^N1$FbL1Qg0I#1%ZWQcV=fG}U=1x#^JRqLQ}er4Y}iakHagWEG7isMHvON! z3n|RJO~ZTpF1m{JKtz09(cUK&9ZB(x&rl|_(W~<-0ir1$ ze*@V8^CC|Vn_;>-qbwk~%tVsY%B}m<-W4xFV~7Zo(uIRq>$PvpY=?=ip3)Hy3WZ@g zUcs6aCZ*WvYt?uS?4U)bXEZbr*iU5U{~8Dv^^g^o6U9g^uNN8|_TXoMe3;fxnPoTT ziPxjKahuAbLod4k@u3Of|KRxQpEG;?kBkcmJxmKYnNiDi=6WVItkrG!=GNlRkn*xp&LDL!iQbEJYRWIDDLXinRFU9$zWc7z#sgkui`Nu zXTaiZsjMnwLmoGDsY=48$8r0>c5RDmXF8-Cq;Jb9xY=UpN#FW2UKBxs)yFuFGH(EsXf7py-|@( zDzeltoE!{eWEOgb9Xl|@2Arz$bNgs|hFIy+!Ej^358SSr83fK3u+aZh$ZqZDKME>r z)kQZ?x-^ejt39sE6jNNW@G8GeF;r$j&?Qm1Q?P?z?k)3fIB-dR z7Z{OqER}!@TEd`0<`uJ@QXFHP=})jI(Yir>^(jyLa!JhC=*KqR8225}6PdT(sIJN? zazo38B`;Z;Qo&|lH5WKt-K}pc6y{mV8PZIR9f|P}(-Daa`KJ|srX}Gzb*!#>*Woj- z@`TOvE3K%=s{FLp;xmSj7+X7@Og#WuxuYcL`n<70XqC(tdNia;AvEXGX}4S(5DU_CapVlT^(LX3 zK!%Q2rVH^gzq7K_Qb_Tw>AK|q-puvh*j$!AJH%1tul{|m9ww=I1H)czY5Jy)J=Qp4 z#~uZzHca}{#`^@I?SeIU{X8FScW0ca++YFyTk6TJBt%fV67kY(v zxKh|L-C~|vW^DW%FVt`9jq8)3_Pf@~{?79y8Y>O73ye_IEK|q`Mc&-3D{MtdTPd@G zFg@hgK08O_0UyMAETnjz=+m??>EvCS^KUqN*3Kjkbm#_>9}fel9V0FbPAUA^vi9Zi z7D;%ef`I*>VB!0MI}v(_Q{osc$X`AEqOwHNS7I~i+qw!cn*cv6n8Ii!njmQ$mGDxG z=g&UtWybvVTtldB`?^46K3js4IN2HIer)sO0mHhFCK9g#M(}g1>zcHf^JO$*O6R=;1(9lCDJ8reg`Sk}?}vxUKNy;-o@_$Um-h zw<@r8Z$Jm=i0Ud2GPtKGf@9=EZjLfrnihTV$l%8a3K^$<%>&xnKHE%KVaQ4^n#X-% z$5}(AO#myz+^-Ks&_s*|v&1{R^@5qlhW1_IV|P78z6#P*^)NFn$}KS^5G>bc*iQzL zLC;^ADL|HdnB+|ii|RhloLU;Gro77PCZ1s7^ua}5C@q>^XR1jVKuEUdVu^asO?KtH zNtT>dEcrJKT$(T<(PiN3~}FV_;wian|dX!cjSWNDhQjbgl7STD#(nBq{Li5$OqlKqqiQx%qu z_x%a_N=vm^Ab72Pa+C>AX1NGHG6b`-S{EwB60aiYBWyIIqR`4p)DLb_65xCv0mZED zwNj!-PTIOi^K+Lt&tKQpGw?anTS8&GeSlpc%C{HzC5#(G8qJhLwJ+s+Y0I)Hj;7>N zaov=SlJQ4eF8mm4L+6RbcSreCtdKn$BuR!Ik0z`Fc?>pNBXItEjrJ{SSh6-tIIAW7 zcdUwzi(crQQN$Kkf@9c&)#OFPFSbl!$lxPZ5h%LKmwT|j&jH&B`AJMMjGMuHO34_d zYyHf|Ro1zB$!bCp^oUaAP#R`jwREfFtEQ+c|x4qC2CcRR5-Zt&#@J9&C>DL0omlk;)X=6Oxy?MywnI6Bwd zg+lA=?#qqQpyq;R9*Fu&WAGP159E}@*KAAU`1|U^l3KPX-P)&cGD*!V?W%N9yRo0; zk2^2Mo+#x<*Fn+TvS0&F6i7FAVjEvNOD+hCfe_SR;N|-Q$T}1jQ=Qy3857P4ocyk)AUI;J&1lGK4Ut z>)PUBZm~FhXSY=|=sWFW>t+=4yH&pqK>S*xAKbn9;0-fv((4!N+z1%%@%3UX(iLK^ zK_Lf4laF;rvqs@o{ydqewj7lKv!~aDs#J0C&x{*613@hFVI+(X4V@-GIF6t)`D;AL zvZ|5~-g*x4w2$t;0(PT5rk$x-FqdyD4E4g@7_eA&=^}BDcnivn2SzE``r||J`oCVj zp(HlGl8yT)LdIJ2|DGm5iN*?a*8AP~NRY*E175yryHaj~&Gzdxzdg+;)gtsLFOx5y z4mM0u)DpRK&DrurIdv=i1(@ZE{I4!lp0Ya?5^Ka(xzVa}0#LCX!bbAYk_zT zBQ~=KEq+~Y7OBx+WHo#KP#-Blv-izqDfAJ*1L~nxbJ2&%QSAk3hGSuV2O9TsWW?P0 zx$JgTyiHTFF(lK>R;|h}IjRf~GQ7>1^=kh4)H48Y6N|)a?^5;lNggO};U`j3g;n`y zlfza-OO@f>#GT=K7VMd~Wemrq#UoPkJ#FGxu_^`cLz$F>SBXc`oQ_zfls`{&ePQ8Y z66(_UUb7jSwfV>;4cyZG47g*lCicYsWe9H%2oCcNsPrRZ^-FZ(SFjFib;S)JZxC=J zlj=M>lecK;N+r`9wHqlSF?0Q}Z6(WIEv1Ywp^d4p&-Jg=0m1ru)H07D3H0L;n?-#B zsE)h#U5x7M%g#N@;x%?l6Ob4%pNOfKMzSfvLSS2Z`tpw7_hkBOWj1WqDXb;O`ZcMQ z9+-4zvhh8_dszIM6@G@$Ssq8zz;Sh z=8(I+S9>7%^zPJ;hkq5KDg2`kHw$?`#(%%ePK^J_*(Z8~GWnWm#8e>cLB@*G?E5@B zknMaYQPDWsX7)EGU-8# z-NrLfvMckV(@o)WaDm2v^7sN1?9d?MH6MKS)5dB~%O7@4180?1)pqFvS2?!E7queX zRQ|rxp|L|*+FJuQ2>D0N&<0MU6_mbV|3zf$xA$Nppb2GGQFu{*PKth_vfdqhqt5VA z_&Irm4VR?!VmHyqMLzNpFgicVyZ>yyn`iU^m0mor_3_u4C!LJsSbSaohDVAqAYs8I ztVVhu-gePBXfrm^o{_9l1JTtb2Pl(DJC7rD>s7ymV%L0yWlGl{)gmZ3dcFVeGD{QL zg@>Hk5(b(9H7{Hi*6c=Rcp`wHXTVx|QE1*k>M6u61=6%=Xfxq#Nh@N0&i_0AinBFow8}VoJh@hK9>3S^-JEk^NGbHf&)a|tf~cu zt%(p9E7mqCUxKXr$ZH0LRA}|?T>K<$qwCv?v}e--yPdV>qL~07bXXhdvf2TFJQC>v z!#mxlKx^?rsx6Wdj#vE>eL)~p9`~F(A+nCIE4&BY$?yS;`ZgtQy(g@BLfVJf{jSxC zq->|liOkcUlH+-_nl53rG_x*FCR2mbe!QR}7&NqgnviTM?{#KT=RnmbrOAjpgQ;`x z?Y}wm$G69e$<D|8BwMk(Xh0k7dU*jmPJ6u=06FoN2~!KBI!b{otWe~3@U_2w$tmR7nrbNZVZD8I zR9sEd=iu({5FiA1cXt8|?(XjH9^5UsLy$mlcL*BX-CcvTljnKf{oZ}|JGQUF9MYKXR3R7{sa6Jv4w1@ zc`W#&S3!yl8J8R?tF!3SW#AcD3MYhWo)`3Z5ycW&cXJhK?ltt;E43|5B@=YzqMTR4 z5h!QFynSD-o?OipjCJ|NgMMB^ovTN}pWc6oy&qtFkU1-D>dz>6TAQUaaqFQ@=pg^K zHI5!y6XEQEpmb?t{B=tIJZEudE-zARj^u^8wC>kNb&Ga|=;H)<4vNqx3~gl-0Kk(j z{IeN;G_-~iQCK6xLE3Y@!J1JOjHg4(-bHzI_mgL}(|12Y+UE{gW~S>6L51JON^)G3i%B$Lpg6S+&l zdM0(^Ij3ee;aR{who{sAaRjIxo`3(TqVTT6-Fv+7a~x7cc5skFn*LLSA?P1*2iycf z?e>(Lx)nv5m>;GKpm>L`lRiZu47F;xHfJpJgU~kT)3U*O0m_Dk z)1~hge#M-J!C8?Jh%E3;La}e+k}f*?a?3zfKLcaSj+t=Cw9u(ca@C zT|m{_7=mHNO>N1Yfju^>BYOElPMheqmD0d(N9+bn1;e$MecpG5WBPWRnG6!d=Qk-9 zI7LLv<1nj}^4RZmw_I;#CgUaXMzld5GfHt5?4JWlExG7*zx@b1@;LUN7HpSxbFyFg zvB2w4u?S8QO>lMYKaQEv&`+CK^MPwgvtxbHKA)dn-U-4Dosf9%n`l~9_rBu!@_h7T zwVH8L-E`IP<82-I*GhRzlSjMR1oyR{t8TIf0^33oo>x=rLc zlk8Ss5Hh7|S)>m%rFH0jtpx5+ zUn_Zz98@R{XIN^VTyh7abDTLvY!*w69yZ)n;okFFI_rn^c0xWs4dQqtu)P< z6lP%ecN(S`z~2iT##>mgV)uy~M;K-=(G~$xcGniEItwe0CAk^v)=d-f+gR zSxNTstg5Nd0#4JdCG&&w6nm(}&Exy3mK~Z8h@4rv0$>p~I38^lxZHg#X~6nE(Dl^@ z7(BWYpeJ|Mm~ie46gOi}1DEb5I4SUU@2>HhrwhNX&7U(HE&CH)Sj5V3PIf^BV=6G; zB1#3~a2GN3LhhCH*rS;6m>L<(l~Wg1U7=3!J1w)`PK47z4~)f z(FiwNddkpOoAvt6)1S2J$c8SV3WY8gUI6fj%NFF~&0d_s`OsNTtG|U9bU^qmA=SDh z&6s|Q`WDFu+pT@n@WEcpe%dbgm&g6vtX#j6<;jfk3w3sSNkV%OY!Cb->N*6v8KxHN zBLaZx#oqvO-H4^I2&43@_piJK1{|pQC45za&yA~m_^6!K9qUh!)^~(kO zh9yXxh?FxcjWrq?^suHkuFjRcoy`H347RSp1ZCZKX)6WUY=A?s3Q=JKlY);Ws8ZN0 zZ9C5w^tgZ2&(qI6b+Q!DH4V=$W{$?)b#|S@6PrG0OHjzFgEQA|jzA^x8bOI<4KF)a z9cVzg{w6CLDHct*`DS#-+UCE3NfBo1N_Hhg%_&Jw*euMjF z2G`SAEz1}>(>|K466~Wle}{}-9}F zrnGnH7g7WFbP9JP_;+I)vg`880mI=^;&-KXfpurg;I0dCXWO@qGW12Ml@gKpgOC=e zCV>HU>VjJ&?1#uC2AwZVq)S<`EGCx$DgHk;Q+>X-zOmf5!@h($Db8Dzd;tcICyc;aV(#o=I4K@rHyBZpklnoYqhUZdiWYa9$iB?oG5~Q;ZDTr<#9@jdZ-e*-#xtnz3`3uoH;^+2 z9e2s3yiMLcZG<{X%ZWt(tWtQ=_e1LAh|eI=Qwha7YD*6blv<2_ZTw!F?bR9AzKA?* z2-`-P{6&vWE#*eT?YvZ`U>FDQ`;Uy+co}2d_01$^VXhu}pXD1j5zgHOZTU^)cEh#P z0H(=0NxToPr<1vC3PeBVp-SEz2uHHJ6vujcV++0raq5}XF?zm<0+&*02%_MFD)b$@ zLh-vp(mt4N^TPKrY~w}Jv`}%%52nhkItwOrXaMy#9#&uKLP|GK$(`ak>jg6Vgu4p=gjz6>Rbi+Qn51FS za=jVa;@xR@K`E(RFR% zEk=MX_Ir^9cUfJbK&}WYIscHR|AN4#f6i~MbXiIEYNm1babsyisGvUv0oWFoZe)^- z*Hu2MuR^VfsHKLLe2jReAV?oWzr#zRmiyyVOD`bbSn`KK;VF<~6u79%oGp6rIWPW= zV-h2lA&=C~OYF81eOuiaCqbB|Yh<*l)D)g>1=Gq2vAlxb-V1{{omQ;Ea-z1j5sByV zuJE^laqZzO6y}Ecj#EhJgn4cjoLEu#P(ZgD07j?MphN4bAMVtu5dIyR9+a}SQaF?J zpLKic!x9noOI7?~4P7bb{pX^$YB&jEG>AJ0Zf1+JT--eg<1#32nr!8RWFLo6WlMW# zC)lErIb10O&#r<_SLZ(}z0}u<;mJusUe1h@jTj*u_RKf&WHe~j1v0A=QUWlGdYo=% zxV8F@c2Ni@rVB`Aj=HiW`1l9xI~YTf+yKDAOfBQ_|ru`5Ne&`Bt_yEW`h8AwgtG8dwf zx*Muse=vnrx03b44@;?CNL^_%EwYoBsEcO9*e_%6lrQ!jCn&;b7Tsz+LXC7dOMN$4 zQbHArB9JE(;ZR)Yr#(!LaquMrW8Nv!pVHK=a#5a*r*Z*L{lWLr8YpV#Go&ohX@3sE z>;ShboQ<*6#yhG{9i!i~lw~NfH`1Zm@E?(&ixA z+84p*$DAO#*W|2Hklm60)-~(2TQ5)i(5%@hq(c}=^3XN4ZsRB7=LCuvXg*{8l$dd@ zt~+_zIK~f{El*`I_n~Qwaz*#mN$;e3aqMR~uc{h~bnI}NWscDxVDqRYCfid-~yze#WbQU($IM9MD zbWP*(Z(XA@f~uQx;SlBj0A#GC%4%`F{y7d$VTJI9b2gh>9vFgHO;u%!n0Qo`o{;AE zQNsooH{6G4yHUvNjY&xv=>FgiCz_kvk z)}+t8Q747PUMMQx4Y8-O(^53mj!jQ@w_P%L?M@jkrgqlo9*{qg`ox`(Y`BgTp?Wd7 z+{;aYveZeGXV_&dOlKy3U^6xQ9xZptGB~WV`P5xiFwG-sm;ROF^m*J(foh>Q+r4RM z8Ef`hzBP=(J}X5Td$zsDy_ii)nFOsNp)~~>*u}z8Mmx_*fGd48eSseF%dI@;z;CEc z?D-|6+ZZK&77S6Xl-6(D0S@z;45iYSQ(tLqn4i1ey=>nt!vnlk!Xo3GK^$XLwryN_ z>RzX0pSK9}NzU9;8sDek+`B0Pg&tZB z>1P7JTLyif<1lJb2giQo&@J5n5p9Su+v^73(6NK!n5P? zJjhUS1)*r);M=>xjNW9pDLs=lephYC3j#*uo2XKpmtd2z{4nKl6@$(#ELV#*k^&k+oUTWcgT$)Ch}*hyP`i+`hKR zlZE>CBCzgT$u0IUy8%oIxu%3+q__-}R-z&o9`3z2>}>0Y!$CyLAg5>_HboZqpEj2Y z$JBY)>~JtT$NN`_QbX`LC=1=L2!`|c%|#);U8()LDtkG&nzh$xp_ru88=C zc8#qplvr}ZbJ6C#S(;#AhlLp_d)ukO5jQ`t$B7VN;TnnG#gq(bAD3QBbC`S)3V^<( zn^{bc$chYbK)HFlm{lcNMHDC9?KuVCgOYk|tKfm^D&S;mkHtmfN zQJ6v3GBb~kKZgD9F&AE9mM+VNQb zYi;y&k`8+0QgM|7friyh0L`&G;dTFcgBw-u_|Vm9Kb-7Kuwn68!C--S?8fslCZ6;{ zQO=V9^m@SYJp^}2gFKnVT+QRW_jE_IP`^xiUT&SkBN-~S1c^F)p$TzW*S^tJtoCfW zG=c5W)iZdy%(yIa8Gko1ao?K3Wn;S8xH6aYJELM1P$}d+;SdqOB!hJWx>JoiB*<(7 zU&H7GefhzexcWC%FTi@i7)49gxX($n-o(%j0{swp_$WVXsE*k4cCKwRF+ z6;jnny#!i<(E2#TPnCN0We@aV_&BT}2B!#v*0<^a#oL~SyAqpLN~sn4!tzkg9T}n# z%f0lny7V`ryFTx=XJ=w?l^ZpaUeh)t2Ku^a8C>T@?IQ z?m?2(gx#-C;Z7&JK`A>}W^_-?L`4+PmXUo+ja`HRo?~h^^f3)A2lIY&&5NqOIz{ z7%7FxN#Gg|y9>L@C-Di&e3kuxw-Ao2JeUZhlRhDKaWKMbg(} z8lher?3L`*5iJ_u^I&Wa03}FVXH?F!=gcE8V|24uWfX|K_;9a?v6@c9-0)@K9?*W> zfU+PX$l$uph?w$_MSYX$upr%~F?_V-7d)3Y<__mg7rO~-p|+8z$OvSR#bQ;{KKs$4j|roO>=H_CdoK9IQ9 zgsHkB$AkA2o5^MIq^Atr(ypPZp_4dL>1-%oPxA9C-$^c^^gcqkt+>2i*LVzn`9;l~ z9=lr~DSoTd^gc4f5j_oom*RlRlu5scBW2Z05s%IQg-HLJRBQ1Nd4ugOq+Dj>{;rz32 zaN9)UN%-v;S0Ij&l~>kn2LYk`6SPv+&q;hrZMhTPHMmjpoo{`;BPUK>2B=9^EILJaU*+%VYAnhsB!j-q9qj6IgYZF`x3jC zMSd~-f~MBxzeTWo8^`LOke*)rTE##Iwpq=oD|yQHPMnX=7R*~9SSE*9D+7(eA5b&B zpuRVY*zd)qtv!uM4qCGsSr($pjcDHJ6v-(CPl1u*(ZL(a1=uLfD^(wM^8kjkOXVPK zG2K{j{VoZQZ<<~TK|h)sJ`lt)oU@=H8rE)20=j^fdQ^-m{El!pSau4-W|c-L-)FP0 z-5p%X<~+%-t}IVQm~(A}r=U@-%(_#OBX6Xe!M7`R8j7=Ggz$ZqMD>y??`lt*tyUpy zZ6xu)AM=?f9!QJZFpoC)f+C}`FKB4_2%TM7TgBkmq*{}7@8_#sk@$nK{(eSls43?l zF~+6;{P(gDw@|)VkaqBlAu;dlo!`P>z9F4cb{p;EA*Gx6w|f(Lhk8ra$frUS&${%VOQ-Wz1_Zhq zV>qw&ECo%flMHc)KP{8d84MPY`NHMx<6G+;h|XVxLd3bY<-rP|X^rNzIqoAVB0)$m zC};9#UNYPK-1odfVU#R%z3YoIbC=bfd|32VqtJ&}R8P4Bmz?C#e+ zG$-@eO%Wb-_q_KTH8f281suK-tE>l*rA=Trrtd{C9yProLfn>VftZW{RgwQucS{`B z_00&UsO>^0ItBU5{1qgLlD#qFd~mq9$0E0m$Jn})OKN+{TaW_Ijn`SU6_ffZOaFIT zjYI=ZE}}+r0W8DjM}wZ=ejWigRFCz~OXlZ7eTr9hNna3%bLyqmorUybr?gXaS}{wy z^3jsF&^)9=8D^9ao~&+hLd%#veW#NM-${Eqij)x!SDp3ydyy(S{pZw14^Z5=C2uiH|cCGe^hL(_x_zOl2!;2Hg5l zn*8BwP86Z8KfvD2m#8oXxejb+0?>WFbt9OyaW?va(pTN=uICEs=0znyIN|L!ER(DW zlmby@M?=GzIIS8I!#`jzILmyXF{s~m@G*-fWIW8R?B3+mwS}GKoO|8etwN1EbSEX3 zQyE?x5i~9Ci4XE9`NjSTv~+)zZ}{XDWjC^f2+t_oH3_3}%w>_8aG$lhFmZEr(WnnT zPB0Oj0Cp`503Q{}sjvKo3Dy(2e95~s%GrP>W)c|Ju3Bw2 zIqAHY2%S@@1AT|0);z20Bn8z{2*mCLki!lh(N1jTBi|vGxzgpKZ~*CjeWwY+w4)ee z^^AA(OVN>I)tshWi{BrGNoeHsgLZQ`)}M| z7^*h!t+yiMCSHe6qPJ&yn$pOS#U&@&EO9|ou*&s>i$Rr@ig6G_F;Bx1c7W1kVg=Z$ z^_gMcJ0uNpuhNhDEYBe4>|FG$3e9O)AUn8N2Mqm zQC^X0-iL1{OT_t|Mk4x1Rq5BE$P2lH0%2+xtO7&M>K6sytYkd_Fn41!_3fUlOa&2{zK;W>RZ}sAWUZbbe!@< zj6;+y#mF||asY#0Gt%!|XKdpNn(BLUy|H0CSf*G$3|{p95%2o!%PhDR85=$B^0#Gg zd%@x#P01PbZk6TH<>VoTg8e(6n!}(1VP>OIY}kow%)9+g58ZT^G4~`)yRN5m>KZ&F zj-ByM&Lb^Vp5u}~%7<$?4s21hzx-f+qAtR4RWuAINL%Glc@}mPA@rP1j%W z5|dPk`0$4I&cjN-K5Sa=)XW?V!*1jUoU>=KA{5!Rh8&%^@`na=w18H>I}TOzLkY)s8lUY9|QRyN4} zz`}=tS1M0}27C+1$2N)xk75OJjT)VL$4bC;T~O4Lvt8CYYkZ@`o}m(7?HGYNZF_>xH=jF$bUX*ShBXnDa^)DoSV3_aoZ;L^bU{)Y3hleBH|j(AEU zKfN104T;^1a>TyJN<+ljFqN;)UsGghGq-yRcjc)boC+I}+K>!9siJPm_&b_|b+o(lwl*5cxhYbrs&_EbvK+#Ej+chhA^rm}`77ipf zf()_edB3PZvz+a4okxr|9IEmcF{8;fXH}8sM4CfA%p^G4DLW5A=h89{y$RbZ*mrYi z>^xeOtfX-KCHymn(Anxh-QZn%0LVK!p73xf)S=}(O;-bUOS+t~t_1O_xU+zXTsUlk zDdoz1Rey1$UydaqA-6U#0A@Z5%0(eBSk)a`yyF)F5cG+SkTJ@WcQ@fT@1YG1Fr1G~ zB6wrDY8B2$7QR1mp|%D{BH*iF2pp>3?;5x8Crx)l^Uaz~07Zm&&lGh148;VW2hR8_ zrJTI!GoT%T!*-=sY$+VK=w=O^SPK>ALmLm2+R26DG1bZV+bG_~3Qng$FSZq1^$)Fj zNZ>`E0>|Z3JT_+inqJL5VNm1kzR420qE<9jsL3RPF_stUL#2GV?@auBd6RRIkZmS5 zl9L~ZC9y!pV7H#*=$}K3EyCadwEslnt0o&b=zSE+;ep4BX&d6TtR~4F2=nz z&@G=#3MpRXjLT=WX3mNKaeaWTNd9`491g-7OP)<3?;RCDUpr84UrEu`!vKLqo3m=l z7fP%q-^L@@4Ouz;$%`wV%hTdyr64}eH^Si*YZ>KAVP==I?E4igi#2PCwzh>?% zJ$H+}e9ntDh>}dF88Hk@wNr&4aeQ`}wO0;aJ>nZLlNm8@GoiNs3GeFK_7UgeaRpH> zX#hgwa9i)@AhTGKv8WCjVy4k+1i)B`902?hBKf%F|AmZ>$pz!5UJ@S@i)SwzB4vae zD9`pdwGL~CdV`S>+?C!lfXqC|TOfx=bqDR3-*^%Vtkg2+K{o{I5!Zjglg5@gIB5^3 zLch#-vJxzuF7@o{LsVtuL!)Z&2knT0w)KQ1aqDCrVnD?KRKU4yjC!U~WNSmv!(>9G z=ju4Xo-5H^xF0<29EL^|NV$^2MS@VvXWWapuVLIuHv&G%H~2#6;x!EN1t9v)05 z5=v6d0p_pL4E3hPY~IP@dFtM-NAhS}AuH>uK5}6YoLne0TVcQ2jP=%n>s*bPS4CfO z-E5}2ahl+2bVdakDx+)rn$zP|y?o~^Ttd=X)@ww7#jK!Obq%%H$+Dh0o09_eX#9kS zRIijjOZ{z3o5U$#r~C`crxZGOgb1{Sc4aRKhznUVNzlD&Xz*$3{GglzV{y;z+%4~5 zPyfWBNg{#H?3>NY??SU2<*Xnr!IZnN_2Dj5&y(;`QbKuwRR%66b4?uU`otK~*gxw^ zfvG5=U-<_@g{`JT_J5~x@FWvyV>^b4N{|!{mFy3k+8Ts;Fp-5w6h^C7x+Z=|55>xi zW!0khsORFV2Ijavzn~TeD7;4_nLwE4@rRLx9Dg+JJtf=#Z9I$Tvl`9gGwY>u+7j=< zBvGfja5>LGu8pZO_k*Ye$L|#U5e&p2Iy~?95?@_c^h@ViA)YQFIv`pVsBQr2+3nJU;(DOOojRlc(KTc&rfq4!Q zlML{%5-_N`8dk!$1RiLNG+^rv!kj`v|Grk-48PN;*c`+f8@blu4PZU61%++5fE-cO zw}!lb39^nBY_f)!Elic~j(Y3IVh}kub*473^!E6!|HbWyo=ccp>kIBx;niVSL->la z)JL;p`(8CT%{OUJhwKo<2o9oC^sUs|fd~U4xY|kX%I*m3l8*sE8MI~&3cK4NfUtzM zD1A9!PSsv~nT2T5A@P93h4&^HsvmYIQmMRW&<4(0&IAP7n1swlq0|X$e0O<2kNi2zUdA!}J99R-OCx}pAy`YJ`MIjk2mi2B94 z6^9=uG|>Fhq%LI{(wan>(n?vEd6pC5ZzD{Y>Cbl`jzykXt*uoUalvA}B)m&#kg3?&0ac^y<=MKJ|zPHK<3%n+q(e(02^C33(#Vie>A(0ts0OOrOBvdk*qHvY0Y9^~v@-)Sm~OUzIsNy;rZD+iM`+??`p4!E z{m~=3I@yr^&4Yh)b}_O6@gQ{m*MR)7`D*B9%nZUm^zT0Z7N~$kQXuwE`9uGk#oyw8 z`^J5L2h})1UPZx707&m!0Ah0xRxJq|gy+8Z003QLprQKHSrC9rKE)CZFaWg0$=3H_ zP*!6As)M1k!(TlK0DlG5ah+ZM>g_-N|AZz5b;KVY6Lb=PM&S?rk%I~ttnq)@lKd?L z1^G({{SW@t7G(Q>tb>gHpW6N3{Qm#a6N382_|FN02o&?LLi!ITgLGaX{$E520ML^I z0QlUXYb5{xz}5i(;Pn6itZop3W-r<}NCvtp@!>!jr$I8@6p%a~0Kn-2VLs@gY#T^^ z0J47r)d@gyNf3f&H#W!@LL$iC4umlvyIv69fnL560(yZa$PWP?C|)i|UIX}RERF3! z_=o-+FB7O3xth2bf>6uW^e+Ul0J49dEub0ZWa!}V=Ysy9L~r@`l%y8|RU>guk0RjppNx~E4~R!SPo@_09@T%>|U1t)a7Aq=IZsb z`k&=qb_WpuSH?eeSHBz|i{by4fCA6|sl$TtCF`H%zmEq55COC_WhDS$r2kv^zfy7< z@8pSIj{P_MCGeNPUjly#{3Y<0z+VD?3H&ASm%v{Fe+m30@Rz{YB>r&}IGWkp zy?m_hUO4>oG{pbL@Q<&=0s#Qfw03cGH@1^-H=#0dx3)8*;^q?I;bM0&w=*|(HUHm8 z=5L$-68KBtFMA2^4|{*gJYyb8vc^{Nv+>J?5DK0Rw^(YTp%nHaSNk3jqjv z_~@8Y=pwJezZBSw0q|Wg{K+WQhXr==aVkWdovauVV4?Jp(!tbAWj3LCBv?t{L9Bcg zd>8Vy7@I)vw^YB4E|M&-e>Yvp=$rFwf1`LNJ#cKsfn0xd@fDHmkw(Z@4&<4=^~sGR z+ri~|z}w(Si>N@AKl2`KGvO~plB)E>WS5H!8R7HQ}?eP9Zye+ddXiI zvIS8K+Ott{T3xX`k4pO^cSTTa^zvp#h*T|{4lc3bxS${*1yc{=wx5ZuaocbU4KuxjFu^JX^aV15ZR!B1dht)V@1#pn{a5p?djP!79;*$LqSlE<^`T1|US<#(8W!m#Vc}kQlrsI$-S~DEeSf|9Da1h9b;X>0?{f7%^kJ z?BtU@>{(wxO){K$P2z%1NChWPHjcJ1P(6G>hA7TdE^=oegCOCR(4}+P84p_qzs=<9 z1Wl)6E`LJkCXR;`r;V6FJ#%gMp2*sYm&eF>+ zlHa)r)YB8QIr00#FxHHsE+iN`o3AYqv(OjNi_(E8Y?rM_e?V3m*sjG54!u6~AZPfEi zx0(T?Yzhg~r&l=Tzp@$Tj!`Os79=GoO*~qTl-wHSkF%+E(TO%%6Wg_t{klBwo-&V& zD%?0JEc+XQdiWfZBHk!ASXoE`pPZf}cZ)@hI($FZgFn<5J+2aZSyZl5&I{- zlbHVYGCnwmZN!1adMPTHVq>PL;VGZ($N>4wsho|xq{ZEeA$)FWd%>nmLIb-FtEI|2 zHAIyl$&z1NY{?30{8nq+*N!YqTVH;0vd!seXqF|H({Q#*%4D~@HF%i5x8@C@&4G(H zR+5I3KVEG#NHqMY3;eBOM2dX)_5KNnQuifUK)VIOBVIQqp5y)zuGg~kU zS7R==xh9h?jHJ)uh=b92)yg#oLckiYL_a1G?<(<$4KIF}>e2~x(Dzhp^%Zq8>8}MB zYcDcu=H)@K3G`M;bVw`QI-GIrMKw>TwYDN<#uDw7K=D6NhxW#GKFwwWHV;^wSfKAo z$c)hm#F?zEViCnKF@vE}7F(kvW4uyl;bMfip@|5k_J`Ul++hV5HmB(E{K+Qu_+mfQ z*NVTSAFTRPMzx>Gcb9)kA6L{*&|dA*rcF}SO^=SC8fX7UPqYTisAywkiOCL0O3}x2(CJ%w7vuTM#jwYcNT~c|0O95v=9n$ zRphh2ZALSB5&)gtXKiE|^u6QoAu=W?0=1JjmoDQ{eBr4_cfX(?^oy9tQK<>;M4r^+uDnCu4B#kTXU{y2xj0~Ni7_+RIchz@O z`;Y$YODHJ<(dJ$LN8)u_N!lJ9x4b4}>mjX@kB$hze|VA;&}R(eH$qKkmMZUHd*52q zKNc{A-g2n}z(7?%o`|ss>}g^`7!m)JlRU6T)ON}ni7Gysyp#U(E)y;#%h_m$ES?6U z02qRR36B`4h5_~(85qM>UJgSm%2o&*A(G2tPPYva1F1XHnt zuy3=MmGe$m3P{vxv&y`y9NiEi@}k$hZ4vcDUM+G8T_gzT zVWY1OJqrnK9FLAU`pA2dc3d=0ZrsAiqsY-%JYg503_(zKQU-6u<(k}oB=z4`2mo!s zT4FX+M{JiJ@j(<{ljIw)$J8iXmWQ2dUx{c1W1I!Id zNi*G39>&r(Q`7<+1@;bi0K~!=ITZFhAHklgzmqeadkdkwn8f2$+^@$7DslSbp9;*E{Jhi>iNa*Ondx_xxo;bd@uA{-G$+C z%T;&yLykZ*2q`8CyNm8cBQm!|`MnII+!j+})vILo55I_fx1!DE$1!-hUESw+_=R`T z(FruT#bXp!S0BPja~sjoG2|@5z+mZ~i;ogK){3Rqu$$+%FI5~2#A?EtN`gseZ>Jwp zS=wGKQUc+b0k~4EBo>OXar3q+gwyMQLr?Zm&|7nG=W9*iR zOlN+u+2mp*fdd@r#e0L~>`yEG2lFia;ToMq%0iG~enP9C(pBfz1QBYy;dt?Q0Pz3-ELl`8FhtNYt8!7R5H0Z|@Aq*+# zY?t+Z1NQ8qB63Ze1T~BI5mdYS)}8PffoM(~faFIMgvF7pdPq~AwjCI&+QEEBV=KLP zWR6WQg(9H}Apuzjgop-|$`Vjj(q|QA!ON9c|+m$Wo;sMjS#e%PED1X=FIpPZaCBiC5{%Te!Kjd$8Qz-A{3&=v<@A4POnkImN9asu zX5cpM0aGskT@R-dBmG#!|PV8r-2*h|GCPbo5z~mi-#e4$BbE4$Ty_5E00INHH5SeCb+YVQb>Q z#jW4I{cQ+9FRFK)W6yhuTprjES>koNVO+4^e)6#F{gP7#P_!o|cEh~qoJ_9HllT!t z+bLBBfQ4k14aKn_z$%Ze6UA0z1*ZvwQ<&{O^0TW11!sU0`~#x>iERO5Z*t7R!wwjY zV-fNk?uWJ>DmopD8-!9V^1F6d8bP`S@t7^ZsA)H2~t-n5K4UlDj z`JTzwKN1aLIef%-nEi){2$)c3o$CK0j1pDW{f3g zjf}4gCEv<2ZXOu>!3t>np2}BJ1Wx>0A}kGk{9v%B#fB^xY+G4FjJjva-8i4|6*dB} z@H>K>KY%abrGc;qgYLP*1gDXrdyPmaIEqReo?Noeo>tQ>p0-Rle`Zk3ZD1r9jOzvk zVgX_Zyg1X+;HWth{~Yv8F)CBx7*knc5ztoD@FrsvOCsYSIhn?rH+*CHlY=$N}5V(&m1iJP=C zayS4Ky;*8>K@98T@HlG55df1b0k#lV?|3>C{1qn{@#CQy1-(u~zHsdL8#S)1;dUUA zC`}ClvC+iU$&c)E1N2XG5mH>f*$4LtZWdwQdj1I^mjan=8HGM9W}JguOZ9YIPPOv2 zyEp?XnMEqh>B6@K>Gt1JXo`3esRjfv=Q_C6a6LGW9V>?AcgYr$T{(bG{|E;rJa#j$ z?(gr8%;1mL`kJd81Z%{kz(hvpU`J;dqrwT==9rFQ-n`Z-V}bMJYSo$o060#1jQh6z z$#HR8K|x~W!mp}rIhN*r^%JqF($oPS9Q6Ml|JLTy&dWRrQsJMTqO zIQN)P#na>P;R1RI0Iw4V_7Zb?p_d`_+@x{-3ZqVQt`g08w;N@F#5E!0W367pZY|xH z&wYnMPj5aJ(}kq}rYEj=B`B|~uC;u7$p49?wEFQ;!!$gvCuO>WOdMop9YMNqpZ=dP zT80}{DxXio2!)CH!9;RCWav#^id=F_Xi*_BQe%Ba4fRJSMm1TS`3XA~`ey9k<6n26 zg$^dpFb(NZU{ScaH=_a3;-;zRHG5;}a>@lMkVxeNNW$Q7BmsQ7O)BJ}rNx5#_WA*(B>Bc5J1Z!~B1cmlPTXo&t z|Fo94bJsHSeZ>3oUMFAV4yaR$vC$uHwJ&=|o`&~A!9lQDNGCNf-n1nQRv)DpnvmD> zs~-%IWlR00=KkhovhtoLhlbY320)8EC>Rh6XJ_(>A|t>UAWxGKO-LZHMHQNYw^i0M zRd8a%AyFy^A3!-){z~UN%dtn~kOyVfp6&(7@>!adAQvej0W(!0Qd&X5c2LCc8J+H`ykA86pGlPOa^H5Uey)sC& zsH3=ALd444ReI-5xsi@Gc|>?seQ{N_&Zu;j#}nC{Z)!)U1D&*wYeNIhQWjHvVR3p* zd-@wfr_A>5Ns=Fyw4SvEi7LAFhh%5)B5}O!+WN3{FHe{u?EVT_VnXBf%54h(nJEkg zJM?(3H1TQSxm!|(Chxt9nJ%n(uFn^$Fi)#Q@-QQ1kPHq7tDod$^mK`t6dQ+=`g9go z@>;jXLite)jRBHBWzDQqM6uQ_3?8&&wdUI|M{ST-)KabuHEoR9Qyq%iF8|mm8D!1# zsilv)$G-lhVVErZGWyE zCBl4tNjIm7aIz8&&DxR z(#hmVjW2M>jOD6KZ{9%+!@XIpfANq_x&0KATKZ6}T^+Av}9rL9`c1 zeWkFHz@l~vRbDh!S@sZ{Ap|*ayf<)&DHZW7H`hPqDe)O9R$W(;JCY~h{ZWT;PSc+< z-Q3+NsqHRI^HCFC2G1r)NBd^`bg~{=#jLZ^d5e+cmF6omU&*CNLZ(H0)=28-{)P3l zWGQQhuMY}}$D({(#iz%^!2T8zo;|#JKV#7`Z+-2Sdno){$W4~$?TEafg_M)jE(lBC z;%=Z39LN{TO5KjihT$9yKCvNf>2G7S?`jnS**Gw2ik|Rf4AW9CBkk9DMz}+Q=DJH$3TpW z--ktW7euR8$Y0c z5(Z-nD>o>w(2Dkma#?yWyf<=uRf)@A)LihjAsK?xb?jVQvEpg-*209c8z!zq6}DT8 zDe`;EbLaDo2y8Qh3jiNY(GB~36$@*$aP6*nh>r^!&dSqKj!x@a4^0=docZIYI{h+D z08P*qf;a>qKMU~yTF0~k_jdJQ2iC#1Ru=rot(DuV`IyV~*jLgq@bhyMxLX@GiOT1QR_4>GNPe zXe2@@4tW(Sl>U6>zGwew` zRK)KguB-+2Jp445ErZAb!LV2QI*IdQu>23tDIj)$Ol*cU&SsZ8T>FYqPEQpdQwU=l z)&F}oBbsuf699+<0kzO$gR>>@3OHV&i47m|Ecjo3s&3BmDE>S$Cva-s@p$Q&I~atn zeDV|9zdgVHI$M!`hIXLLmm;iVD8XrP43jW8g4qDWOI@P*VR&{H*G+JiR^4-v)|5ya zcQO^3qG5v2!WzcRJvQP8+j0eg0}#-o(ohqLB*2VzdOhdZ0H}Z&@=KS4-Q_;3gGBQ# zbDxlgq7cHB_+e2|PqL7ODm@g@s%b0%;oo?Vk2m4_$ktFJGY(A7v><_CO(0we5I~QD z5{e2q6%9*KunK=mU>>#q>0CkcgT+cam6KtHV2fVcZX275EBU~#y?U0)u#&V#^rz2* zv)oH9&m`e`9Kpd1NePUx`OETAedSmc8ZLbvm4rP=iYb0cUTiC+m+pqkG z^M1AvmpgH>@DQfyk+C3S1&oz2VGzq;jpczM%sUrOO{=bu?>IuY5&}hpoLiOdvzX|K zeR@4NGGK8Ox}+w^NYO>$C)w~GUorcoKz-U=0@cF^ zgI@O(1r^?A7Rn*k5YcRMY!pvgQuhP=m3s&oQ5+0*&k_98eN9Rn>s|;G=fdpck}4>L z<$rjRGIP0%4E}?7u*w$`Xrt!n_*C{P5jma~OjDRokB0T3Efg$3D@;YsEmmST6#`m@ z_i5Mv++SBAJC?r?f)mn1$lb_alQdA>11)@Y_q`!Ke*YE~A6UU8R;VnYB!0d^Q1IhB z+}5iInJO)Ifi2>zeGt_fC7&>|fq@X!DD=gF)lShQHYb5#8v~i})bAQp5#@6(+PqXN z_wo7R8vX#Sm-lZN!eA033E%_f)vgWL6_F(J#-E5rwhfrJ+tVaH&rF~UVH7;t%XIHH zi8U4u051r^KmjY{Uh}+0QwJMSF>3uwQYa{MuHuuGagm$cjNa1-6?&f~v4z=8QR4?Q ztt6<)oxVuW`wv4cNPt)i5Du*c{Gf(et#Vs}gQnrj>`;1b{}lRIE9XzT?{i9KeuKR1 zh%$0)#HK)b`dD89s}~~0B?%O-cZJ@KaXT-_pknJqP%=N6qxGaR5~VjYzOIAkqeG}O z<)SQWBMb0iazXq+cAG7tqFVUY;^!0O9O+N^#xqPM|EM4NlWaF^XKSm(?}ELp88(vS zW_n+=Tc)0-4F?2=#pCkjK8p+GGFzL7n)-9Y1t@-kAZ0}aMGjd60%!pPOR_Nl8z&fV zA8!Z8j#JJ~ZASB-f;bP_SC-eBor^~w>G=6Bytt*#ea{i%%3OPM8OSvrUuNv?w(7JJA++mPaK$n ze<==3Kp9AbgT#JTHJ2kr;=U+s@_$JR4kMUBY&tVdXOnHj#u6;1hs}y9W4~1yKTOF4 zE=+cQh(-xU(;?eJE zROHm9ZG=jkj7zvVQ&p3{78m#^?z3OEOXL$Au{RgAOKpJ!qDm5FsqbL;koc3_TA>?uXKZ}Y$87?F+X@LA2Cq|b zun`RaG5^THX9(+r?PNq`sLOrI25i6{BK#J)k1%1^IDhu3GDXlMA~56TFLVkA(C@3s z0RTaK9%A@3>ynJ)_#R`|in9Mm>c4&5$Y=wf#insHY<5|ODqP8a>fs(D2|4_d_aC4x zk1i&64h`8-)>amTr#rj^Wtgg_k zAEmNdZCog>?#=lc%+Vs^9N&HBiwpz+Pzg;3l^MU8#t%%v5d$#x@8PU6SP(Px1JJY6 z9t*OQg;V#EiKicA{*unj^4TfBCy#@}%=DjkAHB?yYp-8cjmR&nf3~Q=p}_!4G)62h zmAIG9dI@U}EnW_86He~e-2dGFsMqqamf+yv<$XyvVHrh;a{nYS-%~tJ2AambM^$|7 zIDb!aE|DaVMoSG46KT+6wIV{LElIcI=Fml}7(@#6*W*zF2DTg&u+U`KB){hLk{r%- zky`PLX?o^cxm$5ujzcy&cS4O5-P*)`he-&~j(4Fo6ii^@OHaeZ2goK1MXD%Q7~`4Y zW-SV2>59d$xb-gN4g+wa|*w3TZdFmTFOF)Wnq?3BOi1!%mw{ z)$9#xw2WXgaJ?hRY+s)?)_<-4SW);kyWjN~7p>*o!s_CDI9!TWSiV2%y^C*+J%&17 zcS-9!X(t9DJTmw0Dk~FEM*#>ydXI_M3C1Fo&^11JB5_#2*AHE)>kcc@NR`i9zgr&> zvu<3~*V>ja8CB!ureX&)mM1%WM5|P(PW6W9Ui3srbD72Shbetq>6PObV1?|^EI3!+ zlxk%B=)6C@{h?gqi86KVt*O1QL7YI2&;2Kj6Q>J7L~1mn63`exr}_DG>Kt$M1QRV4 zKiQP7RIXLC;4@p>(2DJ#-x~MFmDZz`vjSeX{cD|xLu`Hri|{{Z-Jw@T1N~Nl9$Dd8 zN8!#kE6~=obm1L!+{7dnlmZoxV0!l1<`7aWW8`+Y#pRsA&Tua0wGSPaIK)$?+Jq~k z7dGZ9#TyEhQ9g6FbTjFpzt}V&5Y=XvVh3fO>F#q$^p0RF(-}Wo)~Tx**zX0i(;CEDjuVhBJT^P*7W$)X zi;s#-6pzS4n#}TWzjqaDz-?Q{W2W-SzUj27V?Uj<9RGj|GnyiIh8q}f1$iqrOHF!= zJ@+~rUSZ1yn)JBBs6+CDpS`C{X-fN2sz0h<}d2z#Nv>OkP5!{ z72P7O8otlY1h;IAvtF$@CjG=x&JS*-8u0KJdMf3*vK8&(tvPBAq&=(orX@rK#l$Ny z7N?6t1m22gZ?TDJdz#B0xKXzEjX3AE7>@JJI4OfP_t%z zj`Xg2KB<7%qUWBG9h~al@0Z;FdT7hollt{OQqQ}V%WJsuCuxPgE_+;T7nF45#~ShR)R66lbH8OT&4pa5zDm1$PUro% zm&pEu2mzOo-)HZ!XzJH!IN8l^)c4>o$gG60BCW()3I~vMzWTO*9skv3? z_Fi^=DBma&COD+LUsKc|&?ikgMi!7Q{T?`B-pL6^PDp8ehlt}%fPVKbtaIWyA`=b& z*exdC5}4^g3yN5b+=fbSS8Fy~CNv8<`i1BPKLle5Wag;T5&TRUcl0VY6{|H4>hU8$ zlBOXe=WKvd_!x2E&U6;y2ArK9PY*T`F!Jvk7zHPYRuvuMoe2gtbNK(8rnXf^kcP(t?lVMUVGTV9E8L9Pw4AwfV} z<*}=b_Sv*gWIs>RlH##7e#TQG^u(hh$!oZ#6BhN=VkoEAuT50d7TJuXWb3T8ZmFc3 zq#2;iK(G3%EPCX{#{;qc5F@@kUu1jVI)L4^CWIg!!xM zeiL(1`X3I8;y0hvZa(h7#s#c!%)*Do*4}fdvkKQhyxtS5uWqW_)hLHp&XibQI1gQY z5o0i{Bu_oZ{|u|KOfmc5Nl?w1xbd|3XzoYBnjta%ipJQ-uzyciLxz9h-miQ%xq>1I zUMw!vQ6`k-o}rqosltP%;Z*tZCnjI`X;f8ZSsRrdQiMNCzf48-3}`HZM(P=V8Ife7 ztngzN*ZZFE`Vi~3w*D-rG~6gbQznIwg!h}{X->YnsIlCeUzcW+*TnUlA5iKdMq0mK z3jQd>w`L&pVvi&A@FWyrZ51rZd-L;IxGJshp}9VXiDX|OleL7L*`8VRB1FOb(f;|; z%zsyvT}6OY6paFOt=Um?0uKnLs!L7F@_Rb}nM}cad7q5rS>^@JH@Cl#9h6^+`0Nly z(M=?f#{}FIvA2?!j|_HZ3fSB)i>`1u2~C>3KxW!3K)--x;NXu>u@A9Ho@UesOOVL{yt@*A*?12 zkiEIYRYYbSC0u63l+&Mk)mSBuSrw;(kgs~_p)J=@7o)41{gTb>d7O-1#Mwlj*qWU6 z?AH&FnT0g8zxWvGfl1GNe#fd0oM6@!R`9pR$IeH14Uw)%W;O1VtgyfDRNg>WBIbBr z{u;CFP6iB~{b2IiyePTX%d1>L>!@X?GEXSv+0lPc1DL#f_#65VOK0M-(llPZ%CbchwO(Zv0e3K! zn%oGmAt=M_?EJK<~h+FgtNTQzFA6=|35lVf$ z&Q8a-^D1GwYb8n2s*%`%W7a;;cH@qtpDlRaKue@|Q^XIEvWYHs2{17J3mH`6m^oG~ zt9IwuU4LuYXg8pr5+9_o*@wL{Z@pwG1$+EZ{HF2gXyRivA_#Z0N8nBeo+H!%@>PSM zM_}y6!rA@QKr80ffH!vn(tnRV^%hlE!(Z_2qqkb|LnE28uEV8-TJmNKIlu~uLBoGd zJyWd=4mS-aYdAV$;>X5 zYWMk7VeZ`WaMN#f(pk6MR&6+UJa<(tI}>gBE;Tm8nX9@FQdqOp!3Rx4sM2e`jGRg1 zZI}VrLVhvN%krS<6y!gpsASRe8B9BVHQ^7ERQX^N z;q}f+OOI>us}m^9e$4h;ltAq6Xlns>fR`90vi6OJYj9LTgc@Ajr~0z6!Lh)wLuaXJ zp1{7j*53nWrv%A{{kytKW|e=1LLu6vEMr%5go7;0~z_l1*RL@0%T%7VgHv|WaD z&N66DvFE)yXwJq1kdGN@EYwa!ERaqDypF5Lx5jg-W6X%m*cFtols3I;p7kTVl{wW! z>p$ct+*Fb6*tcFTS2sTOwZ>ImGtmkZTd(H%=f?=vxF-L9F@WO4*Mkr$dRfwj@C| z-GX=aK)PwK_58Tc-{QpE7!*SHF=M`O+rZoeFPQu4yIO@cY-4z;MXquAXeKD5vV=cL zr`dCGD!Rtn1YN%(FsCjWPH~SZ9W3AET6X}UuxM$A7Fvs7Ux+4-J!aNjR!m%jLYC+S z!jts7C$G}pBL-+mA>tsJpV~Afr~3Ji@akn!v%nXu+PWQC;{4F5&URX*_BS=(sAAC2 zxr>l`o-wqO+RDhoa5ywe{y_W1^=4*V6>ZNgTJ~HOOtNSk2ClWx zpBJy#_jUsgnvba{tFyCZKIbUor52vhmPjf-)-dI?b_l0T)n{{T`qOGmcMwpu25-=t zt^^A^L%4J5h*|pR4_)80u6?Cj)8*2&F56rdK_F%F`$&frnEG$@Gk?i{DwnmG0G*Zj#$`m)6NU$V=*(dm(iS znLOo6a2%S*M!f)ecmVXm9y{>?sX;WvZ*9ux_KF}}OXK7+!?8x{gNLDdb3;mWh}QXA z-u97FuveM8Lr4=lf-CAQ4z;D$yceNRF@?ttV@z`&h ztrP3@+iVJ*tcv$Cbxj}l7RYvN_3#j$vggOg!T(>+T0%Se;mIPNjhTTXOjgK63Q2vZh72Ja-pvd&8* zxZ7|g2AN+ZNDujhYzv;Ct^RslYg_q4_cjU?#MvaEM`u1c?ts7kA&p;9(4IZH#IB)4 zlWR$wj$P*KQl=#{emk6Vp^(_yoJ^C>$#ByLVMWhTB)*>|u!N$)b|J+1<%l?4kiN<` zX%kK`=g(jcOjGX#_~1w+*x8$k-_3pRV-~!5{GbI;O;DfTMqR(Zksy+mk=#2hj%sE< zpZdZ`9L|n?dtG@Cu`>TYe-hdTv?(&jJG3_4b4}JYIT3T8>euBn?I5Xw>7MVJD}I?3 zu&VlrSY5~WYfnft;nbstw>eCwvhUKfG>tMQyO_F=m5m2;7ed}g#KwsH>i*es^RA;_ z3kXJ95HHv#p$^?bG)6W>w{1L%&^~XF-?~hVkQRI2X--h{;8Y*E*cz{l=f8ggxR7|9lxi zYqa6MB_XRIvd)-RX&-5ZM1oI}6X`nG?F-y`=&+JNdi~_Gyv=Afu?5Vjz}}D*oSv`JvMn{8b8}F#>!(<%@4^PyJ5# zbEUDqaN=(<@>)btyhCwE$gk6qi|L{sCSfb5 z7%q>_uF)+rGD2DEbN=P)PZ=a%pP!>Q1P1LJ6Pnfza7`3cH*VWrua^~CBa>5=upz>s zqocl3=(zUPz4>~{-$;PJZ^I*FL?3I1$l4R&rVk@r=D_IraM+aD6sBV&@*TboF}Qrm zEG7>1T1@Qb*2Oc@u7kLx(Pp$>Q_Ag5AMqUKCSRYgutuZ?08&||M~6nC1i#` z!R2DoK7}mNJ~Ta&)OI78>{;=QIeAa2BQ?COmGqr2FQOb$&-v96>UR3~Yt4M!vL5gK z$vaeN6Br1_Or>j~lGL3UQcu*nY?r4NTwlvc>R(3u>a(mpZ~-1eXM+6Uki)s zckI}Vkxr<);D(=V(iw(DXWPTiDBt_<6tv|!s~Q!&N{VaQ5^YE|jZkoZiPc@Z_JC2Y zOzoC&TLki4Oq0`WWP|XkL9Q;8Z_d7{6$k@+OU<8ugob^W%*da6ef*tZiX^aD&i8Pb zj~OSKNszD)$HDUkgaY4(b=0B$qqJU{e5`Eta1 zR=3d%`ELe2LVw;YHi~d`%-|R+sIB+Kj!x%M@*sD>=f?=OkFOPbq^9Ej7%Wocn0ZaX zaL$P&=F0Ku)m5W}oV7Ifq8fZ?lq%HlmIP|sz8sbkmNk@K`12nY22*u0pOqeO43)a+ zbqZEO=4BiC`0ZwH1`rttyQN2MgGEGYpYliib%S!4Sg_SeLk9-$c7DjKi!I?1gnwlg z@Ee7%ek8WlnZLSsNm2{!5!TmwR~-}8urWrDFB;4_wdsdDqMi!e?!F%^8=^2LSdtRk zN$T-a+UX}TeRPqOvWhWQrKgWuDWvQs3oFx#rF5QG>i$S{61!!tb;+EELO{Q5yJA&Y zWF3mQT>H%|=L^;=3ZzEtBvoWmFZH`Ej{&;%*?^Cj$b>icP8wjq2fy0N__Zh*xmU=t zi6(YC)m-AD&fr(H8btlyQXH754^|wUn>I$;wAM@B<7=R8Sew%c2^e8kn&pA0tN5+mJn0txT_#vOGqA38s14Noic@yFXHL9Gb0-@ zaxo$Nz4r*u(zqzm(&ZI6prvPnpXx(B}1ovM^_-MR>} zB`L%3Rhc6thke&MEi}x{Y`-Us`2}?x~R0Ms!~{p%)y)92UJL zS!JOrc9&)7_N6k_Jk!*BC*g)QgX#IPoISZ|itF`Ovwu3c+2-KE`>_k9Fwag-&#>p= z!jEAb-TBWu^Z@keKV3`jGgDA1qc}3650`54H+0zFZ&FR38=1|T%xu{ESWKps=zZ|S z$l_37lc!t}AHwRVK>eUo(pJ@XF;lVPoffhs4GYVwY2} z1$M41zhjUAMy5$)4!Af#q6LDPt)p#R8OT1nMPN#2dZ;dE{y>*Lmt{TccGr;PsOXdX zFxmb1K17qG=!?~+(bZ^}!IH?gGP$WvO&yiWWE7q5GrwIz)A{uiDmrcZs#mOYZ!Bem zwbrE52lLV$tJb0til`iH?)%*Fq&R)aSG zG|q7t6klQbhm}l=WM<@(ov3o56gdicpiu_~x3~$gJ=*yF@;l5}@@-kE1O33BZJ@(Q zjD_WIxsrV8{}`eLf1AdD1pVz>B~MW=!v2sl(_G!GoID>u;vy>Qu$uPgBMK*@yylQe zlk}kHB|~mnl{GW8xV$Eu%ZW+ZsPY zl_joB9vl-Jwc&%e+{prn}+j@TQ;wWNu&|LH3q)+QO-YnF@SJ9)W@;7#y6 z_T3$;a%hmNHDlPrudR@xTJi3^Hxrj1g5@t)#VX_o&EEo#kNb=tj!SU&Hz15#H|gC3 z;qkd8m(GMFWfbR)%#Bp>jzZt5MqH^_pAQb{F;rt`ErSd~rH2crOwPsF;HI^1FK}Xc zdLZ)$y(7abER^?r&Z==wm?yw93O*5IURAo(5^`{@>z%F>{>V8Un)ta9CM66BR1}R# zhluUkt%(MH;DdXIPN*%noZ_kLcwD}+e2w@Ppz8>1z*G22#X;IPkAgR|KzHC^Hx0-R zLEn84y?1aCtF|_9;!Vt1%Yle0pX%7>%B--s{Kn7if}cYa>S3)NLc`LM%Mv?}?`tG7 z7~wi?YT_AAm=C>{g8*$n^c03=2!fhZOrNS#YDdE{z@warR)oJ>rt zh|X>5&NMw_7E5Yg70YN!vJ#|w_5O5eu%>rKk%P z%A6Hdo%DDGs2XX#$BPlkT6G*2;MGACoERbp=t!I$7LKWf-6Mvog6WO z#DZ+}acVJxUy-oG_1_}s3y<+AV?->wC72pxjky%G*EMWs4C}Nw8LQ~O@)cb&O3|)<} z>Ia%xtK*gs`1otq4G`kufVsRJlYzS!u7vTqw1%h@HGlbAW=b#8X#Nlt=dR{oeg}%! zvv516gCUz5B@(X_Z=m#KC|XZ-KpM^77<%(sscRwpUI6u`sG@xTO`2wW#lT}w)SUb} ze(0_#R5_S$(F)_jF!|0WgMPZ-y!E)rUFxW96j1>Z$PATm z2uPZ$$X}?|284&>!mW(LQ>kLYA;#(~=$gAUT_cEciBHCAZh|&Xutf@_ug12t4VX^w zk#-Mz15uuO!Xm{(n?yZj2ay64_ZJr_{8oB)%u#UbFr+iQFG>I|pEN|@RgV9{_v_UD z*&Co3Q&>2DbCVuQdcDN@tS%&C$1%9XuQO)oZsnBM8O`V2WKflAAovbV2m#x-+)hfp zn7pMF1c3lqUjC(J+wcR@8ji^E^mnMmvw*iRfN*BcqR&S_K5-=MHR=5n&zvtv;R3m(XHN6CTNG)?2-a15XTXu2}T zQ_VszAwS=wle6Z~xnl?VxPbpTk@M*oj_A7uT^|Z(LHW_Mr>88 zNd55;qn@L(Ttv~84O4YrdHUTTt$3~-;$7SYXu+gE>-_3%bvYt}Z?nw>HkJuRV6X^w zly>H+L~;3LMF;}lW`-mGD%qMyB8F&(bde%)9IR=bcVIf`vXx936QJkWU)r*;25}($`7#y!)>_JM z7PXn?HnmYfywiZ?f>9i>JN7u(DC;PJp4wK6K~HY9ru?UU8_wO3>>=Y1+D;!d9%~++ zS5pJsQ#92ELV~B+iYy3v28SJY}>Z& zq%oQ_-ce(_L1XW;)93xZ@x159`E}OVV~xdIYu@*s^O~Yu)z~U~Yn7MEzedf#MfD%J z+VNWS@Vu%6)E*ukdlRqxas>0@afD%3oTt?x;5_VD#-9;asHE4EXeIW7hUV+x*|Z>x zI!4_2bI;mbj_DdsGF;zoI(OtT8<$ybHtFN}{;As$x4NF?H?n>L-dc_6L#|@Y-!Q)~ zY+5gdc%z)ULmeUHuiv%6GU;RT@gD8&1X9RRVQW!WXAUGq3|0 zDz8VzrB1?QQPkdjpzo7-9BNQk^32KX&AEaH{g1kFY`*ivIsW50<2_h|Cin*h-y*dpzBznB zewMbq5Ml()LCBPzB>ru4ol{FM6Ya?}r&G>XD(1D3y9peIjhR|SpO>=?du{^1V_Fdo zw~@_ZmyhdW@8WxfydHUpoD_6}aIWf4^_5}Up%A4wJoC=;RMqdN2^vN_wM~`u4#kv> z2UcN&=AL@1xt1!XxVn;D=SQS}gL1+?KUPbL<&18Zq9q4orz?t>q{yPhLhrycc{SX) zUSwz3eMbN(!XXgMR0@IV>iML4+gS5{Wf6!G>`#Y7d=iGzRaD|@2BVdo77G-O9t?SL zcv|1fnZ430hSF+Mk>pH2y%)*suA( z1B5y`S7;`1Co&x$L0ZZ!2BeL83aKd{k>ih^T829vw0VwU&8-LO-I6m3M}cQ~OIspRZH8JZFWroFIVG;C9317HYyW^HZIHRH1O?-Bh-hL zVK1za5)zc@95&(!guB~VBr%yzR$fDx5UT*D`u)KZ*3)4mhvZ>`k`*ej<2C2A8%Wb9 z&N%-4?AHukATV?mP9%oO7d3!H#`PF7Xh0Dh7#e*Z3Kdi7SY`A3#=j5Bt+Ipj<3YK5@KPob|PlqXHXcS6aChZrY!Q{TX3hM)(5c%~Hcra5k*;H8iYX zepqq|4+={i^64f3he1&3Go+e|<1bEb0_wg?;9H6qPcRUeo{c7t^ad@n^>^x>gNI6_ z=Sx2r7*h|8)DT}xWJmxSZcvOA0%wLa2^Ip*9)Zp5b^x?&jPD3mQNZ|(9J-b=O@e2G z87~VIdY{S=2E=p#6v=~@oVZKl&)sDJA7NJH$ge2L);tC2HmisSgwAVg9i@}(N?XS` z@L~U5^`xJjWOl!w;aMgsxu1Rt-h5K=f;=SB^xv9$S5JQw*|4XR&YDCZ}oc&%yLZRIXvMmQ$Xl4CNHV59O zvi;@dqMDcaQg($lF*m2HIE=x$Jwf05Ij}#gHbb7>veXnJF}P(v{KC9>u)Vd>_EKqs z+kW2Ls}`W%y^^|$K`}Jw?1zNz*@M}f#N^#$ch+`9G_|Wa)pObVa@pGwA79>UcwdW< zQfW*`Wj1oM2^A+f-mN0YD4A)=K7Z^rr)qFGQp`!yTRCnS-Raeb6Rh??Q zoTaB;%hn8k=QGv{GuniK!o3sOWM(G*O#jB*AE=IUT2-HwlnKFF>6u!Hob>n1U!}I) zufx#*cLLxQqVE|;N6_js4sG)HwAw>c{00(|Mt2oz@TQkzTHr~ls>kEI4^~-@hwsBy z{mDgeVzv_0n?(sZ+Aqwc(ETU!}#I_n+GDK15Ps``T5xxkZ0L@FVwUt3g|mwT8wwX|_Dk}^phdh9xYvyWR$|LP#Z`KL2&byHti zEE-b)e%4CBZ*2&^m@MVdrB|RqFaK8{OM=1aHNgf~Wg?}a1Gp&~mVMxvp0dWJw03(> z@9F93?aO5pi*sS}-IoEm%VUugT%K1GeZinFMQ3JxkLkc*s{7QHX^uWU3DGAs8~rH6 zn>KA0??{p-aT~wwF<-T4m}PQY`i_SmQ5zwN{X#2p(WxW3<0U2I!p~1$3)B>D@&=5?x4g7Bat3#>Y8U}f@V$8ow zb!8{s$rdEA$wLCKk|^Pwdgp-Q1vnI2DzsW5KZ;NF1cQ{`4TP8;{y=J|meL80Z>S1s z^r>wN!IZN~tTBI{BJnaDl6cz(Sd4gauF&MsWUq_Qq~#M$zw~9!Evl6G4{ev9ian3M zzy}6!1w)abJ`z=>dLn!H)A5FZSJ1eI-rLy&m9Mm|{>)h-8b4{g(*6R#e?cL8mzAaVr-0x z!|nQ!+Oxyb9Qghg4SyC`)%2H4WuHmT+fDBAT{FkoC4J{&^{*h0)q~R3ce#$agH5p$ zo|4RYCuK8+0r>%=;n52{hXJwqFiuE=2Q-(4TRcR6p|7FnJhnL7fT`$Q~O3HgeQ1F_y92FMUdn7m1fenpF{D_Zp?B7KjBJ#yEQk-#<_LNY@OE z8~~K{C9-Dd8obVmM;cu?*LyV0MM1{r;rC|H(yYq0=pe}kuVYcaqA(RAF2+M`WKI0?h$jcg zEt_;sYVb4d?_&5!nM1}>4d*ZooXajrT-iune$y^vZ9tZ^43uwV%!1kfBbplZ2j-}0 z$Ina+U%|%2S8dJzvZ;KGKG|Mn5l-NfN%YEByU|JuIh^yc-A|?u1Na-o9b;9&sC}1^ zzRJn%@8}B)^JdoZdlN>h2+6raI#PQRP4eQk5#olmz2`z(3f%4ANbPE#Gu)hw8xVDU zzJ@$@5_C@Owy-Y#EwRg6`^X#mXlcD#Qvnp7t94t z*S~;ZYrhje96fknn<$z3)0vK>fwZzZzKjcj-(1fo8?SME~J=T_Ij>I%{mCe@bwgcV&XqjaCE_wchWp;R?qp zg?QaGuTQ+n;ZuMecmTx|#RcMDSV_tIJfa~9XL)$)Be`R#6h zA^Ea5D>o7nG)>^>bNOK@oUpxrd+YXZtIJn9UUjo3BqStOPt{#IGhF<7t5YXqc05H$ z$afmQbYhNouF~TseSCa3Zzv`8272({rX?{qw^T2=)K_e^$`SXmRrCmQ-ntLSc4pCm z&f>pHW^}QGDsflQSR@0z4qUF{;}g>uuOw~Jm6DRub9?4nxV2Zs02oWR#l=Or*GtaL z9UnjQ@ugG}YdwDyk#>CAF0qV+{q~<4i6!Ui>;C5$Z?47Hnok&14rr^xotvBM`Cr~& z5ktSl=DWRu_8E`8eL>z|==QJzDE4O&>7=Lf%BilT6iFr*_COZ0bwUh`Ar1Ug=HSm^ za3o=C0fEQ*gH z0tQBq9tc$C`lR0(4FrK@K;XF4NdWXrAq!4F?4a7N%ofn;bxlhyh zENNj=w99fZkHV|S@Wlk#*}Q2fYtnw1cczZM8em@eK!mKn=6WDwr7?Ve^&krbu4AL< zq^?~RGZ#V-_*QGd*@0Y!VAg=Z)91w+JuvukFkrvR7VtF`)Z)uN^5;IFW1UPy8Ukb( zX*Tf9h7jFmWC>)mULeiW_62(0_?R`(l?Q@b)b&l3>1%Wbo>wOSt^}%+jm|#~_WwpW zL)kwRo5uI@-esg(Dd1Gl!!X7avNt~q=r6DsR%>;3#Q=jtAq`^}R4YlsA;BW!q6+jS z;)K+g!udf8Gc92693|FvQ`%g^89RlSs8=*JeV6?oP(?(=nBa-_E zal|1~?(pgiyy;;WW;ygxOvcp>N9EQ3ofFiXyY#;=z|V%jM;<{>#BH##BPn9YyT&1s zCETxoe4v=9nj^^bFwWT~$Dhyf{bx*~l+B7H3_G60z9^5tq%Ck?8DdAZLIj-mf(0cA z916FFl@!htM|#qg4_p`A9!WEb4vfYar&B&GY#4zqjKO|8ksi~-JCC=#Q=$MS7tj0Y z8?y{|%KBTSt`>G)0@QqY40Y!bY{Q=Tyna{jsACEcSlmlz$ zRJykGF(b$oteT9H%MN9=7J?tts7hv*UBQdQNDpW3Ehr8S*-6=Fqh#mi|8c$3pl|xI zW+WQz-#)vY%$Lia+yWJI`P@!!PnOPfZ&%$o%ry4=l|KaM{xy@7Ua zRcxLH^D-aTxw1g_em$Gdf4rhlmRzpb6idS`XMJ+g0{BlU$}85lpwg>UN=r`W zt6K8QL9eCEQ?%vs=~Nly@_D;GyPW`*>i<*6Qg$gtl|p5!g4)Uaf2sxD1^xbWe6nET zOG`CB4=V2Cf)J=x5C6SVAb^ELi7N*Cfc&V#b#=h#^k*0$CC^W)BRX=ACt+HhhOA9F z3p84cio+hMf&vCuS~3@LFrWh?rb)&IAcMit<^r43m$YA7TkY}C(wedOSeJ&#V@*xU znxbLs&+q;`GuhT&e)U|;;7rD=v&Z8|pjy5tSW>tGr;#kA z+B5aX`?(B!Rn=x$FS=Nc6zT_q0|P6D1fqU?zK`vBcSW2hgGST{Y8+Z6qMlX#uM?op z^{@tsB-oTOP^F;;Js&!eQEImTDpuJW35%VB)Uuxm2a|-rxg-vj^LxMYESz?W@kIOY z(k5WXm6$5cUdhc$3};&6q;sRsy(PVXij3G^fm_&naWPDulHHEI*oJx6p)@rxHEz3v zzrq?KMAU`UtLIA*oEHFtHU|guEC9_d@U+0HiG)7pUkgFYg+@8h5@$c-Ro||kVrQBp z8J=~0!(v~IdeuB+F#_HY+(;r*drUM?kj&(qg#|L4>C0p&G_o?~7hU*JafuWogl$$Z zsYOtRZ;bGN^at}l^rtfO-;tm`Lk;~FRps}#*=C2MorjRsLu-W=U;^O{vn1s)aD+|^ z{S8Q4qv4vZK4=S&4(q+X9V?duTvsbL;@Ma&kq}P0GGcFb#8Xn5>4w^8@zGpMXI;R_ z-*R8xBbAhin0dV36RW*Pp-w3HW5f$mus{ycmF8D%0X3L~n_z^h!oUMEkaR!)hX1V4 zmHv7f74^k-8f;2B97syym_nTHfK}g)^xg^O=0^@Ytn?yk09MO$R*#6V^;YRc2 zMuCbh^(}g4Vt@}JugTvFw>PuOOtHJ@qJ{}0JaTsoCon95Pf6s<`vbqP@$}^5oTZz1rd)&656!( zdCdzq_idRD_D$do6D)gemE{Yir7xD%6+%G2wIKQd^I@O`XN9!!FWx=t&rhG{p3~FrsBjgf2>{brm zPDu<%%i8rXu@nH{U(1tT(0$}vr|anZ z!d#*DaGUgmL*yht-ELEV&GRYV+xMZoy6obmdu{&ANKiLzAJ?nB_r|r?pr@B=fN}6a zX!OBDYs>fU5=Kh7am*yIWWXdhoZ(PVaoIM>nD=KQUE3v+fcCy(^*$`I+m?@))Fo3T zKS<~&RTXIr#@!rWoAI!gDsf1nVQxDnRr2=0eqVdc6`vuihcwEUgkbZHVU?j=RS6eO zLK1)tcmwu-_kj(BCM!DpN+(~-mI&z%+vb;wfzO8-D9b-0F@E!`B{CQhSGn6i_}A-R zz}*WE)kNXz>*Mv|`&tP3ga`xVAn`;H8VyvaUh!j@2+L{JQOTuVw))=v$OaL>(Szjg zd(U?E`@@#+!#V%fcd^%T6M_2mAJzGZNBh4Y8TdIPH)lziN2Y?rh|Zr|b@-UxG)S-> z@#U`3s9~LGG%VjbEq+DarViNQg|J--@hg%XaQ=aWRwb=2HpuN!#n(br)89p+W<2XJ zfyN<|imI&M#M7kweCUIp5~XY!P5`GhSTuJkiKM~B>5!rP@Oh)iS6IEF76`@qgq9J> z-R*X%doqSt?>2GS8cXau4;n^q=ueaA&?S?Vi=T%{uzy!-XjxP=XJSafcnqpG zQlXZV0wD{gW=u+1?QVnXHvJ8bM3Ttd{O8_ChSt6<$BGxTM0$SlWpfc*n$|EIPTzL> zUZ5fyF;5qhd}S-Lr~oNlc~OHJfFDpVbywi9t1~S6qJcNqe(jzUL}vi`Jqt~ zN1BMFQpIbG2-*&I)vs2n_WOyqwIUM#C0~$+lNi~`d=`3cWNOA<)WVQCPprJMcoyVE zN^WxBt6t}4jP_!E+oSs;k_sE&W0Dv8SJanMXo~a`r1N)gzBbqPPtNmo^J~>*FKg%9 zJB<&ED@fA#($@nyeN%g%3eIhG$2WP<*6iXR|7t$=e02l975LnX@Y*G3_h^#KQ9avE z>=VV?pEp;JB!Ix|akqu5q>3KpM>)qO$Lddqo30Tk+MT>fbHpeP_T_cxa8j4C8+oJx z&@7RhxV9yP>D;PSos#9^MZj0o&x;0CK$250?zhTV-$SriBTpQ3H@Hi1{qVVdN6UgJ zRrnn!9BiA4$l%YIrn{=j=WSUPeC@K((BbB}P)%PvP9}AB{zzpE7~Kw;^nfrugWC)G zF-xNWWT_#*rElWH&r(I^sm1nv^s4hxRS8%{z!WEBWkij=N>;jCvUrJAy~J;yDr6hUR<~QY5|h zvZOxiOfN`#;W0T0k&}FC1zE?l>o?w8%rZ8&ODyDz^>(P%YJKh!L`KB5e!yRXr_-`4 zoTK|=Wk=nWa-mP>szveY-^K^0l1j-HYR1*2GYvM!=eABy3X7Wb#$92fD~Vms$G7~l z30eidstQDd><3mTO!BlM4@PgA&^jVZQ(A@!(%C$qO~)i%U%2c8%_sQNni}D*)9(ai+!uPs3`?6mEr~TTe6Rd_z7hYiZ?4Qfv zmM`7PMz14AHX@vZUH`mn9mh`33gXKdnol%$e%liVvzbvcC$b_)x@M|Oy1mb$o~WN_ z+jQ|Z!A;a;*C-6T*1hyoIKESjlf!w_gIMQTx2uujtt~p*`j*WyxO|uMav8^3y*7Xo zdCk8W{ig2O_s}-J&!rQ({2i%@c%$Ug)M&dWpCL?ldSdHHlx(I4dTsl-T3&DH10yp!@4MpK%2z*q)3n`AZOtE$L|-?aJRB{XMi$QtoWYZX zPo>LNzEwA;$zkpO@qvHiXPaBMX%fX+N_AM;k*vYhYrp-0>YC8aFYHJiPn9n1b3UTq zX}|n({jf%x)zw=ga^JxACzEf81!6~Me=r^b*bX|rSXfMrv{Yu+|Nw{F4f zhPT%4@olX$5{>uV!9mg1D2ZXoK)zY1Dkcl4$ zB_>B~Enlzl0o6}`nHMdklUSfn7emv1<3_U??JwV&G{=tV*v0sQ8Snehiswc5M!=63 zBJXGsW@+gAu$liomfu&ali`xC9ZQ;BBY)8=vzc!yDc^CuraC9Wzcs)9(OI~SJrq0R zCDF_wh92VAC>wWf6ctb#VpUQ6Hfi_w7AUOTv(3is%Y- zL8bC~%6ZpJ>hRBG?P=Xn;hab87$HAaheN-wJ}?WD5Ym!t>xNhD!{UZsFXm}Yi&qNI zLjm z?uw*p#24$@4nUEv99QXL?dF%wV`<6y%blp}NQ8@zS<#SJo`JXs4iiHgl#3?174R1@30-=68zK0J7I0d*Swij_FSF|7?geM`W zm6!T5mtuLM2X~!yJ06FA`sRm9)^jcMNLh6SCG$_C*pD6 z*FIb_`LoviGhOP^rLHwDGw0cRSN(h1(r6N;|9^A(NXSE@V#?WHy|)?0XcJ&q^ia`J zMdWwRA`-~x%=3TG1)$p)ef_;YwZ^vcU5=paW@|5W^M-oGCw->Y ze(%kJuobp-!gDqB6SEf)SucZ+K(E<+7<=U3?8^%vi?!q^7(-{{W}8>vha~fuL|j8R z7(sDI4b+ZSWEBnLMSCHF1A{!TDP}5hJzWiP;;8r}S=%VW(PqZqBL?f%Um{ z>Z6swowUpKl}j0FFb<8qD-g#Ek`dp8*OWj3`_K`=N49|P3#f<_Je~y8FTy9#5U>F> zv`&F0@l5mm;n|^0*m<2pg@YL29Fi2BHi7^6$L}9u2R>+h`yZ|Q&p-RcFGcItvMVho zz1fzX08iZNs;jkyU<6LKmV1vF%L1Kb{jMy8`eQf7;(tBrc#0fO?^LHck&>lLW2tbfI5(1dAqj~^RZQZuFQ413swRqA3QAHbg)zeH5LK&xIb7Ue zoT_rfj(V_^i~|NnpZ({koZ0~ZAhC+o+YJO}?2_*#-n9|p$?F>`-5KgCR&&}%;!-Xv zy~D+qoYl+XDb$xyHkL#h{x{{L1`L~uD<<;}Zj)7b2ZK@T#ciOAPYQytvBI(d%vNVa z-hS;0YAoz~mwfIA#MCq0?$}A!cFlZ&)*e~f6K2gLYlmM9D`nFoLiOt<#YNRf_Xj^1 zk5Z};^tCoQQm#)Cd^drYj?=~~0_D!08-pBEfT5%nJ*ia62bRknniy5>Ej!(OUyA~q zJXf|gFsQ`ue$*cX20VG=1J?Ed2jfA=8B02usox-ST}I(;B8jl7amz0YaWZd`isp-_ zUvutpO?2YwTHF2Lug&H-WW4OU!99{$e~?om^#OH7YnX>v((OyTdl&*`g+pu0ZF(kF ztmG3N4hnaUE!KCR1iZV7kKOXI${Mo(Pi6VRUsY%9FVSgH9^Yr$b$T4)1$7Dr!YwlI z-la1>lVDiIeKhT1L+N6x@@D3BMJny~mY*yV@RtNUCz;zqv2RwaGP6t~EA|we*cC;U zB(_BqtWdi|=4zAvKQVOw4_{I_S7a3dP3uxa zjeDROj}QP+drx!{!UOx&IG4;M8(H|MK6>SV@rTW3QMH&q!uL7{D49YBMy@xWR9DwD zA>!ITw_op=WATP7XZ)cX228|)5kH%w9o_W~TYFL$V~Y8IT459{Iyp3B*^mEN2ENm# zU-SNmCgQi<7^MbEK%t8U!n^u^baA7+_!-#i@q%RnSxV$k>^`sh{UuwDzF(Hc?^ACe8OuWKI;QHO$^L1u< zWv+H^oO$l=^QbN)h*xMyqw!B*=>~ zY*HP|2#x_GkQEH=e<4C@O8<@I!65H1i_Zl63~sYYd;Nv3)kFP@`Go<5B+rwS^<%a= z;k*uo2aq1ZG?}T6GBVkkQENlN+<ND$5%2@=6$u9eir)>{bUVyww}J z6Te_v9r52i2!gd$!?QfC9CBA{dKfz+w!ZYe5WS7tDVPfiR<{+#xTX%wv+0?lFFOca zG~O%0#Z6BqJ3ke=>~u!wKhPc|dHwOv?@Dn3>AD=tjdX5X%{(3<{P#^$s6w)cLEQ(k zi0tfbfdbW}WCHGV$@XSzijtI2M~3^(^y0cw4$Vksy|BEJ%YLQR|5%=G+0lGNV%ce)Z)@WkGBKUhzJgCE6%(U!Fdp#;Yo|%y0^){) zubt3S`{#%*10|%uo&7#1|2S_s0^8~&3Q*f?u`XV&@u@JWl_^K$!I-u zT2q{{QjXD~LBLh{N~-?*Zu0-2Jn%Mkkp0AEPv66q?PE^v^80s#$B~PbVTvKsK>RhJ zzrj6Sa$Z%;8Iuo)MXby2?q0iW?79BDeBdsg$g1)iCCRgoID#M?q6U}gef{yT`stL>3qwM= zh;)i9Y`{B(6#7I`e7JMid;U<2<7TWsCH@MlFZi?(mWL8J4u5LZ0D+vWu$dr1b5}== z1!)FmsZys{D z4ZNad*KE$t==uOg_#Ujdcx?S~Z-@N!_+`Nl=1C(~xWs(#5gg}e%UrXrRScD6>3$O8 z??;WhG2`TyOYjJ<*Y$y&jTs|B*G?lVaq*(?hKq)}>V`UGp771mRk`J&>OoFRW)*tA zok__-IJ(BhQ7zXlM01?P@r&RKi?_Wokd2YlHkC+8tnpB~O^Jd+FS`#P!r#jr6Gq@M zo~^-DJsgDWkA&_GW{jT(w>s;sApqSWiesj^_jIVfXMM=DV5H%u3p(c8i7k!z`0N}u zhdyM?Y%auvU7c!h1ood_c^|Oa{Sp;x=^Z*^xnh28QMJ9eSFkc|ZMpkifGRrO))P0H zo*f0bQ6;z4k~WxZqXYxD0zAdieD!W0LOd&c&onGsnJ43;hpQ;J6beEYztJ!+ z`ZK*Aw4g|+{Ah1ExJyITUi@D3Or36L=w&CQ8CuV6!C3TdI5Lgg$By@!Yla;oJks<| zb%4;YyTBDqsOpaUxtb*gekzz_`u?F828&{~;%gMs>pC04z|~(Wt}Ls-2vY4p1%#+b z-OvU{F;$GAQZ4D<_LoY%?=P3Fottu^2O*zTD7;8gIv)G3$&tcG?kc4TvTh$zq0o_< zz0GVk^n{lMSy>rX27thJBrRNs+|8={*2{M<`}#5|AQSU=&#P9K;v(&C683zGo-G!#b={Yn zTfX-k)CM^O%V?Sh6**PgcdGaF5p2<0%A7M!Wum3hzWR{$YXU32C2=39*_M*$a44GO zm#y)^&{p^muYLY+q#*&5Gt)|I?Nd5E(W(+p+Mz!@LZ;U$#mOtq@;`ahT8_Ty16jN# z;x|8tVi!Ltd-pq~w}UFj^Kud@y1r3tb>uOcrV2dl_pONF0yx&lcibkkUaK8$v3hXi$t^&=5Cgf*;C5pX6nf&71kKNmNGw zogvaQ+&#%++9#2~6q0my#Ko$Ia~*to(F12kX@VMuZ*oloc$AMLX8t%;naf!Ew?_&e zT^pC$Ye9QQ|Yl93I$~3Uw`cA(VoTV)iz?dJM%7s>Rmr;d1yB3@%iBWlR?%2 zz~^(|EwJ{?y}0=94melECtR*nu5sMO$LA0HkJkM|{a^pg6iSZa$*dE9q|A>NFYD(58WX`9gOaU7@m8H*YiQ zQVkoj4dkh5;3l4~*Qf>YaCPSz1cF^r2cc*rNM!`WzMt$Imcpa^;vX#IvCiWievR-* z7)crYQtk*dTQmd${}k`9eE0Yqj{EQY?!(G8hz>lqrbVpbI) z0*c%zvgU>`!)z#D>>%*<-i!>h`<@}95I;U8vRn$3C+2ZD651niz;uX1pUeI6JoWK; zn(c_sS##pYV9a$xtta8=)zJ^^obiq;mIvup(bWp!$uyjKk$Ji{sX3zyn?U8ol{sBt!elI0#N;+vB8GPcv+1*= za9jeypm1YEA@X$*MWZ>NAXR#pa{X$)HXB5{;IrjA)M-=$W)61{7R!GOZ}$tAsYsbR z8$0@IMNx`jwAv(Wadu17TP;)g!^ z2HboJ{L#uE$Q!)_B@C<@A(i6>NybNtsKKTX$H%Dhnc}B8Ud%XB##KM}`YmCZtQM)l z-zw9`eXz4h5XGTb3FsCyW&v%XvIxo|5iaNe8!#xa0G7b24#NnS^fBbqbo*wu(Xe|C z3HrnEwAdSZ|KPvAXDY=RE2jDe_yV4JcoT6&!bu9O%~GCQ3NIE{w!bsUi0gJugq6gc zn%mYCT>^yldD~89EuEQ_fKxk-Lv=U!DkP)I0Z=%~frh}!jIK7&cc^CLu6R;-j&jG& zY=WB0ARtq>?iPMOq`cEK1(tf_g(D{DgVBSL+)xyjFZrIwONtE4TEf7w+Vdt2OT`S-Gvq_P?nqk%je4g_LmUJ1*_X}Q|`!hnCwd24C2ACMZB9Yt=LtQqTL<5zwE?& zH#}=(@3{0!XYg!!XO}89d#bKan{d8uaEn}&!| z`o*w5!T8=Vliv*rrEgpfG~p(B(d*&>1A{=K0Vi7u3IY2k`>v0z_=7%7LFTSCgU=#8 zy-;-x9BZaTxBpFKJFs{?R|E_Ur5&1z#h;x|dURVQ8GHgRObQDbE*7l}Lq3BAhDrIP zK{66wb2)Y0hcr@9?^NzWb!|FW^ZFp>OmC6#B|DlZ@dTdFk1lzRwo1I@GxCqR^`@WX zI_?$(8mIIA%3MS3b2u0cwY95kgNKp^e^E%l>6tOve$4n>M}2ixFa-kZ+#y-=!gMc> zOM$eQ`Dnz-q_C7T6+#7HpaMwXu%L7Bdt+drexinf=EFYlO&ItNN@i%P3kdTSL8yHX zqu4V6i>Sm(iFiNe{;*Vn{9I~@gGS~+a$~`QBmKXmFZF-=`2Q<4!wu7js_whlSXJxgV`OsOB~YiEI^)vz z^y3D&#cPPNoOtk5;&=ux1tIX&-BE8%cftGVh8Tq-)<i(TEIz0 zAn-c>P_Emr&8>)4S&wDrDN16(d56I7ujRoQ6qu))dNdX_Lh)ehMjG!4HFx>rnH&ToJ2r5#U>V;?Q| zsxAA}cgtij<`WwN9rkcHS?@BGsUx~II3;|sV_?_|o0Wy@OXPkUi4owY&JSp|^~Za_ zLBKx_6D3;Ljv^!hsq)_(E}RBSJf;n)DZZoH*j| zd%%obonfbeO&Yfp+mMkJ72Za4Pou#yuOU75)yu;njZxH6wfgylf8PXy^I_{-ekj!% zvJH9^OyANd7&&u!`Z$B7>+zn$>7PC?pRqpFSL-Sf^_wT<$=~&}B5?DDHei# zpxmw}j-bhQ&i&lg$ewH9$wykgkV(ZL>A9fFXFiV1Z4G#$LPEj&w2Y%pgCv=W!lKu} z3bk)a9WxM++}FS|1c@lddy8SDehd!X))MdAc|Q>Q1l6`RLFvM+sy<1G%h9VLMH4kM z`QvcgjYu|vxqKN&%yI|wayR9iEfdi|Y{6vu!yl4=vzJw!3NKd-_W~E25}uznqfpCG z(CK^9bwVyHeKjbhgQ`Fc!^kHv7~%|CoI8TjtIX`wtY#oE4|oisIZ)n|2xDW}Mg&6a zr;;VvBMsSJ(%Z-rW5zPrOE&-q%51=)h>wk3knjjtiWgke2 zD#}Jf$j)(Ble2VorQlM$q`RjG)E*`~L)rzk+%+bsA;Nokr5SCC(8 zk_TSgLqudZwg)jB*kKjBB`h#z0h2Bmn4IsH?+aq}4eu8_k23`_Lwlr#xt&~9KmuFX=pgu@W@lj zPg!}^NZD1OyNe;HT&$Hue8P*CdTM`hC$^$y*&ruL<*nkMUm+-ZlhD??%|Dy|eIR_p zdFy@1#Q6hP2sHK{zE>)JJ!v%2YwGSOpKMDL^(Hu{-PdzIp#(-St36lG11x{us5c*I z@g(%x$aFZ+-$$Bn>&%EJD}jr{BcUVf^*zXir}wse>luY7_!&(8a{vxO6fKc0iW+}x z2rmmqOAxy{nI~(%1XUnK6k&;==DeL8r&e$qUW&V#yc zxf1p)&n%bDGLZ#X&s^0y}R96?R zN9#0fymDPK6F!eF(5^<642OJ#u`}LWLcxkkxJdUtvL#F%ej84Gag?wEr!~_GOU$K2 z-QF;j$&q{VPtvoc@_nM=;-NMXNgN;tKozV|_X-ia#1H2Op}m0hK=w7(@#OG`i{%D> zPg1J>6$(@8W0!Y0k)tQBTA^&$LGlaE=kU!=FsEDikx4-9?5L_0Sr@HKLvE8{0`O`f zbJA0jz;iv`^RVFnk_s=C%ZdK}GPqdqM;ilV+8!u+J0rLE9DTZjQ(fLq}J05$g!XzKQ&-pra2G`!K;Aw`Hxxal1hMEJXkzZd7}L3=&MqF4!@yIpbI z8)%$u)2SS$D46{sU08MsZn9}%A)H08Cr%#8#vXb%w_D2BciMSTd4kl-52dncwp^KB z4(@6n#&kET(%vUm4j11is^~ULsmmN$3{Y6&E-8vCfMorR!@afXfo9dd(|Wvi<|zNK zr07Wccl(jrX0p|z6^ARuzf z_b*|qAm3(@0Y(r{^^c@|Hva2pk^SZSt$W>F#lH;3ewJ6sYq<5D%-{L5`cygv(-_we zkBphk4cOiECsqd!qlH1X3}-hr`Z=w}&cm&x<6+*cUq$pgAow~kX&(1)h84+FnI2OC zPoE%*MQp(Hg8PFgZoUfF-Z^L#UwpLbw zaI4+}el8c5i9xAI;Gy0Y!Bfz%I@#j6-Pdz8N~|B3s-1gUBX+W}ent@O+oVD(gJhY^KV9qkI%l&pBlv z)k&(hwdwKS?PuX}&J#d@vo^_0ncc=GRhsH*7LVHTzE)LFm1ip!DX`mpUc7tH3i)!0 z3<<^}w^)$1QIi-VVyuddh|OFK+_{QJp4qg@di+fQc|Ne*Erkjd5U(q~ADX1AMVASe z^6b|4Y;BB0@Esb$45?PdiF9rcmH17y@DE1#%Ffjj)bz%s0cBM|2qmrcS5G`>sq~@| z;?Q%r5wj}mmRtpVO>Htn=_IXMJ=2t%;micG^ z4dP@@zfFy2)+wF(IY4=r$(aG-$$Z5MG`5&>_?#W)&;C0N;?MH8%4dU%$rNgG-hDur zK*)LwK{iqE!CWQ019`)fXRhetQceX`&Qsv+X_j@R2^#PmvJOAf=@| ziwvu=kj#!7Wk_F9kbt|#@TH))bHm-fCmCQ0bALnbR`|WoZ*o#OP$3Xs7$=l;ULtWF z<={43Wj{efr9+9TFUj0gT+q5;mT<3vvr83?k30)CEIyKOLmH3Xe@dmwqwr>x221@6 z)qpSQ4ucBTMG<~GX90YZ>;nRIPd_+4=|zq>UXiB*LYR443rR#k?09y%Dlh|LRWumP zoZpEujt9ektQ5>xKLGnm52~Mf$_R@U?fc+_STMe9L6cYl?yWq8@4(PVM*gp+^&x9G z4H=Ja=G!vFz;p3a7aRU*zPLOyBS~I|{MY-=7ZZ4qUSHb2t2KR!-IkHl>BYV@|HUaB z;7cARfw-o>85oz%bg~ohZslUPza$p9+Mn)qifTcZ`YyWRThcra#+P}7a-~^E-~y=O zYWKi;5V%>CIL{`rA`Kl`jftt!<~G71E2U(G5eU18Hi}>(OQXCkup>#u#8bnP@sH2* z{vTa?>h{0cv-r7kkr&hB-_&`w$67jjetzb&=ZH+=mXe(VF5XdF7m7^s{y_g^ATXoh z!#cFfQp!2QbeGA|FUmZyTXLjgjIhw!3LFVAa@rH{#6km%u+tXybA8FrcDIPc9=zKx zsiey=mkbnH`St&rF+cHG0wNHwNtIjWfUiPmGfMO6qnFVEuYU+-S~TIoiP|G`5*jI6 zT`ChImCEISWoeQqLJ&dX|3AzZ;G^4TUhL0`boVR!ub&JN`x(ili)*>yLUOop#&};s z>TqBZ3K2@opQV#5)vZgBP1v;ebi)kG-|?Z8N@gTbelRGrnfYP?HtT@{1tMp|@$v}< z4drU1oob(-{bFltxw=Yh7l9{>9Es*du{PGWZy)$YZIz*Zi{F2v4hS*BVxr2J**e?I zKfSgk!}U-K5vBj-70#)ETB>wX?uCIP&SN3j#toXmMWbGn?q6}gP_3y)Tvv}THh6*9>CZki7+SyWW9-v)K%G#&&f0EN{JcCT+?-3_Gw(3_` zcr8*p^S}zq^n+Y4L5_g>1KE$iHH|8=zDqk!ZRKs(Zk5@lXX!+yZlu0@BsMx|@tMu38vz30ZGw$Aha>>~J$OY&dw zAe{4dmYAlO2hx9-QIpphqA^?8 z4Um_|+MK}YWlf<74gYLt8?Bk{U7$f76*RJCnim1-BQJu)<=Jo6`$6_0;Gd@eGN16{ zOtfL!D_2&R?te2u@&S@zQn;br>*Rs=kn)osK{Y6_Y}iCLfb)c49NUV(1`Vnw{0E2R zDSLQ9`#Rt8Mv3SjB`m5mWX5p(Uf2K*^Z*GR=X;+cS?U`8k~hf$b@b*aGAtuCI*Hz% za^4f^W(J)<@}=fINJwXyN;+)gsr#8)g(qBOz2^rn{u1eEr}<|Fmqz=_54=V3YxEna zyHn70&2iT3afo-vfQ-!VZ|J<57vz^8y@4FdO9mu!VlS^UFvbqjXgQxu(R*v_&zUq(uz*~RiX8)lST09?rZa! z&u1c=&RpP?6r(vPx~;w40l*Qj&&LJcaM_1N$r3_f}gd_nW#7kiRz zYQTN<{RarVlgEBDh&Ih|A}GE3b{MJHtcDA&;%`%#2A1U6px(+FuH+ue;(Z?cufXI6 zm>$@UR`n-Ao=;^0n`NKVy+Io@-4<7E5AfI`?P56^G{gNiQ`TF080@YOLBZP}WM*VQ z51X5i`?gQtGp-f&y!NxVK;L{94m|+p830}FV#*&H%W*T6!Ny|~l`PPs{86hzyx&LH z4QP;k`@*{`1>rJU@^vdUDwrdmXGa?J0w`J+9&Ik{Iv5Ty90*cc(t@70@?n4r2EOkp zAc>N!2)hEcXY8BE{v8AY*YwP)DO4fX-$X?^YpCl5^q%fYy`W5b8pXR|_!!T!olT_dO{$wjB_toVGZks}n z=H7da%+T;*HWgc>ZxMbYmCJ7w#v@KI&}e>sf-P7VAWQ9pxf>k=hm2AZr+EG#F zzxgVa+ziGZJLo7}LUfUTy<3@0IG*-xzqQj5$ncU5Bqmi`FX3GxEImL;I>a`NW4a@% zx#Zcx|M<^&Hr7b$V3alS`T&j9I@`50zRoh1bm9C)3%lY(dv4brN8Z`2IdsT-%Eanw zyVDFpw+t7#>HZC>BMXW}Cn3Fp`x)aP)6MDExqJJU2oRug+g4R{2~gKHr?O@;w+*-~ z7jijvVq)aXBL4n6h~T@9L}|w%1Plb#x_fyCkZ39<|H$M7>Mv-fRRtSL+r~E zc$Zl*>Q-je%-k{ZI?_IdI3q0) zVpQRVqV1ilMf&e&3HbgozEz~JOFhPq9_vw;9*)wJCnw4oU!2o@+~z3kq^viVSbuhM zoW((f# zJHp{sh86@}7JiR|(WjQxivpZ*!{h#`@;Sa6^{us6_?WW34bI8coQF&wOc$i;)f^oi zbmrv5Fn1k3Cha!>ncz8X6~M0@F)>MU!hcxj*w`3KP8-*Rd4P0w4Mb#OKodl~0(2K&C2rRr?BQ|K)eQL+%e1{f*@5xyevwTL?liNJv29x7#`LZzQMg zh7xh|4}ik|w9ZC9Y&!-MpdQkNr9wZy@l~})S?a41|Dl%8Z>Nl9(#FGDyXW}p@wpa9 z^F-Lc8SnBmsm`4cQ4NJX{0QVt|5zH(kC$FDCy|Y^uMpG8BGh}$b=`YlK`!0`ZL>dD zDTDkO&>-Mk2&ALy()y%Cpf4VYa-b01)eH`DB*M0;&&MMpdf|UZ5c^_E5pK-Y-F?N^ z#5J|Kmx-NF5(^aoD<&VwN|-QJKb}B#hkvxjiTS7iS~FM4 zAV4~+rww)+2wSzO__9JV$y6@O`04amiK}2&nIhE^{alckAm!>i(zcV=VeR$s=+7eVI%>s7gPP4UQYt_EUIQ z-cI)$5$EZOA2UQ%j>{r$qZEuEh;@o9Sv?(p=nw>(U=Re0m0jQ@gs|tkS|rIg;e8 zH~r2SpP2?>xy0SelqdCwjq$^_O<*WQlF_&8P@NNi;g@5XiD6;zGu+^=<-{*?FOo8K zR0|>90z~%KaZi3lQpg){TnUT?0ILLW6;ZEF17O0b#()WD3+U+@DZSFn;AW%w`Dxed z>+6G8UAtblR4SP^dJz!J7ODj2DrP%ON&@=;JC!QE9^{{yfCvo& zL7wu=q2l@*#D2kK0NJWQ`vlO5KK2a?AF2aVcoa~R3{>t6VEX`~q zW`u%Km=1YFD=lLxV}^DfvfK4&so}Mk-hl)5JEjiKR+jF{SN;vSr-vAMvO@{HMpY0U zk*=9$vqL}_d(JX&HLx>RX;6|Z#Fuc0jQIvSSf0WYu6ZQ#t%_*YXJONIgwSqFGm655 zn5j}#z9<@K%g(40W9UAyQ<1>DK&T8l0LFtYGO*;b|bdplu-)>yDNA-z~mGkl$TZXN1WQdKsmnAlNdvhd5v<0OaE~4nW<4 zqAMiJiAnpQrax{M*yzM78nW>w&$ret(K@2E{sj=iwEI!3|WbXMd5IZWX z08s-4UZ<ryfFt`Wf3T5fH1hNwAOpO}IWWP)nj@YzJ$uN-pR0a>xBnZ-V4&&6{aOi$JB->`3g zBjFVNE(`9@7&(m~kWN!@+>6OQQ1J|{ZD_$|iqu@f4_xH;0GWBj%=h~X?s}2j>g}nw z0OgrqlMo0gl^=Zo?%e;4n?ND=Q;Vw-dPZ(DTYEyilhwz<$Kpr1l=E*Vu$G=HcScBx zNr5A2PKl)`6pQ5%7N>?m7E3EYD+@P%diSS{PKSyo1J=SB5d(DuM{cs@yaKs(fs|p& zp_S$7hXl=#ENl=iJt+@6LAo2`zyyZyO!hBD4p&zL>ioxeYIRj&i&7TsUdOhE@N^M* z(-F(+NUMYg5!$i=O0cspOy%$K$@W|CVFZXJRBw?_C*MG_{|YX)eG9Dh#{3~Ld&t^Fs-xi4XGa4oj*bIQY{Q-YH;Tt7LUv)LGL-dh{jhe=p? zXK)?=bHQKV`kgz@k*(4Ne~{1&{|vUVQrC=Nm7%9Ri@#0%pF)f4O9x|8U7?l_4VsmqvyXt4KqW#uZg+o^4GDEufAuyQs>k3l%KM5q29YM(Kk^j$>}mC?#8$jzg4y8P-G!4XYKau z9T!WlslxyGs(NueM*8y|Z>An;EVG#8{2#v9UM?4g zmdm@g5aS2RSoDavsJvA3;`N1M&KGF4+o*3r?&wgRRq8?Kfr2cU!jOD7b$$LMKZYzT zDr_hMV>cS8N#qV5h-Md&*Kpr&MTtKsFv2462w`eztOOJWA3yoE(tgDLOV|Bq%0H*~ zSt8}S+#7+&eFRzMG2N=TXzu(@zgKei5}+D$HQ z5B#>4ksg<_$$vXbtG5Tve*`44r5<~){<|D39HuC2vTq`Nl)j)u7T)BIdgRb3gsr+H*S1_RYRx}RK1s*j`d8R+A9E66FZA9cg|!%QE73)dTs9hJ{rQYMu3+7l-u-Ni$6(cT@FfLj{QJ+vcc)K$aCUbho-K#movsFVm zG`w#`FYh~cgnjDZcvcnWgIbE_z{^-0byRyeL+f}c-+I3SV|%`{{IhtjYU3%Ha_pyh z?p^}h=d`=Vmb;bG*GX;{oC7ZwbvdHv_}r?|eoNyaPF0URD(vx9**bl9+VMeUkbXKm znge+P4=*6GOpw}5DqPt3l0DbjL^FNFowi;iDRgP1Jw>x~Ar} zW_B=3M~R}G#JS<3CB)UAfw)i}gshfbYkS=lm*W^Zif{a!{4}=cbL8C#aHmXun(8YU z))BaYoxk+V>57)9_X(-+XJI%9Q%aFOeLq`&Z|liUb*vMv>L*?4mnwR0e(TUC z&OtbY;^JITY+w9NH87Rb%kf|$@w%=WStmA^_SK5LQ>(iIe!YoaL4?0~7;P)QEl<|@ zNk94*5%jA(Go$*j76zi2(YkkU7`mhYB%kFxJH zMZ~9NE~dfg&F^;e=QJkFH5sVLzV~4(ddrW;T%k|&^QNyy^AQSe_I`^#=>lq@4@;W# zg9<^-L8* z%kmKo3&NJH-K(J1>A{-}wrMj8;9sLyvI+Y5TyEk@skzv^2jKF&SUz9v_)bH5hw%I76HL8}AOTM?r*_4kCvuGL03Xv3l&%2bB30BEsplZ9) z@5{2-ViH7;;W zH97yP6JI3QfL`gKNfke-3sk4OG(jLqy~D)8cpy%W_`=?|-#j)p3mY*lP`Ic>Q}j-7 z_WaVm@GxyH@ylTTj!HXI?g(a1>%@S!!N`@MO3M#P%^bY7*37n&P27YReu*!jBW5}B zWDQvl@|WoNkL@9U1x_m)-fM?UGI8Emp;rC&d&K~000zi5n93+ENh$#3hk!fIocvC$L`MI7o&B-(gFxsBI3_DeW(Ik+(bLB3o&wa(!T=jHh2D*9YXOtWY}#+* z8lTut2xWFvoPMP!R|;8gfe{WSN6S0+u8{T|X`Jz>lb#u7Ab=vvQ}*vKy1fwfv-vcM zmmJ<#iDI@chD7gian#g!qhFO%B4D_}_o?(=5K3fC!7n)AE)ew8tNbWKv!vDBRH^jU zu*M11H<`&QSbbYA4j0BOJcFMVx_xaieS|yQag?Gr@B4+)H{DsSCMuqCL%P}6pnaY% zFZ;7a>D-wwZv2jTP+u!Vgl;C`gq8KM!0{+xy~QT0roDXhWON)Q&k^1u{lZ9<4h(7% zd~q|IM5p!LkB^pul@&E$C@5jh9nNe42g!V4jPuA8WXvhCY{o=79$3e_IEqIg?mb8R!Mt=W7W6)^Zb>d1e-he_h zocCN5P9Mt+jUVL{$-kAX4E8U*<3QYBEToVW$@{lqGIFTh39Rzu?$14c*o^xu`o5;f z1d354L17yUE2nMcao~o@LP5cB!5Iku(JN)Bu@@})aMm-!D{-`Z`lL9wp}+e%#e1vriUlke#p32~Lm`D{^(V9$~^*^Vn-c-l!B@t4viR$W_)y z$WzZUm-C76b?P z!!z6r0ejVQm-m67q3ji-@w!FE=~zz@goQ&XY+ZxMOyU*ewP5>YqKW!1&2Ww5W!me> zjJqH9)iC{W_lMqy1q499B@=#>Jv0;i$sk9Dpdj?#An@JJmfFCkazqB%V8weytR3<> z+Q1QWC-e%!5a zy-FQFGKD%StXb5v_M5c`+pV4tww`KPLZ*G}>bI1s?gv3m16QA4(Zl~DHH^sH#Uj6x zfZA(prIDEQRr(nDD56X!NAaa(2l8LC9d+&$cYLxcB*wXq%hT0c^^cklZo4iwNwR%5 zenY~>3hWC%j8qja-+|JNng&njYasU!2$anPPpQ`T-_lUVehC4ef}kj6S18eOMiU{B zc|c~+UIKX(y2*Kg4J)UUMkgplC$RcMmjs#d>ZgR3yx2si%wny38wQh6hHgxdz+t_C zP7bf5`aCA0JsF*Yf*T06q!xmM7?YMNv&RP&D9`9VCO79OOh}xO)Z#o|lK1GlbgKH3 zBP|9o{z41>n`5Jm_MdbNyJ|%DaIe8M^x_WFff@)T0|NHhiTk>@{rRVbw_nVRX{11X z1(3R|NxMYdSi^6LbGR!AweD9&Eqe7>4iC>l0_+2*nsXuGwQI4gW;LQmNby8YP#_tR zGV0qD_3-befnmlphHvrS_Difwlh4GbpA%3-v8Ug6qvQ3*1WYKJ{DTB=fvCtot27X7 z{r|4gkC(4O*XyN*h4n>#H=F4lChK2!ozm!-&%U|68aNs6$cwYagb@ zA4;jGA?Nx~d7|iHf7}H%s07Rx5BdL6*_z{^fa0a;{QDmS3MhbuddA#Lv5aD%Y1rGtCF=Ey{6Lk8kSUA#-*{k3pAcF zAMNXjT1}mG)l&N5^KQg5KU*uRMH{ieh!D~G0ic1ZhT%f|X0dyrCLdaU7?1<1JMl%K z1Y)2>^cG}r7_ao=D)I-NfA=`i_{QdGU*w*mbbnS{Oe1EhKY1u9ZDyM7 z#z4dG93By>l)mWT$dd~j)Q{~u{;2K2M)fNpQ34L+cn+-8`{`;x{QCY6y0#gwb}(l{ z5;^%>N@qr){i8)8JXlOTnzW*xq>|T#dcN^OSi~gYtF6gfM4Cwj+*xpBjrGyddiYM$ z_>z4LhMeS-46sT^!lmEn>P}uym1};KJNp-=$3)w<68i%KSS6j*V<19>0p=u@APT^+ zH{_QNyA!)4B&R)g!+MXVD(Gdg{^;rRR{#~7!!V6}?)<3aEBKXBG44`F#U=EJnk&~U;&G2s50B!eAt@<1~bf(QYp`ObfW&^;(?a6#k+F?j8&_|LY# zDNPsf0eCPg2GYC>*&Qe2OCJRx_<>6n1+~kR)1KIIG62I2qH_ZUiUf=Vc{h9 zh<-l!yFhG5+X^oZUSE3 z^J`P!wDw1!JLxXNe6c!9aK6I$L5`>uG>#bGRnj-tN z3d#Rxez7!2#u>VoLU=PQjP}ra4DZ-1KSnHmmn?$jr%seQ`J#DzgeE(da33=4WC6K! zpqv~Stn=-5y4W87n@A(gHk!V106wbwBY7#xA8r|{I2@!>B}{73C-y1%K~qCkPRd_7 zECmspCgK?HI9!W2vpS7!P3?hzwiAdL<&w`MiNDJ4w$*(hn@zaE#~1`+00!r=>*YNJ zyt~oV092T0oHHWX!>nH$=FrohROO|CB>)oO;0rNR@Ys>tDKPvw2lI9j!tb>~J)BF7 zP~y0ZK(30--|-ywfPvsLZnpcEloh+1=g@?{#NA?HrNjJB zt{w2Ah_3PJ$QaR7h>qlKW8`%GWG<#Z;{UN0?f>c;bpNYs=zK7e%}i+}T3mYJp3VLe z=~qAd8gw}YUQUep(JMx{13!FPZ9)Qs%`WW=jV_h1pT0gHgsu^Od}pSfe&LGhxaEjh z@AUaJDxWz^N?SPaY3TVz@E<00&AZ{c>JmwF7$TP1g_aDmCES* zl!Pbxw{aFygZ86`rwNO0NpJkFIyhm@F6Z*=`;9y;PW6pSP>7${Vgcd06q$!m(vx-M zit2f(z^c4c&^G-z9(f?V@EbT?m!3`(@vaC8-Hrk-6?o<}9}6$iRf9Gg;4Hen0C^Wv zd3!I#fA2@~dFpAg0=eN2%allA>1b_wI{m$@uiGpQw8DIdomylJpQh~DYHE-&)X;#7 z1ibe!Pn14dq&xVMZJ#MryS+IMtXUG=xvR}~&xc=9)SpD_c_ zeFld<$J~CKTKoVx+;M{?TgavWH#5xJ_NMdFtS)?{H0HdLX?^eTQ4!l{A64H{_GEr3S@VKI}j)&p%U1l|f&1#D2kd zyMF#hQTp!na8izJk!fC=hYqGWksoAjH3MF#ZuoF(y*T@MMEjcn_YKLsFg&q?m$(%$ zzSYyiDSeyVmGv%)sZIsrilWr*cY%90CLdai4+gHnz@9l2Ep16lM#$vn%hi5>wm$)4 zFrYhl$brRV|C=&s@h6oS<{(`yzHtY$c2jThD%a$pdozx9Vi{jpig>7o*W=vGdXda~ z^{dnE^Oiq9oUUiB+Uz6X)jTiNHGclgkl#(-iq3tF-`x1wP5p(=G48lMcN`8gSa|=j zHxV)Or8VQv1sl=omb(6(0kYgVD*P5TPu??WjTYX0^+ZWOTtS4=lPam^5E~ ze(7FJtlaYTswn{~hvCOc6ZQu&j0`Bn(TS8Ylk#RSWn#+GYd2~-pC6_}-8Bs^^b{#2 zE@v_+NGF89+nJ&?mc=xDEvRf8M{9AEYkvNy>mWg8Mes?ov?_OQ@^!07XQHLI&&fUNEO?edtgJUQGHNy+v z$!nf{jWkeQAIP$gjE$2jtTHlsP7{3i=dEZpRVUD`uNrL{ z92=v-Ua-H&ne=!kr5h>R1`z}p;h-!a(ID9)X*-O`F`s+g*|A>j?xl31pVU#yV@DhUDA9wE-@m+Aa-iS` zU{H(&gK`|j_u0Qub|(wKF-E{yEhsliNn zNfP8>24j{P$hvl`Jc20D0vx-K(7{d0E9qXe!snau^54qs+POd~_mt}*z{Nj$0x!j? z0HglsdT)PoOHd6Dw@y6zA4X6izi}n5Iy{a ze`;utUAd#;7a5@LG%p-PCR1P7m=a;U!5KcWcN} zId7M(m1LCOQSjs?c*uT!{uYVuS2n-p{kDgFdU|?>7f=z*G7gwF>-m+HOD{IbVG)IH zbltV-@07|~?sNj~u7_%`(?7{$3x9+fHeKlgt2g3fzWv4!Mdyy-9`3mY$wx9fos!7u&; zZ^4@2Tb7CBSE&AL6X8%QXmn2D$*gwac;h@|ws)A5CYHE6VNH19<4xC0@(-{Sp$sbA z8DrG_XgSmvG%>#t*zF|WBG;8qo8#7|C)yk8SQoSLsB^0_2XLpSd#7JE8ri1I^&kcnvTs2^$ZL7PAMr)I*LDvY-2CPz5$9}tp0)(VCs$_9Yd$?1YYK&eM~vuJ--oIk;c{2OL4D2x%f z^7)ZeVik<&qliT3A?J+B3CO}t3avgVMb&)sdN)qc9JH|pdhp2#4`E91;vQ|O=!oL= zoF3)L;_I=BVnn@lTgm0SFMO7kcMt=(AKTd9)qH%ehAF#}#kiCx9TrAEj{}dF{a&ri zoKU~#MwjhOFy2Q5xDk^-^4cls_4SgDU66etAn?dpZfTCsILk&n`9ZlN*XWrnfc4J> zf_VNa>wt>+=3=_H=>VHGmhwAn1ol2GYPf=um6>W0CRw;eMDXP*9-)&@59cQSJgQ`T{N)9@2!}he07l4?1%MyDz z6%%d0>TEBLGx3LEBqDZV4P`WZva5<2X=BG=XQdz^4-1p1-<|mJcjKpdXb&2}P4pMi zXuOWS5Jw0(EwjqY8^>WJSTZJfvQ}Pgn~xAtF`>z^eACgqo?o*2O2bGWuD`{jW11ZP zGj6N@fOV)Q{r~dsol>s1%<^0QX=-2pGH4Z4i}AkIT(N6mH^?sxE83$;DE_56l^(wY zxJIw;(OCj+X0Z~vD2vX)$X8~uxs%!Na0477-`Ab~a-Zg%qYDRh`(>a(J+-jH!N8IQiGqZg zNrMnf_1C=7JK@5ns*ujQ{8YW(0hQS^arj8Q!VOWN=ty90F6bG&FCG1>XsfaMV^EiEb%bw$>#~F z2;CE>+==S?X~d8$ZPVj;c3iijs$xPvM>M-C24AG#?p}2LSVoQO>B*-bH9W$BvW%EZ zuXP1f4_@=RZ*w{8@}z}9=fo-1O>Z%}UtFz(^1JY)UM=y!;$RsIPn02=2!LK6sy*pRl8Ve~H_dSWm7j7?ncS}hW)L2L3upG?U z6-~jk?;cDVUOP)4%%7JDhHDz4q1SwV8p=IpQ~dV^-Xf;aVZuT6;!&q6m8(2-MzIil zJ2i;*feqKEis1H~AR&KnuIVsn2hk<-+a>1o!M2@?%bUaZl-o>t8+^E>9Ql*_Lbz~P z)#sCfwN)dT4{9}hz6(noJsyk;Z{{ZTxxEwo&)7akZBG~j7T!eKELvRNe z!Y-W1WG>MW&mU{q_huNN>$_gw${Vn>4MTQ*(c*~@ic#C%=wp7{mDMk5JRG~HS}~S| zS9|y7-6rJ;a$J>?Gy;WCYj=qZnQf}Sz35}}YQbjQeT?`dWW@WA`OY;0*B;*L(^=cf zD;2yN{zs1j>C*sMRbR-MFyv*hdBGdc<5<0nT=6&EXK_-O$P))4jTZy+4sFXCCq>(? zUm{!3itAXBZ4D%AYK2n=*5rmybM((u5#EK}bmiX;Fm%qw3d(WfW&?9C6I)I+1i8aw zx=Z4V`hFpx6V@@1#4&;C2PkgT<${)C;c=fMzsU#<10*;OJ1(NAQ6Q z^tXRhHXe2|Hs2Ck=TPsNpehQM2ps|0>Uy1|d|-`s6F>D?^aF;=%|%$%nr9-8jF>dF z{Qg>QK3jd|bk1pS|KuQfv&g(IQKzb`H>H#mRbFF(P?~zD*W*9Ve(7?GbHHP@phH z;8OkI<8wE=8KqbFn+dd1#xa#oMNEm3@q#C)QUU(kvZpowfvAS}NE1h(y@Nb|`mn=d zgYpBKQmTiw@QKl@WnAB9>sB-Cv#76mo0K6c7zq)77{~QfU7r+U3(n$T_Ddfnl^Uoh z`Vf!}^Z5&Wx^sZ2N=)VE41%fWb*)#FV9_b}-pAG-S}txcHJ+uK>QMUZdn)#O_&90N z_$mB9z5bbz<#*Xh;kHluqskqE0fS%rjYf1Koek#JB=`u@tCb3(WcDkq{BK-{NW;*R zn6ECF3^>A{UfNQsdJfI!uqu9tH|HB9%D5C|SxTqQ!qr5GpfH>@W)=C^ONUr19N|9N zvt3_22`;nDNcggD3RY%Miv>a5(sl&B-@W?c)27L6_@QIU`Ez^Lm5XrK++OJ`!jpI^ zXFj&rsyZcozWl+;p%h8!x>((7w6}X$E^SR}`pA&4D|gXK?t6n7)a;b`=CGMXHCo5o zI@e-ycHe*}bXQ~Uf&P1DErNvjdyMly#-6`}e7M#p?c%3j$hkVk)m9c{Mk9V+Y3?%k z?*WVFemfzb7NWd){g)pBaxzM#)BA5N^e7*WmPaYdO8%bVb(djbEm@kN(Zv1=>;I`) ziyoJ5=a6R+`Nl+TdlFkJJE{nJy9z46Mn}Tnmr^DiKT^wbc?F{YrtcNcN>q`ckBz{| zowIwhX>7xv>t*Jg_XA<1ukL*&;NAn8b^{d+7lO-IG&isKs;qtF1WK$uHcJ=1Hd=#R zyLFdS7GA%)_^)zzpw1dNHa4oDQaGm2uk=+m|Ib7B69D??*0051x0vh2-9Hjxk}5_F z>L~uy0)9{vsFf_x0Ng3yU*^{?m^wHn!o>j!=L9DC$LknAj$z zv5MvpC6*KNN zWA#y6VT(I=<)Pg`}cYK3? zbQS%co_^T6Slhz54h|OynHbGb)^Io$VzqZafKV_h>c-%`IVT}ZA)x>85gaRkn?g>~ z5w55WkmmpL_yIOvTYM5G&U2lmOjZm8ua9R1{zg}D>s9Bz(r(Fao$ zN7f8Ut2w%LjzIg9fBq7tzK>>Z?vGu*rq~$lO7#V?Eb^EXNBU?8%c6%B+yvE22^}E+ zy*2dIoIeL(XllY$7ZujgD?j}wku|0YTB*a9e!A06&c<-ecRLG&dyU? zb)+7Fkz_YI))$WxvnR74_hqFVJ2D(GXQ^te%wg+i6ymp^M86@IyI&e1uJ(Eo==G@I zxwWq`xSg+1%_i;>et7c_<-@mZ+6gTOm`?A!-K#OfORQ#o&i{!eOb=)N_EGD{52hJ< z?SVoDlc|3^$MpXq{7fMD0|0E#!s*xQZ2yJ%fZV+lGTR0ePs) z%}A*0^?u60c`uF7e^>{`^N^2D(BQl-7MYi>V1)I8Il^po<*!#txJ}(oY_z+?(igo3 zjrnL!cbkN|W)h-uU*)XPAUYEa_0^o&j}3h+PLM{Wr(bF!GH8>B9r6t7m<)bbU^)5~ zR8kBqG;E&!*>y61bAtw5vO)$YRdiwDoFUws=g&R+X&oW?HZ&knoBdf$;%^rC6bRL1 zG!ndp-sL6pndzQ-Xtg2)xofLKU4L5|`tCc{qLLb}l?mA$mlCh4r>&Ad<4md#M>Zn? zz!yLDg%T}5UB6kxl`+5+m#XVmz2g_-*)ZAAl=K7Fo+F(i>-b*G6<10}*FVLVO|`OZ z#`-1)=G7~sSE*!-TeaY=(4+Mf7>LBnzF`RwjT#4T+uLkOSh$XCiQzD{OT?%wWy_NH zyx1~vYFX}%0UDsUgxw%&MHZpWAt=YXg&k~@M6!^7p-26HF@}f{(_rD*k*(fME_k39 z7Lq=y3XGOi%u)CvnXNR4$(bAm6u}1z1B>=%!}|u7juhZG&#UC9V@9{}?T^PXS{JS@ zouP_L#O8~wBdHTOh9WHk^(4ga+pE=7J}LATl|a|if5k(bQ7)gCnCWvWCwwlouK;_# zw}|dXiCz&neC~4a`1>nI^BoB?KuQTgR_Ajnixv9ek4fHul$g`NT=0b(oGbQoLA&|) zD>ENEzSA;FkxM;vK!2wBdh}pFkPod4CF#ahj2B^H#z=DvHA#aXD(Wv>$G7gnKt1+U3LY1+fD=@y5l|Qep~|Eom2~ zb`R_{9S}|S(JnLsW~Q5(0rz`ynZ_xg^3<*rpL)TGtQ!P@B;|sK98C>X-@U*IFK%YyLA0(9-niU4L9U8_H0!vwBRRf<$ z-{u5`9>nXXM?gYqn8+Vw^$1zr(HSV7R9L#Fh*>s@s_oN3-bD2@-Uz537%x%8JPscg ziWRG+im&NMFUqjty%=60dLc%9N3FYNh0yc9>jPbE>ZBq2z2_Wm%GhUMQ7zl<85b68^N+Qt{#P?^{ev9vGhco_ohZ}L z7S~b+?csEo_F`*Oldxx)b4({z+B`WjeP;Cb(BBia{P=8}QxFC?rhr3!X|*HF>%HPE z-gmv3m*AT1!KBN1EG+jl!XF}l^WnFHpSbgH-jxx)pZ|mMjq2X3Q!Tq}rUK*Kh#_%&LvV3&z+dr_D9}G)mDPRN6?fZ{4jU!l_O}kt42t_kh@qyc9D4( zapyxAGJia+yn>wQQju zv6vWboPtg#1~2wd-}h*6Pt8GlQ7@8)5gkxQ2s#fG(u_lL_=$LiBb;ZA3d_LLH7y-3 zgFu=qgM{L?;b8+7$1Yu6H70hm?z5+TzbW-}H;x$MV#K*Ss z_9_Ss?B1y%aUpO1>_{*C=qQ(}jLdwE@y*vVqi1tU^H}-pH<8OH!&7?Ki#L8(t}478 zF1$RN0AP6mMqxh_4xPpln>s>^3=)rGslBFUGGbD7%}g5it&$}%)%ShH&yO!Dn#PAH zQeLh(xU&p)CGnBx<8*2Xdn6usG`MC;)zx@2a-<_DdJmG^;$Rs+YNuOPo&4!Bw2uG6 z^so^Q8N<`>vcZuke^8=C=qv?E^)W@@j_FBdhdGFX$+XCv`DM|Ve^2>wQb!Pt+4zuf z7f$z8Dd|ypWm4S+=V;k|cA$*uQLTY}FO~GtauUez_q_Po!^5Lts*+s=zNa9x*cCM zeO!)xpYEoQ49%oTb!X4^PyCkNUI+AFsFxnqjpV7Pdr?XeOX)T4lo(D|0L9F_;Vrp`=ZoA^Iz z;!nx3(QK6Csl3cOrrK6d8+)m7j%SIOZ68Vkfiib$j6^TWBW&ZR8wq&E5RIX@AqdGR zzE9uZ`Ut~yHF4{y)QUt8DY>E~?%@*c2Cw5=nWWkkDjo@%_CvG8P#Zs`{E?7Du3VjO4#YX z)TavV{6D_l0w|8Hiy9r=-Q6{~JA=DhaQC2rkl+y9-Q8V765QQ_2X}W5I&aAR?yLX4 zzv@v#)ztJ%_vz`=d(K{a?X|Rjcu2vInBlO`D-BgL|2hvp@8uwyqc$Jfz$|exx3kzr z?A(NTF1Isl(ZF|sO|~1@W-jBa<${=SxqoDJZg@6G7V_MoY{%=5%?GkHd++%dt>+2l#p+z;iX;oa-1#E2WxXOb$+hL>#dKlI zdg4#|KQzsh!tlQk+MWMkN-swoN_~7CRo9T3?>EZ$jhjBqEQXAyFwppY_rt-vI*U!V zQ^7S1jnv9n9ZIH;**bzb4Y`JR$pW6p@{zUK)8LMZlCZU0@OkDu>Cnz`{DP0m0892CZ4D)=1><#Dcp50e# z#yz#3=`^i<$)kO?LvNnO^qktMqU())n@XoODPTzjmS9o|-PyBBZES^0BS-y)fKggD z;Yo+;*S&bUnY+>m?S`l`E10lac?AC=zcbn^kq{3m!J4J$2~RJ3xikloDd*@0M_YmV ztxltgRac*FL9;E^P+SI%txoT)qJ74`8x4?C96(h{i+KNGnK#e`!Y6HAJV2$>A=98Oie-Mj5h+l+_6!% zz^b3I@mr>#o-d{_B>#OCTq1Pa^bh-EARN=Ci!?fDoMIMqHO2R67XSHAyLx4(V;U>G znQ@dag7zGfz&kC9f zkwUYUpFO@#N$8e*>m}&4wUYw_k}BLP6`WYOAA{ii<8mu*U*da#IH>rPm8X8U$}f@5 z-Z=_$W_@9Q-JRVIK!@GV@Zv!gqMbSysG19NHWHP1AL`Y$+)TlC2Lfy9-$UKQ+*SWj zsNJ%XzIyvTA&r8LO5Rm5Y9goWG_J*m!a_7fi3Tee}mS0~yX`O$){ZUnSMwH(PS<)&xp(cm!o}K1{Di4ost{6X%P3y=9z`=s5Tw$_%P36Lg1kh8yq3hdYa zgkRP0+^VM_cr6uu%H&_-e<$G@M?O5qIBSa@GNnZdxk4*0!nD^my8bS9C*aW|sk&3; z1_x6Qy|QdIj28GSzcf2zn%+LJ(=RyqX;7Aya(Die;!eiS?V;@ zseCO)^r?3M06*p@jd*z4Ky0%#t-ou)JaDJ$8vs}4{D0n5GD?2n314(utDODT*YY;| z%T@D=cWCq-v%zc(=PpTa1Bk2RcAk3j$&vl@&eWgyXnDXQQ5Ld_h|?#xu4g&SXY&jB z@8xD#laC53bnX#47%iD0w6?kippSuMWQGW$8te3Ow zYQ0pM8fB1$GoBBEzMnmhNG2@lzg6@-K|SQubVu!e7S6w5BtqaTo{V2KI?Yzd=o0RC z_ys;XzicKHzS2S5D@pe%V!THDSNdPYKZ;{m?my zT7C22{(AT51Y9U_^U}MjWiqH-JQoLcA@kJbrBf%7i=+ewH0HAp3M7E~fmC7^An$2O zZp4OCd8<&>1@7M!IdYo#$1|0OsDWYvw=kFL9xG>>k7WKj+k${Cxe8#O32 zSXE|b`hd=bDh1?+-xmIJSJ@R%zRAUB3sG|WT2+%)dvZlhgJ}+L2*oDG!egd`fVyPj z|A{=p2V6gh&CB-oZ1Bq1&!RsR)k4wz4bU@T>;YNzsNqvr&<>}uwz zE8i3Wu{^PTO7X?xLZ}sP!tNKVa!ZE!*`uaIZxjU?P>XzW<4J2Wn7yd9rv$nrW1En& z?Med8E{bX$9*Ay(c8KG($9`~oygX^R+J90NIF-Al^pyU2e?_U1f-Oo(Ui1r-rX3Rc1pd&)M2 zrWghehKhfNU!aHAc}Fjl47>wua7o~IiBAF;#C^l*z8)}Rgok@^yf>?-lhrl-C^3!z zx&oRSG)fDCJ71&?)=YL}0`tgFuS93$W%7}Q2)%jQfh#J`mfN3&;VIjX8?2}y`8I>nmny_Y;fX|Y{RT1S2`xg_-0E*dnD}h0{hwD z{P$m;GFHGWwS?BjP|pUpwOtR`)efx*O;-Y(|8A1l`2)C}@f~mVe@oVdv6pM`1lJUm ze@gvOf*&oN82A3V+SX8rlV#?03wUZNuV9x`ToPg^n=MoV1pSQdwM@6J>3h|4Cl@3lusjF9f=eEH}P&T>Joooxw3=|bBq=$K9@{tTw{eqz=U zkUg7aQG(sWuHE#Ts#8A?#DO$$p-8T#43Ku@f!;t^c)o|<-B1Wc3X3150yEjuDL0 z`QPR6TR9E)BJywjblCdGwj=Xtu-g&rI7zvOkM zl3g*v(WtBwXgd@u4WBeM{nR$YG}RbMb-Qma?uozF4e7UIq}ibSDufAJ5;}hW9S_NH zUgST>kJ?}4=U;7507UP-#GLGq=LTOGVLkX7pcf;k7nLG~4U&IAh9Gf;fQRu1kkhyC zdkO_~Lumzk;ocueLO0ueU-H^G@S`8&c? z-t}}zL;WeH!G-A==)pv$l%EJK&seAaC1~=zvXcVUnM36 z394MH@l!Y!tVn%`iPsmR6_dh}@^DXaKapB}m^ZATgTYUF2uvP|^S6GfVaQ!e2R+O}J=&`!&>FBW_7yu;) zBN8C7&dJx{BlFi#zXK)Mt^5{IF_Yhp0+hu;z~6|Z7yvH2IW9*eqFb!Q2s;P>R6%H8 zpdK5dDBe8T-|L3|Ki+`)#a}hH(@)sK4o6?mER#xVGB89qAHF3FjdRC;)Sl;!5|=o= zn}*Q${Bqu+(lKzqzHTn^bZpXTj@=kpa~mXJ z4Q^%k&eU%TBV*}E=^oHo{1wKg;ta^4HA!sEJbitKEi0QZyW6A6D_BNmimjX@Nbt?PBYNmT2 z01GY(5D8Nfh~UYIkqi4@^O3z#>XQ+VD%fH3;l1G*BVTTP{qxA65ou!2e_X|$2mCC@ z^V8W8+Rl?!qzE^H#vozrtnITZQ7#LLM}vp@DFKgy$B-SOp@s#q^HkLYSD>_K>J%x1 z1fPxJxiho-n9OAn8)OAb*g921no7c_e6uQ?(|jH|AH)i7-?wc)HK)0Rxaz+Mxl=}_ zV8l^~TY&Jdf0l{^x-OIV8Bf@StKj5`8mI91;>bIoq6ZG&Evv zsK$<2i9Sa@flOrV%lA z`i6%|yY*?ravl^1m;(n{QAIIdHY7BTS@6(`RcAZybW5}zN)a`DzwL7)UiYK{&30Ay z_q~nHogv#chW=Q^Vumg#RqC*{1rC*5_0i!@bbu4jCx=AlL=k~*Ul*s6@K?>u@DOt5 zgH(I;-!Ji*3Z%x}w*|)6IQlN`pRR|z74t7L-ghifpRvV{NmWq(bedx^<& z0+{$KnyTnfu<(=rJOa8oEoNvJDN4E49bPQ7)j3Ekj>EWp!=7-FIv)Fyp?ibV{M#X% z*u^pLmh2fAF zu~Eo1waZ-=SIqs9!vkqQ3#LMtcytouT!ur0H0*Vr*WB5h^^c^X)=n>Zaf{NKxS#vt zPsT4E9ik#@iZ`!M2aShAvD7uWA6Jbjk$;)?Iv!ORI?ei8US(2&3fGsPY_6w0_4|?d z1!P&xy+WIZ%`M23FB3}CxPA>qg-|I@xg{uGrE|vHX!~97RF~w02!FySsO@|K86P;e zw8#kGD}WPn#l)PQ-|m$#n_grl%`Q>n6Tfdi>Q39Vqatd?bTkLCe{Je8Humm3h&JBo zr*Byuvxu;4e}tzB5UnHaeP8fV*9lV>i(7^AP&%2Ww@B2l2bGOCL~KS;?wbgtsTon= zX+hUVTEo@R4*93-gOrb!H+xZtpDMi(6p9kgtJ_1%WeI-?cVtRTw4;F~fF)K<03vKth^5IkVz2zd*3U4WQtnQ|3hN`QWGhK1;*O<>| zgg!-1ZqrR6xx3;FM9cS!hu2W|V7H^&``~boC0i2}a|FUJR|71uap;>%gnLz^EFwrV z#d7*@F1C5jWoA8jb-p5wmEA<^vfqP0Tj<<8t(KN{8_qT1REggg>ywKNnBGrqd;{B# z8vCdO!%OKneln*}|HBI5yFkg(n6C6Lsf4Qoy6inmw}s653ejAzIf4eMF`j8l;9j>t zXPx9zYik9MakW6Z+P(D6Vdq-{5D#vb%$=K20#jh!dUH`L$EVJn@OxN!J_( zGjh|zBU!YtSmg;mjFwmzew@g{zowwMS1vt6E|z74nZtC?zdZqQm63kprSCCa_1k8D zUpziwepf)i93)UZ-!-5{SBMS5uzLY@^8!?P2z(&-) zuW$(Mm5uc0Y?s2MhN-*>!jruoH%}->o0(1Qs&Z^Y^%7VN;}tPj4`17!N20q9JGQ5 znuWfq8=qC34MDH&rY4bPsr=~jK2nu_XFM+4002C6VjN=p^Ny|9 zUak(9sSWOS{`X4318&45rh3u9Y-l>U4X_#+MlzZdQ~R<1FA`cHRJSu>YQ7d3RW)Wc zN4U%U<@Rk0eTJ3ZK$CZ$b5kYkyDa8$NS&$J*{urOd0owt@_~=BRPULmc5nLC2I6+b z&H6r?eBK%e;EQW29j2`$;ADtf6*bkjaPIr``8>rOp+dFpTl?o|J%`KRX1(@SDaZ&} zW?RHaDy-2(;FEmCbE z#b8V~jc+jG8%tL;63B3}-`tj0NZ;Kq1$E?`2N)FFvC=pG+OizgYvw4@V5*rt!xH(x zJkv5#Z&-dy5{R0o2iJ&?h>9pxNt}JOaV@sQG!69lCJpLnRpx-f# z+>VCKj*tpD6cKYS=#{nChw{jeYGj1ma*B*$8d(pr83)UG5W}dU8%+oRq|#wC0SwhO zYGMt>(8|02U2|3Zui~EY=4Jpk?S3;vd&@W7GIH?CV5>85W-1J>m4oZ% zZ+!UDQk7#JC5^XNc`}ZT-%QTHFS}KMH-YzaIL88pzc6gUn{)rZSBXxkR7Kv<>(JAI zF(t7aZRTx@3i$t@oz5H{zLD_3dw6>S{)BQ4c!zJpsa*JbWC6Ez<(!QF;z<#GFA|gQ z(t0+iN{%Gnx)7z%L{K`B{5#1@kO5N8uqd+@t;cgVDVNvQ`N-~@O&=7OKJ%nDAbuXS zJ^PfSR)NeS|Akj7+xqdHoO(`s>lC%L}o;TL6$d0BRwYs}9H zBxNfn@Q&!?*OMWSJ14^IoHuONb{srA1s6Cy^3VbJJ`zbnqE}(T>K2_$gdnQP$4(lR z>d5f2uZi8M08tDA9yveIH7$rDKf<>Uj2}S-ng9mox-3oL3mgW;|C5KQ|A)T~57?2B zP^tU?_TsW(Pz7KaU_79RGK(UG)smM)fxAb0tAS}S5qZ%m)xsoVSlq{w@#9xZ-)Ae? z`RjMQ+v+{aw)8q#UPiv#+Lp2^Z;va`bXoWjjIG4(v>eSN<8bPKu+rO5?}J%pQrbWKEx zjvUT*@`lUXAzFlIRG!nh$}IQHQgCI_oQb3O;t8fbOLaiU1UEp*pc@TXX$o{d2P6^< zbi()ToBIr=naL2oY}ht|@!~rMDZ03^0}IsG8b4~7!e)k1Tw?k*e1(-O(^u@yu$U9N z4Xeqr(i(GnIXP$CvSOt3Px;Ya-aX-rR6oXtEAD)P%RdQR|6=!PU9{mismXM8VZ=KW z<7e6q&;g`%X{}a7Y(E1@H z$0O55Hdt*K%mCO12>}> zkY=LJetAjv-okhnpLwI+Y~gE{f)l+=pJt{(?u}a$YxgXVZwrO0z@ zr&GJk=MRtpJ#L*R>7AmzEVHwTYTWHwy=smaPIO(d_N>86N{9cTb zN!igU@PLB+mLwkasTct1F)s2T2ug%Vm?3Dc-@ZuXP0(zYayc|FK3SvE@(Zwf=S-7E zOhdN~KGuYjdsf>z2b}FAN!nB#59WeViqn!`kY|*1no$RtMhkEo!{=wQFax$+9}ISv z1mp~Ah)zyYlu-8S?2xfJs994VrBDq=biFS2U!NXUQnXU!Ep!;zI;|0YLC}kc-hx22 zpvgZ4c*~%^uI=T!pN0Mupi#(OLZlVV3T+~BaG=hEhG2{vG!4OmP5h@r0`$MCy{5@O z8M9e|an_Mgh`tNSsv&gUPxDy_S2~N|lFFG90OPqWyy?8#t&Z|?s+>hz&KXv+(D%bK z`^I=Ve&EuRljpq-(3y>bfI}H5B7~7u6E=ljOaHDihWIXf!uE9UE%^dJcGd;aB;o@N z*ay+ET2)M{kz68vZCY20?}%ofPYFsL8c6G(Ljeuw_^_!1Sf6N>rFs6hH++6cuzJi@OMD(0Mre0&b#9MtLsd$(4tnnO;} zP~G~o*am0<8k$z08Kj$s!N@Hz;9-h4=VPg z**40q)vn2oSEYx}XIXhBwXpCk*2_Ogi8qY<+?JB=lE0*N)9W$LhxkRN8*wj+IrZL& zV@*1Tk*?PISu#R4B5`8MRsw&n_%BZ!; zsL%0PUQ^^MFHrQ>eEUKokC>WHTa;|fzdJdgVw%-n85)D-k8jQE(@0If`SY?+#TceP zyN)Nky4Nr4qeH*LO&oj)%)Z>z3QPr%rW%c8KhS=p-T&h+Nv)IkHSc8Q(pI%wNyYt? zu{BqmK7!;mi*MerJ>-;{d6_c}#pbz|{f^5cA%@Kon55#!DFHkB^$oem@?LVq%=-yf1mrU`vmehcW=tGV;<6e@~NWNu-_F%!ttp zA@ek*qH=U{f6wMs8srdeRVW}Y`uts&;f&OaSA3ya@a?{iYXvz95r6!iNo8o{dR_lc zuRoU!mn)kISDF1OYHajKK1a)p|68*6+P1QJ^){1xo2CLk9mj)}+2_%jKadFZDA~VB zXIOn#>~^7Y?|ztCAg?AW--bD=eqC$i^aS23yp^`EM0_Tf6R8;!#B&r~`ST_FTkK9L zREFP|YkoVND^@vT5&K{y@oeQ-%NKrliJT|e>1cv8hHgNnRdH!MFPOE}MfZA`Xj8noPbzJU{ zo-)tTbl5If33&p92;a#5efx?VJ6fc1!OZph{fF&IVb->*cOv(~t@%Y=dOlHbB4ERa zcÒ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

      9gdt+|4`aWCU@be7&*|t)JHlrZP=hAx|Ia=xW zMDcK>c*O0@!4U#e#T@=S1ozZIt{=`Y*zvo&NsapmCXV&7m-g)?^|CxJla+ze%g&ec z+Qh$o#XO^oJ!T#q@WZEXl8vUkvnY20D>!ybGAfeq+I@Q_%I=18tB;JkGBlR_UpwX7 zimf+mN``ks8ENz6pQ1z;)8~P|2gh2g8>Q5CX%Z_MyC}Uhzes&QNTN#^GVg|qSm^z+ zwPClpDldpb((n7Hg#(tTpYJevxaro+`)Nn&a61Ji^sv3zwu5E`gLhLDnt3SFZ+Be> z7=&~2sn5yV1^BAR(`-8+j_fS3c<)v9=f$Y--UREb<7@VGS!6D)3HN1Ruk#EMlc7sz zkJ8F!tws3eD?{JG(MCvZ&$Vp6Lg8iDy#xu_h#2f(UbP_q9~Dn^$FDHz?6OSFCE_aw zBv4DGo4Y!3e$6f!={b$@H1fyO(^_QZH2hHm3P7Wyan0}Wnu)byw?C23&$o|Wuyw&~ z`M2eis9Y0^f0&)Ty^K4*wsPSiuGq2Aj%H^acFhcK5Z_TDPNvQXQ!+zyGqN+^p{I%y zEr1mj4ZK_>KT4-&v|h3=IzG$12JN5W|7ka~o-@7Q%AGriC*3;fM&u#%hOu`+gbh_L zcu$yinV2@)e(xaO(Y<|aWouW@S&HFYbh+S54gZw{-d6zDPw!Xi72j>Yk-Xid>f*4H zn=q`-q$=&09c8-`ObZJRui$;}ud_ivE@L@q2vtDed$4~*6`7C*D!arN=pjH2jYR!y ze8<5^C7Ue-!1SViHhXp&&+hPd$KaN_t(&}Q4p2RvSxXq&UnM)RNH`tseh|!?T0l|Q zlmC{OaP=-&?u#EXx_zR-MgMsl8eWr>hmt?z22FkT7Gp#51XLGNGW$=`ws%3U4HbQo zPN5+a)o6h4So-qK zu=8Gu>C}_#ni?GDT+!rc5w7Tq%`qM1d%0?x;y*aH+&%Oz3m1O;rEU`z1S2A^lqYO$ zBUS?|w3^qiy2IMe!HoB3{J~nwUL?`Whe1I63>6%*o1Sa!!qc9`Hw{A-Bm^FB#i?kj zwB=UL)g^Y4Zy9?RSZ0fITN$0lX58rATTgI7n*&h01Aite&*H&kukDUm4k1Q!eViaPG6-C6mQ`c+?CgCG;&pDb@Y~)I54M4U&r0>9R%_HBACM-E%oc~ z@tgSpe@My6EmLBfY1k z9X0{X`(TiMRyxG>;*32jc-$bib(AEM_MC3Lg})QZE6|l z9dOd6Xfy_>z@iZo7i!RO`DfFEtS_W~TzmGyhEGx4cK5LAX(9$}k`fBS=G$2+aj ztz2xAH8;23c~(um(Bf@X+mlqAvsU9#xxcJKSwwD=m2bE?ks zo)444c<uCpB5CzkFJDGlL}LsLHJZ-ISM{T_wqKTr zEmw)zd`DvE8Vh(jVtc}=g1Nb=nr;uRI+)Z+CJH(77b?op2jEMB7?6RtaPn9>G=}1? zIx;f6U)fXp2u z2?5$e)IxM={!5-stj|gD3>m3vB(xQNoDxx zR#scP-9U)bqkzjisU+{PG!1A@$=Z#yR9rgaw?f!fjpR^T*aN!K!&}cjeEm;Vf$xe+ zG{=#Zz*oO!f8bZC(k2z*&8-E#{h9nk*m-#=o#A{u2{i5`la^jBCoG&z}_I`v)`_jE=5Br&V zT*(x%ev&}nT}qoC;rmKn=t(Q(nMduZam67cZT6y%G9G8TxQ$Xa%5S~WJH{Ay#k7;I zELwN3qAo3qRX@EIz4LDPVF(1i&i!^N40xmvZ>Rd8Z;06EPV0T?S7ik!?gJP8#E-n=A2ewU;j#PVe~ey@#!4P@Jr_ZGN}X za~(r2Yx}O|w^nTa9QN8n{VC+2B)aC42Rs3l*#hVpwcO|<(^#Dc{Q0KC52X$1{rf+2@D>=R=jKy%`Hu( zncCwR(j=9q$&02kd1dPCrI8B&Ufp83BneW+pG@*!NfZ^T=e<<#y>#R$lO!VcNeG^O z{2_uNz6x!~E9j;lFewAe&ox!{$mDvsZNWAAt!>Vqtd7t#is6b+&$r4zBXNc6>UTtC zi8mX*5DmQ_@_B&6@6_P9n-83V;MCMCq_1AobChL7?Gn;ssZszz9um{YgjvIs>~kw` zg)*S5(QaPtp?x7M85`X(kH`T9GJzX$v2X<9CIHn+tX1u_xAfJqJaRxQMc)%RBKX}B z>C4U8eWLa`2Y_h-M#_1mt_BXV}1;Yg^76=Yhapi*`7NRM)n0QOYFvaK=wQN(mxy(&7IM$F~9Jd2oS!M`omz;_RB@#p9AXx{4sW`2*<_XdM1Y+BS=e zW)-bPS~xAUzU2xq$l>07J?QK6fE0Cw12=j|5W{S|%r80rD(fibBYa2Z{JTbY|_eYFV+}W zawLhcDJ|F*TFTh+280yRd~>v%4gxoMb$n{%7UYygf2Xi_mNv3bwHz&m@7Rf()!dV& z6#+H4FpdO%gp?Y}vOr4ODsR^^b*ieL(lGY1JYC-4mYRGS(NU85=rqCi5?OEz>ML$D(v0=s zK?LMSs^ZVxYH;&@oyHLPov^!x!LIP7Npr{AaZPsihH)^M6G2{L3y4AGV`>xr&KxM|26V(Vc@^CL>NL%TM0| zg0(>rQnk1RVHtP%x4>f1Utr8&BzlR+K~>JO)_O1xlbUzKv;V_tsr=)j`ftC%!`>%| zDX`&ys!zg3{?(wUqM>mjg4oDDQcxO`vSW1wq>nz&NMWP6TnjFk-s}%M746_HFK;J{ zS81XkVgPqn=hYsgKc!KJwcos~o7ar8XS>?eL#B+>)Z3eLjq^l9J6{Q;;!bgHE20XY zy1wW%9%Rpw^x@WCrSW=-uviaNJq3x+!k2Ca5nreZ(> z&(W-5yt!DxgwKX+BfpwKoSZ7m>iDvtuh@Yagk)ltk@6jt3TvT+NuPq9GT9+u6>M`UlA^E~;O@#pnoKgLsHymiBLlQBC zXwY+$W`dRt48kB$8-p9s=pw-_6O>&B=S;0PJty5#`S~YFtXO^joG~2Or-97|&p7n{ zFld?uq#5;N_~A*L3in9_=w_`@#W2fe^Yp3x^@sWf3F-~wkj*7;vytyesalh(6JZFP zTN9WMQuOqo7|?x>Dli)`c+xnnm}-?R0IBBYPnF-R^wE?)h&_G>J!{T@ zzzkuTJRmSLRvbv$NLPX@hI<2r3pEO!o&4xX@Jyw3Ll={Vn~us{;z=U%7=jZY1TbVcQlj_wY_sAys;aqL zIzH1^VAaDf;-oC}xkG?EXJ@nAd+eOVwSG za~cj50`Kcspqq9Xw}7z8Q)VPTbLrUW!J%@?XDPNM3xa*@p51m<2ugWw3{?f8o!!Qr zW@{59Je3fAaUIE7!1Y+o} zKS{)JyyXbQgYHCJV0#ejH0o)HGW}B78FD1oVDB}to5l_FT4v$gx3+V|+@6R8@%V4RnX#X+uD$b5sK zn!Ek^6i8CFH>Ba_29tDkuNO9PUDo&lR(=SWn|row!#A`aV(}dvrVE+U=t&B0N~;V? z8Q?iiKbzW<6BJ&VJlSK`t9pO3K@%(B_wg_=oRgiO+dK$c@UkwIo3<%nLv^9* zDB%zx$8Z(Onsr(ZLj?sx>UtVLS@t!8{VptJx zT9;v{7<(_*VM&*ro|;{F@t~d2F2~Qhuf?_YgO(CqwBM)$I?%)O73z^#_+cS4F22WUuISJOdwxkTHJrh)YQ zi)`p1mLE`6IfAINyUa1UelavILrK7!1qHsJkl&`%;7G@j9pSA_lgssL5Cx4i#(!el zT0VNbk=L{PtG$*%F`%#62#eX=$AtYkFd&`Z23zo%FRl}F^I#kWK7XsRTks(7?!CWIl zDJ3v~IkJ{c&QB>d8MZ*31)F^T;WzTfR+oB~3^GuH_ct`4W$lk4nhwG}lFbj!YF!(2 z#sQ}!M5}9wv#q%`n$hO=hxSK+45R)#VXTEc-nUKudz?4>S<%^pM8_mU-#uD$^M}kO zK~$)Y(t)#$_aTY?);gcWdlIT`aCpsCNuZPK4A*`>op*Ka;cCN{gP0In`O zw$ZQv{_i(k&!2_;8lWkeE(!})qno~+R9zd;KnJG2Kh4?S7G5Z{#^~?37{z{ELK-t0 z(W5|u*E!U4-iAt(*(JrcpW@xs1pHw15I_YuymPzHidg0+bQY+z#&ae9Z(hH+jhTW88WfPR{p%M#UT=+uvAK93$k4V2#fwN0`l_u@Vi;_&$sW1Z+ zG>g{J4J$MJmNA{0Uav@UeK1g;Zmrz-DLp+2|Yhq{_%M5QI;cT^`|9X7blHWQqZM){Ma?5ocvajN8PnwVAfSaXqJAIXTD-`K=Z5bXHtb3IlTF5G)jmJgX42Gbg%c+g39_Dot zW7kUKmmI#&hud02RuQq7bj~G+}ea1b~75i1n~e(Q}J1o_vBPG z`NG4E$2D7MN{414PdU42A>&Y@E<)>e8yQ9<_zPSWkDv0aVRXtD2Xwd(t7SiGwjB7d ze`VU*uL9_{npTHU%iB7xQC8F{uG`#P2~_|BStDcn^~Cr>>hd|uqoUQ5r$hDE<6Gkx zEp$o!M7?;z%+%QeblX`jL+2NjE~Ax8n*pI+p|&gv^D@~vINixe3bF+5Yl-Y0G0jgk%6zj9#FgD&RRDBOy4dV zug>VeZS-3C#vg_W$Z&hBlK|J zIq2nx`Yrs26KeqyF!@^h=1W>Bl}Gga($>wO($p+-5Us)jPM7uB0!~# z@k2%Wg!v=KrSm57Re`_GP3LqzUcIjR_pgLoa%`wF=d0<$a$p2f)>Fpm-|QoD<{L`~<-oetbk5nVkr*z6u#hQ@QP zR4?Mjuax!zoUpfn11e^^tXx>fzUS2#iLcV~>9(QFDoY12xL3+_)=qA_IiYpcJo|jU zC8%!xjMRp$uHOvb7#7!K>zDR!rg}c61qyN7djG_Q;$#a19QkyovaYph0*!I_tp)REZf{Jzxb zMf1PDwxZGnOOS92B;86R17)0_c5sv6d8vxCdo}s0lE+0$m8K+uR6zqCDNK545uJ1S1dr7nFjl>o9XoQyjGKzP8_8Da#aVl;7iei zKDMMpqC_<4&|>AM7iE$L>CoVbOZCMvprf3Yff@i1AjB3Y2brrRHPzMsQH=ovuohEj z^m5}mYji-0w|^%AtT{ESFOssgW&b&YY8crBQ#+?7P$NM?xPJv@@#1qy3G?D}C96As z9aH~BbvW^dZej}H&l9_hW1hw!?@p3D3MZloT|`3xMGOelC9?^M3m^{JkMP94ymBvg zELCJvotZd~Gpr|F)FQ=Ll{gX@D_b9BF1D5=Qajs6snVCUGv=jyux2Gmi#0%n_n$51 zR49Sjig>`T- zZ(xJXb+D^5nS7kR5Y5Ciy|X*~qIH~dIMbLVwT08jao(#9dm3xH)ngPt`YQTVnAY!U z*@Biyrbx;C3>BT+NYS|tE%c~m{zHY5EfQ*FyvZ-d|vPNx(>6V@88EhOS3P`S*MJ36wyisbbv#{%{Q#Ucluw-CVe{W zDfO#Aw=!lLj$;wGfu$cq6aS_p|D75P{aYvId_YF))c{Oz#9wI!tjkd@>*@>dFWwtU8!W5#hKi^;40j}%N%5hNq?D!vD} zdCOD%qbO7Bu;MJQ;LL4w1-PCqx+i6VWNB4@L(O%y4pWxZOaCUR|J~L7*>cCaXC8X};n=b4~MZy&w(Re-vs9_xClR*mU8nruo0CFJ1wP|86eNK&4Q>0@_aZY>~(M zTZfeuuP<*$$zR=@qC%>yRq^XT`Ro52Y5|nl?hD%HzoIuQntz)BTIHXE=u|?RrzDsC zo9zEzMGa2;y*7xmX96jq%sVi^AoP+bK->dJ^;kv>N@?S8Y;k#S@4hdi7oE6KD#utG z9wE3{sb$z6QfsS8ejQ}j;LWcmtPUkD$mn20WT&~Cs^90Yz5t*8!-F|BQMAew498^h zlF@^2N0Z9V!-hq-QtfE5sDh;iSJV{=W!fA5{E5UI!EJ-iT6<9@qb2+k zM)`VfrFLDG&rUm$^SC0Nk@D$?dlr7(F;}(hI-!jRYq;urC&V1x1ZZQjH z0NqA+EL1C^-QB$bSgWVZaYoGo=Ur2i(v2uY@;O1V67fx-k_*J=CHVm5Ecjk*!nO zL8;FFXKeTse^?IsuY;I6w(>|9(Aa=pfb^H~iKqstr$9`dB?PyyktfV$Ykj~I3m z9(zfcd?yW=d}RLWWNF3);TPV|ZL8rqXKw5O^G&RPDaaqC)mliy9^Li^j@K z)#*!VYa>aS_^p!RH1(jHqX^VPI+5OmFC|km@sy_ZtWoQ)m&v%;k+V=4R)DY5?>*=8 zR5^qIGXnPB8fo5Y5di{8`ui)!iXh%=(IEBEuf!zS$NEPt1^veB3Rh?N^6Ygn(RKVn1M_}tVsM$N>f z^SuevzUKhV)78tG$)9FztOeVxGi4TWW3g(Fl)@+S$&1TaTX`%(fs-=5 z{~xAK^?!VQAU~$C=nMiVr-~}d8uBmybA`cs3G(%2WP+*;&^SMxo^qm3lsW4ajIUV9 zRm9?nC{a$6mCu_CNL%ADQda)xEWwC`X=cqaI6jNBDJ*|bd1zj~fjjt&yK!Ql5vWaw z7>!I8P4r$;TNev*(sw|ssHqU@a$|dkQ+Hh^y7NA4o)s>QI)5}QDe5fpQfFbbe zb=mWPI~yO)tTWTBYn5i%Dg>|PqCK>! z26X|#U?_N8U>V~?bu}^Ur8V?e%{vK8$dR8F7Y>#6?2#KC-xRW|XkmtJEtLwaR~>Dl zPOzP5h+-a>E-lS|s|kQ2PrDru5AZKPzUv*a-6*!kC8ej4cYe1jcu{BXSnBG9^ErIP zPnniDKtOai3I3coD{En=GEsWeRgvmzpVf90rpEqfAg|d9)ID#&<-ZDO;G`+lgo{~1 zD^T@^23&p@CDOUa;%&fCl2=Uw6((zXJ>|Lo*e1M)VkrQ9(M(|JF1jeWGzSVU3Nsc8 zl(`5>-f2JrojzzxS9cU?Kr4~kLg|!8kN18qb8-o$`Xmbpl|kCTVP0m0*zy)1tD+*b zEERveq_F+i0JJlE^^GlSsXg}8oolMsm&0!-sA>&L!xTwY1e8K~z zJ=#fG=D4gnC*@X$g%(SIl}arrkANyF57ZHS5G(E z&g`?*{22{u`%kntIr{8`0iJOyju!tmIt0BSjUF9eS0wzQ(T5-wD**t%+9_M15%%T? z9GCj{2L;3UU*F>6$sayMV-*Y~d*-dSCncoEeR9;#ht2VdW>`ah(HzmFL{VjoD)5^Y z9#J^ja>j?RG11IdrDI{XoeIY;Pc(~(w2ERwA8YR~dEnq8duaJi+q=%!w{J6tOmFiq zZc=hS^?Im2ARH`C=Iqw%tL0{!eE=aT@%Zmwmxx&K)Vepg5~~G{XlcV-tStwtIFJHw z>;CxW6Hr7zwy`a$ew(ioVT3HYjHT}7sllzbnXj}6S{2gD+l{;wV!v;uak@8Rl&+o zTmJaeO6J`tV$1(3)u!himK5NTc4htrv?slQjabynOY-_y^RFJK;ue8sCvf_Nb8G0Z z6!FLcO;pRsq&dxo5FK9YT6eb_PTzibA|0^GgQ#N+_2>hL(-DmxctC z!rn>$z4>V0*Rsr=Q8b>rS8{41|93`pq1=(wjpWMlEn?h(GoPRHT$-x~mC!LD;1_{R z)7JZ_H1qUPlc(uPkBIaAq}A%e_i6pz82&i!WNTR{{?l*y{RysmaGYWi>^gGfjiHUY zGFm7{f~cBPMwvmRDor$Hr3BwzCRn5(+PM5#_PibIBc$4|-~RNeLJyEk@qA(&GXSg# z-F2q{k9P9ZX*c-Pj7`=Ht>bPMFSz9X^eECs1>BYB3KadET;EU~aMOfA=QqKNbIImI zBVByRhs3!hSl@q9S3CX@+kfT(tE&lLi2W34D!55Z?%y4wX`P2PA#+mEL<7vwDPlmT3#{mr^I z%fsJ=^}W5io$1@1NA$ebq{h-Olyklzr4`p|$v*|qj?~RoHI!-Sz_factZF&q6r;{R z>1kSo?NfI$bS|xGw3U37<7gfA=-r4k9Se|Cn@V^{KScR?ad+Sh)@0AKnZc!l^O3%U za1W{te*sx*x(&%&Nd)ydUZ3Qj7MF;eIetO4PZII38<#L4Fa1${eeUQN;A8JYRx zhVMZ>Dssn51^#Ky87^nH8!RxPB{>5FHe|{xpW@jtFMaJnv~twv`MYp-4hqttWyD(w zy6d$Eixy9D2?2i~Ha6028dS8tX)Bz&c&wAAQSHTzzG)9rttfWlG14IJdEuM9)wHvv z0^fQb)(YP3X;fIX0)ZDJYUHQ0me-f@p9#_pU(IWoqV-^%U81>_AiuNrD4{6(d}2(u zZ?3kdrn*he@%J3${Z&sR+e5cKQloMzU*h|kUQJf1wPl&(Zd>K5Wb_A#(h)3~NjfuX z%=`PWB%*1yk3MEL{>b&9)Pje{eDk`2GgB^Xd# z!N0&)ddGI|cK2KU!Q5L|r+)H#^yGWqb$|uj&YOh)XL<6Qgx!kxK<_N*P`YaQ;_BGxswjrLP>5(s@eh8yi!o&pI<^ADs8J zR^{^z&u|+oXnfXOxqK}$yBFfn!gL(enhtS>1GW!~ua`@+R4pwUFHzEJ*L#vazieG- z8)5(U*K%O1Ci!Z6xXygT-}%^;`E%~NdS>$DRN%{Iio%{{sov9}2$^A{A)D6OOabXd z3D?ey2g2xyzZUhK&e>)ahypS8Z1?Vd?M`Cti?hnsc+jhBHjke-FT&cWUv?i+7@O=E z!$jAxaM3h_w|97_6@mG!D?Xn%-~EfOKD?bniY^@UyIJV1=T_Lra;MJyudRyjO{;R; z#!rGDQ$A-^ul9KMvxuy1-`6-yh-hqy8|#+TtT<%l;C7@Y2{YSuIofCDN_t&a8z(z7 zlVEpSHDSBk=F>U-S@4nC6m>|zikIEUnG9lxyNG8|X35WMn|ormryY~CKe&lnyno2x zVTda;KkEQJ z!iSV@6_h*iGnj#F@*s(bEh7V9_3IVC$kMSAue~F0a)adG#bT<-LG6sDjWgGTu2czX zd=?@sw^t!oP7c?}Vshn7Kz?hPEk{cgM;Y~Tmzkt=EtPhfS{9{gWr@tviM>5*7Q@{_ zS*cT@M)XpBiTvnns#Z#wMsab7o3o|dVrCR?pwpwZDQVIUAv)Zaj`OGDzO_rCOcQ*l zegPnB#8^Lts2_8W5#w7-ZO3Enr&rjO+)D}VLU$QQS^TmEs8E?&dJ2-$ueCgRIEx3; zQ~Ca|u$UDfuu@(U?Lws>+*9FXa9Ec?o!Db44cdxPfL^L?)yU55540ez0dyy`J12Y! zm3IV*y_4sjMwFjHm+WHK4W^Wg8K-HWb5(I1&=JQ8jCd+yEo*$8oToy0%iMq)d}wHY zpbJEZEF2U91Y*L}%CUqtY-|tRyI$ue4?G#!PxJxN;oG+J)RVEVu;e(H!-N(2)HCMxbGx8#FRuXnXhgvR|<)Lg>O!YTsK<>Xj-~LU%CHPKEQ?v}^Mv zQ5#Mt0-h>@s}L{)XjZ9JIP3N(uy27lPx@_wb!gprQa>MxgG~oSMX@u=c5{NSkPT`J zKg-GkXM~PIcktj~wISY%wSaw=YrVakRR-%wSzg@G=n=v&a2^5N28fV%@;9f6OE!?? zU5-DJ!PR^fA>V zj86v*7K#i6XhGh$_>1-a_Yf5;8k29#F0>%!7`I(f9s`kVgF4<`uV-XBTS|K48fi; zw!BJU6i@%rtHJGfF<(h6C|K(@3zq;BlM`Bs9|H!Ae=e1TLvp}iTU#-cCC)}Es8fHB zfwpc4QjiV-4hKB{-zrKBEtJ37IZ@?Bv|!C6r%FyKdK3ysBQ;jy-%pL2n;wkA zreEdEB^|!ubUH4`J*C0&zjxNq(U&t&k|eo&U@ME77QFGKOzs_8d}*|y?s+c^F4IiK zJGWE{Gc!(oTU!kuI=2*IE=`xe(E2@+)$K6**-`7Jl`ewTaN@a@o7(~afJy)plbnFp zrfYJVC6rHtKkjRPRp&sAsxg(uDn0kj*F>V4as~7mD$(OBX|k%N6Cgq0KCvT+)<$XP z|9Q3H3rX!Kv$*4P2ZUIXFT=SM)ub_+T@dyl$5L_WYUMQ{A&s}>9gMr2Q$ePmyW>t1#0N31OtBWt?i&2 z^(+{{zO(h5qRCU461t*cYHHDjR3D5uNsbT$4iwlLQuEBs&&+?J zSXc=MY7$CNY(9IOvU1{JzFCSl8YhYf7{wz0B@1@)!yPI&UkN=-n~A`J$*@bv-4|^! zs&QKS?dX(WhckzLijc=wZD8J&G~qg@v(I9NdK{=b9#!I#Ayq=LQFb;?*dMaprb9j^kb=hC;p%YF5 zkd=a{lvfw^r+|4{qS4Mer&{cdxxjyD1@*T3i#2V+%}4sP{>9M{*R`;P0Mjz zdQ_I@*8iW7rpw{efs9@Of-bspdox;%I2ZN8Cx6mqPr^~SlLy^bQXqnEGH*kQG`j>k zX*OA_j0y%W;X}TFZ3J2YJ0TE31Mn2;*ViD`$VUOz%X5AE(I|1uzMmq{EE73)ZAQt{ zPV?;jj5N^{XuHV0@69Ut*qE4tJn--^L2f;usQO=|!hY~S&qx$z@PPj0f>8ex(L^yI z510K-K%i>x?I-(}fsRr1cW^kPw=^6UXV^VW06w=-_>p-b7}mQkh!*Y?k|QcCUe5GC zMzCtne<-EVvdX_1xI_vKWdeXbURR8pes3ESXx7<>Pj?fBz)O%phJF(vtb>8@Df7OQ zwP^`PH{?B=AYm!f7*IveN?UAIR||532q~}D&|4#EGh*Luz{f(y6E?&~>mIA0BCqL* z__j1TM-xWLZebw|@me^V=KCilzaG@{=h>JaE3iUJz^Rakm28GphiF@n3?dl*vC{xE ztoqL0dr-X9bN?LHC}5_#>5oB6x9oF=K_QB5mHktvf9Poa-cm@||5reZ&^g~PX*v7Z zQ=U;N0F4TlDoHn1(q_|MilhZCKnE?!(eEc+b_;3BmheWb>TzXqvQQ?N9SQ+ieZt9J zY7vc2N$5g}blSyMA%h5QhDbj@tthn`+4SBnk5U<#jUAsH5dPpMOK)>SWGferV@ zbAGV$d>JKuIqsWK5xhG-=@`2kJO?Q@aDApo6uDIYzmd!yJL&eg%NRN`Qe7Gw?S4Nv z>69RnxHp%b>1d#EDEAwal0~&uS0faSG$yqkC8gvh*=Xd)OtH2_XrQ4$S2)y7HYvA29*-d$dMABjowTRZTmZ~pV8wt~^G8o#; z@_)H>uDgFxKE+s1<7LSXDfS7Xr$Qgj52%jK1r7_m4<)3gr&F;eEF60H912w_ikLT5 zx;;GGFc*K~{*nfqT`g_T_t`p=D!olNQ(bmQ&W{+$4*~$xK-W1nQ*VlH{S8{Qf$T|g zx}~rC=Tb1`$`Cj4u|3$!cY!uQCblH5YAU5U-nWMyZ0_BwRRqrJ(iY&N0s4S(*+qod zV=pm+JG?V9`pHPNOOsd09G80It-Wa2OgdxVH1i_QuFjU6nGY|2)1bX`vt6w0rv1|L z{m--%S~_1#ySRFRefqogFdCkg6}?qLA|q-{R%;W!em@9eH!+`TySzM82Uy=HD)!!3 z7_oAi`)H&7>3*_4&^oBK?;Hdoh8PR{BX(kDC^g>*afvZM2)$>*SHGoR%O%7G)D`1{ ztc!&-4jN9vZ;QddrtyZS5m%z_=IJNW7CiXofJkEG*hdpgR7%P5U&z1Ke{pni5)Pcf zv5wDY@58aTDmd0@2w`!dm@@?dDQTy{v5v}@Y{E?)qT)GO*(JrEux5T=WF3dGek6c+ z_4DU|T>7D;949wx%I>}~>rhmjMdZXLHhI!wPHOqK zJQ=INP*mIR1}uEcKec|1>qT?LH3y#3F#Aj0XQfUjakycdi1CoX2{3)iP-%|d23az2 zMelw=9k65e0cX?HX`-1+IrUrOmQ`KY#VjICu3VwQA)@%pM9cXpa-li7o|C^~p$uvs zGlrXui3;?cy;kMu^K{~SS)vKzKnf>MUx?ElaePZHr}>8Q(>8IG=bI5rT)7_9luO*q z{cOP`(&Cy$bd%WJYaNDJ%v2x3%t~pBs%~|lx}n_7dLHt+UuFz#t{%+|YnlYx>j(V7 z6=EZYl^Xu%H2E?O-->k2KWA-xV7R}chsD91aZ{rr$#?b(Kj>^maSR@FH(W4e#SwIC zT+`84C_CQ!%`6Q77_3?-g%zW?23X=}s*=-`lV?ItV#e9s;HE-`x)wtI*Qx|PVfjH) z8B2HafZ~{80X$R5T4(|&mS<7pMc|C4m~$0k96C8VKnsr(hoZ@WF4Xpw-~Q%_KM%Qy z!)O?RIlwpLViSd{`Q)-My;B4Ev&~iObq8y!f^rxdTaRtYiR{H@hSY~R4S!h&LeCGS zlf2+duC`MXhAGm%%TqDaazP&6DuC)%pw>l8N-415b(5Fs&SoEvVzR`VLx`bzbyU04ds9SXC#aOCAzasB<(Inxq5?!** zlgv%yncb>QMe+W6!i3<{>C!T%jW`_5WFfsg`P0<2O~}A-j!XAyHJ94bOhUX;GD-p3 zihJlD*!#uFHv#m%+H9UG!`wf){YLf+W;c^HpJbw|40B;gEk{l&y|SK>RCv3J$~AoV znphM{f>g^VeH--s6WvL^OG6pElLiU~hI2OmNdqSSwTlUgVOG?sc%JM(SJ)TSe{(e2 zJL3FNT>_+FnZk`J5mF}x{P2mPts3-6Hn6T*HCeua2^YQ#ElG!{mj+=4^UXw-6d#wS z*e=mjujL>J~!yDGG|8X=82p~Q*=UkMUTBO~E1V5JWU-y>sG($%+#8%yjCOfES+ zH>OhdCx*M6;sb@FT0DW?TcM3sGAR>m0`GzEx$B@1>NSrUL>`yp5)=%O%c;%_uANnN z6U{L6SPGX@SC9BWWFM?exna3qmQB~olpKvsUQZQ%$jZb-GMmxv+N{uq4$&4@OLfOt zu(p93P`T;&QP*D^h84y?)=X3Ri1L@~3F&^7{agfY$Ms3eN1B$Av&Q3xGtHE-r4Psr zXGKNCxe)S20}sD%pWq9nBabo^3RPKe?*Lo=D@ zr^BH@2XbLXr8(_9hJikY1pYZ>KBB8jMCdbu^&jB7`)NrYey3pAr*>9)SLe6n`+Vit zb_)E|JA=}~S)~f&?fnUQeWO^)dhfQz@iqSgFki2+wGbl{C`Gzdhi;+1~UuCve@bb(I zojvK+r`~GsE7t8!XE7^Ww6Iy=q3#{Q9%cUK+RXB|JT4LwQTchsN+SA0k$Tu}4cpm` z3Ej3xj2OuD>go5vgU997e?D^^y+XWiz{>|x!#ceCy4!HMrQHpZYrvbVD?Ex|LKk0J zSe`}zCWnI@y}GeIg>dSnBEZ&|y)bkuC9Hs`$35&VUSPFT?$z+=`qSQ}njc~;w(`4+ zvDNIQFAsil36*G_J$lil`ipTvAhWv zqLAe1kE>^wXqbb<#WE}J2r%0u&AN%! zHdRpMVxgy1TF>(@iSlMor{2eR($>ka!MU&lIp<7HeS+eB1z0ze0^yT8BkdnV2wh$( z;!@hRd{JR#?R%zDZ&EQjXJ_zEYXt52O_{6FGXRT14pY%^%do(DEu;M7WrSSet^OjB zjR_aiTaiqR|3nZoy=dgEdvkSDud@!v7 z3rDY)le(wI+rzVUbWnGD9~fTEoS!Yzu+FBCWCvmqiC@CM8~7AxY4^j2XeCd{QaJG- zn2_OI8ET0hi~_Nc`Z!J1)p1rvX{=@0cH$Sbfa(Z}k?6TO;`OBZKMTK*Je_ubS2{XQnYATmDDn(zV_j2FRkc zsgECx270|aaLsK!=14J8G6y2)I*3z*HQY`2&isj991{-)?c6vYxy208HPfjM*c^zj zL-%Vma%7&UPo-~ym^w`GxiB27nk@|<1|g7aJHz+_;`Q>m1|mdr<_}kZaVuqr*UxS{ zuj( zpDY%#A2~gEOrwFJ?D#6@9e=(&k<0l$lKMnMXd?Fl#|RE7`UXlUiP) zC;8Kh5UoIzZ({_T=<8brk%x(a56$lmZ&24zfTOyMOduf)*kqde&Yuz zxKjUIR?n33y<0_#PpUwUfiS97nqCSjFVq>S*!WP${}~u^$5@A^6HAmHzZXv6i3A$a zBWg0s+46M}(t!)W=fO zml%%lb>e*@R_`=@)kf=0>jl_KTC(x}-n;DKiNXM{|gWqstUA16s)LWJ^oWM-@I`UOCg!Oh~!g@WVh-8Nfji#f#) z`0Y=c*D@|U*p;Y=OM2C)Bs`-g!<}>nRf0Z_G%b>gtVxegt`l$t8B!!7n1~VlvbNHu z9BvdYj9O0|N*fPqnV}=Spz7N>`}TV@b)V}G9tQ*!Kp=jMue)+#=CV(fLiswwC(AlO z5tGC=lC)1Df0|=?yK@Y^)_G=G)T}{Lz5kcy?btUC}x| zXMDm|yq}t1l#9>#$g6b)xg&Wvx5g$TS~@$cEOn%mVKA@8xX=G~B2#Yy&6kly!+TEB zGxIT|`WJd{v7r9giQAo{H~qwZW61ZuIg%XTh?%o~dJEHh%0&N2Qe>0FnS0~1icW1u zmo8l|$P|9}>9K_DeFs(nWj3TYSCNa9Q!^fVc$^!PX!{BV@*QPuWdh1)+Uqz3{^%UmpQghsZ?{l1>0;b!e@V8y0HrqBj^Zdx+!5v=5-e4v z|EZn8d8(`aEcF9dRI4T3zjMy=UJBi|N*##}YmO%}F_^18bM{6q=E;HW>n>yM)I|RC zStI5udzuq_ou*nxy#5Y@&Px8s-j~?b%()6*zH<5au3zL5zbC4VS*4E>HUucWEbz>I zBb*l7yzgQj^3B>bP**oM(fFxe4nIkW>v(CT{Sqy&u5y($IzRM*zvlBnFF$QZ4pJ+i zcbb{Xrx6CoG(_#$(vVAg>b#ZuB_K7RAf4Wv=DRs?gbZve)OLC4>}*}&QQ>SNCo?M3(p#y);y<8Wu@_UjpoIx6m)A56g-RYc!+cbubk-O-8osJ zAy0Z=6r~EriLt#^6ov2Ud@R*cWsuF5y}rGUM7{x&-_Kf8*Cb~mO#@DX$wWGB^+HDE zUgq;H&zU>9!nLtAWR~A1OxEbEaK3GZ@X0^P{Nc`lv3I%G-Nq2aKGLe%meY%QjXwOo zI(jo?13%TMjo>@lmRubSPXpxgNP8-DBJA$-lvvUa~z1!DMH_pV>-x zxY0S`%{qw)U!K0v_hI)3Fzp*=fTtYR*pC|akqi$EJTrSWs{&S?m~uJCdnxAxb@4sT z4gc(k1tun9$Py7j|G-o)Avs|d6;_#zjSM=u{#@DGWI{xUS2YHg?pXu7)==Tz(OLL) zt;hOpJsH7@G%TDZ?{`^Bmg+hQ%1s@d`~H*DDtGmgen&Sn4`a#b2~v39x(c@QoT)cv zArB_?x#o8~UP*T-oON2?=;%2Bh@z>Ym??#%i z@~bVGHCoMw0nE8SJ_Gy6_!xaJ*0ER1BLs8g|0S~f2;n9vk&u3q{macyBXRrZRRheq z*DG$Z1(Vzpzzq2nbuhtxxrEw~1oxk#{Qqg*2`IqzwYbHQgfzZ~vWqo7z70(}X*Le?TKyC>sfFX8T=AWRzmmX~IM4ssmi#@{ z|1$rsEiH*AR1utqX?rMAqDwl+bV+bx6aarOn9>*#eQ?rAXYv; zj$p2aiFg=wdK!~BYuZRs|ANO6s&Z!lO`gE0dAZ*PG;DGSUYzZ1;CFA&sc9LY!(m7JZMLi(G&Du zfh}H^T7;;b=_D5a5G{rdnd!P`8xD{|n}&|V?3PrwOZK-lNk>AL+rdEZ7q`M3eJSUc z#;_@+W)^%DXrv#pjy;kh97Xm$ydt%YX?bJGH`nhaI2zvoj?Auxnm#Z{>0!-w8^BXa zd^A#EO%>7ny?Z_CaX#^qe42Lg*|Yt8U%h4;16g6sS}jpCK7P(ST>q2c5qKc)`m?p~ z2BS&j06AkYq#;DomjhCHuNVCRlF(03M_uiES?X+azySa__s}4+WEl2xBPenSJIle- z@t45~fcO_3NH;ksUp&z~IZ5un`O{Jubfu)cYogUlnN!_K6L0l!W(y%x9U;);;&E=+}T7`@r^?xO^UsrB zG9;@3Ad7%bQ=pFXBun+B-<>(CjcKM6O6$LmFPkL=;i;e2oVnZH*X5Xfpae%VZq~2R z0Ei?L4cX~TRA#42Xd6)zT3YF5Q!IKUIm!tii*0F)F|irqfI`N|yQR(6$|T$6tpXu~ zQ<_5GD+U%^b*f?&^)T2cT*8l^lP*+m8BBgl65}?!D{bHazwZU(9;rHC>GLF_1z zCoj~4?k38AL*P+FQeXrnu@3;?p{KtXAPYc7i0GQ_L{LmL@J*E}I0)+agC4Cw}a>YHS$c z9J#FD0bBOU+Xg5Z2OU-DZu?DnWrupxpCU3m=vkY!+N%G3(WuJXgT& zn&o<*#u7}snpX>{2^{t6aH}r>seqa8pmoaqQ=5ptqYaJ*R{=>j!KRWtx5jy8@k|h; zBhbB1I}N(Uz={IMb+M%K9Kq>RYyfn)M3^y@iZw5U1PT=3q$JxO6Ovv%uiAR6CRtnBQc6_K_!>B}L?-N>9P#=i70NKX*FI$%t($F4?|c_BCdDJ_+Q7i4pHezubcRHV67sN5!a1C8@LJ4|;Y2D?*}#^vw;zl_XP_If8t$)O1Q!7^;f4S#QhZ~CH{si;d- z@J?aK?N#D-Iu@TmUwopE3zlvJK}lKPw?Y2se7`|!MIXkbO^D=z27e(y;w#>ovL_ZI zFC2d$g`H*;=e0*3?N`KDo{9{k7{&dK?vW-9RbvB)AcnLIA0k&EpAws@n}&+rv%|6> z3;~xUgaGDu`NQf<+z5ViFT~iiL6H^wshfP4hThxllD49^{~EtVw|(21>r4~BByDLs zjH7_MCPZS`8BV6o?MvZ)dBgk!*)F0iLA*-shO@XIjjz5H$gXlSZ?3n#_ z83xrx)KEEC1<}oj8^fXaAminhc7O*6s*$z2ai5X-d**DZj|B6gk({rHXG39?F$)Yx z&@jaCOilKf|Kzg5h-_+>SSw&P-6_9xB-uWQ&wf)}M{Hz2FRpz_g!5Q85jA$kYJOMT6?M?n2SXlgy7jDs%*Nux{|chX($ z_KDa)TT{~T{hEaV@HBpPRX8=8$<}RQJFsHDu@{<3$rO^SX0dXSy6m3d)UeY46JE(; zzICatz;m>pLfd$OHM2$BGiSc!g1sRuEM|CdvVF3=GRx{3#%$}kV9-v1v{j&Rtg=5i z{J@xRP_XFs_+*%6OYKNOCuBK(LK%&K5ELiOB{&XaU?BPfU+>T-ATEs=0sU5y@2UJ4*dYfWaPwhrp$>m@^xlXh zXRo7a42=cF(L&*c_V*XVwUxq?+6B-I^!;><#xELKIrFiXj6vDTML`U%@|Dfj>R%GO z349^_^XGiCrx0ypR*PV-fv-!qZ1TQhtr_Ap&Fx!Scok-jrt>$B<^%=XZWh)$)30DiZ6|t!&;gS&(8`>Ox)qpD( zcV$*hjThM3ZsA*nq*YoB56OB>;9RJxC}tma2tnW@Oq!AxLkXX%UO4bKxagAD1y~2G z31#C%k+GIy1hKl5b}-|GQOoj%9jCq*8tfzvO}hrFK))%4>KEZNn&z_TOg%n84C|aD z2)dLM!6YYvRH=Kf)T}EFB_iJQwBlS7go~UMm)sohu?gwtESO z&=FFa^~XI_K@JOS(IKvU$h{&v3gv_BW)z@Wfl5*0+`YOq5<-JnESV_I_7DbNdymry z4YE+0636WHS9ExAQJ}s!FMJN}MIG(2h=Ppxlo@p4xn&!xI)sLKIfCGMQ;Ne`Ofo-e z^-Fr;AiqEjSHX|1TL7B-)*9A_y?kFVUdAeDw+<1M}r0wux)2q4ifo zC`pZL0&f_#DXUGf+rd%V#jP-ncO*BIk3A4Im=zp3dce8S>{ggME6E_|qA?cs;dItgJH ztUf)h4^V$ZM82dK+&;Rgls2B{H|67SN(HmrzRH`(3PVF9C(n?kOzzjC4}7MYD#^W+ z#!A`O2|+DcS|4NLaD_L5;YzE)hk^+Da0r5Bg;!Nr``lzV%lGuOgXr5^L40t11oWQs z8=wvURJ4#oN0OUCqhW@I@nSUs`j(nCK5zadWwy4eP0_eD*({zwTcL7_a>C#zb~fcS zURN;!x;W;_;Oh&g8N9c8vlzVGH0$WWTzSfC2|EujDO}QiBVAX)t#+ILd^&@pbxkcL z89R~atqfks@Z~^win!R3Mi_Qt48wj<1ioL#p8(X3wS137=SPmClp$nX%n|~_*3eK) z(4VS~36df4N}_&JbcNtFv?`yjnqHL=n91^tYBuvl)F`b$Q0{4!_Jp0Xu}}InMuq_f z4te?@nYyUNb77d~=*FFl&z*YXWX}>KFrAf+LmuA5A81)S?MNta6%)QB(ZWCxobz*k zb8Cg2U6^d5Y=yIrLiJ8K-J1m;cJ8=UiPI(4j>V2AC-!mBi{;UZbDD{mnem#ja60O} zxzuKc$lngn_G1rm9TFYYNIX7A=QS4>ON6s?U>R%sX=Hm)Vfq1SaE`X-=Sj#lxHgX! z@0t7y(6=$-Zv9@hJLb6I0z#_82MdRwwEuUi*j+iDnk`a-jio znxQ<8Rx_j43gz4obHK`gg*pcvbdL#Ik=H8?zw@3cIC8k>($_x~R7^25u1y~ii+KiV*dHs;dUnSm60ojl@A%>6M9KU z)Uy{1THgMas(gw|>B0WK1fNW>*zpi6YxAf1GVSDG;F{+#r!YDx!Tg8F#V@{9MMXD4 zeJALNMM)QBztFp_lAQFb!_3rA{R87BEGe|IhvTGtF{aK`BFqKlr)ZzVf4Du0C$MHN zn>RJOhrsB$DMFZ3_!xg>?5=DIn|JF{;Q9J_s_*x&Nn#^)Q6z%>-$bcQF2KBW`RcJH zN~Ib3{szBAy|N)yBp7bsRFk4(fyl|Xw6AJ9o<)ddzOnsN7ci_u5%|x6fmck-q*~m> zsk?W^@4H$O80H5Q72VrT>FGc2AB=2k6=;z&$~+Oq$%@JBX|a+-g@W+#9?L0(sfMfX zfPI*F3Itb(HE&unzZtdRRrP6f#^RRIEaT*I@PrMvKP@_iv$0UYvOdBk;Jo};XT;Mf zf3J9h(`k;IGGEC+kPqUiBt!6UA%fM}F%iXFUef~JJ57E$`Gaw+J%OXwL?M5cxzCokNB~ zLaW{CsIy81>xH^=`#X8NX+LI%%;Hk&g*# zXoR}Yev1rtVvl-|2@$)LmcG>hTY*OfBZTYFOQ7n1I*}7@@o{#-9D*}slbWk1Ln(g( zUDqri7QgUgq<$P4z=*OlAr4`+5{RY{&B|FOKrL8WS^#Rq2IVON>0(~mrh2*N{$~164t*?RS?HZ&ark;3_^%1zDZ+h z%7q2#3FHZhWbz$Y4vRWXqm3X^C)ZyADG@c`kO^qf+0k`<7f$Qa3^o58BJUMRM8o*$ z`7p%6`fWxI?t-Ky_Z?a`G0NgfAmBGDuowe%4429zO@Hi(MVjXx?X#=41t;OBGDM*l zTeRUKQA;MMOyv5jUdl?LVA8*oHk^!&G=IA5#=RWEtZ1U-p@~+1^nj%sVmFbPV0TlD zBhyA6uB4awms^Pl*2)FF6k5QUl|W?}x1}LB*>HPz)Kw>oWlieMBu7Xnod%{a}^ z7IFFKP$}0+PycsJ#9N$$zfZ=4Lpe`XzKEyUox;{gg;T}FIq1C;^a>ivK40C^45P;Z zJ?ectU@Q9=p3*A{e*EPF;0GSV%|BCq$@qakGUx?(1#@+a&aBz)z|YhVpx0wf^ldPb zHTysu-l=7dz>5Nj$p}#7GKM1@fuK!NExn2fIf_BahA72B!@QkDOxA5|+RQc?Plre+ zNRxv9hJ~ReR{lY?H2X_6Y_2_ZB6%|1swkr&hPL-eVJNCRa$$7(v@Bm+?sN5Q_Y`R3 zxOe5*s^QFoLOVPCP5w6Z(X!K$$Hg|arQ-o~HM+Srr4j$TfCHgu%P*y4$sF9nmuhY? zg7UIz$o`ApEovgi6y)7M5krBnk~d-&Ew~~{j99p*MC!p{?MHg>FhKdT)(xy@v!JJF z*%wDV0A?ygV+dp%Ps3Pnx>(2uHc3bBBa1+4VRpABiUEAWovzX%;bgUe`Et8qR->J4 z>5iG)kIyNbd}a_D59WUP%DGG=6iM@j7}hwRhi6+y0AT03hJr2ZQI1&?3Ye zWU))W1q=1{uX`n_{s6s$X{(@HH;HBHr#=vys}d=nQwIWt$_E*BIzE4;k(M!tMf?@F z9~_~Cv9rV3OwefC(Ap*T~K+Pmr(s3 zLl`Tlywba`q>mcwsR{mqdD^b5If}S)W>xbJq5X*tV*Ya)L@Xw!ni=>?{q<>2unHCg zO0&@cH!vw<8IyoQcNF*>Ymm6Qi|+uP2T*{cx5ggbk>JN-p3alVTv*1SPqdM@3c|%F zcu)J(BsB^H86)0}#R#b*|Eg0h9O9uh}m>GT}=+MlHppX7*Y(RapY`3)w^IT^o~qYrATV>YBK zsF(FEWUp~qlR<#(W`BrIv7#5FySaC%=~^O@2c-rA+57&D1=!8zWoxvCtx)->fY$Wd z-7KeThi-g8Nf^4Wld8KzdKznmTRj4jPsx&#CRDhBin%$*B_f=@bRdcz_i>1sbTE0y zTrm=YR#}$@joi{=Hucg;OJyYz61s{_{i+up6nui47d07Rk+(RLp4LwiUXcl50X`r@ zzCxvzj0mtB61=VJJ2q@O$OKHq3KQ13Wy@GQ-LWQ0s^FIp!<1YtR3zyUOFVfK5+W?) z+S{R1|NVe+`S_^tu#ym|G+jw52#W*9diT@dd*Gx$Q9sjH+K8vsOQ9X{>*&lyuX9OE zd|d6JQ2+~XURd>_kVR?(EIs)>WO*;e4f z2`xk1MG7CZs}&gs!M@YuFA*LFIi7+5XmSBd3|&iI^(UqTCq2!|C<;?TMVQp67Rxb$ z2#dw!2Zmtf!jPeHNpF3se=z1Z2h{IHYu4qV^Q;Lx1_WDpNp_a=;)72yX z$7yVqLW`J2F)kZBW(rDbp8&<4)>~||esK6eKqY>@$m4r#`x4L|vIH)t9*_gmku@pR#g}TOcdJS2`!5V1D{k0ad;!ZVW{1;Su7UX6080r@kkv{d zGlPO286f4d1lKkW$ihzo1GuCDvL^9J|}JFX74uJ*GNbC@c0A=*%~nbJJPLhn=3m6~JPE8IHlHY!y`4G+d7B!L25l#pg5C`SU%3LFpI-2g z-<*#BsSUgv0FMuJ1DU)I(!E!Cq777YmkRH94`PJ=y#@kRj%8veykA+0#GbOU0;mz| zP|zWKjzpk?Avmr^0OA1rO5IM*eUMp4EHH~Ps7JO>wxQ6X$=ddlVswe5 zy68col>+fOsm+!%#L8ULh7K_alP-vjAsp)Chr4O$68=Re{{F-Z!jZ5I8 zMuXr*%^+eCNFe39Z4e=XB60sK+oJnll@!>h!;_LqvDw)>RP+L&02Z+KA_f=guh^i% zLThBGJQqFs!T}7kN*Fo{F~Tn@l-`~;KdrTpX@@G1n+=RV%fH+(hNJi2!dEt=K+fQ* z;m{~ZWSfjE!5Z<&G&|795@0|s@K4f3eKD6iurYKkmF)MSzbiFE5ru;Yi81HckWH66 zA=ZBl?V`A|q!pUYl$Q(%0-%E{w=M(0AHnUkzO4E=*YthWa2()N(*VaTm^44T6!pu~@k;#)2u zag$4zcI=VW91gDDpGHX#KLesA+$`d~hThXU{&{WN0I%7|HNC<4p}nH|+r^Bfci{TZ zwgYp?Q-^m})0i6==5lJv6%UM%mNb(_!;#73ha|!eO1m#(fBe^dZ~`JW9y3N|OY+A) z#OoxalVLOE8{f8e7+v|h(EdM!y>(DrU9&xmyL$-k?j9V1yE_DThX4ug?(PnQySsa^ zkf4JFch~t%p69){?pyU$eWz;vIJM85*)ykiPj~OtYXvifKYHQj)~E(8@5Y24TZ;MQ zkzhADv@En`kIE5oec%aHI@jVzREQ+GwcXr4|5^80(y>C#y&<`he%7rJ9ho=kTDq;{ zs6}}8LMks$i}7n4DfhIFiQH(9Q!5r4+~?%CMLXBdArZ%pPS>^7ugrOdE(gf-hf4GA z_pz3n+BZPt9}h@sz^?FMXBjJaYc$9UWhWWMB>Y7{p~Iz-kvzex+xxbN z72o@cn+<6F_8iWA*)_rlQ(IF{)Ia%-qebcm7}Yn!FS$xx(VNDnrOy`$PJO^;bG`u# zqw6SrU6eMt_}bP#p&O$p^l&-d(h?RfmgaZK0OnNTj}kQhONT zUWMjz!*cBjpU+B~`##*Zk>T#YMQbih_ij&4F@9A%aWr7=-Er+|OvSaChHq|cZ28{t zc@cT_8KPWW^UwbInN+G!4w~{e3TN11zy0pZZ-1FZSqD>_l=#pi(5V#FdN2>nIsC%N zK$)EcO(M85sI5)uLrvygYe40praxRTw*1zX$Y>Sc+Hmo0^2$(EV?VXok3ec!8eh=r zW2)T{D~Y!r4&O^C(m{+aCruqzQjd??0F~g~>0&VLMDMC39o2&TaF>d*TKf1HUk5`Z zUo1Mzudvdt6rIgq$lue$=asn$){HMAk|AR-Bv4{Z2I6eSeXkmOW*pT(sCq7Keoy{A zSG)(^7$*Rh#`uDdu&CNm91-R>e4n5zz8l&;R*87^w7eH?SdWEXz;M@1X@@2qerRkw zjpBFI+Z-W$EfF&t%>p!68Xrv!c6mmF=~0y2x^1H+#ff(UXl4Bl2qcuQENQDRXf**8 zZWr~n5*w)W?Hp!qdn^X2jQ2aLLGb3Fg;5>X??)L&*~RT3$UnbFVqm$-sy0Y0ofWfb zu4=v8^Ti@n1uK0Hy5q7u08c&Lv3+j=MXySL6Yef`Vb?82;t`W_V|-&g_R(`U{b-y8 zNwBB`*W8^Q9`(-hY~(Is@mqoOcS+=j8rYo8ZS&2+Tgxl(Q*5k{B|#KzaQ)>&NB(tW zbKlNl+_{UzsMrb7mxEi~`&(6wWiF-sCdufv<4=?kPIc_N!qb@j^pc62m|tTqMf_?; zt`GKB78a9$W^I+{Xk2>LvL1ZEkh+!-zy)D~ za7es~@*R&e86JdTKf5uH|D3sF45jT}{>gMqQwg=uI+ac#wT>KuLBc+eb0BEg6V!26 z!s))&FMkGXGUF=aK!Xq$nd3p0+%YA&_c+q3*8)5 zM*QIe>qF>80hdL-LdxbwOqW&ovq`dX@6QI7;Lly&%Z8256kXDRIC^4$vz`&jCk~Th zQ#sJ3E*$NeH&njVel@g-COnmt=xOrVHN4yD?dcekbIEe@c#$UKR`!~*DY3WteDDPJ zzS=j!WSNZ=smFT1NAOh*gzuLFV#U!8&^KSaKWcb;OMgE8j@J@&#tP|-Mg>ns!2Wch z+$)WiB3I!*xbu1zr=H+RraH_Eaphj%rvNyws@kSqe)g8$MRk_y)N_xQ>ys+>M7L_4 zuHIV1>LYaGv`|Rpe0#mT)?8j724ZW&+APhEx%`w`t}{MJT%5W-;-t?PTe2e;CK8e2yIR`usjMvRrvh=p-7%*4FMqAP!Ed98Z?PemZBdB2irN=9 zw416Bwf~x?(J6-tQxLw*=RNB3$I8mj zLfEq5V3uELg9)yz=S~5JHXp9IF2d5XL4ozyCay>_pljY*;ZT%zD<*~QN`hH zXZ5^CGQ*KI7|)n-crs|42}`|P*0Kpk7lMzP;$qp5>I5}TX@KI-^Y?IIE|xjU68WETFi270#{X}9;eXgu@gnxrCFVY5fHmU}>CGW)3^3?1#gx9- z1+);Aj>A>Dvi&M-+yCinH=8U}C6-j>CH>nM_hQb9^Kh51T-@NY!20{tbCND^m}WTc zK4aVQ+sBbsRR(oLf49&iT`6^62-y>v_ZE&Rw}QzkSuZVXDAKZN~R zgdhcs6R1Ae3nKE;iGPWpP!5Vb83sa%fLk;UKfl)MnH)&HsFo)OBGG0V7!c_H;qo3prq=pX3Fkr9N8)e zwiGo*=vxF{NMGDHJZ0vLSIDF+=qeQhWa$Ysxn&H%jMi2tQd~>TH=$X%<|;=R0@jj? z+{_tSZ}K=mWHlRG_M%KwTqwa74I}I1a-VwaSQC^zqossjVB7?@Q5*7Y-8_gj;__m@na9Goi?+F49W4hBiZ ziKHfCT8!$iNwDEK5m!_SNFkNicB+EKa?z!bMU;(fNi0OnpaL<7>%wi1)MpqwBIc3p zhC~b!`LCQ5du(H5P9V?{3Nz@b4FsYwa!L8V_T*t1y7<*?(QoJAVU6a0HnN){#^MD9ar!YCO9iKf6CK zKO2`)f$@{&N_p8zS<2;lC9D6zYTBmCbNvM4AbtKl7ZL(PBHzHM$fKj>WiX9HmQpS~ z818x83uhz6geBf^nHb0uCIC<^Q;X{{?GiE7F$#hrtZ8x5R94yAO~H;e!gKq5*~tIv)$TuYZxuA^^I@nFe)S z+{7hC6e&XiA>{KahB*Q`C4@pDbEu-xNY*dl*t;xkM#8+!cjnV0n@_IBrktVhyaIo$ zyISg~mofZwJSz3p>BBmAHWrQrJ3xjjS1Zb@mF7aEcK$cr&x3>}c-i`oU*FB;Y!z%O z2iq<4C$F19JzF4dD2snG$rpd#Hn7 zEcR(K(!B3ov+jL8qv|zIKK2QDgGz*0-08_sd383o0kjG>J)oOEIIYr6KnrE8-W)wmNz5)#VRn>P<@?>Fsl!F-7<&2nfUw0#a!i$vR%^581Hw zWm8bGkdov;jQPiZ)y(1kW0Si7h5bWA7{(D-mXA*YGKK>Kw10R@6TID~Ka?K8;;8E#^I zdF0ieTY{Tv+=uG{g-DErz3u1gZ8q+JzF_zk> zD1xh_x+66CNXp+0D~Yg~QWoX@@%sP!UyE=HA+7|S=>y~_e{u%*^`i$Oik@ws1T5s2 zftku(ELn%NzrI%b^=zdsj$GQoi_Fwy%#e=X%eG$or$&;=Ls>vBW6^>@#wx|a6F=lp zq!3vAFF@qSkTR|S^!p`YCC3iz6i64At)8 z5KLib#C^r@VxTI*k4HHof(q~^nH(&zl?i1+&7}dX|nWQP659WUyvt%X+PB zU5(LpUlmuMK zi-6etPyB0sob8=i!DcXv8}S8kOM0X)s_P^}p|P2X!E85B?6M^j#(bGKZy%TWjunDP zvAPTaiS&wqt3XDT8lYUmG)>|Bj|YE4_}7E$JBu5oGG@6uDL-s!hY{^U&XSQt$#q%Spe%h#%R<_T8ObtDh%J2_DS#^uC;(fAh@uy>CztI?@%3 zc?vm!6;95GB|juvaBk1{D>}jEi#*Yz&z}&n300fB=VtLTV$?}k%voGp+^Jg?|HD}_ z#jl@GvOA-@vgLcLalp?kU>V+=OcatihPkrj@>HG^sX&CH)_5qxL^3qv&s(V9; zv;*BAtaieFZ5Q7YJ?Se(YjIs{w>Rrew-_(fCc^))x*H{;GVxHj$?(^H-S7!1@s_-D9c+`M|dqx zAyBLkQLP@W5axR=BlH5gSy1bj3(Co|;_#pOEJ&JP9)8*%V>vqaOkE4D=@sGik@!A1 zY%DXXQyV4+dXB)Lx&caSKZc{8Rms{;Ve)S~*UuU5(X1|g`^_`QyY`#p1HV8Xbgz1! zC1o(T+?bI%|80e0%x{a*IN_uE?0mnMGv~#<>x($eKOGaDVLfeO8?v5s<=mpENzh*> z2NbmJ@o3ob(Q%aFqz!i5Z2_iGA)SD=-o^vVxD)2-HAGFCU9#Fq&7>olN?SP0mM za>$8@!b$hP+Uah^d`Z0W2R=M@t+P!dqF3eJ2L)<3nx7nCeM`C85!Wi?;H@87eAx$W z+L`X~X=?8P15gZ5d4d@bC}haq41#|M!;4?Wewm^9xJ;M<-3n#n>yMh_1GfCQ;gfjSpUswAdR@WMC3 zV6Vvu+r_CK_S-$qF_3$N%YhR!erj}PZpVI*j^rBLL;Afj9t5GA2~xkmpUc}Pvp{Bv z=It9;F16Ydit=ZtF>m-caz630Yp!0Z``XP+_f6qnRDb#WlB~eDY>@6_HL4%?8$%N+dLzT!#M|CmaYPsvWS^~8AFYfKUzL2_o#qsO zBDb*)G#t)btC5jW9mD4cnzAQI+6C3fml?K+(yBEIWVJEKdOc_u_BRq}G1lwri*Q)# z3Pkk4)CIP6bjX)S_gk0 z{+hYo7hqWB9+RhvkmXDw!u=4SZ-a$oUwee>t7V(3W$1BgU_U?Eg9taa2thl>YK^bk zq6CR!!o`JFHUF$q0(JHj{`FUmIZI>B*P+BZ|EaLI8XC1&d4w2hd0Ogj^`wfnY_$rp82g4B1`)AX412m?*gb+M z?vz+>mqyhv>ExdSLPRLGCcU;H7g{opgmKLa#RVaCrhZ~t zTkA5q=O8j!R>0yZRys;%af7j#ADQXK{%zRvAy|M^A{{C;u-wRkHY(LPS8zl4knSju{X#p|fht)d>2 zu^oG43EpH0MJy;SLx&DOA|nW}p~A?-5&6AtYE7ku)8SzYnyy;8m3$w@*L2jLZDU7Z zpT>U^oa4{FbpIAp)b1XQyOc}+(ek7iS`$Dbd8jzcX0UwZ`;i1*RrK_TjHNAQEW$?3BapgJ&qy+9g zR?Oj7E>vRTfeNl5J-RDuf*b-z$xN7Zk^WgM`aXQ* zpK$Pp!#p(R`cRS>@^2|6)>aR77*K)inwI_NBOfIqH)F)@uVplN6khWGCU03_aF*US zvooMcGGBK=zm)55wv=C^cehN^(VQx=K~JlcD*X&q^Xuz(eD#EEGZ%a40=zYu>}Hnri&WyqEXzpJwOXc2&_vFcv-xBJehdG&Ai zoedrMhR4qytpB8G$H6v#oBQsJx^BS|J^y@e0zH=6+;D zWgQAbofM3!wi?9o-(8~!5w~B!S%Oa#kS+YE;BV|XfcRMv9D9zDmIZ)Sa^l~r=&z{{ zmQr*`SP7291yl8g`7vF$pSY=47G|-2`Ka0&iiFzAoUAddOiM*e%Qj9@&iisiF7R=? zz>07X4@0a6!!KW-4^MD1Fui~T1Q04wS>b<$gH;2r-SMfeO?fGx8Cc|~WOKeTpsCbX zxWb^w#U3M~2eCNHgYG~Xe$AK#%Fk<_$XF&oswL-Eg8~~qTd0B@*+eZFtaEeu1}4E@ zojlcPB(yM(Pg-Zzc+m9~G3+X^A?q;|3E!f5umo{4fCbhCrS)?_9bVof*!1z8s|iVZ zV3&yN8T@OlSn^34hl7gThCFIhedlT-T^TF&knuBd!%~`9BoT)bq=(W8UYlx(;T?aNlv+AXl=~<(XNs(Pr zC##QjF2!Vcai!rv-CENYExll4seUt;g-NkLhTsB<{`gf0mw-VoLn!P52xKJu3V3+* z@+A_5=(J*PYWgQ$h5k?1Xcn01Qd2YQ|I=i}<^Hy9R*1GVCo=f>cvMw!$<L)F(l*}p8)*15r9R@Q!>YY8?@G8!qQnRmoxsyropohT$C>Ze~qKX z+keeiPnM8e4AHz`NTanNrtQBnCX9$-MoAS;C$L&EZ6_xLtU)3-rnsWeNkVU4xhMp) zb3T$*4*6An6+Q+5iE{o|_;~%_tC^fs^G=v2AKSil$B6+Lwb{$UVfp?{@q)I{?CotI zZbv=ts3c#KIuHeLrEldYu+CyY+tu?bJbU>Ci^nad>-2>JO}xGamiL~&wmv#>S_5Gs z`1~)4wWNk&;eBBwC>Y*jigpe#$i82U-`eVMgemlm_`k}l6Kp#}K$|Og-M>ILIK(;M z`uJ#lyG&2uP)Nre1GFGnI@}Vi!5;ZmMPf_H8FHxl-4*Ac#%AW?fQM7b~v2av| zU{jsoovrEv=ic4Lv}CXF3$EzXAkgc;sQ6aC>(=`LtE?W5A&NKCblB*Sx-9D>d$G9p z!VU&;1Q%MAIM=WMUoVD{YxI9rCm|tjqr_F9y}+!vw3(OSiUK+_va$kobi}WMgMLV6 zXGklYSp{1GA`5DnxWb6Nz0Zr4wh`jb0+&eVj>?Ng95mN@FFh*qqE6&fo~{AA7>3nm zzK`X^(?ppxF0q7-^?l#tW%&mjH&S8Vs49!O6j{{I<*09DN{W}ThL99jEl|Z_*0mD` z0^$QRH;BzK3}$RJ6#7*%T3M!&vjnWTVfZfo6rD*|YZI&!+?BYig4Zo58Z@IO#Oqtu zm&a-9XFlG+qUSA{*&*YSIM4jY{Ay1xY6iODdx@Tw3Mhwr+l&kbqHG=tQoJ9%Og9N= ztsVs*Wsqp%B7n<9rxDXnhJu+m5@61tdN?y3*jTo{CR+`+Y(I~twvwr*AIfPdm%Cd} z$d3wNou}o2{%zf&v&9q9)GVmA9VZy z^fZ>w9|0wvIaxX;eaRjM{Kr@PPbEnIziC<)Igmye&TRG`Vbi15w^VKfFUcvX{s?-t@d+s1==@(rzA@hg2B2% zUWcVIyZ6W?#%+0Omko&Tp>TwUT>W$%&LY!kNN4DO#3m#eiH(iCe5jM~J7pq->2mQV z%L4g%id>c$%~Trf(MX!Gz74e~bT6II7=SbJHqhNJ>66-_FOkMz7}uaUW8w$?HyM2R zW4C0eBJnJC(5Gv&qP~+03qt>{#bY~LYjSJL*iCo?AZ#(N^D45ISoZX3)KBg~nBWB1 zq(2r6I@y@)mTRrJ%lRBKSGU?D6P>()$JfwloC=#LxQ>mXbmw|l>xjKppr?9-UErt>Bd-5cfe;fT?Us)#v zw@icU-)f+TK2J|~H~RdmS~kH$3PO@k1s9-e6e8v~5zxDL+8YBTiG~jpBd5Gl^|tU8UHVZ-s41&LaP%tZq?n+O`I-5tjnf?xJ*muaeC z)t2#C6(;nDQ_qRr!+J&uu&M_PgRAaOq5E*Ua}gMx%Lkq5S;gzEAXHLOdya}pk>JOM z%frOgV8WN{N`pyR@lo>Dd607r#NClwV<(3XFD2fIRknB3gKgu8|HSIFlfG-8Z3nm(cV_6Hl5;Fc{5&0+i+o5PAjj}y!%0FYl@Jvch7 zCrRu}jPiw_ZbPLR)^YrZ9m)i7JW$wQJ`3A4%0FK{inF6!w_gJef=JopX45}rd1$2G z=5iuvc=^)ZRmckQGfq>%k>*~^pyXwy)M1q__Tt3Hlw~~ao-cciL?DKbon~KDwQ)vQ zwlrf7@kB#K`a5UY(8_pJOM`9SCVq*&Cy1 z`uCQ|8qSaWSmSh$Bc6VlkaTJFCt-QJoq6R*8jdN%c-lQyKuBha^-10HVJgFCY z1t?hKJaX4sZBg`JD)wJ=rv3SNxsC_N=W^7F0-Pcn{y20+^;Jys>}1%a zn3NAXwW=12p_R5Ix>7{Y@N^-)+X}|)kdneV4C`V^H@K<_Gppn0d1u6B}}BA47C&E;&AcqnIIM4_hRKjo&)~2(hxQa zV>pOQQ3xP<(dRx^Qb6{1LvHa&JGCUJI9vqtU<(p?T`#WC9i4Y;lBlwn6!g5Sb~I?| z@5ew*SOUT*G8++g#&WP~ETfkWk}H9S^EAGZSE_ufKhF4;?fkhq{m`C!W;udr=t-5Q zRpV6kyEb~odw_$Ap;vb!N@A`SMo8lo8LC-&<1Xy1Vm%U^htOEW7rK47O^PhHI3e%& ze0(xrTekSrp%ZsHO@r*0GYJm=%9wF;Pn%~&1Vk>2G|SxWJ9r8$7d8IS?Q~{CQmpFXAg*FNR^Mw1%42_ z#AlPg*Idss?F~l4)99O1txF6d!ia>16K9E<12i85is7PF`SFU-VC6xRdH8zVP6>X@ zr|4`rVW9AtCD31YRzX?6qFVnzY&hpbs25TkxqE<~XGl`HBS>!R#t=CifJ4oHbQ}*u zX&X#Vzo&m5KIs5v-K0V)&Ln35#Q+js91Y!H_Bc>12NVdP2ZGR3&;z5xr=J;FKRv)bFdn3URU zIwm3T`*e z={XPY{wm1k?Du84q%fk&PM# z2)9CeeWyaC(ES=6J$54kDAng19k@6(7+OS=SS&Yf;}ZxLhKO*wbkBf?h5$;EP<=|S zqlC?%fQzJmO2c^C5hYcB{W1srB>{(I#7|Y0UlB7hHLe#>@k)mqdTEV-3b3^k%vGI` zMGqB~xVG0ArGI#jGj@^-bYvwV5(JkRa5zwurDtI<0#{mt0win?#L$xW=&3q9KhY1K z`8c3A3`&!rY~PhHj*TJ5qsKofx=>;!Zc0DCoCs3eex4jTBPBx6LeXX-ofD(-HxDR| zN-flc&2ZGGh@H`<67>dlBBu8^H@bz3X4saE2_lZ!e@EpoX9n1!muAXow5#b9Rt9Dw z5}jsusT5%+eP~A*d>=t2LaDrub61Z(4&w_w^xr7It^Hu)1sw#FMvSFtl_Pw+eSBby zxgHikKajjQM1F7KoU(mAOyxU*Le1HdCn!gWfbBxe@QI;1TMt&a&P(7r@on>(A)fNc z+V|9Q0^h$X+@JNxbEiPfN3AMdz4!YnJ$x5sWRC$SPjgl6k;3`*{7v5PtjY9IK0skpy_?bQ8J858~5@WqG&|nQ9Cl8jhw0zdt4l$kjjG&e!@?s?qWMp7ZAPO0h0#w~TZ*@5O zDcqW-NqP+1E;1nCkU@LNtwF+c%d$LIZ$090=B7%stJO4abfdiC78)U^>i@w!G@!zN z-sIK}mpNkAR49z9I&HN@mB!;D4Ej|1Q%Lh-i8Zh@o0$uSF+;xhdn*hIG03{_gfFa-!a`D%U{<1K)o_LwKnqi(U;U38~u%u2PnrbVSle)l$=& zsZ}>B`Y==L$-?bQcoLS5lb!}MQjP<#Ox)zC&%)O2MSfE8Jk#66bV%3y8EPfRQo1yD z05drm=(f4>995`8fBJT?iBbLMG-`j2@z0-Y6;9L3-@|sM@hz$x+Yg{7d(7KJjk_AZ z@gWLRMGK=0gLTPXgo}qd+|?m8nrQ*5@U?r>7|a0`5e>NEx)erm%NbwYv%tW|1xd38 zZV-OlF#iiCc*9ho=5DJL8LHJ)* z_Kni^CWVEC7sO9L?chub3++JOtRq>xc3>~_b;`@)y5t8U=v!9~VgV(KRbqSIje;?ZajXMcunfSIf)4-3sDAS3r zv&AASu*4xe=QqK+xb}NVnkEsDwBSOFkItO=wG*Hj{g!5-d))ZDeO*0fiaB*;Xtc|E zyi1<2;R18swbpMON$ls1*VcJ*e22F=YYgC`Ii>4~{qu&x)urC;6+?POlaTqGRCv8t z#ej!n={{6F3s&XAArkXv*V?&cmc8rK0qydixA)i4;j5hl=IsE_Ddsv#2c&To6xNdv zNJQgvd=S?+_{clyB|hJ01f7}c4VB-H=Lv|$s-SckV@?N9(UsxG_+eWE7-r1snh? z2rlxg?;nNspbQW7g%38vQF~W(Und7INGZOZ@+A%j@6TRdO;jWRtr$qK03=#QdDML5 znDN#1{f|#Xnm9&R?wvXPDL>Db7KsdmW>-x*Bu_V-W2f5iA5rh3bnwtyDW<+nO*3|0 zF#Y>=pMxk(|-LirL~1+ZDY* zTHNx)wNzuOs*CdtcSY(Tm$+I3>-wBg+mkn*IvY^*t;zQ(8OC#d3XXc5oV2{r&o(o_ z)(*uhP5jF2cArw>*PoW<99o&A+&*~-a z$-ZnH+0(Pk4KH|A8uX9|ffRSZl(%kQ9K_%`M!O2lujHU#Cc+2ZsA1_)(*$yR#JsX5 z3fqMJ6Ll~(s3ywnyXQ#eRj&_E7tZ!!uNTM)hM$BlCJPB;%7Sq5{kCjArHVPHN^lvc zl$AxtGt{YH6_R(=;Ofemu^n%2!deY6J(M=3tKITDO)|m(BB&!euC0Bx$A* zf-Mivdq%B2Kag)rwHsQ*)z&J&D3p1ws z*W}Eb0SIVm;4eUxsz36dH|`E(cXOO^Ba%5p(Sp3a*9IP``WSK&i0$M2-{58+h(>qO z{_ORGWkhH~TR}lyrrAL`?~08RK-l07#e6Z>F%YlbsF;!i1%=9c08+b7O@|vU&l5rw z$OV-eRE&pTR_ZdRE%LYCoekWpR&YV!+$;ht6mt!#9uLIeXmIOhM#OFcY*^5sJQpvd z0nd%GK1&{woa(H>5ZN(sN|=bjDZ-VB01jCMxow*-#npoHzM7p444bt{#U7EUnDDBh zu%(n7Y(6x4DC`);J$M2?E9+ax)BtSmglTCuD}zD2r5Xi$fZ9NIX-C(EFPD;V5);Z( zwGYWtq!VRgWW0*Yq66-Vm3D`B5zZwI0~llr zhFQej25@NblERJeCz$*#ewtH$aEZ7d)9y3|*!m@;za~VepwRL65W-5{YzX@`rJ83^ z`b6^d>FT*(ITHkO)iP|ZB`Zr;sUKEKPZjlE)HwabKt;0iR+h!HI5rKb2q%-IB|!-5 z%W}=XOxTQ;|5>3h8c;};D-!y)JI|0U@Vh09OcV2?Qa%<|zLxkE=DFdGIG#a8{)ZH> zIG7z=NK_cd<15u_;StQNRYmAwYDIB}i ziwbkLP&5Jp%p$7#KXzi|iDW6acef{W8v=R`+5nvd8n)Je-hfM9Jxta3I(fai>WD7#l_2xnv^7_|Yb2PZzXYrLo}{3f&bfrr~BGze9KjO9_LBp(x&e6__F(@ElYkYNHbO zUv)*Sm_0wqxoG7%VKy;~EkU(# zige*1Mh<(Xw_n4tO!D}|#{lF=HE(j6pRJ%3)y%|2IV=PS*sg+R(Spc(R2r^j>~t&? zA~VI``9OW|^Ad^qnMw83-j-VlLT9ZjYHRGx#sZC_T0SY9Dey5(V8~U9`&rEy(fF^8UvSd&rx^KgqGF!A!D~xHM6eL<^kkOEaa^(RvIPYGfuH6iidjDvk91 z;3n&z1Z*0W1L+h_8TM+QR>3+c5a5=e2j>pl(1)7A7z`0i=>-1!S1r2XVN(cgbloG+ zDgMKII5tRpqL5Ip03ucnBCQEdG6r!w zYbzKRwu06_%{D!h(?QHA$v&N@9XtOsjMN$lYhi0Vc)u&@$wRP+C}zC$c8&?1y3lj$ z2zrJ*y%C|*s~7VVR;D{T#HbA&4SOB8YnHmITLZ6Kc~?IxbRBiHeBA=LLk@hb*VYi3 zrJqinY_&~-b>N?pX+Q!_J@TJZ(%+J?A*sn>#t|cw5`B*D-W#KOj4Z(=QMo~_&VQ>8q>84(-DWnoZRu2j~|#a|G$ms9MP@eNgJm)GE+ zlnj_c#69;lj$lGhd^KB=mnZ+*V-tNqms|?8E+UuqnU$MBwbPJc=BTolCs>tfDfu6# z4VWOH!T#iymW&=m#^S1eebTdcJ$7xAAcMMS7ig;K7qJj=@>8|Eh!P8q5)J4KM<3@C z3+Yo#pwl8oE0yI*6)`f?$RQ_S#Vh zP+X}h3nfnTUl7fL$U>=q7p{%;n*iMz8h3@0#A%VT4(#wUBVG1wlj#(4yo_3o)gQo=<#pz73`aiCHQO8%4kpOdL7G*FiB)7IVxn+X#dBZkJ&u!oRgeUbXCp~ z(;PAN~t=F{y^1k9Rv<`e-#*t=cMReRy28w*c>)aqs>$baE6Q;8VZ)}T&6~};x z;C@H~rxQ@e(GclXzww7e%Rkh+b0API1ztk{tf?XOr?oqRv|njr^3>DV4p^dINiZ;x z!7;kz9rYn|IsGn@44B1>WHI=UVbM1u;t{zK$4Ub{6?sB)5{28}7{^!n_IObxk5?t} zw<)NCLnslJ)ejEU)XZ`kisCY}6j+8}@3Qrm0UBzkMy(-IL550KJO)Zn*L{qbT3b#Z zXR6+cc728IF|Ck#nLatTT&v@K+0r_cD~YV5MRNB z028No++>)=yP^a!e#k*Im{FE+L!%1t5#-K<+aBo?SY6m=ntCPtGrMn4t__ceRHjo* z>Um_si1uVsi`wcbRHxLI5Il*JvZ!3~Bk7Y8%!eD~JEIl0x>}&E*0UOvPh{=tbZE7=4{l0tBy4*aQX=KysKx1csu(Ov6mX zQNZD_VT(c#lc9s{vF`Z$j0mW_+6NwE9731JKvBl{ro4|OIr2|jKF0e1>8!Jo!F#buu<$ZyU%)XF1uX)&KZk_ab`(OGvOWaQWHC`zlkYJzDczei z(TZLN^?~N*%JZ#p{jf7r8*}%IR0x6nm-{D;MCC#KQ!|`?v zl8cUER1gqu@!&Ba_yvwzK>Z@4ohS3z>4RIpeG zGZKbe&W5za6RBzX%(UH6q>+=KSbQCupO~v|=6@|S`DuR$SVX){YRMqYTQW?-V*2ul zwNhe~C0mW*TGCAsW`jLB8{}fOUZJIV(b&iNEvqFro1H!UREfnHJTbK+nc^88J;4aK zI`E8MyOND3cyPf#J*kR`b>g6#Y2Y0kRSwG?JP;i`40IJD17ngSylOX92w{%fK<6P8 zbTFSqhY=J%!(B;(UM(r4cc^kIF8z$akA_5$4xZh6Nryp$i1-)LKP&9}e{jaCm*TA7 z&f0colV28*NzON(E*fZ|vIwcyD@hnOu>huv78cS5VhhPqJ7IoISk<*d==6(IY>yqN zGyGSK>`Zb|!}Z~ZMs=ce@>rECZ5dIw z`4VBND7bivy!O9-zY=qmy;b_}OoSGfwZSpXqqwe~klC6BlgTup?+JK&lHM`TTGnPrxw;>`!E|#OB=~QeY zD7HN|9C+kHKhx)EcWyTB<`9Q&s~3f$|>0$J2PU zaHs`-mbK`_4oz*Ct($xg&y6Ylo+ssFpsU6K-XQH-Wq6*_UJ*Q5*X>~nbrtZ+3*Ps9 zT}KZ|O{kWDb9pb(%H>c3`SCs;K8%PPb{=#9SL=M5T5jBBQAKx<^K+WOG_U*HOh-Wy6Q0h`5P81tP zV@S>%r1y`bc9YihwuqUu?=?77(csmOfKlz9@GpBl~s}dE5ye5z){l@f@waoveH+PJ4^@G*Q=F>Xu)IU9l8Dlq%>jnA!H< zN%fo(O6G4xJH93)jXyB2QN41x(=&F|G^_O9{$mOg5}0|vIJfqvAyD5u?>RQhhlg0h zL5va_^pi3OA_etMbjjcC*AE>eHgh~gsDVIdeQ3&TizWnR)@NB8D!1nImy#EP(rQM= zTD62lOup<)*_VgSbkMsr+h-nKrY@%6vYQLX%gqMumsJ--0zaM@I>@ot+_!Z;&yo9> zdp^%e&oA*>Ns_)xh%(@;W82-5`{V)Y;GcQ?L#>TvpEAhoef3Lt8 zXq%ZjO{M=eJ*y_$w&H8EuL;+h+6Td}DOS8n>f$lNISp?KO>%IQ6; zo{REKOP=+5guNx?*%ZHOnWrukHT6?6lD3&LIrT|{RkHB;F!}6GEw<2M&eZPA&~pph zOZ!@U_^*kN1EzIcNgvG!=$o2Q#FNyFkGj0Z*qSM!o2AlYwo{gLiB5mFw|JBGEd>YB zO?Sl%9EtF1>*x%|&kh~!ZzW%Qa!N;6(NW}fNC`JUQ*lOcR!nI0n78t#HK!Y5=BW*r z-FoY!Nd{4gP~YZ}RHge{j#6dK^V8_-XZBitc;7jLL~3lO(}|tkKin|(a7FyG{=AmD z{)f#4`@3)*JAc1EX6-c~#8>BQOYlN{bjjki?Jh zJv@d?|4~s{RyPIev7wPG$qBmp4^92t`?i`E3jj@h+jH3}0c6~jZ22Z0N zwcM-Q*AX7u`FTpD)Y}*vMvez7Xs)+dDV$HEr9G0s@i&x}h6Tk<6 z7k!tIj`ezOUS(&R2oBE$epTrLh}ytp$6MgL5j*{;QcXv2o}FuBAG;CH?z(hg1no^b zr=~?Y^PCUpHB@zEm__?Qc-!aE{pReK)19N}LD_fOK z#myG1jWr?-p<+OM%85x#Hm_|WmzFN+1=rnQn#(`ON>QOoQPtW9OEghg2bXXL7uQJ* zOLz5>^6ARSUr0<_Kq@>Qu2}qX^Kz>ELZRi&oQiWWED#cdp>?84TVMzLkP5b#hyrI- zJbP7DxU*La8E=eY#F(Z8ilqdJbuL~nfOma+pN+9x9 z`VA0~fxxiZLm_w9-7%sB>ZKRq#kJEtgxNwCXr@#?E^st@LX-rWI7>ZM*(Xu3Cg#O+TLOSV8_03Ay(bhYF3|X2D`ze&IaRQsWl|qb4hG-G!M> zQe$r|%5@=61YCq|y-t7jCi;-_bOHc_pbXDD*w_kvZ3bjA_EGQ@209ENVA#;W<<}_) zstfSFWxqsT1n)WluN>Q}*I_?ZzNig4ZUIgSU_lLNF&JP_M)Y`AqJoHN+93KI(cA2q zIBo|6`bY0K=vBqon~R;jjHOn{zC2pZ5tQNv?N&5dQSDCsG9dvoG$QpMv2HYS;3%_) z8N0@YBMCQkz&@uh5dR)cEh?fEPbMlPD3InYK7;F1P$4EpA`p3kiThdOWV)m@3C9lr zfHU-UfY}#*VFWvd?b`xguQ35WLNPGkIaZifKx}#M@4*HD#16I<=pqQtf~s_r!Sr7N z-sMslN>i9|iVY8@Sfv=X;I-;`xdbNvQ;+@EtMhyZfe`e+;^%6&Ne`^JzenFwpgz zH2+Tyxb;=(A5*)Plm*b^yY$yCe1Do*l;PZzErQ%JjF@HueC<6jk^JhS_uo&Et3n6D zY)EPX6G<>I1}l!V&< z^SOma+&>qQ2TvQ=rXCBw`>P{F|3?{~C@_@(5@HOQzXYsMlu;m~>G%au#u<)QeXyhu zym4IIJ+B(mFQu4^;5_l+LeCQ%?@WS0Ps8giuhOgCmi8+x1J{{ z1+d@-I{rM$>3snokJ&G(>jWSm8Ni1F5C;6?GH6tL$Oixxs0B7=t6&|#c{Bk4&2smu z*_Zg`$A!ZQKM_$7gq!Fdyi8uszJ5QH!7&(g3h4Oo4ubU5vt)ThK}WR|)*vkw0BOBU zAl;d{=DQCKv3g?JgZn44aZyf#aJE!MWg_8*Z~D+uc@Hmtm51u-gEfW}#_P$j!UgIu zkp+tZX>}9s0~tS{Wf!#}%%Q-w=%5pn$HWD2A(P(i(xA%!(lnd;jx9cG2)y7|xbL4u zxPYjAfAd^#G&KNVj$~O0rJfX$1qkAN!3BJP2^c`l{ec9zA1%@mCU5~=-vxq1u z%X@CqntKEQHT?K$G>HrTFMioXW->tKfCN2L0oJmU%j&CQ7L?_W6qP@LA(1Ad$z7;p z@qO=uJ|FGjFyhn;@?ThG(7jfE41ENQl}Jz!G!DrzF(j5OyJkK`N6LsNQpFdqulM>0 zzar?zrH-$9E;zwjJH}Vrw9A9BCzCUC0|VhSFWl>!a69*-kCP98=Rk1ZqqEOW)%(_? zeFYGBK#?fm=Dv$7N*`FihR%nR7%^<0(dU_BpvD3|Ko5;{OlC=P&kw0DFbMp>Y!yhy zUg?oF1VfLFF|pV7^)ouajmuVJ{QRjz^TVZfU1fd^OjOlBdvMU;RjW98){TQ|7BM@> zS!6EX?*DP2)-Fityu+RmTz(-*nIA+gr}^@-urTNV&ELITBKv(PwdQ3U{F)2!$1tET1SL6u%6-v`txO(r;g5d;aJL0WpZcFSSn;2f z`2VuUU*Pu(g=cZ)J@;wG(hWe+bP&Cfc1&Bk7a!b1LU|+@m2OK7`tkaH_xS-D)j^>jO7aBo2EYXz$*w4?yEYmxWOWW9 zN(_hYq!sfokA<;9E`2OIZ)v9Y0szcEy(3N`(Fi=p2+IY^fKS4!MM`W8*p7whpwjO+ zDbXE<9s~kr18BqGZzEzSEU?rK+V)B8Cou*VY}I0VjOC5Hu$pC=0iBln17jV1jhG0g2EYKcKxvBPn^L3@4Iwh9BefEdj(&1jGdU zpL;-x0MrVA>lI}Kp|=XZ_Ou#%lh2bc0W;nuuoa%j95j28frwlZ22s1*1CoNQ-4U@Tvh( zE#3#38=94<+8KW9j(1oSUP?m1#t*r#j@18vd{}P0wTbDCkaO>j~W2 zRT(eus%};UdXB`rOo{NE9c5l4J8qnprgL04?5o)q2Gibfn^*Aq-ka6~%e#v6EHX27 z6A7x{Ph1xyEOk{WyDeGa^wVLLlbp@Mgwpl+-VK<@Q*zOp8J!AINxg@&Mk{GVWY^^? z(f82e#}kBJXl;Eu`~;u_k)SiGdd9zrQ8Zj`9M{~K(*w>goI(g9JA5oAw$+RYWr-4J z2q`@cQ(t*prMgF}Se!H5l3kbkmoE8~On-xvs@1{i2jsy~m@RSgvAcft0Ok#_(^K<- zR9eDjS!fKM1UaGRroJTjDj!}LMU^#x;4+&5%%C~ZFqO94AXMXnr!|=lc)t)_OWn_9 zj323huwL2gYq!mdvpES^8WsYFJ~?}Iv!Q}!>Z?{0)b@PfIhr3%S?{UDOiegFt;LI?s&J}A`W%I5?a zsy87Jp}>uVDF{|C9^Fc)9Jj}ZcWay(jD=ek(lti<{`0O5~Mg6&ef_ZDH=xby9Ybpp) zgtH~Swy=l>8gf3T<{Zo`<; zjo-9Skes>>D1>X9i_8TMT9s|WD{m*Cj$-Y&l+V*aY zFoA7`PsGq)ROO^wX5_C{9Au&ir6F@inh(45AW!JqlX@@;#fSrGTD4ezd?f3=+8RHW zjC)%>9~2ev`K~EqzM*3x5Wal#xU}6r9$&O}_2!=m+8ZlDN1M4_T^Ms* zJ!p9(?vL5J++3GO>`Kw6!b~_143y}6{nV=ow@ju`^*$|-Rw<`XF}cTnmqzVO4IDFe=!<+?SqO>?LTHe|qR( z^a2O^sx{k(2*DW)jJkXs{g9j7GW|gZ|#jFFs0^tS%Gd!YWVhCVdLIw23gR zY^vg7Gtapr)u!-j1H969Vq2k%0g*roh5yaVPVXp6?uqmCXo&}17!{EtOiIn*scwAV zG?x2dqKtX78G&=iYO`}1q?EQDYp;e(*_mhNg2YLuPoDS##j#U5+2_yLzOzij`Sy%? zI_tx3S|Hx^l=~}SArq=WQl@n6B0>9dy0w$;?Sf6N7JA||b_umIm1&JMJ5WzkW|%b< z=DF1Ot-IBhAdrlvzIlZtMf5Xf&@$`(P4&v5nC)Qv=IkdyvW1KKM4F_I8M2!ZP`m#=10>>%{xu?8kAZQyMUDPL+zYAWU(olpppshBys8=fCi~Q zT5zlm{--@Qk!we0HI_A7SnH$Su2@r5I$4Z>%`#L+4i5hccrjzCoO9B|?x7$1>gw%g z7?48Hrb&+KpyCMdLB_cs(m3|7nfH4+M>aW}Q=eYPUdcbb`MQX_uZ2ikmA%kbgU%aN zC<4+=>a#uoq|{v9vxM+Alsb0SH9VjNj;`x(+vystVMm3tbKQ@=R!cQAo80)~Ud4cEa-#h*UX z#_^v@SG)?txihLO^iR&Cu$Dgf&k&+~RqfU4@5LwuT+d-z(Q;wxkk}&9ZV(H#0;1RL~i(9U!>0LaGugT7066GfxsJ(JD&C^`z>oBH~6nXdLzh z5ZGo{NhYKO7tZ#9UKv@FcM% zY4sWgHu$s`M0fz}(EmhB{S8fd60%G|SmN27T*HL{#!m=(Q(jlKn!Z$Clr_E|84iq8 zYE`a^2@3*hq%vk|IRspQi8!KE`4!%CRU;Bc%uvDgDQJr)ZgJk5dg)JDHC1A;V5pid zcf-!<_G&Pd`kJwVDA9fP(xLiy1(ES03o3MkTm-NR{&DUA6JV&@+a%faG$9ydl%8yA zX9+S!Vkn)$erQM-&Sr-oaTzvlLE@wdnDM^JL&m2yE%h!<wIs;UdE!Rp{%K_~3F$ zq2hgfD%4A_Ku=(cR}qP=IO{kIhPu~;i!Gb6reXW~m1P%qy5ek?kk*pm*Fpq=-u%gY zg7Vzbl257}HXa)ZikZmpm8Z*-5J9A8eDG2jWqFYx@-!!1frawYy*f

      7*P9mS+zc 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 DC&a{> literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/test.jpg b/openmmlab_test/mmaction2-0.24.1/tests/data/test.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d88aea0ac50bce6efdde58c2248bbd25d1ae9122 GIT binary patch literal 18486 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 literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/data/test.mp4 b/openmmlab_test/mmaction2-0.24.1/tests/data/test.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..ef46c799088f7306950ed6804316e6f688d79888 GIT binary patch literal 1352828 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⁡x`1qTt7D4SIFNgUQW)1r#lEGYE)xcYX9V z?F4zHYq*)hCy45G_a0xSuIvk$&GNow^&9?1R8Z?n87x^p`P?T=B>!CiNiel*Oxkdu z?HUltsd+0Kr0FvlQ zyn9HmV9`L!V|%`*VD~T4>3n2Am;2NM8bB+wkz+zLZmG6bpPxfbm~0%#UB>}Rjn|N- z_+?ScX~C`6lW1cIXLrT0*@U7bbr5p8nwd7)GD~S;-||nTYO?n`rBPAO2lBv z9Ca^uKl%^N1$FbL1Qg0I#1%ZWQcV=fG}U=1x#^JRqLQ}er4Y}iakHagWEG7isMHvON! z3n|RJO~ZTpF1m{JKtz09(cUK&9ZB(x&rl|_(W~<-0ir1$ ze*@V8^CC|Vn_;>-qbwk~%tVsY%B}m<-W4xFV~7Zo(uIRq>$PvpY=?=ip3)Hy3WZ@g zUcs6aCZ*WvYt?uS?4U)bXEZbr*iU5U{~8Dv^^g^o6U9g^uNN8|_TXoMe3;fxnPoTT ziPxjKahuAbLod4k@u3Of|KRxQpEG;?kBkcmJxmKYnNiDi=6WVItkrG!=GNlRkn*xp&LDL!iQbEJYRWIDDLXinRFU9$zWc7z#sgkui`Nu zXTaiZsjMnwLmoGDsY=48$8r0>c5RDmXF8-Cq;Jb9xY=UpN#FW2UKBxs)yFuFGH(EsXf7py-|@( zDzeltoE!{eWEOgb9Xl|@2Arz$bNgs|hFIy+!Ej^358SSr83fK3u+aZh$ZqZDKME>r z)kQZ?x-^ejt39sE6jNNW@G8GeF;r$j&?Qm1Q?P?z?k)3fIB-dR z7Z{OqER}!@TEd`0<`uJ@QXFHP=})jI(Yir>^(jyLa!JhC=*KqR8225}6PdT(sIJN? zazo38B`;Z;Qo&|lH5WKt-K}pc6y{mV8PZIR9f|P}(-Daa`KJ|srX}Gzb*!#>*Woj- z@`TOvE3K%=s{FLp;xmSj7+X7@Og#WuxuYcL`n<70XqC(tdNia;AvEXGX}4S(5DU_CapVlT^(LX3 zK!%Q2rVH^gzq7K_Qb_Tw>AK|q-puvh*j$!AJH%1tul{|m9ww=I1H)czY5Jy)J=Qp4 z#~uZzHca}{#`^@I?SeIU{X8FScW0ca++YFyTk6TJBt%fV67kY(v zxKh|L-C~|vW^DW%FVt`9jq8)3_Pf@~{?79y8Y>O73ye_IEK|q`Mc&-3D{MtdTPd@G zFg@hgK08O_0UyMAETnjz=+m??>EvCS^KUqN*3Kjkbm#_>9}fel9V0FbPAUA^vi9Zi z7D;%ef`I*>VB!0MI}v(_Q{osc$X`AEqOwHNS7I~i+qw!cn*cv6n8Ii!njmQ$mGDxG z=g&UtWybvVTtldB`?^46K3js4IN2HIer)sO0mHhFCK9g#M(}g1>zcHf^JO$*O6R=;1(9lCDJ8reg`Sk}?}vxUKNy;-o@_$Um-h zw<@r8Z$Jm=i0Ud2GPtKGf@9=EZjLfrnihTV$l%8a3K^$<%>&xnKHE%KVaQ4^n#X-% z$5}(AO#myz+^-Ks&_s*|v&1{R^@5qlhW1_IV|P78z6#P*^)NFn$}KS^5G>bc*iQzL zLC;^ADL|HdnB+|ii|RhloLU;Gro77PCZ1s7^ua}5C@q>^XR1jVKuEUdVu^asO?KtH zNtT>dEcrJKT$(T<(PiN3~}FV_;wian|dX!cjSWNDhQjbgl7STD#(nBq{Li5$OqlKqqiQx%qu z_x%a_N=vm^Ab72Pa+C>AX1NGHG6b`-S{EwB60aiYBWyIIqR`4p)DLb_65xCv0mZED zwNj!-PTIOi^K+Lt&tKQpGw?anTS8&GeSlpc%C{HzC5#(G8qJhLwJ+s+Y0I)Hj;7>N zaov=SlJQ4eF8mm4L+6RbcSreCtdKn$BuR!Ik0z`Fc?>pNBXItEjrJ{SSh6-tIIAW7 zcdUwzi(crQQN$Kkf@9c&)#OFPFSbl!$lxPZ5h%LKmwT|j&jH&B`AJMMjGMuHO34_d zYyHf|Ro1zB$!bCp^oUaAP#R`jwREfFtEQ+c|x4qC2CcRR5-Zt&#@J9&C>DL0omlk;)X=6Oxy?MywnI6Bwd zg+lA=?#qqQpyq;R9*Fu&WAGP159E}@*KAAU`1|U^l3KPX-P)&cGD*!V?W%N9yRo0; zk2^2Mo+#x<*Fn+TvS0&F6i7FAVjEvNOD+hCfe_SR;N|-Q$T}1jQ=Qy3857P4ocyk)AUI;J&1lGK4Ut z>)PUBZm~FhXSY=|=sWFW>t+=4yH&pqK>S*xAKbn9;0-fv((4!N+z1%%@%3UX(iLK^ zK_Lf4laF;rvqs@o{ydqewj7lKv!~aDs#J0C&x{*613@hFVI+(X4V@-GIF6t)`D;AL zvZ|5~-g*x4w2$t;0(PT5rk$x-FqdyD4E4g@7_eA&=^}BDcnivn2SzE``r||J`oCVj zp(HlGl8yT)LdIJ2|DGm5iN*?a*8AP~NRY*E175yryHaj~&Gzdxzdg+;)gtsLFOx5y z4mM0u)DpRK&DrurIdv=i1(@ZE{I4!lp0Ya?5^Ka(xzVa}0#LCX!bbAYk_zT zBQ~=KEq+~Y7OBx+WHo#KP#-Blv-izqDfAJ*1L~nxbJ2&%QSAk3hGSuV2O9TsWW?P0 zx$JgTyiHTFF(lK>R;|h}IjRf~GQ7>1^=kh4)H48Y6N|)a?^5;lNggO};U`j3g;n`y zlfza-OO@f>#GT=K7VMd~Wemrq#UoPkJ#FGxu_^`cLz$F>SBXc`oQ_zfls`{&ePQ8Y z66(_UUb7jSwfV>;4cyZG47g*lCicYsWe9H%2oCcNsPrRZ^-FZ(SFjFib;S)JZxC=J zlj=M>lecK;N+r`9wHqlSF?0Q}Z6(WIEv1Ywp^d4p&-Jg=0m1ru)H07D3H0L;n?-#B zsE)h#U5x7M%g#N@;x%?l6Ob4%pNOfKMzSfvLSS2Z`tpw7_hkBOWj1WqDXb;O`ZcMQ z9+-4zvhh8_dszIM6@G@$Ssq8zz;Sh z=8(I+S9>7%^zPJ;hkq5KDg2`kHw$?`#(%%ePK^J_*(Z8~GWnWm#8e>cLB@*G?E5@B zknMaYQPDWsX7)EGU-8# z-NrLfvMckV(@o)WaDm2v^7sN1?9d?MH6MKS)5dB~%O7@4180?1)pqFvS2?!E7queX zRQ|rxp|L|*+FJuQ2>D0N&<0MU6_mbV|3zf$xA$Nppb2GGQFu{*PKth_vfdqhqt5VA z_&Irm4VR?!VmHyqMLzNpFgicVyZ>yyn`iU^m0mor_3_u4C!LJsSbSaohDVAqAYs8I ztVVhu-gePBXfrm^o{_9l1JTtb2Pl(DJC7rD>s7ymV%L0yWlGl{)gmZ3dcFVeGD{QL zg@>Hk5(b(9H7{Hi*6c=Rcp`wHXTVx|QE1*k>M6u61=6%=Xfxq#Nh@N0&i_0AinBFow8}VoJh@hK9>3S^-JEk^NGbHf&)a|tf~cu zt%(p9E7mqCUxKXr$ZH0LRA}|?T>K<$qwCv?v}e--yPdV>qL~07bXXhdvf2TFJQC>v z!#mxlKx^?rsx6Wdj#vE>eL)~p9`~F(A+nCIE4&BY$?yS;`ZgtQy(g@BLfVJf{jSxC zq->|liOkcUlH+-_nl53rG_x*FCR2mbe!QR}7&NqgnviTM?{#KT=RnmbrOAjpgQ;`x z?Y}wm$G69e$<D|8BwMk(Xh0k7dU*jmPJ6u=06FoN2~!KBI!b{otWe~3@U_2w$tmR7nrbNZVE|V^ zsJ}=>;=QY&`~dDNd~oN9#AR%Cb%S1~i#{b9?N#NVf5kl{j-xb|pfVcD@q$n;neaAL z+|&}$r~;W4PU{?2dG9S5h^0oG_0_7Ecdsp++pxJXrp_#>LpSk3h!5?^JHwr7`gLbc zV_iK(g3Iy+?pKKl?DmU}_QfywO6{k&#F?V{-P9~(cEKr;y(7}$%@T#Lh;w)gQSfYI zozP$Ip4j8npov=5AN(<=vC`kJxm&73`OX5K4?rjrTT)~I0C_BjPi7j723S!YhPE!} zm;19|-D0cp;u`D>o<=W`Q)0v=jP;a4|d&MS!5_t_*B@J{(lM)7!Ii~@^&s>l<(9_@wG67GA zm9T;~fL7@4vddIX|6Do3>etK71VT&3#w1BCD2QQ6mYlr_&Kt1e&~{g9B$q^f6m$Tk z<2=4Cl}?5btlF@b-VC^pgy~MqL8+$|b_fGz!F@*2P=am>{=q`Uw75P=b!19(e7Ug$ zOZV=*PR}19IWl#d)qz!Xmn~OFNJvc7MZ<+Q&Kx)+{tSYog zcIh+2w;tKVOFz$me!#*>P#qmw$?O7|A-!OQyL0TQ#ZDx&tp3akVXE`6ruATN z7Bg`Ysn?#nL*i;t#rJU*v=mNZ-TdY||1Rn+ylm5%9}N5cNHPgf3>4~yYU`AB-FE?tje` znY6?!lCL5-*;&2b*l(ddElqL*b`l&O<*h@Ptia|_?%LLj`L0%Dx3STz$neMEmLzdH z&Q!X>+|2!J7lZ}Kh7(-j69-7*sx@m&I^Bid6dyUE9Nuh+?l4Q?!-5VaRj7%41|@5S z=84LQ=Nl|S)R+d+9yifVaF=0c4ulIQ{)UMRGS9T{d*P8eg?(yGHl7d#HggCme4it5 zV(u5!P!=+2Sd^m|rAgiQ{@}gb0D4_4DH4?j?26$xCb}xPnj~fc_Vrk06I1usHe=xx z{Y3VX-{})({ETRTNN)0IBOm>JzL)|c4}9bcR$lES4gMF+@-rXi8EUR45rFKNYe%7i zpisdnMQ4!1tlDt6=N)r0zkmn}-!}Pd*En~4X(|E3A}qtOfMEG|8xoYhuVgpl#ih6w z(No#=&Nn0(VzF&!J)%|}rCn`a>X?aR5u4cl0)-CJ0 zTuX)75I}|6qwfG29;nw$kY@aHhddH8?5?eZV7&u=*$uFClhb7=imiz+2*6wEv?6ar zZ_#d_(s=g%)J()tY3tKt{3)E6rjfj)2*C=^5Z(h4W)xa8&mf&hk}NFD&cUSat9B6S z9*?_8iPxRz%?}~aZ%0(#8Zws2DRaCSG5m2~>o-D#q*q5dl=CK`F7Aw-1Kv=2?yUwZ zVnD>7nF`4^C6wmoPY6?ahb(Aj@6(Q1FB>Pl^PX4RHL{_ZPq-3`R3`wI>b59>)C+6 z(F!$0XAwES?ed;Fj+n-68>2H^7uCFH3nxbXh$Rhc3QN_lfnX)x{!2rNM2sBZ($3t8 zy-*~;zGr$Wjz3qb_2;=sV=jYmN?AT~ z9RX&uNDwX6>jAGzW$=@q^3y!W8Yn&QK=04*SKnVHcD@r=!ju&FVJIZOn)MYf)G4dz zXYz>wW*<+I>SSv0z=nABwjT2ZevM_I0E1Oalbx{2jctljchU;%3KHrI*t`%8>#xan z@2F*T`>Y3fOFBZaE2q(QA!6v#wc*%9K=td|uY| z4hv@v&=H4*gQ;$uChuESL7e9B1ZbgD4ggu2S;Yu?tyPVu!pG7Lv^mk0Ikp0_V{9Sv zsqn>N$fq9vQM^9hb7_OW??rQM{=KLY*ht%^Le}SmxdpdA#aAh!^bHpHiIXl|i!dPB zn~pMM@PL(nwcwU~vbz2<_PhwF8Y;PeQz4V5{pnNyY^gh?ZZ2+5)d}s4(6JN2_%Qaf zkY}>6RJ0JEKJ5#iLP3!2rE~rSq;zn4HY_&U?7Z4S1riq8NPgfoDX{HEX^VRV27|ew zqjAw#Ra4(-Cf{?|#U8?vZZuGc9(s0>)N?QQ2+t z|5VJU&=G4dMHGI!_k?iJE}-8Y^9Ol?!|fAa9y@_Io)Q?@WU0GNcbCa2idu3XP3@~e z&wV16`N@379r~su-VnLLG6hzRU$BtnyKV99IOal42!u4>s7>#|T(BkIwDi_Unm>j% zJO8zrj*v=Y7~bHMF+n)NEqvPZc0xDg*IP~C4!mLA?0_)Ou}2vqb?ncdG)^70)&-{j za2&~;zfjD_;yVh%F5(%9D!C^& zO~#f?+;cyXy;xIT-}v18v4p4J5F>JsH?uyP!$H51X;XhO1nw~!6<0W-p-7I?Mqw3P z1PY-IbNKhK`556jDIp#>Mwcg1h`iu(3)?px=;>fT5ubZ5yO4J(JEp$!rFz$^U_KWG z4Nv7V6o~(GDSx!u;rJpT!c)=DawPut5i50QBN=kx&L{IW9pH9^^;!{Bd}W%sgd5u> ziJ+Hmhz)q}IE}>{OS%38emXfE+r#jBpOi;XKVEAgTG)sI*u;7vgTHF=4+PsmQFFCP zEsF~@U+z6?QShrF{bpG8Cg0iLK%&Hr3sbv~m||p<8NaE@UsNes3|dwdl~57m-0K zzsbt1r)3H(+Z1YY45_LuZ+a6km@7o8Y0j{)whcP@^`rMrW3cGd1r**{nT=w7->S z#O_1%Ru_>(Dh%Tbc4pX1I61+Q%}Nh;Sv0A}AtuKVOQ*pr&NPaYHgzOF?eT)_+}0*h z{Ijt{8B9n7@YBs9$zluW!Pd7rnY3B4fiYDaB>)tp!E*D{IaA#ys zJUzv4y)T55c6~r5arSA@96>7em@0GvOcktXeK`Ga(-|Y6`sH?BT~ZoCSI0)~35vSx z(rq3(rgwr#>}pQ!9$=_!Zl?=qT#>16^kKr4#g>-gXFw-N^~b6;_+wq;5?{v5Yhm=BPEkO{IO!8>ADsL*csV5Q%W@mj7hgQ4mCm8%-QSHc;2ZE9jJs zaD5>GG2^6P&{0)jtw?&(u+ZZs~vF z@-xwP!a9)0)Mo4iaE1?*$MPv%wkRI^ktB@pIg6KY$2Ff#9#F{5LN>}%{<>vcKcgund2VVKaX-~f#WpsP+<&W&ddf`d?2~cvnASJWuX#hH(Q{r1P+B0^@qV zrN!I-VNK)K8xNkZyiLca*@FBBWqzyn!eG90L19?uS_GqYmpFgA-6vuNvCwojLp>r> zFR&+@xpnf(%?c!H3;q}F)Ssz=gbc1HtZfXE>8zNMmwqN#Y#11ad^D0t0?*A=1LpY@#B;4=-<1SvIALO<^ArAx%m*6$2KYcN5 zhPk3^%#-;q6G#caYAO5<9#N3SlV)`wwOeb)x*Tr|iG_`1cPEDW@O13utz+{0Yv=LZS8$5pSG)BY)whK}!0QuW6*mo+OS zx3J97(ZIX#E_&q9Vc3?wuU+RO`XGFd>mT2B$)pf^Fm(1z(9gTMMyZ)@nb*;pk|H!^ zX0nV-@G{28RN(r+tfJ96LvEOzB<%amc1|bP!kl-v$J!Ot@=dyiByXFQQWn&_!FQ!J zT2dbow2``%22;N>HmEDsHyap9>Cx{Jh|+ecp67nYyF~l^gur7DkkkPTR;Md|&2R}6 z@*xkaeK%iG-N-#Tvv;WGcA0nrx<+W3?k+_W%1gV=QqcBXrsg}O6#7hOc}W_4wC;Pf zP(IjsP|74~w>kdF`wCupKe1Xmvy+^&{x?q4G;}QnRt?LMJ$9Kb!*R$Eq`fxgiO2LT z#T_ezVjKCOm|J3^`hw|`k#tI?YSMGAI9n9?+nCW&Cg|}kA-rX7WmM;-Z*9GU7kwCIa zyzP68`dbsL;uA`^TuW@*Su!T84Ymjw85)bqBX6*zc`_;Y*i*5srt}ubHDCv(BUwga ziA72UT9QyW85s6^2-LbF=*A3bf^v*}G*B{k%WUvY>M5WWH3gMs1NXH7E57)qT z3t`q8xTJ)Azm~*z97ZJESAZkHaHe`!HfClg^)7Y4ZpNUbx0G3cZt=!3=<2a-RM9gGzOZekM zV2|!Dbg-l?wB5TG9T;N>o$Ia&fE^gZ39L0+>E5ZBu|O$b~LDUOeq& zueb&o(ibdkXWoDB4UtOqk$meK?(%uKnY>49Wx|L;PSX-yI@jIeZYlL+9wK%NT3EII zEJBP?l@};q-=k~51)$iD1J14|66ZoXz9d>)1#k>Rij$ZsI3+~o; zYkcJJnSIqwRuvdW1UTa*+okC!O##I_4x$Fczm0|?nm^e^oALVq3=v_^a?WXtUZJo9 zm-_dxhihB$7lQ%1ThaTRzzCqULlI)b9Bsbc>deIbu#C}@ToQ@drL1rpSZectD(ZI} z^2F}6b|;_B$MNjM2}}HgVWsV&#-c@z-}~AW8A;cqp87rp-hk@%139L&O(AI2uld${ z(Y?4p#7dZ;pRsWHArL7>A6E*aWFDx$=3?=VThy3I8*SV~3?7o-y_eXQpXdv7W^s}?IrQMv~2Y3NLM4gTSY`_L72?{(5Fd~27x58(C+UX3smoJd@&{PyCT+&)zdjZ%m+VOG=MKqkDj>%H zo6}mnz>n+t&k8A7*7KeoYIpXS8F@-=z6a-wYOw(?B|#$}3AE_Iqra)o8XKs6QhrnP z1999s6bs7Fe1vX~2hp3~i^UhJr&11vomugTEwdD25b|KSPN_7txCOUAml1x z`Dr~r?oDGkhc~!v*v9K;XPa7K(E9XWk&)CY1dbE`xxdDN53jO)EfR#%_&WAa0Vguk zR|kV82g8F+P>BAQ1Z^lmHIZ4yW4KQ{h{$C$B6< z=~TY7rQVZ%eyQV>rX_pn3-qe+^4?hahy2nhF_@0zvx!CYT)(y5R&J*`x4S)YdzVKZ z`lS-oS_nuBqtOZG5(a6$<1_t>k7-T9+13MVZ^C~18$}VO5r|O{p7Qeg z$uGWr58Qc=9kJVEy7?M&RS2pRJQp1wK+CtJU(grDAJ@gA{{>>G{&PmbOovbb_ z0pPATT}SLR{~n$Kd4L$uu29KJ%F##*H`7#48(dkTU*f#BOFvTiKv8KISgmE za)~!c3M3Pic)dG?H~`Jc6d{VHAtQf;V|=PIQOQ9khjstKqF9Uu1M-X~QslU9J)UH$tfB-)D?qiw{av=09O+ z`39V;u&gd|w^gr`_I`a^s*<%Fv-ZZ`cV3hzv zjBjfWEy{puf{D3UgNN^E@Bq{!PybCwd|R`LO)Zt2guDWo$3%Oa#Xi5bjW_Y-X+LDHlVKMgDB2+`V8)~&eF>oE z8f#wXL)Pzw1CMpPpa?z@TFRcgapnzB4FgHnQkp%Q@G)%5=6UfCFGr(w^}~v0cS~K* z{M~`&*I9ZV+_kudF7{7{UERU)yQvM$?XuqZt|+}SUyFP$wbX-rz`yk_IJI}MdxT&2 zIv`(8ft}b_3VXhI?2nAjnHl0Oe&UpOe!$1oO8LMfhl=(4<@XSUhDH1W3ab^U!2p|E z8*a>BdK=A((ceNIyP9YWlnVu_p(b77MF@5NVi%;l?_7+P4vW_D1RqgvV+_`VhedeU zIb3+m-g0!7yp{ffP8aif?Tl(LSKKnhvMX4UU^h4&wr4&SVYvBV!Gpv)K6Vgz-cQ+Q z?m)v(@otlg3m%@cNZxZmUXIXPm0Y?MroW*Pl;IJ0Nrf)cQ49KN^cRJwF?oH_lN|pb z!M&tX3+UW)U&O)EL&YP0?)2h?y>PgXtg@`by+udL}Uy4~hhuv}{g>|(7|7Y1J6UI2_ZPS1fe67F> zX1h1Geq>AH^W@&2KV6`TkpprW?rNNMbc&5@dD6`y?$~?&H{SV}c zrX3k#hjo(^w#;X-P5KBCTu!0J)nn|e52V=Z%2@X1TuTUe*v(z~E zLY}j$trP*liQ4cx*~&Mx5kzExkGxf`X3x)a<&p-Tt6T>44_3I;U2;eTxua7Sz5pW# z#_220;h_%o45)Q1pbs`vEq#5_8-`noE{Fv8DHfBM=6PJRbAou z0Wjsefvql+YT{yAm_IO<6tP#yO1S0|-`6sJ>y-+&@;|~L6 zVSFi)4`o1GAVT>2A>LqH zQ6Z6GbJ(-5@wp(q$Ni;o4M-cA6Izxt?5^+5BsHWdzy!^E>`YEPd z!Pj0iKT)ar?!}7bRhVDbdPGN5h$8+G|2i`*-pFOMa=0;r2Q^}J#T9a0 z|Aa?)qRTd7Mw0BMXr5mfS3FrcyYS?fQ;BUZ)#?_qqK%5?{;KGyX7E!D?}osfO)xqF z1ei1YPZce>TSlO?0nAo;OAHF(rnCfF&{O*huLI-2U>3^(KJzCq1y^tjxeqQrlSVrWTsSLyUt6>bVhE$z%os~-~n&QEu zOxtl@GmKOe}w^9=NWT?s~0nY*vUisRzog zhR8qzDg$Df1uRCb3nnj7iksP2RkI9g|g^M>W3=5}zlzUkOUt0ZyKLCcLCb86>TVE;+QQ#;Ddk@)aH zy;^h8EUy9dAljMUQ3L%@>Ox?xB0cX@I^OH?KtiXk( z<9>tyKYWgeN@Ac*cVs1gp^~dN`0FVf=#AEqck%4tj3B zvOem4zI8T0nMibXBWX&A-7{06uhs3CpW!vB)p{#}B_Uk642A(!zEm5M&D7d6!b}QR zh^;#?W*$4Z99w_uJKWvk={MNwsvVyofD5+ByTahcF+`JNLtGIInqvKk0AoNS08@*E zNBP-*iyVsilHOy|wQbsB%Vmr8u zlea`fLjJ@YjV}OoxH$h6(Hv zpm~ncjSdbpee6Q%QyE1@Icvo3hl4Cag&(dq0e@7u1^!wwXTCCd?039gANg&nOG|ZE z$?sr;l%qh@s&Cx575=#xbFK`atSzeYxMp47?2&b1?I#3sf#iwl`MA)h!NMkQhG)M z?@J*^RVmzsgY1^p#!PT8rNQ*o^gG7E#Lnnsk{evq{%rjBqh_8`n}S+DmGzyohjb_V z&kBl2K%jxFV07!%w>I8i9utff%dw|ZmJfxUJ;jAVYSDz|_m(y~lpR|ZafU-iAEd{o z=Edx7V1{@wA%sSwj8&_3k|LOe6`GDSS}l09I6SUXo^|{D5T$@l|BMY}17)B+h9QLN zCS}6x9N!O&+mJkJ%Ah=E!Yp#(MZpvwS10du?w$^?jjU&W1FHfWzCX2tQxhHN?!4rFgr(Y1CxOGxtl85BEwkcp1HHUXgrSHr$et`a#8IHn=7zHIXtqMrT{{p8Oq%0 zfFBr8>Aqj+ODjd#-^CkbxPFGc)rz`H>|!iUAIDT^jh~35@Pm+-zkA_W3VI&R*0P&N z9rh@BZtaJT>=Us!Mla1YJG0pOF6p;ZR7yn{aI(Vu;KtkM_?tcTg43qr+xr~gR(DQW zBPBtST9=0v3Ty@L(*`F`4JRMA694Lpp5HM2SWY@4>`S%8cyc0O>p}iyncYFa5;gc~j`b-eLiH#~vTWIx`zCRdr#j3b}#jSjn^&UB(CO1P1r=P~eC4 zSgPR070k)=WSUdCA??^$xvTw1or%bYm7g)YXj7ymQBEl{=^k7LhfaADPU=P zc(PxMcIhoRK{;BB81bX==!Ue1+fqm-X6kRkRtZ`DNqKObgbau_9qba}maxT$U>ymt z&pE5Wh-;=MfKy5lxHcqi^nw6EMr%VYsXU&n<&daoLzCzp#YXRY-~kYR7QPLqO?iUf z7u}xD0};$dO7Ejc>odfOGb2D9M7F=5Ts&66gy0O6QZF*>&=+h}#Vr=Gj?J}GJ%4U| z%uBz`D-ya})sznwzZ>{yfKUmM1S-;2d-rDxF9C)5)S%VkT+P&@eoeO(ls%FFc?!pC zOJZD3M(-@g#P74LP-@i`{AL5Q*sNsio;nbUM2HPLYFsda=cGINc0E=8nAW#m^cUX$B| zi6N}K@kt}j=8sAFyyx>0uwLcYE=dKkcHs!Ho1B*|JD&fY%0X0lv~s@^_v6(_@|Exk z<)b2#oDsGA*NZ4!q_QLwadxT-7ik~Z)0K_XdM;+Y1~@D5P65Ix05Y*^n@AQrAS0a# zjLj1S`~+Ma3cE}{9#Q+eIvk$VYNoxN|*~*$;=^JpJJ;ZYmJeZvd40Y^{Ki_Y)9LBE{^RHNPoHx(0iE^ zc9I-@L8g_M(<9mw!JlgY+qY~DHiu@GXYu_~n_jSw$IONB*&5}Xy(M<(^lh0tmNH56 zMXz#Os`Z=C`2aR0TPqC|+ja>`M7S_{2T_WZxVapRvKKqXe2v1nmJErw1l(Fk=mWDL zeL+LTc$)9-Rkhtp1UR++uZGswZ1yrcgI^VK(@?~$=zl**0%J+SjBlcs>NIPmfK0R& z4F#1+)+>$KTgAkKIXQfpl*Dfcf0j#6vHg0|XqTGxAC0+f7QqAhO}$ku#lo$tSJN~x z-F%)@fPHJrAgPjC;v1=a*vNgadw4S9)CLHvouvmc89WZWF&$xx;xlI-x(HUR*!ChL zk>mfBR4tc>H6g(`KvS~oHwQ;9CC=naO-z1uG%_z1T0J+yY>@G|EcJ^1)%;@si{`giTDAB{|l8&hZZlnJf zO|St1A#4}+U~5|VN$XzvhU9WKl$P-)^wwxsE00Ga|0k`G_VK4L(x;%|1?|H4(>ah!4mHyVTyypj-!~0yN8ubZABJ0siq~1RNfs!+=JWEX zo$Tqf#UIAL44O!OL&(++cJWcrJ1Aiq-i_!ii3oo7%%=~tn7C463~w}XT`Cjns_B3| zlSND23lBI-Dfwuh@LY*F?{ z5fcq4wLp;6n=!oGliG63;Qq?ldR1yX4(Q(fx+@cp<_9Xl4pNS166^at9VNUMdO&JS zo)KHcYe|s?FXFcaV1pO=z{}G!P70TGz5*(aZ_8qJ3NHr@5YGftMqB!{t<>N<2%Ez? z)Q|x`WjTT8>*kILQKix7uJ-Do8Wd#7Oq5SFUH%-x6Z*OXT9Vf99Lm?vFx9^FXQulE z>S=$};*|tUqY)`W1xjK^(;NYttN#=8G|qFsAiUcya*OE^!B{b5`s(n9+nwNbr9Kjs zD172BC5VlUe)WyFOXU$V^pSgTPUTr;9`V~q8t0x>eI3$wXuiMwcYE%h~Z8! z5aJAgBYVV(*)ALq|ObOPu`RrZueB?c2*$_8E{Y@M(9MO z(QcEPIyi{N8$dNAr`Yg7S za4`w}U9(RoVgbSj3v3}>jP-uIWAZ4kg6ouIah9aSmJ{+s*g|+F8$rk(>$5nrY9YkW zcjk`{RO#O&?C6nTzceN&7UWj8H#;O#*Sl^v>B+yCZKeRnG-lt6(s2wiq-ln6L1=r~ z>eRtU#=qZCI$Jsh^IyyGMr!#Wv{N7pE)~#olsSAI43PisJ+j`ER@${Z&KGPYXZQ~{ z^~4e27Mh*UKc^0mIM#kpdS{pKbZFmnHS!L-X}n67vmZ>JNLY4E;bqy*OGsqwol1+T zclrVln$iXN0^AE350v9djbmiFkWi^UU`)?QW?;@B%cw%Tel3Fg*>h#mM(vC%!pGX_ zm>T@>cW?Ny4lewfC$GGk32xHuLRkK2a^0m|f!Jx^e)o~6|w z4*I&LPzm0YCJ}}g|LTzf$tqBz8)kaJHQQRg|sAdKUZH9Y?Mdu{vzY)ZL zfnx#6^Sy8Ew^b3gY1%|Nm85si9=U2J^Y#6>a!@(LxsymukvfYGc`mEaeD()0$Imf< zIo$J=v5=_RTe z9(SCQT2)m>!v747OolmN$jg=f&IC~b?3n-;2aDR3974Hj2@Rn*DM<*yMx@F+~*5H$ar$T>VyOpNSYjTaw2Z1pkJJ*|J?4a$#6hk8GBn zrqT9$bFf-`Lm1?sj=Ljku;9#6>vOh^lkEh3+eHm<7H?V>z0|2-NO;TgY(C94RTWW%uBG1rghT4~Il_^0yM~ znWYe-=Oh!+7iYs=1qB)*L(Gu<)Qh&oz)g7p6ZTO(Y!A+=*k~z;_{kOvXm--C{)`@u zOr9^W*-CIt>0p7#)Eye=8~R$Xq>DD zr~&p?H@xGS;<|}Kvnu2vPnv43^Z?JKin&OQ!d`cVYWI~!;C{5JxC)rf8ZF=x%UCqM z*j4u28v`KXnh_%tsKf6J1a>3fjm3n zT?*Cl&rKD&yP1%-(?fX@f_?{gC)&R#F<-)zs_8hSLoXKXUK8=q`C$W)*VCaWNH6~JGX@^ze@Fmg z5NskwKKfjdCJ1e|HHBx6VKls}k}(ut9?XuLZ7A| zmCwP{iT+F@(2jBBcWw@R{9l7EL3pt(1m%W3Ok{J0lV$9GS05K82KKUt(Zw-kYi@FB zGyhP)v5_??9((dNjwq=iYgNqDGrp$s>Jo3(1pSKilK~uSo`aw)hP+4P+y+wBNvsPq zPtu@z3t2>6^!=QABS5>q(kr p{;Yb|2?CBlQ$fW4Hr9lF7wDaB(uEYXnWurGi1v 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≧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

      tl%n0?gbYqTWFXi-uGjI<^ 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%0A~7vptfiM`G2Xde=1OTfvtVaR>m10DJ`8p ztG;@a*7rY|I6v-zqB7n+Eu*tC9S4EgI|hQ^N;{)G6oQ%%^+l3jn%G_(BnPq5Ox>Z7Xa4B5OllA!mL ztg{k-hxD5vn;)XerQIrk^PSdbI*UFkyX(2!Xknn)>8hMk7Jl6*t=kg`YF@Sh&Jed6 zb-FS*DeV5~cYgj~;`~M{ItS+4%TCv*4!3?}PhkBa*#`w_w>=v=_Dr0>o-B%e&o`)a zQ4J8oJ69q7-V|TnD$!gmWB7-R&>>58zEyfB*s302)`Wktei*VtKWG5V3I7Kh7s-v9 zs~(Hqh-7-F0i~^5wM5nE3-=QCe%Q}=6rmEUJu+C!9Y69rz=QmDNxsyZ7TH@v-l0}tJZ-|+be0;(>0x+%m&t6gjJot0q1}J$ zyWJk@BiWfVQMP0I{Y!--%P*iUYdv9d=c`lf@%HJjyhb(Uurcgd$bJ0wrh>tIML97Z z9_d=zq+@X2+;mA88pYCdFW2?L-J{%C$aF09mz{p(tVLNV7b4_8Ar*GpVv%mycluNs zaJc!NidTJe_!2cE7{9L{m>H%)m0yYd0^MUOn*)|`nFr^tjNu(-E(MmYlymuDp+7zi zvBkXMfLCN9ineh+8ktStYed_uY|OCPGzIdQP9sgMUEEA{^uVz{`pkalOm4-|Si4-9 zDh2k`chiNS|MN``;^{$R=7B~0U!;Mg>ll#(|$%*b&yE@U)h|Vs!^zEEtM?u{xi&lXJOF|Md^#wAkNye;@bV5K*Izan`mov)578G*r5(R zw{T?0t2qgcW#l)Rqc?P>w7^6JSqPkA;|18VJcjZjabKQ-g=K@mu&{S)ncnXV*rMt< z0dau;4{Z+bR(wKVT)pONJfo_g;ka+B>$$WifPB`Oy*3}go_4@+e*7AHK54UGn9sof z-6p~x{=t%yiD1a;mwouw^+l<{-zlx+E^xgsn32?{z32JUAqtuN@Mk?_Z*Hnui$mO4 zOA2{up@*o^Z901OMWDD}5QaSmBrJa?#76cnyKv!mdCc}Yxs*dO;PM{ASMukQuc1W8 zAbohjw%d4JVd@iQ{fI{yCAY?fHCdaBePwz8{2;1x27cKXlk+(*x#A4J4sJR=R1naGA&b*Z6Dy_0c9w(7gFbdRS#)6CD{b-Oc%;=5mXHDUt03DKp% zeEOorz%R3QirdUqR#U%Y%ce!6HlJy1CliDVVR*?s-(X7 zqq7xacxr-FElJMtj57e!FImV*Hb=z>aUd5~0~#wF^aB~|ppp8>Re ziksCyiDkfywVd~BEzzBO4M{W;t3zhS!}_@?s?(UUKS#kp(U3IIH@CK!bN_&bm*cgy zm64?AVhuNm)!Lwijm8m#KEB&mJkoORs9hOBtjFejxf-vdMnmYF*LODb0#6BFFm!Zt z7A+_I{g&mCjGA|To3@=sx$vuWbX7p;75 za`0?Uk}zYAlSrVfOUM3s+11Dh&^-UjXN`!}S*Y6uQ3uL0ElwCykbrI9{i=xFbTi58 zZ#ieD@aUl6WGma1jz<+FAKF^@IP}2o*Xn~N=Twv)>dG=5%+D=AU#33N-DBIN0D`FTJ@hV6uW9}!z8Vu)Ed!DI|S~| zcXb4t04MxeKux+chg`n_So2AYHiP9smsK}bI zqCfb-B@A$x0_oxgCk0Z;@wJeQ@aEml0uWsQTQ)p3cfR?#3VAIYuVjK#O?9aGn=qZ{>NFCkq^rZM9Tp1NCCJjHti+O{Ns9uN zE>re)(j{Cb4xPmlD;*F4ATm--rszCzktai3G;e3k54WC%5NxeOuPqlSDV_vCKbI1l zg4pZ=m|rX%2(5-mmf`XlcB5s6AER7rmP8r)08P6m82j(AD!`n+wN0UHEXsF|>@f&Ix$z4xrl-nwwanN?hm-@(a6IDo9 zU@;5u^0`2EDrjnUE$j_G-e#kp^nPaM<~8o;B}bl$NWi^AOuYV|d|b(wfgBCi*{%Eo zz4I9bdqD`rpL}g41H?dpIbU<_R)aBxe(3HV*pJ$()hz{xe0Y1Dm*9YL?EQ1|)*l;H zoL2fnOFp-qBqph~m?Oa$C%~T!%P?WhVSPThCLkIeu_&Z?HbM44D{c(x z7LAz>0FkWJUYb{=g@9S`jEB8e!m#M7x19h2ww`0=Nl^NF&Qalv2EQTGAuUbRAbx=p zD<%D=pgUfxA=b=z-XDif9K>ob+mg?Avx{*p!^svC&lPOlzj^|t`iI-79F`)l@ArJ@ z$3Ci5nyfG~1s|HPmea}N)+fX+cDOz3i1tJk%1&fAaJOsnj-;Sv_MZ}ISDeOw{I{Gy z1;n1~m>GSzO~%EnW39}%?^ng%6p!Q~OHEE$&oufDb#rCJ$CpZQb3~vzPy;~+FNuwL zQN+IA$9Gq?t~CViy$ZU-h^20>!JJ%vgE#|(Is)Y(!`_{eQW(BVQBm?B(0cV1kh~9=3p&Lj7>FN$R+K^-b3i;?J7wYzqN0@Ee@K4ua9(d zqd66tW*e^F>z)-#A7EIB7Z=S zCBD-%Gn_3i(Hk^5`8TeUSKG(t2z+k8%a^+FSn0HBSm&nC8wmc4p-NI>ViU5ym z=KK*Fjf4^s@S1+}S%iaya>q~T_>z{N~=6DIA)w@1Fnd2OsyzXR1MPg}avRZ*NB`56BP=a}<2n#_j zWCa3GQ#2l;Oe8};_ad!1mwn>?v@tcB_0%V<>I>E9Z#Sm~D~#1t)xgll+|xHkcYQ^% zBwO~o^<+ZaV=_8SqqSS{qyf$IoR*wt7c88cWP$lOBpJMaI)!#!tx6d=tL0=HhG<)A zSN8wg-_^o^O|Cun>8kgQY)Es>8gwib7H~gl@Y1frj|_U2dG{zCGmA+h;REb_v60=z1cIBX5Ph z?DG2t4v^3T(rVzMw^|nfw`%DfpmQ8Z&I4}F#_K1wQjHHM%X_)Mx|_D;rVFvZ5KI4; zN%=FM^`aKuRc;qwK>z>>$pM~VYDRzk0`$+;T-mfOCL~N_PQBJF{=HQH@ZmfbBqct^4k$uX1 zIdU53_rYbd<_dojW~%~dbN02?xLRv}h8xbj-z!?lta9dU8X`h2D-K6d&TH|~I#(tVorH@O1FWJhP6xNyS#_{8`-4%}cVghC=O;%Y{d zQGyii3~)HyII*lwZq7@y1E7XhfoxyzsiT@WPY^@*lfP9YW^LlcU2VDQ}R!G&_lP7pOGi<3=e>z;0Ql=ri{i74+3MO zwW9v;32HIK^w+J9;tQO4^$!;%g8d{ zFX7({UPVD@p1aDtD6>3L1;-)eK)r5(yC=70E@^-m6Zpduihgi&(0bAJD(5cKUh$Jf zfy4Shn+uw{q6Os;8JYA3`Jv)C-4H%bx@PEU{m~&@hlb*V^G%Nr-qc5Kr4~b@93D$( zftNEM*x>u~M6P{@&e0Qh5o%|3Nza>v1L8tAXc38QtAKpDCnU4@G(C$R|DMndf}J98 zt|l}yNjVuffUX+Ub(q91o{i7!`JU6JEn5H)zm7qZ1(B*0$qU5-8!86F%YTH)=ClNE z55&~ecL3udJvm+A2TM;r6#aw+foV;YU($@Onn4jE z5Af~QVo-1_I^QXbzrCem@eA4bqKE5CJ0rajcjcTkIl=nS>t1kz@I1QWH3!1rC zVV0t1G&kaKf)gyNuz zD@R65c+W0LkuyVel8xX25G)_p@I*_sb8ZS*6x=`thb$(7cNznk%i}D5RgbF;kbqSw zWJEd~sfenV>;vmXJ^NgFj+S!s%0%60SoM@k(3S&pql>hF^J|jP`59bB3^abP_bfpl z`EVksIAwe{Y9ar81&35DgX^{yiE-hkSrUgWst9Wq$UQ+J24k); z0P_ZuTJWIw#Y&ln?zSKB!HFDUAGPpI%c2QD5T{Nl&?lrb1zQaY ztyCOFEW?`jykSh8ioyGw(xNONrdkVl*jCOUOyhV-Hobe#o;qreEe4NtZ$FaL#Auxq z^}>-u*UULrNu`sh!brHMTzE!m6Xr80|bFa2&GF&gYbHm^*t=7M32mAz7^)FSCN zzaN(sxY&-)5SV#aRZ#7vCFkMUp7S*GxxPrH+oZ~`IVF{pl0J*pt@oDm_Pn?+?u0*s z3G~dt5?50iIF|n%dY$8*j<*Kyz96%|c|P}us}w4{V3~XACoI66oZ93;r^&x=CHx4( z^dxWx-})S!L#7YM2(KVhBHy!vRGFsWmY$)zv?hxcMNx?+d5>OXHIU(5 z@b0+ljVNNaz4V3RpSgI^n;U|PCC~4pnGSv8#ee~fZh2WG>O|DFr`#ix;RNtmWV-w` zj0<3sT*ikzUHwtL*PE~ppUzeMuy5k%T>AZhm0}jQsC+|HA{AvbdkIpVA_K zV7*U@*M=cTeuL*FIfsNkZwX;QF3HTMsFCn!f+5Np3(n=xbAd=8Q_@lJrP8lR$7VGU zx1zj)3^IoYbK#TP_^RgC#;%_xmi4FvCVmm%pYiSP0*v-9S2axn1j^VZ2unN5$7GpoejOs%fdRv6BA7_}vxaukOZ|Ue zL^@@YD+^vq#-1`+V74skO(3z08fdrbo)HC!$C1J{HllLaJR|-7{u$QS=v;wqXEJ3U z+5=z3{?iy(E>N2$2{!HNO0*J>t!nOJBY{_L)PSK8$iBif!s5j3Ve z6~H_PG`P+wRr}HTX~dc*D@0nXt%i5i0B6UUQ- z@>!_o0@CsBi<&b>>KZhT;URSLyL=a@(-Rs2U)nCL{11Y*M^Hgoixan<=-UdD_% zEKveqL(Rpp0PB4%t^$6?DY&~^2Wb;6#eJ5ieZq>P;>_Bv9eXkZGvc3`mDc=^>uVc! zVaW4i>Ii|PniZj)zX{Ia_?hw3nYd>gOEtSTZ;(s`VQNrDZUQ>3zh`@wd^RqzkKiY; z9DUt6Y|H$8*vyo&Fi3e`eOJONM(AlI1Z|D7y*%J&r6U!o`+klrpG#G6W5sv-v#0NZ zT8BHsAvk4-Jt7T&UT)G&krR!~S}OF7w>1^(s#Y|>lU`Yf3ck+~x9%b{?pw_Jv5jn9&bqX_*c5fMA=Gery$o)z{Hn&7&6F zLoh@~2H5?RHr}m5oH@LbIHo{>wjeeAa3IgUjrUUMK;)wjlR0#VV_Q7d|{esEAjVIv(w6 zr>@L?Y!HOS&|=ZDM?TQDTUDm4uM9`C;> zhFFkZLys*Fr7~NbBz(CfHrg!rj)sGS4-sL8j0Ze-kA|gf?C_d%X2;G?Thb4Z zw_Lx4|A}Pdt#9D{KZ9COzlej8fP`|h;Sm_Gv+i`+R%#D#RP3@y=^+3pUFn{%XN<2Y zq3bmkyV}mlydf*7|5k>R{Jq|0?mm~e9M4nX;y@5l*9r}qqxeU5g5(tK-r|S%oMH~o z^!OyCtq4p0lnAD{8y9MG1FEMmpGe z420Tf5(laTodr+ArPgDFi#l2^1I@Q1YzpE{a$#;wwF&W`&iR;1x7#=&6y8Pmv8-FZdw(Q`8 zkoOnv@6OfSPC>bwrY;`uWYC#8mFxRE=l35kBn!kk_yMl>^pJ2Wb2!cRZ&qG9*SPX# z0HP>ur5<5tq^M-+G`q`Sg#@!|K5Ubz^cTlOtNBZ(F-WWWsOsl;eps^zKXX`y3xaMq zKCxhVw1vV~Rh2aR-K}n*^>*1Bf7BRSJFE5(u5V5=jLpS zy5UA%LyGy8&`4wrMul@d0xe5C;OUZIss4(}Ul(^%cM%=G{U&*ZR$OD8J=0|X1%N8?Jv zlfVN-*PzQ9!W{U1mzC_P8#{N6fl$}m=*(r86yC9vZAkRC6qNUHzs)`Vap^|pvmXsa z6_hCFrX(>BQnHr}?1bsHR{$X}3z_ZGbe(~^IJY*sxhQvA2II@79Qwg;4t{!L@g$?S z9?bAtCZG2nbRzJpJsj|bZMFx1x81A{BstQ$zCua7yBi63Bg-WcJu7YzkgdV1up6#6 zUTZu9shtrcZ!c(c@E(N7KscB4zt>%Jr%4kzS6?Nh_0!^{8SLCXw8)Bogm6&c3k@xi z+F^zc25wzN4r&2C3{Ky*1l!&7{szBZJX0=hKI_Cd^iRmaWDP#Vjz-vx5lLv`DXwg{(+p&VZE>+Pie z)RHYH-Y3sdg2>gFC0Iscu=scgDh**_gy(d9e|`MBi!%EoS7{M1=uX)rc+Ll#&>V@t z=eI2X#G~xuB%F@+9zg~vW0nI_VIDKyS$Fu?#za6OO`vE7$I|aCw3@uH@m?X0%xm8% z+&xBWj1Z2{0RMUQrYVPMI>ii!Qx9aG^6t-SMx>{8E<>WRLWIp zqm85f*8+yDev;4m!*5VGi?+^mkpJtvJ*BPrT5mWilLTE+)r_>+|K~300DYb04h5>o z=1YYS?gIa5Wp9isYVr~SD^W;kIUTQT5+NDJ4s%$#lLCT9*JI%`kSc+isZ|PXBCmR5 z1{)&Iq5mR6aBQq4@z!5=86Gj{r~Rq%RK_|Z3Xnp80L+(&>be_0ODDcY45ec#1qNUw ziBVgtWtTaRuOOy6c>?B#zE|Ca-?X~jZu4|QcP@g6N_yNp5VH$06^o9REIMc%g|dgY zODejIKOAh=B(a$O>&qcG_a8t}|tAzf?Ko2=DlU8&C9 z82}2n3ZgPW-lhAh3@qUh1j>UvO{&xdns%)d70TX3a+S#;b85B`qrno#PTX=}F#z@)-a|yS6XN{c26-d>xMkhF(sRBODvG3M!l< zMzRV@XwKlm&UU;B0DFWmI;VW(LZvhur{*<0^l|2SQ@~2IH+Rb<1hsxw($aVKGfAk` zgzPa#PemC4{}Hs0Sc_*p7>#h3u)+@lm$J}K_P}O4`uxh@J7(#uq>A2#&#?8Db&ihx zf{XpjLZ4kZZj}`=Nz02Ge|?L6FE=)CtM0EKLYdy;k<&J;OQDGy1T!jLw{q`a%}u5j zB(e~cUMbjat+5rDmM&hkoGL=YWgGV&xTP^!b8&dQSZmFELRrM z%bK0YCTG?JQ*qmubj~bUDM|U5%306gCPNTifhd{oSh6#_lgpPjF{eyuS=D<(J#! zQ}3$2*sj-Iiq((3uj8>wSP4?#uwEcfrat|{efEHEc@tk59!Ysvg|Yf-&=Jix5(r8= zd`LoP%tw{!(RY<&f)I86+YfqAIS}%wu^2~~cPRu^Cnke_`;U83luY7cc3M(46>aYd z-w(S5Fd?|E1(+@E`8_x&sK7Pge`GPYJZ?BWYnEM4wsNnBM7tw$i->b@??@a=o5xC9 z*mJ?j&T{#9Z;Lu0MgWpj?Hx#mAVs3JGCLNbhWZkC|0}zzB_SJxbLo)~V8CXH5pQom zd-w^hclyC#zCl8gpRchE;o7=S8d3P&<_ceTg!Pp)-SEa3lU0^Lc~cco*t?Sxbv)SA z*bt*0e?A0OYEe)+Ioe@pxax85Haq1sLu`nSIwhk0u$JiIZ(81pBPPZRESv0v)Q2NW zc>K3<&bn23!`46`rf#{#)^R&=S4BjHEpJyRNjE-3DrLl8u%#>#`Vy9-OX)lVym z-0l3xh_yW949)D}!qS5FiHGX=xj);LI?uc8>zhw;-BS%0N^o*$+=;I0I|{+ZvP(6kOhu9LnZG5!(%0TZC3@s<*s3mq12acx z-oAP=BLa-wEV+1Iq+p^R{qkFfLd*!bv^0Q^V73XgNQWUVzF7u_Xb1YAuEnJpr1z;V z1M|8J?c(s!WgY<`>(iRpi2P1TSvZmHWp&HE1AZ1eUMAE{&DMlnxTl_7x4oar|68|+ zsSgxzXm>r9PJ*c=hkm#tpUe(h*mqKb2wt2Ua{NmJTXqbDu{U- z7+aH%FQ3NY19Tdie4ck!1SQlucV>YfIjfVfb`VgI_r0Q((NipK%TWrT0^4B}SQ!Ir z-nZ!cGcpWzd7+%;%DJ>H9P@Fx@4f?k8IO^It|)OpfPDH~;I8mvI_;fI@0n&xjuKNA z8il2C`?c_97!9qQMFB7?p>~5=ac|vkU5L2u3r%g3+69qyM(pEP!zxcsKmK~6{@wL< zk{s!q-Wy4#lnhvWSJY;qn2*&mYDrH_a2T&N^`_$_m2uAF3#K(;jWFt`U)F@K{xIXz zbEZhp=(oyHnFpj`Js{9nx?MQzyLpENW^|{d;VK7m$1F3!CzHnd8w)M=6=~Zi z5s$c8rt%NxNUD%dZ8#`bXooDT+v~XEH~E&~FzXte*{}7-m=S?bDmAx3xB=WW)XQ<^ zk^zmw><$EVn$o10KPI6rGoxc$eS3&LrrIjr4T>5+devDy6UOSpvMA;Y5_He*4K`ZRh??q9w7nAL! zM)7~YQzFB|9i+;;+pnZNouE>-c}ydB#_20sKbhaON^K1!_V&ehsDBVN1d<)y6B3Hd z>aM(8-D%$P5_jM;Jfuu-OD3mRUXu5@y!DPfQG-ITVe;W3T9SjQ~OF>e9DXL;}!bAw^v1%+aNGPoiqj*sv9MPiV;IHi z>(5xJG=ARx1yZ9Z`>kU9^|Y!?Jx@Lp86?_bKwn8Z3c}Ef@Gtqrq5Ak$&7}0(T3$}D zq~a+qxQml((Th#gh5!aIMB1~|US8X){Cw^>=h&>W?EZ!53bRv*J%?#Y{vWs&z9E(u ziR7}9ymaCIf%}+>AE)wuQViJa?LZPH1cHN+sz{XQvd=;^uneT`Voq`Nk|2T7_eO%Z z)E?a$<3ygY6v>&Z+Yx`x#*MR?ZN#Pxuh=5^vH=!ELl`Du7^k-*u1BBR7ncMaq-b4Q z=%2oHq?Wg^580(CIT7)#BempAiJG6P3ie0wvM0Wq4|yZZRR{;6x3NCn_~{TM6JTd?D3^pRc6^l2gzshODg5>kM8k#Qva-UBY60^&swVucORx2y;5K}X6 z(;l+j90!Tho{UIr(+-GX54xHYy`ezQ6d|RC4IcU8Y~A}lz9chhcWQ1Z>ZgHhCb$5C z`cw+vDMp-PF8}=Od}8#jGov6jL$<^V1}^ngjt9RXbH>05%4`THKh~o%`hv^4F*h#M z46~8|9rT1G7pe=Pt6o+C>j$1HNW^j*7%^0>Ixruoq|`|8Sqx~(rx%Uv3LDyQ_E!%) zG=y1mET$c^%#s1VOYo*@CXc8c6p9e18j%1#KHvAa??Y`W#2)^_VR4C0Oy$&WP_&5M zc5RB+LO#a!EfEg>P=u)F4U*l3jJ#C5XgA-3NtU)x7+7s{fKJj4OOi#+V{41JA;l&usoF!XP9EK;TxFf1yj)D7JOpD1>n31%(y(cvpoKy}YA3AP0=rlxi5E)v zn?r#q0i8A^LkkLD@f>0ciff1yQ@zgykyXc7Lv1|Oda06={B6u-)UOX(7vLPCBO74H3sg-&M=I4!>zk?D>Mn@iqZuhqUgYMA3LK-=jaNMq!#tvQ4+wL-QD ze`;Iyh-UI3?KO;B*l<{RAsw7j#9FCi=XS>@&64-^ut#VvtrI)tKq#;_PHdlEWrl`; zVMZtN<5GL=#zg;Pi<9rdsRor|3X~3(W72)2?^2X@peRRjQK%(WY}CHJTPf8HhEYX1)47$K35b72^gCl0~N0lM}BLIl5W!M$K6hCU`7&7~$YjjiaB7 zZ8in_0j?2Yt?O3_@{T!bw@`YMh6>bfgX~?t3h@vM&c?>_r)MMmHb420>-wD(AMvG+ zzRw$Akf4reTV%Lltb&x#4^b?&8>Y_Iwlm%Krvqa7klt%+wA%NU{VQRd9NXMj*mYT% z#{~~40RwHX$bC)AB2$rKbuzUy1k7f13&!F@ET8 zGeDYXpC-I%_j7?!#yh%W5*M|nq=EqASxjr~ZElSPz)YHPp?zV%f3Wym1B4=}Ai}(i za2y1+hC>y1u;5Ua@YX}b*iSSYkFVC6gfd#Kell5+&V*EBmTcYY-;l@|%^|_*f000Vo0iJ?tMt|w94$bou*EC3{@~((0MdJ^w zYJc;?xD{ZQ97C^ts&3AqUZ_`&KsWq7rA`O}Y$PkzCeApkaYkBbV+2@zi*2S9gHNN$v9Zl= z+3)@MA*p%uFr#5}?0|qXmm9%5Rz{X(78H&nZJ!AYmbmIx4gTxS%#)mRy!(L1j$i!^ zj%URBS-;VzNidp-kPHU^lPh}?dv&|@PpC1GY@y%@M931hWN-4kpKw67=dM2?#SjHz z3R3(03=_?M#okj#QG-;0lJBzB+5Thc@n6iiOyrvxSYQ&Z*^u@I5?fhJ4L;fy5&iqCahFjQE=KvbKc zr)Qng2M<-Y9ssv2f&j=MsQrjmirlu?rOpL1Yqx;uFy#&R)wK}AUoC-G)>g_Qfzkp) zewFo!(2A%@EJAR?KIosCCSJO@#XILBdx+X1>U%#I7huM|&l&y?_MqOjddL1*7U~12 zwrL)boaytTME<*`}|;eZG4; zR$HW6(B00xGLE?D(8^hCz~q47;hO|z8{5#W)vHpvh7;tW{GGIE8ND)piWx>}`=N{k zl-O=9D)gLa)$du1i31r@=dXAia~T>P*BUU0-;QjpJ2cXiQdgIRFQP-@U|ZBb0?PO3 z>mLFV z1@G4IxG$hPay3zVPc*Q`Iy8Z#E4j}>3M~HT)plyngTVW1YLOM92~KEqCtL6)QC*0W z@rtidzRz(t>asfjh@#w1F1?ED{-APoW3ewFqe3nW4H`zwF~v8`C;X0@%8<`vtikST31-IhiBK(6hc>30}=Ld zi;yAL@I8|w#?9N_${S6T)i~p(BOV%}(QXJe2n3%8o&VMny*VG&qcEIZZNPkfk_>V} zZ#sNzY(&?_QLvDO{ze#={9_f&B~@yTl5ux|xtmzQX&{p(vL7XlJ```I22(o|Mw9@7H=y8%54WYX>~)<^ z__q6qDU-&y?_e@Qli;h^=YGEF;{Ohtt3#)=ZG!yqNpx?D@r1pH@#~!H{2*+vJ>cTx zj-Hxe0V!H5f6;ufhspvjNnG_8w?E6g3QpVQOVEQe0v+$HqGTeIO4u0qv9{8*_(~vO zt(5%iG+0B5cA@y4odpdLaZtNXJulco6by4p{^FSR)5c6t%n*aECt4K{Zd|HtUgf0Y zE<%q3+ZQ>IFGJEuiC#-XNhVE`B!;CScs6KeKC8oiva+Tp@DO2?-jK^me5hYG_xG-* z1C7g`%#_>UvujRDFyB{jg#BO_$&UK?Jsx>CsKpfxGwP80T{J?!#5zXzDD&8{eU4W( zAB`B}w=7^YA4Tg6o}|CLIC%bYd<4)_P7ECjUf&~AYwymYYIB(y<0B#s^iLb?4wcrU zrM_Zf<)>z$$&PE9nf_g>j(>1%D6>jf9$@aV+DWY%f0-Hj-7`D)wSLC*n0N9Yj6`cH zI`d$pGoubM{cOQS?_VD2qRCS|cOZTyBq2>B5aF@l2=*|eC+#F{Qx=pywVxInuxjIa z(S88e=hy_#tXSotmv$`-SXk_av(JoX2dq{$MdlEIq$R%OL#_k=%Rw{1PV*dz)W-UC zEjK)zTua?&Y}P08bir8le(M22Z%3h!8UE3|BMS7O!GlQNvmuPquU5FVxw!$1g9{&y zA~B_&rBrsKI4jC{w@9{Lm!)d6cVK!!1Fox*|v0=Dm6x{FR&_n&ejpj(l45?UT?icX!h;I@t z-RjT&QOsqz^SgpR?^l6UD6QSDAuI3tN6S!TI!b|f6Qg$TB+kH&s&mMOsyggWGxLS} z|K%WhuQU#2m)*d}ehjNt9DJ{B8|`kBem0&l{YEu9iB&oPWH#-8(yDm0j3nIhB_Lns zQM(6|BHv!5A8awx1Op8o>%dX9Lhpd-&_hZHY7%C*f-6C0zs{r^{GgOED`Qqm@he-T z!0ULfS!c1jJpRUc2HE030y}p|`8mYS`F8fJFYrz%Pdbz$;Yg41eduxMfUN{)dghNW znrVdi`Z_K{B!Cq0f@#pafcM5>fjLKJx1d;!B=GE&JZmw%FTen~)6`5T1Z6gz*48bl zK1Fr(yy60mw5P2B3NQR`?_p&!uH-S>=&MMpGqCtM9PxjmkW=cn*FDf204T-;v`-k>WQ3&W|@$k1^`WR#Z@m#G2%CiP;7lkUfOKD8@cAh6W}Pv zj85Mmg>u?s;akd6$)pWB$5eWypM#%Oyi$9|-nt`q5pF71!}5jq)OTu$iX*By%Vfp( z>8JF4sI-UA{_u!d{y7-}4YxI!fkLZ&r6!KKgqUqvN=vx~$k@rb=vX_@u*&(0)e;J^sd0Z|Q#0eAgoGUeS5q)H4?3MX=FA-iDP* zai!w3k_&|WfB*m){Xv?AN#PGBQw2Z&X~xYgf0tY0IF55zL(J21FaU6U{h=xPHV9Cw zG7vuCgh@;H!-M7E%ZxGEHDEuw07{?^cr(g)w07Ma{`j#{0F%s|RrRa+W=){VII;-GiU8o^7e`{izJe zng2~E(3VhICdV=H|HD=;6%|nKJpEezXRgvg!RTlE&vk_UccD$r#1DbKQJ$DEfp`BQ z2gLVh$+vu$YW+13FQqfCeN26-&^vyXx~`r1wv-b`#&F|Nj^OfN<_j-CR$lzu!LuO= z0Oc>tKVNFE5?JTdHXhPzuW|9O^^(PbQ>mO2Xa;u`QVjMUEld z^QnO+67oQbUk;Z@BHs}8*wB$?oQQeiBMrLbj1KvtVlL-iZ%3^wpW+c8?-Zm#h{fbN z5hBl0wxV)D?f)hE=kZjbG$=^v*svAy^OlAmTp#9=5rAzBOT}ASw}N=oiL=pxBzUeP z#JEU}x8)2CbIr&=6e=lhkr#j4^Sz0VAXG_D1|b{3U*A~k%9{AHmo5fH;Y{CyyKK-+ zCW4iLx`Mv?J7d4w-HS(60PALty~oyT?haHhq>Ny0qiFD%4L~pZbV+??Wh2JFNhd7| zi|~N|y2uI={&o!=_|XOK>HLPk;~c-j+w9^NyU>tMQJ(O8nxvPS8kMXz{*QDe4^b5} zZlOA0ZCT0aPm3fl(=HdQylGIclK2~qeY~d!D6}aSTg8=kD`nUwzvGQhwsAo%dwGFH zA3nfT>;VjQR&2s+sn^dCg%#Ra96CIGm)SL#Rg#Z# zu(C`@AEz7@ur$GYw1~a)nZEE3=NXVB#7Xv=y|(s;w(%6KTc`~CJ>SzrU`!ck%@fXk z7iz9)xd(8hWd&CO^6hmkEPc9*rq3}=*aI;9fVkPZR#2rdc?w;kJsQ6q&0P~YIBuY~ zS*_&8Xc02<*Hnc@h=?d|Q2g{*qQq#)E2Elj!qn={jFa}Mq3(0RiQNq})pLQ3P7$Z% za=^a%!NK@}5`83f(ON$EB?&a|Z}``Q4QGle2JS*8da1Paxyk6=wsYTMot<0FT*{&Y zHQiXGGLtsKvvwUE96jX0;^4I(;{NkJMz_ln=hzMyny{VIFp>K$loCrV1G6;I(mvfu zifV&Ar;Ev)f)i6(Q_&JXmZ&J!w=QduVa-~;JP6XW|0|%#<`};Glh~H7;Dnc#^4uKc z;!c;1PwvX7MR;o>eIQ16oL+{?jbnB}v&>MRR^Qb&j=+nM55-up3SPy`BbLxKIG~_A zM5Z3naL>p@+~v7WfhwxeE#T_1lP?=0tqbls?Ly7>QK|Ponsb!?=OS`5>3BTR{oqCy zl?y6~8dQ)vnf$ZBsD6zAT;7`J1p@{~_o82$2)Ef4bZ8}ULZxh<-b9iJcOeAQ{lqOo z`$qAO@~&eAHk!j+mrHj^+`L*V-PfcR?;VMX5EXpAb}23KU?<}DQ`{H)kZU#FRayKX zbQ@@^rS|2Tie7ixr7TYyMZ>(pJN8o(qB<%#_wqplk3`x2{=!N%D@&w7Mi_u2dU`4q z8S(mu?Ty+q@3NT)cCrp>%HCnvr<|&~LF_;Sha3Hv#>N-P7l7}~HTE`p&3|o#@5Ldl zz`hDj$fu?K5z{bA(ImKDOqu zsr_}7{#}WVtlf=~CAAiPD&#BmeRRpkRLCp#4K`pCN4X)~LffaQo;4v_jS$QNlO_YWA3^N1l$In_b zMT5JOm;D4auSHKDH=4qYk8e?cRxh{T8xMg zU8@3*yi>2L_CsYh-cPPG*vQ76am~+)xQ4DhL{WVgo7*xMOrP^@RBb;5&mojZD{uqx z%Hv8og);UYLewU}3Bl=P8u0Vx-AjabK5Pz)^bDaKn~AA{L}5A*@f|}7%#k|t^(H_e zS-Q@qCBf_4Gk1;0SJ=+>UQ}F0z4k-LsO95oW5Z3u@@`%Kv7q1HmCr50L=yFtTIQ@t zWrktuql2|yb)}=YdoeZ(0OJZ<2gRC(g$mbU=c3jfXF9BoA#0B`37gaXV?s1FqQkR%@_H{P$tHkc>qzu zSkF~>)VJ?MQYkgC2Qd#AG|F|!0hN?J97b>tle~Kqdmmw_YwTnKVY|b}IxVxkyqcrdJje2Rg%&k+oaUQXXJkMXUL`x-vQkH8V zgXqtZ3Od9XrjKdN{t=|S13Ybl)VN7w_AY~l2O3YLg^N==1TUWH*CigsCn&dguv+Y| z%0`vnxM2uHk7;qnPK3WDLg?oh=GC-g>0=Fh5KhwQy_>+XOAhNsE`c?=R}gttMF^yF z#dx)Z@8010j<33oAREkEpM<%2VY-9n9d51rl7R(6f!P2oc`Ix)Ha}yMIRO(n@+w4FhnWr`)4uKKEQT7irvxk(PV`F;i;Qu!D;I-pgzLQ6-*W4_% zXaXc%5;Uaf!xEJWVdpO-COsxR#2>#PfvvnAU2L|Vs2LYp=O9DZI`GR7V#7=#P0}i% z(p)Yz8)T9EJq5a^Wjir%ToSSs|Dz;*5)z7DsN9a$HEZ|U$kyD5JqD4h~!)Ei}l zH@}`bLVLj9FFxSy0BJy$zr9a;^YATq=aGFMMu}jk9)rXH9sd4)B+g04J~VZSc<@B8 zQ_7pwV>5#!;FIqGfs-y6yAJ$THD$rJi?g*qG9K}K0XAIEbo$|YY_9H0+FY>-3eL|C zonJ~_etx=Ym0yS@y{Gjn6(T^EbC)S?i;R#x)GFlxPM3UJFsvPnB+V>$boVYPpc4dV zg5A^qSxFY=EkFPPNzOUk8AbyMmqw4#886_|mcRYgJYV6EwCBP3IkZq?Di#W-`wYnh zFmte^M0W3O4HzR|cGMKI`}%~X;8uA^{KRBS;%ZZd)E&-#lyy!#RL&W6nwxWRTSo}O zy<&ySx5T^~rQ1g=IEpxlBrM+(;g65NMFgFx_G_rM_p>c+`FQLsCwt&MrOw~YN$u)8 z(oD3P`s>3}I?dk_SBLBI{c(?Bw0TZY;9mOsz?*^4v7fMT=k!ZtMoXXDig&rUhDE zPyCTqopH}qVr7QA`Cq^)ZGYC8$IA8zde9sEn7g8)7KX>DL6^aPfPP7cwE zuu0xNL>nyFkQ7#Ah0)4s$o$5G@Z8xR;g>M?A%k+j!X2LYgXBQ5td;-AY9)+B)bp6? zqi4`HGUd(NVkw7>v*~&{PoT~sKgE$?B_Cj-Ml*#ysrJvE+(lcP5yga3Hj?7d`pofXOgD4Wk#g2VKP(&87)?N zH||ZMRSDhQ$N2+HYKvI~+t~jz69V93FX!UUU&zhPQ~;2QKbbgLj;v2VL4NJbj$n7v zbk@uOKlnT=ymi?oFQ4}1&tJX5p4J!yNk6JXDSy8&7!fK#Yi`Cyb$zMY!Bs8UbYu#);ZkKxItegs)qgd z>A;3( zw%6ONRWfMi0vR!18p8bPx#MAnq%?R&CyTBeNFS%<7Zjn~VIuU~#qf!Ou9)01b1g8W_ANx@WC>M963@ z7hTS&BBrLMaWG}qPZtLkAFJV_#vBTw5GG%6VzKY3$@GuQro zkcL7uUEC^Q_c-nxSb=uKC7j`K0#lFPJ4L4qaY?O$w%q2$Lr3vzJYdZ2nGI(M0Bq`h z+kUYgGZSv$V1y5$642GKb2N#oH3uXA;RHW#+vmGEz^N!-b_&9TRCEJ+svD*5l!BWFht@4&sKLLXXHXgMFGktdrg$$aO#1ZXTg{B`j)1H@+P?vgtTY}$vAgYql$SYbeK|mxAf9@@(Fth zRT%}1V%efn=2b)UHBos9aa8$vhX57+`@I>Vr2e3XL1#3W{*^X7b+Vh4IU!$AmGg9{ z8_5^KbA`{OKeoW5;f6f^;b_#p<1bZ0mGmif`EJ`gKUjV#t7;bIxFMO4{s)5y%{Ug?UvIz|ghC!V5J$X?q;YKxR+=$|V+{=Bu1x)R9hwk1c zRJ)1r4->0XgGEs>YN zn}=Wj+;iy}ZyIuU>V;b+ZP+8>{($mSi-xM#AAAkhZwh}eX zn%h8}ch@*gCS$`_V>|c+wpZ{qrIwkeiZ&y!70?Q+TUZ#5>u3c%NBq9>OL7)n3w>cE2|CtjXOrsC|U!9s(sRR1b*kE8Vt>$azMsoIU zIFX5dJ;F(zXh|j(z7O=x#_BB=@X(@?<#e5KnSlaRmAu?%VFPYNj9y^|cAEV=xwoD7 zZ9FO`N~nD;^01PFu8$G5Lq!!1Ng{orlLc3j)8uXTjH(i||9HU2tS@dX60 zz;;)c^-^$7(HWFV>~6Yg2WvL#8;OvsPdJASczP5(e5^DxGF#L9lH; zUVOE%8^b6@KEhR%!I}c>BGw!_O`0{V-yE9)qS=G~-aZ4F+^(twK==9)_NmJ5wB*?J z+fD*niNkY%f{6S)098#Hf@{3^cDy6dG;s) zq~&%DP_nlNk;H_t|dMCIoHe$gtBz9 zLDBxcpftA#_FO{Li>Gp?e)pFMfEvqx-qAIM+Mt!){IhP{2V zSG6cgYUlq1STM`nAA+_*zAEY#@;#}R`1!f{zVFv@CJw~?w0(e(8sEtQ3bio{(aCAa z%wV(5OivoX#$qm$R_8quUuMm@u8dMZX^MMn!gVGD-? zCw%|J3Gnm1?2DXR6h5$<6;S}`Epgv4I}n#}3x5PxKeTA+Fo(*$;aqd}26Z#Yd&l>w z=s}k?5dk5f75AgQ2_wR0(U62@vyMekY%_g)0ICl#XekPPA#m_c3 zy9}Q!SGckj@A!tyJUJ)fz{af3hcv%~510?7(XQ^?bKfFZpJvPv?5bh_NYl!x&3i4? z43i9fKcEmg$YP1MI~d6T01K4?o}_9;f9~N{fu#$!eN&&y1y+0rY9TQZ2$@UCZem-d zT5+A8OFw6A-UzOI(-nvHrV7mi?I%M;H?`>@=>7`tHSeuQ1N2DeCgM+DP%e?jK8YOl zs{_fmaoHxXDAKr+Tx@ufDY6(ceM|*v>RXS&?zhMoUOnMRn{<#1BZe*DX-xxj#_o^) zqDDpb`UpY5to!$YsvNRzZ@xnm1lqupDs+5i3uGRO5ZBf&yWIMogSX*i`>tNRR0Ww{ z!8jF7cL!f+p6Zp|Am$2_ofv>};VdZP*mnE{0~A&5l^NsDoh3bxGKGuCCAN5t@K;M4 zj?I4H`bQ#aei(w@D%1i3JyO&HA9W^l-c?eXu|0hQG4+IXcBrSN zUXn=*dHKU+++S#yXJQoVRwgA&ynSfqVh*p&)wrv?3`ijmdzu39>qIw>GX1ICuctv{ zjJ*tF-a{%Wu&ELlD0zRL@~)=VFW`c$qgkQmesN5i=t-%VDKmPgrVIZ^fh;jzkVg?c zdf(jG7+<7{qL^nLCsndxA!y}9e|iBNeP5DpXS#h=Xd}O`=JmG$LzfD~{@s9(AnM_V zDrd)Z<))Lkt?6)b5@<6G9CSsuSgHehNL56UHqR(%n^bc%eQ_08^-p~2+rgjThAr%Q z_hDMj9|f<8T2&_1BUmFQtW;BpOdQh6O#D~dU4}4aKj*S6n@fr{IK?xIwpo%wEJnJX0e*# z>8#QL?P9c>tz$C=&xE%IHej`iAIO;0)0-qEXsK#*h9m2T^FkTY&q>YpL z?(vuMUn1prYZdyv<{yp)m#r77KsRsUim%{JBVF9oJwWyYGjxxqeR8JyKnpbG#zU`Q zEOYO$KTr_^1$rUi;PHJlKuRW$=O`O;J5UkXvV)ULIE$)(pmj1**Xn~jcvjum4VbTp zPl@SX#Du9Frxb2sZ=s$x8Vtv?%QSBjUQY_^&-kvV@}RL*;3TL$Q!Ry?pz!Oq98Vh* zCK5bKefk(6POXwRJIlqKUHPHmjk^uq%RTuXTFhY2W1uNnF((Skf`-VGVit5aedv&M#2gmdkmRYJ?@z2MC5(Gd<_k{C+J5W%k* z)xSTUDqb8<`2qA>hgAH+vFz$4D=BUA5M<%}&7i+>GG95SDM*{b;>^p@aOP9|`wh#V zZ!h-@%v<&w+Un-gWnp4O;kR}YmihyksLsUkwcn&XI5msu{9RYk@v)b{FiKjECl!*7 z7Y0v67A$#CPm?)jIg|{F?#!v(RuZvq z;i_Nq@UHImzs?EqX6L-|+&8T2MbEwL-;-=|owSKLKBO}SMg>bP?StQphFD#Etd}o= za7h_4^M4QHwF!63{_RV`Q`s|y-Uw46>j=)Q5e{(R%DymHxs-P;HrkkgpRY%7Qe8z1WlujagUilob1|tdhXOL8s>daXdX7nXji#rFtRgli_AT|x$>emBZ;af zDKiaHZ?v+-AZj{amNe;^8~5z9xTaOhqrCdu9bcP;_Zb+w>hY-DqVU7;C*kQ?&XGx} zipA$`Cqwda6&@^^7cd=#KW^{fBo1$gyTiMSL z@eDm{jelJY%nGgBvBxr0ejmN6lJEkKXg>_%{WY=9k7(v%f73?H#>@I*_;1ZN#`1onhDqm+tcV zBj0iFK|YsR-n}PIcxDc!N6Dij{$Q*^BtqmJog7x0Yipjkf`LqC>HY_|ZHGQsu2B=^ z_W|zb;5EXFwAFtVJ%pw^f#YF=7d!qT&Z_l63AZx9R(Va>kS?$I%M;0dq#$a#-sSH% z^4gV1yutH#b7p}r2PUv{md`>ai|kATeYJW;)TrJB`K^B7V_%~o`DnjAq*vQ|s=hwx zJQ@1pO#3_mPvVvF0i)5cs(9KAf#dGB4dXHvxezCQ>t|;ZEe<*5RJGKWLR4Gk6+V~W zy&VIB_G>ALd^Dcs@AIW)Eu=lQ2}8eVS9)s8lGEfF%5^=XN0of1AZsj%ov2Tyuu3$Z zw?OU3G4W>#+%s*Rxq8<%{<<^lw&l|~QTDA3UdOP3>4|7#ru{8CvoVP18?)13_U?%G zhx9vPd+jllpDMN6Y0NoEkNl$Ht>6$-Nb<6&FclI{cw6za^5%fC=XZY49%*CV-v;wp z>N&Nt&yln=1SGRqfC>fK#=uENBIArj^c(%36Hj{*nhICZ2)f>1$}jzm6Z&_9j7;62 z-JinrpY`r^LmK;*-B6k`nAxy`rBlXd+D^ah!}%A{7}>_f3a^OfZ`r<&o7y?qD(64*S9T!iE8H-{hNwJ*F#{viPhvXQIf~T%3)1B zrlc3-L!hE!K!P}AX{t7)K7hT)n_>e%zVqKmkPt@V9qe=9mmF8Y!SlG}T8-o@x2RW9 zvz_P`AXry=7qX!#t`UiDPpGIHsv}D|e_WHi%^^?Zo-%Qe#x0n4OsTof?eK=DUa3kv zsZE%zzoQi8e-2JUmG8*4lNFcRNZ`(zt-%zA_9lTCKw|i(_Y+rW`QuuJ;r8vs`l|gM z$7dUi)%pK?pNQ6K884%?;k`6yxkcZ6CP#`EJZw+HH5w9_O%hzf!a8i1KhUcnQpXln zOa_CfyLwge?aY}B_ZeXts~8kVR7eP8^|5;yzTKY`rO*wh$$+#THTlO|MDmud2;$`y zvm)6C-V^&2?Gt3kA}BUREcs!e33qMLkYBm%?hMVdlY$gxmUFc=EyCGhIrwh~tdIC% zc7V1_{;%dHHgt~g*`QJ@5LdzJ000Tjj&UMgL6&sMR_wsnSvLQ zf$m=>GyCWHoy715{5PXg-y7^EoWJ17iI;@e|j{<c*XK1SZ1_6I~o<{l;iqAo`BvoD|14#$Fa(d4! z=WyoxfwhLCIfz8slROhv;gL-Hc?r^b5(Hl1lofons%i$NR-91vBkGqHHGc^DOCZK( z52j_~#-#&0b|NkO`~O3mIGX;gkQxWiBm$OHS0BNHC+IwAB%Ml~FX4A)I1$Ue2Nx0x zm#3BP+vUfPqXBWhw5Js+Ee3BU`G3_j+zKxje$UO_h2VLWN|R5=bah4!>7i}nRyYis zpb+e}9QbI#!?Q%jw{p7S?eOifZTsEDW4@}zDzacO(~#U7BSJyye`^>QO0a#efQ1S~ zpqRZr6SPfw?0m=^am`B)Tz0KUQp<(O`aLI_a=*(g5+%6>ch z*@FI`$ zGXPHWBX-eFtM+G+qDRmSQqunSfe5YTAbZH%{C&k=ju^)xd=Cq)tU4fPPx4sg3RIptV%gZt^>aQ-8lw_^XxyZ%5UnKzj?37Aeg&w&MO<+LQOi1BSL5i za7cciGf~TM1A=gTZ608M1a=vu1F7*0E&@r|s``x0wgfYaHWQ^4I5d2;v@qmvc^XF@ z6;C^rO(oo(!c=>1^5pFa7kYSO$9O~KoNorfOl*HPYmFjQ?Mt9C6K7e6k3oJ}^CoN& zIuJMZktq6KKbo2ad<-Tj(!&YT?eLncb|$O*tYGhb9B7;yY3opy>_**YM2%yl zI&A;10Y?H97u7HERd&RsI@s~j6jPd-9A-m#l-bdBpt}b3I&}`w$UM93Kt~S+s62YK zbiJE2rkiu4sVI7|aq$87Limel`RwQOD-(IeR?mhe9F(7Q5!iyQW2wx_=@nqRyok`L zx1DX6tN3J9nX@3jL`v1I?lemiOK<3^Ktr~S#KvWih~3vTvV_K=^1v0!F@ZD^0p0=& z67fiD8B^+jXpA#kfg)^xXL>6{`%{Efu%qK|x5+rzC&nm;{ffyK^g|P}u+BM1GcOD9 zA3L@{a}XN5tVVG4ahHD6d{JwyuuGO|COA3b=yh~rBWCp((?b)rvYWZ#c(}{!`k0dL zS<1bOeh-juM?J(GyUGbnSXcU?zxj0+6zmy7ry>36A`oH(3fGbUH3g@{%<&u z9?OXM2>!*u(?}25UsOD|z}NgO$0fvCp}3b`&DHn2Q*A#D#Y)e5-#R@2aq|*t-AgQQ z%=7lawMCiTNU_5`Gf$!GqW->bYRkv#1wQ80MDG4L8D`|&%BCHO;P-RObZx1FCohu- z%mPAdeyDpy8;Moa;2Ya#Mq&2JRfouLyCSv=(vws)>Q@<--IFs^A+lFYDK(}_ldu3Y=(vMzArG zneSS#O8GV@4u2bBP-)Zn6`L*?Fs2hh9Se(Uk`B~iOl65j0V}UF2$L|a-!X5JyA^;J zM0#4QN7fvu+q~|1bimlm^ST9XIM9|h zaE-q{F8i^da0M+svJy!EM>#|?Gp#e3;hDYK zfMqxt&0?=+SJlQ`hXcAIB~GHC7qalh;;S96N*mc~ia>1!$BPe)-(1q$L1=Vy8Ooe! z5Prv6uj3yB9@Zf84i!s2gNEo2-i25#m{uqqZOrRlW-I;y`Ot5^!Y*n&#Q5ZmVf)S= z^xG)LZnTSESA9-CzEW+YD-EnOiaw8}Ec5c1_n6tn zLG2<_=rAy4DeA_tyT7+%Rl$GwNWq=!X%o?GP(;L*r7!84@_2zUrn|nKl%5B;{n-5s zy2URgNbLS2iody%QQ62i2+cU^Xo@Lc({H5n5=s}Vg zJs-vqG6QOX(cy5YodbN8EwajI(}oS`12mQcJ-TaO_!k@8J_obd*y?4z66;3~_?ioI zMleaq5oq4Se%Y5@#Ja{11Y&mRVrDMyO+Z)wyxS$AcQ(U=UJx9WZ$BYwC9C<=K*TFk zT}(^Pqc5qQI+7H&Y9N4R(`22Xv}1<}fVf@?B^iJ2V-BF@I_z+Yiw@RUY~-P(mRK20 z|KknifPjpo>t+pn>`i^BN&8~Ox1JNA9jL81EPX0SebEuTz=|rSD1T~0@@o#VGv_L_ zG-LV`fA#DYXFP?{0O}!JCL=Wp>A$U*4Oy@Yz?Ar-CKHof;y<)OhTaAOOXcGVgpR+3 z*#4g*xvgA8P;pxHcgvE&53)O5+HDmnrvNp!?mLZ=;SSZE^wk>_a;aI0PG0#6z&)yJf z&pfRIY98`v_;WIhz>l+@dc%kx5RSImi?-|B*Ay2Jha0WOz(cY z+yU)9sas$R&~F6QRe>W8X>c)khr4PJNRWvj%ds+EZuh_;6q^7!HhX9UUjRTV z$9*T6QPSARitfp6U^2iwvZ&E3fLqeM?AOio0z)Zr@u1_PPv( zM1RQzP^mA2=ldeg7}`%ty7gawrbxvMC~Q|JMtYVtiva_Zsh)u)9k)n^A2$=U?0_H* zp~Nu`(21h;E2uS7J%Hm2G`i z&2%#jajnxI71J;J{U|-$5ToB97Y6RT^zz}^v566{zSOQv$P~xm!6mYx|Eo0YPK_$C zgFR-Pk-g!;enJMY3~?6>`vyA)M_kjD)<@Nlq?`yDYv%+-+02)-QU|OFrT?C}4>J~q zqlvgeP9&x zx_&jjr&^m_Uv>(iM*o(Yt}g~~HP$5~%;?XM`5=iEOc~y2w(-5nr`}#k$E*LsM4>+e zbwQQ{yb%edxDl@opZL(Z8ZOqmtgId%&ekQ++o3YwlW5-=!eXe4Oo!#FeL^mFHI1&w z18EU(`ux!+YJ>n?M1pILxC%f)s_RWB<+u3Ws{`t)v$FlP-YHCWd8=e1(>absE^fDG z(AY$kqK=uq{h)n-lxj_$KvuYN*E=ZSQIDZ`51EWbac=FrHdSl3{ZqJRf2zdH){OUV ztn|>_fM$Hlb^IXp^Q{p~GE`!3WokP#-eC(Fw$^5}FsuiJwSA9^dDg-2YK@oFsgD4= zM8)h8e05h0gb?}NLmx*~7*B1qWPhqDUm&t`CdY6eDk$>8oHo1biWs9}YE$6iLBf#M-=Olo=79rS41Z$6TJItc?`Gh;5;?)=bz+n7hrQ+5Jt4!y z6h6|PKrG;ejWGy@0!vqozj_yLg*w~f8Boh1^VDiG9k7%Ri8p|?K?7PP z%zy!T0Uq!%=sH{{90pdbjjL zgn9DQ6I{j<0v(y-mqejUeOup%0ggk}(p)G|;f996qV-HIsFVabw7hjMS@V)_Pm> z<&jlQ5$%j45C5I$q;!al>h?@W!velv_jdS4v#4~36Vwz7R2wn8BR*doeLw!+w=D*&|EwiUHCk;HHYZh5MuLF^oZ+!f%q~DxJ;RkiMF> z{Jb8U^O+RPCu$$!mZP15A>xQ zEUq)M+C^=Tzbu+zL!Q^eoz7v5lFEKLN*l{U>+ecLOc?GaN4Hjcb%`LS@6$m_WkeyH zqOj2`gDXaTuv`A;rf6TZT>I*q?B4r`3m)?*J6Uge#vuF}0~)7ybs)Z6=A99~m}kGV z@A(5d5_CrBfymmJ`of>X3waKb8oO6lHmUT*n5=Vqt16@MDd_9gB00fCK?$c19TCQu~VMN*i3TtwvOh6z-Z95=&gj z;?epML0AJ@Pc|k;#CWz~Dr)!brG+$E5qTb=vc4rJ1xV9RTLe=ZP&tG3a_?yEtD{&u zrzw_!%z)5zJ?ax}K|&_eXa`-cE?gFBqSoR%CN&K7w6vH>_BOQs3-Eau*Ch|Mrjo(v zc=>m7*S^L`>C3M5AhUc*)o;0tlgri!bMAe1&JzIu4qM&br%ci7&8JcwEa%>cSVN}? zvA;ix`ZAFmf5py1GSLzCovQOKW$J6X_IM1n7brP8<>CL|+u7J;TOz5&3b|pvA0iDD zVe6penGjw6p$nEBz#$_67;$l&E$T_M&uZPa*EZf74K<9aGqcoh&H0*6UUBC4KeV>o zYI{I1mjqzVhh(_XYrz|1TEdjwe0`lJXj*r-_;in!&K(t?y+L$h1+PlMRep_fNNG)! z(^&q;#Xot2A4V6(iXfB3-_ImYun@_G63c%U?$tK*#P<)5=7OIP^-KOF961%f#@c8PWq61&M}J^$iEaLm##QU;gF|0lhOrqtL+3n1 z`^lcvZ|PMTefOD-_|Zt`AT!DnKRyY|dTv5EABlj|mD+JJldC7ze|Bq7QEWtSk@#r& zVQ73ql3v$H1NWC%1vG!O6a~aCdD|mOGY|F&WF0o!TO9LXbyts8me=uZ&*V+; zc8nLYhWpM=vL9|M4CBYaykF@x2zbD?kC%w6tae#9$$8k+=`?4*g)0Q!Jkly$1w-G7 zIGf)y*LQx%Erk;E=|Q0V_G8QvF&=Ty**zDyXJHr5gJ_z!sEQHF5*($$o%v3Xj`833^IjpGJy$?$1LNI7rof8y0?y?TVs_6HCj{$0WiDPPL2JP#)73Jf^JX z@346zcVc5K&5^Yx4e*W~B9HYqwYdL*^4)BmW6>}%cv~!Cu z49Ypv<2-M-8sKl>W8jxDKRE5TL8rUFrdLWlE&%Eaq#+zi!q8 zo(+E&RKVe>-~a=zkr<~X%c|I`h9SwF0N`r-otU$_btqRhY75aRoXcm6Nta-jPKU=9 z_UHo^Jz=&g>O$D*mn^QXBA~dubOaikt-SyM3KapK#%h1-pjJiB(TEARHXqh81+1`0 zgKl+BUcRmcf$@x2v2XUCNmD3ldp^qO_i0Sa+|%eq`Py)s;YN9!LW<(@mkw7rU%vf* zdv3G+nqR)KM4?hTvR}@ybAERfT7@Fiw6AGwhl=DjB zRjjJz_JAlI1#N`>k$|vU9rKrwWVVVQR@&LNvdBjODBxiy62%`=LxSC-u!;XG`6$@g z`tg^MZ*L~e9tzhJUP%hC%CMaSIn)$;KQ2dtm_T z)%+>Zetb0HjswS7zG3JsDMe(xFa1}=d}B#C-k#)A@CF6x2F{CY*6SI1O954ii3URb zs+!M1QAeT|-uspa2#ii^>Ue2F0$ifdK!T&SzKl4>G>cRXmRQv`dwF~wPG3hWO~J;# zz+8WmNc^|7cMAP0h$0*l(%eJ5d&G1(;DNy=J4^h@_ylx}^dmW%XySRI{%8h^8q-^| z>x}gL?|%<|aGD5ejdaNQYQpob5Hupxv(htTP#b~75uaNEH0nt!{Z$-@Hg6Gt!-n|7 z$X$9iMh%OdshStC%SvltwvjO2min5L*t`cNA?VB1(!%m;9nd)_N2qX`@8Nl++wMCO zjN$&cPzSbyeNvkX=}jw_{ELk01ZbX+VAl_oO~oRpbkQB}MogBa%{wmBLcA4Ac@7bc zYK&}}!rGFS$>f*k*hHEY2N$CiAvF>nH=XvuP{x_u4-_bS6E93BgIE%cA=lFQAoTf;QStRb>hTu% z35N+Lql((p&j_Lx1&y=8wKd%{lpGD?wl~%;chBm5Q`MmUfIQPf?CrV?HME^J)>?(` za*m`&u}lnsnTGBk1AneE005f$D&mW#nL`~-cmd;|YF&Q5e6Btoee2+*?)|h99jmBF)(p!-|Qy&8{GS<}qC;f)&b*q^5}o z94kAXjcASqp$NoY5Yv8$;&nFJsA|H$EM!Ta?>KP54vEZ7{-jfzN|{97WG#9?-tOZV z;Kxkd^U7me^8zxo>XU|M==3Kxn-nR#5zbyv?$VC5Q5jIqmRC(;{e#bUHO-dxoBw9) z!RTy|rf6GOKX**wAjH^nd{-M*@rby4w;VG3Ycl-z(b^7L=%Rb7KA?y?dl}KI|KiS{ za>f(`>KSyyaHieTI8Toz9*=s{S3hSJtEn{&c}m5^XDLVl^G$C|0#%6#<6`*{HSaS; z|0_X2@(K$OK82Dj!CpNkS9ot@WLc9mZNgETSwg2s9zxAH)Et?lfJn;B6tn>iHbQo^ zNZFj94WAF^VVTOn5kJwut;^|9*a=Q$ct2Nd?39ec>o$jb`sy(KPfsX9OBcyQ=`g0u z$=Z$Q-r*8dV8a;>QYSWw2$Z`4Or(suFn+@4vtS5A_{{{DeIB6e6B( z&=jbarg9_puqtQ`)NP04DDjRoX1xS3KrQp9me>ynTq1NQw!@Y;@VIe5HMcFd=b`HZ zTKHQLl?>1Lb(6^cG2b7tV(J~?h~RqTb|%a~cI*`U2XgAk?v1XHcf z|8smTuM%e%SeM;TEU8{HaGzDNHbbqZGh^FG>9oB{GHy}TsWvKlpmT2$hrwXkiRPuM z!-HINPFfE*H2|5NDYX8c6Y^u){FJjs2Eg_oE5NCgoC&A8vkzEDIK9b|a6mPZ_%Nsf zgMHQ1cyD4{Z0`igh6dKddPcYFY(?s9-4UM00Mk+7Wao&z8;lxgeEtnFeJ)UT^sCko zWF%<>I1;*RQuEh*TwnDaK3VH<1%04xkwd}g6?jid`#Miaj^ww}k2&0qF+!8Ie{A!f zYg94_3?sWy$ICHmhJqX_1Y+i70{szWi5CHD=W5==k`BF3bRpZ!-1UNVlyNY``0DyP zO+>&wvDnBUW3{|MKqfXHfLG*Z^|T_Tq?5w4<^((FC)rPl_XWl)D3tyb9PJL)0)$5z zxkV%2>MokLZB%La)-f(O0NoWIm5zpX4a}@dT^ns8C$b)*XeDD84nOXG^K6c0K{F9w zssVq=Ut?|S50Cf{*Lfsw^DJ_Wrw}&Q*iq?$=l?dtOHJ-E5wOONH#bx5&;_6|>LShO zrK)CU2z&XFw2OYu{m_;XSm1m z0iZqKT}n2xF?EnHT=PSBinam?0e=0G2O zgM5k+#RxbT5mBq#aULI$C~{-Jx@=9g`ww^PP;m=ubGVXZW6LbJk*BMmfwgEY1|^DD zy@I%^o>BLr|Mi12ywL(vs;>oiUq*Dq%xt#A=*J4CA5llW5$>J_V#LTQ(bk-r?L;1c)`sEQ z@%lb~@gN@lS(0tptlIY8pcVHS_`oUv_|qyuq&>ER>FXH4cC&njS$5Xs9Cy__sIeOIq3%&C&I=gWleCF@kr*QILS6#JnO6trm-7*3)n#oDw4<=IuKmV}5lIr4h>P&A)0IxbocJxyqb)*&~%E}qs zlWf3rXBEc2*S}*P9zW$Rh_mJxOo}md6F<$aUo`r3W8o|I{fr-mx17+zkTA-R~Q{+)T_^%6&!~aYVF24Gy z`pxydd*w}m3yR*x)IR^)X67(5 zEo_7s?`_FaG3hLW_~OG(`%Y+n9AY>7@q?^r;cnSfZO&S$4)(L;kXwpV(EofQ+G$yPfM104mw+ly}JD&T+^^>=niY01mDeWJ0Wv^RT$oT;5_=fc|@uOQKi z5dSzS#T*bhoo!3pq@DB!yJp&7$#b1M&M%LmuzskuX1Vvp-c;+6ObRvizN0vGcyj(H zRg@Z26%iB)sNh!nn#xG)`k@Hq;+*z*`GwpNb(C|_uioyX6Fll5y)ZeADnBleiP0Vt zoxxlBOAtA}c{Eg9T#PSo#W->gr2&q63WACO8Z?*Y+(9;sGGS&;pcXwNrJy1agWBDS(L8eR(4k>cQ+Wm`G zkF^2YXB1*RH}-no*3gw|eHU<6CorW;5tLlHn0wOfAIIFQ^|)TB>-#F}$B>~2#_4Wd zSjxLG=o~0+q3a&Dzy$9)DeWan@$Jwlzq% zQ-^^R1SprOI@dG#+LnR*q&vJSWrH=s2d#0JhAU5%H`G*~V{t7)@_om;gQW0|e*itm zDec-j1y+8qxkHXgc2uEHnh!ehwKoK7C5D>>+1L;bogS$u!)s~)RMm!*x)#ovBUEzo zZ2JH;-zOh&NCC!IuSftqX?0GY1nqSAhm>@9%yj&-3F`TX4s!$$PDCcTo0-<32avCX ziz5jF?D$wD9+CJpD(EgmpH6)T;OUaXc;mRgUZTt>s+D`2dG=RNhiRGyq)e}xgEiJL zd<{~2zK~<*1Fwp+uUUtIV*w!xeE};T>Hb1cgy*xPO{N11RxuW&?1Z6y_IRX!LAnGZ zkQ;TSlB9(|YWK7j#k1b|a6xr=R%m4l*^oA<{(>X|E_Ac^$9XHjScn$~;cAb|b2UVv z|9vf4%l8Wav|F{TNA`cuQvO|UhgR-nWY#Qi%@I235F1e>uOoAuNoR=B#X$Ny9EsDy z;6muh{%ClrI>Ok~?s;>Jb6<0AS_}oF+HePJ@Sym(w*9sH9sQ~hb|m$YDqsCyIuClJ z17Dd4 zYJGF{r$Q%38u_QKsK>Nb!z@g_h*hGIY#JDeuCq4mvXQz6%3v?-|H}m`?H032iMF7p zC5fDzpgoJvQS3E#MF1>zCB^o_VS6p%%inhK|fUfotGr3jNb5`p<&FmNspccG^6X3R(n-dn^ArXlw zZ!_4QP4Vd*zws^b`o-PCocb`ULWSm)PHwP2Wl$n%)bi0hH&XgY33I-H9EeH7wK+zu zMLL5Z+Es@Tq^P}c|E)-`=Tm+Fgz_cS<~qecj>n#>i%|%n0#iMb`6e73$7*_=&=ayMr0tS+3bZ9?7A26y`oEBE`lyLU5ICo2qL4~H zoVU&P3F$^*ZbdJq4pJwI4M_^3*}JvYapnE^#}`8PUp5NgK43RHI3Xf)z6(88c$nyi zsQssadLJ|^>F$`V@z{*;M*e>^D9@H#o$q$;4IA+;N)XovuQjWsH|Exfm%*kq_y!un z;MDE+k4x3=@~DdRrUspzqf^=^e$-={wjhOFN}A9roMaoE{H6{T;1NfdvIKRkUO9;V zFn$(8rU^Sn+G`sbqZLu*D?;-$I?VhSJxIkT?8|ZwFJG9Fi?BXD>g)z{XN2k>`O4f{ z?wmJjuS`XY1dL_eExVGdjM1Fu(~lw>WY34wJ(llBnyj`vZSo37`2;&FzabhuJM&0J zM@5;BonA;mDwl0$w0!6C{-iEBM&PLQn5c)M3`LxAvN){6uzy@BkI&RthFNApipAw# zoG{n*wxOt>_rFKYp|i?%!T9$c(zZW2bFF!XGEVQAS*s7#Qge0Pr* zF;SpymqA^qthyv`wopCR*6Lz&%O&6VUjcW%q;~Nv2MhldjgC!Fwa-z406?9RJ2#uk)eEXvkoZ!USt;zq63*}EQ=-iNv$ z?+oYQa35F$xuYpCgFh6py>u?@QMvg(J&h!wZpUjUVWTIg1j4DTs2xd6a-Gyqc|+>2WflT8l=8XHK^R_gzXvw5Gs9)rj(7+m1tA0R-v<$N zGz%e%6ES43)Bi!aqxP>nq%fFsbcOu1-#7>Fua;r#)7{L*`|>{m(6%3Z8R^}$r<8Nb z0fITCdG0p&agTHgqj9fUJS$eLGXB+#K@mzR#&(h=t1 z=hwPU+J7+nZ-(l@9J6kb-KxG_!s;kEWFy|NClK3W39@36gJ4xUL03x-C2BT zl~axbPGt-p=G&#^!KujROXhO7N?7bOQq zo9rrK*ULuyZ(5;3MqVYC4i7a$bPM6^k}K_Ia|+oq3)voeIBBV4yJa@!o7(-XOJ zQl)>9G}3LWqG5YQ0=Z}h@x01I~pQ_Nm6!mX}d-n0hR=X%2HfEKit&RS)okzj;Bov z&%j=j2t7XT5$zFICWzAlN&;`vwxNQk{EDkOEE(bHazuA=JCCjiBLY?b>c{X>eTfbP z6^sSWJiCPh1L_rux4Oc#5JS%X6W5JqNM57^WsOlWrL70WdxSC|T49P?iOg;Z6CQ!E z5N)X7qq2G8{Ul~W(3Sapma~7hG~y|gY9C#gyQ#_5CW5sEVB+k-$GX<;W72TMsUjsr zBGIFmy9pTK#vwCqruuS?7zFOekVBeVD#WQ4-&#Fr%OlA!aOvPKFAY_1Cb43k+>vOR>w&TNg5#xr?75UtXb1$wEc@<*sGG8V7{0Up zG9=({mrCuo!uhRq#)QC1ILXge_Hcf+YKw`FY#ifR^gYQ-{~#MwAx}Nwb#5x58y0^Q zq>t_JPwcx7Jsl$gEM}DCWLcsj)HIVeS(y7+lD_Odno*{jWe)<$Q`pE4; zj)oCS*ksYJ`#dCq$r@JGq-YOp|C3r6QxMRKobm7h@`q{;k8Ayhy z<3OrhbhNKMPhjCP0t?E7&pASN>0GEw+~9!QV<@T1wkaljN-NIAu8PRm^tA6l8J_*e zzH?%3T6MqcD%e2$N2@80MY}=InTz;o?GJ1YpZ5`i=mb7I!nF6{WVzkAmMx)_p-$bv zv`iT|<2-ztAK@!ZvgBW0z+B(ncEjqM+SVVF+(giHp1f?%HVrpRRjdPed__!E zd(qg}IExY!t?&<6W=c{wug0ZbOYUqNx5fvM-HVpvBJwk(rB=D#PAc~XQjisM0>rrV zOM6`LK7JChx87?lN7YfF>cK59MQ`O%-S+gOA>b9mz8M@S1l}7mjcB-u{*1EhDH*w& zP(@bt>csuc$CpnvHR}RGE_2&l>>Um=B6$#l-iFBG9|1I{DnFQmYlgkaS#l;Cr!ZN& zo?@;ZBCHh8Ty*JrJsf9Fs8sJu+4`Rg0OSQ9$aZ+hEj531 z^EpZT`R14ysuN44Ir3*L$Vr=_AuN=6P?DLOyF|8=x#j42LG5*mRWo zWsO??w!)#aL^jDBhm=2Tr%g{syE3%HDEFD^rqU5D!1`+?*6Y*oXp{fuxdfrMb}lww zI+_emB%ka-8x#`+OWxbphiH);QRM@Y*Rl(?F7vu3Yg+$iPI;jg*BB)*0vk%*^hT{D zl09H6;%a9RK!B}z;k>nZJa~0RjJs5&0NEh{k$}W``rK}z9`xZMW+mcYY|n&>?D0MCtjkXxQ?@#4X;|JGdXpiP1gT3PZ4Y;26ZtWbtBdgfp;|Gtcjc^ zobD8!AUueQJ8NQ!l}p|RvhYKIGh>U}0mg}NmT9#Ug;@7=qJp)p?O1UJ$pnnVZ4TEYm}!nZ2?}4O=G*R^XG}Mh0Zw`;Gy% zb~wLb`fz=8kHOlj20x~fq+Z^A;EA!jTph1>U62w)5QLrMqEiu@5PU7OwinfpY#fDs z`18d@iP!2DB7ck|zCdx9*@@mxHnMr4Q5uzV2_3!q91*I2t5$_bARE*bqnq5C2JLxu z`R(&$`Jr!}2j_r;;D(I)FR`U7{#^(IzG(bPP}R_nv|R6e*`R9d+GUfxq08e^=>A2T zm%!eX8x&n03jOf&)8!UNJ}N|E(pOUTrlwjd_lxFD$mJ8)DG_wQ-u75l$nOM$)-B>3 zK9xF}kEWcX@VAl2>Tc(qH^Gxg7saF9t_hZJxuOqa*()}0^EA$?H9%6h$*Wlp3K)eQ z{vkvvj$)+l_;m8)#1aJSd-jINWR=Kn)yG!pP zW{~?;Vd@hcE2YCp5%hHahxmzvfPDalK;4eCivsg;TB2yiAT~6A0)`0(jE-+fUD7>) zDa4T)`Zv67UAeC=C`pDNAZ-BLLV&RIPBXkeXS=8MQ)pV-y~{DIdL9K)CzWOb#tm8;~J>Z(M#{b-W}IT@y-QPbTs*pv^g?Dz<0g*?VeL>6WN% zKMRN_{3PAgmWMWup4QtuZe!(TrP1)Ac4uTg#CrL(mx@cl`6u_y8Hh*Zg;rZXC#pEp4PG+9?E@S93K^DQq zzkb{jp#tI23kh$o?YHkjOUFv%OM;{bky!#|18)T6Vu}vxc2oGS{eR0Lh|mW#5bZmkXiQ8LA(ZQY-t*mi<*IY7hI@Zb>ox4EL;!==FHeZdUaf z9Z)5zLjAiBJ-5fwpCD}#_!n55UBM+P(&rCl)Omz3MMUpcCMg0C+nIe_O$A3PV{)YCU7n4RnJ|UdqPQvk{1}TX?qHP#n#jS!kW2nWa?#c>K zq!x4ALO>fNoq~nbP;M@#V6GksD}OMKJ;M5|T{H&BJ8-Sg2tA0e7O!~#rYQD z!vrB?EY?+uE!iWm*3^hwUAk}{>Xrq^D5l6(Yr83FEVm1oppht^R-c-dEabCi5q2A6 zE>^nE`mlzCaP(T_PV2E6pa72400~k9u`^XLZMH$I658O(4zo}ew5d#|Lc>Dec84_a z7oiL~kURA1yCCCx8=r(Oc-W@Zi`+7@2!M9MwRoFJ3zWJWMu3Ai{; zgb0zC3$LjM!G3;j$W|B%}I z88nsADoD7MnevOQN-OtkjTVNe9Jd2%S$SiaY^DgaPBVn1aqja}Y=mm3h6WDC-jYYi z$)av;FbB95EolvaF#y9UU4-U=Vyg>=+5(oNoirl+jriquT(6+NJ)V|2N~b->97HRm zrBhQ?s3dr13HDJUJ2b4d!{z0`7+QD=w@wzq$Xkv%7J~S1t%HG1J&V2ds+zA;-V?}# znlYc_pt4;Q`08a3kFDCn|72zIq*5mOQB9C5u{tZX<3-U+di+SG($h?KKwFsBK`64$oS*C&A1L!!qF8po4TC`dJA+>^ZRBe= z=40>xhT1!-I8&Rl;`~w>_7}_OenM4wjJH1LAtB0wTmT~XwdUzOhYMlghokiGFLoe^ zBlVELCp?LPsSqTqDvCgZiEOMaB8AU3aXk3Rhm@zTDQP4NLPmH@U<<ag7D49wJnjVD989^vo;l9*9-Ve2gJu9S^6roe^W29sP_jw+Cp6?tM8?&>I$x4cqzZ1CvfW!Nc>ynZ9 zSJ-u7tWXEK!dnwu8E8-BhAG+umhV<0Z}U9UWUA-X~6Z)#Kyk1NLVrpNu(Q>#q`Iwi43;3Ut}Q^Y#NSlXgiN&mE(dJg=0Xc#Vr zm<4dZJ+b9j$H}uZ7sjivX-RtwUUq~$#y5uXcWw{dc*7h2*hTzax!pnHV9MmhKGW3n z+_p;xBUi&moEwU|`jD4p4mt@)foWDz8wa@eY!QR4o%fn~Wa-a%bO}{}YbVFxZHnHE zl$=kRa%BAI;7G0ENW!RHA5OcU27ufvy6m4>(^5Mfhy1llG;$TvXWd&mQM(mM(1A8VfwYzC-T|Z8&_Jj+Gq(=MS z$v5x6YW`Vp21n6zk7?m3+&ka?Z0hr~f~VZ_Ba9VXU_oR+y^neUcOmfr=#!h`3!hD# zX;7m<(=-@?{q+<$2Q3|`PW&E62$-B$ixh%v3?#u>TyQZ`$$wNc<{3BYv(j^;6{hH1 z9%C!qfuPzFto2QJ9+AF+4(vqyFm*67DQFF4=g+UVJ5}dmX+10X@}hYRxB`MAuqkN`t5b@~z`BK3B#Z{k7=qWt>#oKw4zb z^UcUJicB1`vj(wmLKQFse2n;~nJ)38Rv>Y+Y^-U|5n9r=85`kF6~=`qZ=Z|+!`!(p z{^8g56tUZ;6gU5Hla4LbsT`tv)-7L|bt=Z(k)%l@tzRk(GETLDJS(|(N2PHn_}d-| z0wmT=BK5^o?X*7E z>Jyd7JwKPzo`uqL{dDOq3v)P-UyLrNob1PlTY5An&?|3*S|83lanTkSX! z@g`4=uvIS7Be&z0HPnZLr?N-MJpahQ9p5m0WA;YRv+9oI0I&S9Bb{MDXi!Kfm$wxZ z;70~0J>9NiM0CVGW73IQj&~MY*pFb@8rW6(k|gIWL*fx~oD4PZc`^6KJtny*&o$Q{T9^ZQ zCdn!y4R$0R;o-J(ye;A#R!)3DoEwtQT5cWR3IVOz_>Y<9!EL+fGt83B*aQK|b`{|- z(0>KgjK4JUw;t?pA>pj+Jn5SwADIBT5y#bLe-Yy=k#Gf7w8=T{ro5g$BbW&ZS8Yx> zw`7FiE{p%X6{k2ezJ=BiMfo35O~A$(AYXvC_!0ZvDp!LkOQ!n%cX96$Ya#2%ZEnX$ zYV#i=I&EBIii}IL@|R~YkIb3VOdfUbLeAYBu3T7|&yR{Ekix%rPrer@l!WIsji@}OFnO{&6MW9`~pgAF2bhgcd(t8=W&Blv2258hW`q4 zT(a)4;Pj|0XZ~DYjH;sxOa+IZ9|S#(s)v<37Bv`&yNBFt13y_NzKj{$Es z(AwcjErpSZziTUcMC}m$0W(bK)sH7dG1goKV%pkul>A#6aeSLCWYfH7Ufh!m&iS0s zgrlL19S_3WOHW6LYL{n?DPE1`wPXdTl+dJb=IfLcBXyTCWkPnpO){$|mqQVdgW(e? zRhYg202ow3n(Im74<=IuJZHlwy5S#PE2aQSK0`bruOs~Q=^TLZRuvNdD63x{e03*g zo6qc@IT94{lYC}xkd6xe)Tlk`F039HFAT}!Rsool(wMWq`3M_fuc-bFnU*#(&myf^ zxI4MQNG3WE{3`~G!&dQQ=GvRgHue<;0(&PpTn3}0OS()I8VhwJ9opl=jYmsL`fpU4 zx6&s}o~u44{Cw>@bM{S{{8?;1kbc=PK@L~LZNs9Uly`IHZpPF3t#r`Lznwyt_u&7| z7Q<+i9!`wzn7)+xq{r~A8gSttopP{}`tS(prPoG7MXl&--5|z%2Guj;i@rIE-T8fH zpN@sxY93k_PGbWn35vwd> zC*%ERnFPY15v^dHjjF@Nvy86aqlgM~sK>`UL7CDWNw;$4?Jb1T-fe21S!6>Nm1*OH zl1H}H1Sh%N%-3tG7eG4cIvbPn!$0kjgolb`Gv(8N#FwzXUK;prt?^&yW!o0oF$UFRsAeK?VA<{gt- zdGPqIUvAAJSZo6SLg_80>Ym#(fptC8L^3!G_mko0(;NgFIemOIVj+#~-YU)~G1#6) ziUQq2P<|NLM02kOq!CSHBkTWjl|+wLyO!)r`WYJ~LCfYu=<{Ge&mNm>t=y zC;=FETPfyM&y>s__jDm5*3ZvepOTBPcbEai?%k7GCTAX{gd*70s*u^?cM)2>pn#Nc zc3W|Mm!YfO!}I1{F4DD3`(;)j_FjH8V*ol}rEVu>MrY~um?2$-+9N+)fu1DQ6H1{h|M-~f0C`cHJZqDZ=9yJF9Hv$Blnk5L zbrjL;oY4>Rx6K@ePalxMja$?V_CkyOB7QQ zobgCPsB=t*a*;+Bfz{_Fx!~GY^)2j-$$^^7Z&si~%u4j?)%~--j$_EQ$oJq_Je%$! z20mYQ*2=(1v%t?WzO!Nf=VZC&j5YJ~Yumm#pT=|9W-(~l*i$%GXi!J{NrvVj7D`qa%0vHUr zFmKM5LtdqOSTk(_IiXVB%L)o}y1oHv4UYsfQY2CMF4C z--cj-Kuz4q?v(fQS#R7~Gvb3xphThGTjqmtD%#JH3ZKh?LrW+U#8Ld9=I_IH0}wEwd@r+qy*@ilVk*Y0bap{2w)0s&P%EO z^v0P?0x$kae|1hg@5ks{E7*s`cIOZ3gY20NSCUwhU2Ko4uqtN^3-VINr`sCcw^QOs zIICjmPo432ES3f>CwjII&aHMmoodf#dVR=s!(!wZ24fwPq*Dn2*g06)JY-!dlrh&X zgx=n{bz%NhXGwdOr>LPbBG7xr#14H;a*FTroAI_Q9fjsUE%&}7gPi%7mzgoX~rYZEHp!8T6vG_^ym^+e|dTJGMz zcBUGtuBId-NI>GJh#?sb3mFbq>zOTHt6Tq^^DGx#9=+>2ah6Fp7-5wdx9Z#m)m&9p zx5~eUOp-Qn4$JCxuna*3Bc2nPjnp}z(;7@hN-Ac>%=I#m@)H1-J*17PM2ygmMN=Ta z8iVWeE?VWV>R5*ShEEaCsr#2NvE*f4eiX?j{TzTsma?q%Do|LI<2II%I)*g5{sUzY zstV~lOBNu5D4#&yjK*kcT(pII^CfWC1D)w^Y$|y=YrK;sp7)gs7qaJJIBd04nw=<} z;OA8E`jVV!klnZ9|+%eH^`1q=C-xst^|S zz7$N`mRq$Y4p{r}67Nx=)6`!Mu_1}6Pgm6g;`>c!LI;yJgwlYlV|Jnj`sI85Nm&YJ z-uGvGy1mTiGZTS;;w&)xHiQMpI}+7Nhymd-2CWR%4xKdz{Z4^e5UQ<}jhHa74AWQRzkIHY)&FY!1m9T!SQ)~a410|)-g|f*q+Dj(P9+!b==KJ%8`bBFOr#hyPCOz?y0P~XJVDtjk9LTv?WlD z;J~fL_a1^f94X4)#yMR)l?4w$N~qtLVkejgEIDM8vHa>Rb}06c9_y5mGB+bDc#N{E z>GpJ#%wpL`N=g#3+lXr<^p4YiWODF92(zmAeV2Mk*LtPuNXR?T>lfJM0CvIXkA11n zRD@c!>eOS?-30NJP3WXG=a(Pl-6flVcR=x=N`58#3S3S=1hM~|;2&drjUY0h?;onk zG&D^A@$AJzbQSAlJsh&+P5KLh>Zs&v8?BXQ_Kj7N83^X)*g1>@&Z$ZM_1gqN$FGSt zbD~tg{2o2EO@e0-(9ZnljIG*jt`lgrAR_sRKZnF^P#Lfq-T|N6bi+o5;4__dx*4xA z0<72D(9UJ7s~@Ohg`HwC_3d+Kr8v&@56|XL@ic33X3{I@`8eo55!8_vT@OY?7NA@~ z`tENQz+VP7$=twm&9h#V0Oo?-{LV2oRlu|Q!-RB5g_cA2wKfFIk+d*g)f{O-#=9o;(gwCVVt^;bY2|symo4NBFY=}`>~Ts z|8G%+i=$D<{bE~D7`y7~SlON6B4!zXj|No=?273M}|`@XSF3ukWL zF4CLIvM?T{J%eRLo-yd!R%|O&oJ<9AkmSy!yAznJb4W4Aohn7!M{^*1j_CY7FeZ-4 zb+OURz0`w4Hnc4qgPXzpmICD{sxju7b;;G)Y!k-cK#J;|olZn@d9#GcSK%7^jd_{#!7!D;o2(y`jAML&S%92c zSmxdYg8s+;Sl9{jTsj!eXzKNjKji%|yjbfUBL@3qLVr$9qY-7174*yP%F(hi`kz)G zJvsJ~jh0NYSdWe#2rwQ&@I8m#zlN4nxc+?9u5-+edP58k7c^^-F-y+21w@ImdsO;H z2+FFJ86hxh?Iz2+`*2r*l;hN@$O#Hl@UhyZbdT9b|4LrRDw-$O`Jrz0KFu zFnA1hVqn8x=C!VVtm~nZ)&-n1=&~AsETBrb__f_(chG@KAD~NorG214iC8l6&~{Pz z^dG`txez3*4>~xu{-0lZh$N~y@^bNqT+G-5TrIp&w!c0jT_eUMMFKhaNsBcOjaa%v zeIh;1z0FpTIGTUQ6kux(&*DB2ehTa*v}QDi$sxbVw?DxEP}21GF1v5TiA|geF`z51 zC=D!LNtx*rrD?`QPLDOe%-Jv^$Cfvq5VhoGmvie+)pM|@aHo~1TP`K)Il;>#g$I-` z2LPgu*(He9{2fjA{a)Inhx8riwS#)|ezqOdoCmz3Z+mWJBc((+-$_kKaN>!IV0-it zFDqE8I_+99@`K`M2XtMg%T?(>w?zPZ?~4?*cp0`U$=5s$HX-C(6u5Pu|563`+S`|; z7mm%r+SQ>B9Nwok_g+@y;zim~7+IoLZ)3l=;-NHAgSeh6Z@-0RZMbRGx}yiKd#Xgl zOYFN978!C|m$$;wHWJ)zgcuIzvg-BjGjq`peP)UOff{UVPjGu~e`Oo3QupSH;Na>D z=wd2BKeUNE66Fn_CDt@{Q4-)sg~6iidQutI@IjLT&G}}lKwRW6mj+bZe6B&mz7U%i za_IF=gK6evafB$UU@>5G7gV@43_1)Y;X5hgbal3axb3HC@ZJPk(qZFzH8T}>%9R`% z2$mNo&Hz)C(-&q(14Vfnqu5lG0=O}3#nzAUqb*3y!&^oBVdiGJjvVQkc+Dcc zv6mm3fRJ*E0Cy(TdReYeVdPAAT`d5_rF?~^p zr{qWETLQI#K_hexngeVZ>ImIIO?u2NU zyD6Co;yQaU?eLZ2k@2ywhYJRMV2F_o^UUXKu50WExPWv)&!+bl1lb0Sph1`JzU=~Y zjfMrgLX5%~fQ-}7W)UrR=mtevWM%pxhvgFF{~qS`Vudd~vQ!;%dYZQ{3q~T{OfU}d zSU5oTGC~IR1g0U|NzJ%)%Tr1u&3&>s%?nu-X^`w-uZvVN_$F+;HbgOdSvGEw@T(Jt zG}h|j=%tMu7FOYt9ILf)V1$aeG2Ko?;Jv~ZQMzY>sBjKdi{JEr;hYwi{XNO@dq%@< zWxO{&xR;;KZ_s@SThS`$OV<1rMU&y-XA4q-m!GSfX|ua%SAQMpjzE)DDW*2B zkhq2Qqep%PjpxCRLhvnB2|G=7ja}V8ehu1=3b7v@E0?VNvQ~z{iV-gzT1wXS4Q4#4 zoS!}!duk}ahcQl^%B4hW z@3@Y6kC%*Z~MWNHOBm&|g;^Vl- zQ?KVA@8)9UWecz%ZJ)qu>&4*(;X?3_`4<73CgtYLqI&pJ+Grt_V8$nD9G6V_q3`8x zzUlgbG)8xQyFsWy70bT(%ABakP+@lw$>}Lvisjc2{VdaB^*g?OAW*Q44|CYpF_bBOU!hZj1vBY9ZTj^h2v2Neri zcZksrMDse9;hY~(3UB0vb|+c!#FWn$bLDU?*W_*?AcwDf876w~n6x7Op9aYl+n5Sf88 za{QeToJ-5Ac0`gHU|O`wuI%ca&AFTe3_=vsq%xt=r$~b>wDXBRy^b>;0c0vABqHcU z%YzjM>Z=t#rrU9Q12?(Joxq$AonwV%P@YauKWFZf`>{JaO2A#lhw!k2R4C6Y*kLND zK(L7kv;&5EET2rj4{;_%(Iuta*mlGb%;?kwIgaQbb-BqkCsII>A}OI}nAU z_D+Tpp+h*gccTr{Js$T9+LW{pYr81BLiIrgnJC;F`6R+)hLHAcIfRw%nYx3Cx?%`! zlbuB%!Igtj#H{ixCxtALt~yts)Osv8XWZCsr6adnTT$DL*A)2Ltj{|>ta@Dgc}mN( zG01cZj(O5W5dK`>Nrt^^WufL5ENioh@nV}@Y%A#!H(CR4W7%o!G(3tP3#aG}$G#`D z*Xm86OxuSv%r1w9Jya&rl$Ue8myDVHZ(OU~vo8A|*-V zRJ3%PGeM!eMHaU=*F?hzFKH8W$8c&IZ(%M3_e6D-!0R9Y`9O$_J6SegWZ zGLb(zN&EB^b`Ls#{AT-o5laZiQq7n3%31^N{P2bi#Pod>y-xOl)xq`0Imd$Vr@1TM zKhm$m?1u~ENt4Ke={~`aJmH~93mxKKDNleywZ4H)>7-dTGHEUom-C!X3Fkv;GCiv` zb4XmGSLdeMalipP>t3GJZ7)q0qQqAk{t{;&1W&pj|9(Z#ja%()IgF68--NVFs$N@0 z4GAvBrvr6K(gZ_!ld)?=fRD+;l{fSlI@vQhbORvXpHRv5`f8BA^bQD)c|V4e-uuyL zHDDnEA=)po1ozf$h*x*FlF@T1bR@eZqD~wT>2dh*RZ_Xk`8I}<8)SAu^VbeaP?C7P zc>7kxb&W+_9nsUCDrF=W0{{h z`WZY;3w`!=1g z0xk*0Z0D3dp?j+lb5Ru!NI|K}|F6#qllE;Lc&onx$y0^vl|YDuX*{6+X?u&$+Q&Y%k*t$dA5t4^JQ^1X(~t|6(J_#C4^HOVS3oTfp=9CE`W zehtOh3!|r$HV^o!!jJ8NGAEb2XQ@RqACQ#w4(mH%Bk8@FOFtStrt4&w47~7qOFZ0e-&^ZpO6vt1qaIVYC(ad z%@>&1oT&#=m1nA7=a|6d768XOfJ(xU<+{Q^JrCA1kff22KI-w@6448!@$UNlD15=Y z`7j7E`F=46JbU@V#0TRW2&0!fx4)ma1qgPrWYU~irXBtJn~8R@ke-n{E$90M^+1^C zIlMUAXydi6pRg6g?2HxU>xJqX7gp6rN4=Witw>YJc{qI?SXpNTzTo{lCoZ2Q6~B{ngT1U{KrYntRcX=__})kAa*VD$#is5b@odSLpWgWuQn?RYnOf zO9#%F(z*xS%^yxP2gzo~+atS%A_N4RM5a&>6OXxywR9X6MY-yfUy04E=8<}vheFt} zMMt8eEx9?Yf4s>}Dlvk^=ofZ77V3b*J9(Sxz6YR2BO`}H6<}+76shx$+Ja_hl#XccnM#3?;THkr zv3P&SF?R5 zPR$BC?khI-Q5aBH>q-y>2_8(0=glO_H$zhnrY?Rwg(fsa*!Mw_D#5TAJA!pjFC5FbWbM#$3k2@cr$S&2OZ+(Dg7U4J00ZkVe3e8b^(h&CXi zXSGR}cmxr{VJh`WK3$}WF_LrW`zpD}SvhK6gvxx6yYT{t*l|{Dz;U|faLh8xR_+tn z5<=OT=#5`K;UvbA1JXFTFGPmZWomNSq#=~|&R=blZ~=d3B9gN|Zo5j$y~oxmx_o0_ zo#h&2LsMR~o1JZs3{W99?Katj#%D_!TwQv~EIfIw|3HseeVPNf7q>;Sk#<7o5%8O* zTB`Bgx#V$^e7E3VLIyU5`{6grk+z1&ufWrvpGxgZlSFwYF-FW_37Ri-f~5}{sAkNi z>Ri5u68chl$FxbKOzy6#VpijstpDg$#FcM@^fnZX3@HfkexqIp2>~y>z-nZwvlj_W$DkqkbmeBcH(+v0wfSf zDdy|p#pHXvoSX`?6g9K`2bK+P;k6Id8u7b}Ee1`@vTx$#-3BXxj=XCl$ze!(Q}fH^zhD|NPY{M^_w6>1gX^eWI%zp@5F#iA?I%&*mY5`}&xfOJx zgCm=KUd`_WE?&Rra`Q=VAG_1%<-|;v&_&9ZN_nL|@pC8|k(E^`(T;h8pI0YMq$g3b z@yHwMEtl;vJe82+F(Gg!aTypr#7>Z>C0jcf*>*Bz+7bnT7c~%wcQ(hxpUE_>z5`g@ z@_*9`+Bi`~Dhe$D!gdB{0zp{QIot_(!sr!^%^uhQFBlXsCiFah!`Im?6jW$oM-F=_ zx6qd}Oh{`jzW|XjaYzgkMYSja5VEfD3VtseX2L-agqsfqzne}K00PE*%wLTyCl|is z<5n z5DnM>NA*oa9aSmSf~ejgs!zQ!q=V4es6#7&`}KC^PmenNOQ)T!sIQ!44e9+NH$338 z881$&Pi52_qbR1y*SA93y7|+(hpDl3?;u z7rS~@_T*5icw$oF#aWrJO^G6KN=FlJfwu>d)y8ZUzlJRmV(IsIoEzB9m6ZJP_j3Nf zM+@4U$5#{sND@ny<2#Rn=trVyBcZFXbeBo7??~1GN=%{N2XpK1BjN%pC}kKT^s4E; zd^3#v`VOhA*J=pIZ|RlM8Xkm--HD@8MusTZq%k0~)d!T~^|JC){L**G>h$t5_8NIz z`m|49aw)&uTO`{7sdJ)T2^ouv?Wn`#ODDTc4%>!{jX9K z_5pvO_?Z0c+|v-!8CzdCK>AQPR5^&kNzntT(^EhPYuB2AaDgpZEB@Z_Z^KrwhCW*k z?l9&%3{j1d7d*9BlqmI?+L9szO>Jrzs93lHIOi*IYNC+{BGuSE4qmlPX6& z#&0<(B+Lv1tRX>7>l*y*^{ThCk?#71;%gdj$p7n)w&AOLB$d9xyX`)Ov6?i6mzg7pLxfbhSbTdG$z9{cG-pd+`hP(v(|ZHM$M`|40~ za(Ew-6vMRvsZxpMpocGO;bcRn@drapiSNF5x+$rNp2A_u7p4s~j zZU9|CqQ70#h=y|kQ}ykxC$A1479Qk*2I{h+)R!Orb%}&J9v_6p80tFUIU(C`Kz+v! zOzc0XBg*iTLpjYey9o><&}9qZc!G83oKvQ#9aNWDz@6tXpOkyoL3X3NWyo!0!i3l5+K5C(HX zw;WTofDcswP?5xQ>9CD5A6W56PoYIbmjnWo!j9Tve`fQFOT%0L zayFd?4ETyCO2oLESw%jMTGkXBlj|%V|5`qXb(cL}Ff&xb{^RN;0<)FIY`U(WKW>!2 zni4@GT*1xJ(U86mb@W9sz-2J_hP;lFOvh%_%9j+)fWXDpG7p)AH^v|hyfBbz`nk4s zn=`Rr(*+Ir2>|RvGgzvsMpjacwi{k%b}WMolL73Rz`a`?#;xA~$nV)6ld`(8Y@D*a z6_E-RXkba5LEid=^i>yjHI*9a_bm-W5mRMLJS+hm;~qL%LtD%7{m-^G?9A#Iy$!CZ z>y~sZ7RR;ERNNOSFc_91x6cy=SP1DnOmq_tPjIOV;7mJDD-G*J41kewo13B z*XBund2dy#i+AFLcB_?)N=o6VHM5JCsU(x;6&P^MhZuepm zk0sdQuIv(eSoxs1up=vBUS$um!(?3oy4H*Sb#GdL)N+eGbHzmW$7n|lG$j5!e)biL zwh4WLR7BCU;Fg;{3t3sl>-}zj*W+M;GqFE#vwpiH4(=_RLPj_hyo*8NA93Bt49M;F z-0qL^=Z36nNI|eYy+q!^4K627Y^x7_)pMnc4Z^{gBL=;)8ol@JecGGCIpkFEET$g1 z(als=@N@qNNf4-FuYvY`$ehu3g|a_7^$Ze1Q`0yUJ`|ANN~9DCo+=W|(%ZaN$ERDq zLaC6lP7hT^BL zY-^HZ1Rl?Mbosu~ww25_&3F_%AZ!Ft?uUD2BO&JWEgT5VJKYFxD8*+@bTh9Hoh+oK z_~;7IO*FW5@*4>kK>(@t+BUV0<6efI?GUo!gp>d*~ z`y_VL(R@HnAM2P#(Qmf7`tJ87gjm;;nK?XEVW5i?)}49(6Me^vMGK0Ps~$}ma+bHY zie5<>o-mLq0O!`tkTiUsBzZv&kUd<;La$>KlWy+(`Tg}2Ysj{lhx~Tg&)aSJCv#{NfcP)N8oo&%`Nfgp|ZbX&kZ?q zhS4m>0KvVl(IR$Lcs&&~dD~5ed7ehYdL7IVDJ=c0&3YI{$Nc(_Yan}SG?ps?MfJxM zL+gyotMY0s;eM+lUh}{^)Xio=h4nq!V6on)PJ`)|?SQrXD{v`I8%||9g0%N{%&;5N z&0o$t#dWPMMsd`)BCF&;xD9iRoI*>4P$+uupooDuGeBLL=y6+_F6(tEQ9T5kR7^3+ z%9vh~aT1HGiXJqOL(A0j^KIpijW)3m4a&Nda!$CCou%#ZUQ{Z(_RVP)KIX_I@Lvlb z#auF@ShRmRpYTgn0>r@Ym!idaN7*v9NopawDI1U*2kFq*zo%d~rT%TtBk5s;a`&q& zy`;JF!gK3RtBFr->M=to;%2Iv7cA)@B7an)HUD&uO^vM~JvYeb*(EO*UpjYouWZbV zd#Hl~QgSo0y679hm$(52a6P8dbqyI}?QM?AxMFg!BYGB_CXoJurg@GDSG9(KUW-$& zm`%VloPr3xGyyNpKXE2@Qr}w1oK)wa ziJ$E|bC(^)-(UVL9o&^e8b9!j){tdTJQg8o<{ylc(kqCXfwR5;Zan~FY!Ir^HpA@Z zY}`ki5QGKNY0#_=bqrEH$Fwz1Z3)(_$D$Xh@1Q=Z>j%;@MVkb$8RBV=3UNXY37aGZ~;I0Rrx<|5E0k?YRzYpG3x zpgiI%ia9hEz$NW~@ymo`B7s2Ml+%9)Wf2y)KH<^GE$mf%W5V(9TD&;pBt@`2?^6ox z4`&a+Q|$Wa^)Q-G2?)Sc_J=w8UPsShYq6IPepW6i@1yP|TX*mmpIw#~U^ZB_3;YZD zOhiZC? zC%H>XMyy0Z3j6~>frM!FO&>p#HVnjW9E;SZvs*xn~7{5@EGz5wh=ZxeL ztrUMtADxFrnPZPe-B~22)yI$ZOXTV=0%Xg;Uvhhi%Otc$nCB36L@d?HXs9P1-(SsE zgl2JT6Z2Ger*aJ3LH0Q10C-_CY-ZNxexTUkFF4%D9=!~R*>3p}nkjgkr&#Q5FpjxZ zl)H>;$bZ_J&PQ%bGMSC1w)qkApS&F?Z+9Zj(H4qZg=fX%!Z6ifKlW7`lFA3oR#io= zUnC3%3Kkd%{j@*AR{hz=69Hts)FR3lMxgZ!S1ifP79aTFpY1t3Cv&LX|I4ZIK9*jP z7^30y8vp*1!j2f!^>=M)e_yug)y5$73VO^L8X~K{w?zf$CBp@;+!VdU*T^%iYwvji zxv~LMA(!l7X{&GL5_x_GfSl>U<10~e%QIMpF07Za5Qopi*IAgDgvIzib!%@-&c#$9 z9<;M`NxzQ6F?qY6@_FK1>A{To-PN?AA~sT=NKL1|J)j zn8)0ruPZVHN?SGXsX1ZlzV!7tOAMEMrj<}%Q&i6?DjP9f?pMzGPw(^N9%Hi_IX26vneF`*=(FE@rXUQW7J*-Tv$ zug+|YdQBDq9(7F+(Gx+_|9+bepCW!rSJ69^BW;Ycn3IB_V2)^5?`fu>}q>?6^+s$yGhgZGH61*{5mF1ZU>Z|hEBpa-j%mkVFzy=ZpZIs zeZ5FAWetV7cafR2HV?}5r}P!pPO|i!ThysPseNL-z2*h#DQ$@;*>7eruIfWew+RNe zKtTSaKIJo>G7-3gQ&=HSX?9AW9A4s1R=@>vjEimB}g| zzZufGygdUhAjjp1_^HrgNyC#=O=eWp;s1B&XS|CsL!2=Am@3JFl~~tg+=`j*jhB^?X%@=U> z+(YXLWA}neAR*9>D8|)Ay@(2(6>=OZ#C-@Hc-1wo2^Xpv*)>Kc!rO$-_+EcQn!HFO zE`oduEKT=HEyN|xd9$^o4Pk3ue{nhSKu?)HNxS)*_H&iM+!qh0=pSMS4oZWu1GEm-P)Yz14Ye5f^R65@yY`O z8StZXH2nHvSINjq(557#S`2(kk|=OKyAugstdV~W+qeY)O56mb4XUD6G$O_T$>4yw zz$=-WpSx6RMLJp#|4|cr>f%y6o}qs9lFB#*`rtBu5T$J9HlObGIy%!&-m zK*&zvx?i+5e4tpx|Ekqe%OA?Axa6cT%%YALJdH^b)+AX5D*^jZRBkev=Hf>jQ__6i z2UumCobM$)V)G8F-CQ%~_q3=L67hJAOPB0Csl!sHV(uO?1Y4iiai9_1TVC`xgdK1A zb@qK>M0@v38f?zUC$qC!`^#yM(EJ~WfPZCeHLV7J%-;!@2n_~?Pd)D->}2_Ff? zd>LyHRmB6|6mCamlT-$8Fase*X!@W$!uufyE|7l?$T(1AK6h!BBiZ)O9*CP6JR;`>@Fp&#V}^xlXJ6Bi0sS1_trnY@gG|aO)EdB^ z7}aA`)egkg^C%ZUXB_TCxvI0awPfD z;Edt9>UegUI4rjOyBLH}405$_I5pGVsiVelmP~$aUER0A?uHSzk212o?^#K$ee}LS zY?Z7G_I#t}HqCB8Xf&QLJ=g5pOyiX!EqNA;edYA{vSpOn0A9@Gf%DE}^jJ8umuH;d z{KZ`+E2r|iVAhE=$ef<9&5B8foWajiH3Gc+59oPVbsFy-=Z87YuRMXs$=H_a%U>{J z;gzsQD#iPP@~E<#nBj|w|Lj$oPMP8W*F~VB;|}lnc{L5-)reUg8{I_%9pNob9rT|q zpM8217sTEiKxG54-B67Stbc$ig6H!nfedXQ*xMd&D871n@>x3)@FkL|tdVfKx__0B zU;qFVd_kKnN#PGBQvy5x?1G{<0s!Fl8(Oinm30v+BZt!6uhC8;j!FsF08Ekqw+xRG z8G+ZN4HQ3qPrGEds`{qA4Ut!>ZZ83)0Jkm}#vmToDpp&$A6*2K&Bj3Hb#ldiv0GKE;qHVHZSoY*H5XjkQxc zK-cBe!i1y(9~;#4GPsQvU$CVrrZ~IzVPJ%MwW??W;Sui8 z6C0SCLv2<`n6WqJ1&3vKG*6M5vxKpBfcPn@i=4*i;>uq-5rCqGw+#Pz4LO_ud4^ti3-F73ccu zjsDwuSBSmbwgtYRM*5t2FTm*un7Y$Llgv3OcFFxgr*D*Se!huP2J5%yce|58v~i;p z1Q8$s&ZdTYAR2{U2cxSksYRJLrys9_cGMKtXn3ykPZ4j7#is-vr?c-uK!>5OTgD0$ z^#VANOCins&>gr+A$D=Cw7zq8YC+;)PS`D0p^e^Bd2PRLCI52cc>2%62!Ii;z>QkM z^7Z+ogoJB`mLJLK>^%08N5$$)73I;S_HSVwZ2`U^gX9m3oP0BaBzrNb3-OLZHs8HqC#Ie|)(r^)f-`x(H2o&T2I3Fo4 z+BC3xW<&p>c^2EKW!8b+taDgI-KSabuWfZV9-zQ`u+fAhh;N;B9z}R_<=&rhB{ky= zDDa8Ynb86EOe8&^4S>l02%s}ziS-xj-A$S2F$RuacmwzgS zbi(csmyH5R+bl!8U@M*(JKpeQm1!=#)x{tr@KJ)xc*#QbuyFupwMQ{(d~#Q$IvK=L z*!dj>%HWybhg*yX87(q`NG;wEqG}Sj`2|eWYsF)^e?W?^R!)x$P<-i^zMK`! zO;d#~Q_nZr&2N+NJmCs)PB!*W-OsfQb~pc9g(X(%J6GDtlD_bB_w~3GtY*N^dvZ~3 z_>Oh;i3~|Cu`r=Fdg&h2z{QD?f711Bq(UAM^*F-kG|DXM%xeqqxxb@9rNCQL5bvjv z^L)F5WnKD!dh;q9OQ|^_ZfCzc8gAcqz!9=pIj(%m~b!B^Ar|!gQgN8|?W{ zuQ>2YCspT`z>6sc(7#xiC}Y39`ROEwLDDHcZl!6min1*n_hb4b1|=7)#=#dVTNS1r zlZeqR!T!5dCdX_{>FK?PZUHb_V;?}7&|Q;6O5l%)H}1Zet6BsEn;UWbWV-v#WTU~9 zlfBRt!?t!<-TJBV=p+hFr$1Q6yVVfxUIH}vK64c&;g=$t5Dv1BZkFV#D6^) z;4lGM4Gp}Gxe$^q!C&Kx(Zt%8DZI_^s^WY64Q}1rRu+p!-8t)Pf4`8>Qdyk+Cw^e1 z5-&~hp`K?>d*2pw^aMCwgnatBmG2aA=Y?`|Bh`QWLoaKXhBjCjl%i4&`N~vO9pznn z1emf+6m5T<&4vKQD^V7-COB;&1Ao`Kz(t^3C`{76*%vpga_-HUa#-s?MM>#@ zRRMBrP%dia)y9;VI6d%+^sSmW+TIAbrZ6zmWMbKKp0+K)l!>uq2On@)e7~p$riowI zQGYq0S1UDd#MkLaR-)bAw3cD$~?II2^ z&n*ExL?ouvPtY;etAR4)Oiu~GQ4PBJer9?#r*uSb!x^kC8{;ci`F}6(&+Wg$*G}$L z*fV|hvV&<70e1NEx>es&1zRob&rY><8KY-JxvYWw@%IKH)^{JhbboI9;ZRR|#026~U^5QxyQMpn}% ze3TW!bZRhm+jqh0q>Ro4d!q2U&Ku#KCn?mn;cXaPcVl&li&{gsT%*x-NJIhYO4)en z5br2?E5N5PeIQmI!u!_X^24!2Zv3*Y@puy3lt@3DL9h5J$(_` z^<}hGN%hI{G*UVUc>PYwAsIjACjM$K2A#jD%*pkIi6E5w+Su*gM0LtMKKnl2E0lm2 zRL#y~KHo901E4SHLe>&-DH6a<8F@U@@XW5a{tPYO0z!#07qbqLY5f$KJN06fN8*Ng zZOCvPn&YdUfm-N8hB}wY%e9!sR;zs5lYw!4#Ms7)8^&93{TiyEbHA)Nq~n8f4U$;< z#R`yrtzjP1O7>u!VnnDPYQP-=c`gr1GZ`I7^2aP>Q!$Gg{;>RXmL^*d0gk+>+ela>+epK~4B5>3_{ZtRq@ZUcyV zxhtaea-4;Ay={Otr5)n{;ryL7{G`#1Rv!XcOTY%3%8Rx)R1R7kY^(FaiMM?J*yyiR zV-`j$NA%{8)K}1AlhA7nt5(x^7(59~mRzpBQO`vPt!wieU&_BeUPX#)y7n-Y)R1KA z+<@hvR&t{mL~jNIFByeCQS4}O$Qj1j=17Nd2NI5*qnl&^&mJ0msZkF2-t&K_ob~*g zsXod!bGQc!D?cVRvd5xeXqEf?n=0IW7o&Zw{K8mO`~5Pd72`^O1#Mgi6Cub8p|D<9s2 zj$w!9;1;X<7;=+-Tp}$3G}YI=sUXh@PP#$3 zQwyM#g?v(?0$x{uQ@R51GA4>`k2Gp~AACq98!i8o?=i-ayF;q6e?M9RzJ6HDy!g+8 zI6;A0UnyJ$niCUL;u_*6aT(K_#P04{VdO&rqWv85ELTFsCA@lAtfki-^=zRu1@2{Y z@A&%9TFvq=FCC2LL=ow?XEa&;7bG8H#H^&6vNn_00%_$LSM7hR8Z~^Ms}i$csie{B zM)T%)Ymy0Mwe`5byJn#WdV`QnX>_l$GL@AI{W@a^g;z!G91bIcON}CXW*^Q6lFnH@ zryj=j7K<$*V6XT}8=Qdir$Q{-zF*b%*I z1^cApX;MM)1^)Fkv-{QmEMpzL;-JUNR99YTyFh>r&EG;wr8~>_41hTZvSGrenDGQXoB%-Mcqvc^hvgM+{w7xxyQzR;m zYn?Fp5BwbjOCuSa0XB5j6nFO`RFY%9plUp4nBxMAX%OHh4h^wfBRE7B;-y}R%$Upn zXop9ESZMCWTt*XjupCXGKscz|Lw^|1g&oHg8;L5fQ@!Vd7+UG~%uR>+=y-L$1apl# z<@C&tSwxNm9eGnWsIZ5TF4L*CwS2&@Q%-}bqU#dSPLKBJ3aRBF$sf-!;nq=f#3EC; zc3sLqJZ>0i6~@4G{D0i8-8~7L?!E;V!r_Zt;G$pAJz)?v-jl2@Tc;^J#znVumC2|j z8=s8O#F~zGHhs_B0d+lV1W|eG7IX@otdwV352k}Cd;`xynr8Of*6R4(Urpy8f<&&OKjspzTN#U42^v+#?nw!Fd|E>*xaf4g7R9JD>0J>ltS!I9f5ygd(3fn^R6_!R1gTlNq;TT_C6s(x{`WezO=x zWudZO>m9baL4c%F|9Te4KiNGb7Mf6s+yYiC(Ue>&Xy*>*_z>w1`%sKz|1mDNrT5O) zwChxTDXM#YHQLZ&NO+-lEtFGp^N6AbCd1h4lJaVf&`GJ0yR|V9aK`e#uY&7%dbnZK z>e}N|vT!Bfy2X8LY^1f|!NDDLkU4~s3VJ;(KZBTRBRG6|8<@3~>$8QdK@qptTpxGg zebf!`)%~_rFaBh zn~WpmU%$48IR5pg!n^r44x=lbb>yfl~V#`gIjDuXR*%!&H4hf?bFZ z?mVe&KIMRon9V=AC)Azs;Dn0?di2&%CNF_=+i3-3aP|P=g2-p53usx1Ww$E#Qq0x& zld5KDA+ND~Uqx2)MJ^;Sh=2~kN_iYKMPR(>&p)rvU55%t>dL8g{)^O zb;G^bYEhw`AHme=B-XDxMQlZtN1j9rA|A%2m@#!=I=sOC$N^5K+ehK4goDdJ|0t0F zC}oy_PIBBtBCILDXiwkaPO3ziJ^_F@w+=4i2}<^GN0!PB=qPhG*l3}l9_1C5zu5b5q$|I#R-&mUm z=5LA%t28xAFjK?g&XSRL#hVdmWq=3Wr6}<`jHK};h3zqbfo4KNG4pA9)gDR2y$d8G zfPXfbwU#C~Yj0ix>S+|jEUf+alpNoW+0Vi{WBY z9IoQb5FS~$Ogvo4m>-Y%Y-32(yRVn?pb-|ogF6KVP1y5LLYTfH0ncsgR0zH{dVY|% zav1mBgGx>lABiLh^R38uW>p*4U)*?4ez#5zbSi2KnMeTE4`pD=^&*40{PZS6C}fo- zhCf^&qA@oWfm;|#%O7uN?Q8l%zJz3+5{aw(fS{Bm7T9)8@ia?p$04gSNlGn*!+i(7 zQAKP~Cc1sSStbob{WXS|1otB;5n^U76nsVKAq)jx2l);Zi92QLD%Te7KdN@0i2wi_ zgh886N#PGBQw0$`DgX0XS+``>h6C#7!6Q2!wcVThkWN0=QS%zYObYQ<=T~^Y^9P2E zPm?k1t$>~Va`d2#fYn~{YXCRW9w^x%8_I63y}lxi%Lb%QrVU6;?$gJP7mJAj5+(3NF$Ifdz zS(4e~OLbv4djb3lYnP`Ppm~RJ(y0ogyf3`llJ{Ew;#dYG8a+?+Ypo`_uVbP?;@CxX z;IWa{KoxPm0-->O!04SQEuwXZMdM)n+5D#UXY-ZtMh9`%3GlVP_ryA!Xypbxm%w;A z<0*j;8bIY$&;Xkpy}rtuhlw*;ywm%LaAy%2SnxDCbuFu1nbnVds=Y?X`Bdv(J@HS~ zra406ovLlVH>7@6OzrHZSR>iMI?8Lt&x}x~E_Xy>1(9h51XiGbvUrKx5Q0egb4QL0 zX|X+}_Z|amI^_u0wUNBynG&*x2x}o?fSK$RvC1C;S?5`C!%}}9<77GOo~xlxg0%Bt zXUEoRAZanu6B`LFba3f+0A-W6#nGthB^gWa#b1gymGfBkySy}(}RFJeD&Y~IJ!wiw0Q`-ys8F! zDsnzy#f>hi9mb+uRqZ3`HR^`o`=Q@7w`vc#DDewHqI*CsJ+G$D{Z(g9F#__lyx52Lu?be%FYDOLDh9o zaYhu$jZsQpzDif+?5e|jVfP0M=l6?GuAw0XZT!7(1F$kb>+}??cf=dmN`vtqkOvZk z5|eVijS`a-vsqG}C%mF;fe(Br|9>O~!Qde)*x~hoGz%v-JGmHJLqhtt&B0pF!rzpe z*S&5)reavADo@9(FVkcN$=bc=Bx_OfavT*iQvt->SOPhC>5Tk+*nCh#puglFux`S* zuofDa55N~FC!Jr)q_h>{vzV1HyIb~=8dPoM)ZAaR6Ckr2D(u==^i}kS)P;^g-#81f zWZ~_aVj>p+`$2|rxw7Bf(9IAgQ=&TpS85;taWi8D1#!;%)fL-;oAgZx?&7^F_y76= ze$QHX0a`wS-%k~^uixMQ0cJR20bR~X+i~ODvcnVVMW@;}Z`Oyt&xSXqc1&@2?fkVP z&b9GWJuVMH;kQBQ{R1g25KdF-YK7Y@Bk-=ft)!~gNt-mEU0ui^?$h);=8P9GAK&b<}0fS|mzqdTM&Tcyyw7o_CSh8|d7rTt(&mXrZwH(v6F=dQj7UJQBeIFG?;KSe8@w@l)ZM)g&FdN8S1+jCL^<`~5qAgW3lT&|s@# z5qFnGN+`&80AAo`GGLh%?~;fi^2hh}tRY1Cq#3c;yrcXSg*LG^aP1}F+?B6O9_Ac6 zqn@aiX2bI-a9L!!9PIKULIXZ877mmd>l^FkVv<&#Up!>V@{eKm)}AcI-T;drnh%g7 zpr(yNrQcK5l>r)$hx98n{L_FP_lqP310kVC|{kC3&

      o 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
        nc>)FB|0la;#HJR@pn_ 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�bH^C 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%0ALFhwG^n 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

        o`jg?j%5hboZJYSE^A?uUDEoy5xT}18 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�P(T5KbANUj5G-b9cS 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 c| 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

        &V*NL9p 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%0DmK21>SL; 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 VY)7r*xm{%+VxR6j<-CCF= digit_version('0.8.0'): + torchvision_ok = True +except (ImportError, ModuleNotFoundError): + torchvision_ok = False + + +def test_compose(): + with pytest.raises(TypeError): + # transform must be callable or a dict + Compose('LoadImage') + + target_keys = ['img', 'img_metas'] + + # test Compose given a data pipeline + img = np.random.randn(256, 256, 3) + results = dict(img=img, abandoned_key=None, img_name='test_image.png') + test_pipeline = [ + dict(type='Collect', keys=['img'], meta_keys=['img_name']), + dict(type='ImageToTensor', keys=['img']) + ] + compose = Compose(test_pipeline) + compose_results = compose(results) + assert assert_keys_equal(compose_results.keys(), target_keys) + assert assert_keys_equal(compose_results['img_metas'].data.keys(), + ['img_name']) + + # test Compose when forward data is None + results = None + image_to_tensor = ImageToTensor(keys=[]) + test_pipeline = [image_to_tensor] + compose = Compose(test_pipeline) + compose_results = compose(results) + assert compose_results is None + + assert repr(compose) == compose.__class__.__name__ + \ + f'(\n {image_to_tensor}\n)' + + +@pytest.mark.skipif( + not torchvision_ok, reason='torchvision >= 0.8.0 is required') +def test_compose_support_torchvision(): + target_keys = ['imgs', 'img_metas'] + + # test Compose given a data pipeline + imgs = [np.random.randn(256, 256, 3)] * 8 + results = dict( + imgs=imgs, + abandoned_key=None, + img_name='test_image.png', + clip_len=8, + num_clips=1) + test_pipeline = [ + dict(type='torchvision.Grayscale', num_output_channels=3), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs'], meta_keys=['img_name']), + dict(type='ToTensor', keys=['imgs']) + ] + compose = Compose(test_pipeline) + compose_results = compose(results) + assert assert_keys_equal(compose_results.keys(), target_keys) + assert assert_keys_equal(compose_results['img_metas'].data.keys(), + ['img_name']) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/__init__.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/__init__.py new file mode 100644 index 00000000..1a8f9408 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .base import BaseTestDataset + +__all__ = ['BaseTestDataset'] diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/base.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/base.py new file mode 100644 index 00000000..3b4604c5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/base.py @@ -0,0 +1,150 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +from mmcv import ConfigDict + + +class BaseTestDataset: + + @classmethod + def setup_class(cls): + # prefix path + cls.data_prefix = osp.normpath( + osp.join(osp.dirname(__file__), '../../data')) + cls.ann_file_prefix = osp.join(cls.data_prefix, 'annotations') + + # annotations path + cls.action_ann_file = osp.join(cls.ann_file_prefix, + 'action_test_anno.json') + cls.audio_feature_ann_file = osp.join(cls.ann_file_prefix, + 'audio_feature_test_list.txt') + cls.audio_ann_file = osp.join(cls.ann_file_prefix, + 'audio_test_list.txt') + cls.frame_ann_file_multi_label = osp.join( + cls.ann_file_prefix, 'rawframe_test_list_multi_label.txt') + cls.frame_ann_file_with_offset = osp.join( + cls.ann_file_prefix, 'rawframe_test_list_with_offset.txt') + cls.frame_ann_file = osp.join(cls.ann_file_prefix, + 'rawframe_test_list.txt') + cls.hvu_frame_ann_file = osp.join(cls.ann_file_prefix, + 'hvu_frame_test_anno.json') + cls.hvu_video_ann_file = osp.join(cls.ann_file_prefix, + 'hvu_video_test_anno.json') + cls.hvu_video_eval_ann_file = osp.join( + cls.ann_file_prefix, 'hvu_video_eval_test_anno.json') + cls.proposal_ann_file = osp.join(cls.ann_file_prefix, + 'proposal_test_list.txt') + cls.proposal_norm_ann_file = osp.join(cls.ann_file_prefix, + 'proposal_normalized_list.txt') + cls.rawvideo_test_anno_json = osp.join(cls.ann_file_prefix, + 'rawvideo_test_anno.json') + cls.rawvideo_test_anno_txt = osp.join(cls.ann_file_prefix, + 'rawvideo_test_anno.txt') + cls.video_ann_file = osp.join(cls.ann_file_prefix, + 'video_test_list.txt') + cls.video_ann_file_multi_label = osp.join( + cls.ann_file_prefix, 'video_test_list_multi_label.txt') + cls.pose_ann_file = osp.join(cls.ann_file_prefix, 'sample.pkl') + + # pipeline configuration + cls.action_pipeline = [] + cls.audio_feature_pipeline = [ + dict(type='LoadAudioFeature'), + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1), + dict(type='AudioFeatureSelector') + ] + cls.audio_pipeline = [ + dict(type='AudioDecodeInit'), + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1), + dict(type='AudioDecode') + ] + cls.frame_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1), + dict(type='RawFrameDecode', io_backend='disk') + ] + cls.proposal_pipeline = [ + dict( + type='SampleProposalFrames', + clip_len=1, + body_segments=5, + aug_segments=(2, 2), + aug_ratio=0.5), + dict(type='RawFrameDecode', io_backend='disk') + ] + cls.proposal_test_pipeline = [ + dict( + type='SampleProposalFrames', + clip_len=1, + body_segments=5, + aug_segments=(2, 2), + aug_ratio=0.5, + mode='test'), + dict(type='RawFrameDecode', io_backend='disk') + ] + cls.proposal_train_cfg = ConfigDict( + dict( + ssn=dict( + assigner=dict( + positive_iou_threshold=0.7, + background_iou_threshold=0.01, + incomplete_iou_threshold=0.5, + background_coverage_threshold=0.02, + incomplete_overlap_threshold=0.01), + sampler=dict( + num_per_video=8, + positive_ratio=1, + background_ratio=1, + incomplete_ratio=6, + add_gt_as_proposals=True), + loss_weight=dict( + comp_loss_weight=0.1, reg_loss_weight=0.1), + debug=False))) + cls.proposal_test_cfg = ConfigDict( + dict( + ssn=dict( + sampler=dict(test_interval=6, batch_size=16), + evaluater=dict( + top_k=2000, + nms=0.2, + softmax_before_filter=True, + cls_top_k=2)))) + cls.proposal_test_cfg_topall = ConfigDict( + dict( + ssn=dict( + sampler=dict(test_interval=6, batch_size=16), + evaluater=dict( + top_k=-1, + nms=0.2, + softmax_before_filter=True, + cls_top_k=2)))) + cls.rawvideo_pipeline = [] + cls.video_pipeline = [ + dict(type='OpenCVInit'), + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1), + dict(type='OpenCVDecode') + ] + + cls.hvu_categories = [ + 'action', 'attribute', 'concept', 'event', 'object', 'scene' + ] + cls.hvu_category_nums = [739, 117, 291, 69, 1679, 248] + cls.hvu_categories_for_eval = ['action', 'scene', 'object'] + cls.hvu_category_nums_for_eval = [3, 3, 3] + + cls.filename_tmpl = 'img_{:05d}.jpg' diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_activitynet_dataset.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_activitynet_dataset.py new file mode 100644 index 00000000..02ae3fdf --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_activitynet_dataset.py @@ -0,0 +1,176 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp +import tempfile + +import mmcv +import numpy as np +import pytest +from mmcv.utils import assert_dict_has_keys +from numpy.testing import assert_array_equal + +from mmaction.datasets import ActivityNetDataset +from .base import BaseTestDataset + + +class TestActivitynetDataset(BaseTestDataset): + + def test_activitynet_dataset(self): + activitynet_dataset = ActivityNetDataset(self.action_ann_file, + self.action_pipeline, + self.data_prefix) + activitynet_infos = activitynet_dataset.video_infos + assert activitynet_infos == [ + dict( + video_name='v_test1', + duration_second=1, + duration_frame=30, + annotations=[dict(segment=[0.3, 0.6], label='Rock climbing')], + feature_frame=30, + fps=30.0, + rfps=30), + dict( + video_name='v_test2', + duration_second=2, + duration_frame=48, + annotations=[dict(segment=[1.0, 2.0], label='Drinking beer')], + feature_frame=48, + fps=24.0, + rfps=24.0) + ] + + def test_activitynet_proposals2json(self): + activitynet_dataset = ActivityNetDataset(self.action_ann_file, + self.action_pipeline, + self.data_prefix) + results = [ + dict( + video_name='v_test1', + proposal_list=[dict(segment=[0.1, 0.9], score=0.1)]), + dict( + video_name='v_test2', + proposal_list=[dict(segment=[10.1, 20.9], score=0.9)]) + ] + result_dict = activitynet_dataset.proposals2json(results) + assert result_dict == dict( + test1=[{ + 'segment': [0.1, 0.9], + 'score': 0.1 + }], + test2=[{ + 'segment': [10.1, 20.9], + 'score': 0.9 + }]) + result_dict = activitynet_dataset.proposals2json(results, True) + assert result_dict == dict( + test1=[{ + 'segment': [0.1, 0.9], + 'score': 0.1 + }], + test2=[{ + 'segment': [10.1, 20.9], + 'score': 0.9 + }]) + + def test_activitynet_evaluate(self): + activitynet_dataset = ActivityNetDataset(self.action_ann_file, + self.action_pipeline, + self.data_prefix) + + with pytest.raises(TypeError): + # results must be a list + activitynet_dataset.evaluate('0.5') + + with pytest.raises(AssertionError): + # The length of results must be equal to the dataset len + activitynet_dataset.evaluate([0] * 5) + + with pytest.raises(KeyError): + # unsupported metric + activitynet_dataset.evaluate( + [0] * len(activitynet_dataset), metrics='iou') + + # evaluate AR@AN metric + results = [ + dict( + video_name='v_test1', + proposal_list=[dict(segment=[0.1, 0.9], score=0.1)]), + dict( + video_name='v_test2', + proposal_list=[dict(segment=[10.1, 20.9], score=0.9)]) + ] + eval_result = activitynet_dataset.evaluate(results, metrics=['AR@AN']) + assert set(eval_result) == set( + ['auc', 'AR@1', 'AR@5', 'AR@10', 'AR@100']) + + def test_activitynet_dump_results(self): + activitynet_dataset = ActivityNetDataset(self.action_ann_file, + self.action_pipeline, + self.data_prefix) + # test dumping json file + results = [ + dict( + video_name='v_test1', + proposal_list=[dict(segment=[0.1, 0.9], score=0.1)]), + dict( + video_name='v_test2', + proposal_list=[dict(segment=[10.1, 20.9], score=0.9)]) + ] + dump_results = { + 'version': 'VERSION 1.3', + 'results': { + 'test1': [{ + 'segment': [0.1, 0.9], + 'score': 0.1 + }], + 'test2': [{ + 'segment': [10.1, 20.9], + 'score': 0.9 + }] + }, + 'external_data': {} + } + + with tempfile.TemporaryDirectory() as tmpdir: + + tmp_filename = osp.join(tmpdir, 'result.json') + activitynet_dataset.dump_results(results, tmp_filename, 'json') + assert osp.isfile(tmp_filename) + with open(tmp_filename, 'r+') as f: + load_obj = mmcv.load(f, file_format='json') + assert load_obj == dump_results + + # test dumping csv file + results = [('test_video', np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, + 10]]))] + with tempfile.TemporaryDirectory() as tmpdir: + activitynet_dataset.dump_results(results, tmpdir, 'csv') + load_obj = np.loadtxt( + osp.join(tmpdir, 'test_video.csv'), + dtype=np.float32, + delimiter=',', + skiprows=1) + assert_array_equal( + load_obj, + np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]], + dtype=np.float32)) + + def test_action_pipeline(self): + target_keys = ['video_name', 'data_prefix'] + + # ActivityNet Dataset not in test mode + action_dataset = ActivityNetDataset( + self.action_ann_file, + self.action_pipeline, + self.data_prefix, + test_mode=False) + result = action_dataset[0] + assert assert_dict_has_keys(result, target_keys) + + # ActivityNet Dataset in test mode + action_dataset = ActivityNetDataset( + self.action_ann_file, + self.action_pipeline, + self.data_prefix, + test_mode=True) + result = action_dataset[0] + assert assert_dict_has_keys(result, target_keys) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_audio_dataset.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_audio_dataset.py new file mode 100644 index 00000000..bb701522 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_audio_dataset.py @@ -0,0 +1,78 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +import numpy as np +import pytest +from mmcv.utils import assert_dict_has_keys + +from mmaction.datasets import AudioDataset +from .base import BaseTestDataset + + +class TestAudioDataset(BaseTestDataset): + + def test_audio_dataset(self): + audio_dataset = AudioDataset( + self.audio_ann_file, + self.audio_pipeline, + data_prefix=self.data_prefix) + audio_infos = audio_dataset.video_infos + wav_path = osp.join(self.data_prefix, 'test.wav') + assert audio_infos == [ + dict(audio_path=wav_path, total_frames=100, label=127) + ] * 2 + + def test_audio_pipeline(self): + target_keys = [ + 'audio_path', 'label', 'start_index', 'modality', 'audios_shape', + 'length', 'sample_rate', 'total_frames' + ] + + # Audio dataset not in test mode + audio_dataset = AudioDataset( + self.audio_ann_file, + self.audio_pipeline, + data_prefix=self.data_prefix, + test_mode=False) + result = audio_dataset[0] + assert assert_dict_has_keys(result, target_keys) + + # Audio dataset in test mode + audio_dataset = AudioDataset( + self.audio_ann_file, + self.audio_pipeline, + data_prefix=self.data_prefix, + test_mode=True) + result = audio_dataset[0] + assert assert_dict_has_keys(result, target_keys) + + def test_audio_evaluate(self): + audio_dataset = AudioDataset( + self.audio_ann_file, + self.audio_pipeline, + data_prefix=self.data_prefix) + + with pytest.raises(TypeError): + # results must be a list + audio_dataset.evaluate('0.5') + + with pytest.raises(AssertionError): + # The length of results must be equal to the dataset len + audio_dataset.evaluate([0] * 5) + + with pytest.raises(TypeError): + # topk must be int or tuple of int + audio_dataset.evaluate( + [0] * len(audio_dataset), + metric_options=dict(top_k_accuracy=dict(topk=1.))) + + with pytest.raises(KeyError): + # unsupported metric + audio_dataset.evaluate([0] * len(audio_dataset), metrics='iou') + + # evaluate top_k_accuracy and mean_class_accuracy metric + results = [np.array([0.1, 0.5, 0.4])] * 2 + eval_result = audio_dataset.evaluate( + results, metrics=['top_k_accuracy', 'mean_class_accuracy']) + assert set(eval_result) == set( + ['top1_acc', 'top5_acc', 'mean_class_accuracy']) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_audio_feature_dataset.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_audio_feature_dataset.py new file mode 100644 index 00000000..ceb49461 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_audio_feature_dataset.py @@ -0,0 +1,78 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +import numpy as np +import pytest +from mmcv.utils import assert_dict_has_keys + +from mmaction.datasets import AudioFeatureDataset +from .base import BaseTestDataset + + +class TestAudioFeatureDataset(BaseTestDataset): + + def test_audio_feature_dataset(self): + audio_dataset = AudioFeatureDataset( + self.audio_feature_ann_file, + self.audio_feature_pipeline, + data_prefix=self.data_prefix) + audio_infos = audio_dataset.video_infos + feature_path = osp.join(self.data_prefix, 'test.npy') + assert audio_infos == [ + dict(audio_path=feature_path, total_frames=100, label=127) + ] * 2 + + def test_audio_feature_pipeline(self): + target_keys = [ + 'audio_path', 'label', 'start_index', 'modality', 'audios', + 'total_frames' + ] + + # Audio feature dataset not in test mode + audio_feature_dataset = AudioFeatureDataset( + self.audio_feature_ann_file, + self.audio_feature_pipeline, + data_prefix=self.data_prefix, + test_mode=False) + result = audio_feature_dataset[0] + assert assert_dict_has_keys(result, target_keys) + + # Audio dataset in test mode + audio_feature_dataset = AudioFeatureDataset( + self.audio_feature_ann_file, + self.audio_feature_pipeline, + data_prefix=self.data_prefix, + test_mode=True) + result = audio_feature_dataset[0] + assert assert_dict_has_keys(result, target_keys) + + def test_audio_feature_evaluate(self): + audio_dataset = AudioFeatureDataset( + self.audio_feature_ann_file, + self.audio_feature_pipeline, + data_prefix=self.data_prefix) + + with pytest.raises(TypeError): + # results must be a list + audio_dataset.evaluate('0.5') + + with pytest.raises(AssertionError): + # The length of results must be equal to the dataset len + audio_dataset.evaluate([0] * 5) + + with pytest.raises(TypeError): + # topk must be int or tuple of int + audio_dataset.evaluate( + [0] * len(audio_dataset), + metric_options=dict(top_k_accuracy=dict(topk=1.))) + + with pytest.raises(KeyError): + # unsupported metric + audio_dataset.evaluate([0] * len(audio_dataset), metrics='iou') + + # evaluate top_k_accuracy and mean_class_accuracy metric + results = [np.array([0.1, 0.5, 0.4])] * 2 + eval_result = audio_dataset.evaluate( + results, metrics=['top_k_accuracy', 'mean_class_accuracy']) + assert set(eval_result) == set( + ['top1_acc', 'top5_acc', 'mean_class_accuracy']) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_audio_visual_dataset.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_audio_visual_dataset.py new file mode 100644 index 00000000..34fedabb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_audio_visual_dataset.py @@ -0,0 +1,29 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +from mmaction.datasets import AudioVisualDataset +from .base import BaseTestDataset + + +class TestAudioVisualDataset(BaseTestDataset): + + def test_audio_visual_dataset(self): + test_dataset = AudioVisualDataset( + self.frame_ann_file, + self.frame_pipeline, + self.data_prefix, + video_prefix=self.data_prefix, + data_prefix=self.data_prefix) + video_infos = test_dataset.video_infos + frame_dir = osp.join(self.data_prefix, 'imgs') + audio_path = osp.join(self.data_prefix, 'imgs.npy') + filename = osp.join(self.data_prefix, 'imgs.mp4') + assert video_infos == [ + dict( + frame_dir=frame_dir, + audio_path=audio_path, + filename=filename, + total_frames=5, + label=127) + ] * 2 + assert test_dataset.start_index == 1 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_ava_dataset.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_ava_dataset.py new file mode 100644 index 00000000..0d054023 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_ava_dataset.py @@ -0,0 +1,221 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +import mmcv +import numpy as np +from mmcv.utils import assert_dict_has_keys +from numpy.testing import assert_array_almost_equal, assert_array_equal + +from mmaction.datasets import AVADataset + + +class TestAVADataset: + + @classmethod + def setup_class(cls): + cls.data_prefix = osp.normpath( + osp.join(osp.dirname(__file__), '../../data', 'ava_dataset')) + cls.label_file = osp.join(cls.data_prefix, 'action_list.txt') + cls.ann_file = osp.join(cls.data_prefix, 'ava_sample.csv') + cls.exclude_file = osp.join(cls.data_prefix, + 'ava_excluded_timestamps_sample.csv') + cls.proposal_file = osp.join(cls.data_prefix, + 'ava_proposals_sample.pkl') + cls.pipeline = [ + dict(dict(type='SampleAVAFrames', clip_len=32, frame_interval=2)) + ] + cls.proposal = mmcv.load(cls.proposal_file) + + def test_ava_dataset(self): + target_keys = [ + 'frame_dir', 'video_id', 'timestamp', 'img_key', 'shot_info', + 'fps', 'ann' + ] + ann_keys = ['gt_labels', 'gt_bboxes', 'entity_ids'] + pkl_keys = ['0f39OWEqJ24,0902', '0f39OWEqJ24,0903', '_-Z6wFjXtGQ,0902'] + + ava_dataset = AVADataset( + self.ann_file, + self.exclude_file, + self.pipeline, + data_prefix=self.data_prefix, + proposal_file=self.proposal_file) + ava_infos = ava_dataset.video_infos + assert assert_dict_has_keys(ava_dataset.proposals, pkl_keys) + + assert assert_dict_has_keys(ava_infos[0], target_keys) + assert assert_dict_has_keys(ava_infos[0]['ann'], ann_keys) + assert len(ava_infos) == 1 + assert ava_infos[0]['frame_dir'] == osp.join(self.data_prefix, + '0f39OWEqJ24') + assert ava_infos[0]['video_id'] == '0f39OWEqJ24' + assert ava_infos[0]['timestamp'] == 902 + assert ava_infos[0]['img_key'] == '0f39OWEqJ24,0902' + assert ava_infos[0]['shot_info'] == (0, 27000) + assert ava_infos[0]['fps'] == 30 + assert len(ava_infos[0]['ann']) == 3 + target_labels = np.array([12, 17, 79]) + labels = np.zeros([81]) + labels[target_labels] = 1. + target_labels = labels[None, ...] + assert_array_equal(ava_infos[0]['ann']['gt_labels'], target_labels) + assert_array_equal(ava_infos[0]['ann']['gt_bboxes'], + np.array([[0.031, 0.162, 0.67, 0.995]])) + assert_array_equal(ava_infos[0]['ann']['entity_ids'], np.array([0])) + + # custom classes + ava_dataset = AVADataset( + self.ann_file, + self.exclude_file, + self.pipeline, + label_file=self.label_file, + custom_classes=[17, 79], + num_classes=3, + data_prefix=self.data_prefix, + proposal_file=self.proposal_file) + ava_infos = ava_dataset.video_infos + target_labels = np.array([1, 2]) + labels = np.zeros([3]) + labels[target_labels] = 1. + target_labels = labels[None, ...] + assert_array_equal(ava_infos[0]['ann']['gt_labels'], target_labels) + assert_array_equal(ava_infos[0]['ann']['gt_bboxes'], + np.array([[0.031, 0.162, 0.67, 0.995]])) + assert_array_equal(ava_infos[0]['ann']['entity_ids'], np.array([0])) + + ava_dataset = AVADataset( + self.ann_file, + None, + self.pipeline, + data_prefix=self.data_prefix, + proposal_file=self.proposal_file) + ava_infos = ava_dataset.video_infos + assert len(ava_infos) == 3 + + ava_dataset = AVADataset( + self.ann_file, + None, + self.pipeline, + test_mode=True, + data_prefix=self.data_prefix, + proposal_file=self.proposal_file) + ava_infos = ava_dataset.video_infos + assert len(ava_infos) == 3 + + ava_dataset = AVADataset( + self.ann_file, + None, + self.pipeline, + test_mode=True, + data_prefix=self.data_prefix, + proposal_file=self.proposal_file) + + def test_ava_pipeline(self): + target_keys = [ + 'frame_dir', 'video_id', 'timestamp', 'img_key', 'shot_info', + 'fps', 'filename_tmpl', 'modality', 'start_index', + 'timestamp_start', 'timestamp_end', 'proposals', 'scores', + 'frame_inds', 'clip_len', 'frame_interval', 'gt_labels', + 'gt_bboxes', 'entity_ids' + ] + + ava_dataset = AVADataset( + self.ann_file, + self.exclude_file, + self.pipeline, + data_prefix=self.data_prefix, + proposal_file=self.proposal_file) + result = ava_dataset[0] + assert assert_dict_has_keys(result, target_keys) + + assert result['filename_tmpl'] == 'img_{:05}.jpg' + assert result['modality'] == 'RGB' + assert result['start_index'] == 0 + assert result['timestamp_start'] == 900 + assert result['timestamp_end'] == 1800 + assert_array_equal(result['proposals'], + np.array([[0.011, 0.157, 0.655, 0.983]])) + assert_array_equal(result['scores'], np.array([0.998163])) + + assert result['clip_len'] == 32 + assert result['frame_interval'] == 2 + assert len(result['frame_inds']) == 32 + + ava_dataset = AVADataset( + self.ann_file, + None, + self.pipeline, + test_mode=True, + data_prefix=self.data_prefix, + proposal_file=self.proposal_file) + # Try to get a sample + result = ava_dataset[0] + assert result['filename_tmpl'] == 'img_{:05}.jpg' + assert result['modality'] == 'RGB' + assert result['start_index'] == 0 + assert result['timestamp_start'] == 900 + assert result['timestamp_end'] == 1800 + + @staticmethod + def test_ava_evaluate(): + data_prefix = osp.normpath( + osp.join(osp.dirname(__file__), '../../data', 'eval_detection')) + ann_file = osp.join(data_prefix, 'gt.csv') + label_file = osp.join(data_prefix, 'action_list.txt') + + ava_dataset = AVADataset( + ann_file, None, [], label_file=label_file, num_classes=4) + fake_result = [[ + np.array([[0.362, 0.156, 0.969, 0.666, 0.106], + [0.442, 0.083, 0.721, 0.947, 0.162]]), + np.array([[0.288, 0.365, 0.766, 0.551, 0.706], + [0.178, 0.296, 0.707, 0.995, 0.223]]), + np.array([[0.417, 0.167, 0.843, 0.939, 0.015], + [0.35, 0.421, 0.57, 0.689, 0.427]]) + ], + [ + np.array([[0.256, 0.338, 0.726, 0.799, 0.563], + [0.071, 0.256, 0.64, 0.75, 0.297]]), + np.array([[0.326, 0.036, 0.513, 0.991, 0.405], + [0.351, 0.035, 0.729, 0.936, 0.945]]), + np.array([[0.051, 0.005, 0.975, 0.942, 0.424], + [0.347, 0.05, 0.97, 0.944, 0.396]]) + ], + [ + np.array([[0.39, 0.087, 0.833, 0.616, 0.447], + [0.461, 0.212, 0.627, 0.527, 0.036]]), + np.array([[0.022, 0.394, 0.93, 0.527, 0.109], + [0.208, 0.462, 0.874, 0.948, 0.954]]), + np.array([[0.206, 0.456, 0.564, 0.725, 0.685], + [0.106, 0.445, 0.782, 0.673, 0.367]]) + ]] + res = ava_dataset.evaluate(fake_result) + assert_array_almost_equal(res['mAP@0.5IOU'], 0.027777778) + + # custom classes + ava_dataset = AVADataset( + ann_file, + None, [], + label_file=label_file, + num_classes=3, + custom_classes=[1, 3]) + fake_result = [[ + np.array([[0.362, 0.156, 0.969, 0.666, 0.106], + [0.442, 0.083, 0.721, 0.947, 0.162]]), + np.array([[0.417, 0.167, 0.843, 0.939, 0.015], + [0.35, 0.421, 0.57, 0.689, 0.427]]) + ], + [ + np.array([[0.256, 0.338, 0.726, 0.799, 0.563], + [0.071, 0.256, 0.64, 0.75, 0.297]]), + np.array([[0.051, 0.005, 0.975, 0.942, 0.424], + [0.347, 0.05, 0.97, 0.944, 0.396]]) + ], + [ + np.array([[0.39, 0.087, 0.833, 0.616, 0.447], + [0.461, 0.212, 0.627, 0.527, 0.036]]), + np.array([[0.206, 0.456, 0.564, 0.725, 0.685], + [0.106, 0.445, 0.782, 0.673, 0.367]]) + ]] + res = ava_dataset.evaluate(fake_result) + assert_array_almost_equal(res['mAP@0.5IOU'], 0.04166667) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_concat_dataset.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_concat_dataset.py new file mode 100644 index 00000000..4c9b6ed7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_concat_dataset.py @@ -0,0 +1,34 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np + +from mmaction.datasets import ConcatDataset +from .base import BaseTestDataset + + +class TestConcatDataset(BaseTestDataset): + + def test_concat_dataset(self): + dataset_cfg = dict( + type='RawframeDataset', + ann_file=self.frame_ann_file, + pipeline=self.frame_pipeline, + data_prefix=self.data_prefix) + repeat_dataset_cfg = dict( + type='RepeatDataset', times=2, dataset=dataset_cfg) + + concat_dataset = ConcatDataset( + datasets=[dataset_cfg, repeat_dataset_cfg]) + + assert len(concat_dataset) == 6 + result_a = concat_dataset[0] + result_b = concat_dataset[4] + assert set(result_a) == set(result_b) + for key in result_a: + if isinstance(result_a[key], np.ndarray): + assert np.equal(result_a[key], result_b[key]).all() + elif isinstance(result_a[key], list): + assert all( + np.array_equal(a, b) + for (a, b) in zip(result_a[key], result_b[key])) + else: + assert result_a[key] == result_b[key] diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_hvu_dataset.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_hvu_dataset.py new file mode 100644 index 00000000..eb449778 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_hvu_dataset.py @@ -0,0 +1,82 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +import numpy as np +from numpy.testing import assert_array_almost_equal + +from mmaction.datasets import HVUDataset +from .base import BaseTestDataset + + +class TestHVUDataset(BaseTestDataset): + + def test_hvu_dataset(self): + hvu_frame_dataset = HVUDataset( + ann_file=self.hvu_frame_ann_file, + pipeline=self.frame_pipeline, + tag_categories=self.hvu_categories, + tag_category_nums=self.hvu_category_nums, + filename_tmpl=self.filename_tmpl, + data_prefix=self.data_prefix, + start_index=1) + hvu_frame_infos = hvu_frame_dataset.video_infos + frame_dir = osp.join(self.data_prefix, 'imgs') + assert hvu_frame_infos == [ + dict( + frame_dir=frame_dir, + total_frames=5, + label=dict( + concept=[250, 131, 42, 51, 57, 155, 122], + object=[1570, 508], + event=[16], + action=[180], + scene=[206]), + categories=self.hvu_categories, + category_nums=self.hvu_category_nums, + filename_tmpl=self.filename_tmpl, + start_index=1, + modality='RGB') + ] * 2 + + hvu_video_dataset = HVUDataset( + ann_file=self.hvu_video_ann_file, + pipeline=self.video_pipeline, + tag_categories=self.hvu_categories, + tag_category_nums=self.hvu_category_nums, + data_prefix=self.data_prefix) + hvu_video_infos = hvu_video_dataset.video_infos + filename = osp.join(self.data_prefix, 'tmp.mp4') + assert hvu_video_infos == [ + dict( + filename=filename, + label=dict( + concept=[250, 131, 42, 51, 57, 155, 122], + object=[1570, 508], + event=[16], + action=[180], + scene=[206]), + categories=self.hvu_categories, + category_nums=self.hvu_category_nums) + ] * 2 + + hvu_video_eval_dataset = HVUDataset( + ann_file=self.hvu_video_eval_ann_file, + pipeline=self.video_pipeline, + tag_categories=self.hvu_categories_for_eval, + tag_category_nums=self.hvu_category_nums_for_eval, + data_prefix=self.data_prefix) + + results = [ + np.array([ + -1.59812844, 0.24459082, 1.38486497, 0.28801252, 1.09813449, + -0.28696971, 0.0637848, 0.22877678, -1.82406999 + ]), + np.array([ + 0.87904563, 1.64264224, 0.46382051, 0.72865088, -2.13712525, + 1.28571358, 1.01320328, 0.59292737, -0.05502892 + ]) + ] + mAP = hvu_video_eval_dataset.evaluate(results) + assert_array_almost_equal(mAP['action_mAP'], 1.0) + assert_array_almost_equal(mAP['scene_mAP'], 0.5) + assert_array_almost_equal(mAP['object_mAP'], 0.75) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_pose_dataset.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_pose_dataset.py new file mode 100644 index 00000000..3449cc87 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_pose_dataset.py @@ -0,0 +1,62 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +import pytest + +from mmaction.datasets import PoseDataset +from .base import BaseTestDataset + + +class TestPoseDataset(BaseTestDataset): + + def test_pose_dataset(self): + ann_file = self.pose_ann_file + data_prefix = 'root' + dataset = PoseDataset( + ann_file=ann_file, + pipeline=[], + box_thr='0.5', + data_prefix=data_prefix) + assert len(dataset) == 100 + item = dataset[0] + assert item['filename'].startswith(data_prefix) + + dataset = PoseDataset( + ann_file=ann_file, + pipeline=[], + valid_ratio=0.2, + box_thr='0.9', + data_prefix=data_prefix) + assert len(dataset) == 84 + for item in dataset: + assert item['filename'].startswith(data_prefix) + assert np.all(item['box_score'][item['anno_inds']] >= 0.9) + assert item['valid@0.9'] / item['total_frames'] >= 0.2 + + dataset = PoseDataset( + ann_file=ann_file, + pipeline=[], + valid_ratio=0.3, + box_thr='0.7', + data_prefix=data_prefix) + assert len(dataset) == 87 + for item in dataset: + assert item['filename'].startswith(data_prefix) + assert np.all(item['box_score'][item['anno_inds']] >= 0.7) + assert item['valid@0.7'] / item['total_frames'] >= 0.3 + + class_prob = {i: 1 for i in range(400)} + dataset = PoseDataset( + ann_file=ann_file, + pipeline=[], + valid_ratio=0.3, + box_thr='0.7', + data_prefix=data_prefix, + class_prob=class_prob) + + with pytest.raises(AssertionError): + dataset = PoseDataset( + ann_file=ann_file, + pipeline=[], + valid_ratio=0.2, + box_thr='0.55', + data_prefix=data_prefix) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_rawframe_dataset.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_rawframe_dataset.py new file mode 100644 index 00000000..43fbeec1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_rawframe_dataset.py @@ -0,0 +1,165 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +import numpy as np +import pytest +from mmcv.utils import assert_dict_has_keys + +from mmaction.datasets import RawframeDataset +from .base import BaseTestDataset + + +class TestRawframDataset(BaseTestDataset): + + def test_rawframe_dataset(self): + rawframe_dataset = RawframeDataset(self.frame_ann_file, + self.frame_pipeline, + self.data_prefix) + rawframe_infos = rawframe_dataset.video_infos + frame_dir = osp.join(self.data_prefix, 'imgs') + assert rawframe_infos == [ + dict(frame_dir=frame_dir, total_frames=5, label=127) + ] * 2 + assert rawframe_dataset.start_index == 1 + + def test_rawframe_dataset_with_offset(self): + rawframe_dataset = RawframeDataset( + self.frame_ann_file_with_offset, + self.frame_pipeline, + self.data_prefix, + with_offset=True) + rawframe_infos = rawframe_dataset.video_infos + frame_dir = osp.join(self.data_prefix, 'imgs') + assert rawframe_infos == [ + dict(frame_dir=frame_dir, offset=2, total_frames=5, label=127) + ] * 2 + assert rawframe_dataset.start_index == 1 + + def test_rawframe_dataset_multi_label(self): + rawframe_dataset = RawframeDataset( + self.frame_ann_file_multi_label, + self.frame_pipeline, + self.data_prefix, + multi_class=True, + num_classes=100) + rawframe_infos = rawframe_dataset.video_infos + frame_dir = osp.join(self.data_prefix, 'imgs') + label0 = [1] + label1 = [3, 5] + labels = [label0, label1] + for info, label in zip(rawframe_infos, labels): + assert info['frame_dir'] == frame_dir + assert info['total_frames'] == 5 + assert set(info['label']) == set(label) + assert rawframe_dataset.start_index == 1 + + def test_dataset_realpath(self): + dataset = RawframeDataset(self.frame_ann_file, self.frame_pipeline, + '.') + assert dataset.data_prefix == osp.realpath('.') + dataset = RawframeDataset(self.frame_ann_file, self.frame_pipeline, + 's3://good') + assert dataset.data_prefix == 's3://good' + + dataset = RawframeDataset(self.frame_ann_file, self.frame_pipeline) + assert dataset.data_prefix is None + assert dataset.video_infos[0]['frame_dir'] == 'imgs' + + def test_rawframe_pipeline(self): + target_keys = [ + 'frame_dir', 'total_frames', 'label', 'filename_tmpl', + 'start_index', 'modality' + ] + + # RawframeDataset not in test mode + rawframe_dataset = RawframeDataset( + self.frame_ann_file, + self.frame_pipeline, + self.data_prefix, + test_mode=False) + result = rawframe_dataset[0] + assert assert_dict_has_keys(result, target_keys) + + # RawframeDataset in multi-class tasks + rawframe_dataset = RawframeDataset( + self.frame_ann_file, + self.frame_pipeline, + self.data_prefix, + multi_class=True, + num_classes=400, + test_mode=False) + result = rawframe_dataset[0] + assert assert_dict_has_keys(result, target_keys) + + # RawframeDataset with offset + rawframe_dataset = RawframeDataset( + self.frame_ann_file_with_offset, + self.frame_pipeline, + self.data_prefix, + with_offset=True, + num_classes=400, + test_mode=False) + result = rawframe_dataset[0] + assert assert_dict_has_keys(result, target_keys + ['offset']) + + # RawframeDataset in test mode + rawframe_dataset = RawframeDataset( + self.frame_ann_file, + self.frame_pipeline, + self.data_prefix, + test_mode=True) + result = rawframe_dataset[0] + assert assert_dict_has_keys(result, target_keys) + + # RawframeDataset in multi-class tasks in test mode + rawframe_dataset = RawframeDataset( + self.frame_ann_file, + self.frame_pipeline, + self.data_prefix, + multi_class=True, + num_classes=400, + test_mode=True) + result = rawframe_dataset[0] + assert assert_dict_has_keys(result, target_keys) + + # RawframeDataset with offset + rawframe_dataset = RawframeDataset( + self.frame_ann_file_with_offset, + self.frame_pipeline, + self.data_prefix, + with_offset=True, + num_classes=400, + test_mode=True) + result = rawframe_dataset[0] + assert assert_dict_has_keys(result, target_keys + ['offset']) + + def test_rawframe_evaluate(self): + rawframe_dataset = RawframeDataset(self.frame_ann_file, + self.frame_pipeline, + self.data_prefix) + + with pytest.raises(TypeError): + # results must be a list + rawframe_dataset.evaluate('0.5') + + with pytest.raises(AssertionError): + # The length of results must be equal to the dataset len + rawframe_dataset.evaluate([0] * 5) + + with pytest.raises(TypeError): + # topk must be int or tuple of int + rawframe_dataset.evaluate( + [0] * len(rawframe_dataset), + metric_options=dict(top_k_accuracy=dict(topk=1.))) + + with pytest.raises(KeyError): + # unsupported metric + rawframe_dataset.evaluate( + [0] * len(rawframe_dataset), metrics='iou') + + # evaluate top_k_accuracy and mean_class_accuracy metric + results = [np.array([0.1, 0.5, 0.4])] * 2 + eval_result = rawframe_dataset.evaluate( + results, metrics=['top_k_accuracy', 'mean_class_accuracy']) + assert set(eval_result) == set( + ['top1_acc', 'top5_acc', 'mean_class_accuracy']) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_rawvideo_dataset.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_rawvideo_dataset.py new file mode 100644 index 00000000..86fd4b0c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_rawvideo_dataset.py @@ -0,0 +1,30 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +from mmaction.datasets import RawVideoDataset +from .base import BaseTestDataset + + +class TestRawVideoDataset(BaseTestDataset): + + def test_rawvideo_dataset(self): + # Try to load txt file + rawvideo_dataset = RawVideoDataset( + ann_file=self.rawvideo_test_anno_txt, + pipeline=self.rawvideo_pipeline, + clipname_tmpl='part_{}.mp4', + sampling_strategy='positive', + data_prefix=self.data_prefix) + result = rawvideo_dataset[0] + clipname = osp.join(self.data_prefix, 'rawvideo_dataset', 'part_0.mp4') + assert result['filename'] == clipname + + # Try to load json file + rawvideo_dataset = RawVideoDataset( + ann_file=self.rawvideo_test_anno_json, + pipeline=self.rawvideo_pipeline, + clipname_tmpl='part_{}.mp4', + sampling_strategy='random', + data_prefix=self.data_prefix, + test_mode=True) + result = rawvideo_dataset[0] diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_repeat_dataset.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_repeat_dataset.py new file mode 100644 index 00000000..736fcc39 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_repeat_dataset.py @@ -0,0 +1,30 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np + +from mmaction.datasets import RepeatDataset +from .base import BaseTestDataset + + +class TestRepeatDataset(BaseTestDataset): + + def test_repeat_dataset(self): + dataset_cfg = dict( + type='RawframeDataset', + ann_file=self.frame_ann_file, + pipeline=self.frame_pipeline, + data_prefix=self.data_prefix) + + repeat_dataset = RepeatDataset(dataset_cfg, 5) + assert len(repeat_dataset) == 10 + result_a = repeat_dataset[0] + result_b = repeat_dataset[2] + assert set(result_a) == set(result_b) + for key in result_a: + if isinstance(result_a[key], np.ndarray): + assert np.equal(result_a[key], result_b[key]).all() + elif isinstance(result_a[key], list): + assert all( + np.array_equal(a, b) + for (a, b) in zip(result_a[key], result_b[key])) + else: + assert result_a[key] == result_b[key] diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_ssn_dataset.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_ssn_dataset.py new file mode 100644 index 00000000..3b71f3cd --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_ssn_dataset.py @@ -0,0 +1,176 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +import pytest +from mmcv.utils import assert_dict_has_keys + +from mmaction.datasets import SSNDataset +from .base import BaseTestDataset + + +class TestSSNDataset(BaseTestDataset): + + def test_proposal_pipeline(self): + target_keys = [ + 'frame_dir', 'video_id', 'total_frames', 'gts', 'proposals', + 'filename_tmpl', 'modality', 'out_proposals', 'reg_targets', + 'proposal_scale_factor', 'proposal_labels', 'proposal_type', + 'start_index' + ] + + # SSN Dataset not in test mode + proposal_dataset = SSNDataset( + self.proposal_ann_file, + self.proposal_pipeline, + self.proposal_train_cfg, + self.proposal_test_cfg, + data_prefix=self.data_prefix) + result = proposal_dataset[0] + assert assert_dict_has_keys(result, target_keys) + + # SSN Dataset with random sampling proposals + proposal_dataset = SSNDataset( + self.proposal_ann_file, + self.proposal_pipeline, + self.proposal_train_cfg, + self.proposal_test_cfg, + data_prefix=self.data_prefix, + video_centric=False) + result = proposal_dataset[0] + assert assert_dict_has_keys(result, target_keys) + + target_keys = [ + 'frame_dir', 'video_id', 'total_frames', 'gts', 'proposals', + 'filename_tmpl', 'modality', 'relative_proposal_list', + 'scale_factor_list', 'proposal_tick_list', 'reg_norm_consts', + 'start_index' + ] + + # SSN Dataset in test mode + proposal_dataset = SSNDataset( + self.proposal_ann_file, + self.proposal_test_pipeline, + self.proposal_train_cfg, + self.proposal_test_cfg, + data_prefix=self.data_prefix, + test_mode=True) + result = proposal_dataset[0] + assert assert_dict_has_keys(result, target_keys) + + def test_ssn_dataset(self): + # test ssn dataset + ssn_dataset = SSNDataset( + self.proposal_ann_file, + self.proposal_pipeline, + self.proposal_train_cfg, + self.proposal_test_cfg, + data_prefix=self.data_prefix) + ssn_infos = ssn_dataset.video_infos + assert ssn_infos[0]['video_id'] == 'imgs' + assert ssn_infos[0]['total_frames'] == 5 + + # test ssn dataset with verbose + ssn_dataset = SSNDataset( + self.proposal_ann_file, + self.proposal_pipeline, + self.proposal_train_cfg, + self.proposal_test_cfg, + data_prefix=self.data_prefix, + verbose=True) + ssn_infos = ssn_dataset.video_infos + assert ssn_infos[0]['video_id'] == 'imgs' + assert ssn_infos[0]['total_frames'] == 5 + + # test ssn dataset with normalized proposal file + with pytest.raises(Exception): + ssn_dataset = SSNDataset( + self.proposal_norm_ann_file, + self.proposal_pipeline, + self.proposal_train_cfg, + self.proposal_test_cfg, + data_prefix=self.data_prefix) + ssn_infos = ssn_dataset.video_infos + + # test ssn dataset with reg_normalize_constants + ssn_dataset = SSNDataset( + self.proposal_ann_file, + self.proposal_pipeline, + self.proposal_train_cfg, + self.proposal_test_cfg, + data_prefix=self.data_prefix, + reg_normalize_constants=[[[-0.0603, 0.0325], [0.0752, 0.1596]]]) + ssn_infos = ssn_dataset.video_infos + assert ssn_infos[0]['video_id'] == 'imgs' + assert ssn_infos[0]['total_frames'] == 5 + + # test error case + with pytest.raises(TypeError): + ssn_dataset = SSNDataset( + self.proposal_ann_file, + self.proposal_pipeline, + self.proposal_train_cfg, + self.proposal_test_cfg, + data_prefix=self.data_prefix, + aug_ratio=('error', 'error')) + ssn_infos = ssn_dataset.video_infos + + def test_ssn_evaluate(self): + ssn_dataset = SSNDataset( + self.proposal_ann_file, + self.proposal_pipeline, + self.proposal_train_cfg, + self.proposal_test_cfg, + data_prefix=self.data_prefix) + ssn_dataset_topall = SSNDataset( + self.proposal_ann_file, + self.proposal_pipeline, + self.proposal_train_cfg, + self.proposal_test_cfg_topall, + data_prefix=self.data_prefix) + + with pytest.raises(TypeError): + # results must be a list + ssn_dataset.evaluate('0.5') + + with pytest.raises(AssertionError): + # The length of results must be equal to the dataset len + ssn_dataset.evaluate([0] * 5) + + with pytest.raises(KeyError): + # unsupported metric + ssn_dataset.evaluate([0] * len(ssn_dataset), metrics='iou') + + # evaluate mAP metric + results_relative_proposal_list = np.random.randn(16, 2) + results_activity_scores = np.random.randn(16, 21) + results_completeness_scores = np.random.randn(16, 20) + results_bbox_preds = np.random.randn(16, 20, 2) + results = [ + dict( + relative_proposal_list=results_relative_proposal_list, + activity_scores=results_activity_scores, + completeness_scores=results_completeness_scores, + bbox_preds=results_bbox_preds) + ] + eval_result = ssn_dataset.evaluate(results, metrics=['mAP']) + assert set(eval_result) == set([ + 'mAP@0.10', 'mAP@0.20', 'mAP@0.30', 'mAP@0.40', 'mAP@0.50', + 'mAP@0.50', 'mAP@0.60', 'mAP@0.70', 'mAP@0.80', 'mAP@0.90' + ]) + + # evaluate mAP metric without filtering topk + results_relative_proposal_list = np.random.randn(16, 2) + results_activity_scores = np.random.randn(16, 21) + results_completeness_scores = np.random.randn(16, 20) + results_bbox_preds = np.random.randn(16, 20, 2) + results = [ + dict( + relative_proposal_list=results_relative_proposal_list, + activity_scores=results_activity_scores, + completeness_scores=results_completeness_scores, + bbox_preds=results_bbox_preds) + ] + eval_result = ssn_dataset_topall.evaluate(results, metrics=['mAP']) + assert set(eval_result) == set([ + 'mAP@0.10', 'mAP@0.20', 'mAP@0.30', 'mAP@0.40', 'mAP@0.50', + 'mAP@0.50', 'mAP@0.60', 'mAP@0.70', 'mAP@0.80', 'mAP@0.90' + ]) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_video_dataset.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_video_dataset.py new file mode 100644 index 00000000..36d280b3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_datasets/test_video_dataset.py @@ -0,0 +1,100 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +import numpy as np +import pytest +from mmcv.utils import assert_dict_has_keys + +from mmaction.datasets import VideoDataset +from .base import BaseTestDataset + + +class TestVideoDataset(BaseTestDataset): + + def test_video_dataset(self): + video_dataset = VideoDataset( + self.video_ann_file, + self.video_pipeline, + data_prefix=self.data_prefix, + start_index=3) + assert len(video_dataset) == 2 + assert video_dataset.start_index == 3 + + video_dataset = VideoDataset( + self.video_ann_file, + self.video_pipeline, + data_prefix=self.data_prefix) + video_infos = video_dataset.video_infos + video_filename = osp.join(self.data_prefix, 'test.mp4') + assert video_infos == [dict(filename=video_filename, label=0)] * 2 + assert video_dataset.start_index == 0 + + def test_video_dataset_multi_label(self): + video_dataset = VideoDataset( + self.video_ann_file_multi_label, + self.video_pipeline, + data_prefix=self.data_prefix, + multi_class=True, + num_classes=100) + video_infos = video_dataset.video_infos + video_filename = osp.join(self.data_prefix, 'test.mp4') + label0 = [0, 3] + label1 = [0, 2, 4] + labels = [label0, label1] + for info, label in zip(video_infos, labels): + print(info, video_filename) + assert info['filename'] == video_filename + assert set(info['label']) == set(label) + assert video_dataset.start_index == 0 + + def test_video_pipeline(self): + target_keys = ['filename', 'label', 'start_index', 'modality'] + + # VideoDataset not in test mode + video_dataset = VideoDataset( + self.video_ann_file, + self.video_pipeline, + data_prefix=self.data_prefix, + test_mode=False) + result = video_dataset[0] + assert assert_dict_has_keys(result, target_keys) + + # VideoDataset in test mode + video_dataset = VideoDataset( + self.video_ann_file, + self.video_pipeline, + data_prefix=self.data_prefix, + test_mode=True) + result = video_dataset[0] + assert assert_dict_has_keys(result, target_keys) + + def test_video_evaluate(self): + video_dataset = VideoDataset( + self.video_ann_file, + self.video_pipeline, + data_prefix=self.data_prefix) + + with pytest.raises(TypeError): + # results must be a list + video_dataset.evaluate('0.5') + + with pytest.raises(AssertionError): + # The length of results must be equal to the dataset len + video_dataset.evaluate([0] * 5) + + with pytest.raises(TypeError): + # topk must be int or tuple of int + video_dataset.evaluate( + [0] * len(video_dataset), + metric_options=dict(top_k_accuracy=dict(topk=1.))) + + with pytest.raises(KeyError): + # unsupported metric + video_dataset.evaluate([0] * len(video_dataset), metrics='iou') + + # evaluate top_k_accuracy and mean_class_accuracy metric + results = [np.array([0.1, 0.5, 0.4])] * 2 + eval_result = video_dataset.evaluate( + results, metrics=['top_k_accuracy', 'mean_class_accuracy']) + assert set(eval_result) == set( + ['top1_acc', 'top5_acc', 'mean_class_accuracy']) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_formating.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_formating.py new file mode 100644 index 00000000..c3607e64 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_formating.py @@ -0,0 +1,227 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +import pytest +import torch +from mmcv.parallel import DataContainer as DC +from mmcv.utils import assert_dict_has_keys + +from mmaction.datasets.pipelines import (Collect, FormatAudioShape, + FormatGCNInput, FormatShape, + ImageToTensor, Rename, + ToDataContainer, ToTensor, Transpose) + + +def test_rename(): + org_name = 'a' + new_name = 'b' + mapping = {org_name: new_name} + rename = Rename(mapping) + results = dict(a=2) + results = rename(results) + assert results['b'] == 2 + assert 'a' not in results + + +def test_to_tensor(): + to_tensor = ToTensor(['str']) + with pytest.raises(TypeError): + # str cannot be converted to tensor + results = dict(str='0') + to_tensor(results) + + # convert tensor, numpy, sequence, int, float to tensor + target_keys = ['tensor', 'numpy', 'sequence', 'int', 'float'] + to_tensor = ToTensor(target_keys) + original_results = dict( + tensor=torch.randn(2, 3), + numpy=np.random.randn(2, 3), + sequence=list(range(10)), + int=1, + float=0.1) + results = to_tensor(original_results) + assert assert_dict_has_keys(results, target_keys) + for key in target_keys: + assert isinstance(results[key], torch.Tensor) + assert torch.equal(results[key].data, original_results[key]) + + # Add an additional key which is not in keys. + original_results = dict( + tensor=torch.randn(2, 3), + numpy=np.random.randn(2, 3), + sequence=list(range(10)), + int=1, + float=0.1, + str='test') + results = to_tensor(original_results) + assert assert_dict_has_keys(results, target_keys) + for key in target_keys: + assert isinstance(results[key], torch.Tensor) + assert torch.equal(results[key].data, original_results[key]) + + assert repr(to_tensor) == to_tensor.__class__.__name__ + \ + f'(keys={target_keys})' + + +def test_to_data_container(): + # check user-defined fields + fields = (dict(key='key1', stack=True), dict(key='key2')) + to_data_container = ToDataContainer(fields=fields) + target_keys = ['key1', 'key2'] + original_results = dict(key1=np.random.randn(10, 20), key2=['a', 'b']) + results = to_data_container(original_results.copy()) + assert assert_dict_has_keys(results, target_keys) + for key in target_keys: + assert isinstance(results[key], DC) + assert np.all(results[key].data == original_results[key]) + assert results['key1'].stack + assert not results['key2'].stack + + # Add an additional key which is not in keys. + original_results = dict( + key1=np.random.randn(10, 20), key2=['a', 'b'], key3='value3') + results = to_data_container(original_results.copy()) + assert assert_dict_has_keys(results, target_keys) + for key in target_keys: + assert isinstance(results[key], DC) + assert np.all(results[key].data == original_results[key]) + assert results['key1'].stack + assert not results['key2'].stack + + assert repr(to_data_container) == ( + to_data_container.__class__.__name__ + f'(fields={fields})') + + +def test_image_to_tensor(): + original_results = dict(imgs=np.random.randn(256, 256, 3)) + keys = ['imgs'] + image_to_tensor = ImageToTensor(keys) + results = image_to_tensor(original_results) + assert results['imgs'].shape == torch.Size([3, 256, 256]) + assert isinstance(results['imgs'], torch.Tensor) + assert torch.equal(results['imgs'].data, original_results['imgs']) + assert repr(image_to_tensor) == image_to_tensor.__class__.__name__ + \ + f'(keys={keys})' + + +def test_transpose(): + results = dict(imgs=np.random.randn(256, 256, 3)) + keys = ['imgs'] + order = [2, 0, 1] + transpose = Transpose(keys, order) + results = transpose(results) + assert results['imgs'].shape == (3, 256, 256) + assert repr(transpose) == transpose.__class__.__name__ + \ + f'(keys={keys}, order={order})' + + +def test_collect(): + inputs = dict( + imgs=np.random.randn(256, 256, 3), + label=[1], + filename='test.txt', + original_shape=(256, 256, 3), + img_shape=(256, 256, 3), + pad_shape=(256, 256, 3), + flip_direction='vertical', + img_norm_cfg=dict(to_bgr=False)) + keys = ['imgs', 'label'] + collect = Collect(keys) + results = collect(inputs) + assert sorted(list(results.keys())) == sorted( + ['imgs', 'label', 'img_metas']) + imgs = inputs.pop('imgs') + assert set(results['img_metas'].data) == set(inputs) + for key in results['img_metas'].data: + assert results['img_metas'].data[key] == inputs[key] + assert repr(collect) == collect.__class__.__name__ + \ + (f'(keys={keys}, meta_keys={collect.meta_keys}, ' + f'nested={collect.nested})') + + inputs['imgs'] = imgs + collect = Collect(keys, nested=True) + results = collect(inputs) + assert sorted(list(results.keys())) == sorted( + ['imgs', 'label', 'img_metas']) + for k in results: + assert isinstance(results[k], list) + + +def test_format_shape(): + with pytest.raises(ValueError): + # invalid input format + FormatShape('NHWC') + + # 'NCHW' input format + results = dict( + imgs=np.random.randn(3, 224, 224, 3), num_clips=1, clip_len=3) + format_shape = FormatShape('NCHW') + assert format_shape(results)['input_shape'] == (3, 3, 224, 224) + + # `NCTHW` input format with num_clips=1, clip_len=3 + results = dict( + imgs=np.random.randn(3, 224, 224, 3), num_clips=1, clip_len=3) + format_shape = FormatShape('NCTHW') + assert format_shape(results)['input_shape'] == (1, 3, 3, 224, 224) + + # `NCTHW` input format with num_clips=2, clip_len=3 + results = dict( + imgs=np.random.randn(18, 224, 224, 3), num_clips=2, clip_len=3) + assert format_shape(results)['input_shape'] == (6, 3, 3, 224, 224) + target_keys = ['imgs', 'input_shape'] + assert assert_dict_has_keys(results, target_keys) + + assert repr(format_shape) == format_shape.__class__.__name__ + \ + "(input_format='NCTHW')" + + # 'NPTCHW' input format + results = dict( + imgs=np.random.randn(72, 224, 224, 3), + num_clips=9, + clip_len=1, + num_proposals=8) + format_shape = FormatShape('NPTCHW') + assert format_shape(results)['input_shape'] == (8, 9, 3, 224, 224) + + +def test_format_audio_shape(): + with pytest.raises(ValueError): + # invalid input format + FormatAudioShape('XXXX') + + # 'NCTF' input format + results = dict(audios=np.random.randn(3, 128, 8)) + format_shape = FormatAudioShape('NCTF') + assert format_shape(results)['input_shape'] == (3, 1, 128, 8) + assert repr(format_shape) == format_shape.__class__.__name__ + \ + "(input_format='NCTF')" + + +def test_format_gcn_input(): + with pytest.raises(ValueError): + # invalid input format + FormatGCNInput('XXXX') + + # 'NCTVM' input format + results = dict( + keypoint=np.random.randn(2, 300, 17, 2), + keypoint_score=np.random.randn(2, 300, 17)) + format_shape = FormatGCNInput('NCTVM', num_person=2) + assert format_shape(results)['input_shape'] == (3, 300, 17, 2) + assert repr(format_shape) == format_shape.__class__.__name__ + \ + "(input_format='NCTVM')" + + # test real num_person < 2 + results = dict( + keypoint=np.random.randn(1, 300, 17, 2), + keypoint_score=np.random.randn(1, 300, 17)) + assert format_shape(results)['input_shape'] == (3, 300, 17, 2) + assert repr(format_shape) == format_shape.__class__.__name__ + \ + "(input_format='NCTVM')" + + # test real num_person > 2 + results = dict( + keypoint=np.random.randn(3, 300, 17, 2), + keypoint_score=np.random.randn(3, 300, 17)) + assert format_shape(results)['input_shape'] == (3, 300, 17, 2) + assert repr(format_shape) == format_shape.__class__.__name__ + \ + "(input_format='NCTVM')" diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/__init__.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/__init__.py new file mode 100644 index 00000000..949b51e9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .base import check_crop, check_flip, check_normalize + +__all__ = ['check_crop', 'check_flip', 'check_normalize'] diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/base.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/base.py new file mode 100644 index 00000000..cc75917b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/base.py @@ -0,0 +1,70 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +from numpy.testing import assert_array_almost_equal + + +def check_crop(origin_imgs, result_imgs, result_bbox, num_crops=1): + """Check if the result_bbox is in correspond to result_imgs.""" + + def check_single_crop(origin_imgs, result_imgs, result_bbox): + result_img_shape = result_imgs[0].shape[:2] + crop_w = result_bbox[2] - result_bbox[0] + crop_h = result_bbox[3] - result_bbox[1] + crop_shape = (crop_h, crop_w) + if not crop_shape == result_img_shape: + return False + left, top, right, bottom = result_bbox + return np.array_equal( + np.array(origin_imgs)[:, top:bottom, left:right, :], + np.array(result_imgs)) + + if result_bbox.ndim == 1: + return check_single_crop(origin_imgs, result_imgs, result_bbox) + if result_bbox.ndim == 2: + num_batch = len(origin_imgs) + for i, bbox in enumerate(result_bbox): + if num_crops == 10: + if (i // num_batch) % 2 == 0: + flag = check_single_crop([origin_imgs[i % num_batch]], + [result_imgs[i]], bbox) + else: + flag = check_single_crop([origin_imgs[i % num_batch]], + [np.flip(result_imgs[i], axis=1)], + bbox) + else: + flag = check_single_crop([origin_imgs[i % num_batch]], + [result_imgs[i]], bbox) + if not flag: + return False + return True + else: + # bbox has a wrong dimension + return False + + +def check_flip(origin_imgs, result_imgs, flip_type): + """Check if the origin_imgs are flipped correctly into result_imgs in + different flip_types.""" + n, _, _, _ = np.shape(origin_imgs) + if flip_type == 'horizontal': + for i in range(n): + if np.any(result_imgs[i] != np.fliplr(origin_imgs[i])): + return False + else: + # yapf: disable + for i in range(n): + if np.any(result_imgs[i] != np.transpose(np.fliplr(np.transpose(origin_imgs[i], (1, 0, 2))), (1, 0, 2))): # noqa:E501 + return False + # yapf: enable + return True + + +def check_normalize(origin_imgs, result_imgs, norm_cfg): + """Check if the origin_imgs are normalized correctly into result_imgs in a + given norm_cfg.""" + target_imgs = result_imgs.copy() + target_imgs *= norm_cfg['std'] + target_imgs += norm_cfg['mean'] + if norm_cfg['to_bgr']: + target_imgs = target_imgs[..., ::-1].copy() + assert_array_almost_equal(origin_imgs, target_imgs, decimal=4) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_audio.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_audio.py new file mode 100644 index 00000000..cf1a53e1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_audio.py @@ -0,0 +1,54 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +import pytest +from mmcv.utils import assert_dict_has_keys + +from mmaction.datasets.pipelines import AudioAmplify, MelSpectrogram + + +class TestAudio: + + @staticmethod + def test_audio_amplify(): + target_keys = ['audios', 'amplify_ratio'] + with pytest.raises(TypeError): + # ratio should be float + AudioAmplify(1) + + audio = (np.random.rand(8, )) + results = dict(audios=audio) + amplifier = AudioAmplify(1.5) + results = amplifier(results) + assert assert_dict_has_keys(results, target_keys) + assert repr(amplifier) == (f'{amplifier.__class__.__name__}' + f'(ratio={amplifier.ratio})') + + @staticmethod + def test_melspectrogram(): + target_keys = ['audios'] + with pytest.raises(TypeError): + # ratio should be float + MelSpectrogram(window_size=12.5) + audio = (np.random.rand(1, 160000)) + + # test padding + results = dict(audios=audio, sample_rate=16000) + results['num_clips'] = 1 + results['sample_rate'] = 16000 + mel = MelSpectrogram() + results = mel(results) + assert assert_dict_has_keys(results, target_keys) + + # test truncating + audio = (np.random.rand(1, 160000)) + results = dict(audios=audio, sample_rate=16000) + results['num_clips'] = 1 + results['sample_rate'] = 16000 + mel = MelSpectrogram(fixed_length=1) + results = mel(results) + assert assert_dict_has_keys(results, target_keys) + assert repr(mel) == (f'{mel.__class__.__name__}' + f'(window_size={mel.window_size}), ' + f'step_size={mel.step_size}, ' + f'n_mels={mel.n_mels}, ' + f'fixed_length={mel.fixed_length})') diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_color.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_color.py new file mode 100644 index 00000000..ebf849cc --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_color.py @@ -0,0 +1,35 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +from mmcv.utils import assert_dict_has_keys + +from mmaction.datasets.pipelines import ColorJitter + + +class TestColor: + + @staticmethod + def test_color_jitter(): + imgs = list( + np.random.randint(0, 255, size=(3, 112, 112, 3), dtype=np.uint8)) + results = dict(imgs=imgs) + + color_jitter = ColorJitter() + assert color_jitter.brightness == (0.5, 1.5) + assert color_jitter.contrast == (0.5, 1.5) + assert color_jitter.saturation == (0.5, 1.5) + assert color_jitter.hue == (-0.1, 0.1) + + color_jitter_results = color_jitter(results) + target_keys = ['imgs'] + + assert assert_dict_has_keys(color_jitter_results, target_keys) + assert np.shape(color_jitter_results['imgs']) == (3, 112, 112, 3) + for img in color_jitter_results['imgs']: + assert np.all(img >= 0) + assert np.all(img <= 255) + + assert repr(color_jitter) == (f'{color_jitter.__class__.__name__}(' + f'brightness={(0.5, 1.5)}, ' + f'contrast={(0.5, 1.5)}, ' + f'saturation={(0.5, 1.5)}, ' + f'hue={-0.1, 0.1})') diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_crop.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_crop.py new file mode 100644 index 00000000..400327de --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_crop.py @@ -0,0 +1,294 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +import pytest +from mmcv.utils import assert_dict_has_keys + +from mmaction.datasets.pipelines import (CenterCrop, MultiScaleCrop, + RandomCrop, RandomResizedCrop, + TenCrop, ThreeCrop) +from .base import check_crop + + +class TestCrops: + + @staticmethod + def test_random_crop(): + with pytest.raises(TypeError): + # size must be an int + RandomCrop(size=(112, 112)) + with pytest.raises(AssertionError): + # "size > height" or "size > width" is not allowed + imgs = list(np.random.rand(2, 224, 341, 3)) + results = dict(imgs=imgs) + random_crop = RandomCrop(size=320) + random_crop(results) + + target_keys = ['imgs', 'crop_bbox', 'img_shape'] + + # General case + imgs = list(np.random.rand(2, 224, 341, 3)) + results = dict(imgs=imgs) + random_crop = RandomCrop(size=224) + results['gt_bboxes'] = np.array([[0, 0, 340, 224]]) + results['proposals'] = np.array([[0, 0, 340, 224]]) + kp = np.array([[160, 120], [160, 120]]).reshape([1, 1, 2, 2]) + results['keypoint'] = kp + random_crop_result = random_crop(results) + assert assert_dict_has_keys(random_crop_result, target_keys) + assert check_crop(imgs, random_crop_result['imgs'], + results['crop_bbox']) + h, w = random_crop_result['img_shape'] + assert h == w == 224 + + # Test the case that no need for cropping + imgs = list(np.random.rand(2, 224, 224, 3)) + results = dict(imgs=imgs) + random_crop = RandomCrop(size=224) + random_crop_result = random_crop(results) + assert assert_dict_has_keys(random_crop_result, target_keys) + assert check_crop(imgs, random_crop_result['imgs'], + results['crop_bbox']) + h, w = random_crop_result['img_shape'] + assert h == w == 224 + + # Test the one-side-equal case + imgs = list(np.random.rand(2, 224, 225, 3)) + results = dict(imgs=imgs) + random_crop = RandomCrop(size=224) + random_crop_result = random_crop(results) + assert assert_dict_has_keys(random_crop_result, target_keys) + assert check_crop(imgs, random_crop_result['imgs'], + results['crop_bbox']) + h, w = random_crop_result['img_shape'] + assert h == w == 224 + + assert repr(random_crop) == (f'{random_crop.__class__.__name__}' + f'(size={224}, lazy={False})') + + @staticmethod + def test_random_resized_crop(): + with pytest.raises(TypeError): + # area_range must be a tuple of float + RandomResizedCrop(area_range=0.5) + with pytest.raises(TypeError): + # aspect_ratio_range must be a tuple of float + RandomResizedCrop(area_range=(0.08, 1.0), aspect_ratio_range=0.1) + + target_keys = ['imgs', 'crop_bbox', 'img_shape'] + # There will be a slight difference because of rounding + eps = 0.01 + imgs = list(np.random.rand(2, 256, 341, 3)) + results = dict(imgs=imgs) + results['gt_bboxes'] = np.array([[0, 0, 340, 256]]) + results['proposals'] = np.array([[0, 0, 340, 256]]) + kp = np.array([[160, 120], [160, 120]]).reshape([1, 1, 2, 2]) + results['keypoint'] = kp + + with pytest.raises(AssertionError): + # area_range[0] > area_range[1], which is wrong + random_crop = RandomResizedCrop(area_range=(0.9, 0.7)) + random_crop(results) + with pytest.raises(AssertionError): + # 0 > area_range[0] and area_range[1] > 1, which is wrong + random_crop = RandomResizedCrop(aspect_ratio_range=(-0.1, 2.0)) + random_crop(results) + + random_crop = RandomResizedCrop() + random_crop_result = random_crop(results) + assert assert_dict_has_keys(random_crop_result, target_keys) + assert check_crop(imgs, random_crop_result['imgs'], + results['crop_bbox']) + h, w = random_crop_result['img_shape'] + assert ((0.08 - eps <= h * w / 256 / 341) + and (h * w / 256 / 341 <= 1 + eps)) + assert (3. / 4. - eps <= h / w) and (h / w - eps <= 4. / 3.) + assert repr(random_crop) == (f'{random_crop.__class__.__name__}' + f'(area_range={(0.08, 1.0)}, ' + f'aspect_ratio_range={(3 / 4, 4 / 3)}, ' + f'lazy={False})') + + random_crop = RandomResizedCrop( + area_range=(0.9, 0.9), aspect_ratio_range=(10.0, 10.1)) + # Test fallback cases by very big area range + imgs = list(np.random.rand(2, 256, 341, 3)) + results = dict(imgs=imgs) + random_crop_result = random_crop(results) + assert assert_dict_has_keys(random_crop_result, target_keys) + assert check_crop(imgs, random_crop_result['imgs'], + results['crop_bbox']) + h, w = random_crop_result['img_shape'] + assert h == w == 256 + + @staticmethod + def test_multi_scale_crop(): + with pytest.raises(TypeError): + # input_size must be int or tuple of int + MultiScaleCrop(0.5) + + with pytest.raises(TypeError): + # input_size must be int or tuple of int + MultiScaleCrop('224') + + with pytest.raises(TypeError): + # scales must be tuple. + MultiScaleCrop( + 224, scales=[ + 1, + ]) + + with pytest.raises(ValueError): + # num_fix_crops must be in [5, 13] + MultiScaleCrop(224, num_fixed_crops=6) + + target_keys = ['imgs', 'crop_bbox', 'img_shape', 'scales'] + + # MultiScaleCrop with normal crops. + imgs = list(np.random.rand(2, 256, 341, 3)) + results = dict(imgs=imgs) + results['gt_bboxes'] = np.array([[0, 0, 340, 256]]) + results['proposals'] = np.array([[0, 0, 340, 256]]) + kp = np.array([[160, 120], [160, 120]]).reshape([1, 1, 2, 2]) + results['keypoint'] = kp + config = dict( + input_size=224, + scales=(1, 0.8), + random_crop=False, + max_wh_scale_gap=0) + multi_scale_crop = MultiScaleCrop(**config) + multi_scale_crop_results = multi_scale_crop(results) + assert assert_dict_has_keys(multi_scale_crop_results, target_keys) + assert check_crop(imgs, multi_scale_crop_results['imgs'], + multi_scale_crop_results['crop_bbox']) + assert multi_scale_crop_results['img_shape'] in [(256, 256), + (204, 204)] + + # MultiScaleCrop with more fixed crops. + imgs = list(np.random.rand(2, 256, 341, 3)) + results = dict(imgs=imgs) + config = dict( + input_size=224, + scales=(1, 0.8), + random_crop=False, + max_wh_scale_gap=0, + num_fixed_crops=13) + multi_scale_crop = MultiScaleCrop(**config) + multi_scale_crop_results = multi_scale_crop(results) + assert assert_dict_has_keys(multi_scale_crop_results, target_keys) + assert check_crop(imgs, multi_scale_crop_results['imgs'], + multi_scale_crop_results['crop_bbox']) + assert multi_scale_crop_results['img_shape'] in [(256, 256), + (204, 204)] + + # MultiScaleCrop with random crop. + imgs = list(np.random.rand(2, 256, 341, 3)) + results = dict(imgs=imgs) + config = dict( + input_size=224, + scales=(1, 0.8), + random_crop=True, + max_wh_scale_gap=0) + multi_scale_crop = MultiScaleCrop(**config) + multi_scale_crop_results = multi_scale_crop(results) + assert assert_dict_has_keys(multi_scale_crop_results, target_keys) + assert check_crop(imgs, multi_scale_crop_results['imgs'], + multi_scale_crop_results['crop_bbox']) + assert (multi_scale_crop_results['img_shape'] in [(256, 256), + (204, 204)]) + + assert repr(multi_scale_crop) == ( + f'{multi_scale_crop.__class__.__name__}' + f'(input_size={(224, 224)}, scales={(1, 0.8)}, ' + f'max_wh_scale_gap={0}, random_crop={True}, ' + f'num_fixed_crops=5, lazy={False})') + + @staticmethod + def test_center_crop(): + with pytest.raises(TypeError): + # crop_size must be int or tuple of int + CenterCrop(0.5) + + with pytest.raises(TypeError): + # crop_size must be int or tuple of int + CenterCrop('224') + + # center crop with crop_size 224 + # add kps in test_center_crop + imgs = list(np.random.rand(2, 240, 320, 3)) + results = dict(imgs=imgs) + kp = np.array([[160, 120], [160, 120]]).reshape([1, 1, 2, 2]) + results['keypoint'] = kp + + results['gt_bboxes'] = np.array([[0, 0, 320, 240]]) + results['proposals'] = np.array([[0, 0, 320, 240]]) + center_crop = CenterCrop(crop_size=224) + center_crop_results = center_crop(results) + target_keys = ['imgs', 'crop_bbox', 'img_shape', 'keypoint'] + assert assert_dict_has_keys(center_crop_results, target_keys) + assert check_crop(imgs, center_crop_results['imgs'], + center_crop_results['crop_bbox']) + assert np.all( + center_crop_results['crop_bbox'] == np.array([48, 8, 272, 232])) + assert center_crop_results['img_shape'] == (224, 224) + assert np.all(center_crop_results['keypoint'] == 112) + + assert repr(center_crop) == (f'{center_crop.__class__.__name__}' + f'(crop_size={(224, 224)}, lazy={False})') + + @staticmethod + def test_three_crop(): + with pytest.raises(TypeError): + # crop_size must be int or tuple of int + ThreeCrop(0.5) + + with pytest.raises(TypeError): + # crop_size must be int or tuple of int + ThreeCrop('224') + + # three crop with crop_size 120 + imgs = list(np.random.rand(2, 240, 120, 3)) + results = dict(imgs=imgs) + three_crop = ThreeCrop(crop_size=120) + three_crop_results = three_crop(results) + target_keys = ['imgs', 'crop_bbox', 'img_shape'] + assert assert_dict_has_keys(three_crop_results, target_keys) + assert check_crop(imgs, three_crop_results['imgs'], + three_crop_results['crop_bbox'], 3) + assert three_crop_results['img_shape'] == (120, 120) + + # three crop with crop_size 224 + imgs = list(np.random.rand(2, 224, 224, 3)) + results = dict(imgs=imgs) + three_crop = ThreeCrop(crop_size=224) + three_crop_results = three_crop(results) + target_keys = ['imgs', 'crop_bbox', 'img_shape'] + assert assert_dict_has_keys(three_crop_results, target_keys) + assert check_crop(imgs, three_crop_results['imgs'], + three_crop_results['crop_bbox'], 3) + assert three_crop_results['img_shape'] == (224, 224) + + assert repr(three_crop) == (f'{three_crop.__class__.__name__}' + f'(crop_size={(224, 224)})') + + @staticmethod + def test_ten_crop(): + with pytest.raises(TypeError): + # crop_size must be int or tuple of int + TenCrop(0.5) + + with pytest.raises(TypeError): + # crop_size must be int or tuple of int + TenCrop('224') + + # ten crop with crop_size 256 + imgs = list(np.random.rand(2, 256, 256, 3)) + results = dict(imgs=imgs) + ten_crop = TenCrop(crop_size=224) + ten_crop_results = ten_crop(results) + target_keys = ['imgs', 'crop_bbox', 'img_shape'] + assert assert_dict_has_keys(ten_crop_results, target_keys) + assert check_crop(imgs, ten_crop_results['imgs'], + ten_crop_results['crop_bbox'], 10) + assert ten_crop_results['img_shape'] == (224, 224) + + assert repr(ten_crop) == (f'{ten_crop.__class__.__name__}' + f'(crop_size={(224, 224)})') diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_flip.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_flip.py new file mode 100644 index 00000000..fd62e13f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_flip.py @@ -0,0 +1,136 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy + +import mmcv +import numpy as np +import pytest +from mmcv.utils import assert_dict_has_keys +from numpy.testing import assert_array_almost_equal + +from mmaction.datasets.pipelines import Flip +from .base import check_flip + + +class TestFlip: + + @staticmethod + def test_flip(): + with pytest.raises(ValueError): + # direction must be in ['horizontal', 'vertical'] + Flip(direction='vertically') + + target_keys = ['imgs', 'flip_direction', 'modality'] + + # do not flip imgs. + imgs = list(np.random.rand(2, 64, 64, 3)) + results = dict(imgs=copy.deepcopy(imgs), modality='RGB') + flip = Flip(flip_ratio=0, direction='horizontal') + flip_results = flip(results) + assert assert_dict_has_keys(flip_results, target_keys) + assert np.array_equal(imgs, results['imgs']) + assert id(flip_results['imgs']) == id(results['imgs']) + assert np.shape(flip_results['imgs']) == np.shape(imgs) + + # always flip imgs horizontally. + imgs = list(np.random.rand(2, 64, 64, 3)) + results = dict(imgs=copy.deepcopy(imgs), modality='RGB') + results['gt_bboxes'] = np.array([[0, 0, 60, 60]]) + results['proposals'] = np.array([[0, 0, 60, 60]]) + flip = Flip(flip_ratio=1, direction='horizontal') + flip_results = flip(results) + assert assert_dict_has_keys(flip_results, target_keys) + if flip_results['flip'] is True: + assert check_flip(imgs, flip_results['imgs'], + flip_results['flip_direction']) + assert id(flip_results['imgs']) == id(results['imgs']) + assert np.shape(flip_results['imgs']) == np.shape(imgs) + + # flip flow images horizontally + imgs = [ + np.arange(16).reshape(4, 4).astype(np.float32), + np.arange(16, 32).reshape(4, 4).astype(np.float32) + ] + results = dict(imgs=copy.deepcopy(imgs), modality='Flow') + flip = Flip(flip_ratio=1, direction='horizontal') + flip_results = flip(results) + assert assert_dict_has_keys(flip_results, target_keys) + imgs = [x.reshape(4, 4, 1) for x in imgs] + flip_results['imgs'] = [ + x.reshape(4, 4, 1) for x in flip_results['imgs'] + ] + if flip_results['flip'] is True: + assert check_flip([imgs[0]], + [mmcv.iminvert(flip_results['imgs'][0])], + flip_results['flip_direction']) + assert check_flip([imgs[1]], [flip_results['imgs'][1]], + flip_results['flip_direction']) + assert id(flip_results['imgs']) == id(results['imgs']) + assert np.shape(flip_results['imgs']) == np.shape(imgs) + + # always flip imgs vertivally. + imgs = list(np.random.rand(2, 64, 64, 3)) + results = dict(imgs=copy.deepcopy(imgs), modality='RGB') + flip = Flip(flip_ratio=1, direction='vertical') + flip_results = flip(results) + assert assert_dict_has_keys(flip_results, target_keys) + if flip_results['flip'] is True: + assert check_flip(imgs, flip_results['imgs'], + flip_results['flip_direction']) + assert id(flip_results['imgs']) == id(results['imgs']) + assert np.shape(flip_results['imgs']) == np.shape(imgs) + + assert repr(flip) == (f'{flip.__class__.__name__}' + f'(flip_ratio={1}, direction=vertical, ' + f'flip_label_map={None}, lazy={False})') + + # transform label for the flipped image with the specific label. + _flip_label_map = {4: 6} + imgs = list(np.random.rand(2, 64, 64, 3)) + + # the label should be mapped. + results = dict(imgs=copy.deepcopy(imgs), modality='RGB', label=4) + flip = Flip( + flip_ratio=1, + direction='horizontal', + flip_label_map=_flip_label_map) + flip_results = flip(results) + assert results['label'] == 6 + + # the label should not be mapped. + results = dict(imgs=copy.deepcopy(imgs), modality='RGB', label=3) + flip = Flip( + flip_ratio=1, + direction='horizontal', + flip_label_map=_flip_label_map) + flip_results = flip(results) + assert results['label'] == 3 + + # flip the keypoints + results = dict( + keypoint=np.array([[1, 1], [63, 63]]).reshape([1, 1, 2, 2]), + modality='Pose', + img_shape=(64, 64)) + flip = Flip( + flip_ratio=1, direction='horizontal', left_kp=[0], right_kp=[1]) + flip_results = flip(results) + assert_array_almost_equal(flip_results['keypoint'][0, 0], + np.array([[1, 63], [63, 1]])) + + results = dict( + keypoint=np.array([[1, 1], [63, 63]]).reshape([1, 1, 2, 2]), + modality='Pose', + img_shape=(64, 64)) + flip = Flip( + flip_ratio=1, direction='horizontal', left_kp=[], right_kp=[]) + flip_results = flip(results) + assert_array_almost_equal(flip_results['keypoint'][0, 0], + np.array([[63, 1], [1, 63]])) + + with pytest.raises(AssertionError): + results = dict( + keypoint=np.array([[1, 1], [63, 63]]).reshape([1, 1, 2, 2]), + modality='Pose', + img_shape=(64, 64)) + flip = Flip( + flip_ratio=1, direction='vertical', left_kp=[], right_kp=[]) + flip_results = flip(results) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_imgaug.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_imgaug.py new file mode 100644 index 00000000..646e0fb8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_imgaug.py @@ -0,0 +1,101 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +import pytest +from mmcv.utils import assert_dict_has_keys +from numpy.testing import assert_array_almost_equal + +from mmaction.datasets.pipelines import CenterCrop, Imgaug +from .base import check_flip + + +class TestAugumentations: + + @staticmethod + def test_imgaug(): + + with pytest.raises(ValueError): + # transforms only support one string, 'default' + Imgaug(transforms='test') + + with pytest.raises(ValueError): + # transforms only support string or list of dicts + # or iaa.Augmenter object + Imgaug(transforms=dict(type='Rotate')) + + with pytest.raises(AssertionError): + # each dict must have a `type` key + Imgaug(transforms=[dict(rotate=(-30, 30))]) + + with pytest.raises(AttributeError): + # `type` must be available in imgaug + Imgaug(transforms=[dict(type='BlaBla')]) + + with pytest.raises(TypeError): + # `type` must be str or iaa available type + Imgaug(transforms=[dict(type=CenterCrop)]) + + from imgaug import augmenters as iaa + + # check default configs + target_keys = ['imgs', 'img_shape', 'modality'] + imgs = list(np.random.randint(0, 255, (1, 64, 64, 3)).astype(np.uint8)) + results = dict(imgs=imgs, modality='RGB') + default_imgaug = Imgaug(transforms='default') + default_results = default_imgaug(results) + assert_dict_has_keys(default_results, target_keys) + assert default_results['img_shape'] == (64, 64) + + # check flip (both images and bboxes) + target_keys = ['imgs', 'gt_bboxes', 'proposals', 'img_shape'] + imgs = list(np.random.rand(1, 64, 64, 3).astype(np.float32)) + results = dict( + imgs=imgs, + modality='RGB', + proposals=np.array([[0, 0, 25, 35]]), + img_shape=(64, 64), + gt_bboxes=np.array([[0, 0, 25, 35]])) + imgaug_flip = Imgaug(transforms=[dict(type='Fliplr')]) + flip_results = imgaug_flip(results) + assert assert_dict_has_keys(flip_results, target_keys) + assert check_flip(imgs, flip_results['imgs'], 'horizontal') + assert_array_almost_equal(flip_results['gt_bboxes'], + np.array([[39, 0, 64, 35]])) + assert_array_almost_equal(flip_results['proposals'], + np.array([[39, 0, 64, 35]])) + transforms = iaa.Sequential([iaa.Fliplr()]) + assert repr(imgaug_flip) == f'Imgaug(transforms={transforms})' + + # check crop (both images and bboxes) + target_keys = ['crop_bbox', 'gt_bboxes', 'imgs', 'img_shape'] + imgs = list(np.random.rand(1, 122, 122, 3)) + results = dict( + imgs=imgs, + modality='RGB', + img_shape=(122, 122), + gt_bboxes=np.array([[1.5, 2.5, 110, 64]])) + imgaug_center_crop = Imgaug(transforms=[ + dict( + type=iaa.CropToFixedSize, + width=100, + height=100, + position='center') + ]) + crop_results = imgaug_center_crop(results) + assert_dict_has_keys(crop_results, target_keys) + assert_array_almost_equal(crop_results['gt_bboxes'], + np.array([[0., 0., 99., 53.]])) + assert 'proposals' not in results + transforms = iaa.Sequential( + [iaa.CropToFixedSize(width=100, height=100, position='center')]) + assert repr(imgaug_center_crop) == f'Imgaug(transforms={transforms})' + + # check resize (images only) + target_keys = ['imgs', 'img_shape'] + imgs = list(np.random.rand(1, 64, 64, 3)) + results = dict(imgs=imgs, modality='RGB') + transforms = iaa.Resize(32) + imgaug_resize = Imgaug(transforms=transforms) + resize_results = imgaug_resize(results) + assert_dict_has_keys(resize_results, target_keys) + assert resize_results['img_shape'] == (32, 32) + assert repr(imgaug_resize) == f'Imgaug(transforms={transforms})' diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_lazy.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_lazy.py new file mode 100644 index 00000000..34d535c5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_lazy.py @@ -0,0 +1,373 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +import pytest +from mmcv.utils import assert_dict_has_keys + +from mmaction.datasets.pipelines import (CenterCrop, Flip, Fuse, + MultiScaleCrop, RandomCrop, + RandomResizedCrop, Resize) +from .base import check_crop, check_flip + + +class TestLazy: + + @staticmethod + def test_init_lazy(): + from mmaction.datasets.pipelines.augmentations import \ + _init_lazy_if_proper # noqa: E501 + with pytest.raises(AssertionError): + # use lazy operation but "lazy" not in results + result = dict(lazy=dict(), img_shape=[64, 64]) + _init_lazy_if_proper(result, False) + + lazy_keys = [ + 'original_shape', 'crop_bbox', 'flip', 'flip_direction', + 'interpolation' + ] + + # 'img_shape' not in results + result = dict(imgs=list(np.random.randn(3, 64, 64, 3))) + _init_lazy_if_proper(result, True) + assert assert_dict_has_keys(result, ['imgs', 'lazy', 'img_shape']) + assert assert_dict_has_keys(result['lazy'], lazy_keys) + + # 'img_shape' in results + result = dict(img_shape=[64, 64]) + _init_lazy_if_proper(result, True) + assert assert_dict_has_keys(result, ['lazy', 'img_shape']) + assert assert_dict_has_keys(result['lazy'], lazy_keys) + + # do not use lazy operation + result = dict(img_shape=[64, 64]) + _init_lazy_if_proper(result, False) + assert assert_dict_has_keys(result, ['img_shape']) + assert 'lazy' not in result + + @staticmethod + def test_random_crop_lazy(): + with pytest.raises(TypeError): + # size must be an int + RandomCrop(size=(112, 112), lazy=True) + with pytest.raises(AssertionError): + # "size > height" or "size > width" is not allowed + imgs = list(np.random.rand(2, 224, 341, 3)) + results = dict(imgs=imgs) + random_crop = RandomCrop(size=320, lazy=True) + random_crop(results) + + target_keys = ['imgs', 'crop_bbox', 'img_shape', 'lazy'] + + # General case + imgs = list(np.random.rand(2, 224, 341, 3)) + results = dict(imgs=imgs) + random_crop = RandomCrop(size=224, lazy=True) + random_crop_result = random_crop(results) + assert assert_dict_has_keys(random_crop_result, target_keys) + assert id(imgs) == id(random_crop_result['imgs']) + random_crop_result_fuse = Fuse()(random_crop_result) + assert 'lazy' not in random_crop_result_fuse + assert check_crop(imgs, random_crop_result_fuse['imgs'], + results['crop_bbox']) + h, w = random_crop_result_fuse['img_shape'] + assert h == w == 224 + + # Test the case that no need for cropping + imgs = list(np.random.rand(2, 224, 224, 3)) + results = dict(imgs=imgs) + random_crop = RandomCrop(size=224, lazy=True) + random_crop_result = random_crop(results) + assert assert_dict_has_keys(random_crop_result, target_keys) + assert id(imgs) == id(random_crop_result['imgs']) + random_crop_result_fuse = Fuse()(random_crop_result) + assert 'lazy' not in random_crop_result_fuse + assert check_crop(imgs, random_crop_result_fuse['imgs'], + results['crop_bbox']) + h, w = random_crop_result_fuse['img_shape'] + assert h == w == 224 + + # Test the one-side-equal case + imgs = list(np.random.rand(2, 224, 225, 3)) + results = dict(imgs=imgs) + random_crop = RandomCrop(size=224, lazy=True) + random_crop_result = random_crop(results) + assert assert_dict_has_keys(random_crop_result, target_keys) + assert id(imgs) == id(random_crop_result['imgs']) + random_crop_result_fuse = Fuse()(random_crop_result) + assert 'lazy' not in random_crop_result_fuse + assert check_crop(imgs, random_crop_result_fuse['imgs'], + results['crop_bbox']) + h, w = random_crop_result_fuse['img_shape'] + assert h == w == 224 + + assert repr(random_crop) == (f'{random_crop.__class__.__name__}' + f'(size={224}, lazy={True})') + + @staticmethod + def test_random_resized_crop_lazy(): + + target_keys = ['imgs', 'crop_bbox', 'img_shape', 'lazy'] + # There will be a slight difference because of rounding + eps = 0.01 + imgs = list(np.random.rand(2, 256, 341, 3)) + results = dict(imgs=imgs) + + with pytest.raises(AssertionError): + # area_range[0] > area_range[1], which is wrong + random_crop = RandomResizedCrop(area_range=(0.9, 0.7), lazy=True) + random_crop(results) + with pytest.raises(AssertionError): + # 0 > area_range[0] and area_range[1] > 1, which is wrong + random_crop = RandomResizedCrop( + aspect_ratio_range=(-0.1, 2.0), lazy=True) + random_crop(results) + + random_crop = RandomResizedCrop(lazy=True) + random_crop_result = random_crop(results) + assert assert_dict_has_keys(random_crop_result, target_keys) + assert id(imgs) == id(random_crop_result['imgs']) + random_crop_result_fuse = Fuse()(random_crop_result) + assert check_crop(imgs, random_crop_result_fuse['imgs'], + results['crop_bbox']) + h, w = random_crop_result['img_shape'] + assert ((0.08 - eps <= h * w / 256 / 341) + and (h * w / 256 / 341 <= 1 + eps)) + assert (3. / 4. - eps <= h / w) and (h / w - eps <= 4. / 3.) + assert repr(random_crop) == (f'{random_crop.__class__.__name__}' + f'(area_range={(0.08, 1.0)}, ' + f'aspect_ratio_range={(3 / 4, 4 / 3)}, ' + f'lazy={True})') + + random_crop = RandomResizedCrop( + area_range=(0.9, 0.9), aspect_ratio_range=(10.0, 10.1), lazy=True) + # Test fallback cases by very big area range + imgs = np.random.rand(2, 256, 341, 3) + results = dict(imgs=imgs) + random_crop_result = random_crop(results) + assert assert_dict_has_keys(random_crop_result, target_keys) + assert id(imgs) == id(random_crop_result['imgs']) + random_crop_result_fuse = Fuse()(random_crop_result) + assert check_crop(imgs, random_crop_result_fuse['imgs'], + results['crop_bbox']) + h, w = random_crop_result['img_shape'] + assert h == w == 256 + + @staticmethod + def test_multi_scale_crop_lazy(): + with pytest.raises(TypeError): + # input_size must be int or tuple of int + MultiScaleCrop(0.5, lazy=True) + + with pytest.raises(TypeError): + # input_size must be int or tuple of int + MultiScaleCrop('224', lazy=True) + + with pytest.raises(TypeError): + # scales must be tuple. + MultiScaleCrop( + 224, scales=[ + 1, + ], lazy=True) + + with pytest.raises(ValueError): + # num_fix_crops must be in [5, 13] + MultiScaleCrop(224, num_fixed_crops=6, lazy=True) + + target_keys = ['imgs', 'crop_bbox', 'img_shape', 'scales'] + + # MultiScaleCrop with normal crops. + imgs = list(np.random.rand(2, 256, 341, 3)) + results = dict(imgs=imgs) + config = dict( + input_size=224, + scales=(1, 0.8), + random_crop=False, + max_wh_scale_gap=0, + lazy=True) + multi_scale_crop = MultiScaleCrop(**config) + multi_scale_crop_result = multi_scale_crop(results) + assert id(imgs) == id(multi_scale_crop_result['imgs']) + assert assert_dict_has_keys(multi_scale_crop_result, target_keys) + multi_scale_crop_result_fuse = Fuse()(multi_scale_crop_result) + assert check_crop(imgs, multi_scale_crop_result_fuse['imgs'], + multi_scale_crop_result['crop_bbox']) + assert multi_scale_crop_result_fuse['img_shape'] in [(256, 256), + (204, 204)] + + # MultiScaleCrop with more fixed crops. + imgs = list(np.random.rand(2, 256, 341, 3)) + results = dict(imgs=imgs) + config = dict( + input_size=224, + scales=(1, 0.8), + random_crop=False, + max_wh_scale_gap=0, + num_fixed_crops=13, + lazy=True) + multi_scale_crop = MultiScaleCrop(**config) + multi_scale_crop_result = multi_scale_crop(results) + assert id(imgs) == id(multi_scale_crop_result['imgs']) + assert assert_dict_has_keys(multi_scale_crop_result, target_keys) + multi_scale_crop_result_fuse = Fuse()(multi_scale_crop_result) + assert check_crop(imgs, multi_scale_crop_result_fuse['imgs'], + multi_scale_crop_result['crop_bbox']) + assert multi_scale_crop_result_fuse['img_shape'] in [(256, 256), + (204, 204)] + + # MultiScaleCrop with random crop. + imgs = list(np.random.rand(2, 256, 341, 3)) + results = dict(imgs=imgs) + config = dict( + input_size=224, + scales=(1, 0.8), + random_crop=True, + max_wh_scale_gap=0, + lazy=True) + multi_scale_crop = MultiScaleCrop(**config) + multi_scale_crop_result = multi_scale_crop(results) + assert id(imgs) == id(multi_scale_crop_result['imgs']) + assert assert_dict_has_keys(multi_scale_crop_result, target_keys) + multi_scale_crop_result_fuse = Fuse()(multi_scale_crop_result) + assert check_crop(imgs, multi_scale_crop_result_fuse['imgs'], + multi_scale_crop_result['crop_bbox']) + assert (multi_scale_crop_result_fuse['img_shape'] in [(256, 256), + (204, 204)]) + + assert repr(multi_scale_crop) == ( + f'{multi_scale_crop.__class__.__name__}' + f'(input_size={(224, 224)}, scales={(1, 0.8)}, ' + f'max_wh_scale_gap={0}, random_crop={True}, ' + f'num_fixed_crops={5}, lazy={True})') + + @staticmethod + def test_resize_lazy(): + with pytest.raises(ValueError): + # scale must be positive + Resize(-0.5, lazy=True) + + with pytest.raises(TypeError): + # scale must be tuple of int + Resize('224', lazy=True) + + target_keys = [ + 'imgs', 'img_shape', 'keep_ratio', 'scale_factor', 'modality' + ] + + # scale with -1 to indicate np.inf + imgs = list(np.random.rand(2, 240, 320, 3)) + results = dict(imgs=imgs, modality='RGB') + resize = Resize(scale=(-1, 256), keep_ratio=True, lazy=True) + resize_results = resize(results) + assert id(imgs) == id(resize_results['imgs']) + assert assert_dict_has_keys(resize_results, target_keys) + resize_results_fuse = Fuse()(resize_results) + assert np.all(resize_results_fuse['scale_factor'] == np.array( + [341 / 320, 256 / 240], dtype=np.float32)) + assert resize_results_fuse['img_shape'] == (256, 341) + + # scale with a normal tuple (320, 320) to indicate np.inf + imgs = list(np.random.rand(2, 240, 320, 3)) + results = dict(imgs=imgs, modality='RGB') + resize = Resize(scale=(320, 320), keep_ratio=False, lazy=True) + resize_results = resize(results) + assert id(imgs) == id(resize_results['imgs']) + assert assert_dict_has_keys(resize_results, target_keys) + resize_results_fuse = Fuse()(resize_results) + assert np.all(resize_results_fuse['scale_factor'] == np.array( + [1, 320 / 240], dtype=np.float32)) + assert resize_results_fuse['img_shape'] == (320, 320) + + # scale with a normal tuple (341, 256) to indicate np.inf + imgs = list(np.random.rand(2, 240, 320, 3)) + results = dict(imgs=imgs, modality='RGB') + resize = Resize(scale=(341, 256), keep_ratio=False, lazy=True) + resize_results = resize(results) + assert id(imgs) == id(resize_results['imgs']) + assert assert_dict_has_keys(resize_results, target_keys) + resize_results_fuse = Fuse()(resize_results) + assert np.all(resize_results_fuse['scale_factor'] == np.array( + [341 / 320, 256 / 240], dtype=np.float32)) + assert resize_results_fuse['img_shape'] == (256, 341) + + assert repr(resize) == (f'{resize.__class__.__name__ }' + f'(scale={(341, 256)}, keep_ratio={False}, ' + + f'interpolation=bilinear, lazy={True})') + + @staticmethod + def test_flip_lazy(): + with pytest.raises(ValueError): + Flip(direction='vertically', lazy=True) + + target_keys = ['imgs', 'flip_direction', 'modality'] + + # do not flip imgs. + imgs = list(np.random.rand(2, 64, 64, 3)) + imgs_tmp = imgs.copy() + results = dict(imgs=imgs_tmp, modality='RGB') + flip = Flip(flip_ratio=0, direction='horizontal', lazy=True) + flip_results = flip(results) + assert id(imgs_tmp) == id(flip_results['imgs']) + assert assert_dict_has_keys(flip_results, target_keys) + flip_results_fuse = Fuse()(flip_results) + assert np.equal(imgs, results['imgs']).all() + assert id(flip_results['imgs']) == id(results['imgs']) + assert flip_results_fuse['imgs'][0].shape == (64, 64, 3) + + # always flip imgs horizontally. + imgs = list(np.random.rand(2, 64, 64, 3)) + imgs_tmp = imgs.copy() + results = dict(imgs=imgs_tmp, modality='RGB') + flip = Flip(flip_ratio=1, direction='horizontal', lazy=True) + flip_results = flip(results) + assert id(imgs_tmp) == id(flip_results['imgs']) + assert assert_dict_has_keys(flip_results, target_keys) + flip_results_fuse = Fuse()(flip_results) + assert check_flip(imgs, flip_results['imgs'], + flip_results['flip_direction']) + assert id(flip_results['imgs']) == id(results['imgs']) + assert flip_results_fuse['imgs'][0].shape == (64, 64, 3) + + # always flip imgs vertivally. + imgs = list(np.random.rand(2, 64, 64, 3)) + imgs_tmp = imgs.copy() + results = dict(imgs=imgs_tmp, modality='RGB') + flip = Flip(flip_ratio=1, direction='vertical', lazy=True) + flip_results = flip(results) + assert id(imgs_tmp) == id(flip_results['imgs']) + assert assert_dict_has_keys(flip_results, target_keys) + flip_results_fuse = Fuse()(flip_results) + assert check_flip(imgs, flip_results['imgs'], + flip_results['flip_direction']) + assert id(flip_results['imgs']) == id(results['imgs']) + assert flip_results_fuse['imgs'][0].shape == (64, 64, 3) + + assert repr(flip) == (f'{flip.__class__.__name__}' + f'(flip_ratio={1}, direction=vertical, ' + f'flip_label_map={None}, lazy={True})') + + @staticmethod + def test_center_crop_lazy(): + with pytest.raises(TypeError): + # crop_size must be int or tuple of int + CenterCrop(0.5) + + with pytest.raises(TypeError): + # crop_size must be int or tuple of int + CenterCrop('224') + + # center crop with crop_size 224 + imgs = list(np.random.rand(2, 240, 320, 3)) + results = dict(imgs=imgs) + center_crop = CenterCrop(crop_size=224, lazy=True) + center_crop_results = center_crop(results) + + target_keys = ['imgs', 'crop_bbox', 'img_shape'] + assert assert_dict_has_keys(center_crop_results, target_keys) + center_crop_results_fuse = Fuse()(center_crop_results) + assert check_crop(imgs, center_crop_results_fuse['imgs'], + center_crop_results['crop_bbox']) + assert np.all(center_crop_results_fuse['crop_bbox'] == np.array( + [48, 8, 272, 232])) + assert center_crop_results_fuse['img_shape'] == (224, 224) + + assert repr(center_crop) == (f'{center_crop.__class__.__name__}' + f'(crop_size={(224, 224)}, lazy={True})') diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_misc.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_misc.py new file mode 100644 index 00000000..a3ad2c6a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_misc.py @@ -0,0 +1,19 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from mmaction.datasets.pipelines.augmentations import (_combine_quadruple, + _flip_quadruple) + + +class TestQuadrupleOps: + + @staticmethod + def test_combine_quadruple(): + a = (0.1, 0.1, 0.5, 0.5) + b = (0.3, 0.3, 0.7, 0.7) + res = _combine_quadruple(a, b) + assert res == (0.25, 0.25, 0.35, 0.35) + + @staticmethod + def test_flip_quadruple(): + a = (0.1, 0.1, 0.5, 0.5) + res = _flip_quadruple(a) + assert res == (0.4, 0.1, 0.5, 0.5) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_normalization.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_normalization.py new file mode 100644 index 00000000..ee3bb1ce --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_normalization.py @@ -0,0 +1,71 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +import pytest +from mmcv.utils import assert_dict_has_keys + +from mmaction.datasets.pipelines import Normalize +from .base import check_normalize + + +class TestNormalization: + + @staticmethod + def test_normalize(): + with pytest.raises(TypeError): + # mean must be list, tuple or np.ndarray + Normalize( + dict(mean=[123.675, 116.28, 103.53]), [58.395, 57.12, 57.375]) + + with pytest.raises(TypeError): + # std must be list, tuple or np.ndarray + Normalize([123.675, 116.28, 103.53], + dict(std=[58.395, 57.12, 57.375])) + + target_keys = ['imgs', 'img_norm_cfg', 'modality'] + + # normalize imgs in RGB format + imgs = list(np.random.rand(2, 240, 320, 3).astype(np.float32)) + results = dict(imgs=imgs, modality='RGB') + config = dict( + mean=[123.675, 116.28, 103.53], + std=[58.395, 57.12, 57.375], + to_bgr=False) + normalize = Normalize(**config) + normalize_results = normalize(results) + assert assert_dict_has_keys(normalize_results, target_keys) + check_normalize(imgs, normalize_results['imgs'], + normalize_results['img_norm_cfg']) + + # normalize flow imgs + imgs = list(np.random.rand(4, 240, 320).astype(np.float32)) + results = dict(imgs=imgs, modality='Flow') + config = dict(mean=[128, 128], std=[128, 128]) + normalize = Normalize(**config) + normalize_results = normalize(results) + assert assert_dict_has_keys(normalize_results, target_keys) + assert normalize_results['imgs'].shape == (2, 240, 320, 2) + x_components = np.array(imgs[0::2]) + y_components = np.array(imgs[1::2]) + x_components = (x_components - config['mean'][0]) / config['std'][0] + y_components = (y_components - config['mean'][1]) / config['std'][1] + result_imgs = np.stack([x_components, y_components], axis=-1) + assert np.all(np.isclose(result_imgs, normalize_results['imgs'])) + + # normalize imgs in BGR format + imgs = list(np.random.rand(2, 240, 320, 3).astype(np.float32)) + results = dict(imgs=imgs, modality='RGB') + config = dict( + mean=[123.675, 116.28, 103.53], + std=[58.395, 57.12, 57.375], + to_bgr=True) + normalize = Normalize(**config) + normalize_results = normalize(results) + assert assert_dict_has_keys(normalize_results, target_keys) + check_normalize(imgs, normalize_results['imgs'], + normalize_results['img_norm_cfg']) + + assert normalize.__repr__() == ( + normalize.__class__.__name__ + + f'(mean={np.array([123.675, 116.28, 103.53])}, ' + + f'std={np.array([58.395, 57.12, 57.375])}, to_bgr={True}, ' + f'adjust_magnitude={False})') diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_pytorchvideo.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_pytorchvideo.py new file mode 100644 index 00000000..61ab7d28 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_pytorchvideo.py @@ -0,0 +1,71 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +import pytest +from mmcv.utils import assert_dict_has_keys, digit_version + +try: + import torch + + from mmaction.datasets.pipelines import PytorchVideoTrans + pytorchvideo_ok = False + if digit_version(torch.__version__) >= digit_version('1.8.0'): + pytorchvideo_ok = True +except (ImportError, ModuleNotFoundError): + pytorchvideo_ok = False + + +@pytest.mark.skipif(not pytorchvideo_ok, reason='torch >= 1.8.0 is required') +class TestPytorchVideoTrans: + + @staticmethod + def test_pytorchvideo_trans(): + with pytest.raises(AssertionError): + # transforms not supported in pytorchvideo + PytorchVideoTrans(type='BlaBla') + + with pytest.raises(AssertionError): + # This trans exists in pytorchvideo but not supported in MMAction2 + PytorchVideoTrans(type='MixUp') + + target_keys = ['imgs'] + + imgs = list(np.random.randint(0, 256, (4, 32, 32, 3)).astype(np.uint8)) + results = dict(imgs=imgs) + + # test AugMix + augmix = PytorchVideoTrans(type='AugMix') + results = augmix(results) + assert assert_dict_has_keys(results, target_keys) + assert (all(img.shape == (32, 32, 3) for img in results['imgs'])) + + # test RandAugment + rand_augment = PytorchVideoTrans(type='RandAugment') + results = rand_augment(results) + assert assert_dict_has_keys(results, target_keys) + assert (all(img.shape == (32, 32, 3) for img in results['imgs'])) + + # test RandomResizedCrop + random_resized_crop = PytorchVideoTrans( + type='RandomResizedCrop', + target_height=16, + target_width=16, + scale=(0.1, 1.), + aspect_ratio=(0.8, 1.2)) + results = random_resized_crop(results) + assert assert_dict_has_keys(results, target_keys) + assert (all(img.shape == (16, 16, 3) for img in results['imgs'])) + + # test ShortSideScale + short_side_scale = PytorchVideoTrans(type='ShortSideScale', size=24) + results = short_side_scale(results) + assert assert_dict_has_keys(results, target_keys) + assert (all(img.shape == (24, 24, 3) for img in results['imgs'])) + + # test ShortSideScale + random_short_side_scale = PytorchVideoTrans( + type='RandomShortSideScale', min_size=24, max_size=36) + results = random_short_side_scale(results) + target_shape = results['imgs'][0].shape + assert 36 >= target_shape[0] >= 24 + assert assert_dict_has_keys(results, target_keys) + assert (all(img.shape == target_shape for img in results['imgs'])) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_transform.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_transform.py new file mode 100644 index 00000000..31abd647 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_augmentations/test_transform.py @@ -0,0 +1,160 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy + +import numpy as np +import pytest +from mmcv.utils import assert_dict_has_keys +from numpy.testing import assert_array_almost_equal + +from mmaction.datasets.pipelines import RandomRescale, Resize +from mmaction.datasets.pipelines.augmentations import PoseCompact + + +class TestTransform: + + @staticmethod + def test_random_rescale(): + with pytest.raises(AssertionError): + # scale_range must be a tuple of int + RandomRescale(scale_range=224) + + with pytest.raises(AssertionError): + # scale_range must be a tuple of int + RandomRescale(scale_range=(224.0, 256.0)) + + with pytest.raises(AssertionError): + # scale_range[0] > scale_range[1], which is wrong + RandomRescale(scale_range=(320, 256)) + + with pytest.raises(AssertionError): + # scale_range[0] <= 0, which is wrong + RandomRescale(scale_range=(0, 320)) + + target_keys = ['imgs', 'short_edge', 'img_shape'] + # There will be a slight difference because of rounding + eps = 0.01 + imgs = list(np.random.rand(2, 256, 340, 3)) + results = dict(imgs=imgs, img_shape=(256, 340), modality='RGB') + + random_rescale = RandomRescale(scale_range=(300, 400)) + random_rescale_result = random_rescale(results) + + assert assert_dict_has_keys(random_rescale_result, target_keys) + + h, w = random_rescale_result['img_shape'] + + # check rescale + assert np.abs(h / 256 - w / 340) < eps + assert 300 / 256 - eps <= h / 256 <= 400 / 256 + eps + assert repr(random_rescale) == (f'{random_rescale.__class__.__name__}' + f'(scale_range={(300, 400)}, ' + 'interpolation=bilinear)') + + @staticmethod + def test_resize(): + with pytest.raises(ValueError): + # scale must be positive + Resize(-0.5) + + with pytest.raises(TypeError): + # scale must be tuple of int + Resize('224') + + target_keys = [ + 'imgs', 'img_shape', 'keep_ratio', 'scale_factor', 'modality' + ] + + # test resize for flow images + imgs = list(np.random.rand(2, 240, 320)) + kp = np.array([60, 60]).reshape([1, 1, 1, 2]) + results = dict(imgs=imgs, keypoint=kp, modality='Flow') + resize = Resize(scale=(160, 80), keep_ratio=False) + resize_results = resize(results) + assert assert_dict_has_keys(resize_results, target_keys) + assert np.all(resize_results['scale_factor'] == np.array( + [.5, 1. / 3.], dtype=np.float32)) + assert resize_results['img_shape'] == (80, 160) + kp = resize_results['keypoint'][0, 0, 0] + assert_array_almost_equal(kp, np.array([30, 20])) + + # scale with -1 to indicate np.inf + imgs = list(np.random.rand(2, 240, 320, 3)) + results = dict(imgs=imgs, modality='RGB') + results['gt_bboxes'] = np.array([[0, 0, 320, 240]]) + results['proposals'] = np.array([[0, 0, 320, 240]]) + resize = Resize(scale=(-1, 256), keep_ratio=True) + resize_results = resize(results) + assert assert_dict_has_keys(resize_results, target_keys) + assert np.all(resize_results['scale_factor'] == np.array( + [341 / 320, 256 / 240], dtype=np.float32)) + assert resize_results['img_shape'] == (256, 341) + + # scale with a normal tuple (320, 320) to indicate np.inf + imgs = list(np.random.rand(2, 240, 320, 3)) + results = dict(imgs=imgs, modality='RGB') + resize = Resize(scale=(320, 320), keep_ratio=False) + resize_results = resize(results) + assert assert_dict_has_keys(resize_results, target_keys) + assert np.all(resize_results['scale_factor'] == np.array( + [1, 320 / 240], dtype=np.float32)) + assert resize_results['img_shape'] == (320, 320) + + # scale with a normal tuple (341, 256) to indicate np.inf + imgs = list(np.random.rand(2, 240, 320, 3)) + results = dict(imgs=imgs, modality='RGB') + resize = Resize(scale=(341, 256), keep_ratio=False) + resize_results = resize(results) + assert assert_dict_has_keys(resize_results, target_keys) + assert np.all(resize_results['scale_factor'] == np.array( + [341 / 320, 256 / 240], dtype=np.float32)) + assert resize_results['img_shape'] == (256, 341) + + assert repr(resize) == ( + resize.__class__.__name__ + + f'(scale={(341, 256)}, keep_ratio={False}, ' + + f'interpolation=bilinear, lazy={False})') + + +class TestPoseCompact: + + @staticmethod + def test_pose_compact(): + results = {} + results['img_shape'] = (100, 100) + fake_kp = np.zeros([1, 4, 2, 2]) + fake_kp[:, :, 0] = [10, 10] + fake_kp[:, :, 1] = [90, 90] + results['keypoint'] = fake_kp + + pose_compact = PoseCompact( + padding=0, threshold=0, hw_ratio=None, allow_imgpad=False) + inp = copy.deepcopy(results) + ret = pose_compact(inp) + assert ret['img_shape'] == (80, 80) + assert str(pose_compact) == ( + 'PoseCompact(padding=0, threshold=0, hw_ratio=None, ' + 'allow_imgpad=False)') + + pose_compact = PoseCompact( + padding=0.3, threshold=0, hw_ratio=None, allow_imgpad=False) + inp = copy.deepcopy(results) + ret = pose_compact(inp) + assert ret['img_shape'] == (100, 100) + + pose_compact = PoseCompact( + padding=0.3, threshold=0, hw_ratio=None, allow_imgpad=True) + inp = copy.deepcopy(results) + ret = pose_compact(inp) + assert ret['img_shape'] == (104, 104) + + pose_compact = PoseCompact( + padding=0, threshold=100, hw_ratio=None, allow_imgpad=False) + inp = copy.deepcopy(results) + ret = pose_compact(inp) + assert ret['img_shape'] == (100, 100) + + pose_compact = PoseCompact( + padding=0, threshold=0, hw_ratio=0.75, allow_imgpad=True) + inp = copy.deepcopy(results) + ret = pose_compact(inp) + assert ret['img_shape'] == (80, 106) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/__init__.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/__init__.py new file mode 100644 index 00000000..fe54e15c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .base import BaseTestLoading + +__all__ = ['BaseTestLoading'] diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/base.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/base.py new file mode 100644 index 00000000..3c746287 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/base.py @@ -0,0 +1,93 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +import mmcv +import numpy as np + + +class BaseTestLoading: + + @classmethod + def setup_class(cls): + cls.data_prefix = osp.normpath( + osp.join(osp.dirname(__file__), '../../../data')) + cls.img_path = osp.join(cls.data_prefix, 'test.jpg') + cls.video_path = osp.join(cls.data_prefix, 'test.mp4') + cls.wav_path = osp.join(cls.data_prefix, 'test.wav') + cls.audio_spec_path = osp.join(cls.data_prefix, 'test.npy') + cls.img_dir = osp.join(cls.data_prefix, 'imgs') + cls.raw_feature_dir = osp.join(cls.data_prefix, 'activitynet_features') + cls.bsp_feature_dir = osp.join(cls.data_prefix, 'bsp_features') + cls.proposals_dir = osp.join(cls.data_prefix, 'proposals') + + cls.total_frames = 5 + cls.filename_tmpl = 'img_{:05}.jpg' + cls.flow_filename_tmpl = '{}_{:05d}.jpg' + video_total_frames = len(mmcv.VideoReader(cls.video_path)) + cls.audio_total_frames = video_total_frames + + cls.video_results = dict( + filename=cls.video_path, + label=1, + total_frames=video_total_frames, + start_index=0) + cls.audio_results = dict( + audios=np.random.randn(1280, ), + audio_path=cls.wav_path, + total_frames=cls.audio_total_frames, + label=1, + start_index=0) + cls.audio_feature_results = dict( + audios=np.random.randn(128, 80), + audio_path=cls.audio_spec_path, + total_frames=cls.audio_total_frames, + label=1, + start_index=0) + cls.frame_results = dict( + frame_dir=cls.img_dir, + total_frames=cls.total_frames, + filename_tmpl=cls.filename_tmpl, + start_index=1, + modality='RGB', + offset=0, + label=1) + cls.flow_frame_results = dict( + frame_dir=cls.img_dir, + total_frames=cls.total_frames, + filename_tmpl=cls.flow_filename_tmpl, + modality='Flow', + offset=0, + label=1) + cls.action_results = dict( + video_name='v_test1', + data_prefix=cls.raw_feature_dir, + temporal_scale=5, + boundary_ratio=0.1, + duration_second=10, + duration_frame=10, + feature_frame=8, + annotations=[{ + 'segment': [3.0, 5.0], + 'label': 'Rock climbing' + }]) + from mmaction.datasets.ssn_dataset import SSNInstance + cls.proposal_results = dict( + frame_dir=cls.img_dir, + video_id='imgs', + total_frames=cls.total_frames, + filename_tmpl=cls.filename_tmpl, + start_index=1, + out_proposals=[[['imgs', SSNInstance(1, 4, 10, 1, 1, 1)], 0], + [['imgs', SSNInstance(2, 5, 10, 2, 1, 1)], 0]]) + + cls.ava_results = dict( + fps=30, timestamp=902, timestamp_start=840, shot_info=(0, 27000)) + + cls.hvu_label_example1 = dict( + categories=['action', 'object', 'scene', 'concept'], + category_nums=[2, 5, 3, 2], + label=dict(action=[0], object=[2, 3], scene=[0, 1])) + cls.hvu_label_example2 = dict( + categories=['action', 'object', 'scene', 'concept'], + category_nums=[2, 5, 3, 2], + label=dict(action=[1], scene=[1, 2], concept=[1])) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_decode.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_decode.py new file mode 100644 index 00000000..aca0943d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_decode.py @@ -0,0 +1,498 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy +import platform + +import numpy as np +from mmcv.utils import assert_dict_has_keys + +from mmaction.datasets.pipelines import (AudioDecode, AudioDecodeInit, + DecordDecode, DecordInit, + OpenCVDecode, OpenCVInit, PIMSDecode, + PIMSInit, PyAVDecode, + PyAVDecodeMotionVector, PyAVInit, + RawFrameDecode) +from .base import BaseTestLoading + + +class TestDecode(BaseTestLoading): + + def test_pyav_init(self): + target_keys = ['video_reader', 'total_frames'] + video_result = copy.deepcopy(self.video_results) + pyav_init = PyAVInit() + pyav_init_result = pyav_init(video_result) + assert assert_dict_has_keys(pyav_init_result, target_keys) + assert pyav_init_result['total_frames'] == 300 + assert repr( + pyav_init) == f'{pyav_init.__class__.__name__}(io_backend=disk)' + + def test_pyav_decode(self): + target_keys = ['frame_inds', 'imgs', 'original_shape'] + + # test PyAV with 2 dim input and start_index = 0 + video_result = copy.deepcopy(self.video_results) + video_result['frame_inds'] = np.arange(0, self.total_frames, + 2)[:, np.newaxis] + pyav_init = PyAVInit() + pyav_init_result = pyav_init(video_result) + video_result['video_reader'] = pyav_init_result['video_reader'] + + pyav_decode = PyAVDecode() + pyav_decode_result = pyav_decode(video_result) + assert assert_dict_has_keys(pyav_decode_result, target_keys) + assert pyav_decode_result['original_shape'] == (256, 340) + assert np.shape(pyav_decode_result['imgs']) == (len( + video_result['frame_inds']), 256, 340, 3) + assert repr(pyav_decode) == (f'{pyav_decode.__class__.__name__}(' + f'multi_thread={False}, mode=accurate)') + + # test PyAV with 1 dim input and start_index = 0 + video_result = copy.deepcopy(self.video_results) + video_result['frame_inds'] = np.arange(0, self.total_frames, 5) + pyav_init = PyAVInit() + pyav_init_result = pyav_init(video_result) + video_result['video_reader'] = pyav_init_result['video_reader'] + + pyav_decode = PyAVDecode() + pyav_decode_result = pyav_decode(video_result) + assert assert_dict_has_keys(pyav_decode_result, target_keys) + assert pyav_decode_result['original_shape'] == (256, 340) + assert np.shape(pyav_decode_result['imgs']) == (len( + video_result['frame_inds']), 256, 340, 3) + + # PyAV with multi thread and start_index = 0 + video_result = copy.deepcopy(self.video_results) + video_result['frame_inds'] = np.arange(0, self.total_frames, 5) + pyav_init = PyAVInit() + pyav_init_result = pyav_init(video_result) + video_result['video_reader'] = pyav_init_result['video_reader'] + + pyav_decode = PyAVDecode(multi_thread=True) + pyav_decode_result = pyav_decode(video_result) + assert assert_dict_has_keys(pyav_decode_result, target_keys) + assert pyav_decode_result['original_shape'] == (256, 340) + assert np.shape(pyav_decode_result['imgs']) == (len( + video_result['frame_inds']), 256, 340, 3) + assert repr(pyav_decode) == (f'{pyav_decode.__class__.__name__}(' + f'multi_thread={True}, mode=accurate)') + + # test PyAV with 2 dim input + video_result = copy.deepcopy(self.video_results) + video_result['frame_inds'] = np.arange(1, self.total_frames, + 2)[:, np.newaxis] + pyav_init = PyAVInit() + pyav_init_result = pyav_init(video_result) + video_result['video_reader'] = pyav_init_result['video_reader'] + + pyav_decode = PyAVDecode() + pyav_decode_result = pyav_decode(video_result) + assert assert_dict_has_keys(pyav_decode_result, target_keys) + assert pyav_decode_result['original_shape'] == (256, 340) + assert np.shape(pyav_decode_result['imgs']) == (len( + video_result['frame_inds']), 256, 340, 3) + + # test PyAV with 1 dim input + video_result = copy.deepcopy(self.video_results) + video_result['frame_inds'] = np.arange(1, self.total_frames, 5) + pyav_init = PyAVInit() + pyav_init_result = pyav_init(video_result) + video_result['video_reader'] = pyav_init_result['video_reader'] + + pyav_decode = PyAVDecode() + pyav_decode_result = pyav_decode(video_result) + assert assert_dict_has_keys(pyav_decode_result, target_keys) + assert pyav_decode_result['original_shape'] == (256, 340) + assert np.shape(pyav_decode_result['imgs']) == (len( + video_result['frame_inds']), 256, 340, 3) + + # PyAV with multi thread + video_result = copy.deepcopy(self.video_results) + video_result['frame_inds'] = np.arange(1, self.total_frames, 5) + pyav_init = PyAVInit() + pyav_init_result = pyav_init(video_result) + video_result['video_reader'] = pyav_init_result['video_reader'] + + pyav_decode = PyAVDecode(multi_thread=True) + pyav_decode_result = pyav_decode(video_result) + assert assert_dict_has_keys(pyav_decode_result, target_keys) + assert pyav_decode_result['original_shape'] == (256, 340) + assert np.shape(pyav_decode_result['imgs']) == (len( + video_result['frame_inds']), 256, 340, 3) + + # PyAV with efficient mode + video_result = copy.deepcopy(self.video_results) + video_result['frame_inds'] = np.arange(1, self.total_frames, 5) + pyav_init = PyAVInit() + pyav_init_result = pyav_init(video_result) + video_result['video_reader'] = pyav_init_result['video_reader'] + + pyav_decode = PyAVDecode(multi_thread=True, mode='efficient') + pyav_decode_result = pyav_decode(video_result) + assert assert_dict_has_keys(pyav_decode_result, target_keys) + assert pyav_decode_result['original_shape'] == (256, 340) + assert np.shape(pyav_decode_result['imgs']) == (len( + video_result['frame_inds']), 256, 340, 3) + assert pyav_decode_result['video_reader'] is None + + assert (repr(pyav_decode) == pyav_decode.__class__.__name__ + + f'(multi_thread={True}, mode=efficient)') + + def test_pims_init(self): + target_keys = ['video_reader', 'total_frames'] + video_result = copy.deepcopy(self.video_results) + pims_init = PIMSInit() + pims_init_result = pims_init(video_result) + assert assert_dict_has_keys(pims_init_result, target_keys) + assert pims_init_result['total_frames'] == 300 + + pims_init = PIMSInit(mode='efficient') + pims_init_result = pims_init(video_result) + assert assert_dict_has_keys(pims_init_result, target_keys) + assert pims_init_result['total_frames'] == 300 + + assert repr(pims_init) == (f'{pims_init.__class__.__name__}' + f'(io_backend=disk, mode=efficient)') + + def test_pims_decode(self): + target_keys = ['frame_inds', 'imgs', 'original_shape'] + + video_result = copy.deepcopy(self.video_results) + video_result['frame_inds'] = np.arange(0, self.total_frames, + 2)[:, np.newaxis] + pims_init = PIMSInit() + pims_init_result = pims_init(video_result) + + pims_decode = PIMSDecode() + pims_decode_result = pims_decode(pims_init_result) + assert assert_dict_has_keys(pims_decode_result, target_keys) + assert pims_decode_result['original_shape'] == (256, 340) + assert np.shape(pims_decode_result['imgs']) == (len( + video_result['frame_inds']), 256, 340, 3) + + def test_decord_init(self): + target_keys = ['video_reader', 'total_frames'] + video_result = copy.deepcopy(self.video_results) + decord_init = DecordInit() + decord_init_result = decord_init(video_result) + assert assert_dict_has_keys(decord_init_result, target_keys) + assert decord_init_result['total_frames'] == len( + decord_init_result['video_reader']) + assert repr(decord_init) == (f'{decord_init.__class__.__name__}(' + f'io_backend=disk, ' + f'num_threads={1})') + + def test_decord_decode(self): + target_keys = ['frame_inds', 'imgs', 'original_shape'] + + # test Decord with 2 dim input and start_index = 0 + video_result = copy.deepcopy(self.video_results) + video_result['frame_inds'] = np.arange(0, self.total_frames, + 3)[:, np.newaxis] + decord_init = DecordInit() + decord_init_result = decord_init(video_result) + video_result['video_reader'] = decord_init_result['video_reader'] + + decord_decode = DecordDecode() + decord_decode_result = decord_decode(video_result) + assert assert_dict_has_keys(decord_decode_result, target_keys) + assert decord_decode_result['original_shape'] == (256, 340) + assert np.shape(decord_decode_result['imgs']) == (len( + video_result['frame_inds']), 256, 340, 3) + + # test Decord with 1 dim input and start_index = 0 + video_result = copy.deepcopy(self.video_results) + video_result['frame_inds'] = np.arange(0, self.total_frames, 3) + decord_init = DecordInit() + decord_init_result = decord_init(video_result) + video_result['video_reader'] = decord_init_result['video_reader'] + + decord_decode = DecordDecode() + decord_decode_result = decord_decode(video_result) + assert assert_dict_has_keys(decord_decode_result, target_keys) + assert decord_decode_result['original_shape'] == (256, 340) + assert np.shape(decord_decode_result['imgs']) == (len( + video_result['frame_inds']), 256, 340, 3) + + # test Decord with 2 dim input and start_index = 0 + video_result = copy.deepcopy(self.video_results) + video_result['frame_inds'] = np.arange(0, self.total_frames, + 3)[:, np.newaxis] + decord_init = DecordInit() + decord_init_result = decord_init(video_result) + video_result['video_reader'] = decord_init_result['video_reader'] + + decord_decode = DecordDecode() + decord_decode_result = decord_decode(video_result) + assert assert_dict_has_keys(decord_decode_result, target_keys) + assert decord_decode_result['original_shape'] == (256, 340) + assert np.shape(decord_decode_result['imgs']) == (len( + video_result['frame_inds']), 256, 340, 3) + + # test Decord with 1 dim input + video_result = copy.deepcopy(self.video_results) + video_result['frame_inds'] = np.arange(1, self.total_frames, 3) + decord_init = DecordInit() + decord_init_result = decord_init(video_result) + video_result['video_reader'] = decord_init_result['video_reader'] + + decord_decode = DecordDecode(mode='efficient') + decord_decode_result = decord_decode(video_result) + assert assert_dict_has_keys(decord_decode_result, target_keys) + assert decord_decode_result['original_shape'] == (256, 340) + assert np.shape(decord_decode_result['imgs']) == (len( + video_result['frame_inds']), 256, 340, 3) + assert repr(decord_decode) == (f'{decord_decode.__class__.__name__}(' + f'mode=efficient)') + + def test_opencv_init(self): + target_keys = ['new_path', 'video_reader', 'total_frames'] + video_result = copy.deepcopy(self.video_results) + opencv_init = OpenCVInit() + opencv_init_result = opencv_init(video_result) + assert assert_dict_has_keys(opencv_init_result, target_keys) + assert opencv_init_result['total_frames'] == len( + opencv_init_result['video_reader']) + assert repr(opencv_init) == (f'{opencv_init.__class__.__name__}(' + f'io_backend=disk)') + + def test_opencv_decode(self): + target_keys = ['frame_inds', 'imgs', 'original_shape'] + + # test OpenCV with 2 dim input when start_index = 0 + video_result = copy.deepcopy(self.video_results) + video_result['frame_inds'] = np.arange(0, self.total_frames, + 2)[:, np.newaxis] + opencv_init = OpenCVInit() + opencv_init_result = opencv_init(video_result) + video_result['video_reader'] = opencv_init_result['video_reader'] + + opencv_decode = OpenCVDecode() + opencv_decode_result = opencv_decode(video_result) + assert assert_dict_has_keys(opencv_decode_result, target_keys) + assert opencv_decode_result['original_shape'] == (256, 340) + assert np.shape(opencv_decode_result['imgs']) == (len( + video_result['frame_inds']), 256, 340, 3) + + # test OpenCV with 2 dim input + video_result = copy.deepcopy(self.video_results) + video_result['frame_inds'] = np.arange(1, self.total_frames, + 2)[:, np.newaxis] + opencv_init = OpenCVInit() + opencv_init_result = opencv_init(video_result) + video_result['video_reader'] = opencv_init_result['video_reader'] + + opencv_decode = OpenCVDecode() + opencv_decode_result = opencv_decode(video_result) + assert assert_dict_has_keys(opencv_decode_result, target_keys) + assert opencv_decode_result['original_shape'] == (256, 340) + assert np.shape(opencv_decode_result['imgs']) == (len( + video_result['frame_inds']), 256, 340, 3) + + # test OpenCV with 1 dim input when start_index = 0 + video_result = copy.deepcopy(self.video_results) + video_result['frame_inds'] = np.arange(0, self.total_frames, 3) + opencv_init = OpenCVInit() + opencv_init_result = opencv_init(video_result) + video_result['video_reader'] = opencv_init_result['video_reader'] + + # test OpenCV with 1 dim input + video_result = copy.deepcopy(self.video_results) + video_result['frame_inds'] = np.arange(1, self.total_frames, 3) + opencv_init = OpenCVInit() + opencv_init_result = opencv_init(video_result) + video_result['video_reader'] = opencv_init_result['video_reader'] + + opencv_decode = OpenCVDecode() + opencv_decode_result = opencv_decode(video_result) + assert assert_dict_has_keys(opencv_decode_result, target_keys) + assert opencv_decode_result['original_shape'] == (256, 340) + assert np.shape(opencv_decode_result['imgs']) == (len( + video_result['frame_inds']), 256, 340, 3) + + def test_rawframe_decode(self): + target_keys = ['frame_inds', 'imgs', 'original_shape', 'modality'] + + # test frame selector with 2 dim input + inputs = copy.deepcopy(self.frame_results) + inputs['frame_inds'] = np.arange(0, self.total_frames, 2)[:, + np.newaxis] + # since the test images start with index 1, we plus 1 to frame_inds + # in order to pass the CI + inputs['frame_inds'] = inputs['frame_inds'] + 1 + + inputs['gt_bboxes'] = np.array([[0, 0, 1, 1]]) + inputs['proposals'] = np.array([[0, 0, 1, 1]]) + frame_selector = RawFrameDecode(io_backend='disk') + results = frame_selector(inputs) + assert assert_dict_has_keys(results, target_keys) + assert np.shape(results['imgs']) == (len(inputs['frame_inds']), 240, + 320, 3) + assert results['original_shape'] == (240, 320) + + # test frame selector with 2 dim input + inputs = copy.deepcopy(self.frame_results) + inputs['frame_inds'] = np.arange(1, self.total_frames, 2)[:, + np.newaxis] + frame_selector = RawFrameDecode(io_backend='disk') + results = frame_selector(inputs) + assert assert_dict_has_keys(results, target_keys) + assert np.shape(results['imgs']) == (len(inputs['frame_inds']), 240, + 320, 3) + assert results['original_shape'] == (240, 320) + + # test frame selector with 1 dim input when start_index = 0 + inputs = copy.deepcopy(self.frame_results) + inputs['frame_inds'] = np.arange(0, self.total_frames, 5) + # since the test images start with index 1, we plus 1 to frame_inds + # in order to pass the CI + inputs['frame_inds'] = inputs['frame_inds'] + 1 + frame_selector = RawFrameDecode(io_backend='disk') + results = frame_selector(inputs) + assert assert_dict_has_keys(results, target_keys) + assert np.shape(results['imgs']) == (len(inputs['frame_inds']), 240, + 320, 3) + assert results['original_shape'] == (240, 320) + + # test frame selector with 1 dim input + inputs = copy.deepcopy(self.frame_results) + inputs['frame_inds'] = np.arange(1, self.total_frames, 5) + frame_selector = RawFrameDecode(io_backend='disk') + results = frame_selector(inputs) + assert assert_dict_has_keys(results, target_keys) + assert np.shape(results['imgs']) == (len(inputs['frame_inds']), 240, + 320, 3) + assert results['original_shape'] == (240, 320) + + # test frame selector with 1 dim input + inputs = copy.deepcopy(self.frame_results) + inputs['frame_inds'] = np.arange(0, self.total_frames, 2) + # since the test images start with index 1, we plus 1 to frame_inds + # in order to pass the CI + inputs['frame_inds'] = inputs['frame_inds'] + 1 + frame_selector = RawFrameDecode(io_backend='disk') + results = frame_selector(inputs) + assert assert_dict_has_keys(results, target_keys) + assert np.shape(results['imgs']) == (len(inputs['frame_inds']), 240, + 320, 3) + assert results['original_shape'] == (240, 320) + + # test frame selector with 1 dim input + inputs = copy.deepcopy(self.frame_results) + inputs['frame_inds'] = np.arange(1, self.total_frames, 2) + frame_selector = RawFrameDecode(io_backend='disk') + results = frame_selector(inputs) + assert assert_dict_has_keys(results, target_keys) + assert np.shape(results['imgs']) == (len(inputs['frame_inds']), 240, + 320, 3) + assert results['original_shape'] == (240, 320) + + # test frame selector with 1 dim input for flow images + inputs = copy.deepcopy(self.flow_frame_results) + inputs['frame_inds'] = np.arange(0, self.total_frames, 2) + # since the test images start with index 1, we plus 1 to frame_inds + # in order to pass the CI + inputs['frame_inds'] = inputs['frame_inds'] + 1 + frame_selector = RawFrameDecode(io_backend='disk') + results = frame_selector(inputs) + assert assert_dict_has_keys(results, target_keys) + assert np.shape(results['imgs']) == (len(inputs['frame_inds']) * 2, + 240, 320) + assert results['original_shape'] == (240, 320) + + # test frame selector with 1 dim input for flow images + inputs = copy.deepcopy(self.flow_frame_results) + inputs['frame_inds'] = np.arange(1, self.total_frames, 2) + frame_selector = RawFrameDecode(io_backend='disk') + results = frame_selector(inputs) + assert assert_dict_has_keys(results, target_keys) + assert np.shape(results['imgs']) == (len(inputs['frame_inds']) * 2, + 240, 320) + assert results['original_shape'] == (240, 320) + + if platform.system() != 'Windows': + # test frame selector in turbojpeg decoding backend + # when start_index = 0 + inputs = copy.deepcopy(self.frame_results) + inputs['frame_inds'] = np.arange(0, self.total_frames, 5) + # since the test images start with index 1, we plus 1 to frame_inds + # in order to pass the CI + inputs['frame_inds'] = inputs['frame_inds'] + 1 + frame_selector = RawFrameDecode( + io_backend='disk', decoding_backend='turbojpeg') + results = frame_selector(inputs) + assert assert_dict_has_keys(results, target_keys) + assert np.shape(results['imgs']) == (len(inputs['frame_inds']), + 240, 320, 3) + assert results['original_shape'] == (240, 320) + + # test frame selector in turbojpeg decoding backend + inputs = copy.deepcopy(self.frame_results) + inputs['frame_inds'] = np.arange(1, self.total_frames, 5) + frame_selector = RawFrameDecode( + io_backend='disk', decoding_backend='turbojpeg') + results = frame_selector(inputs) + assert assert_dict_has_keys(results, target_keys) + assert np.shape(results['imgs']) == (len(inputs['frame_inds']), + 240, 320, 3) + assert results['original_shape'] == (240, 320) + assert repr(frame_selector) == ( + f'{frame_selector.__class__.__name__}(io_backend=disk, ' + f'decoding_backend=turbojpeg)') + + def test_audio_decode_init(self): + target_keys = ['audios', 'length', 'sample_rate'] + inputs = copy.deepcopy(self.audio_results) + audio_decode_init = AudioDecodeInit() + results = audio_decode_init(inputs) + assert assert_dict_has_keys(results, target_keys) + + # test when no audio file exists + inputs = copy.deepcopy(self.audio_results) + inputs['audio_path'] = 'foo/foo/bar.wav' + audio_decode_init = AudioDecodeInit() + results = audio_decode_init(inputs) + assert assert_dict_has_keys(results, target_keys) + assert results['audios'].shape == (10.0 * + audio_decode_init.sample_rate, ) + assert repr(audio_decode_init) == ( + f'{audio_decode_init.__class__.__name__}(' + f'io_backend=disk, ' + f'sample_rate=16000, ' + f'pad_method=zero)') + + def test_audio_decode(self): + target_keys = ['frame_inds', 'audios'] + inputs = copy.deepcopy(self.audio_results) + inputs['frame_inds'] = np.arange(0, self.audio_total_frames, + 2)[:, np.newaxis] + inputs['num_clips'] = 1 + inputs['length'] = 1280 + audio_selector = AudioDecode() + results = audio_selector(inputs) + assert assert_dict_has_keys(results, target_keys) + + def test_pyav_decode_motion_vector(self): + pyav_init = PyAVInit() + pyav = PyAVDecodeMotionVector() + + # test pyav with 2-dim input + results = { + 'filename': self.video_path, + 'frame_inds': np.arange(0, 32, 1)[:, np.newaxis] + } + results = pyav_init(results) + results = pyav(results) + target_keys = ['motion_vectors'] + assert assert_dict_has_keys(results, target_keys) + + # test pyav with 1 dim input + results = { + 'filename': self.video_path, + 'frame_inds': np.arange(0, 32, 1) + } + pyav_init = PyAVInit() + results = pyav_init(results) + pyav = PyAVDecodeMotionVector() + results = pyav(results) + + assert assert_dict_has_keys(results, target_keys) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_load.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_load.py new file mode 100644 index 00000000..560edd09 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_load.py @@ -0,0 +1,152 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy + +import numpy as np +import pytest +import torch +from mmcv.utils import assert_dict_has_keys +from numpy.testing import assert_array_almost_equal + +from mmaction.datasets.pipelines import (LoadAudioFeature, LoadHVULabel, + LoadLocalizationFeature, + LoadProposals) +from .base import BaseTestLoading + + +class TestLoad(BaseTestLoading): + + def test_load_hvu_label(self): + hvu_label_example1 = copy.deepcopy(self.hvu_label_example1) + hvu_label_example2 = copy.deepcopy(self.hvu_label_example2) + categories = hvu_label_example1['categories'] + category_nums = hvu_label_example1['category_nums'] + num_tags = sum(category_nums) + num_categories = len(categories) + + loader = LoadHVULabel() + assert repr(loader) == (f'{loader.__class__.__name__}(' + f'hvu_initialized={False})') + + result1 = loader(hvu_label_example1) + label1 = torch.zeros(num_tags) + mask1 = torch.zeros(num_tags) + category_mask1 = torch.zeros(num_categories) + + assert repr(loader) == (f'{loader.__class__.__name__}(' + f'hvu_initialized={True})') + + label1[[0, 4, 5, 7, 8]] = 1. + mask1[:10] = 1. + category_mask1[:3] = 1. + + assert torch.all(torch.eq(label1, result1['label'])) + assert torch.all(torch.eq(mask1, result1['mask'])) + assert torch.all(torch.eq(category_mask1, result1['category_mask'])) + + result2 = loader(hvu_label_example2) + label2 = torch.zeros(num_tags) + mask2 = torch.zeros(num_tags) + category_mask2 = torch.zeros(num_categories) + + label2[[1, 8, 9, 11]] = 1. + mask2[:2] = 1. + mask2[7:] = 1. + category_mask2[[0, 2, 3]] = 1. + + assert torch.all(torch.eq(label2, result2['label'])) + assert torch.all(torch.eq(mask2, result2['mask'])) + assert torch.all(torch.eq(category_mask2, result2['category_mask'])) + + def test_load_localization_feature(self): + target_keys = ['raw_feature'] + + action_result = copy.deepcopy(self.action_results) + + # test error cases + with pytest.raises(NotImplementedError): + load_localization_feature = LoadLocalizationFeature( + 'unsupport_ext') + + # test normal cases + load_localization_feature = LoadLocalizationFeature() + load_localization_feature_result = load_localization_feature( + action_result) + assert assert_dict_has_keys(load_localization_feature_result, + target_keys) + assert load_localization_feature_result['raw_feature'].shape == (400, + 5) + assert repr(load_localization_feature) == ( + f'{load_localization_feature.__class__.__name__}(' + f'raw_feature_ext=.csv)') + + def test_load_proposals(self): + target_keys = [ + 'bsp_feature', 'tmin', 'tmax', 'tmin_score', 'tmax_score', + 'reference_temporal_iou' + ] + + action_result = copy.deepcopy(self.action_results) + + # test error cases + with pytest.raises(NotImplementedError): + load_proposals = LoadProposals(5, self.proposals_dir, + self.bsp_feature_dir, + 'unsupport_ext') + + with pytest.raises(NotImplementedError): + load_proposals = LoadProposals(5, self.proposals_dir, + self.bsp_feature_dir, '.csv', + 'unsupport_ext') + + # test normal cases + load_proposals = LoadProposals(5, self.proposals_dir, + self.bsp_feature_dir) + load_proposals_result = load_proposals(action_result) + assert assert_dict_has_keys(load_proposals_result, target_keys) + assert load_proposals_result['bsp_feature'].shape[0] == 5 + assert load_proposals_result['tmin'].shape == (5, ) + assert_array_almost_equal( + load_proposals_result['tmin'], np.arange(0.1, 0.6, 0.1), decimal=4) + assert load_proposals_result['tmax'].shape == (5, ) + assert_array_almost_equal( + load_proposals_result['tmax'], np.arange(0.2, 0.7, 0.1), decimal=4) + assert load_proposals_result['tmin_score'].shape == (5, ) + assert_array_almost_equal( + load_proposals_result['tmin_score'], + np.arange(0.95, 0.90, -0.01), + decimal=4) + assert load_proposals_result['tmax_score'].shape == (5, ) + assert_array_almost_equal( + load_proposals_result['tmax_score'], + np.arange(0.96, 0.91, -0.01), + decimal=4) + assert load_proposals_result['reference_temporal_iou'].shape == (5, ) + assert_array_almost_equal( + load_proposals_result['reference_temporal_iou'], + np.arange(0.85, 0.80, -0.01), + decimal=4) + assert repr(load_proposals) == ( + f'{load_proposals.__class__.__name__}(' + f'top_k={5}, ' + f'pgm_proposals_dir={self.proposals_dir}, ' + f'pgm_features_dir={self.bsp_feature_dir}, ' + f'proposal_ext=.csv, ' + f'feature_ext=.npy)') + + def test_load_audio_feature(self): + target_keys = ['audios'] + inputs = copy.deepcopy(self.audio_feature_results) + load_audio_feature = LoadAudioFeature() + results = load_audio_feature(inputs) + assert assert_dict_has_keys(results, target_keys) + + # test when no audio feature file exists + inputs = copy.deepcopy(self.audio_feature_results) + inputs['audio_path'] = 'foo/foo/bar.npy' + load_audio_feature = LoadAudioFeature() + results = load_audio_feature(inputs) + assert results['audios'].shape == (640, 80) + assert assert_dict_has_keys(results, target_keys) + assert repr(load_audio_feature) == ( + f'{load_audio_feature.__class__.__name__}(' + f'pad_method=zero)') diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_localization.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_localization.py new file mode 100644 index 00000000..40005965 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_localization.py @@ -0,0 +1,28 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy + +import numpy as np +from mmcv.utils import assert_dict_has_keys +from numpy.testing import assert_array_almost_equal + +from mmaction.datasets.pipelines import GenerateLocalizationLabels +from .base import BaseTestLoading + + +class TestLocalization(BaseTestLoading): + + def test_generate_localization_label(self): + action_result = copy.deepcopy(self.action_results) + action_result['raw_feature'] = np.random.randn(400, 5) + + # test default setting + target_keys = ['gt_bbox'] + generate_localization_labels = GenerateLocalizationLabels() + generate_localization_labels_result = generate_localization_labels( + action_result) + assert assert_dict_has_keys(generate_localization_labels_result, + target_keys) + + assert_array_almost_equal( + generate_localization_labels_result['gt_bbox'], [[0.375, 0.625]], + decimal=4) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_pose_loading.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_pose_loading.py new file mode 100644 index 00000000..055f4e67 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_pose_loading.py @@ -0,0 +1,391 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy as cp +import os.path as osp +import tempfile +from collections import defaultdict + +import numpy as np +import pytest +from mmcv import dump +from mmcv.utils import assert_dict_has_keys +from numpy.testing import assert_array_almost_equal, assert_array_equal + +from mmaction.datasets.pipelines import (GeneratePoseTarget, LoadKineticsPose, + PaddingWithLoop, PoseDecode, + PoseNormalize, UniformSampleFrames) + + +class TestPoseLoading: + + @staticmethod + def test_uniform_sample_frames(): + results = dict(total_frames=64, start_index=0) + sampling = UniformSampleFrames( + clip_len=8, num_clips=1, test_mode=True, seed=0) + + assert str(sampling) == ('UniformSampleFrames(clip_len=8, ' + 'num_clips=1, test_mode=True, seed=0)') + sampling_results = sampling(results) + assert sampling_results['clip_len'] == 8 + assert sampling_results['frame_interval'] is None + assert sampling_results['num_clips'] == 1 + assert_array_equal(sampling_results['frame_inds'], + np.array([4, 15, 21, 24, 35, 43, 51, 63])) + + results = dict(total_frames=15, start_index=0) + sampling = UniformSampleFrames( + clip_len=8, num_clips=1, test_mode=True, seed=0) + sampling_results = sampling(results) + assert sampling_results['clip_len'] == 8 + assert sampling_results['frame_interval'] is None + assert sampling_results['num_clips'] == 1 + assert_array_equal(sampling_results['frame_inds'], + np.array([0, 2, 4, 6, 8, 9, 11, 13])) + + results = dict(total_frames=7, start_index=0) + sampling = UniformSampleFrames( + clip_len=8, num_clips=1, test_mode=True, seed=0) + sampling_results = sampling(results) + assert sampling_results['clip_len'] == 8 + assert sampling_results['frame_interval'] is None + assert sampling_results['num_clips'] == 1 + assert_array_equal(sampling_results['frame_inds'], + np.array([0, 1, 2, 3, 4, 5, 6, 0])) + + results = dict(total_frames=7, start_index=0) + sampling = UniformSampleFrames( + clip_len=8, num_clips=8, test_mode=True, seed=0) + sampling_results = sampling(results) + assert sampling_results['clip_len'] == 8 + assert sampling_results['frame_interval'] is None + assert sampling_results['num_clips'] == 8 + assert len(sampling_results['frame_inds']) == 64 + + results = dict(total_frames=64, start_index=0) + sampling = UniformSampleFrames( + clip_len=8, num_clips=4, test_mode=True, seed=0) + sampling_results = sampling(results) + assert sampling_results['clip_len'] == 8 + assert sampling_results['frame_interval'] is None + assert sampling_results['num_clips'] == 4 + assert_array_equal( + sampling_results['frame_inds'], + np.array([ + 4, 15, 21, 24, 35, 43, 51, 63, 1, 11, 21, 26, 36, 47, 54, 56, + 0, 12, 18, 25, 38, 47, 55, 62, 0, 9, 21, 25, 37, 40, 49, 60 + ])) + + results = dict(total_frames=64, start_index=0) + sampling = UniformSampleFrames( + clip_len=8, num_clips=1, test_mode=False, seed=0) + sampling_results = sampling(results) + assert sampling_results['clip_len'] == 8 + assert sampling_results['frame_interval'] is None + assert sampling_results['num_clips'] == 1 + assert len(sampling_results['frame_inds']) == 8 + + results = dict(total_frames=7, start_index=0) + sampling = UniformSampleFrames( + clip_len=8, num_clips=1, test_mode=False, seed=0) + sampling_results = sampling(results) + assert sampling_results['clip_len'] == 8 + assert sampling_results['frame_interval'] is None + assert sampling_results['num_clips'] == 1 + assert len(sampling_results['frame_inds']) == 8 + + results = dict(total_frames=15, start_index=0) + sampling = UniformSampleFrames( + clip_len=8, num_clips=1, test_mode=False, seed=0) + sampling_results = sampling(results) + assert sampling_results['clip_len'] == 8 + assert sampling_results['frame_interval'] is None + assert sampling_results['num_clips'] == 1 + assert len(sampling_results['frame_inds']) == 8 + + @staticmethod + def test_pose_decode(): + kp = np.random.random([1, 16, 17, 2]) + kpscore = np.random.random([1, 16, 17]) + frame_inds = np.array([2, 4, 6, 8, 10]) + results = dict( + keypoint=kp, keypoint_score=kpscore, frame_inds=frame_inds) + pose_decode = PoseDecode() + assert str(pose_decode) == ('PoseDecode()') + decode_results = pose_decode(results) + assert_array_almost_equal(decode_results['keypoint'], kp[:, + frame_inds]) + assert_array_almost_equal(decode_results['keypoint_score'], + kpscore[:, frame_inds]) + + results = dict(keypoint=kp, keypoint_score=kpscore, total_frames=16) + pose_decode = PoseDecode() + decode_results = pose_decode(results) + assert_array_almost_equal(decode_results['keypoint'], kp) + assert_array_almost_equal(decode_results['keypoint_score'], kpscore) + + @staticmethod + def test_load_kinetics_pose(): + + def get_mode(arr): + cnt = defaultdict(lambda: 0) + for num in arr: + cnt[num] += 1 + max_val = max(cnt.values()) + return [k for k in cnt if cnt[k] == max_val], max_val + + with tempfile.TemporaryDirectory() as tmpdir: + filename = osp.join(tmpdir, 'tmp.pkl') + total_frames = 100 + img_shape = (224, 224) + frame_inds = np.random.choice(range(100), size=120) + frame_inds.sort() + anno_flag = np.random.random(120) > 0.1 + anno_inds = np.array([i for i, f in enumerate(anno_flag) if f]) + kp = np.random.random([120, 17, 3]) + dump(kp, filename) + results = dict( + filename=filename, + total_frames=total_frames, + img_shape=img_shape, + frame_inds=frame_inds) + + inp = cp.deepcopy(results) + + with pytest.raises(NotImplementedError): + LoadKineticsPose(squeeze=True, max_person=100, source='xxx') + + load_kinetics_pose = LoadKineticsPose( + squeeze=True, max_person=100, source='openpose-18') + + assert str(load_kinetics_pose) == ( + 'LoadKineticsPose(io_backend=disk, ' + 'squeeze=True, max_person=100, ' + "keypoint_weight={'face': 1, " + "'torso': 2, 'limb': 3}, " + 'source=openpose-18, kwargs={})') + return_results = load_kinetics_pose(inp) + assert return_results['keypoint'].shape[:-1] == \ + return_results['keypoint_score'].shape + + num_person = return_results['keypoint'].shape[0] + num_frame = return_results['keypoint'].shape[1] + assert num_person == get_mode(frame_inds)[1] + assert np.max(return_results['keypoint']) > 1 + assert num_frame == len(set(frame_inds)) + + inp = cp.deepcopy(results) + load_kinetics_pose = LoadKineticsPose( + squeeze=False, max_person=100, source='openpose-18') + return_results = load_kinetics_pose(inp) + assert return_results['keypoint'].shape[:-1] == \ + return_results['keypoint_score'].shape + + num_person = return_results['keypoint'].shape[0] + num_frame = return_results['keypoint'].shape[1] + assert num_person == get_mode(frame_inds)[1] + assert np.max(return_results['keypoint']) > 1 + assert num_frame == total_frames + + inp = cp.deepcopy(results) + inp['anno_inds'] = anno_inds + load_kinetics_pose = LoadKineticsPose( + squeeze=True, max_person=100, source='mmpose') + return_results = load_kinetics_pose(inp) + assert return_results['keypoint'].shape[:-1] == \ + return_results['keypoint_score'].shape + + num_person = return_results['keypoint'].shape[0] + num_frame = return_results['keypoint'].shape[1] + assert num_person == get_mode(frame_inds[anno_inds])[1] + assert np.max(return_results['keypoint']) <= 1 + assert num_frame == len(set(frame_inds[anno_inds])) + + inp = cp.deepcopy(results) + inp['anno_inds'] = anno_inds + load_kinetics_pose = LoadKineticsPose( + squeeze=True, max_person=2, source='mmpose') + return_results = load_kinetics_pose(inp) + assert return_results['keypoint'].shape[:-1] == \ + return_results['keypoint_score'].shape + + num_person = return_results['keypoint'].shape[0] + num_frame = return_results['keypoint'].shape[1] + assert num_person <= 2 + assert np.max(return_results['keypoint']) <= 1 + assert num_frame == len(set(frame_inds[anno_inds])) + + @staticmethod + def test_generate_pose_target(): + img_shape = (64, 64) + kp = np.array([[[[24, 24], [40, 40], [24, 40]]]]) + kpscore = np.array([[[1., 1., 1.]]]) + kp = np.concatenate([kp] * 8, axis=1) + kpscore = np.concatenate([kpscore] * 8, axis=1) + results = dict( + img_shape=img_shape, + keypoint=kp, + keypoint_score=kpscore, + modality='Pose') + + generate_pose_target = GeneratePoseTarget( + sigma=1, with_kp=True, left_kp=(0, ), right_kp=(1, ), skeletons=()) + assert str(generate_pose_target) == ('GeneratePoseTarget(sigma=1, ' + 'use_score=True, with_kp=True, ' + 'with_limb=False, skeletons=(), ' + 'double=False, left_kp=(0,), ' + 'right_kp=(1,))') + return_results = generate_pose_target(results) + assert return_results['imgs'].shape == (8, 64, 64, 3) + assert_array_almost_equal(return_results['imgs'][0], + return_results['imgs'][1]) + + results = dict(img_shape=img_shape, keypoint=kp, modality='Pose') + + generate_pose_target = GeneratePoseTarget( + sigma=1, with_kp=True, left_kp=(0, ), right_kp=(1, ), skeletons=()) + return_results = generate_pose_target(results) + assert return_results['imgs'].shape == (8, 64, 64, 3) + assert_array_almost_equal(return_results['imgs'][0], + return_results['imgs'][1]) + + generate_pose_target = GeneratePoseTarget( + sigma=1, + with_kp=False, + with_limb=True, + left_kp=(0, ), + right_kp=(1, ), + skeletons=((0, 1), (1, 2), (0, 2))) + return_results = generate_pose_target(results) + assert return_results['imgs'].shape == (8, 64, 64, 3) + assert_array_almost_equal(return_results['imgs'][0], + return_results['imgs'][1]) + + generate_pose_target = GeneratePoseTarget( + sigma=1, + with_kp=True, + with_limb=True, + left_kp=(0, ), + right_kp=(1, ), + skeletons=((0, 1), (1, 2), (0, 2))) + return_results = generate_pose_target(results) + assert return_results['imgs'].shape == (8, 64, 64, 6) + assert_array_almost_equal(return_results['imgs'][0], + return_results['imgs'][1]) + + generate_pose_target = GeneratePoseTarget( + sigma=1, + with_kp=True, + with_limb=True, + double=True, + left_kp=(0, ), + right_kp=(1, ), + skeletons=((0, 1), (1, 2), (0, 2))) + return_results = generate_pose_target(results) + imgs = return_results['imgs'] + assert imgs.shape == (16, 64, 64, 6) + assert_array_almost_equal(imgs[0], imgs[1]) + assert_array_almost_equal(imgs[:8, 2], imgs[8:, 2, :, ::-1]) + assert_array_almost_equal(imgs[:8, 0], imgs[8:, 1, :, ::-1]) + assert_array_almost_equal(imgs[:8, 1], imgs[8:, 0, :, ::-1]) + + img_shape = (64, 64) + kp = np.array([[[[24, 24], [40, 40], [24, 40]]]]) + kpscore = np.array([[[0., 0., 0.]]]) + kp = np.concatenate([kp] * 8, axis=1) + kpscore = np.concatenate([kpscore] * 8, axis=1) + results = dict( + img_shape=img_shape, + keypoint=kp, + keypoint_score=kpscore, + modality='Pose') + generate_pose_target = GeneratePoseTarget( + sigma=1, with_kp=True, left_kp=(0, ), right_kp=(1, ), skeletons=()) + return_results = generate_pose_target(results) + assert_array_almost_equal(return_results['imgs'], 0) + + img_shape = (64, 64) + kp = np.array([[[[24, 24], [40, 40], [24, 40]]]]) + kpscore = np.array([[[0., 0., 0.]]]) + kp = np.concatenate([kp] * 8, axis=1) + kpscore = np.concatenate([kpscore] * 8, axis=1) + results = dict( + img_shape=img_shape, + keypoint=kp, + keypoint_score=kpscore, + modality='Pose') + generate_pose_target = GeneratePoseTarget( + sigma=1, + with_kp=False, + with_limb=True, + left_kp=(0, ), + right_kp=(1, ), + skeletons=((0, 1), (1, 2), (0, 2))) + return_results = generate_pose_target(results) + assert_array_almost_equal(return_results['imgs'], 0) + + img_shape = (64, 64) + kp = np.array([[[[124, 124], [140, 140], [124, 140]]]]) + kpscore = np.array([[[0., 0., 0.]]]) + kp = np.concatenate([kp] * 8, axis=1) + kpscore = np.concatenate([kpscore] * 8, axis=1) + results = dict( + img_shape=img_shape, + keypoint=kp, + keypoint_score=kpscore, + modality='Pose') + generate_pose_target = GeneratePoseTarget( + sigma=1, with_kp=True, left_kp=(0, ), right_kp=(1, ), skeletons=()) + return_results = generate_pose_target(results) + assert_array_almost_equal(return_results['imgs'], 0) + + img_shape = (64, 64) + kp = np.array([[[[124, 124], [140, 140], [124, 140]]]]) + kpscore = np.array([[[0., 0., 0.]]]) + kp = np.concatenate([kp] * 8, axis=1) + kpscore = np.concatenate([kpscore] * 8, axis=1) + results = dict( + img_shape=img_shape, + keypoint=kp, + keypoint_score=kpscore, + modality='Pose') + generate_pose_target = GeneratePoseTarget( + sigma=1, + with_kp=False, + with_limb=True, + left_kp=(0, ), + right_kp=(1, ), + skeletons=((0, 1), (1, 2), (0, 2))) + return_results = generate_pose_target(results) + assert_array_almost_equal(return_results['imgs'], 0) + + @staticmethod + def test_padding_with_loop(): + results = dict(total_frames=3) + sampling = PaddingWithLoop(clip_len=6) + sampling_results = sampling(results) + assert sampling_results['clip_len'] == 6 + assert sampling_results['frame_interval'] is None + assert sampling_results['num_clips'] == 1 + assert_array_equal(sampling_results['frame_inds'], + np.array([0, 1, 2, 0, 1, 2])) + + @staticmethod + def test_pose_normalize(): + target_keys = ['keypoint', 'keypoint_norm_cfg'] + keypoints = np.random.randn(3, 300, 17, 2) + results = dict(keypoint=keypoints) + pose_normalize = PoseNormalize( + mean=[960., 540., 0.5], + min_value=[0., 0., 0.], + max_value=[1920, 1080, 1.]) + normalize_results = pose_normalize(results) + assert assert_dict_has_keys(normalize_results, target_keys) + check_pose_normalize(keypoints, normalize_results['keypoint'], + normalize_results['keypoint_norm_cfg']) + + +def check_pose_normalize(origin_keypoints, result_keypoints, norm_cfg): + target_keypoints = result_keypoints.copy() + target_keypoints *= (norm_cfg['max_value'] - norm_cfg['min_value']) + target_keypoints += norm_cfg['mean'] + assert_array_almost_equal(origin_keypoints, target_keypoints, decimal=4) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_sampling.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_sampling.py new file mode 100644 index 00000000..ff08436a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_pipelines/test_loadings/test_sampling.py @@ -0,0 +1,757 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy + +import numpy as np +import pytest +from mmcv.utils import assert_dict_has_keys +from numpy.testing import assert_array_equal + +from mmaction.datasets.pipelines import (AudioFeatureSelector, + DenseSampleFrames, SampleAVAFrames, + SampleFrames, SampleProposalFrames, + UntrimmedSampleFrames) +from .base import BaseTestLoading + + +class TestSampling(BaseTestLoading): + + def test_sample_frames(self): + target_keys = [ + 'frame_inds', 'clip_len', 'frame_interval', 'num_clips', + 'total_frames' + ] + + with pytest.warns(UserWarning): + # start_index has been deprecated + config = dict( + clip_len=3, frame_interval=1, num_clips=5, start_index=1) + SampleFrames(**config) + + # Sample Frame with tail Frames + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + config = dict( + clip_len=3, frame_interval=1, num_clips=5, keep_tail_frames=True) + sample_frames = SampleFrames(**config) + sample_frames(video_result) + sample_frames(frame_result) + + # Sample Frame with no temporal_jitter + # clip_len=3, frame_interval=1, num_clips=5 + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + config = dict( + clip_len=3, frame_interval=1, num_clips=5, temporal_jitter=False) + sample_frames = SampleFrames(**config) + sample_frames_results = sample_frames(video_result) + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 15 + sample_frames_results = sample_frames(frame_result) + assert len(sample_frames_results['frame_inds']) == 15 + assert np.max(sample_frames_results['frame_inds']) <= 5 + assert np.min(sample_frames_results['frame_inds']) >= 1 + assert repr(sample_frames) == (f'{sample_frames.__class__.__name__}(' + f'clip_len={3}, ' + f'frame_interval={1}, ' + f'num_clips={5}, ' + f'temporal_jitter={False}, ' + f'twice_sample={False}, ' + f'out_of_bound_opt=loop, ' + f'test_mode={False})') + + # Sample Frame with no temporal_jitter + # clip_len=5, frame_interval=1, num_clips=5, + # out_of_bound_opt='repeat_last' + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + config = dict( + clip_len=5, + frame_interval=1, + num_clips=5, + temporal_jitter=False, + out_of_bound_opt='repeat_last') + sample_frames = SampleFrames(**config) + sample_frames_results = sample_frames(video_result) + assert repr(sample_frames) == (f'{sample_frames.__class__.__name__}(' + f'clip_len={5}, ' + f'frame_interval={1}, ' + f'num_clips={5}, ' + f'temporal_jitter={False}, ' + f'twice_sample={False}, ' + f'out_of_bound_opt=repeat_last, ' + f'test_mode={False})') + + def check_monotonous(arr): + length = arr.shape[0] + for i in range(length - 1): + if arr[i] > arr[i + 1]: + return False + return True + + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 25 + frame_inds = sample_frames_results['frame_inds'].reshape([5, 5]) + for i in range(5): + assert check_monotonous(frame_inds[i]) + + sample_frames_results = sample_frames(frame_result) + assert len(sample_frames_results['frame_inds']) == 25 + frame_inds = sample_frames_results['frame_inds'].reshape([5, 5]) + for i in range(5): + assert check_monotonous(frame_inds[i]) + assert np.max(sample_frames_results['frame_inds']) <= 5 + assert np.min(sample_frames_results['frame_inds']) >= 1 + + # Sample Frame with temporal_jitter + # clip_len=4, frame_interval=2, num_clips=5 + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + config = dict( + clip_len=4, frame_interval=2, num_clips=5, temporal_jitter=True) + sample_frames = SampleFrames(**config) + sample_frames_results = sample_frames(video_result) + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 20 + sample_frames_results = sample_frames(frame_result) + assert len(sample_frames_results['frame_inds']) == 20 + assert np.max(sample_frames_results['frame_inds']) <= 5 + assert np.min(sample_frames_results['frame_inds']) >= 1 + assert repr(sample_frames) == (f'{sample_frames.__class__.__name__}(' + f'clip_len={4}, ' + f'frame_interval={2}, ' + f'num_clips={5}, ' + f'temporal_jitter={True}, ' + f'twice_sample={False}, ' + f'out_of_bound_opt=loop, ' + f'test_mode={False})') + + # Sample Frame with no temporal_jitter in test mode + # clip_len=4, frame_interval=1, num_clips=6 + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + config = dict( + clip_len=4, + frame_interval=1, + num_clips=6, + temporal_jitter=False, + test_mode=True) + sample_frames = SampleFrames(**config) + sample_frames_results = sample_frames(video_result) + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 24 + sample_frames_results = sample_frames(frame_result) + assert len(sample_frames_results['frame_inds']) == 24 + assert np.max(sample_frames_results['frame_inds']) <= 5 + assert np.min(sample_frames_results['frame_inds']) >= 1 + assert repr(sample_frames) == (f'{sample_frames.__class__.__name__}(' + f'clip_len={4}, ' + f'frame_interval={1}, ' + f'num_clips={6}, ' + f'temporal_jitter={False}, ' + f'twice_sample={False}, ' + f'out_of_bound_opt=loop, ' + f'test_mode={True})') + + # Sample Frame with no temporal_jitter in test mode + # clip_len=3, frame_interval=1, num_clips=6 + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + config = dict( + clip_len=3, + frame_interval=1, + num_clips=6, + temporal_jitter=False, + test_mode=True) + sample_frames = SampleFrames(**config) + sample_frames_results = sample_frames(video_result) + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 18 + sample_frames_results = sample_frames(frame_result) + assert len(sample_frames_results['frame_inds']) == 18 + assert np.max(sample_frames_results['frame_inds']) <= 5 + assert np.min(sample_frames_results['frame_inds']) >= 1 + + # Sample Frame with no temporal_jitter to get clip_offsets + # clip_len=1, frame_interval=1, num_clips=8 + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + frame_result['total_frames'] = 6 + config = dict( + clip_len=1, + frame_interval=1, + num_clips=8, + temporal_jitter=False, + test_mode=True) + sample_frames = SampleFrames(**config) + sample_frames_results = sample_frames(video_result) + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 8 + sample_frames_results = sample_frames(frame_result) + assert len(sample_frames_results['frame_inds']) == 8 + assert_array_equal(sample_frames_results['frame_inds'], + np.array([1, 2, 2, 3, 4, 5, 5, 6])) + + # Sample Frame with no temporal_jitter to get clip_offsets + # clip_len=1, frame_interval=1, num_clips=8 + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + frame_result['total_frames'] = 6 + config = dict( + clip_len=1, + frame_interval=1, + num_clips=8, + temporal_jitter=False, + test_mode=True) + sample_frames = SampleFrames(**config) + sample_frames_results = sample_frames(video_result) + assert sample_frames_results['start_index'] == 0 + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 8 + sample_frames_results = sample_frames(frame_result) + assert len(sample_frames_results['frame_inds']) == 8 + assert_array_equal(sample_frames_results['frame_inds'], + np.array([1, 2, 2, 3, 4, 5, 5, 6])) + + # Sample Frame with no temporal_jitter to get clip_offsets zero + # clip_len=6, frame_interval=1, num_clips=1 + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + frame_result['total_frames'] = 5 + config = dict( + clip_len=6, + frame_interval=1, + num_clips=1, + temporal_jitter=False, + test_mode=True) + sample_frames = SampleFrames(**config) + sample_frames_results = sample_frames(video_result) + assert sample_frames_results['start_index'] == 0 + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 6 + sample_frames_results = sample_frames(frame_result) + assert len(sample_frames_results['frame_inds']) == 6 + assert_array_equal(sample_frames_results['frame_inds'], + [1, 2, 3, 4, 5, 1]) + + # Sample Frame with no temporal_jitter to get avg_interval <= 0 + # clip_len=12, frame_interval=1, num_clips=20 + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + frame_result['total_frames'] = 30 + config = dict( + clip_len=12, + frame_interval=1, + num_clips=20, + temporal_jitter=False, + test_mode=False) + sample_frames = SampleFrames(**config) + sample_frames_results = sample_frames(video_result) + assert sample_frames_results['start_index'] == 0 + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 240 + sample_frames_results = sample_frames(frame_result) + assert len(sample_frames_results['frame_inds']) == 240 + assert np.max(sample_frames_results['frame_inds']) <= 30 + assert np.min(sample_frames_results['frame_inds']) >= 1 + + # Sample Frame with no temporal_jitter to get clip_offsets + # clip_len=1, frame_interval=1, num_clips=8 + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + frame_result['total_frames'] = 6 + config = dict( + clip_len=1, + frame_interval=1, + num_clips=8, + temporal_jitter=False, + test_mode=False) + sample_frames = SampleFrames(**config) + sample_frames_results = sample_frames(video_result) + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert sample_frames_results['start_index'] == 0 + assert len(sample_frames_results['frame_inds']) == 8 + sample_frames_results = sample_frames(frame_result) + assert len(sample_frames_results['frame_inds']) == 8 + assert_array_equal(sample_frames_results['frame_inds'], + np.array([1, 2, 3, 3, 4, 5, 5, 6])) + + # Sample Frame with no temporal_jitter to get clip_offsets zero + # clip_len=12, frame_interval=1, num_clips=2 + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + frame_result['total_frames'] = 10 + config = dict( + clip_len=12, + frame_interval=1, + num_clips=2, + temporal_jitter=False, + test_mode=False) + sample_frames = SampleFrames(**config) + sample_frames_results = sample_frames(video_result) + assert sample_frames_results['start_index'] == 0 + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 24 + sample_frames_results = sample_frames(frame_result) + assert len(sample_frames_results['frame_inds']) == 24 + assert np.max(sample_frames_results['frame_inds']) <= 10 + assert np.min(sample_frames_results['frame_inds']) >= 1 + + # Sample Frame using twice sample + # clip_len=12, frame_interval=1, num_clips=2 + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + frame_result['total_frames'] = 40 + config = dict( + clip_len=12, + frame_interval=1, + num_clips=2, + temporal_jitter=False, + twice_sample=True, + test_mode=True) + sample_frames = SampleFrames(**config) + sample_frames_results = sample_frames(video_result) + assert sample_frames_results['start_index'] == 0 + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 48 + sample_frames_results = sample_frames(frame_result) + assert len(sample_frames_results['frame_inds']) == 48 + assert np.max(sample_frames_results['frame_inds']) <= 40 + assert np.min(sample_frames_results['frame_inds']) >= 1 + + def test_dense_sample_frames(self): + target_keys = [ + 'frame_inds', 'clip_len', 'frame_interval', 'num_clips', + 'total_frames' + ] + + # Dense sample with no temporal_jitter in test mode + # clip_len=4, frame_interval=1, num_clips=6 + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + config = dict( + clip_len=4, + frame_interval=1, + num_clips=6, + temporal_jitter=False, + test_mode=True) + dense_sample_frames = DenseSampleFrames(**config) + dense_sample_frames_results = dense_sample_frames(video_result) + assert dense_sample_frames_results['start_index'] == 0 + assert assert_dict_has_keys(dense_sample_frames_results, target_keys) + assert len(dense_sample_frames_results['frame_inds']) == 240 + dense_sample_frames_results = dense_sample_frames(frame_result) + assert len(dense_sample_frames_results['frame_inds']) == 240 + assert repr(dense_sample_frames) == ( + f'{dense_sample_frames.__class__.__name__}(' + f'clip_len={4}, ' + f'frame_interval={1}, ' + f'num_clips={6}, ' + f'sample_range={64}, ' + f'num_sample_positions={10}, ' + f'temporal_jitter={False}, ' + f'out_of_bound_opt=loop, ' + f'test_mode={True})') + + # Dense sample with no temporal_jitter + # clip_len=4, frame_interval=1, num_clips=6 + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + config = dict( + clip_len=4, frame_interval=1, num_clips=6, temporal_jitter=False) + dense_sample_frames = DenseSampleFrames(**config) + dense_sample_frames_results = dense_sample_frames(video_result) + assert dense_sample_frames_results['start_index'] == 0 + assert assert_dict_has_keys(dense_sample_frames_results, target_keys) + assert len(dense_sample_frames_results['frame_inds']) == 24 + dense_sample_frames_results = dense_sample_frames(frame_result) + assert len(dense_sample_frames_results['frame_inds']) == 24 + + # Dense sample with no temporal_jitter, sample_range=32 in test mode + # clip_len=4, frame_interval=1, num_clips=6 + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + config = dict( + clip_len=4, + frame_interval=1, + num_clips=6, + sample_range=32, + temporal_jitter=False, + test_mode=True) + dense_sample_frames = DenseSampleFrames(**config) + dense_sample_frames_results = dense_sample_frames(video_result) + assert dense_sample_frames_results['start_index'] == 0 + assert assert_dict_has_keys(dense_sample_frames_results, target_keys) + assert len(dense_sample_frames_results['frame_inds']) == 240 + dense_sample_frames_results = dense_sample_frames(frame_result) + assert len(dense_sample_frames_results['frame_inds']) == 240 + + # Dense sample with no temporal_jitter, sample_range=32 + # clip_len=4, frame_interval=1, num_clips=6 + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + config = dict( + clip_len=4, + frame_interval=1, + num_clips=6, + sample_range=32, + temporal_jitter=False) + dense_sample_frames = DenseSampleFrames(**config) + dense_sample_frames_results = dense_sample_frames(video_result) + assert dense_sample_frames_results['start_index'] == 0 + assert assert_dict_has_keys(dense_sample_frames_results, target_keys) + assert len(dense_sample_frames_results['frame_inds']) == 24 + dense_sample_frames_results = dense_sample_frames(frame_result) + assert len(dense_sample_frames_results['frame_inds']) == 24 + assert repr(dense_sample_frames) == ( + f'{dense_sample_frames.__class__.__name__}(' + f'clip_len={4}, ' + f'frame_interval={1}, ' + f'num_clips={6}, ' + f'sample_range={32}, ' + f'num_sample_positions={10}, ' + f'temporal_jitter={False}, ' + f'out_of_bound_opt=loop, ' + f'test_mode={False})') + + # Dense sample with no temporal_jitter, sample_range=1000 to check mod + # clip_len=4, frame_interval=1, num_clips=6 + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + config = dict( + clip_len=4, + frame_interval=1, + num_clips=6, + sample_range=1000, + temporal_jitter=False) + dense_sample_frames = DenseSampleFrames(**config) + dense_sample_frames_results = dense_sample_frames(video_result) + assert dense_sample_frames_results['start_index'] == 0 + assert assert_dict_has_keys(dense_sample_frames_results, target_keys) + assert len(dense_sample_frames_results['frame_inds']) == 24 + dense_sample_frames_results = dense_sample_frames(frame_result) + assert len(dense_sample_frames_results['frame_inds']) == 24 + + # Dense sample with no temporal_jitter in test mode + # sample_range=32, num_sample_positions=5 + # clip_len=4, frame_interval=1, num_clips=6 + video_result = copy.deepcopy(self.video_results) + frame_result = copy.deepcopy(self.frame_results) + config = dict( + clip_len=4, + frame_interval=1, + num_clips=6, + num_sample_positions=5, + sample_range=32, + temporal_jitter=False, + test_mode=True) + dense_sample_frames = DenseSampleFrames(**config) + dense_sample_frames_results = dense_sample_frames(video_result) + assert dense_sample_frames_results['start_index'] == 0 + assert assert_dict_has_keys(dense_sample_frames_results, target_keys) + assert len(dense_sample_frames_results['frame_inds']) == 120 + dense_sample_frames_results = dense_sample_frames(frame_result) + assert len(dense_sample_frames_results['frame_inds']) == 120 + assert repr(dense_sample_frames) == ( + f'{dense_sample_frames.__class__.__name__}(' + f'clip_len={4}, ' + f'frame_interval={1}, ' + f'num_clips={6}, ' + f'sample_range={32}, ' + f'num_sample_positions={5}, ' + f'temporal_jitter={False}, ' + f'out_of_bound_opt=loop, ' + f'test_mode={True})') + + def test_untrim_sample_frames(self): + + target_keys = [ + 'frame_inds', 'clip_len', 'frame_interval', 'num_clips', + 'total_frames' + ] + + frame_result = dict( + frame_dir=None, + total_frames=100, + filename_tmpl=None, + modality='RGB', + start_index=0, + label=1) + video_result = copy.deepcopy(self.video_results) + + config = dict(clip_len=1, frame_interval=16, start_index=0) + sample_frames = UntrimmedSampleFrames(**config) + sample_frames_results = sample_frames(frame_result) + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 6 + assert_array_equal(sample_frames_results['frame_inds'], + np.array([8, 24, 40, 56, 72, 88])) + assert repr(sample_frames) == (f'{sample_frames.__class__.__name__}(' + f'clip_len={1}, ' + f'frame_interval={16})') + + config = dict(clip_len=1, frame_interval=16, start_index=0) + sample_frames = UntrimmedSampleFrames(**config) + sample_frames_results = sample_frames(video_result) + assert assert_dict_has_keys(sample_frames_results, target_keys) + frame_inds = np.array(list(range(8, 300, 16))) + assert len(sample_frames_results['frame_inds']) == frame_inds.shape[0] + assert_array_equal(sample_frames_results['frame_inds'], frame_inds) + assert repr(sample_frames) == (f'{sample_frames.__class__.__name__}(' + f'clip_len={1}, ' + f'frame_interval={16})') + + config = dict(clip_len=1, frame_interval=16) + sample_frames = UntrimmedSampleFrames(**config) + frame_result_ = copy.deepcopy(frame_result) + frame_result_['start_index'] = 1 + sample_frames_results = sample_frames(frame_result_) + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 6 + assert_array_equal(sample_frames_results['frame_inds'], + np.array([8, 24, 40, 56, 72, 88]) + 1) + assert repr(sample_frames) == (f'{sample_frames.__class__.__name__}(' + f'clip_len={1}, ' + f'frame_interval={16})') + + config = dict(clip_len=3, frame_interval=16, start_index=0) + sample_frames = UntrimmedSampleFrames(**config) + sample_frames_results = sample_frames(frame_result) + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 18 + assert_array_equal( + sample_frames_results['frame_inds'], + np.array([ + 7, 8, 9, 23, 24, 25, 39, 40, 41, 55, 56, 57, 71, 72, 73, 87, + 88, 89 + ])) + assert repr(sample_frames) == (f'{sample_frames.__class__.__name__}(' + f'clip_len={3}, ' + f'frame_interval={16})') + + def test_sample_ava_frames(self): + target_keys = [ + 'fps', 'timestamp', 'timestamp_start', 'shot_info', 'frame_inds', + 'clip_len', 'frame_interval' + ] + config = dict(clip_len=32, frame_interval=2) + sample_ava_dataset = SampleAVAFrames(**config) + ava_result = sample_ava_dataset(results=self.ava_results) + assert assert_dict_has_keys(ava_result, target_keys) + assert ava_result['clip_len'] == 32 + assert ava_result['frame_interval'] == 2 + assert len(ava_result['frame_inds']) == 32 + assert repr(sample_ava_dataset) == ( + f'{sample_ava_dataset.__class__.__name__}(' + f'clip_len={32}, ' + f'frame_interval={2}, ' + f'test_mode={False})') + + # add test case in Issue #306 + config = dict(clip_len=8, frame_interval=8) + sample_ava_dataset = SampleAVAFrames(**config) + ava_result = sample_ava_dataset(results=self.ava_results) + assert assert_dict_has_keys(ava_result, target_keys) + assert ava_result['clip_len'] == 8 + assert ava_result['frame_interval'] == 8 + assert len(ava_result['frame_inds']) == 8 + assert repr(sample_ava_dataset) == ( + f'{sample_ava_dataset.__class__.__name__}(' + f'clip_len={8}, ' + f'frame_interval={8}, ' + f'test_mode={False})') + + def test_sample_proposal_frames(self): + target_keys = [ + 'frame_inds', 'clip_len', 'frame_interval', 'num_clips', + 'total_frames', 'start_index' + ] + + # test error cases + with pytest.raises(TypeError): + proposal_result = copy.deepcopy(self.proposal_results) + config = dict( + clip_len=1, + frame_interval=1, + body_segments=2, + aug_segments=('error', 'error'), + aug_ratio=0.5, + temporal_jitter=False) + sample_frames = SampleProposalFrames(**config) + sample_frames(proposal_result) + + # test normal cases + # Sample Frame with no temporal_jitter + # clip_len=1, frame_interval=1 + # body_segments=2, aug_segments=(1, 1) + proposal_result = copy.deepcopy(self.proposal_results) + proposal_result['total_frames'] = 9 + config = dict( + clip_len=1, + frame_interval=1, + body_segments=2, + aug_segments=(1, 1), + aug_ratio=0.5, + temporal_jitter=False) + sample_frames = SampleProposalFrames(**config) + sample_frames_results = sample_frames(proposal_result) + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 8 + assert repr(sample_frames) == (f'{sample_frames.__class__.__name__}(' + f'clip_len={1}, ' + f'body_segments={2}, ' + f'aug_segments={(1, 1)}, ' + f'aug_ratio={(0.5, 0.5)}, ' + f'frame_interval={1}, ' + f'test_interval={6}, ' + f'temporal_jitter={False}, ' + f'mode=train)') + + # Sample Frame with temporal_jitter + # clip_len=1, frame_interval=1 + # body_segments=2, aug_segments=(1, 1) + proposal_result = copy.deepcopy(self.proposal_results) + proposal_result['total_frames'] = 9 + config = dict( + clip_len=1, + frame_interval=1, + body_segments=2, + aug_segments=(1, 1), + aug_ratio=0.5, + temporal_jitter=True) + sample_frames = SampleProposalFrames(**config) + sample_frames_results = sample_frames(proposal_result) + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 8 + assert repr(sample_frames) == (f'{sample_frames.__class__.__name__}(' + f'clip_len={1}, ' + f'body_segments={2}, ' + f'aug_segments={(1, 1)}, ' + f'aug_ratio={(0.5, 0.5)}, ' + f'frame_interval={1}, ' + f'test_interval={6}, ' + f'temporal_jitter={True}, ' + f'mode=train)') + + # Sample Frame with no temporal_jitter in val mode + # clip_len=1, frame_interval=1 + # body_segments=2, aug_segments=(1, 1) + proposal_result = copy.deepcopy(self.proposal_results) + proposal_result['total_frames'] = 9 + config = dict( + clip_len=1, + frame_interval=1, + body_segments=2, + aug_segments=(1, 1), + aug_ratio=0.5, + temporal_jitter=False, + mode='val') + sample_frames = SampleProposalFrames(**config) + sample_frames_results = sample_frames(proposal_result) + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 8 + assert repr(sample_frames) == (f'{sample_frames.__class__.__name__}(' + f'clip_len={1}, ' + f'body_segments={2}, ' + f'aug_segments={(1, 1)}, ' + f'aug_ratio={(0.5, 0.5)}, ' + f'frame_interval={1}, ' + f'test_interval={6}, ' + f'temporal_jitter={False}, ' + f'mode=val)') + + # Sample Frame with no temporal_jitter in test mode + # test_interval=2 + proposal_result = copy.deepcopy(self.proposal_results) + proposal_result['out_proposals'] = None + proposal_result['total_frames'] = 10 + config = dict( + clip_len=1, + frame_interval=1, + body_segments=2, + aug_segments=(1, 1), + aug_ratio=0.5, + test_interval=2, + temporal_jitter=False, + mode='test') + sample_frames = SampleProposalFrames(**config) + sample_frames_results = sample_frames(proposal_result) + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 5 + assert repr(sample_frames) == (f'{sample_frames.__class__.__name__}(' + f'clip_len={1}, ' + f'body_segments={2}, ' + f'aug_segments={(1, 1)}, ' + f'aug_ratio={(0.5, 0.5)}, ' + f'frame_interval={1}, ' + f'test_interval={2}, ' + f'temporal_jitter={False}, ' + f'mode=test)') + + # Sample Frame with no temporal_jitter to get clip_offsets zero + # clip_len=1, frame_interval=1 + # body_segments=2, aug_segments=(1, 1) + proposal_result = copy.deepcopy(self.proposal_results) + proposal_result['total_frames'] = 3 + config = dict( + clip_len=1, + frame_interval=1, + body_segments=2, + aug_segments=(1, 1), + aug_ratio=0.5, + temporal_jitter=False) + sample_frames = SampleProposalFrames(**config) + sample_frames_results = sample_frames(proposal_result) + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 8 + assert repr(sample_frames) == (f'{sample_frames.__class__.__name__}(' + f'clip_len={1}, ' + f'body_segments={2}, ' + f'aug_segments={(1, 1)}, ' + f'aug_ratio={(0.5, 0.5)}, ' + f'frame_interval={1}, ' + f'test_interval={6}, ' + f'temporal_jitter={False}, ' + f'mode=train)') + + # Sample Frame with no temporal_jitter to + # get clip_offsets zero in val mode + # clip_len=1, frame_interval=1 + # body_segments=4, aug_segments=(2, 2) + proposal_result = copy.deepcopy(self.proposal_results) + proposal_result['total_frames'] = 3 + config = dict( + clip_len=1, + frame_interval=1, + body_segments=4, + aug_segments=(2, 2), + aug_ratio=0.5, + temporal_jitter=False, + mode='val') + sample_frames = SampleProposalFrames(**config) + sample_frames_results = sample_frames(proposal_result) + assert assert_dict_has_keys(sample_frames_results, target_keys) + assert len(sample_frames_results['frame_inds']) == 16 + assert repr(sample_frames) == (f'{sample_frames.__class__.__name__}(' + f'clip_len={1}, ' + f'body_segments={4}, ' + f'aug_segments={(2, 2)}, ' + f'aug_ratio={(0.5, 0.5)}, ' + f'frame_interval={1}, ' + f'test_interval={6}, ' + f'temporal_jitter={False}, ' + f'mode=val)') + + def test_audio_feature_selector(self): + target_keys = ['audios'] + # test frame selector with 2 dim input + inputs = copy.deepcopy(self.audio_feature_results) + inputs['frame_inds'] = np.arange(0, self.audio_total_frames, + 2)[:, np.newaxis] + inputs['num_clips'] = 1 + inputs['length'] = 1280 + audio_feature_selector = AudioFeatureSelector() + results = audio_feature_selector(inputs) + assert assert_dict_has_keys(results, target_keys) + assert repr(audio_feature_selector) == ( + f'{audio_feature_selector.__class__.__name__}(' + f'fix_length={128})') diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_sampler.py b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_sampler.py new file mode 100644 index 00000000..19bfd64a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_data/test_sampler.py @@ -0,0 +1,96 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from torch.utils.data import DataLoader, Dataset + +from mmaction.datasets.samplers import (ClassSpecificDistributedSampler, + DistributedSampler) + + +class MyDataset(Dataset): + + def __init__(self, class_prob={i: 1 for i in range(10)}): + super().__init__() + self.class_prob = class_prob + self.video_infos = [ + dict(data=idx, label=idx % 10) for idx in range(100) + ] + + def __len__(self): + return len(self.video_infos) + + def __getitem__(self, idx): + return self.video_infos[idx] + + +def test_distributed_sampler(): + dataset = MyDataset() + sampler = DistributedSampler(dataset, num_replicas=1, rank=0) + data_loader = DataLoader(dataset, batch_size=4, sampler=sampler) + batches = [] + for _, data in enumerate(data_loader): + batches.append(data) + + assert len(batches) == 25 + assert sum([len(x['data']) for x in batches]) == 100 + + sampler = DistributedSampler(dataset, num_replicas=4, rank=2) + data_loader = DataLoader(dataset, batch_size=4, sampler=sampler) + batches = [] + for i, data in enumerate(data_loader): + batches.append(data) + + assert len(batches) == 7 + assert sum([len(x['data']) for x in batches]) == 25 + + sampler = DistributedSampler(dataset, num_replicas=6, rank=3) + data_loader = DataLoader(dataset, batch_size=4, sampler=sampler) + batches = [] + for i, data in enumerate(data_loader): + batches.append(data) + + assert len(batches) == 5 + assert sum([len(x['data']) for x in batches]) == 17 + + +def test_class_specific_distributed_sampler(): + class_prob = dict(zip(list(range(10)), [1] * 5 + [3] * 5)) + dataset = MyDataset(class_prob=class_prob) + + sampler = ClassSpecificDistributedSampler( + dataset, num_replicas=1, rank=0, dynamic_length=True) + data_loader = DataLoader(dataset, batch_size=4, sampler=sampler) + batches = [] + for _, data in enumerate(data_loader): + batches.append(data) + + assert len(batches) == 50 + assert sum([len(x['data']) for x in batches]) == 200 + + sampler = ClassSpecificDistributedSampler( + dataset, num_replicas=1, rank=0, dynamic_length=False) + data_loader = DataLoader(dataset, batch_size=4, sampler=sampler) + batches = [] + for i, data in enumerate(data_loader): + batches.append(data) + + assert len(batches) == 25 + assert sum([len(x['data']) for x in batches]) == 100 + + sampler = ClassSpecificDistributedSampler( + dataset, num_replicas=6, rank=2, dynamic_length=True) + data_loader = DataLoader(dataset, batch_size=4, sampler=sampler) + batches = [] + for i, data in enumerate(data_loader): + batches.append(data) + + assert len(batches) == 9 + assert sum([len(x['data']) for x in batches]) == 34 + + sampler = ClassSpecificDistributedSampler( + dataset, num_replicas=6, rank=2, dynamic_length=False) + data_loader = DataLoader(dataset, batch_size=4, sampler=sampler) + batches = [] + for i, data in enumerate(data_loader): + batches.append(data) + + assert len(batches) == 5 + assert sum([len(x['data']) for x in batches]) == 17 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_metrics/test_accuracy.py b/openmmlab_test/mmaction2-0.24.1/tests/test_metrics/test_accuracy.py new file mode 100644 index 00000000..e2ac82cb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_metrics/test_accuracy.py @@ -0,0 +1,343 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp +import random + +import numpy as np +import pytest +from numpy.testing import assert_array_almost_equal, assert_array_equal + +from mmaction.core import (ActivityNetLocalization, + average_recall_at_avg_proposals, confusion_matrix, + get_weighted_score, mean_average_precision, + mean_class_accuracy, mmit_mean_average_precision, + pairwise_temporal_iou, top_k_accuracy, + top_k_classes) +from mmaction.core.evaluation.ava_utils import ava_eval + + +def gt_confusion_matrix(gt_labels, pred_labels, normalize=None): + """Calculate the ground truth confusion matrix.""" + max_index = max(max(gt_labels), max(pred_labels)) + confusion_mat = np.zeros((max_index + 1, max_index + 1), dtype=np.int64) + for gt, pred in zip(gt_labels, pred_labels): + confusion_mat[gt][pred] += 1 + del_index = [] + for i in range(max_index): + if sum(confusion_mat[i]) == 0 and sum(confusion_mat[:, i]) == 0: + del_index.append(i) + confusion_mat = np.delete(confusion_mat, del_index, axis=0) + confusion_mat = np.delete(confusion_mat, del_index, axis=1) + + if normalize is not None: + confusion_mat = np.array(confusion_mat, dtype=np.float) + m, n = confusion_mat.shape + if normalize == 'true': + for i in range(m): + s = np.sum(confusion_mat[i], dtype=float) + if s == 0: + continue + confusion_mat[i, :] = confusion_mat[i, :] / s + print(confusion_mat[i, :]) + elif normalize == 'pred': + for i in range(n): + s = sum(confusion_mat[:, i]) + if s == 0: + continue + confusion_mat[:, i] = confusion_mat[:, i] / s + elif normalize == 'all': + s = np.sum(confusion_mat) + if s != 0: + confusion_mat /= s + + return confusion_mat + + +def test_activitynet_localization(): + data_prefix = osp.normpath( + osp.join(osp.dirname(__file__), '../data/eval_localization')) + + gt_path = osp.join(data_prefix, 'gt.json') + result_path = osp.join(data_prefix, 'result.json') + localization = ActivityNetLocalization(gt_path, result_path) + + results = localization.evaluate() + mAP = np.array([ + 0.71428571, 0.71428571, 0.71428571, 0.6875, 0.6875, 0.59722222, + 0.52083333, 0.52083333, 0.52083333, 0.5 + ]) + average_mAP = 0.6177579365079365 + + assert_array_almost_equal(results[0], mAP) + assert_array_almost_equal(results[1], average_mAP) + + +def test_ava_detection(): + data_prefix = osp.normpath( + osp.join(osp.dirname(__file__), '../data/eval_detection')) + + gt_path = osp.join(data_prefix, 'gt.csv') + result_path = osp.join(data_prefix, 'pred.csv') + label_map = osp.join(data_prefix, 'action_list.txt') + + # eval bbox + detection = ava_eval(result_path, 'mAP', label_map, gt_path, None) + assert_array_almost_equal(detection['mAP@0.5IOU'], 0.09385522) + + +def test_confusion_matrix(): + # custom confusion_matrix + gt_labels = [np.int64(random.randint(0, 9)) for _ in range(100)] + pred_labels = np.random.randint(10, size=100, dtype=np.int64) + + for normalize in [None, 'true', 'pred', 'all']: + cf_mat = confusion_matrix(pred_labels, gt_labels, normalize) + gt_cf_mat = gt_confusion_matrix(gt_labels, pred_labels, normalize) + assert_array_equal(cf_mat, gt_cf_mat) + + with pytest.raises(ValueError): + # normalize must be in ['true', 'pred', 'all', None] + confusion_matrix([1], [1], 'unsupport') + + with pytest.raises(TypeError): + # y_pred must be list or np.ndarray + confusion_matrix(0.5, [1]) + + with pytest.raises(TypeError): + # y_real must be list or np.ndarray + confusion_matrix([1], 0.5) + + with pytest.raises(TypeError): + # y_pred dtype must be np.int64 + confusion_matrix([0.5], [1]) + + with pytest.raises(TypeError): + # y_real dtype must be np.int64 + confusion_matrix([1], [0.5]) + + +def test_topk(): + scores = [ + np.array([-0.2203, -0.7538, 1.8789, 0.4451, -0.2526]), + np.array([-0.0413, 0.6366, 1.1155, 0.3484, 0.0395]), + np.array([0.0365, 0.5158, 1.1067, -0.9276, -0.2124]), + np.array([0.6232, 0.9912, -0.8562, 0.0148, 1.6413]) + ] + + # top1 acc + k = (1, ) + top1_labels_0 = [3, 1, 1, 1] + top1_labels_25 = [2, 0, 4, 3] + top1_labels_50 = [2, 2, 3, 1] + top1_labels_75 = [2, 2, 2, 3] + top1_labels_100 = [2, 2, 2, 4] + res = top_k_accuracy(scores, top1_labels_0, k) + assert res == [0] + res = top_k_accuracy(scores, top1_labels_25, k) + assert res == [0.25] + res = top_k_accuracy(scores, top1_labels_50, k) + assert res == [0.5] + res = top_k_accuracy(scores, top1_labels_75, k) + assert res == [0.75] + res = top_k_accuracy(scores, top1_labels_100, k) + assert res == [1.0] + + # top1 acc, top2 acc + k = (1, 2) + top2_labels_0_100 = [3, 1, 1, 1] + top2_labels_25_75 = [3, 1, 2, 3] + res = top_k_accuracy(scores, top2_labels_0_100, k) + assert res == [0, 1.0] + res = top_k_accuracy(scores, top2_labels_25_75, k) + assert res == [0.25, 0.75] + + # top1 acc, top3 acc, top5 acc + k = (1, 3, 5) + top5_labels_0_0_100 = [1, 0, 3, 2] + top5_labels_0_50_100 = [1, 3, 4, 0] + top5_labels_25_75_100 = [2, 3, 0, 2] + res = top_k_accuracy(scores, top5_labels_0_0_100, k) + assert res == [0, 0, 1.0] + res = top_k_accuracy(scores, top5_labels_0_50_100, k) + assert res == [0, 0.5, 1.0] + res = top_k_accuracy(scores, top5_labels_25_75_100, k) + assert res == [0.25, 0.75, 1.0] + + +def test_mean_class_accuracy(): + scores = [ + np.array([-0.2203, -0.7538, 1.8789, 0.4451, -0.2526]), + np.array([-0.0413, 0.6366, 1.1155, 0.3484, 0.0395]), + np.array([0.0365, 0.5158, 1.1067, -0.9276, -0.2124]), + np.array([0.6232, 0.9912, -0.8562, 0.0148, 1.6413]) + ] + + # test mean class accuracy in [0, 0.25, 1/3, 0.75, 1.0] + mean_cls_acc_0 = np.int64([1, 4, 0, 2]) + mean_cls_acc_25 = np.int64([2, 0, 4, 3]) + mean_cls_acc_33 = np.int64([2, 2, 2, 3]) + mean_cls_acc_75 = np.int64([4, 2, 2, 4]) + mean_cls_acc_100 = np.int64([2, 2, 2, 4]) + assert mean_class_accuracy(scores, mean_cls_acc_0) == 0 + assert mean_class_accuracy(scores, mean_cls_acc_25) == 0.25 + assert mean_class_accuracy(scores, mean_cls_acc_33) == 1 / 3 + assert mean_class_accuracy(scores, mean_cls_acc_75) == 0.75 + assert mean_class_accuracy(scores, mean_cls_acc_100) == 1.0 + + +def test_mmit_mean_average_precision(): + # One sample + y_true = [np.array([0, 0, 1, 1])] + y_scores = [np.array([0.1, 0.4, 0.35, 0.8])] + map = mmit_mean_average_precision(y_scores, y_true) + + precision = [2.0 / 3.0, 0.5, 1., 1.] + recall = [1., 0.5, 0.5, 0.] + target = -np.sum(np.diff(recall) * np.array(precision)[:-1]) + assert target == map + + +def test_pairwise_temporal_iou(): + target_segments = np.array([]) + candidate_segments = np.array([]) + with pytest.raises(ValueError): + pairwise_temporal_iou(target_segments, candidate_segments) + + # test temporal iou + target_segments = np.array([[1, 2], [2, 3]]) + candidate_segments = np.array([[2, 3], [2.5, 3]]) + temporal_iou = pairwise_temporal_iou(candidate_segments, target_segments) + assert_array_equal(temporal_iou, [[0, 0], [1, 0.5]]) + + # test temporal overlap_self + target_segments = np.array([[1, 2], [2, 3]]) + candidate_segments = np.array([[2, 3], [2.5, 3]]) + temporal_iou, temporal_overlap_self = pairwise_temporal_iou( + candidate_segments, target_segments, calculate_overlap_self=True) + assert_array_equal(temporal_overlap_self, [[0, 0], [1, 1]]) + + # test temporal overlap_self when candidate_segments is 1d + target_segments = np.array([[1, 2], [2, 3]]) + candidate_segments = np.array([2.5, 3]) + temporal_iou, temporal_overlap_self = pairwise_temporal_iou( + candidate_segments, target_segments, calculate_overlap_self=True) + assert_array_equal(temporal_overlap_self, [0, 1]) + + +def test_average_recall_at_avg_proposals(): + ground_truth1 = { + 'v_test1': np.array([[0, 1], [1, 2]]), + 'v_test2': np.array([[0, 1], [1, 2]]) + } + ground_truth2 = {'v_test1': np.array([[0, 1]])} + proposals1 = { + 'v_test1': np.array([[0, 1, 1], [1, 2, 1]]), + 'v_test2': np.array([[0, 1, 1], [1, 2, 1]]) + } + proposals2 = { + 'v_test1': np.array([[10, 11, 0.6], [11, 12, 0.4]]), + 'v_test2': np.array([[10, 11, 0.6], [11, 12, 0.4]]) + } + proposals3 = { + 'v_test1': np.array([[i, i + 1, 1 / (i + 1)] for i in range(100)]) + } + + recall, avg_recall, proposals_per_video, auc = ( + average_recall_at_avg_proposals(ground_truth1, proposals1, 4)) + assert_array_equal(recall, [[0.] * 49 + [0.5] * 50 + [1.]] * 10) + assert_array_equal(avg_recall, [0.] * 49 + [0.5] * 50 + [1.]) + assert_array_almost_equal( + proposals_per_video, np.arange(0.02, 2.02, 0.02), decimal=10) + assert auc == 25.5 + + recall, avg_recall, proposals_per_video, auc = ( + average_recall_at_avg_proposals(ground_truth1, proposals2, 4)) + assert_array_equal(recall, [[0.] * 100] * 10) + assert_array_equal(avg_recall, [0.] * 100) + assert_array_almost_equal( + proposals_per_video, np.arange(0.02, 2.02, 0.02), decimal=10) + assert auc == 0 + + recall, avg_recall, proposals_per_video, auc = ( + average_recall_at_avg_proposals(ground_truth2, proposals3, 100)) + assert_array_equal(recall, [[1.] * 100] * 10) + assert_array_equal(avg_recall, ([1.] * 100)) + assert_array_almost_equal( + proposals_per_video, np.arange(1, 101, 1), decimal=10) + assert auc == 99.0 + + +def test_get_weighted_score(): + score_a = [ + np.array([-0.2203, -0.7538, 1.8789, 0.4451, -0.2526]), + np.array([-0.0413, 0.6366, 1.1155, 0.3484, 0.0395]), + np.array([0.0365, 0.5158, 1.1067, -0.9276, -0.2124]), + np.array([0.6232, 0.9912, -0.8562, 0.0148, 1.6413]) + ] + score_b = [ + np.array([-0.0413, 0.6366, 1.1155, 0.3484, 0.0395]), + np.array([0.0365, 0.5158, 1.1067, -0.9276, -0.2124]), + np.array([0.6232, 0.9912, -0.8562, 0.0148, 1.6413]), + np.array([-0.2203, -0.7538, 1.8789, 0.4451, -0.2526]) + ] + weighted_score = get_weighted_score([score_a], [1]) + assert np.all(np.isclose(np.array(score_a), np.array(weighted_score))) + coeff_a, coeff_b = 2., 1. + weighted_score = get_weighted_score([score_a, score_b], [coeff_a, coeff_b]) + ground_truth = [ + x * coeff_a + y * coeff_b for x, y in zip(score_a, score_b) + ] + assert np.all(np.isclose(np.array(ground_truth), np.array(weighted_score))) + + +def test_mean_average_precision(): + + def content_for_unittest(scores, labels, result): + gt = mean_average_precision(scores, labels) + assert gt == result + + scores = [ + np.array([0.1, 0.2, 0.3, 0.4]), + np.array([0.2, 0.3, 0.4, 0.1]), + np.array([0.3, 0.4, 0.1, 0.2]), + np.array([0.4, 0.1, 0.2, 0.3]) + ] + + label1 = np.array([[1, 1, 0, 0], [1, 0, 1, 1], [1, 0, 1, 0], [1, 1, 0, 1]]) + result1 = 2 / 3 + label2 = np.array([[0, 1, 0, 1], [0, 1, 1, 0], [1, 0, 1, 0], [0, 0, 1, 1]]) + result2 = np.mean([0.5, 0.5833333333333333, 0.8055555555555556, 1.0]) + + content_for_unittest(scores, label1, result1) + content_for_unittest(scores, label2, result2) + + +def test_top_k_accurate_classes(): + scores = [ + np.array([0.1, 0.2, 0.3, 0.4]), # 3 + np.array([0.2, 0.3, 0.4, 0.1]), # 2 + np.array([0.3, 0.4, 0.1, 0.2]), # 1 + np.array([0.4, 0.1, 0.2, 0.3]), # 0 + np.array([0.25, 0.1, 0.3, 0.35]), # 3 + np.array([0.2, 0.15, 0.3, 0.35]), # 3 + ] + label = np.array([3, 2, 2, 1, 3, 3], dtype=np.int64) + + with pytest.raises(AssertionError): + top_k_classes(scores, label, 1, mode='wrong') + + results_top1 = top_k_classes(scores, label, 1) + results_top3 = top_k_classes(scores, label, 3) + assert len(results_top1) == 1 + assert len(results_top3) == 3 + assert results_top3[0] == results_top1[0] + assert results_top1 == [(3, 1.)] + assert results_top3 == [(3, 1.), (2, 0.5), (1, 0.0)] + + label = np.array([3, 2, 1, 1, 3, 0], dtype=np.int64) + results_top1 = top_k_classes(scores, label, 1, mode='inaccurate') + results_top3 = top_k_classes(scores, label, 3, mode='inaccurate') + assert len(results_top1) == 1 + assert len(results_top3) == 3 + assert results_top3[0] == results_top1[0] + assert results_top1 == [(0, 0.)] + assert results_top3 == [(0, 0.0), (1, 0.5), (2, 1.0)] diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_metrics/test_losses.py b/openmmlab_test/mmaction2-0.24.1/tests/test_metrics/test_losses.py new file mode 100644 index 00000000..1c0d6577 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_metrics/test_losses.py @@ -0,0 +1,332 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +import pytest +import torch +import torch.nn as nn +import torch.nn.functional as F +from mmcv import ConfigDict +from numpy.testing import assert_almost_equal, assert_array_almost_equal +from torch.autograd import Variable + +from mmaction.models import (BCELossWithLogits, BinaryLogisticRegressionLoss, + BMNLoss, CrossEntropyLoss, HVULoss, NLLLoss, + OHEMHingeLoss, SSNLoss) + + +def test_hvu_loss(): + pred = torch.tensor([[-1.0525, -0.7085, 0.1819, -0.8011], + [0.1555, -1.5550, 0.5586, 1.9746]]) + gt = torch.tensor([[1., 0., 0., 0.], [0., 0., 1., 1.]]) + mask = torch.tensor([[1., 1., 0., 0.], [0., 0., 1., 1.]]) + category_mask = torch.tensor([[1., 0.], [0., 1.]]) + categories = ['action', 'scene'] + category_nums = (2, 2) + category_loss_weights = (1, 1) + loss_all_nomask_sum = HVULoss( + categories=categories, + category_nums=category_nums, + category_loss_weights=category_loss_weights, + loss_type='all', + with_mask=False, + reduction='sum') + loss = loss_all_nomask_sum(pred, gt, mask, category_mask) + loss1 = F.binary_cross_entropy_with_logits(pred, gt, reduction='none') + loss1 = torch.sum(loss1, dim=1) + assert torch.eq(loss['loss_cls'], torch.mean(loss1)) + + loss_all_mask = HVULoss( + categories=categories, + category_nums=category_nums, + category_loss_weights=category_loss_weights, + loss_type='all', + with_mask=True) + loss = loss_all_mask(pred, gt, mask, category_mask) + loss1 = F.binary_cross_entropy_with_logits(pred, gt, reduction='none') + loss1 = torch.sum(loss1 * mask, dim=1) / torch.sum(mask, dim=1) + loss1 = torch.mean(loss1) + assert torch.eq(loss['loss_cls'], loss1) + + loss_ind_mask = HVULoss( + categories=categories, + category_nums=category_nums, + category_loss_weights=category_loss_weights, + loss_type='individual', + with_mask=True) + loss = loss_ind_mask(pred, gt, mask, category_mask) + action_loss = F.binary_cross_entropy_with_logits(pred[:1, :2], gt[:1, :2]) + scene_loss = F.binary_cross_entropy_with_logits(pred[1:, 2:], gt[1:, 2:]) + loss1 = (action_loss + scene_loss) / 2 + assert torch.eq(loss['loss_cls'], loss1) + + loss_ind_nomask_sum = HVULoss( + categories=categories, + category_nums=category_nums, + category_loss_weights=category_loss_weights, + loss_type='individual', + with_mask=False, + reduction='sum') + loss = loss_ind_nomask_sum(pred, gt, mask, category_mask) + action_loss = F.binary_cross_entropy_with_logits( + pred[:, :2], gt[:, :2], reduction='none') + action_loss = torch.sum(action_loss, dim=1) + action_loss = torch.mean(action_loss) + + scene_loss = F.binary_cross_entropy_with_logits( + pred[:, 2:], gt[:, 2:], reduction='none') + scene_loss = torch.sum(scene_loss, dim=1) + scene_loss = torch.mean(scene_loss) + + loss1 = (action_loss + scene_loss) / 2 + assert torch.eq(loss['loss_cls'], loss1) + + +def test_cross_entropy_loss(): + cls_scores = torch.rand((3, 4)) + hard_gt_labels = torch.LongTensor([0, 1, 2]).squeeze() + soft_gt_labels = torch.FloatTensor([[1, 0, 0, 0], [0, 1, 0, 0], + [0, 0, 1, 0]]).squeeze() + + # hard label without weight + cross_entropy_loss = CrossEntropyLoss() + output_loss = cross_entropy_loss(cls_scores, hard_gt_labels) + assert torch.equal(output_loss, F.cross_entropy(cls_scores, + hard_gt_labels)) + + # hard label with class weight + weight = torch.rand(4) + class_weight = weight.numpy().tolist() + cross_entropy_loss = CrossEntropyLoss(class_weight=class_weight) + output_loss = cross_entropy_loss(cls_scores, hard_gt_labels) + assert torch.equal( + output_loss, + F.cross_entropy(cls_scores, hard_gt_labels, weight=weight)) + + # soft label without class weight + cross_entropy_loss = CrossEntropyLoss() + output_loss = cross_entropy_loss(cls_scores, soft_gt_labels) + assert_almost_equal( + output_loss.numpy(), + F.cross_entropy(cls_scores, hard_gt_labels).numpy(), + decimal=4) + + # soft label with class weight + cross_entropy_loss = CrossEntropyLoss(class_weight=class_weight) + output_loss = cross_entropy_loss(cls_scores, soft_gt_labels) + assert_almost_equal( + output_loss.numpy(), + F.cross_entropy(cls_scores, hard_gt_labels, weight=weight).numpy(), + decimal=4) + + +def test_bce_loss_with_logits(): + cls_scores = torch.rand((3, 4)) + gt_labels = torch.rand((3, 4)) + + bce_loss_with_logits = BCELossWithLogits() + output_loss = bce_loss_with_logits(cls_scores, gt_labels) + assert torch.equal( + output_loss, F.binary_cross_entropy_with_logits(cls_scores, gt_labels)) + + weight = torch.rand(4) + class_weight = weight.numpy().tolist() + bce_loss_with_logits = BCELossWithLogits(class_weight=class_weight) + output_loss = bce_loss_with_logits(cls_scores, gt_labels) + assert torch.equal( + output_loss, + F.binary_cross_entropy_with_logits( + cls_scores, gt_labels, weight=weight)) + + +def test_nll_loss(): + cls_scores = torch.randn(3, 3) + gt_labels = torch.tensor([0, 2, 1]).squeeze() + + sm = nn.Softmax(dim=0) + nll_loss = NLLLoss() + cls_score_log = torch.log(sm(cls_scores)) + output_loss = nll_loss(cls_score_log, gt_labels) + assert torch.equal(output_loss, F.nll_loss(cls_score_log, gt_labels)) + + +def test_binary_logistic_loss(): + binary_logistic_regression_loss = BinaryLogisticRegressionLoss() + reg_score = torch.tensor([0., 1.]) + label = torch.tensor([0., 1.]) + output_loss = binary_logistic_regression_loss(reg_score, label, 0.5) + assert_array_almost_equal(output_loss.numpy(), np.array([0.]), decimal=4) + + reg_score = torch.tensor([0.3, 0.9]) + label = torch.tensor([0., 1.]) + output_loss = binary_logistic_regression_loss(reg_score, label, 0.5) + assert_array_almost_equal( + output_loss.numpy(), np.array([0.231]), decimal=4) + + +def test_bmn_loss(): + bmn_loss = BMNLoss() + + # test tem_loss + pred_start = torch.tensor([0.9, 0.1]) + pred_end = torch.tensor([0.1, 0.9]) + gt_start = torch.tensor([1., 0.]) + gt_end = torch.tensor([0., 1.]) + output_tem_loss = bmn_loss.tem_loss(pred_start, pred_end, gt_start, gt_end) + binary_logistic_regression_loss = BinaryLogisticRegressionLoss() + assert_loss = ( + binary_logistic_regression_loss(pred_start, gt_start) + + binary_logistic_regression_loss(pred_end, gt_end)) + assert_array_almost_equal( + output_tem_loss.numpy(), assert_loss.numpy(), decimal=4) + + # test pem_reg_loss + seed = 1 + torch.manual_seed(seed) + torch.cuda.manual_seed(seed) + torch.cuda.manual_seed_all(seed) + + pred_bm_reg = torch.tensor([[0.1, 0.99], [0.5, 0.4]]) + gt_iou_map = torch.tensor([[0, 1.], [0, 1.]]) + mask = torch.tensor([[0.1, 0.4], [0.4, 0.1]]) + output_pem_reg_loss = bmn_loss.pem_reg_loss(pred_bm_reg, gt_iou_map, mask) + assert_array_almost_equal( + output_pem_reg_loss.numpy(), np.array([0.2140]), decimal=4) + + # test pem_cls_loss + pred_bm_cls = torch.tensor([[0.1, 0.99], [0.95, 0.2]]) + gt_iou_map = torch.tensor([[0., 1.], [0., 1.]]) + mask = torch.tensor([[0.1, 0.4], [0.4, 0.1]]) + output_pem_cls_loss = bmn_loss.pem_cls_loss(pred_bm_cls, gt_iou_map, mask) + assert_array_almost_equal( + output_pem_cls_loss.numpy(), np.array([1.6137]), decimal=4) + + # test bmn_loss + pred_bm = torch.tensor([[[[0.1, 0.99], [0.5, 0.4]], + [[0.1, 0.99], [0.95, 0.2]]]]) + pred_start = torch.tensor([[0.9, 0.1]]) + pred_end = torch.tensor([[0.1, 0.9]]) + gt_iou_map = torch.tensor([[[0., 2.5], [0., 10.]]]) + gt_start = torch.tensor([[1., 0.]]) + gt_end = torch.tensor([[0., 1.]]) + mask = torch.tensor([[0.1, 0.4], [0.4, 0.1]]) + output_loss = bmn_loss(pred_bm, pred_start, pred_end, gt_iou_map, gt_start, + gt_end, mask) + assert_array_almost_equal( + output_loss[0].numpy(), + output_tem_loss + 10 * output_pem_reg_loss + output_pem_cls_loss) + assert_array_almost_equal(output_loss[1].numpy(), output_tem_loss) + assert_array_almost_equal(output_loss[2].numpy(), output_pem_reg_loss) + assert_array_almost_equal(output_loss[3].numpy(), output_pem_cls_loss) + + +def test_ohem_hinge_loss(): + # test normal case + pred = torch.tensor([[ + 0.5161, 0.5228, 0.7748, 0.0573, 0.1113, 0.8862, 0.1752, 0.9448, 0.0253, + 0.1009, 0.4371, 0.2232, 0.0412, 0.3487, 0.3350, 0.9294, 0.7122, 0.3072, + 0.2942, 0.7679 + ]], + requires_grad=True) + gt = torch.tensor([8]) + num_video = 1 + loss = OHEMHingeLoss.apply(pred, gt, 1, 1.0, num_video) + assert_array_almost_equal( + loss.detach().numpy(), np.array([0.0552]), decimal=4) + loss.backward(Variable(torch.ones([1]))) + assert_array_almost_equal( + np.array(pred.grad), + np.array([[ + 0., 0., 0., 0., 0., 0., 0., -1., 0., 0., 0., 0., 0., 0., 0., 0., + 0., 0., 0., 0. + ]]), + decimal=4) + + # test error case + with pytest.raises(ValueError): + gt = torch.tensor([8, 10]) + loss = OHEMHingeLoss.apply(pred, gt, 1, 1.0, num_video) + + +def test_ssn_loss(): + ssn_loss = SSNLoss() + + # test activity_loss + activity_score = torch.rand((8, 21)) + labels = torch.LongTensor([8] * 8).squeeze() + activity_indexer = torch.tensor([0, 7]) + output_activity_loss = ssn_loss.activity_loss(activity_score, labels, + activity_indexer) + assert torch.equal( + output_activity_loss, + F.cross_entropy(activity_score[activity_indexer, :], + labels[activity_indexer])) + + # test completeness_loss + completeness_score = torch.rand((8, 20), requires_grad=True) + labels = torch.LongTensor([8] * 8).squeeze() + completeness_indexer = torch.tensor([0, 1, 2, 3, 4, 5, 6]) + positive_per_video = 1 + incomplete_per_video = 6 + output_completeness_loss = ssn_loss.completeness_loss( + completeness_score, labels, completeness_indexer, positive_per_video, + incomplete_per_video) + + pred = completeness_score[completeness_indexer, :] + gt = labels[completeness_indexer] + pred_dim = pred.size(1) + pred = pred.view(-1, positive_per_video + incomplete_per_video, pred_dim) + gt = gt.view(-1, positive_per_video + incomplete_per_video) + # yapf:disable + positive_pred = pred[:, :positive_per_video, :].contiguous().view(-1, pred_dim) # noqa:E501 + incomplete_pred = pred[:, positive_per_video:, :].contiguous().view(-1, pred_dim) # noqa:E501 + # yapf:enable + ohem_ratio = 0.17 + positive_loss = OHEMHingeLoss.apply( + positive_pred, gt[:, :positive_per_video].contiguous().view(-1), 1, + 1.0, positive_per_video) + incomplete_loss = OHEMHingeLoss.apply( + incomplete_pred, gt[:, positive_per_video:].contiguous().view(-1), -1, + ohem_ratio, incomplete_per_video) + num_positives = positive_pred.size(0) + num_incompletes = int(incomplete_pred.size(0) * ohem_ratio) + assert_loss = ((positive_loss + incomplete_loss) / + float(num_positives + num_incompletes)) + assert torch.equal(output_completeness_loss, assert_loss) + + # test reg_loss + bbox_pred = torch.rand((8, 20, 2)) + labels = torch.LongTensor([8] * 8).squeeze() + bbox_targets = torch.rand((8, 2)) + regression_indexer = torch.tensor([0]) + output_reg_loss = ssn_loss.classwise_regression_loss( + bbox_pred, labels, bbox_targets, regression_indexer) + + pred = bbox_pred[regression_indexer, :, :] + gt = labels[regression_indexer] + reg_target = bbox_targets[regression_indexer, :] + class_idx = gt.data - 1 + classwise_pred = pred[:, class_idx, :] + classwise_reg_pred = torch.cat((torch.diag(classwise_pred[:, :, 0]).view( + -1, 1), torch.diag(classwise_pred[:, :, 1]).view(-1, 1)), + dim=1) + assert torch.equal( + output_reg_loss, + F.smooth_l1_loss(classwise_reg_pred.view(-1), reg_target.view(-1)) * 2) + + # test ssn_loss + proposal_type = torch.tensor([[0, 1, 1, 1, 1, 1, 1, 2]]) + train_cfg = ConfigDict( + dict( + ssn=dict( + sampler=dict( + num_per_video=8, + positive_ratio=1, + background_ratio=1, + incomplete_ratio=6, + add_gt_as_proposals=True), + loss_weight=dict(comp_loss_weight=0.1, reg_loss_weight=0.1)))) + output_loss = ssn_loss(activity_score, completeness_score, bbox_pred, + proposal_type, labels, bbox_targets, train_cfg) + assert torch.equal(output_loss['loss_activity'], output_activity_loss) + assert torch.equal(output_loss['loss_completeness'], + output_completeness_loss * 0.1) + assert torch.equal(output_loss['loss_reg'], output_reg_loss * 0.1) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/__init__.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/__init__.py new file mode 100644 index 00000000..7ae5f708 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/__init__.py @@ -0,0 +1,13 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .base import (check_norm_state, generate_backbone_demo_inputs, + generate_detector_demo_inputs, generate_gradcam_inputs, + generate_recognizer_demo_inputs, get_audio_recognizer_cfg, + get_cfg, get_detector_cfg, get_localizer_cfg, + get_recognizer_cfg, get_skeletongcn_cfg) + +__all__ = [ + 'check_norm_state', 'generate_backbone_demo_inputs', + 'generate_recognizer_demo_inputs', 'generate_gradcam_inputs', 'get_cfg', + 'get_recognizer_cfg', 'get_audio_recognizer_cfg', 'get_localizer_cfg', + 'get_detector_cfg', 'generate_detector_demo_inputs', 'get_skeletongcn_cfg' +] diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/base.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/base.py new file mode 100644 index 00000000..49c1fd7a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/base.py @@ -0,0 +1,167 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +import mmcv +import numpy as np +import torch +from mmcv.utils import _BatchNorm + + +def check_norm_state(modules, train_state): + """Check if norm layer is in correct train state.""" + for mod in modules: + if isinstance(mod, _BatchNorm): + if mod.training != train_state: + return False + return True + + +def generate_backbone_demo_inputs(input_shape=(1, 3, 64, 64)): + """Create a superset of inputs needed to run backbone. + + Args: + input_shape (tuple): input batch dimensions. + Default: (1, 3, 64, 64). + """ + imgs = np.random.random(input_shape) + imgs = torch.FloatTensor(imgs) + + return imgs + + +def generate_recognizer_demo_inputs( + input_shape=(1, 3, 3, 224, 224), model_type='2D'): + """Create a superset of inputs needed to run test or train batches. + + Args: + input_shape (tuple): input batch dimensions. + Default: (1, 250, 3, 224, 224). + model_type (str): Model type for data generation, from {'2D', '3D'}. + Default:'2D' + """ + if len(input_shape) == 5: + (N, L, _, _, _) = input_shape + elif len(input_shape) == 6: + (N, M, _, L, _, _) = input_shape + + imgs = np.random.random(input_shape) + + if model_type == '2D' or model_type == 'skeleton': + gt_labels = torch.LongTensor([2] * N) + elif model_type == '3D': + gt_labels = torch.LongTensor([2] * M) + elif model_type == 'audio': + gt_labels = torch.LongTensor([2] * L) + else: + raise ValueError(f'Data type {model_type} is not available') + + inputs = {'imgs': torch.FloatTensor(imgs), 'gt_labels': gt_labels} + return inputs + + +def generate_detector_demo_inputs( + input_shape=(1, 3, 4, 224, 224), num_classes=81, train=True, + device='cpu'): + num_samples = input_shape[0] + if not train: + assert num_samples == 1 + + def random_box(n): + box = torch.rand(n, 4) * 0.5 + box[:, 2:] += 0.5 + box[:, 0::2] *= input_shape[3] + box[:, 1::2] *= input_shape[4] + if device == 'cuda': + box = box.cuda() + return box + + def random_label(n): + label = torch.randn(n, num_classes) + label = (label > 0.8).type(torch.float32) + label[:, 0] = 0 + if device == 'cuda': + label = label.cuda() + return label + + img = torch.FloatTensor(np.random.random(input_shape)) + if device == 'cuda': + img = img.cuda() + + proposals = [random_box(2) for i in range(num_samples)] + gt_bboxes = [random_box(2) for i in range(num_samples)] + gt_labels = [random_label(2) for i in range(num_samples)] + img_metas = [dict(img_shape=input_shape[-2:]) for i in range(num_samples)] + + if train: + return dict( + img=img, + proposals=proposals, + gt_bboxes=gt_bboxes, + gt_labels=gt_labels, + img_metas=img_metas) + + return dict(img=[img], proposals=[proposals], img_metas=[img_metas]) + + +def generate_gradcam_inputs(input_shape=(1, 3, 3, 224, 224), model_type='2D'): + """Create a superset of inputs needed to run gradcam. + + Args: + input_shape (tuple[int]): input batch dimensions. + Default: (1, 3, 3, 224, 224). + model_type (str): Model type for data generation, from {'2D', '3D'}. + Default:'2D' + return: + dict: model inputs, including two keys, ``imgs`` and ``label``. + """ + imgs = np.random.random(input_shape) + + if model_type in ['2D', '3D']: + gt_labels = torch.LongTensor([2] * input_shape[0]) + else: + raise ValueError(f'Data type {model_type} is not available') + + inputs = { + 'imgs': torch.FloatTensor(imgs), + 'label': gt_labels, + } + return inputs + + +def get_cfg(config_type, fname): + """Grab configs necessary to create a recognizer. + + These are deep copied to allow for safe modification of parameters without + influencing other tests. + """ + config_types = ('recognition', 'recognition_audio', 'localization', + 'detection', 'skeleton') + assert config_type in config_types + + repo_dpath = osp.dirname(osp.dirname(osp.dirname(__file__))) + config_dpath = osp.join(repo_dpath, 'configs/' + config_type) + config_fpath = osp.join(config_dpath, fname) + if not osp.exists(config_dpath): + raise Exception('Cannot find config path') + config = mmcv.Config.fromfile(config_fpath) + return config + + +def get_recognizer_cfg(fname): + return get_cfg('recognition', fname) + + +def get_audio_recognizer_cfg(fname): + return get_cfg('recognition_audio', fname) + + +def get_localizer_cfg(fname): + return get_cfg('localization', fname) + + +def get_detector_cfg(fname): + return get_cfg('detection', fname) + + +def get_skeletongcn_cfg(fname): + return get_cfg('skeleton', fname) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_backbones.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_backbones.py new file mode 100644 index 00000000..1933b981 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_backbones.py @@ -0,0 +1,931 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy + +import pytest +import torch +import torch.nn as nn +from mmcv.utils import _BatchNorm + +from mmaction.models import (C3D, STGCN, X3D, MobileNetV2TSM, ResNet2Plus1d, + ResNet3dCSN, ResNet3dSlowFast, ResNet3dSlowOnly, + ResNetAudio, ResNetTIN, ResNetTSM, TANet, + TimeSformer) +from mmaction.models.backbones.resnet_tsm import NL3DWrapper +from .base import check_norm_state, generate_backbone_demo_inputs + + +def test_x3d_backbone(): + """Test x3d backbone.""" + with pytest.raises(AssertionError): + # In X3D: 1 <= num_stages <= 4 + X3D(gamma_w=1.0, gamma_b=2.25, gamma_d=2.2, num_stages=0) + + with pytest.raises(AssertionError): + # In X3D: 1 <= num_stages <= 4 + X3D(gamma_w=1.0, gamma_b=2.25, gamma_d=2.2, num_stages=5) + + with pytest.raises(AssertionError): + # len(spatial_strides) == num_stages + X3D(gamma_w=1.0, + gamma_b=2.25, + gamma_d=2.2, + spatial_strides=(1, 2), + num_stages=4) + + with pytest.raises(AssertionError): + # se_style in ['half', 'all'] + X3D(gamma_w=1.0, gamma_b=2.25, gamma_d=2.2, se_style=None) + + with pytest.raises(AssertionError): + # se_ratio should be None or > 0 + X3D(gamma_w=1.0, + gamma_b=2.25, + gamma_d=2.2, + se_style='half', + se_ratio=0) + + # x3d_s, no pretrained, norm_eval True + x3d_s = X3D(gamma_w=1.0, gamma_b=2.25, gamma_d=2.2, norm_eval=True) + x3d_s.init_weights() + x3d_s.train() + assert check_norm_state(x3d_s.modules(), False) + + # x3d_l, no pretrained, norm_eval True + x3d_l = X3D(gamma_w=1.0, gamma_b=2.25, gamma_d=5.0, norm_eval=True) + x3d_l.init_weights() + x3d_l.train() + assert check_norm_state(x3d_l.modules(), False) + + # x3d_s, no pretrained, norm_eval False + x3d_s = X3D(gamma_w=1.0, gamma_b=2.25, gamma_d=2.2, norm_eval=False) + x3d_s.init_weights() + x3d_s.train() + assert check_norm_state(x3d_s.modules(), True) + + # x3d_l, no pretrained, norm_eval False + x3d_l = X3D(gamma_w=1.0, gamma_b=2.25, gamma_d=5.0, norm_eval=False) + x3d_l.init_weights() + x3d_l.train() + assert check_norm_state(x3d_l.modules(), True) + + # x3d_s, no pretrained, frozen_stages, norm_eval False + frozen_stages = 1 + x3d_s_frozen = X3D( + gamma_w=1.0, + gamma_b=2.25, + gamma_d=2.2, + norm_eval=False, + frozen_stages=frozen_stages) + + x3d_s_frozen.init_weights() + x3d_s_frozen.train() + assert x3d_s_frozen.conv1_t.bn.training is False + for param in x3d_s_frozen.conv1_s.parameters(): + assert param.requires_grad is False + for param in x3d_s_frozen.conv1_t.parameters(): + assert param.requires_grad is False + + for i in range(1, frozen_stages + 1): + layer = getattr(x3d_s_frozen, f'layer{i}') + for mod in layer.modules(): + if isinstance(mod, _BatchNorm): + assert mod.training is False + for param in layer.parameters(): + assert param.requires_grad is False + + # test zero_init_residual, zero_init_residual is True by default + for m in x3d_s_frozen.modules(): + if hasattr(m, 'conv3'): + assert torch.equal(m.conv3.bn.weight, + torch.zeros_like(m.conv3.bn.weight)) + assert torch.equal(m.conv3.bn.bias, + torch.zeros_like(m.conv3.bn.bias)) + + # x3d_s inference + input_shape = (1, 3, 13, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape) + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + x3d_s_frozen = x3d_s_frozen.cuda() + imgs_gpu = imgs.cuda() + feat = x3d_s_frozen(imgs_gpu) + assert feat.shape == torch.Size([1, 432, 13, 2, 2]) + else: + feat = x3d_s_frozen(imgs) + assert feat.shape == torch.Size([1, 432, 13, 2, 2]) + + # x3d_m inference + input_shape = (1, 3, 16, 96, 96) + imgs = generate_backbone_demo_inputs(input_shape) + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + x3d_s_frozen = x3d_s_frozen.cuda() + imgs_gpu = imgs.cuda() + feat = x3d_s_frozen(imgs_gpu) + assert feat.shape == torch.Size([1, 432, 16, 3, 3]) + else: + feat = x3d_s_frozen(imgs) + assert feat.shape == torch.Size([1, 432, 16, 3, 3]) + + +def test_resnet2plus1d_backbone(): + # Test r2+1d backbone + with pytest.raises(AssertionError): + # r2+1d does not support inflation + ResNet2Plus1d(50, None, pretrained2d=True) + + with pytest.raises(AssertionError): + # r2+1d requires conv(2+1)d module + ResNet2Plus1d( + 50, None, pretrained2d=False, conv_cfg=dict(type='Conv3d')) + + frozen_stages = 1 + r2plus1d_34_frozen = ResNet2Plus1d( + 34, + None, + conv_cfg=dict(type='Conv2plus1d'), + pretrained2d=False, + frozen_stages=frozen_stages, + conv1_kernel=(3, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(1, 1, 1, 1), + spatial_strides=(1, 2, 2, 2), + temporal_strides=(1, 2, 2, 2)) + r2plus1d_34_frozen.init_weights() + r2plus1d_34_frozen.train() + assert r2plus1d_34_frozen.conv1.conv.bn_s.training is False + assert r2plus1d_34_frozen.conv1.bn.training is False + for param in r2plus1d_34_frozen.conv1.parameters(): + assert param.requires_grad is False + for i in range(1, frozen_stages + 1): + layer = getattr(r2plus1d_34_frozen, f'layer{i}') + for mod in layer.modules(): + if isinstance(mod, _BatchNorm): + assert mod.training is False + for param in layer.parameters(): + assert param.requires_grad is False + input_shape = (1, 3, 8, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape) + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + r2plus1d_34_frozen = r2plus1d_34_frozen.cuda() + imgs_gpu = imgs.cuda() + feat = r2plus1d_34_frozen(imgs_gpu) + assert feat.shape == torch.Size([1, 512, 1, 2, 2]) + else: + feat = r2plus1d_34_frozen(imgs) + assert feat.shape == torch.Size([1, 512, 1, 2, 2]) + + r2plus1d_50_frozen = ResNet2Plus1d( + 50, + None, + conv_cfg=dict(type='Conv2plus1d'), + pretrained2d=False, + conv1_kernel=(3, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(1, 1, 1, 1), + spatial_strides=(1, 2, 2, 2), + temporal_strides=(1, 2, 2, 2), + frozen_stages=frozen_stages) + r2plus1d_50_frozen.init_weights() + + r2plus1d_50_frozen.train() + assert r2plus1d_50_frozen.conv1.conv.bn_s.training is False + assert r2plus1d_50_frozen.conv1.bn.training is False + for param in r2plus1d_50_frozen.conv1.parameters(): + assert param.requires_grad is False + for i in range(1, frozen_stages + 1): + layer = getattr(r2plus1d_50_frozen, f'layer{i}') + for mod in layer.modules(): + if isinstance(mod, _BatchNorm): + assert mod.training is False + for param in layer.parameters(): + assert param.requires_grad is False + input_shape = (1, 3, 8, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape) + + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + r2plus1d_50_frozen = r2plus1d_50_frozen.cuda() + imgs_gpu = imgs.cuda() + feat = r2plus1d_50_frozen(imgs_gpu) + assert feat.shape == torch.Size([1, 2048, 1, 2, 2]) + else: + feat = r2plus1d_50_frozen(imgs) + assert feat.shape == torch.Size([1, 2048, 1, 2, 2]) + + +def test_resnet_tsm_backbone(): + """Test resnet_tsm backbone.""" + with pytest.raises(NotImplementedError): + # shift_place must be block or blockres + resnet_tsm_50_block = ResNetTSM(50, shift_place='Block') + resnet_tsm_50_block.init_weights() + + from mmaction.models.backbones.resnet import Bottleneck + from mmaction.models.backbones.resnet_tsm import TemporalShift + + input_shape = (8, 3, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape) + + # resnet_tsm with depth 50 + resnet_tsm_50 = ResNetTSM(50) + resnet_tsm_50.init_weights() + for layer_name in resnet_tsm_50.res_layers: + layer = getattr(resnet_tsm_50, layer_name) + blocks = list(layer.children()) + for block in blocks: + assert isinstance(block.conv1.conv, TemporalShift) + assert block.conv1.conv.num_segments == resnet_tsm_50.num_segments + assert block.conv1.conv.shift_div == resnet_tsm_50.shift_div + assert isinstance(block.conv1.conv.net, nn.Conv2d) + + # resnet_tsm with depth 50, no pretrained, shift_place is block + resnet_tsm_50_block = ResNetTSM(50, shift_place='block') + resnet_tsm_50_block.init_weights() + for layer_name in resnet_tsm_50_block.res_layers: + layer = getattr(resnet_tsm_50_block, layer_name) + blocks = list(layer.children()) + for block in blocks: + assert isinstance(block, TemporalShift) + assert block.num_segments == resnet_tsm_50_block.num_segments + assert block.num_segments == resnet_tsm_50_block.num_segments + assert block.shift_div == resnet_tsm_50_block.shift_div + assert isinstance(block.net, Bottleneck) + + # resnet_tsm with depth 50, no pretrained, use temporal_pool + resnet_tsm_50_temporal_pool = ResNetTSM(50, temporal_pool=True) + resnet_tsm_50_temporal_pool.init_weights() + for layer_name in resnet_tsm_50_temporal_pool.res_layers: + layer = getattr(resnet_tsm_50_temporal_pool, layer_name) + blocks = list(layer.children()) + + if layer_name == 'layer2': + assert len(blocks) == 2 + assert isinstance(blocks[1], nn.MaxPool3d) + blocks = copy.deepcopy(blocks[0]) + + for block in blocks: + assert isinstance(block.conv1.conv, TemporalShift) + if layer_name == 'layer1': + assert block.conv1.conv.num_segments == \ + resnet_tsm_50_temporal_pool.num_segments + else: + assert block.conv1.conv.num_segments == \ + resnet_tsm_50_temporal_pool.num_segments // 2 + assert block.conv1.conv.shift_div == resnet_tsm_50_temporal_pool.shift_div # noqa: E501 + assert isinstance(block.conv1.conv.net, nn.Conv2d) + + # resnet_tsm with non-local module + non_local_cfg = dict( + sub_sample=True, + use_scale=False, + norm_cfg=dict(type='BN3d', requires_grad=True), + mode='embedded_gaussian') + non_local = ((0, 0, 0), (1, 0, 1, 0), (1, 0, 1, 0, 1, 0), (0, 0, 0)) + resnet_tsm_nonlocal = ResNetTSM( + 50, non_local=non_local, non_local_cfg=non_local_cfg) + resnet_tsm_nonlocal.init_weights() + for layer_name in ['layer2', 'layer3']: + layer = getattr(resnet_tsm_nonlocal, layer_name) + for i, _ in enumerate(layer): + if i % 2 == 0: + assert isinstance(layer[i], NL3DWrapper) + + resnet_tsm_50_full = ResNetTSM( + 50, + non_local=non_local, + non_local_cfg=non_local_cfg, + temporal_pool=True) + resnet_tsm_50_full.init_weights() + + # TSM forword + feat = resnet_tsm_50(imgs) + assert feat.shape == torch.Size([8, 2048, 2, 2]) + + # TSM with non-local forward + feat = resnet_tsm_nonlocal(imgs) + assert feat.shape == torch.Size([8, 2048, 2, 2]) + + # TSM with temporal pool forward + feat = resnet_tsm_50_temporal_pool(imgs) + assert feat.shape == torch.Size([4, 2048, 2, 2]) + + # TSM with temporal pool + non-local forward + input_shape = (16, 3, 32, 32) + imgs = generate_backbone_demo_inputs(input_shape) + feat = resnet_tsm_50_full(imgs) + assert feat.shape == torch.Size([8, 2048, 1, 1]) + + +def test_mobilenetv2_tsm_backbone(): + """Test mobilenetv2_tsm backbone.""" + from mmcv.cnn import ConvModule + + from mmaction.models.backbones.mobilenet_v2 import InvertedResidual + from mmaction.models.backbones.resnet_tsm import TemporalShift + + input_shape = (8, 3, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape) + + # mobilenetv2_tsm with width_mult = 1.0 + mobilenetv2_tsm = MobileNetV2TSM() + mobilenetv2_tsm.init_weights() + for cur_module in mobilenetv2_tsm.modules(): + if isinstance(cur_module, InvertedResidual) and \ + len(cur_module.conv) == 3 and \ + cur_module.use_res_connect: + assert isinstance(cur_module.conv[0], TemporalShift) + assert cur_module.conv[0].num_segments == \ + mobilenetv2_tsm.num_segments + assert cur_module.conv[0].shift_div == mobilenetv2_tsm.shift_div + assert isinstance(cur_module.conv[0].net, ConvModule) + + # TSM-MobileNetV2 with widen_factor = 1.0 forword + feat = mobilenetv2_tsm(imgs) + assert feat.shape == torch.Size([8, 1280, 2, 2]) + + # mobilenetv2 with widen_factor = 0.5 forword + mobilenetv2_tsm_05 = MobileNetV2TSM(widen_factor=0.5) + mobilenetv2_tsm_05.init_weights() + feat = mobilenetv2_tsm_05(imgs) + assert feat.shape == torch.Size([8, 1280, 2, 2]) + + # mobilenetv2 with widen_factor = 1.5 forword + mobilenetv2_tsm_15 = MobileNetV2TSM(widen_factor=1.5) + mobilenetv2_tsm_15.init_weights() + feat = mobilenetv2_tsm_15(imgs) + assert feat.shape == torch.Size([8, 1920, 2, 2]) + + +def test_slowfast_backbone(): + """Test SlowFast backbone.""" + with pytest.raises(TypeError): + # cfg should be a dict + ResNet3dSlowFast(None, slow_pathway=list(['foo', 'bar'])) + with pytest.raises(TypeError): + # pretrained should be a str + sf_50 = ResNet3dSlowFast(dict(foo='bar')) + sf_50.init_weights() + with pytest.raises(KeyError): + # pathway type should be implemented + ResNet3dSlowFast(None, slow_pathway=dict(type='resnext')) + + # test slowfast with slow inflated + sf_50_inflate = ResNet3dSlowFast( + None, + slow_pathway=dict( + type='resnet3d', + depth=50, + pretrained='torchvision://resnet50', + pretrained2d=True, + lateral=True, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1))) + sf_50_inflate.init_weights() + sf_50_inflate.train() + + # test slowfast with no lateral connection + sf_50_wo_lateral = ResNet3dSlowFast( + None, + slow_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=False, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1))) + sf_50_wo_lateral.init_weights() + sf_50_wo_lateral.train() + + # slowfast w/o lateral connection inference test + input_shape = (1, 3, 8, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape) + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + sf_50_wo_lateral = sf_50_wo_lateral.cuda() + imgs_gpu = imgs.cuda() + feat = sf_50_wo_lateral(imgs_gpu) + else: + feat = sf_50_wo_lateral(imgs) + + assert isinstance(feat, tuple) + assert feat[0].shape == torch.Size([1, 2048, 1, 2, 2]) + assert feat[1].shape == torch.Size([1, 256, 8, 2, 2]) + + # test slowfast with frozen stages config + frozen_slow = 3 + sf_50 = ResNet3dSlowFast( + None, + slow_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + pretrained2d=True, + lateral=True, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + frozen_stages=frozen_slow)) + sf_50.init_weights() + sf_50.train() + + for stage in range(1, sf_50.slow_path.num_stages): + lateral_name = sf_50.slow_path.lateral_connections[stage - 1] + conv_lateral = getattr(sf_50.slow_path, lateral_name) + for mod in conv_lateral.modules(): + if isinstance(mod, _BatchNorm): + if stage <= frozen_slow: + assert mod.training is False + else: + assert mod.training is True + for param in conv_lateral.parameters(): + if stage <= frozen_slow: + assert param.requires_grad is False + else: + assert param.requires_grad is True + + # test slowfast with normal config + sf_50 = ResNet3dSlowFast(None) + sf_50.init_weights() + sf_50.train() + + # slowfast inference test + input_shape = (1, 3, 8, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape) + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + sf_50 = sf_50.cuda() + imgs_gpu = imgs.cuda() + feat = sf_50(imgs_gpu) + else: + feat = sf_50(imgs) + + assert isinstance(feat, tuple) + assert feat[0].shape == torch.Size([1, 2048, 1, 2, 2]) + assert feat[1].shape == torch.Size([1, 256, 8, 2, 2]) + + +def test_slowonly_backbone(): + """Test SlowOnly backbone.""" + with pytest.raises(AssertionError): + # SlowOnly should contain no lateral connection + ResNet3dSlowOnly(50, None, lateral=True) + + # test SlowOnly for PoseC3D + so_50 = ResNet3dSlowOnly( + depth=50, + pretrained=None, + in_channels=17, + base_channels=32, + num_stages=3, + out_indices=(2, ), + stage_blocks=(4, 6, 3), + conv1_stride_s=1, + pool1_stride_s=1, + inflate=(0, 1, 1), + spatial_strides=(2, 2, 2), + temporal_strides=(1, 1, 2), + dilations=(1, 1, 1)) + so_50.init_weights() + so_50.train() + + # test SlowOnly with normal config + so_50 = ResNet3dSlowOnly(50, None) + so_50.init_weights() + so_50.train() + + # SlowOnly inference test + input_shape = (1, 3, 8, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape) + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + so_50 = so_50.cuda() + imgs_gpu = imgs.cuda() + feat = so_50(imgs_gpu) + else: + feat = so_50(imgs) + assert feat.shape == torch.Size([1, 2048, 8, 2, 2]) + + +def test_resnet_csn_backbone(): + """Test resnet_csn backbone.""" + with pytest.raises(ValueError): + # Bottleneck mode must be "ip" or "ir" + ResNet3dCSN(152, None, bottleneck_mode='id') + + input_shape = (2, 3, 6, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape) + + resnet3d_csn_frozen = ResNet3dCSN( + 152, None, bn_frozen=True, norm_eval=True) + resnet3d_csn_frozen.train() + for m in resnet3d_csn_frozen.modules(): + if isinstance(m, _BatchNorm): + for param in m.parameters(): + assert param.requires_grad is False + + # Interaction-preserved channel-separated bottleneck block + resnet3d_csn_ip = ResNet3dCSN(152, None, bottleneck_mode='ip') + resnet3d_csn_ip.init_weights() + resnet3d_csn_ip.train() + for i, layer_name in enumerate(resnet3d_csn_ip.res_layers): + layers = getattr(resnet3d_csn_ip, layer_name) + num_blocks = resnet3d_csn_ip.stage_blocks[i] + assert len(layers) == num_blocks + for layer in layers: + assert isinstance(layer.conv2, nn.Sequential) + assert len(layer.conv2) == 2 + assert layer.conv2[1].groups == layer.planes + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + resnet3d_csn_ip = resnet3d_csn_ip.cuda() + imgs_gpu = imgs.cuda() + feat = resnet3d_csn_ip(imgs_gpu) + assert feat.shape == torch.Size([2, 2048, 1, 2, 2]) + else: + feat = resnet3d_csn_ip(imgs) + assert feat.shape == torch.Size([2, 2048, 1, 2, 2]) + + # Interaction-reduced channel-separated bottleneck block + resnet3d_csn_ir = ResNet3dCSN(152, None, bottleneck_mode='ir') + resnet3d_csn_ir.init_weights() + resnet3d_csn_ir.train() + for i, layer_name in enumerate(resnet3d_csn_ir.res_layers): + layers = getattr(resnet3d_csn_ir, layer_name) + num_blocks = resnet3d_csn_ir.stage_blocks[i] + assert len(layers) == num_blocks + for layer in layers: + assert isinstance(layer.conv2, nn.Sequential) + assert len(layer.conv2) == 1 + assert layer.conv2[0].groups == layer.planes + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + resnet3d_csn_ir = resnet3d_csn_ir.cuda() + imgs_gpu = imgs.cuda() + feat = resnet3d_csn_ir(imgs_gpu) + assert feat.shape == torch.Size([2, 2048, 1, 2, 2]) + else: + feat = resnet3d_csn_ir(imgs) + assert feat.shape == torch.Size([2, 2048, 1, 2, 2]) + + # Set training status = False + resnet3d_csn_ip = ResNet3dCSN(152, None, bottleneck_mode='ip') + resnet3d_csn_ip.init_weights() + resnet3d_csn_ip.train(False) + for module in resnet3d_csn_ip.children(): + assert module.training is False + + +def test_tanet_backbone(): + """Test tanet backbone.""" + with pytest.raises(NotImplementedError): + # TA-Blocks are only based on Bottleneck block now + tanet_18 = TANet(18, 8) + tanet_18.init_weights() + + from mmaction.models.backbones.resnet import Bottleneck + from mmaction.models.backbones.tanet import TABlock + + # tanet with depth 50 + tanet_50 = TANet(50, 8) + tanet_50.init_weights() + + for layer_name in tanet_50.res_layers: + layer = getattr(tanet_50, layer_name) + blocks = list(layer.children()) + for block in blocks: + assert isinstance(block, TABlock) + assert isinstance(block.block, Bottleneck) + assert block.tam.num_segments == block.num_segments + assert block.tam.in_channels == block.block.conv1.out_channels + + input_shape = (8, 3, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape) + feat = tanet_50(imgs) + assert feat.shape == torch.Size([8, 2048, 2, 2]) + + input_shape = (16, 3, 32, 32) + imgs = generate_backbone_demo_inputs(input_shape) + feat = tanet_50(imgs) + assert feat.shape == torch.Size([16, 2048, 1, 1]) + + +def test_timesformer_backbone(): + input_shape = (1, 3, 8, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape) + + # divided_space_time + timesformer = TimeSformer( + 8, 64, 16, embed_dims=768, attention_type='divided_space_time') + timesformer.init_weights() + from mmaction.models.common import (DividedSpatialAttentionWithNorm, + DividedTemporalAttentionWithNorm, + FFNWithNorm) + assert isinstance(timesformer.transformer_layers.layers[0].attentions[0], + DividedTemporalAttentionWithNorm) + assert isinstance(timesformer.transformer_layers.layers[11].attentions[1], + DividedSpatialAttentionWithNorm) + assert isinstance(timesformer.transformer_layers.layers[0].ffns[0], + FFNWithNorm) + assert hasattr(timesformer, 'time_embed') + assert timesformer.patch_embed.num_patches == 16 + + cls_tokens = timesformer(imgs) + assert cls_tokens.shape == torch.Size([1, 768]) + + # space_only + timesformer = TimeSformer( + 8, 64, 16, embed_dims=512, num_heads=8, attention_type='space_only') + timesformer.init_weights() + + assert not hasattr(timesformer, 'time_embed') + assert timesformer.patch_embed.num_patches == 16 + + cls_tokens = timesformer(imgs) + assert cls_tokens.shape == torch.Size([1, 512]) + + # joint_space_time + input_shape = (1, 3, 2, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape) + timesformer = TimeSformer( + 2, + 64, + 8, + embed_dims=256, + num_heads=8, + attention_type='joint_space_time') + timesformer.init_weights() + + assert hasattr(timesformer, 'time_embed') + assert timesformer.patch_embed.num_patches == 64 + + cls_tokens = timesformer(imgs) + assert cls_tokens.shape == torch.Size([1, 256]) + + with pytest.raises(AssertionError): + # unsupported attention type + timesformer = TimeSformer( + 8, 64, 16, attention_type='wrong_attention_type') + + with pytest.raises(AssertionError): + # Wrong transformer_layers type + timesformer = TimeSformer(8, 64, 16, transformer_layers='wrong_type') + + +def test_c3d_backbone(): + """Test c3d backbone.""" + input_shape = (1, 3, 16, 24, 24) + imgs = generate_backbone_demo_inputs(input_shape) + + # c3d inference test + c3d = C3D(out_dim=512) + c3d.init_weights() + c3d.train() + feat = c3d(imgs) + assert feat.shape == torch.Size([1, 4096]) + + # c3d with bn inference test + c3d_bn = C3D(out_dim=512, norm_cfg=dict(type='BN3d')) + c3d_bn.init_weights() + c3d_bn.train() + feat = c3d_bn(imgs) + assert feat.shape == torch.Size([1, 4096]) + + +def test_resnet_audio_backbone(): + """Test ResNetAudio backbone.""" + input_shape = (1, 1, 16, 16) + spec = generate_backbone_demo_inputs(input_shape) + # inference + audioonly = ResNetAudio(50, None) + audioonly.init_weights() + audioonly.train() + feat = audioonly(spec) + assert feat.shape == torch.Size([1, 1024, 2, 2]) + + +@pytest.mark.skipif( + not torch.cuda.is_available(), reason='requires CUDA support') +def test_resnet_tin_backbone(): + """Test resnet_tin backbone.""" + with pytest.raises(AssertionError): + # num_segments should be positive + resnet_tin = ResNetTIN(50, num_segments=-1) + resnet_tin.init_weights() + + from mmaction.models.backbones.resnet_tin import (CombineNet, + TemporalInterlace) + + # resnet_tin with normal config + resnet_tin = ResNetTIN(50) + resnet_tin.init_weights() + for layer_name in resnet_tin.res_layers: + layer = getattr(resnet_tin, layer_name) + blocks = list(layer.children()) + for block in blocks: + assert isinstance(block.conv1.conv, CombineNet) + assert isinstance(block.conv1.conv.net1, TemporalInterlace) + assert ( + block.conv1.conv.net1.num_segments == resnet_tin.num_segments) + assert block.conv1.conv.net1.shift_div == resnet_tin.shift_div + + # resnet_tin with partial batchnorm + resnet_tin_pbn = ResNetTIN(50, partial_bn=True) + resnet_tin_pbn.train() + count_bn = 0 + for m in resnet_tin_pbn.modules(): + if isinstance(m, nn.BatchNorm2d): + count_bn += 1 + if count_bn >= 2: + assert m.training is False + assert m.weight.requires_grad is False + assert m.bias.requires_grad is False + else: + assert m.training is True + assert m.weight.requires_grad is True + assert m.bias.requires_grad is True + + input_shape = (8, 3, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape).cuda() + resnet_tin = resnet_tin.cuda() + + # resnet_tin with normal cfg inference + feat = resnet_tin(imgs) + assert feat.shape == torch.Size([8, 2048, 2, 2]) + + +def test_stgcn_backbone(): + """Test STGCN backbone.""" + # test coco layout, spatial strategy + input_shape = (1, 3, 300, 17, 2) + skeletons = generate_backbone_demo_inputs(input_shape) + + stgcn = STGCN( + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='coco', strategy='spatial')) + stgcn.init_weights() + stgcn.train() + feat = stgcn(skeletons) + assert feat.shape == torch.Size([2, 256, 75, 17]) + + # test openpose-18 layout, spatial strategy + input_shape = (1, 3, 300, 18, 2) + skeletons = generate_backbone_demo_inputs(input_shape) + + stgcn = STGCN( + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='openpose-18', strategy='spatial')) + stgcn.init_weights() + stgcn.train() + feat = stgcn(skeletons) + assert feat.shape == torch.Size([2, 256, 75, 18]) + + # test ntu-rgb+d layout, spatial strategy + input_shape = (1, 3, 300, 25, 2) + skeletons = generate_backbone_demo_inputs(input_shape) + + stgcn = STGCN( + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='ntu-rgb+d', strategy='spatial')) + stgcn.init_weights() + stgcn.train() + feat = stgcn(skeletons) + assert feat.shape == torch.Size([2, 256, 75, 25]) + + # test ntu_edge layout, spatial strategy + input_shape = (1, 3, 300, 24, 2) + skeletons = generate_backbone_demo_inputs(input_shape) + + stgcn = STGCN( + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='ntu_edge', strategy='spatial')) + stgcn.init_weights() + stgcn.train() + feat = stgcn(skeletons) + assert feat.shape == torch.Size([2, 256, 75, 24]) + + # test coco layout, uniform strategy + input_shape = (1, 3, 300, 17, 2) + skeletons = generate_backbone_demo_inputs(input_shape) + + stgcn = STGCN( + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='coco', strategy='uniform')) + stgcn.init_weights() + stgcn.train() + feat = stgcn(skeletons) + assert feat.shape == torch.Size([2, 256, 75, 17]) + + # test openpose-18 layout, uniform strategy + input_shape = (1, 3, 300, 18, 2) + skeletons = generate_backbone_demo_inputs(input_shape) + + stgcn = STGCN( + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='openpose-18', strategy='uniform')) + stgcn.init_weights() + stgcn.train() + feat = stgcn(skeletons) + assert feat.shape == torch.Size([2, 256, 75, 18]) + + # test ntu-rgb+d layout, uniform strategy + input_shape = (1, 3, 300, 25, 2) + skeletons = generate_backbone_demo_inputs(input_shape) + + stgcn = STGCN( + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='ntu-rgb+d', strategy='uniform')) + stgcn.init_weights() + stgcn.train() + feat = stgcn(skeletons) + assert feat.shape == torch.Size([2, 256, 75, 25]) + + # test ntu_edge layout, uniform strategy + input_shape = (1, 3, 300, 24, 2) + skeletons = generate_backbone_demo_inputs(input_shape) + + stgcn = STGCN( + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='ntu_edge', strategy='uniform')) + stgcn.init_weights() + stgcn.train() + feat = stgcn(skeletons) + assert feat.shape == torch.Size([2, 256, 75, 24]) + + # test coco layout, distance strategy + input_shape = (1, 3, 300, 17, 2) + skeletons = generate_backbone_demo_inputs(input_shape) + + stgcn = STGCN( + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='coco', strategy='distance')) + stgcn.init_weights() + stgcn.train() + feat = stgcn(skeletons) + assert feat.shape == torch.Size([2, 256, 75, 17]) + + # test openpose-18 layout, distance strategy + input_shape = (1, 3, 300, 18, 2) + skeletons = generate_backbone_demo_inputs(input_shape) + + stgcn = STGCN( + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='openpose-18', strategy='distance')) + stgcn.init_weights() + stgcn.train() + feat = stgcn(skeletons) + assert feat.shape == torch.Size([2, 256, 75, 18]) + + # test ntu-rgb+d layout, distance strategy + input_shape = (1, 3, 300, 25, 2) + skeletons = generate_backbone_demo_inputs(input_shape) + + stgcn = STGCN( + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='ntu-rgb+d', strategy='distance')) + stgcn.init_weights() + stgcn.train() + feat = stgcn(skeletons) + assert feat.shape == torch.Size([2, 256, 75, 25]) + + # test ntu_edge layout, distance strategy + input_shape = (1, 3, 300, 24, 2) + skeletons = generate_backbone_demo_inputs(input_shape) + + stgcn = STGCN( + in_channels=3, + edge_importance_weighting=True, + graph_cfg=dict(layout='ntu_edge', strategy='distance')) + stgcn.init_weights() + stgcn.train() + feat = stgcn(skeletons) + assert feat.shape == torch.Size([2, 256, 75, 24]) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common.py new file mode 100644 index 00000000..3cd6de2f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common.py @@ -0,0 +1,149 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +import pytest +import torch +import torch.nn as nn +from mmcv.utils import assert_params_all_zeros + +from mmaction.models.common import (LFB, TAM, Conv2plus1d, ConvAudio, + DividedSpatialAttentionWithNorm, + DividedTemporalAttentionWithNorm, + FFNWithNorm, SubBatchNorm3D) + + +def test_conv2plus1d(): + with pytest.raises(AssertionError): + # Length of kernel size, stride and padding must be the same + Conv2plus1d(3, 8, (2, 2)) + + conv_2plus1d = Conv2plus1d(3, 8, 2) + conv_2plus1d.init_weights() + + assert torch.equal(conv_2plus1d.bn_s.weight, + torch.ones_like(conv_2plus1d.bn_s.weight)) + assert torch.equal(conv_2plus1d.bn_s.bias, + torch.zeros_like(conv_2plus1d.bn_s.bias)) + + x = torch.rand(1, 3, 8, 256, 256) + output = conv_2plus1d(x) + assert output.shape == torch.Size([1, 8, 7, 255, 255]) + + +def test_conv_audio(): + conv_audio = ConvAudio(3, 8, 3) + conv_audio.init_weights() + + x = torch.rand(1, 3, 8, 8) + output = conv_audio(x) + assert output.shape == torch.Size([1, 16, 8, 8]) + + conv_audio_sum = ConvAudio(3, 8, 3, op='sum') + output = conv_audio_sum(x) + assert output.shape == torch.Size([1, 8, 8, 8]) + + +def test_divided_temporal_attention_with_norm(): + _cfg = dict(embed_dims=768, num_heads=12, num_frames=8) + divided_temporal_attention = DividedTemporalAttentionWithNorm(**_cfg) + assert isinstance(divided_temporal_attention.norm, nn.LayerNorm) + assert assert_params_all_zeros(divided_temporal_attention.temporal_fc) + + x = torch.rand(1, 1 + 8 * 14 * 14, 768) + output = divided_temporal_attention(x) + assert output.shape == torch.Size([1, 1 + 8 * 14 * 14, 768]) + + +def test_divided_spatial_attention_with_norm(): + _cfg = dict(embed_dims=512, num_heads=8, num_frames=4, dropout_layer=None) + divided_spatial_attention = DividedSpatialAttentionWithNorm(**_cfg) + assert isinstance(divided_spatial_attention.dropout_layer, nn.Identity) + assert isinstance(divided_spatial_attention.norm, nn.LayerNorm) + + x = torch.rand(1, 1 + 4 * 14 * 14, 512) + output = divided_spatial_attention(x) + assert output.shape == torch.Size([1, 1 + 4 * 14 * 14, 512]) + + +def test_ffn_with_norm(): + _cfg = dict( + embed_dims=256, feedforward_channels=256 * 2, norm_cfg=dict(type='LN')) + ffn_with_norm = FFNWithNorm(**_cfg) + assert isinstance(ffn_with_norm.norm, nn.LayerNorm) + + x = torch.rand(1, 1 + 4 * 14 * 14, 256) + output = ffn_with_norm(x) + assert output.shape == torch.Size([1, 1 + 4 * 14 * 14, 256]) + + +def test_TAM(): + """test TAM.""" + with pytest.raises(AssertionError): + # alpha must be a positive integer + TAM(16, 8, alpha=0, beta=4) + + with pytest.raises(AssertionError): + # beta must be a positive integer + TAM(16, 8, alpha=2, beta=0) + + with pytest.raises(AssertionError): + # the channels number of x should be equal to self.in_channels of TAM + tam = TAM(16, 8) + x = torch.rand(64, 8, 112, 112) + tam(x) + + tam = TAM(16, 8) + x = torch.rand(32, 16, 112, 112) + output = tam(x) + assert output.shape == torch.Size([32, 16, 112, 112]) + + +def test_LFB(): + """test LFB.""" + with pytest.raises(ValueError): + LFB(lfb_prefix_path='./_non_exist_path') + + lfb_prefix_path = osp.normpath( + osp.join(osp.dirname(__file__), '../data/lfb')) + + with pytest.raises(AssertionError): + LFB(lfb_prefix_path=lfb_prefix_path, dataset_modes=100) + + with pytest.raises(ValueError): + LFB(lfb_prefix_path=lfb_prefix_path, device='ceph') + + # load on cpu + lfb_cpu = LFB( + lfb_prefix_path=lfb_prefix_path, + max_num_sampled_feat=5, + window_size=60, + lfb_channels=16, + dataset_modes=('unittest'), + device='cpu') + + lt_feat_cpu = lfb_cpu['video_1,930'] + assert lt_feat_cpu.shape == (5 * 60, 16) + assert len(lfb_cpu) == 1 + + # load on lmdb + lfb_lmdb = LFB( + lfb_prefix_path=lfb_prefix_path, + max_num_sampled_feat=3, + window_size=30, + lfb_channels=16, + dataset_modes=('unittest'), + device='lmdb', + lmdb_map_size=1e6) + lt_feat_lmdb = lfb_lmdb['video_1,930'] + assert lt_feat_lmdb.shape == (3 * 30, 16) + + +def test_SubBatchNorm3D(): + _cfg = dict(num_splits=2) + num_features = 4 + sub_batchnorm_3d = SubBatchNorm3D(num_features, **_cfg) + assert sub_batchnorm_3d.bn.num_features == num_features + assert sub_batchnorm_3d.split_bn.num_features == num_features * 2 + + assert sub_batchnorm_3d.bn.affine is False + assert sub_batchnorm_3d.split_bn.affine is False diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/__init__.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/__init__.py new file mode 100644 index 00000000..ef101fec --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/__init__.py @@ -0,0 +1 @@ +# Copyright (c) OpenMMLab. All rights reserved. diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_base_head.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_base_head.py new file mode 100644 index 00000000..cff9eb4a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_base_head.py @@ -0,0 +1,73 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn.functional as F +from mmcv.utils import assert_dict_has_keys + +from mmaction.models import BaseHead + + +class ExampleHead(BaseHead): + # use an ExampleHead to test BaseHead + def init_weights(self): + pass + + def forward(self, x): + pass + + +def test_base_head(): + head = ExampleHead(3, 400, dict(type='CrossEntropyLoss')) + + cls_scores = torch.rand((3, 4)) + # When truth is non-empty then cls loss should be nonzero for random inputs + gt_labels = torch.LongTensor([2] * 3).squeeze() + losses = head.loss(cls_scores, gt_labels) + assert 'loss_cls' in losses.keys() + assert losses.get('loss_cls') > 0, 'cls loss should be non-zero' + + head = ExampleHead(3, 400, dict(type='CrossEntropyLoss', loss_weight=2.0)) + + cls_scores = torch.rand((3, 4)) + # When truth is non-empty then cls loss should be nonzero for random inputs + gt_labels = torch.LongTensor([2] * 3).squeeze() + losses = head.loss(cls_scores, gt_labels) + assert_dict_has_keys(losses, ['loss_cls']) + assert losses.get('loss_cls') > 0, 'cls loss should be non-zero' + + # Test Soft label with batch size > 1 + cls_scores = torch.rand((3, 3)) + gt_labels = torch.LongTensor([[2] * 3]) + gt_one_hot_labels = F.one_hot(gt_labels, num_classes=3).squeeze() + losses = head.loss(cls_scores, gt_one_hot_labels) + assert 'loss_cls' in losses.keys() + assert losses.get('loss_cls') > 0, 'cls loss should be non-zero' + + # Test Soft label with batch size = 1 + cls_scores = torch.rand((1, 3)) + gt_labels = torch.LongTensor([2]) + gt_one_hot_labels = F.one_hot(gt_labels, num_classes=3).squeeze() + losses = head.loss(cls_scores, gt_one_hot_labels) + assert 'loss_cls' in losses.keys() + assert losses.get('loss_cls') > 0, 'cls loss should be non-zero' + + # test multi-class & label smoothing + head = ExampleHead( + 3, + 400, + dict(type='BCELossWithLogits'), + multi_class=True, + label_smooth_eps=0.1) + + # batch size > 1 + cls_scores = torch.rand((2, 3)) + gt_labels = torch.LongTensor([[1, 0, 1], [0, 1, 0]]).squeeze() + losses = head.loss(cls_scores, gt_labels) + assert 'loss_cls' in losses.keys() + assert losses.get('loss_cls') > 0, 'cls loss should be non-zero' + + # batch size = 1 + cls_scores = torch.rand((1, 3)) + gt_labels = torch.LongTensor([[1, 0, 1]]).squeeze() + losses = head.loss(cls_scores, gt_labels) + assert 'loss_cls' in losses.keys() + assert losses.get('loss_cls') > 0, 'cls loss should be non-zero' diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_base_recognizers.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_base_recognizers.py new file mode 100644 index 00000000..7a145701 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_base_recognizers.py @@ -0,0 +1,66 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import pytest +import torch +import torch.nn.functional as F + +from mmaction.models import BaseRecognizer + + +class ExampleRecognizer(BaseRecognizer): + + def __init__(self, train_cfg, test_cfg): + super(BaseRecognizer, self).__init__() + # reconstruct `__init__()` method in BaseRecognizer to avoid building + # backbone and head which are useless to ExampleRecognizer, + # since ExampleRecognizer is only used for model-unrelated methods + # (like `average_clip`) testing. + self.train_cfg = train_cfg + self.test_cfg = test_cfg + + def forward_train(self, imgs, labels): + pass + + def forward_test(self, imgs): + pass + + def forward_gradcam(self, imgs): + pass + + +def test_base_recognizer(): + cls_score = torch.rand(5, 400) + with pytest.raises(KeyError): + # "average_clips" must defined in test_cfg keys + wrong_test_cfg = dict(clip='score') + recognizer = ExampleRecognizer(None, wrong_test_cfg) + recognizer.average_clip(cls_score) + + with pytest.raises(ValueError): + # unsupported average clips type + wrong_test_cfg = dict(average_clips='softmax') + recognizer = ExampleRecognizer(None, wrong_test_cfg) + recognizer.average_clip(cls_score) + + with pytest.raises(ValueError): + # Label should not be None + recognizer = ExampleRecognizer(None, None) + recognizer(torch.tensor(0)) + + # average_clips=None + test_cfg = dict(average_clips=None) + recognizer = ExampleRecognizer(None, test_cfg) + score = recognizer.average_clip(cls_score, num_segs=5) + assert torch.equal(score, cls_score) + + # average_clips='score' + test_cfg = dict(average_clips='score') + recognizer = ExampleRecognizer(None, test_cfg) + score = recognizer.average_clip(cls_score, num_segs=5) + assert torch.equal(score, cls_score.mean(dim=0, keepdim=True)) + + # average_clips='prob' + test_cfg = dict(average_clips='prob') + recognizer = ExampleRecognizer(None, test_cfg) + score = recognizer.average_clip(cls_score, num_segs=5) + assert torch.equal(score, + F.softmax(cls_score, dim=1).mean(dim=0, keepdim=True)) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_mobilenet_v2.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_mobilenet_v2.py new file mode 100644 index 00000000..09baee92 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_mobilenet_v2.py @@ -0,0 +1,218 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import pytest +import torch +from mmcv.utils import _BatchNorm + +from mmaction.models import MobileNetV2 +from ..base import check_norm_state, generate_backbone_demo_inputs + + +def test_mobilenetv2_backbone(): + """Test MobileNetV2. + + Modified from mmclassification. + """ + from torch.nn.modules import GroupNorm + + from mmaction.models.backbones.mobilenet_v2 import InvertedResidual + + def is_norm(modules): + """Check if is one of the norms.""" + if isinstance(modules, (GroupNorm, _BatchNorm)): + return True + return False + + def is_block(modules): + """Check if is ResNet building block.""" + if isinstance(modules, (InvertedResidual, )): + return True + return False + + with pytest.raises(TypeError): + # pretrained must be a string path + model = MobileNetV2(pretrained=0) + model.init_weights() + + with pytest.raises(ValueError): + # frozen_stages must in range(1, 9) + MobileNetV2(frozen_stages=9) + + with pytest.raises(ValueError): + # tout_indices in range(-1, 8) + MobileNetV2(out_indices=[8]) + + input_shape = (1, 3, 224, 224) + imgs = generate_backbone_demo_inputs(input_shape) + + # Test MobileNetV2 with first stage frozen + frozen_stages = 1 + model = MobileNetV2(frozen_stages=frozen_stages) + model.init_weights() + model.train() + + for mod in model.conv1.modules(): + for param in mod.parameters(): + assert param.requires_grad is False + for i in range(1, frozen_stages + 1): + layer = getattr(model, f'layer{i}') + for mod in layer.modules(): + if isinstance(mod, _BatchNorm): + assert mod.training is False + for param in layer.parameters(): + assert param.requires_grad is False + + # Test MobileNetV2 with all stages frozen + frozen_stages = 8 + model = MobileNetV2(frozen_stages=frozen_stages) + model.init_weights() + model.train() + + for mod in model.modules(): + if not isinstance(mod, MobileNetV2): + assert mod.training is False + for param in mod.parameters(): + assert param.requires_grad is False + + # Test MobileNetV2 with norm_eval=True + model = MobileNetV2(norm_eval=True) + model.init_weights() + model.train() + + assert check_norm_state(model.modules(), False) + + # Test MobileNetV2 forward with widen_factor=1.0, pretrained + model = MobileNetV2( + widen_factor=1.0, + out_indices=range(0, 8), + pretrained='mmcls://mobilenet_v2') + model.init_weights() + model.train() + + assert check_norm_state(model.modules(), True) + + feat = model(imgs) + assert len(feat) == 8 + assert feat[0].shape == torch.Size((1, 16, 112, 112)) + assert feat[1].shape == torch.Size((1, 24, 56, 56)) + assert feat[2].shape == torch.Size((1, 32, 28, 28)) + assert feat[3].shape == torch.Size((1, 64, 14, 14)) + assert feat[4].shape == torch.Size((1, 96, 14, 14)) + assert feat[5].shape == torch.Size((1, 160, 7, 7)) + assert feat[6].shape == torch.Size((1, 320, 7, 7)) + assert feat[7].shape == torch.Size((1, 1280, 7, 7)) + + # Test MobileNetV2 forward with widen_factor=0.5 + model = MobileNetV2(widen_factor=0.5, out_indices=range(0, 7)) + model.init_weights() + model.train() + + feat = model(imgs) + assert len(feat) == 7 + assert feat[0].shape == torch.Size((1, 8, 112, 112)) + assert feat[1].shape == torch.Size((1, 16, 56, 56)) + assert feat[2].shape == torch.Size((1, 16, 28, 28)) + assert feat[3].shape == torch.Size((1, 32, 14, 14)) + assert feat[4].shape == torch.Size((1, 48, 14, 14)) + assert feat[5].shape == torch.Size((1, 80, 7, 7)) + assert feat[6].shape == torch.Size((1, 160, 7, 7)) + + # Test MobileNetV2 forward with widen_factor=2.0 + model = MobileNetV2(widen_factor=2.0) + model.init_weights() + model.train() + + feat = model(imgs) + assert feat.shape == torch.Size((1, 2560, 7, 7)) + + # Test MobileNetV2 forward with out_indices=None + model = MobileNetV2(widen_factor=1.0) + model.init_weights() + model.train() + + feat = model(imgs) + assert feat.shape == torch.Size((1, 1280, 7, 7)) + + # Test MobileNetV2 forward with dict(type='ReLU') + model = MobileNetV2( + widen_factor=1.0, act_cfg=dict(type='ReLU'), out_indices=range(0, 7)) + model.init_weights() + model.train() + + feat = model(imgs) + assert len(feat) == 7 + assert feat[0].shape == torch.Size((1, 16, 112, 112)) + assert feat[1].shape == torch.Size((1, 24, 56, 56)) + assert feat[2].shape == torch.Size((1, 32, 28, 28)) + assert feat[3].shape == torch.Size((1, 64, 14, 14)) + assert feat[4].shape == torch.Size((1, 96, 14, 14)) + assert feat[5].shape == torch.Size((1, 160, 7, 7)) + assert feat[6].shape == torch.Size((1, 320, 7, 7)) + + # Test MobileNetV2 with GroupNorm forward + model = MobileNetV2(widen_factor=1.0, out_indices=range(0, 7)) + for m in model.modules(): + if is_norm(m): + assert isinstance(m, _BatchNorm) + model.init_weights() + model.train() + + feat = model(imgs) + assert len(feat) == 7 + assert feat[0].shape == torch.Size((1, 16, 112, 112)) + assert feat[1].shape == torch.Size((1, 24, 56, 56)) + assert feat[2].shape == torch.Size((1, 32, 28, 28)) + assert feat[3].shape == torch.Size((1, 64, 14, 14)) + assert feat[4].shape == torch.Size((1, 96, 14, 14)) + assert feat[5].shape == torch.Size((1, 160, 7, 7)) + assert feat[6].shape == torch.Size((1, 320, 7, 7)) + + # Test MobileNetV2 with BatchNorm forward + model = MobileNetV2( + widen_factor=1.0, + norm_cfg=dict(type='GN', num_groups=2, requires_grad=True), + out_indices=range(0, 7)) + for m in model.modules(): + if is_norm(m): + assert isinstance(m, GroupNorm) + model.init_weights() + model.train() + + feat = model(imgs) + assert len(feat) == 7 + assert feat[0].shape == torch.Size((1, 16, 112, 112)) + assert feat[1].shape == torch.Size((1, 24, 56, 56)) + assert feat[2].shape == torch.Size((1, 32, 28, 28)) + assert feat[3].shape == torch.Size((1, 64, 14, 14)) + assert feat[4].shape == torch.Size((1, 96, 14, 14)) + assert feat[5].shape == torch.Size((1, 160, 7, 7)) + assert feat[6].shape == torch.Size((1, 320, 7, 7)) + + # Test MobileNetV2 with layers 1, 3, 5 out forward + model = MobileNetV2(widen_factor=1.0, out_indices=(0, 2, 4)) + model.init_weights() + model.train() + + feat = model(imgs) + assert len(feat) == 3 + assert feat[0].shape == torch.Size((1, 16, 112, 112)) + assert feat[1].shape == torch.Size((1, 32, 28, 28)) + assert feat[2].shape == torch.Size((1, 96, 14, 14)) + + # Test MobileNetV2 with checkpoint forward + model = MobileNetV2( + widen_factor=1.0, with_cp=True, out_indices=range(0, 7)) + for m in model.modules(): + if is_block(m): + assert m.with_cp + model.init_weights() + model.train() + + feat = model(imgs) + assert len(feat) == 7 + assert feat[0].shape == torch.Size((1, 16, 112, 112)) + assert feat[1].shape == torch.Size((1, 24, 56, 56)) + assert feat[2].shape == torch.Size((1, 32, 28, 28)) + assert feat[3].shape == torch.Size((1, 64, 14, 14)) + assert feat[4].shape == torch.Size((1, 96, 14, 14)) + assert feat[5].shape == torch.Size((1, 160, 7, 7)) + assert feat[6].shape == torch.Size((1, 320, 7, 7)) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_resnet.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_resnet.py new file mode 100644 index 00000000..7f4a46ec --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_resnet.py @@ -0,0 +1,128 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import pytest +import torch +import torch.nn as nn +from mmcv.utils import _BatchNorm + +from mmaction.models import ResNet +from ..base import check_norm_state, generate_backbone_demo_inputs + + +def test_resnet_backbone(): + """Test resnet backbone.""" + with pytest.raises(KeyError): + # ResNet depth should be in [18, 34, 50, 101, 152] + ResNet(20) + + with pytest.raises(AssertionError): + # In ResNet: 1 <= num_stages <= 4 + ResNet(50, num_stages=0) + + with pytest.raises(AssertionError): + # In ResNet: 1 <= num_stages <= 4 + ResNet(50, num_stages=5) + + with pytest.raises(AssertionError): + # len(strides) == len(dilations) == num_stages + ResNet(50, strides=(1, ), dilations=(1, 1), num_stages=3) + + with pytest.raises(TypeError): + # pretrain must be a str + resnet50 = ResNet(50, pretrained=0) + resnet50.init_weights() + + with pytest.raises(AssertionError): + # style must be in ['pytorch', 'caffe'] + ResNet(18, style='tensorflow') + + with pytest.raises(AssertionError): + # assert not with_cp + ResNet(18, with_cp=True) + + # resnet with depth 18, norm_eval False, initial weights + resnet18 = ResNet(18) + resnet18.init_weights() + + # resnet with depth 50, norm_eval True + resnet50 = ResNet(50, norm_eval=True) + resnet50.init_weights() + resnet50.train() + assert check_norm_state(resnet50.modules(), False) + + # resnet with depth 50, norm_eval True, pretrained + resnet50_pretrain = ResNet( + pretrained='torchvision://resnet50', depth=50, norm_eval=True) + resnet50_pretrain.init_weights() + resnet50_pretrain.train() + assert check_norm_state(resnet50_pretrain.modules(), False) + + # resnet with depth 50, norm_eval True, frozen_stages 1 + frozen_stages = 1 + resnet50_frozen = ResNet(50, frozen_stages=frozen_stages) + resnet50_frozen.init_weights() + resnet50_frozen.train() + assert resnet50_frozen.conv1.bn.training is False + for layer in resnet50_frozen.conv1.modules(): + for param in layer.parameters(): + assert param.requires_grad is False + for i in range(1, frozen_stages + 1): + layer = getattr(resnet50_frozen, f'layer{i}') + for mod in layer.modules(): + if isinstance(mod, _BatchNorm): + assert mod.training is False + for param in layer.parameters(): + assert param.requires_grad is False + + # resnet with depth 50, partial batchnorm + resnet_pbn = ResNet(50, partial_bn=True) + resnet_pbn.train() + count_bn = 0 + for m in resnet_pbn.modules(): + if isinstance(m, nn.BatchNorm2d): + count_bn += 1 + if count_bn >= 2: + assert m.weight.requires_grad is False + assert m.bias.requires_grad is False + assert m.training is False + else: + assert m.weight.requires_grad is True + assert m.bias.requires_grad is True + assert m.training is True + + input_shape = (1, 3, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape) + + # resnet with depth 18 inference + resnet18 = ResNet(18, norm_eval=False) + resnet18.init_weights() + resnet18.train() + feat = resnet18(imgs) + assert feat.shape == torch.Size([1, 512, 2, 2]) + + # resnet with depth 50 inference + resnet50 = ResNet(50, norm_eval=False) + resnet50.init_weights() + resnet50.train() + feat = resnet50(imgs) + assert feat.shape == torch.Size([1, 2048, 2, 2]) + + # resnet with depth 50 in caffe style inference + resnet50_caffe = ResNet(50, style='caffe', norm_eval=False) + resnet50_caffe.init_weights() + resnet50_caffe.train() + feat = resnet50_caffe(imgs) + assert feat.shape == torch.Size([1, 2048, 2, 2]) + + resnet50_flow = ResNet( + depth=50, pretrained='torchvision://resnet50', in_channels=10) + input_shape = (1, 10, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape) + feat = resnet50_flow(imgs) + assert feat.shape == torch.Size([1, 2048, 2, 2]) + + resnet50 = ResNet( + depth=50, pretrained='torchvision://resnet50', in_channels=3) + input_shape = (1, 3, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape) + feat = resnet50(imgs) + assert feat.shape == torch.Size([1, 2048, 2, 2]) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_resnet3d.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_resnet3d.py new file mode 100644 index 00000000..d0c354ea --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_common_modules/test_resnet3d.py @@ -0,0 +1,335 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import pytest +import torch +import torch.nn as nn +from mmcv.utils import _BatchNorm + +from mmaction.models import ResNet3d, ResNet3dLayer +from ..base import check_norm_state, generate_backbone_demo_inputs + + +def test_resnet3d_backbone(): + """Test resnet3d backbone.""" + with pytest.raises(AssertionError): + # In ResNet3d: 1 <= num_stages <= 4 + ResNet3d(34, None, num_stages=0) + + with pytest.raises(AssertionError): + # In ResNet3d: 1 <= num_stages <= 4 + ResNet3d(34, None, num_stages=5) + + with pytest.raises(AssertionError): + # In ResNet3d: 1 <= num_stages <= 4 + ResNet3d(50, None, num_stages=0) + + with pytest.raises(AssertionError): + # In ResNet3d: 1 <= num_stages <= 4 + ResNet3d(50, None, num_stages=5) + + with pytest.raises(AssertionError): + # len(spatial_strides) == len(temporal_strides) + # == len(dilations) == num_stages + ResNet3d( + 50, + None, + spatial_strides=(1, ), + temporal_strides=(1, 1), + dilations=(1, 1, 1), + num_stages=4) + + with pytest.raises(AssertionError): + # len(spatial_strides) == len(temporal_strides) + # == len(dilations) == num_stages + ResNet3d( + 34, + None, + spatial_strides=(1, ), + temporal_strides=(1, 1), + dilations=(1, 1, 1), + num_stages=4) + + with pytest.raises(TypeError): + # pretrain must be str or None. + resnet3d_34 = ResNet3d(34, ['resnet', 'bninception']) + resnet3d_34.init_weights() + + with pytest.raises(TypeError): + # pretrain must be str or None. + resnet3d_50 = ResNet3d(50, ['resnet', 'bninception']) + resnet3d_50.init_weights() + + # resnet3d with depth 34, no pretrained, norm_eval True + resnet3d_34 = ResNet3d(34, None, pretrained2d=False, norm_eval=True) + resnet3d_34.init_weights() + resnet3d_34.train() + assert check_norm_state(resnet3d_34.modules(), False) + + # resnet3d with depth 50, no pretrained, norm_eval True + resnet3d_50 = ResNet3d(50, None, pretrained2d=False, norm_eval=True) + resnet3d_50.init_weights() + resnet3d_50.train() + assert check_norm_state(resnet3d_50.modules(), False) + + # resnet3d with depth 50, pretrained2d, norm_eval True + resnet3d_50_pretrain = ResNet3d( + 50, 'torchvision://resnet50', norm_eval=True) + resnet3d_50_pretrain.init_weights() + resnet3d_50_pretrain.train() + assert check_norm_state(resnet3d_50_pretrain.modules(), False) + from mmcv.runner import _load_checkpoint + chkp_2d = _load_checkpoint('torchvision://resnet50') + for name, module in resnet3d_50_pretrain.named_modules(): + if len(name.split('.')) == 4: + # layer.block.module.submodule + prefix = name.split('.')[:2] + module_type = name.split('.')[2] + submodule_type = name.split('.')[3] + + if module_type == 'downsample': + name2d = name.replace('conv', '0').replace('bn', '1') + else: + layer_id = name.split('.')[2][-1] + name2d = prefix[0] + '.' + prefix[1] + '.' + \ + submodule_type + layer_id + + if isinstance(module, nn.Conv3d): + conv2d_weight = chkp_2d[name2d + '.weight'] + conv3d_weight = getattr(module, 'weight').data + assert torch.equal( + conv3d_weight, + conv2d_weight.data.unsqueeze(2).expand_as(conv3d_weight) / + conv3d_weight.shape[2]) + if getattr(module, 'bias') is not None: + conv2d_bias = chkp_2d[name2d + '.bias'] + conv3d_bias = getattr(module, 'bias').data + assert torch.equal(conv2d_bias, conv3d_bias) + + elif isinstance(module, nn.BatchNorm3d): + for pname in ['weight', 'bias', 'running_mean', 'running_var']: + param_2d = chkp_2d[name2d + '.' + pname] + param_3d = getattr(module, pname).data + assert torch.equal(param_2d, param_3d) + + conv3d = resnet3d_50_pretrain.conv1.conv + assert torch.equal( + conv3d.weight, + chkp_2d['conv1.weight'].unsqueeze(2).expand_as(conv3d.weight) / + conv3d.weight.shape[2]) + conv3d = resnet3d_50_pretrain.layer3[2].conv2.conv + assert torch.equal( + conv3d.weight, chkp_2d['layer3.2.conv2.weight'].unsqueeze(2).expand_as( + conv3d.weight) / conv3d.weight.shape[2]) + + # resnet3d with depth 34, no pretrained, norm_eval False + resnet3d_34_no_bn_eval = ResNet3d( + 34, None, pretrained2d=False, norm_eval=False) + resnet3d_34_no_bn_eval.init_weights() + resnet3d_34_no_bn_eval.train() + assert check_norm_state(resnet3d_34_no_bn_eval.modules(), True) + + # resnet3d with depth 50, no pretrained, norm_eval False + resnet3d_50_no_bn_eval = ResNet3d( + 50, None, pretrained2d=False, norm_eval=False) + resnet3d_50_no_bn_eval.init_weights() + resnet3d_50_no_bn_eval.train() + assert check_norm_state(resnet3d_50_no_bn_eval.modules(), True) + + # resnet3d with depth 34, no pretrained, frozen_stages, norm_eval False + frozen_stages = 1 + resnet3d_34_frozen = ResNet3d( + 34, None, pretrained2d=False, frozen_stages=frozen_stages) + resnet3d_34_frozen.init_weights() + resnet3d_34_frozen.train() + assert resnet3d_34_frozen.conv1.bn.training is False + for param in resnet3d_34_frozen.conv1.parameters(): + assert param.requires_grad is False + for i in range(1, frozen_stages + 1): + layer = getattr(resnet3d_34_frozen, f'layer{i}') + for mod in layer.modules(): + if isinstance(mod, _BatchNorm): + assert mod.training is False + for param in layer.parameters(): + assert param.requires_grad is False + # test zero_init_residual + for m in resnet3d_34_frozen.modules(): + if hasattr(m, 'conv2'): + assert torch.equal(m.conv2.bn.weight, + torch.zeros_like(m.conv2.bn.weight)) + assert torch.equal(m.conv2.bn.bias, + torch.zeros_like(m.conv2.bn.bias)) + + # resnet3d with depth 50, no pretrained, frozen_stages, norm_eval False + frozen_stages = 1 + resnet3d_50_frozen = ResNet3d( + 50, None, pretrained2d=False, frozen_stages=frozen_stages) + resnet3d_50_frozen.init_weights() + resnet3d_50_frozen.train() + assert resnet3d_50_frozen.conv1.bn.training is False + for param in resnet3d_50_frozen.conv1.parameters(): + assert param.requires_grad is False + for i in range(1, frozen_stages + 1): + layer = getattr(resnet3d_50_frozen, f'layer{i}') + for mod in layer.modules(): + if isinstance(mod, _BatchNorm): + assert mod.training is False + for param in layer.parameters(): + assert param.requires_grad is False + # test zero_init_residual + for m in resnet3d_50_frozen.modules(): + if hasattr(m, 'conv3'): + assert torch.equal(m.conv3.bn.weight, + torch.zeros_like(m.conv3.bn.weight)) + assert torch.equal(m.conv3.bn.bias, + torch.zeros_like(m.conv3.bn.bias)) + + # resnet3d frozen with depth 34 inference + input_shape = (1, 3, 6, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape) + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + resnet3d_34_frozen = resnet3d_34_frozen.cuda() + imgs_gpu = imgs.cuda() + feat = resnet3d_34_frozen(imgs_gpu) + assert feat.shape == torch.Size([1, 512, 3, 2, 2]) + else: + feat = resnet3d_34_frozen(imgs) + assert feat.shape == torch.Size([1, 512, 3, 2, 2]) + + # resnet3d with depth 50 inference + input_shape = (1, 3, 6, 64, 64) + imgs = generate_backbone_demo_inputs(input_shape) + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + resnet3d_50_frozen = resnet3d_50_frozen.cuda() + imgs_gpu = imgs.cuda() + feat = resnet3d_50_frozen(imgs_gpu) + assert feat.shape == torch.Size([1, 2048, 3, 2, 2]) + else: + feat = resnet3d_50_frozen(imgs) + assert feat.shape == torch.Size([1, 2048, 3, 2, 2]) + + # resnet3d with depth 50 in caffe style inference + resnet3d_50_caffe = ResNet3d(50, None, pretrained2d=False, style='caffe') + resnet3d_50_caffe.init_weights() + resnet3d_50_caffe.train() + + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + resnet3d_50_caffe = resnet3d_50_caffe.cuda() + imgs_gpu = imgs.cuda() + feat = resnet3d_50_caffe(imgs_gpu) + assert feat.shape == torch.Size([1, 2048, 3, 2, 2]) + else: + feat = resnet3d_50_caffe(imgs) + assert feat.shape == torch.Size([1, 2048, 3, 2, 2]) + + # resnet3d with depth 34 in caffe style inference + resnet3d_34_caffe = ResNet3d(34, None, pretrained2d=False, style='caffe') + resnet3d_34_caffe.init_weights() + resnet3d_34_caffe.train() + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + resnet3d_34_caffe = resnet3d_34_caffe.cuda() + imgs_gpu = imgs.cuda() + feat = resnet3d_34_caffe(imgs_gpu) + assert feat.shape == torch.Size([1, 512, 3, 2, 2]) + else: + feat = resnet3d_34_caffe(imgs) + assert feat.shape == torch.Size([1, 512, 3, 2, 2]) + + # resnet3d with depth with 3x3x3 inflate_style inference + resnet3d_50_1x1x1 = ResNet3d( + 50, None, pretrained2d=False, inflate_style='3x3x3') + resnet3d_50_1x1x1.init_weights() + resnet3d_50_1x1x1.train() + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + resnet3d_50_1x1x1 = resnet3d_50_1x1x1.cuda() + imgs_gpu = imgs.cuda() + feat = resnet3d_50_1x1x1(imgs_gpu) + assert feat.shape == torch.Size([1, 2048, 3, 2, 2]) + else: + feat = resnet3d_50_1x1x1(imgs) + assert feat.shape == torch.Size([1, 2048, 3, 2, 2]) + + resnet3d_34_1x1x1 = ResNet3d( + 34, None, pretrained2d=False, inflate_style='3x3x3') + resnet3d_34_1x1x1.init_weights() + resnet3d_34_1x1x1.train() + + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + resnet3d_34_1x1x1 = resnet3d_34_1x1x1.cuda() + imgs_gpu = imgs.cuda() + feat = resnet3d_34_1x1x1(imgs_gpu) + assert feat.shape == torch.Size([1, 512, 3, 2, 2]) + else: + feat = resnet3d_34_1x1x1(imgs) + assert feat.shape == torch.Size([1, 512, 3, 2, 2]) + + # resnet3d with non-local module + non_local_cfg = dict( + sub_sample=True, + use_scale=False, + norm_cfg=dict(type='BN3d', requires_grad=True), + mode='embedded_gaussian') + non_local = ((0, 0, 0), (1, 0, 1, 0), (1, 0, 1, 0, 1, 0), (0, 0, 0)) + resnet3d_nonlocal = ResNet3d( + 50, + None, + pretrained2d=False, + non_local=non_local, + non_local_cfg=non_local_cfg) + resnet3d_nonlocal.init_weights() + for layer_name in ['layer2', 'layer3']: + layer = getattr(resnet3d_nonlocal, layer_name) + for i, _ in enumerate(layer): + if i % 2 == 0: + assert hasattr(layer[i], 'non_local_block') + + feat = resnet3d_nonlocal(imgs) + assert feat.shape == torch.Size([1, 2048, 3, 2, 2]) + + +def test_resnet3d_layer(): + with pytest.raises(AssertionError): + ResNet3dLayer(22, None) + + with pytest.raises(AssertionError): + ResNet3dLayer(50, None, stage=4) + + res_layer = ResNet3dLayer(50, None, stage=3, norm_eval=True) + res_layer.init_weights() + res_layer.train() + input_shape = (1, 1024, 1, 4, 4) + imgs = generate_backbone_demo_inputs(input_shape) + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + res_layer = res_layer.cuda() + imgs_gpu = imgs.cuda() + feat = res_layer(imgs_gpu) + assert feat.shape == torch.Size([1, 2048, 1, 2, 2]) + else: + feat = res_layer(imgs) + assert feat.shape == torch.Size([1, 2048, 1, 2, 2]) + + res_layer = ResNet3dLayer( + 50, 'torchvision://resnet50', stage=3, all_frozen=True) + res_layer.init_weights() + res_layer.train() + imgs = generate_backbone_demo_inputs(input_shape) + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + res_layer = res_layer.cuda() + imgs_gpu = imgs.cuda() + feat = res_layer(imgs_gpu) + assert feat.shape == torch.Size([1, 2048, 1, 2, 2]) + else: + feat = res_layer(imgs) + assert feat.shape == torch.Size([1, 2048, 1, 2, 2]) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_detectors/__init__.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_detectors/__init__.py new file mode 100644 index 00000000..ef101fec --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_detectors/__init__.py @@ -0,0 +1 @@ +# Copyright (c) OpenMMLab. All rights reserved. diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_detectors/test_detectors.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_detectors/test_detectors.py new file mode 100644 index 00000000..e1590be4 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_detectors/test_detectors.py @@ -0,0 +1,42 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import pytest +import torch + +from ..base import generate_detector_demo_inputs, get_detector_cfg + +try: + from mmaction.models import build_detector + mmdet_imported = True +except (ImportError, ModuleNotFoundError): + mmdet_imported = False + + +@pytest.mark.skipif(not mmdet_imported, reason='requires mmdet') +def test_ava_detector(): + config = get_detector_cfg('ava/slowonly_kinetics_pretrained_r50_' + '4x16x1_20e_ava_rgb.py') + detector = build_detector(config.model) + + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + train_demo_inputs = generate_detector_demo_inputs( + train=True, device='cuda') + test_demo_inputs = generate_detector_demo_inputs( + train=False, device='cuda') + detector = detector.cuda() + + losses = detector(**train_demo_inputs) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + _ = detector(**test_demo_inputs, return_loss=False) + else: + train_demo_inputs = generate_detector_demo_inputs(train=True) + test_demo_inputs = generate_detector_demo_inputs(train=False) + losses = detector(**train_demo_inputs) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + _ = detector(**test_demo_inputs, return_loss=False) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_gradcam.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_gradcam.py new file mode 100644 index 00000000..f80333de --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_gradcam.py @@ -0,0 +1,230 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import pytest +import torch + +from mmaction.models import build_recognizer +from mmaction.utils.gradcam_utils import GradCAM +from .base import generate_gradcam_inputs, get_recognizer_cfg + + +def _get_target_shapes(input_shape, num_classes=400, model_type='2D'): + if model_type not in ['2D', '3D']: + raise ValueError(f'Data type {model_type} is not available') + + preds_target_shape = (input_shape[0], num_classes) + if model_type == '3D': + # input shape (batch_size, num_crops*num_clips, C, clip_len, H, W) + # target shape (batch_size*num_crops*num_clips, clip_len, H, W, C) + blended_imgs_target_shape = (input_shape[0] * input_shape[1], + input_shape[3], input_shape[4], + input_shape[5], input_shape[2]) + else: + # input shape (batch_size, num_segments, C, H, W) + # target shape (batch_size, num_segments, H, W, C) + blended_imgs_target_shape = (input_shape[0], input_shape[1], + input_shape[3], input_shape[4], + input_shape[2]) + + return blended_imgs_target_shape, preds_target_shape + + +def _do_test_2D_models(recognizer, + target_layer_name, + input_shape, + num_classes=400, + device='cpu'): + demo_inputs = generate_gradcam_inputs(input_shape) + demo_inputs['imgs'] = demo_inputs['imgs'].to(device) + demo_inputs['label'] = demo_inputs['label'].to(device) + + recognizer = recognizer.to(device) + gradcam = GradCAM(recognizer, target_layer_name) + + blended_imgs_target_shape, preds_target_shape = _get_target_shapes( + input_shape, num_classes=num_classes, model_type='2D') + + blended_imgs, preds = gradcam(demo_inputs) + assert blended_imgs.size() == blended_imgs_target_shape + assert preds.size() == preds_target_shape + + blended_imgs, preds = gradcam(demo_inputs, True) + assert blended_imgs.size() == blended_imgs_target_shape + assert preds.size() == preds_target_shape + + +def _do_test_3D_models(recognizer, + target_layer_name, + input_shape, + num_classes=400): + blended_imgs_target_shape, preds_target_shape = _get_target_shapes( + input_shape, num_classes=num_classes, model_type='3D') + demo_inputs = generate_gradcam_inputs(input_shape, '3D') + + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + recognizer = recognizer.cuda() + demo_inputs['imgs'] = demo_inputs['imgs'].cuda() + demo_inputs['label'] = demo_inputs['label'].cuda() + gradcam = GradCAM(recognizer, target_layer_name) + + blended_imgs, preds = gradcam(demo_inputs) + assert blended_imgs.size() == blended_imgs_target_shape + assert preds.size() == preds_target_shape + + blended_imgs, preds = gradcam(demo_inputs, True) + assert blended_imgs.size() == blended_imgs_target_shape + assert preds.size() == preds_target_shape + else: + gradcam = GradCAM(recognizer, target_layer_name) + + blended_imgs, preds = gradcam(demo_inputs) + assert blended_imgs.size() == blended_imgs_target_shape + assert preds.size() == preds_target_shape + + blended_imgs, preds = gradcam(demo_inputs, True) + assert blended_imgs.size() == blended_imgs_target_shape + assert preds.size() == preds_target_shape + + +def test_tsn(): + config = get_recognizer_cfg('tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py') + config.model['backbone']['pretrained'] = None + recognizer = build_recognizer(config.model) + recognizer.cfg = config + + input_shape = (1, 25, 3, 32, 32) + target_layer_name = 'backbone/layer4/1/relu' + + _do_test_2D_models(recognizer, target_layer_name, input_shape) + + +def test_i3d(): + config = get_recognizer_cfg('i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py') + config.model['backbone']['pretrained2d'] = False + config.model['backbone']['pretrained'] = None + + recognizer = build_recognizer(config.model) + recognizer.cfg = config + + input_shape = [1, 1, 3, 32, 32, 32] + target_layer_name = 'backbone/layer4/1/relu' + + _do_test_3D_models(recognizer, target_layer_name, input_shape) + + +def test_r2plus1d(): + config = get_recognizer_cfg( + 'r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py') + config.model['backbone']['pretrained2d'] = False + config.model['backbone']['pretrained'] = None + config.model['backbone']['norm_cfg'] = dict(type='BN3d') + + recognizer = build_recognizer(config.model) + recognizer.cfg = config + + input_shape = (1, 3, 3, 8, 32, 32) + target_layer_name = 'backbone/layer4/1/relu' + + _do_test_3D_models(recognizer, target_layer_name, input_shape) + + +def test_slowfast(): + config = get_recognizer_cfg( + 'slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb.py') + + recognizer = build_recognizer(config.model) + recognizer.cfg = config + + input_shape = (1, 1, 3, 32, 32, 32) + target_layer_name = 'backbone/slow_path/layer4/1/relu' + + _do_test_3D_models(recognizer, target_layer_name, input_shape) + + +def test_tsm(): + config = get_recognizer_cfg('tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py') + config.model['backbone']['pretrained'] = None + target_layer_name = 'backbone/layer4/1/relu' + + # base config + recognizer = build_recognizer(config.model) + recognizer.cfg = config + input_shape = (1, 8, 3, 32, 32) + _do_test_2D_models(recognizer, target_layer_name, input_shape) + + # test twice sample + 3 crops, 2*3*8=48 + config.model.test_cfg = dict(average_clips='prob') + recognizer = build_recognizer(config.model) + recognizer.cfg = config + input_shape = (1, 48, 3, 32, 32) + _do_test_2D_models(recognizer, target_layer_name, input_shape) + + +def test_csn(): + config = get_recognizer_cfg( + 'csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb.py') + config.model['backbone']['pretrained2d'] = False + config.model['backbone']['pretrained'] = None + + recognizer = build_recognizer(config.model) + recognizer.cfg = config + input_shape = (1, 1, 3, 32, 32, 32) + target_layer_name = 'backbone/layer4/1/relu' + + _do_test_3D_models(recognizer, target_layer_name, input_shape) + + +def test_tpn(): + target_layer_name = 'backbone/layer4/1/relu' + + config = get_recognizer_cfg('tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb.py') + config.model['backbone']['pretrained'] = None + recognizer = build_recognizer(config.model) + recognizer.cfg = config + + input_shape = (1, 8, 3, 32, 32) + _do_test_2D_models(recognizer, target_layer_name, input_shape, 174) + + config = get_recognizer_cfg( + 'tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.py') + config.model['backbone']['pretrained'] = None + recognizer = build_recognizer(config.model) + recognizer.cfg = config + input_shape = (1, 3, 3, 8, 32, 32) + _do_test_3D_models(recognizer, target_layer_name, input_shape) + + +def test_c3d(): + config = get_recognizer_cfg('c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb.py') + config.model['backbone']['pretrained'] = None + recognizer = build_recognizer(config.model) + recognizer.cfg = config + input_shape = (1, 1, 3, 16, 112, 112) + target_layer_name = 'backbone/conv5a/activate' + _do_test_3D_models(recognizer, target_layer_name, input_shape, 101) + + +@pytest.mark.skipif( + not torch.cuda.is_available(), reason='requires CUDA support') +def test_tin(): + config = get_recognizer_cfg( + 'tin/tin_tsm_finetune_r50_1x1x8_50e_kinetics400_rgb.py') + config.model['backbone']['pretrained'] = None + target_layer_name = 'backbone/layer4/1/relu' + + recognizer = build_recognizer(config.model) + recognizer.cfg = config + input_shape = (1, 8, 3, 64, 64) + _do_test_2D_models( + recognizer, target_layer_name, input_shape, device='cuda:0') + + +def test_x3d(): + config = get_recognizer_cfg('x3d/x3d_s_13x6x1_facebook_kinetics400_rgb.py') + config.model['backbone']['pretrained'] = None + recognizer = build_recognizer(config.model) + recognizer.cfg = config + input_shape = (1, 1, 3, 13, 32, 32) + target_layer_name = 'backbone/layer4/1/relu' + _do_test_3D_models(recognizer, target_layer_name, input_shape) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_head.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_head.py new file mode 100644 index 00000000..21ebf9a3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_head.py @@ -0,0 +1,608 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp +import tempfile +from unittest.mock import Mock, patch + +import numpy as np +import pytest +import torch +import torch.nn as nn + +import mmaction +from mmaction.models import (ACRNHead, AudioTSNHead, BBoxHeadAVA, FBOHead, + I3DHead, LFBInferHead, SlowFastHead, STGCNHead, + TimeSformerHead, TPNHead, TRNHead, TSMHead, + TSNHead, X3DHead) +from .base import generate_backbone_demo_inputs + + +def test_i3d_head(): + """Test loss method, layer construction, attributes and forward function in + i3d head.""" + i3d_head = I3DHead(num_classes=4, in_channels=2048) + i3d_head.init_weights() + + assert i3d_head.num_classes == 4 + assert i3d_head.dropout_ratio == 0.5 + assert i3d_head.in_channels == 2048 + assert i3d_head.init_std == 0.01 + + assert isinstance(i3d_head.dropout, nn.Dropout) + assert i3d_head.dropout.p == i3d_head.dropout_ratio + + assert isinstance(i3d_head.fc_cls, nn.Linear) + assert i3d_head.fc_cls.in_features == i3d_head.in_channels + assert i3d_head.fc_cls.out_features == i3d_head.num_classes + + assert isinstance(i3d_head.avg_pool, nn.AdaptiveAvgPool3d) + assert i3d_head.avg_pool.output_size == (1, 1, 1) + + input_shape = (3, 2048, 4, 7, 7) + feat = torch.rand(input_shape) + + # i3d head inference + cls_scores = i3d_head(feat) + assert cls_scores.shape == torch.Size([3, 4]) + + +def test_bbox_head_ava(): + """Test loss method, layer construction, attributes and forward function in + bbox head.""" + with pytest.raises(TypeError): + # topk must be None, int or tuple[int] + BBoxHeadAVA(topk=0.1) + + with pytest.raises(AssertionError): + # topk should be smaller than num_classes + BBoxHeadAVA(num_classes=5, topk=(3, 5)) + + bbox_head = BBoxHeadAVA(in_channels=10, num_classes=4, topk=1) + input = torch.randn([3, 10, 2, 2, 2]) + ret, _ = bbox_head(input) + assert ret.shape == (3, 4) + + cls_score = torch.tensor( + [[0.568, -0.162, 0.273, -0.390, 0.447, 0.102, -0.409], + [2.388, 0.609, 0.369, 1.630, -0.808, -0.212, 0.296], + [0.252, -0.533, -0.644, -0.591, 0.148, 0.963, -0.525], + [0.134, -0.311, -0.764, -0.752, 0.656, -1.517, 0.185]]) + labels = torch.tensor([[0., 0., 1., 0., 0., 1., 0.], + [0., 0., 0., 1., 0., 0., 0.], + [0., 1., 0., 0., 1., 0., 1.], + [0., 0., 1., 1., 0., 0., 1.]]) + label_weights = torch.tensor([1., 1., 1., 1.]) + + # Test topk_to_matrix() + assert torch.equal( + BBoxHeadAVA.topk_to_matrix(cls_score[:, 1:], 1), + torch.tensor([[0, 0, 0, 1, 0, 0], [0, 0, 1, 0, 0, 0], + [0, 0, 0, 0, 1, 0], [0, 0, 0, 1, 0, 0]], + dtype=bool)) + assert torch.equal( + BBoxHeadAVA.topk_to_matrix(cls_score[:, 1:], 2), + torch.tensor([[0, 1, 0, 1, 0, 0], [1, 0, 1, 0, 0, 0], + [0, 0, 0, 1, 1, 0], [0, 0, 0, 1, 0, 1]], + dtype=bool)) + assert torch.equal( + BBoxHeadAVA.topk_to_matrix(cls_score[:, 1:], 3), + torch.tensor([[0, 1, 0, 1, 1, 0], [1, 1, 1, 0, 0, 0], + [0, 0, 0, 1, 1, 1], [1, 0, 0, 1, 0, 1]], + dtype=bool)) + assert torch.equal( + BBoxHeadAVA.topk_to_matrix(cls_score[:, 1:], 6), + torch.ones([4, 6], dtype=bool)) + + # Test Multi-Label Loss + bbox_head = BBoxHeadAVA() # Why is this here? isn't this redundant? + bbox_head.init_weights() + bbox_head = BBoxHeadAVA(temporal_pool_type='max', spatial_pool_type='avg') + bbox_head.init_weights() + losses = bbox_head.loss( + cls_score=cls_score, + bbox_pred=None, + rois=None, + labels=labels, + label_weights=label_weights) + assert torch.isclose(losses['loss_action_cls'], torch.tensor(0.7162495)) + assert torch.isclose(losses['recall@thr=0.5'], torch.tensor(0.6666666)) + assert torch.isclose(losses['prec@thr=0.5'], torch.tensor(0.4791665)) + assert torch.isclose(losses['recall@top3'], torch.tensor(0.75)) + assert torch.isclose(losses['prec@top3'], torch.tensor(0.5)) + assert torch.isclose(losses['recall@top5'], torch.tensor(1.0)) + assert torch.isclose(losses['prec@top5'], torch.tensor(0.45)) + + # Test Single-Label Loss + bbox_head = BBoxHeadAVA(multilabel=False) + losses = bbox_head.loss( + cls_score=cls_score, + bbox_pred=None, + rois=None, + labels=labels, + label_weights=label_weights) + assert torch.isclose(losses['loss_action_cls'], torch.tensor(1.639561)) + assert torch.isclose(losses['recall@thr=0.5'], torch.tensor(0.25)) + assert torch.isclose(losses['prec@thr=0.5'], torch.tensor(0.25)) + assert torch.isclose(losses['recall@top3'], torch.tensor(0.75)) + assert torch.isclose(losses['prec@top3'], torch.tensor(0.5)) + assert torch.isclose(losses['recall@top5'], torch.tensor(1.0)) + assert torch.isclose(losses['prec@top5'], torch.tensor(0.45)) + + # Test ROI + rois = torch.tensor([[0.0, 0.1, 0.2, 0.3, 0.4], [0.0, 0.5, 0.6, 0.7, 0.8]]) + rois[1::2] *= 380 + rois[2::2] *= 220 + crop_quadruple = np.array([0.1, 0.2, 0.8, 0.7]) + cls_score = torch.tensor([0.995, 0.728]) + img_shape = (320, 480) + flip = True + + bbox_head = BBoxHeadAVA(multilabel=True) + bboxes, scores = bbox_head.get_det_bboxes( + rois=rois, + cls_score=cls_score, + img_shape=img_shape, + flip=flip, + crop_quadruple=crop_quadruple) + assert torch.all( + torch.isclose( + bboxes, + torch.tensor([[0.89783341, 0.20043750, 0.89816672, 0.20087500], + [0.45499998, 0.69875002, 0.58166665, 0.86499995]]))) + assert torch.all( + torch.isclose(scores, torch.tensor([0.73007441, 0.67436624]))) + + bbox_head = BBoxHeadAVA(multilabel=False) + bboxes, scores = bbox_head.get_det_bboxes( + rois=rois, + cls_score=cls_score, + img_shape=img_shape, + flip=flip, + crop_quadruple=crop_quadruple) + assert torch.all( + torch.isclose( + bboxes, + torch.tensor([[0.89783341, 0.20043750, 0.89816672, 0.20087500], + [0.45499998, 0.69875002, 0.58166665, 0.86499995]]))) + assert torch.all(torch.isclose(scores, torch.tensor([0.56636, 0.43364]))) + + +def test_x3d_head(): + """Test loss method, layer construction, attributes and forward function in + x3d head.""" + x3d_head = X3DHead(in_channels=432, num_classes=4, fc1_bias=False) + x3d_head.init_weights() + + assert x3d_head.num_classes == 4 + assert x3d_head.dropout_ratio == 0.5 + assert x3d_head.in_channels == 432 + assert x3d_head.init_std == 0.01 + + assert isinstance(x3d_head.dropout, nn.Dropout) + assert x3d_head.dropout.p == x3d_head.dropout_ratio + + assert isinstance(x3d_head.fc1, nn.Linear) + assert x3d_head.fc1.in_features == x3d_head.in_channels + assert x3d_head.fc1.out_features == x3d_head.mid_channels + assert x3d_head.fc1.bias is None + + assert isinstance(x3d_head.fc2, nn.Linear) + assert x3d_head.fc2.in_features == x3d_head.mid_channels + assert x3d_head.fc2.out_features == x3d_head.num_classes + + assert isinstance(x3d_head.pool, nn.AdaptiveAvgPool3d) + assert x3d_head.pool.output_size == (1, 1, 1) + + input_shape = (3, 432, 4, 7, 7) + feat = torch.rand(input_shape) + + # i3d head inference + cls_scores = x3d_head(feat) + assert cls_scores.shape == torch.Size([3, 4]) + + +def test_slowfast_head(): + """Test loss method, layer construction, attributes and forward function in + slowfast head.""" + sf_head = SlowFastHead(num_classes=4, in_channels=2304) + sf_head.init_weights() + + assert sf_head.num_classes == 4 + assert sf_head.dropout_ratio == 0.8 + assert sf_head.in_channels == 2304 + assert sf_head.init_std == 0.01 + + assert isinstance(sf_head.dropout, nn.Dropout) + assert sf_head.dropout.p == sf_head.dropout_ratio + + assert isinstance(sf_head.fc_cls, nn.Linear) + assert sf_head.fc_cls.in_features == sf_head.in_channels + assert sf_head.fc_cls.out_features == sf_head.num_classes + + assert isinstance(sf_head.avg_pool, nn.AdaptiveAvgPool3d) + assert sf_head.avg_pool.output_size == (1, 1, 1) + + input_shape = (3, 2048, 32, 7, 7) + feat_slow = torch.rand(input_shape) + + input_shape = (3, 256, 4, 7, 7) + feat_fast = torch.rand(input_shape) + + sf_head = SlowFastHead(num_classes=4, in_channels=2304) + cls_scores = sf_head((feat_slow, feat_fast)) + assert cls_scores.shape == torch.Size([3, 4]) + + +def test_tsn_head(): + """Test loss method, layer construction, attributes and forward function in + tsn head.""" + tsn_head = TSNHead(num_classes=4, in_channels=2048) + tsn_head.init_weights() + + assert tsn_head.num_classes == 4 + assert tsn_head.dropout_ratio == 0.4 + assert tsn_head.in_channels == 2048 + assert tsn_head.init_std == 0.01 + assert tsn_head.consensus.dim == 1 + assert tsn_head.spatial_type == 'avg' + + assert isinstance(tsn_head.dropout, nn.Dropout) + assert tsn_head.dropout.p == tsn_head.dropout_ratio + + assert isinstance(tsn_head.fc_cls, nn.Linear) + assert tsn_head.fc_cls.in_features == tsn_head.in_channels + assert tsn_head.fc_cls.out_features == tsn_head.num_classes + + assert isinstance(tsn_head.avg_pool, nn.AdaptiveAvgPool2d) + assert tsn_head.avg_pool.output_size == (1, 1) + + input_shape = (8, 2048, 7, 7) + feat = torch.rand(input_shape) + + # tsn head inference + num_segs = input_shape[0] + cls_scores = tsn_head(feat, num_segs) + assert cls_scores.shape == torch.Size([1, 4]) + + # Test multi-class recognition + multi_tsn_head = TSNHead( + num_classes=4, + in_channels=2048, + loss_cls=dict(type='BCELossWithLogits', loss_weight=160.0), + multi_class=True, + label_smooth_eps=0.01) + multi_tsn_head.init_weights() + assert multi_tsn_head.num_classes == 4 + assert multi_tsn_head.dropout_ratio == 0.4 + assert multi_tsn_head.in_channels == 2048 + assert multi_tsn_head.init_std == 0.01 + assert multi_tsn_head.consensus.dim == 1 + + assert isinstance(multi_tsn_head.dropout, nn.Dropout) + assert multi_tsn_head.dropout.p == multi_tsn_head.dropout_ratio + + assert isinstance(multi_tsn_head.fc_cls, nn.Linear) + assert multi_tsn_head.fc_cls.in_features == multi_tsn_head.in_channels + assert multi_tsn_head.fc_cls.out_features == multi_tsn_head.num_classes + + assert isinstance(multi_tsn_head.avg_pool, nn.AdaptiveAvgPool2d) + assert multi_tsn_head.avg_pool.output_size == (1, 1) + + input_shape = (8, 2048, 7, 7) + feat = torch.rand(input_shape) + + # multi-class tsn head inference + num_segs = input_shape[0] + cls_scores = tsn_head(feat, num_segs) + assert cls_scores.shape == torch.Size([1, 4]) + + +def test_tsn_head_audio(): + """Test loss method, layer construction, attributes and forward function in + tsn head.""" + tsn_head_audio = AudioTSNHead(num_classes=4, in_channels=5) + tsn_head_audio.init_weights() + + assert tsn_head_audio.num_classes == 4 + assert tsn_head_audio.dropout_ratio == 0.4 + assert tsn_head_audio.in_channels == 5 + assert tsn_head_audio.init_std == 0.01 + assert tsn_head_audio.spatial_type == 'avg' + + assert isinstance(tsn_head_audio.dropout, nn.Dropout) + assert tsn_head_audio.dropout.p == tsn_head_audio.dropout_ratio + + assert isinstance(tsn_head_audio.fc_cls, nn.Linear) + assert tsn_head_audio.fc_cls.in_features == tsn_head_audio.in_channels + assert tsn_head_audio.fc_cls.out_features == tsn_head_audio.num_classes + + assert isinstance(tsn_head_audio.avg_pool, nn.AdaptiveAvgPool2d) + assert tsn_head_audio.avg_pool.output_size == (1, 1) + + input_shape = (8, 5, 7, 7) + feat = torch.rand(input_shape) + + # tsn head inference + cls_scores = tsn_head_audio(feat) + assert cls_scores.shape == torch.Size([8, 4]) + + +def test_tsm_head(): + """Test loss method, layer construction, attributes and forward function in + tsm head.""" + tsm_head = TSMHead(num_classes=4, in_channels=2048) + tsm_head.init_weights() + + assert tsm_head.num_classes == 4 + assert tsm_head.dropout_ratio == 0.8 + assert tsm_head.in_channels == 2048 + assert tsm_head.init_std == 0.001 + assert tsm_head.consensus.dim == 1 + assert tsm_head.spatial_type == 'avg' + + assert isinstance(tsm_head.dropout, nn.Dropout) + assert tsm_head.dropout.p == tsm_head.dropout_ratio + + assert isinstance(tsm_head.fc_cls, nn.Linear) + assert tsm_head.fc_cls.in_features == tsm_head.in_channels + assert tsm_head.fc_cls.out_features == tsm_head.num_classes + + assert isinstance(tsm_head.avg_pool, nn.AdaptiveAvgPool2d) + assert tsm_head.avg_pool.output_size == 1 + + input_shape = (8, 2048, 7, 7) + feat = torch.rand(input_shape) + + # tsm head inference with no init + num_segs = input_shape[0] + cls_scores = tsm_head(feat, num_segs) + assert cls_scores.shape == torch.Size([1, 4]) + + # tsm head inference with init + tsm_head = TSMHead(num_classes=4, in_channels=2048, temporal_pool=True) + tsm_head.init_weights() + cls_scores = tsm_head(feat, num_segs) + assert cls_scores.shape == torch.Size([2, 4]) + + +def test_trn_head(): + """Test loss method, layer construction, attributes and forward function in + trn head.""" + from mmaction.models.heads.trn_head import (RelationModule, + RelationModuleMultiScale) + trn_head = TRNHead(num_classes=4, in_channels=2048, relation_type='TRN') + trn_head.init_weights() + + assert trn_head.num_classes == 4 + assert trn_head.dropout_ratio == 0.8 + assert trn_head.in_channels == 2048 + assert trn_head.init_std == 0.001 + assert trn_head.spatial_type == 'avg' + + relation_module = trn_head.consensus + assert isinstance(relation_module, RelationModule) + assert relation_module.hidden_dim == 256 + assert isinstance(relation_module.classifier[3], nn.Linear) + assert relation_module.classifier[3].out_features == trn_head.num_classes + + assert trn_head.dropout.p == trn_head.dropout_ratio + assert isinstance(trn_head.dropout, nn.Dropout) + assert isinstance(trn_head.fc_cls, nn.Linear) + assert trn_head.fc_cls.in_features == trn_head.in_channels + assert trn_head.fc_cls.out_features == trn_head.hidden_dim + + assert isinstance(trn_head.avg_pool, nn.AdaptiveAvgPool2d) + assert trn_head.avg_pool.output_size == 1 + + input_shape = (8, 2048, 7, 7) + feat = torch.rand(input_shape) + + # tsm head inference with no init + num_segs = input_shape[0] + cls_scores = trn_head(feat, num_segs) + assert cls_scores.shape == torch.Size([1, 4]) + + # tsm head inference with init + trn_head = TRNHead( + num_classes=4, + in_channels=2048, + num_segments=8, + relation_type='TRNMultiScale') + trn_head.init_weights() + assert isinstance(trn_head.consensus, RelationModuleMultiScale) + assert trn_head.consensus.scales == range(8, 1, -1) + cls_scores = trn_head(feat, num_segs) + assert cls_scores.shape == torch.Size([1, 4]) + + with pytest.raises(ValueError): + trn_head = TRNHead( + num_classes=4, + in_channels=2048, + num_segments=8, + relation_type='RelationModlue') + + +def test_timesformer_head(): + """Test loss method, layer construction, attributes and forward function in + timesformer head.""" + timesformer_head = TimeSformerHead(num_classes=4, in_channels=64) + timesformer_head.init_weights() + + assert timesformer_head.num_classes == 4 + assert timesformer_head.in_channels == 64 + assert timesformer_head.init_std == 0.02 + + input_shape = (2, 64) + feat = torch.rand(input_shape) + + cls_scores = timesformer_head(feat) + assert cls_scores.shape == torch.Size([2, 4]) + + +@patch.object(mmaction.models.LFBInferHead, '__del__', Mock) +def test_lfb_infer_head(): + """Test layer construction, attributes and forward function in lfb infer + head.""" + with tempfile.TemporaryDirectory() as tmpdir: + lfb_infer_head = LFBInferHead( + lfb_prefix_path=tmpdir, use_half_precision=True) + lfb_infer_head.init_weights() + + st_feat_shape = (3, 16, 1, 8, 8) + st_feat = generate_backbone_demo_inputs(st_feat_shape) + rois = torch.cat( + (torch.tensor([0, 1, 0]).float().view(3, 1), torch.randn(3, 4)), dim=1) + img_metas = [dict(img_key='video_1,777'), dict(img_key='video_2, 888')] + result = lfb_infer_head(st_feat, rois, img_metas) + assert st_feat.equal(result) + assert len(lfb_infer_head.all_features) == 3 + assert lfb_infer_head.all_features[0].shape == (16, 1, 1, 1) + + +def test_fbo_head(): + """Test layer construction, attributes and forward function in fbo head.""" + lfb_prefix_path = osp.normpath( + osp.join(osp.dirname(__file__), '../data/lfb')) + + st_feat_shape = (1, 16, 1, 8, 8) + st_feat = generate_backbone_demo_inputs(st_feat_shape) + rois = torch.randn(1, 5) + rois[0][0] = 0 + img_metas = [dict(img_key='video_1, 930')] + + # non local fbo + fbo_head = FBOHead( + lfb_cfg=dict( + lfb_prefix_path=lfb_prefix_path, + max_num_sampled_feat=5, + window_size=60, + lfb_channels=16, + dataset_modes=('unittest'), + device='cpu'), + fbo_cfg=dict( + type='non_local', + st_feat_channels=16, + lt_feat_channels=16, + latent_channels=8, + num_st_feat=1, + num_lt_feat=5 * 60, + )) + fbo_head.init_weights() + out = fbo_head(st_feat, rois, img_metas) + assert out.shape == (1, 24, 1, 1, 1) + + # avg fbo + fbo_head = FBOHead( + lfb_cfg=dict( + lfb_prefix_path=lfb_prefix_path, + max_num_sampled_feat=5, + window_size=60, + lfb_channels=16, + dataset_modes=('unittest'), + device='cpu'), + fbo_cfg=dict(type='avg')) + fbo_head.init_weights() + out = fbo_head(st_feat, rois, img_metas) + assert out.shape == (1, 32, 1, 1, 1) + + # max fbo + fbo_head = FBOHead( + lfb_cfg=dict( + lfb_prefix_path=lfb_prefix_path, + max_num_sampled_feat=5, + window_size=60, + lfb_channels=16, + dataset_modes=('unittest'), + device='cpu'), + fbo_cfg=dict(type='max')) + fbo_head.init_weights() + out = fbo_head(st_feat, rois, img_metas) + assert out.shape == (1, 32, 1, 1, 1) + + +def test_tpn_head(): + """Test loss method, layer construction, attributes and forward function in + tpn head.""" + tpn_head = TPNHead(num_classes=4, in_channels=2048) + tpn_head.init_weights() + + assert hasattr(tpn_head, 'avg_pool2d') + assert hasattr(tpn_head, 'avg_pool3d') + assert isinstance(tpn_head.avg_pool3d, nn.AdaptiveAvgPool3d) + assert tpn_head.avg_pool3d.output_size == (1, 1, 1) + assert tpn_head.avg_pool2d is None + + input_shape = (4, 2048, 7, 7) + feat = torch.rand(input_shape) + + # tpn head inference with num_segs + num_segs = 2 + cls_scores = tpn_head(feat, num_segs) + assert isinstance(tpn_head.avg_pool2d, nn.AvgPool3d) + assert tpn_head.avg_pool2d.kernel_size == (1, 7, 7) + assert cls_scores.shape == torch.Size([2, 4]) + + # tpn head inference with no num_segs + input_shape = (2, 2048, 3, 7, 7) + feat = torch.rand(input_shape) + cls_scores = tpn_head(feat) + assert isinstance(tpn_head.avg_pool2d, nn.AvgPool3d) + assert tpn_head.avg_pool2d.kernel_size == (1, 7, 7) + assert cls_scores.shape == torch.Size([2, 4]) + + +def test_acrn_head(): + roi_feat = torch.randn(4, 16, 1, 7, 7) + feat = torch.randn(2, 16, 1, 16, 16) + rois = torch.Tensor([[0, 2.2268, 0.5926, 10.6142, 8.0029], + [0, 2.2577, 0.1519, 11.6451, 8.9282], + [1, 1.9874, 1.0000, 11.1585, 8.2840], + [1, 3.3338, 3.7166, 8.4174, 11.2785]]) + + acrn_head = ACRNHead(32, 16) + acrn_head.init_weights() + new_feat = acrn_head(roi_feat, feat, rois) + assert new_feat.shape == (4, 16, 1, 16, 16) + + acrn_head = ACRNHead(32, 16, stride=2) + new_feat = acrn_head(roi_feat, feat, rois) + assert new_feat.shape == (4, 16, 1, 8, 8) + + acrn_head = ACRNHead(32, 16, stride=2, num_convs=2) + new_feat = acrn_head(roi_feat, feat, rois) + assert new_feat.shape == (4, 16, 1, 8, 8) + + +def test_stgcn_head(): + """Test loss method, layer construction, attributes and forward function in + stgcn head.""" + with pytest.raises(NotImplementedError): + # spatial_type not in ['avg', 'max'] + stgcn_head = STGCNHead( + num_classes=60, in_channels=256, spatial_type='min') + stgcn_head.init_weights() + + # spatial_type='avg' + stgcn_head = STGCNHead(num_classes=60, in_channels=256, spatial_type='avg') + stgcn_head.init_weights() + + assert stgcn_head.num_classes == 60 + assert stgcn_head.in_channels == 256 + + input_shape = (2, 256, 75, 17) + feat = torch.rand(input_shape) + + cls_scores = stgcn_head(feat) + assert cls_scores.shape == torch.Size([1, 60]) + + # spatial_type='max' + stgcn_head = STGCNHead(num_classes=60, in_channels=256, spatial_type='max') + stgcn_head.init_weights() + + assert stgcn_head.num_classes == 60 + assert stgcn_head.in_channels == 256 + + input_shape = (2, 256, 75, 17) + feat = torch.rand(input_shape) + + cls_scores = stgcn_head(feat) + assert cls_scores.shape == torch.Size([1, 60]) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/__init__.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/__init__.py new file mode 100644 index 00000000..ef101fec --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/__init__.py @@ -0,0 +1 @@ +# Copyright (c) OpenMMLab. All rights reserved. diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_bmn.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_bmn.py new file mode 100644 index 00000000..dde3029c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_bmn.py @@ -0,0 +1,68 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import platform + +import numpy as np +import pytest +import torch + +from mmaction.models import build_localizer +from ..base import get_localizer_cfg + + +@pytest.mark.skipif(platform.system() == 'Windows', reason='Windows mem limit') +def test_bmn_train(): + model_cfg = get_localizer_cfg( + 'bmn/bmn_400x100_2x8_9e_activitynet_feature.py') + + if torch.cuda.is_available(): + localizer_bmn = build_localizer(model_cfg.model).cuda() + raw_feature = torch.rand(3, 400, 100).cuda() + gt_bbox = np.array([[[0.1, 0.3], [0.375, 0.625]]] * 3) + losses = localizer_bmn(raw_feature, gt_bbox) + assert isinstance(losses, dict) + + else: + localizer_bmn = build_localizer(model_cfg.model) + raw_feature = torch.rand(3, 400, 100) + gt_bbox = torch.Tensor([[[0.1, 0.3], [0.375, 0.625]]] * 3) + losses = localizer_bmn(raw_feature, gt_bbox) + assert isinstance(losses, dict) + + +@pytest.mark.skipif(platform.system() == 'Windows', reason='Windows mem limit') +def test_bmn_test(): + model_cfg = get_localizer_cfg( + 'bmn/bmn_400x100_2x8_9e_activitynet_feature.py') + + if torch.cuda.is_available(): + localizer_bmn = build_localizer(model_cfg.model).cuda() + video_meta = [ + dict( + video_name='v_test', + duration_second=100, + duration_frame=960, + feature_frame=960) + ] + with torch.no_grad(): + one_raw_feature = torch.rand(1, 400, 100).cuda() + localizer_bmn( + one_raw_feature, + gt_bbox=None, + video_meta=video_meta, + return_loss=False) + else: + localizer_bmn = build_localizer(model_cfg.model) + video_meta = [ + dict( + video_name='v_test', + duration_second=100, + duration_frame=960, + feature_frame=960) + ] + with torch.no_grad(): + one_raw_feature = torch.rand(1, 400, 100) + localizer_bmn( + one_raw_feature, + gt_bbox=None, + video_meta=video_meta, + return_loss=False) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_localizers.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_localizers.py new file mode 100644 index 00000000..98df7551 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_localizers.py @@ -0,0 +1,34 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np + +from mmaction.models.localizers.utils import post_processing + + +def test_post_processing(): + # test with multiple results + result = np.array([[0., 1., 1., 1., 0.5, 0.5], [0., 0.4, 1., 1., 0.4, 0.4], + [0., 0.95, 1., 1., 0.6, 0.6]]) + video_info = dict( + video_name='v_test', + duration_second=100, + duration_frame=960, + feature_frame=960) + proposal_list = post_processing(result, video_info, 0.75, 0.65, 0.9, 2, 16) + assert isinstance(proposal_list[0], dict) + assert proposal_list[0]['score'] == 0.6 + assert proposal_list[0]['segment'] == [0., 95.0] + assert isinstance(proposal_list[1], dict) + assert proposal_list[1]['score'] == 0.4 + assert proposal_list[1]['segment'] == [0., 40.0] + + # test with only result + result = np.array([[0., 1., 1., 1., 0.5, 0.5]]) + video_info = dict( + video_name='v_test', + duration_second=100, + duration_frame=960, + feature_frame=960) + proposal_list = post_processing(result, video_info, 0.75, 0.65, 0.9, 1, 16) + assert isinstance(proposal_list[0], dict) + assert proposal_list[0]['score'] == 0.5 + assert proposal_list[0]['segment'] == [0., 100.0] diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_pem.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_pem.py new file mode 100644 index 00000000..c0e5ff77 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_pem.py @@ -0,0 +1,49 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import platform + +import pytest +import torch + +from mmaction.models import build_localizer +from ..base import get_localizer_cfg + + +@pytest.mark.skipif(platform.system() == 'Windows', reason='Windows mem limit') +def test_pem(): + model_cfg = get_localizer_cfg( + 'bsn/bsn_pem_400x100_1x16_20e_activitynet_feature.py') + + localizer_pem = build_localizer(model_cfg.model) + bsp_feature = torch.rand(8, 100, 32) + reference_temporal_iou = torch.rand(8, 100) + losses = localizer_pem(bsp_feature, reference_temporal_iou) + assert isinstance(losses, dict) + + # Test forward test + tmin = torch.rand(100) + tmax = torch.rand(100) + tmin_score = torch.rand(100) + tmax_score = torch.rand(100) + + video_meta = [ + dict( + video_name='v_test', + duration_second=100, + duration_frame=1000, + annotations=[{ + 'segment': [0.3, 0.6], + 'label': 'Rock climbing' + }], + feature_frame=900) + ] + with torch.no_grad(): + for one_bsp_feature in bsp_feature: + one_bsp_feature = one_bsp_feature.reshape(1, 100, 32) + localizer_pem( + one_bsp_feature, + tmin=tmin, + tmax=tmax, + tmin_score=tmin_score, + tmax_score=tmax_score, + video_meta=video_meta, + return_loss=False) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_ssn.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_ssn.py new file mode 100644 index 00000000..f1de0746 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_ssn.py @@ -0,0 +1,206 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy +import platform + +import mmcv +import pytest +import torch + +from mmaction.models import build_localizer + + +@pytest.mark.skipif(platform.system() == 'Windows', reason='Windows mem limit') +def test_ssn_train(): + train_cfg = mmcv.ConfigDict( + dict( + ssn=dict( + assigner=dict( + positive_iou_threshold=0.7, + background_iou_threshold=0.01, + incomplete_iou_threshold=0.3, + background_coverage_threshold=0.02, + incomplete_overlap_threshold=0.01), + sampler=dict( + num_per_video=8, + positive_ratio=1, + background_ratio=1, + incomplete_ratio=6, + add_gt_as_proposals=True), + loss_weight=dict(comp_loss_weight=0.1, reg_loss_weight=0.1), + debug=False))) + base_model_cfg = dict( + type='SSN', + backbone=dict( + type='ResNet', pretrained=None, depth=18, norm_eval=True), + spatial_type='avg', + dropout_ratio=0.8, + loss_cls=dict(type='SSNLoss'), + cls_head=dict( + type='SSNHead', + dropout_ratio=0., + in_channels=512, + num_classes=20, + consensus=dict( + type='STPPTrain', + stpp_stage=(1, 1, 1), + num_segments_list=(2, 5, 2)), + use_regression=True), + train_cfg=train_cfg) + dropout_cfg = copy.deepcopy(base_model_cfg) + dropout_cfg['dropout_ratio'] = 0 + dropout_cfg['cls_head']['dropout_ratio'] = 0.5 + non_regression_cfg = copy.deepcopy(base_model_cfg) + non_regression_cfg['cls_head']['use_regression'] = False + + imgs = torch.rand(1, 8, 9, 3, 224, 224) + proposal_scale_factor = torch.Tensor([[[1.0345, 1.0345], [1.0028, 0.0028], + [1.0013, 1.0013], [1.0008, 1.0008], + [0.3357, 1.0006], [1.0006, 1.0006], + [0.0818, 1.0005], [1.0030, + 1.0030]]]) + proposal_type = torch.Tensor([[0, 1, 1, 1, 1, 1, 1, 2]]) + proposal_labels = torch.LongTensor([[8, 8, 8, 8, 8, 8, 8, 0]]) + reg_targets = torch.Tensor([[[0.2929, 0.2694], [0.0000, 0.0000], + [0.0000, 0.0000], [0.0000, 0.0000], + [0.0000, 0.0000], [0.0000, 0.0000], + [0.0000, 0.0000], [0.0000, 0.0000]]]) + + localizer_ssn = build_localizer(base_model_cfg) + localizer_ssn_dropout = build_localizer(dropout_cfg) + localizer_ssn_non_regression = build_localizer(non_regression_cfg) + + if torch.cuda.is_available(): + localizer_ssn = localizer_ssn.cuda() + localizer_ssn_dropout = localizer_ssn_dropout.cuda() + localizer_ssn_non_regression = localizer_ssn_non_regression.cuda() + imgs = imgs.cuda() + proposal_scale_factor = proposal_scale_factor.cuda() + proposal_type = proposal_type.cuda() + proposal_labels = proposal_labels.cuda() + reg_targets = reg_targets.cuda() + + # Train normal case + losses = localizer_ssn( + imgs, + proposal_scale_factor=proposal_scale_factor, + proposal_type=proposal_type, + proposal_labels=proposal_labels, + reg_targets=reg_targets) + assert isinstance(losses, dict) + + # Train SSN without dropout in model, with dropout in head + losses = localizer_ssn_dropout( + imgs, + proposal_scale_factor=proposal_scale_factor, + proposal_type=proposal_type, + proposal_labels=proposal_labels, + reg_targets=reg_targets) + assert isinstance(losses, dict) + + # Train SSN model without regression + losses = localizer_ssn_non_regression( + imgs, + proposal_scale_factor=proposal_scale_factor, + proposal_type=proposal_type, + proposal_labels=proposal_labels, + reg_targets=reg_targets) + assert isinstance(losses, dict) + + +@pytest.mark.skipif(platform.system() == 'Windows', reason='Windows mem limit') +def test_ssn_test(): + test_cfg = mmcv.ConfigDict( + dict( + ssn=dict( + sampler=dict(test_interval=6, batch_size=16), + evaluater=dict( + top_k=2000, + nms=0.2, + softmax_before_filter=True, + cls_score_dict=None, + cls_top_k=2)))) + base_model_cfg = dict( + type='SSN', + backbone=dict( + type='ResNet', pretrained=None, depth=18, norm_eval=True), + spatial_type='avg', + dropout_ratio=0.8, + cls_head=dict( + type='SSNHead', + dropout_ratio=0., + in_channels=512, + num_classes=20, + consensus=dict(type='STPPTest', stpp_stage=(1, 1, 1)), + use_regression=True), + test_cfg=test_cfg) + maxpool_model_cfg = copy.deepcopy(base_model_cfg) + maxpool_model_cfg['spatial_type'] = 'max' + non_regression_cfg = copy.deepcopy(base_model_cfg) + non_regression_cfg['cls_head']['use_regression'] = False + non_regression_cfg['cls_head']['consensus']['use_regression'] = False + tuple_stage_cfg = copy.deepcopy(base_model_cfg) + tuple_stage_cfg['cls_head']['consensus']['stpp_stage'] = (1, (1, 2), 1) + str_stage_cfg = copy.deepcopy(base_model_cfg) + str_stage_cfg['cls_head']['consensus']['stpp_stage'] = ('error', ) + + imgs = torch.rand(1, 8, 3, 224, 224) + relative_proposal_list = torch.Tensor([[[0.2500, 0.6250], [0.3750, + 0.7500]]]) + scale_factor_list = torch.Tensor([[[1.0000, 1.0000], [1.0000, 0.2661]]]) + proposal_tick_list = torch.LongTensor([[[1, 2, 5, 7], [20, 30, 60, 80]]]) + reg_norm_consts = torch.Tensor([[[-0.0603, 0.0325], [0.0752, 0.1596]]]) + + localizer_ssn = build_localizer(base_model_cfg) + localizer_ssn_maxpool = build_localizer(maxpool_model_cfg) + localizer_ssn_non_regression = build_localizer(non_regression_cfg) + localizer_ssn_tuple_stage_cfg = build_localizer(tuple_stage_cfg) + with pytest.raises(ValueError): + build_localizer(str_stage_cfg) + + if torch.cuda.is_available(): + localizer_ssn = localizer_ssn.cuda() + localizer_ssn_maxpool = localizer_ssn_maxpool.cuda() + localizer_ssn_non_regression = localizer_ssn_non_regression.cuda() + localizer_ssn_tuple_stage_cfg = localizer_ssn_tuple_stage_cfg.cuda() + imgs = imgs.cuda() + relative_proposal_list = relative_proposal_list.cuda() + scale_factor_list = scale_factor_list.cuda() + proposal_tick_list = proposal_tick_list.cuda() + reg_norm_consts = reg_norm_consts.cuda() + + with torch.no_grad(): + # Test normal case + localizer_ssn( + imgs, + relative_proposal_list=relative_proposal_list, + scale_factor_list=scale_factor_list, + proposal_tick_list=proposal_tick_list, + reg_norm_consts=reg_norm_consts, + return_loss=False) + + # Test SSN model with max spatial pooling + localizer_ssn_maxpool( + imgs, + relative_proposal_list=relative_proposal_list, + scale_factor_list=scale_factor_list, + proposal_tick_list=proposal_tick_list, + reg_norm_consts=reg_norm_consts, + return_loss=False) + + # Test SSN model without regression + localizer_ssn_non_regression( + imgs, + relative_proposal_list=relative_proposal_list, + scale_factor_list=scale_factor_list, + proposal_tick_list=proposal_tick_list, + reg_norm_consts=reg_norm_consts, + return_loss=False) + + # Test SSN model with tuple stage cfg. + localizer_ssn_tuple_stage_cfg( + imgs, + relative_proposal_list=relative_proposal_list, + scale_factor_list=scale_factor_list, + proposal_tick_list=proposal_tick_list, + reg_norm_consts=reg_norm_consts, + return_loss=False) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_tem.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_tem.py new file mode 100644 index 00000000..ce19d385 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_localizers/test_tem.py @@ -0,0 +1,28 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import platform + +import pytest +import torch + +from mmaction.models import build_localizer +from ..base import get_localizer_cfg + + +@pytest.mark.skipif(platform.system() == 'Windows', reason='Windows mem limit') +def test_tem(): + model_cfg = get_localizer_cfg( + 'bsn/bsn_tem_400x100_1x16_20e_activitynet_feature.py') + + localizer_tem = build_localizer(model_cfg.model) + raw_feature = torch.rand(8, 400, 100) + gt_bbox = torch.Tensor([[[1.0, 3.0], [3.0, 5.0]]] * 8) + losses = localizer_tem(raw_feature, gt_bbox) + assert isinstance(losses, dict) + + # Test forward test + video_meta = [{'video_name': 'v_test'}] + with torch.no_grad(): + for one_raw_feature in raw_feature: + one_raw_feature = one_raw_feature.reshape(1, 400, 100) + localizer_tem( + one_raw_feature, video_meta=video_meta, return_loss=False) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_neck.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_neck.py new file mode 100644 index 00000000..6fc97fd1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_neck.py @@ -0,0 +1,87 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy + +import pytest +import torch + +from mmaction.models import TPN +from .base import generate_backbone_demo_inputs + + +def test_tpn(): + """Test TPN backbone.""" + + tpn_cfg = dict( + in_channels=(1024, 2048), + out_channels=1024, + spatial_modulation_cfg=dict( + in_channels=(1024, 2048), out_channels=2048), + temporal_modulation_cfg=dict(downsample_scales=(8, 8)), + upsample_cfg=dict(scale_factor=(1, 1, 1)), + downsample_cfg=dict(downsample_scale=(1, 1, 1)), + level_fusion_cfg=dict( + in_channels=(1024, 1024), + mid_channels=(1024, 1024), + out_channels=2048, + downsample_scales=((1, 1, 1), (1, 1, 1))), + aux_head_cfg=dict(out_channels=400, loss_weight=0.5)) + + with pytest.raises(AssertionError): + tpn_cfg_ = copy.deepcopy(tpn_cfg) + tpn_cfg_['in_channels'] = list(tpn_cfg_['in_channels']) + TPN(**tpn_cfg_) + + with pytest.raises(AssertionError): + tpn_cfg_ = copy.deepcopy(tpn_cfg) + tpn_cfg_['out_channels'] = float(tpn_cfg_['out_channels']) + TPN(**tpn_cfg_) + + with pytest.raises(AssertionError): + tpn_cfg_ = copy.deepcopy(tpn_cfg) + tpn_cfg_['downsample_cfg']['downsample_position'] = 'unsupport' + TPN(**tpn_cfg_) + + for k in tpn_cfg: + if not k.endswith('_cfg'): + continue + tpn_cfg_ = copy.deepcopy(tpn_cfg) + tpn_cfg_[k] = list() + with pytest.raises(AssertionError): + TPN(**tpn_cfg_) + + with pytest.raises(ValueError): + tpn_cfg_ = copy.deepcopy(tpn_cfg) + tpn_cfg_['flow_type'] = 'unsupport' + TPN(**tpn_cfg_) + + target_shape = (32, 1) + target = generate_backbone_demo_inputs(target_shape).long().squeeze() + x0_shape = (32, 1024, 1, 4, 4) + x1_shape = (32, 2048, 1, 2, 2) + x0 = generate_backbone_demo_inputs(x0_shape) + x1 = generate_backbone_demo_inputs(x1_shape) + x = [x0, x1] + + # ResNetTPN with 'cascade' flow_type + tpn_cfg_ = copy.deepcopy(tpn_cfg) + tpn_cascade = TPN(**tpn_cfg_) + feat, loss_aux = tpn_cascade(x, target) + assert feat.shape == torch.Size([32, 2048, 1, 2, 2]) + assert len(loss_aux) == 1 + + # ResNetTPN with 'parallel' flow_type + tpn_cfg_ = copy.deepcopy(tpn_cfg) + tpn_parallel = TPN(flow_type='parallel', **tpn_cfg_) + feat, loss_aux = tpn_parallel(x, target) + assert feat.shape == torch.Size([32, 2048, 1, 2, 2]) + assert len(loss_aux) == 1 + + # ResNetTPN with 'cascade' flow_type and target is None + feat, loss_aux = tpn_cascade(x, None) + assert feat.shape == torch.Size([32, 2048, 1, 2, 2]) + assert len(loss_aux) == 0 + + # ResNetTPN with 'parallel' flow_type and target is None + feat, loss_aux = tpn_parallel(x, None) + assert feat.shape == torch.Size([32, 2048, 1, 2, 2]) + assert len(loss_aux) == 0 diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/__init__.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/__init__.py new file mode 100644 index 00000000..ef101fec --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/__init__.py @@ -0,0 +1 @@ +# Copyright (c) OpenMMLab. All rights reserved. diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/test_audio_recognizer.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/test_audio_recognizer.py new file mode 100644 index 00000000..b2d0b2ef --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/test_audio_recognizer.py @@ -0,0 +1,29 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch + +from mmaction.models import build_recognizer +from ..base import generate_recognizer_demo_inputs, get_audio_recognizer_cfg + + +def test_audio_recognizer(): + config = get_audio_recognizer_cfg( + 'resnet/tsn_r18_64x1x1_100e_kinetics400_audio_feature.py') + config.model['backbone']['pretrained'] = None + + recognizer = build_recognizer(config.model) + + input_shape = (1, 3, 1, 128, 80) + demo_inputs = generate_recognizer_demo_inputs( + input_shape, model_type='audio') + + audios = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + losses = recognizer(audios, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + audio_list = [audio[None, :] for audio in audios] + for one_spectro in audio_list: + recognizer(one_spectro, None, return_loss=False) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/test_recognizer2d.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/test_recognizer2d.py new file mode 100644 index 00000000..21c3a725 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/test_recognizer2d.py @@ -0,0 +1,282 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch + +from mmaction.models import build_recognizer +from ..base import generate_recognizer_demo_inputs, get_recognizer_cfg + + +def test_tsn(): + config = get_recognizer_cfg('tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py') + config.model['backbone']['pretrained'] = None + + recognizer = build_recognizer(config.model) + + input_shape = (1, 3, 3, 32, 32) + demo_inputs = generate_recognizer_demo_inputs(input_shape) + + imgs = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # Test forward gradcam + recognizer(imgs, gradcam=True) + for one_img in img_list: + recognizer(one_img, gradcam=True) + + # test forward dummy + recognizer.forward_dummy(imgs, softmax=False) + res = recognizer.forward_dummy(imgs, softmax=True)[0] + assert torch.min(res) >= 0 + assert torch.max(res) <= 1 + + mmcls_backbone = dict( + type='mmcls.ResNeXt', + depth=101, + num_stages=4, + out_indices=(3, ), + groups=32, + width_per_group=4, + style='pytorch') + config.model['backbone'] = mmcls_backbone + + recognizer = build_recognizer(config.model) + + input_shape = (1, 3, 3, 32, 32) + demo_inputs = generate_recognizer_demo_inputs(input_shape) + + imgs = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # test mixup forward + config = get_recognizer_cfg( + 'tsn/tsn_r50_video_mixup_1x1x8_100e_kinetics400_rgb.py') + config.model['backbone']['pretrained'] = None + recognizer = build_recognizer(config.model) + input_shape = (2, 8, 3, 32, 32) + demo_inputs = generate_recognizer_demo_inputs(input_shape) + imgs = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # test torchvision backbones + tv_backbone = dict(type='torchvision.densenet161', pretrained=True) + config.model['backbone'] = tv_backbone + config.model['cls_head']['in_channels'] = 2208 + + recognizer = build_recognizer(config.model) + + input_shape = (1, 3, 3, 32, 32) + demo_inputs = generate_recognizer_demo_inputs(input_shape) + + imgs = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # test timm backbones + timm_backbone = dict(type='timm.efficientnet_b0', pretrained=False) + config.model['backbone'] = timm_backbone + config.model['cls_head']['in_channels'] = 1280 + + recognizer = build_recognizer(config.model) + + input_shape = (1, 3, 3, 32, 32) + demo_inputs = generate_recognizer_demo_inputs(input_shape) + + imgs = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + +def test_tsm(): + config = get_recognizer_cfg('tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py') + config.model['backbone']['pretrained'] = None + + recognizer = build_recognizer(config.model) + + input_shape = (1, 8, 3, 32, 32) + demo_inputs = generate_recognizer_demo_inputs(input_shape) + + imgs = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # test twice sample + 3 crops + input_shape = (2, 48, 3, 32, 32) + demo_inputs = generate_recognizer_demo_inputs(input_shape) + imgs = demo_inputs['imgs'] + + config.model.test_cfg = dict(average_clips='prob') + recognizer = build_recognizer(config.model) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # Test forward gradcam + recognizer(imgs, gradcam=True) + for one_img in img_list: + recognizer(one_img, gradcam=True) + + +def test_trn(): + config = get_recognizer_cfg('trn/trn_r50_1x1x8_50e_sthv1_rgb.py') + config.model['backbone']['pretrained'] = None + + recognizer = build_recognizer(config.model) + + input_shape = (1, 8, 3, 32, 32) + demo_inputs = generate_recognizer_demo_inputs(input_shape) + + imgs = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # test twice sample + 3 crops + input_shape = (2, 48, 3, 32, 32) + demo_inputs = generate_recognizer_demo_inputs(input_shape) + imgs = demo_inputs['imgs'] + + config.model.test_cfg = dict(average_clips='prob') + recognizer = build_recognizer(config.model) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # Test forward gradcam + recognizer(imgs, gradcam=True) + for one_img in img_list: + recognizer(one_img, gradcam=True) + + +def test_tpn(): + config = get_recognizer_cfg('tpn/tpn_tsm_r50_1x1x8_150e_sthv1_rgb.py') + config.model['backbone']['pretrained'] = None + + recognizer = build_recognizer(config.model) + + input_shape = (1, 8, 3, 224, 224) + demo_inputs = generate_recognizer_demo_inputs(input_shape) + + imgs = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + assert 'loss_aux' in losses and 'loss_cls' in losses + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # Test forward gradcam + recognizer(imgs, gradcam=True) + for one_img in img_list: + recognizer(one_img, gradcam=True) + + # Test forward dummy + with torch.no_grad(): + _recognizer = build_recognizer(config.model) + img_list = [img[None, :] for img in imgs] + if hasattr(_recognizer, 'forward_dummy'): + _recognizer.forward = _recognizer.forward_dummy + for one_img in img_list: + _recognizer(one_img) + + +def test_tanet(): + config = get_recognizer_cfg( + 'tanet/tanet_r50_dense_1x1x8_100e_kinetics400_rgb.py') + config.model['backbone']['pretrained'] = None + + recognizer = build_recognizer(config.model) + + input_shape = (1, 8, 3, 32, 32) + demo_inputs = generate_recognizer_demo_inputs(input_shape) + + imgs = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # test twice sample + 3 crops + input_shape = (2, 48, 3, 32, 32) + demo_inputs = generate_recognizer_demo_inputs(input_shape) + imgs = demo_inputs['imgs'] + + config.model.test_cfg = dict(average_clips='prob') + recognizer = build_recognizer(config.model) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # Test forward gradcam + recognizer(imgs, gradcam=True) + for one_img in img_list: + recognizer(one_img, gradcam=True) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/test_recognizer3d.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/test_recognizer3d.py new file mode 100644 index 00000000..f3bf5d62 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/test_recognizer3d.py @@ -0,0 +1,314 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch + +from mmaction.models import build_recognizer +from ..base import generate_recognizer_demo_inputs, get_recognizer_cfg + + +def test_i3d(): + config = get_recognizer_cfg('i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py') + config.model['backbone']['pretrained2d'] = False + config.model['backbone']['pretrained'] = None + + recognizer = build_recognizer(config.model) + + input_shape = (1, 3, 3, 8, 32, 32) + demo_inputs = generate_recognizer_demo_inputs(input_shape, '3D') + + imgs = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + recognizer = recognizer.cuda() + imgs = imgs.cuda() + gt_labels = gt_labels.cuda() + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # Test forward gradcam + recognizer(imgs, gradcam=True) + for one_img in img_list: + recognizer(one_img, gradcam=True) + + # Test forward dummy + recognizer.forward_dummy(imgs, softmax=False) + res = recognizer.forward_dummy(imgs, softmax=True)[0] + assert torch.min(res) >= 0 + assert torch.max(res) <= 1 + + else: + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # Test forward gradcam + recognizer(imgs, gradcam=True) + for one_img in img_list: + recognizer(one_img, gradcam=True) + + # Test forward dummy + recognizer.forward_dummy(imgs, softmax=False) + res = recognizer.forward_dummy(imgs, softmax=True)[0] + assert torch.min(res) >= 0 + assert torch.max(res) <= 1 + + +def test_r2plus1d(): + config = get_recognizer_cfg( + 'r2plus1d/r2plus1d_r34_8x8x1_180e_kinetics400_rgb.py') + config.model['backbone']['pretrained2d'] = False + config.model['backbone']['pretrained'] = None + config.model['backbone']['norm_cfg'] = dict(type='BN3d') + + recognizer = build_recognizer(config.model) + + input_shape = (1, 3, 3, 8, 32, 32) + demo_inputs = generate_recognizer_demo_inputs(input_shape, '3D') + + imgs = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + recognizer = recognizer.cuda() + imgs = imgs.cuda() + gt_labels = gt_labels.cuda() + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # Test forward gradcam + recognizer(imgs, gradcam=True) + for one_img in img_list: + recognizer(one_img, gradcam=True) + else: + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # Test forward gradcam + recognizer(imgs, gradcam=True) + for one_img in img_list: + recognizer(one_img, gradcam=True) + + +def test_slowfast(): + config = get_recognizer_cfg( + 'slowfast/slowfast_r50_4x16x1_256e_kinetics400_rgb.py') + + recognizer = build_recognizer(config.model) + + input_shape = (1, 3, 3, 16, 32, 32) + demo_inputs = generate_recognizer_demo_inputs(input_shape, '3D') + + imgs = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + recognizer = recognizer.cuda() + imgs = imgs.cuda() + gt_labels = gt_labels.cuda() + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # Test forward gradcam + recognizer(imgs, gradcam=True) + for one_img in img_list: + recognizer(one_img, gradcam=True) + else: + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # Test forward gradcam + recognizer(imgs, gradcam=True) + for one_img in img_list: + recognizer(one_img, gradcam=True) + + # Test the feature max_testing_views + config.model.test_cfg['max_testing_views'] = 1 + recognizer = build_recognizer(config.model) + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + +def test_csn(): + config = get_recognizer_cfg( + 'csn/ircsn_ig65m_pretrained_r152_32x2x1_58e_kinetics400_rgb.py') + config.model['backbone']['pretrained2d'] = False + config.model['backbone']['pretrained'] = None + + recognizer = build_recognizer(config.model) + + input_shape = (1, 3, 3, 8, 32, 32) + demo_inputs = generate_recognizer_demo_inputs(input_shape, '3D') + + imgs = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + # parrots 3dconv is only implemented on gpu + if torch.__version__ == 'parrots': + if torch.cuda.is_available(): + recognizer = recognizer.cuda() + imgs = imgs.cuda() + gt_labels = gt_labels.cuda() + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # Test forward gradcam + recognizer(imgs, gradcam=True) + for one_img in img_list: + recognizer(one_img, gradcam=True) + else: + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # Test forward gradcam + recognizer(imgs, gradcam=True) + for one_img in img_list: + recognizer(one_img, gradcam=True) + + +def test_tpn(): + config = get_recognizer_cfg( + 'tpn/tpn_slowonly_r50_8x8x1_150e_kinetics_rgb.py') + config.model['backbone']['pretrained'] = None + + recognizer = build_recognizer(config.model) + + input_shape = (1, 8, 3, 1, 32, 32) + demo_inputs = generate_recognizer_demo_inputs(input_shape, '3D') + + imgs = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # Test forward gradcam + recognizer(imgs, gradcam=True) + for one_img in img_list: + recognizer(one_img, gradcam=True) + + # Test dummy forward + with torch.no_grad(): + _recognizer = build_recognizer(config.model) + img_list = [img[None, :] for img in imgs] + if hasattr(_recognizer, 'forward_dummy'): + _recognizer.forward = _recognizer.forward_dummy + for one_img in img_list: + _recognizer(one_img) + + +def test_timesformer(): + config = get_recognizer_cfg( + 'timesformer/timesformer_divST_8x32x1_15e_kinetics400_rgb.py') + config.model['backbone']['pretrained'] = None + config.model['backbone']['img_size'] = 32 + + recognizer = build_recognizer(config.model) + + input_shape = (1, 3, 3, 8, 32, 32) + demo_inputs = generate_recognizer_demo_inputs(input_shape, '3D') + + imgs = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # Test forward gradcam + recognizer(imgs, gradcam=True) + for one_img in img_list: + recognizer(one_img, gradcam=True) + + +def test_c3d(): + config = get_recognizer_cfg('c3d/c3d_sports1m_16x1x1_45e_ucf101_rgb.py') + config.model['backbone']['pretrained'] = None + config.model['backbone']['out_dim'] = 512 + + recognizer = build_recognizer(config.model) + + input_shape = (1, 3, 3, 16, 28, 28) + demo_inputs = generate_recognizer_demo_inputs(input_shape, '3D') + + imgs = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + losses = recognizer(imgs, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + img_list = [img[None, :] for img in imgs] + for one_img in img_list: + recognizer(one_img, None, return_loss=False) + + # Test forward gradcam + recognizer(imgs, gradcam=True) + for one_img in img_list: + recognizer(one_img, gradcam=True) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/test_skeletongcn.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/test_skeletongcn.py new file mode 100644 index 00000000..063a0902 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_recognizers/test_skeletongcn.py @@ -0,0 +1,51 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import pytest +import torch + +from mmaction.models import build_recognizer +from ..base import generate_recognizer_demo_inputs, get_skeletongcn_cfg + + +def test_skeletongcn(): + config = get_skeletongcn_cfg('stgcn/stgcn_80e_ntu60_xsub_keypoint.py') + with pytest.raises(TypeError): + # "pretrained" must be a str or None + config.model['backbone']['pretrained'] = ['None'] + recognizer = build_recognizer(config.model) + + config.model['backbone']['pretrained'] = None + recognizer = build_recognizer(config.model) + + input_shape = (1, 3, 300, 17, 2) + demo_inputs = generate_recognizer_demo_inputs(input_shape, 'skeleton') + + skeletons = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + losses = recognizer(skeletons, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + skeleton_list = [skeleton[None, :] for skeleton in skeletons] + for one_skeleton in skeleton_list: + recognizer(one_skeleton, None, return_loss=False) + + # test stgcn without edge importance weighting + config.model['backbone']['edge_importance_weighting'] = False + recognizer = build_recognizer(config.model) + + input_shape = (1, 3, 300, 17, 2) + demo_inputs = generate_recognizer_demo_inputs(input_shape, 'skeleton') + + skeletons = demo_inputs['imgs'] + gt_labels = demo_inputs['gt_labels'] + + losses = recognizer(skeletons, gt_labels) + assert isinstance(losses, dict) + + # Test forward test + with torch.no_grad(): + skeleton_list = [skeleton[None, :] for skeleton in skeletons] + for one_skeleton in skeleton_list: + recognizer(one_skeleton, None, return_loss=False) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_roi_extractor.py b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_roi_extractor.py new file mode 100644 index 00000000..64480198 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_models/test_roi_extractor.py @@ -0,0 +1,58 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch + +from mmaction.models import SingleRoIExtractor3D + + +def test_single_roi_extractor3d(): + roi_extractor = SingleRoIExtractor3D( + roi_layer_type='RoIAlign', + featmap_stride=16, + output_size=8, + sampling_ratio=0, + pool_mode='avg', + aligned=True, + with_temporal_pool=True) + feat = torch.randn([4, 64, 8, 16, 16]) + rois = torch.tensor([[0., 1., 1., 6., 6.], [1., 2., 2., 7., 7.], + [3., 2., 2., 9., 9.], [2., 2., 0., 10., 9.]]) + roi_feat, feat = roi_extractor(feat, rois) + assert roi_feat.shape == (4, 64, 1, 8, 8) + assert feat.shape == (4, 64, 1, 16, 16) + + feat = (torch.randn([4, 64, 8, 16, 16]), torch.randn([4, 32, 16, 16, 16])) + roi_feat, feat = roi_extractor(feat, rois) + assert roi_feat.shape == (4, 96, 1, 8, 8) + assert feat.shape == (4, 96, 1, 16, 16) + + feat = torch.randn([4, 64, 8, 16, 16]) + roi_extractor = SingleRoIExtractor3D( + roi_layer_type='RoIAlign', + featmap_stride=16, + output_size=8, + sampling_ratio=0, + pool_mode='avg', + aligned=True, + with_temporal_pool=False) + roi_feat, feat = roi_extractor(feat, rois) + assert roi_feat.shape == (4, 64, 8, 8, 8) + assert feat.shape == (4, 64, 8, 16, 16) + + feat = (torch.randn([4, 64, 8, 16, 16]), torch.randn([4, 32, 16, 16, 16])) + roi_feat, feat = roi_extractor(feat, rois) + assert roi_feat.shape == (4, 96, 16, 8, 8) + assert feat.shape == (4, 96, 16, 16, 16) + + feat = torch.randn([4, 64, 8, 16, 16]) + roi_extractor = SingleRoIExtractor3D( + roi_layer_type='RoIAlign', + featmap_stride=16, + output_size=8, + sampling_ratio=0, + pool_mode='avg', + aligned=True, + with_temporal_pool=True, + with_global=True) + roi_feat, feat = roi_extractor(feat, rois) + assert roi_feat.shape == (4, 128, 1, 8, 8) + assert feat.shape == (4, 64, 1, 16, 16) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_apis_test.py b/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_apis_test.py new file mode 100644 index 00000000..c3b853d3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_apis_test.py @@ -0,0 +1,119 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import sys +import warnings +from unittest.mock import MagicMock, Mock, patch + +import pytest +import torch +import torch.nn as nn +from torch.utils.data import DataLoader, Dataset + +# TODO import test functions from mmcv and delete them from mmaction2 +try: + from mmcv.engine import (collect_results_cpu, multi_gpu_test, + single_gpu_test) + pytest.skip( + 'Test functions are supported in MMCV', allow_module_level=True) +except (ImportError, ModuleNotFoundError): + warnings.warn( + 'DeprecationWarning: single_gpu_test, multi_gpu_test, ' + 'collect_results_cpu, collect_results_gpu from mmaction2 will be ' + 'deprecated. Please install mmcv through master branch.') + from mmaction.apis.test import (collect_results_cpu, multi_gpu_test, + single_gpu_test) + + +class OldStyleModel(nn.Module): + + def __init__(self): + super().__init__() + self.conv = nn.Conv2d(3, 3, 1) + self.cnt = 0 + + def forward(self, *args, **kwargs): + result = [self.cnt] + self.cnt += 1 + return result + + +class Model(OldStyleModel): + + def train_step(self): + pass + + def val_step(self): + pass + + +class ExampleDataset(Dataset): + + def __init__(self): + self.index = 0 + self.eval_result = [1, 4, 3, 7, 2, -3, 4, 6] + + def __getitem__(self, idx): + results = dict(imgs=torch.tensor([1])) + return results + + def __len__(self): + return len(self.eval_result) + + +def test_single_gpu_test(): + test_dataset = ExampleDataset() + loader = DataLoader(test_dataset, batch_size=1) + model = Model() + + results = single_gpu_test(model, loader) + assert results == list(range(8)) + + +def mock_tensor_without_cuda(*args, **kwargs): + if 'device' not in kwargs: + return torch.Tensor(*args) + return torch.IntTensor(*args, device='cpu') + + +@patch('mmaction.apis.test.collect_results_gpu', + Mock(return_value=list(range(8)))) +@patch('mmaction.apis.test.collect_results_cpu', + Mock(return_value=list(range(8)))) +def test_multi_gpu_test(): + test_dataset = ExampleDataset() + loader = DataLoader(test_dataset, batch_size=1) + model = Model() + + results = multi_gpu_test(model, loader) + assert results == list(range(8)) + + results = multi_gpu_test(model, loader, gpu_collect=False) + assert results == list(range(8)) + + +@patch('mmcv.runner.get_dist_info', Mock(return_value=(0, 1))) +@patch('torch.distributed.broadcast', MagicMock) +@patch('torch.distributed.barrier', Mock) +@pytest.mark.skipif( + sys.version_info[:2] == (3, 8), reason='Not for python 3.8') +def test_collect_results_cpu(): + + def content_for_unittest(): + results_part = list(range(8)) + size = 8 + + results = collect_results_cpu(results_part, size) + assert results == list(range(8)) + + results = collect_results_cpu(results_part, size, 'unittest') + assert results == list(range(8)) + + if not torch.cuda.is_available(): + with patch( + 'torch.full', + Mock( + return_value=torch.full( + (512, ), 32, dtype=torch.uint8, device='cpu'))): + with patch('torch.tensor', mock_tensor_without_cuda): + content_for_unittest() + else: + content_for_unittest() diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_config.py b/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_config.py new file mode 100644 index 00000000..21c7cb43 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_config.py @@ -0,0 +1,74 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import glob +import os +import os.path as osp + +import mmcv +import torch.nn as nn + +from mmaction.models import build_localizer, build_recognizer + + +def _get_config_path(): + """Find the predefined recognizer config path.""" + repo_dir = osp.dirname(osp.dirname(osp.dirname(__file__))) + config_dpath = osp.join(repo_dir, 'configs') + if not osp.exists(config_dpath): + raise Exception('Cannot find config path') + config_fpaths = list(glob.glob(osp.join(config_dpath, '*.py'))) + config_names = [os.path.relpath(p, config_dpath) for p in config_fpaths] + print(f'Using {len(config_names)} config files') + config_fpaths = [ + osp.join(config_dpath, config_fpath) for config_fpath in config_fpaths + ] + return config_fpaths + + +def test_config_build_recognizer(): + """Test that all mmaction models defined in the configs can be + initialized.""" + repo_dir = osp.dirname(osp.dirname(osp.dirname(__file__))) + config_dpath = osp.join(repo_dir, 'configs/recognition') + if not osp.exists(config_dpath): + raise Exception('Cannot find config path') + config_fpaths = list(glob.glob(osp.join(config_dpath, '*.py'))) + # test all config file in `configs` directory + for config_fpath in config_fpaths: + config_mod = mmcv.Config.fromfile(config_fpath) + print(f'Building recognizer, config_fpath = {config_fpath!r}') + + # Remove pretrained keys to allow for testing in an offline environment + if 'pretrained' in config_mod.model['backbone']: + config_mod.model['backbone']['pretrained'] = None + + recognizer = build_recognizer(config_mod.model) + assert isinstance(recognizer, nn.Module) + + +def _get_config_path_for_localizer(): + """Find the predefined localizer config path for localizer.""" + repo_dir = osp.dirname(osp.dirname(osp.dirname(__file__))) + config_dpath = osp.join(repo_dir, 'configs/localization') + if not osp.exists(config_dpath): + raise Exception('Cannot find config path') + config_fpaths = list(glob.glob(osp.join(config_dpath, '*.py'))) + config_names = [os.path.relpath(p, config_dpath) for p in config_fpaths] + print(f'Using {len(config_names)} config files') + config_fpaths = [ + osp.join(config_dpath, config_fpath) for config_fpath in config_fpaths + ] + return config_fpaths + + +def test_config_build_localizer(): + """Test that all mmaction models defined in the configs can be + initialized.""" + config_fpaths = _get_config_path_for_localizer() + + # test all config file in `configs/localization` directory + for config_fpath in config_fpaths: + config_mod = mmcv.Config.fromfile(config_fpath) + print(f'Building localizer, config_fpath = {config_fpath!r}') + if config_mod.get('model', None): + localizer = build_localizer(config_mod.model) + assert isinstance(localizer, nn.Module) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_eval_hook.py b/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_eval_hook.py new file mode 100644 index 00000000..8d601f24 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_eval_hook.py @@ -0,0 +1,347 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp +import shutil +import tempfile +import unittest.mock as mock +import warnings +from collections import OrderedDict +from unittest.mock import MagicMock, patch + +import pytest +import torch +import torch.nn as nn +from mmcv.runner import EpochBasedRunner, IterBasedRunner +from mmcv.utils import get_logger +from torch.utils.data import DataLoader, Dataset + +# TODO import eval hooks from mmcv and delete them from mmaction2 +try: + from mmcv.runner import DistEvalHook, EvalHook + pytest.skip( + 'EvalHook and DistEvalHook are supported in MMCV', + allow_module_level=True) +except ImportError: + warnings.warn('DeprecationWarning: EvalHook and DistEvalHook from ' + 'mmaction2 will be deprecated. Please install mmcv through ' + 'master branch.') + from mmaction.core import DistEvalHook, EvalHook + + +class ExampleDataset(Dataset): + + def __init__(self): + self.index = 0 + self.eval_result = [1, 4, 3, 7, 2, -3, 4, 6] + + def __getitem__(self, idx): + results = dict(x=torch.tensor([1])) + return results + + def __len__(self): + return 1 + + @mock.create_autospec + def evaluate(self, results, logger=None): + pass + + +class EvalDataset(ExampleDataset): + + def evaluate(self, results, logger=None): + acc = self.eval_result[self.index] + output = OrderedDict(acc=acc, index=self.index, score=acc) + self.index += 1 + return output + + +class Model(nn.Module): + + def __init__(self): + super().__init__() + self.linear = nn.Linear(2, 1) + + @staticmethod + def forward(x, **kwargs): + return x + + @staticmethod + def train_step(data_batch, optimizer, **kwargs): + if not isinstance(data_batch, dict): + data_batch = dict(x=data_batch) + return data_batch + + def val_step(self, x, optimizer, **kwargs): + return dict(loss=self(x)) + + +def _build_epoch_runner(): + + model = Model() + tmp_dir = tempfile.mkdtemp() + + runner = EpochBasedRunner( + model=model, work_dir=tmp_dir, logger=get_logger('demo')) + return runner + + +def _build_iter_runner(): + + model = Model() + tmp_dir = tempfile.mkdtemp() + + runner = IterBasedRunner( + model=model, work_dir=tmp_dir, logger=get_logger('demo')) + return runner + + +def test_eval_hook(): + with pytest.raises(AssertionError): + # `save_best` should be a str + test_dataset = Model() + data_loader = DataLoader(test_dataset) + EvalHook(data_loader, save_best=True) + + with pytest.raises(TypeError): + # dataloader must be a pytorch DataLoader + test_dataset = Model() + data_loader = [DataLoader(test_dataset)] + EvalHook(data_loader) + + with pytest.raises(ValueError): + # save_best must be valid when rule_map is None + test_dataset = ExampleDataset() + data_loader = DataLoader(test_dataset) + EvalHook(data_loader, save_best='unsupport') + + with pytest.raises(KeyError): + # rule must be in keys of rule_map + test_dataset = Model() + data_loader = DataLoader(test_dataset) + EvalHook(data_loader, save_best='auto', rule='unsupport') + + test_dataset = ExampleDataset() + loader = DataLoader(test_dataset) + model = Model() + data_loader = DataLoader(test_dataset) + eval_hook = EvalHook(data_loader, save_best=None) + + with tempfile.TemporaryDirectory() as tmpdir: + + # total_epochs = 1 + logger = get_logger('test_eval') + runner = EpochBasedRunner(model=model, work_dir=tmpdir, logger=logger) + runner.register_hook(eval_hook) + runner.run([loader], [('train', 1)], 1) + test_dataset.evaluate.assert_called_with( + test_dataset, [torch.tensor([1])], logger=runner.logger) + assert runner.meta is None or 'best_score' not in runner.meta[ + 'hook_msgs'] + assert runner.meta is None or 'best_ckpt' not in runner.meta[ + 'hook_msgs'] + + # when `save_best` is set to 'auto', first metric will be used. + loader = DataLoader(EvalDataset()) + model = Model() + data_loader = DataLoader(EvalDataset()) + eval_hook = EvalHook(data_loader, interval=1, save_best='auto') + + with tempfile.TemporaryDirectory() as tmpdir: + logger = get_logger('test_eval') + runner = EpochBasedRunner(model=model, work_dir=tmpdir, logger=logger) + runner.register_checkpoint_hook(dict(interval=1)) + runner.register_hook(eval_hook) + runner.run([loader], [('train', 1)], 8) + + ckpt_path = osp.join(tmpdir, 'best_acc_epoch_4.pth') + + assert runner.meta['hook_msgs']['best_ckpt'] == osp.realpath(ckpt_path) + assert osp.exists(ckpt_path) + assert runner.meta['hook_msgs']['best_score'] == 7 + + # total_epochs = 8, return the best acc and corresponding epoch + loader = DataLoader(EvalDataset()) + model = Model() + data_loader = DataLoader(EvalDataset()) + eval_hook = EvalHook(data_loader, interval=1, save_best='acc') + + with tempfile.TemporaryDirectory() as tmpdir: + logger = get_logger('test_eval') + runner = EpochBasedRunner(model=model, work_dir=tmpdir, logger=logger) + runner.register_checkpoint_hook(dict(interval=1)) + runner.register_hook(eval_hook) + runner.run([loader], [('train', 1)], 8) + + ckpt_path = osp.join(tmpdir, 'best_acc_epoch_4.pth') + + assert runner.meta['hook_msgs']['best_ckpt'] == osp.realpath(ckpt_path) + assert osp.exists(ckpt_path) + assert runner.meta['hook_msgs']['best_score'] == 7 + + # total_epochs = 8, return the best score and corresponding epoch + data_loader = DataLoader(EvalDataset()) + eval_hook = EvalHook( + data_loader, interval=1, save_best='score', rule='greater') + with tempfile.TemporaryDirectory() as tmpdir: + logger = get_logger('test_eval') + runner = EpochBasedRunner(model=model, work_dir=tmpdir, logger=logger) + runner.register_checkpoint_hook(dict(interval=1)) + runner.register_hook(eval_hook) + runner.run([loader], [('train', 1)], 8) + + ckpt_path = osp.join(tmpdir, 'best_score_epoch_4.pth') + + assert runner.meta['hook_msgs']['best_ckpt'] == osp.realpath(ckpt_path) + assert osp.exists(ckpt_path) + assert runner.meta['hook_msgs']['best_score'] == 7 + + # total_epochs = 8, return the best score using less compare func + # and indicate corresponding epoch + data_loader = DataLoader(EvalDataset()) + eval_hook = EvalHook(data_loader, save_best='acc', rule='less') + with tempfile.TemporaryDirectory() as tmpdir: + logger = get_logger('test_eval') + runner = EpochBasedRunner(model=model, work_dir=tmpdir, logger=logger) + runner.register_checkpoint_hook(dict(interval=1)) + runner.register_hook(eval_hook) + runner.run([loader], [('train', 1)], 8) + + ckpt_path = osp.join(tmpdir, 'best_acc_epoch_6.pth') + + assert runner.meta['hook_msgs']['best_ckpt'] == osp.realpath(ckpt_path) + assert osp.exists(ckpt_path) + assert runner.meta['hook_msgs']['best_score'] == -3 + + # Test the EvalHook when resume happened + data_loader = DataLoader(EvalDataset()) + eval_hook = EvalHook(data_loader, save_best='acc') + with tempfile.TemporaryDirectory() as tmpdir: + logger = get_logger('test_eval') + runner = EpochBasedRunner(model=model, work_dir=tmpdir, logger=logger) + runner.register_checkpoint_hook(dict(interval=1)) + runner.register_hook(eval_hook) + runner.run([loader], [('train', 1)], 2) + + ckpt_path = osp.join(tmpdir, 'best_acc_epoch_2.pth') + + assert runner.meta['hook_msgs']['best_ckpt'] == osp.realpath(ckpt_path) + assert osp.exists(ckpt_path) + assert runner.meta['hook_msgs']['best_score'] == 4 + + resume_from = osp.join(tmpdir, 'latest.pth') + loader = DataLoader(ExampleDataset()) + eval_hook = EvalHook(data_loader, save_best='acc') + runner = EpochBasedRunner(model=model, work_dir=tmpdir, logger=logger) + runner.register_checkpoint_hook(dict(interval=1)) + runner.register_hook(eval_hook) + runner.resume(resume_from) + runner.run([loader], [('train', 1)], 8) + + ckpt_path = osp.join(tmpdir, 'best_acc_epoch_4.pth') + + assert runner.meta['hook_msgs']['best_ckpt'] == osp.realpath(ckpt_path) + assert osp.exists(ckpt_path) + assert runner.meta['hook_msgs']['best_score'] == 7 + + +@patch('mmaction.apis.single_gpu_test', MagicMock) +@patch('mmaction.apis.multi_gpu_test', MagicMock) +@pytest.mark.parametrize('EvalHookParam', [EvalHook, DistEvalHook]) +@pytest.mark.parametrize('_build_demo_runner,by_epoch', + [(_build_epoch_runner, True), + (_build_iter_runner, False)]) +def test_start_param(EvalHookParam, _build_demo_runner, by_epoch): + # create dummy data + dataloader = DataLoader(torch.ones((5, 2))) + + # 0.1. dataloader is not a DataLoader object + with pytest.raises(TypeError): + EvalHookParam(dataloader=MagicMock(), interval=-1) + + # 0.2. negative interval + with pytest.raises(ValueError): + EvalHookParam(dataloader, interval=-1) + + # 1. start=None, interval=1: perform evaluation after each epoch. + runner = _build_demo_runner() + evalhook = EvalHookParam( + dataloader, interval=1, by_epoch=by_epoch, save_best=None) + evalhook.evaluate = MagicMock() + runner.register_hook(evalhook) + runner.run([dataloader], [('train', 1)], 2) + assert evalhook.evaluate.call_count == 2 # after epoch 1 & 2 + + # 2. start=1, interval=1: perform evaluation after each epoch. + runner = _build_demo_runner() + evalhook = EvalHookParam( + dataloader, start=1, interval=1, by_epoch=by_epoch, save_best=None) + evalhook.evaluate = MagicMock() + runner.register_hook(evalhook) + runner.run([dataloader], [('train', 1)], 2) + assert evalhook.evaluate.call_count == 2 # after epoch 1 & 2 + + # 3. start=None, interval=2: perform evaluation after epoch 2, 4, 6, etc + runner = _build_demo_runner() + evalhook = EvalHookParam( + dataloader, interval=2, by_epoch=by_epoch, save_best=None) + evalhook.evaluate = MagicMock() + runner.register_hook(evalhook) + runner.run([dataloader], [('train', 1)], 2) + assert evalhook.evaluate.call_count == 1 # after epoch 2 + + # 4. start=1, interval=2: perform evaluation after epoch 1, 3, 5, etc + runner = _build_demo_runner() + evalhook = EvalHookParam( + dataloader, start=1, interval=2, by_epoch=by_epoch, save_best=None) + evalhook.evaluate = MagicMock() + runner.register_hook(evalhook) + runner.run([dataloader], [('train', 1)], 3) + assert evalhook.evaluate.call_count == 2 # after epoch 1 & 3 + + # 5. start=0/negative, interval=1: perform evaluation after each epoch and + # before epoch 1. + runner = _build_demo_runner() + evalhook = EvalHookParam( + dataloader, start=0, by_epoch=by_epoch, save_best=None) + evalhook.evaluate = MagicMock() + runner.register_hook(evalhook) + runner.run([dataloader], [('train', 1)], 2) + assert evalhook.evaluate.call_count == 3 # before epoch1 and after e1 & e2 + + runner = _build_demo_runner() + with pytest.warns(UserWarning): + evalhook = EvalHookParam( + dataloader, start=-2, by_epoch=by_epoch, save_best=None) + evalhook.evaluate = MagicMock() + runner.register_hook(evalhook) + runner.run([dataloader], [('train', 1)], 2) + assert evalhook.evaluate.call_count == 3 # before epoch1 and after e1 & e2 + + # 6. resuming from epoch i, start = x (x<=i), interval =1: perform + # evaluation after each epoch and before the first epoch. + runner = _build_demo_runner() + evalhook = EvalHookParam( + dataloader, start=1, by_epoch=by_epoch, save_best=None) + evalhook.evaluate = MagicMock() + runner.register_hook(evalhook) + if by_epoch: + runner._epoch = 2 + else: + runner._iter = 2 + runner.run([dataloader], [('train', 1)], 3) + assert evalhook.evaluate.call_count == 2 # before & after epoch 3 + + # 7. resuming from epoch i, start = i+1/None, interval =1: perform + # evaluation after each epoch. + runner = _build_demo_runner() + evalhook = EvalHookParam( + dataloader, start=2, by_epoch=by_epoch, save_best=None) + evalhook.evaluate = MagicMock() + runner.register_hook(evalhook) + if by_epoch: + runner._epoch = 1 + else: + runner._iter = 1 + runner.run([dataloader], [('train', 1)], 3) + assert evalhook.evaluate.call_count == 2 # after epoch 2 & 3 + + shutil.rmtree(runner.work_dir) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_inference.py b/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_inference.py new file mode 100644 index 00000000..f1f6a7b5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_inference.py @@ -0,0 +1,149 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import mmcv +import numpy as np +import pytest +import torch +import torch.nn as nn + +from mmaction.apis import inference_recognizer, init_recognizer + +video_config_file = 'configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py' # noqa: E501 +frame_config_file = 'configs/recognition/tsn/tsn_r50_inference_1x1x3_100e_kinetics400_rgb.py' # noqa: E501 +flow_frame_config_file = 'configs/recognition/tsn/tsn_r50_320p_1x1x3_110e_kinetics400_flow.py' # noqa: E501 +video_path = 'demo/demo.mp4' +frames_path = 'tests/data/imgs' + + +def test_init_recognizer(): + with pytest.raises(TypeError): + # config must be a filename or Config object + init_recognizer(dict(config_file=None)) + + if torch.cuda.is_available(): + device = 'cuda:0' + else: + device = 'cpu' + + model = init_recognizer(video_config_file, None, device) + + config = mmcv.Config.fromfile(video_config_file) + config.model.backbone.pretrained = None + + isinstance(model, nn.Module) + if torch.cuda.is_available(): + assert next(model.parameters()).is_cuda is True + else: + assert next(model.parameters()).is_cuda is False + assert model.cfg.model.backbone.pretrained is None + + +def test_video_inference_recognizer(): + if torch.cuda.is_available(): + device = 'cuda:0' + else: + device = 'cpu' + model = init_recognizer(video_config_file, None, device) + + with pytest.raises(RuntimeError): + # video path doesn't exist + inference_recognizer(model, 'missing.mp4') + + for ops in model.cfg.data.test.pipeline: + if ops['type'] in ('TenCrop', 'ThreeCrop'): + # Use CenterCrop to reduce memory in order to pass CI + ops['type'] = 'CenterCrop' + + top5_label = inference_recognizer(model, video_path) + scores = [item[1] for item in top5_label] + assert len(top5_label) == 5 + assert scores == sorted(scores, reverse=True) + + _, feat = inference_recognizer( + model, video_path, outputs=('backbone', 'cls_head'), as_tensor=False) + assert isinstance(feat, dict) + assert 'backbone' in feat and 'cls_head' in feat + assert isinstance(feat['backbone'], np.ndarray) + assert isinstance(feat['cls_head'], np.ndarray) + assert feat['backbone'].shape == (25, 2048, 7, 7) + assert feat['cls_head'].shape == (1, 400) + + _, feat = inference_recognizer( + model, + video_path, + outputs=('backbone.layer3', 'backbone.layer3.1.conv1')) + assert 'backbone.layer3.1.conv1' in feat and 'backbone.layer3' in feat + assert isinstance(feat['backbone.layer3.1.conv1'], torch.Tensor) + assert isinstance(feat['backbone.layer3'], torch.Tensor) + assert feat['backbone.layer3'].size() == (25, 1024, 14, 14) + assert feat['backbone.layer3.1.conv1'].size() == (25, 256, 14, 14) + + cfg_file = 'configs/recognition/slowfast/slowfast_r50_video_inference_4x16x1_256e_kinetics400_rgb.py' # noqa: E501 + sf_model = init_recognizer(cfg_file, None, device) + for ops in sf_model.cfg.data.test.pipeline: + # Changes to reduce memory in order to pass CI + if ops['type'] in ('TenCrop', 'ThreeCrop'): + ops['type'] = 'CenterCrop' + if ops['type'] == 'SampleFrames': + ops['num_clips'] = 1 + _, feat = inference_recognizer( + sf_model, video_path, outputs=('backbone', 'cls_head')) + assert isinstance(feat, dict) and isinstance(feat['backbone'], tuple) + assert 'backbone' in feat and 'cls_head' in feat + assert len(feat['backbone']) == 2 + assert isinstance(feat['backbone'][0], torch.Tensor) + assert isinstance(feat['backbone'][1], torch.Tensor) + assert feat['backbone'][0].size() == (1, 2048, 4, 8, 8) + assert feat['backbone'][1].size() == (1, 256, 32, 8, 8) + assert feat['cls_head'].size() == (1, 400) + + +def test_frames_inference_recognizer(): + if torch.cuda.is_available(): + device = 'cuda:0' + else: + device = 'cpu' + rgb_model = init_recognizer(frame_config_file, None, device) + flow_model = init_recognizer(flow_frame_config_file, None, device) + + with pytest.raises(RuntimeError): + # video path doesn't exist + inference_recognizer(rgb_model, 'missing_path') + + for ops in rgb_model.cfg.data.test.pipeline: + if ops['type'] in ('TenCrop', 'ThreeCrop'): + # Use CenterCrop to reduce memory in order to pass CI + ops['type'] = 'CenterCrop' + ops['crop_size'] = 224 + for ops in flow_model.cfg.data.test.pipeline: + if ops['type'] in ('TenCrop', 'ThreeCrop'): + # Use CenterCrop to reduce memory in order to pass CI + ops['type'] = 'CenterCrop' + ops['crop_size'] = 224 + + top5_label = inference_recognizer(rgb_model, frames_path) + scores = [item[1] for item in top5_label] + assert len(top5_label) == 5 + assert scores == sorted(scores, reverse=True) + + _, feat = inference_recognizer( + flow_model, + frames_path, + outputs=('backbone', 'cls_head'), + as_tensor=False) + assert isinstance(feat, dict) + assert 'backbone' in feat and 'cls_head' in feat + assert isinstance(feat['backbone'], np.ndarray) + assert isinstance(feat['cls_head'], np.ndarray) + assert feat['backbone'].shape == (25, 2048, 7, 7) + assert feat['cls_head'].shape == (1, 400) + + _, feat = inference_recognizer( + rgb_model, + frames_path, + outputs=('backbone.layer3', 'backbone.layer3.1.conv1')) + + assert 'backbone.layer3.1.conv1' in feat and 'backbone.layer3' in feat + assert isinstance(feat['backbone.layer3.1.conv1'], torch.Tensor) + assert isinstance(feat['backbone.layer3'], torch.Tensor) + assert feat['backbone.layer3'].size() == (25, 1024, 14, 14) + assert feat['backbone.layer3.1.conv1'].size() == (25, 256, 14, 14) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_lr.py b/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_lr.py new file mode 100644 index 00000000..7a530fec --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_lr.py @@ -0,0 +1,121 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import logging +import os.path as osp +import shutil +import sys +import tempfile +from unittest.mock import MagicMock, call + +import torch +import torch.nn as nn +from mmcv.runner import IterTimerHook, PaviLoggerHook, build_runner +from torch.utils.data import DataLoader + + +def test_tin_lr_updater_hook(): + sys.modules['pavi'] = MagicMock() + loader = DataLoader(torch.ones((10, 2))) + runner = _build_demo_runner() + + hook_cfg = dict(type='TINLrUpdaterHook', min_lr=0.1) + runner.register_hook_from_cfg(hook_cfg) + + hook_cfg = dict( + type='TINLrUpdaterHook', + by_epoch=False, + min_lr=0.1, + warmup='exp', + warmup_iters=2, + warmup_ratio=0.9) + runner.register_hook_from_cfg(hook_cfg) + runner.register_hook_from_cfg(dict(type='IterTimerHook')) + runner.register_hook(IterTimerHook()) + + hook_cfg = dict( + type='TINLrUpdaterHook', + by_epoch=False, + min_lr=0.1, + warmup='constant', + warmup_iters=2, + warmup_ratio=0.9) + runner.register_hook_from_cfg(hook_cfg) + runner.register_hook_from_cfg(dict(type='IterTimerHook')) + runner.register_hook(IterTimerHook()) + + hook_cfg = dict( + type='TINLrUpdaterHook', + by_epoch=False, + min_lr=0.1, + warmup='linear', + warmup_iters=2, + warmup_ratio=0.9) + runner.register_hook_from_cfg(hook_cfg) + runner.register_hook_from_cfg(dict(type='IterTimerHook')) + runner.register_hook(IterTimerHook()) + # add pavi hook + hook = PaviLoggerHook(interval=1, add_graph=False, add_last_ckpt=True) + runner.register_hook(hook) + runner.run([loader], [('train', 1)]) + shutil.rmtree(runner.work_dir) + + assert hasattr(hook, 'writer') + calls = [ + call('train', { + 'learning_rate': 0.028544155877284292, + 'momentum': 0.95 + }, 1), + call('train', { + 'learning_rate': 0.04469266270539641, + 'momentum': 0.95 + }, 6), + call('train', { + 'learning_rate': 0.09695518130045147, + 'momentum': 0.95 + }, 10) + ] + hook.writer.add_scalars.assert_has_calls(calls, any_order=True) + + +def _build_demo_runner(runner_type='EpochBasedRunner', + max_epochs=1, + max_iters=None): + + class Model(nn.Module): + + def __init__(self): + super().__init__() + self.linear = nn.Linear(2, 1) + + def forward(self, x): + return self.linear(x) + + def train_step(self, x, optimizer, **kwargs): + return dict(loss=self(x)) + + def val_step(self, x, optimizer, **kwargs): + return dict(loss=self(x)) + + model = Model() + + optimizer = torch.optim.SGD(model.parameters(), lr=0.02, momentum=0.95) + + log_config = dict( + interval=1, hooks=[ + dict(type='TextLoggerHook'), + ]) + + tmp_dir = tempfile.mkdtemp() + tmp_dir = osp.join(tmp_dir, '.test_lr_tmp') + + runner = build_runner( + dict(type=runner_type), + default_args=dict( + model=model, + work_dir=tmp_dir, + optimizer=optimizer, + logger=logging.getLogger(), + max_epochs=max_epochs, + max_iters=max_iters)) + runner.register_checkpoint_hook(dict(interval=1)) + runner.register_logger_hooks(log_config) + return runner diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_optimizer.py b/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_optimizer.py new file mode 100644 index 00000000..f0c06fe7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_optimizer.py @@ -0,0 +1,214 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn +from mmcv.runner import build_optimizer_constructor + + +class SubModel(nn.Module): + + def __init__(self): + super().__init__() + self.conv1 = nn.Conv2d(2, 2, kernel_size=1, groups=2) + self.gn = nn.GroupNorm(2, 2) + self.fc = nn.Linear(2, 2) + self.param1 = nn.Parameter(torch.ones(1)) + + def forward(self, x): + return x + + +class ExampleModel(nn.Module): + + def __init__(self): + super().__init__() + self.param1 = nn.Parameter(torch.ones(1)) + self.conv1 = nn.Conv2d(3, 4, kernel_size=1, bias=False) + self.conv2 = nn.Conv2d(4, 2, kernel_size=1) + self.bn = nn.BatchNorm2d(2) + self.sub = SubModel() + self.fc = nn.Linear(2, 1) + + def forward(self, x): + return x + + +class PseudoDataParallel(nn.Module): + + def __init__(self): + super().__init__() + self.module = ExampleModel() + + def forward(self, x): + return x + + +base_lr = 0.01 +base_wd = 0.0001 +momentum = 0.9 + + +def check_optimizer(optimizer, + model, + prefix='', + bias_lr_mult=1, + bias_decay_mult=1, + norm_decay_mult=1, + dwconv_decay_mult=1): + param_groups = optimizer.param_groups + assert isinstance(optimizer, torch.optim.SGD) + assert optimizer.defaults['lr'] == base_lr + assert optimizer.defaults['momentum'] == momentum + assert optimizer.defaults['weight_decay'] == base_wd + model_parameters = list(model.parameters()) + assert len(param_groups) == len(model_parameters) + for i, param in enumerate(model_parameters): + param_group = param_groups[i] + assert torch.equal(param_group['params'][0], param) + assert param_group['momentum'] == momentum + # param1 + param1 = param_groups[0] + assert param1['lr'] == base_lr + assert param1['weight_decay'] == base_wd + # conv1.weight + conv1_weight = param_groups[1] + assert conv1_weight['lr'] == base_lr + assert conv1_weight['weight_decay'] == base_wd + # conv2.weight + conv2_weight = param_groups[2] + assert conv2_weight['lr'] == base_lr + assert conv2_weight['weight_decay'] == base_wd + # conv2.bias + conv2_bias = param_groups[3] + assert conv2_bias['lr'] == base_lr * bias_lr_mult + assert conv2_bias['weight_decay'] == base_wd * bias_decay_mult + # bn.weight + bn_weight = param_groups[4] + assert bn_weight['lr'] == base_lr + assert bn_weight['weight_decay'] == base_wd * norm_decay_mult + # bn.bias + bn_bias = param_groups[5] + assert bn_bias['lr'] == base_lr + assert bn_bias['weight_decay'] == base_wd * norm_decay_mult + # sub.param1 + sub_param1 = param_groups[6] + assert sub_param1['lr'] == base_lr + assert sub_param1['weight_decay'] == base_wd + # sub.conv1.weight + sub_conv1_weight = param_groups[7] + assert sub_conv1_weight['lr'] == base_lr + assert sub_conv1_weight['weight_decay'] == base_wd * dwconv_decay_mult + # sub.conv1.bias + sub_conv1_bias = param_groups[8] + assert sub_conv1_bias['lr'] == base_lr * bias_lr_mult + assert sub_conv1_bias['weight_decay'] == base_wd * dwconv_decay_mult + # sub.gn.weight + sub_gn_weight = param_groups[9] + assert sub_gn_weight['lr'] == base_lr + assert sub_gn_weight['weight_decay'] == base_wd * norm_decay_mult + # sub.gn.bias + sub_gn_bias = param_groups[10] + assert sub_gn_bias['lr'] == base_lr + assert sub_gn_bias['weight_decay'] == base_wd * norm_decay_mult + # sub.fc1.weight + sub_fc_weight = param_groups[11] + assert sub_fc_weight['lr'] == base_lr + assert sub_fc_weight['weight_decay'] == base_wd + # sub.fc1.bias + sub_fc_bias = param_groups[12] + assert sub_fc_bias['lr'] == base_lr * bias_lr_mult + assert sub_fc_bias['weight_decay'] == base_wd * bias_decay_mult + # fc1.weight + fc_weight = param_groups[13] + assert fc_weight['lr'] == base_lr + assert fc_weight['weight_decay'] == base_wd + # fc1.bias + fc_bias = param_groups[14] + assert fc_bias['lr'] == base_lr * bias_lr_mult + assert fc_bias['weight_decay'] == base_wd * bias_decay_mult + + +def check_tsm_optimizer(optimizer, model, fc_lr5=True): + param_groups = optimizer.param_groups + assert isinstance(optimizer, torch.optim.SGD) + assert optimizer.defaults['lr'] == base_lr + assert optimizer.defaults['momentum'] == momentum + assert optimizer.defaults['weight_decay'] == base_wd + model_parameters = list(model.parameters()) + # first_conv_weight + first_conv_weight = param_groups[0] + assert torch.equal(first_conv_weight['params'][0], model_parameters[1]) + assert first_conv_weight['lr'] == base_lr + assert first_conv_weight['weight_decay'] == base_wd + # first_conv_bias + first_conv_bias = param_groups[1] + assert first_conv_bias['params'] == [] + assert first_conv_bias['lr'] == base_lr * 2 + assert first_conv_bias['weight_decay'] == 0 + # normal_weight + normal_weight = param_groups[2] + assert torch.equal(normal_weight['params'][0], model_parameters[2]) + assert torch.equal(normal_weight['params'][1], model_parameters[7]) + assert normal_weight['lr'] == base_lr + assert normal_weight['weight_decay'] == base_wd + # normal_bias + normal_bias = param_groups[3] + assert torch.equal(normal_bias['params'][0], model_parameters[3]) + assert torch.equal(normal_bias['params'][1], model_parameters[8]) + assert normal_bias['lr'] == base_lr * 2 + assert normal_bias['weight_decay'] == 0 + # bn + bn = param_groups[4] + assert torch.equal(bn['params'][0], model_parameters[4]) + assert torch.equal(bn['params'][1], model_parameters[5]) + assert torch.equal(bn['params'][2], model_parameters[9]) + assert torch.equal(bn['params'][3], model_parameters[10]) + assert bn['lr'] == base_lr + assert bn['weight_decay'] == 0 + # normal linear weight + assert torch.equal(normal_weight['params'][2], model_parameters[11]) + # normal linear bias + assert torch.equal(normal_bias['params'][2], model_parameters[12]) + # fc_lr5 + lr5_weight = param_groups[5] + lr10_bias = param_groups[6] + assert lr5_weight['lr'] == base_lr * 5 + assert lr5_weight['weight_decay'] == base_wd + assert lr10_bias['lr'] == base_lr * 10 + assert lr10_bias['weight_decay'] == 0 + if fc_lr5: + # lr5_weight + assert torch.equal(lr5_weight['params'][0], model_parameters[13]) + # lr10_bias + assert torch.equal(lr10_bias['params'][0], model_parameters[14]) + else: + # lr5_weight + assert lr5_weight['params'] == [] + # lr10_bias + assert lr10_bias['params'] == [] + assert torch.equal(normal_weight['params'][3], model_parameters[13]) + assert torch.equal(normal_bias['params'][3], model_parameters[14]) + + +def test_tsm_optimizer_constructor(): + model = ExampleModel() + optimizer_cfg = dict( + type='SGD', lr=base_lr, weight_decay=base_wd, momentum=momentum) + # fc_lr5 is True + paramwise_cfg = dict(fc_lr5=True) + optim_constructor_cfg = dict( + type='TSMOptimizerConstructor', + optimizer_cfg=optimizer_cfg, + paramwise_cfg=paramwise_cfg) + optim_constructor = build_optimizer_constructor(optim_constructor_cfg) + optimizer = optim_constructor(model) + check_tsm_optimizer(optimizer, model, **paramwise_cfg) + + # fc_lr5 is False + paramwise_cfg = dict(fc_lr5=False) + optim_constructor_cfg = dict( + type='TSMOptimizerConstructor', + optimizer_cfg=optimizer_cfg, + paramwise_cfg=paramwise_cfg) + optim_constructor = build_optimizer_constructor(optim_constructor_cfg) + optimizer = optim_constructor(model) + check_tsm_optimizer(optimizer, model, **paramwise_cfg) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_precise_bn.py b/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_precise_bn.py new file mode 100644 index 00000000..42d5fed7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_precise_bn.py @@ -0,0 +1,205 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy + +import numpy as np +import pytest +import torch +import torch.nn as nn +from mmcv.parallel import MMDistributedDataParallel +from mmcv.runner import EpochBasedRunner, build_optimizer +from mmcv.utils import get_logger +from torch.utils.data import DataLoader, Dataset + +from mmaction.utils import PreciseBNHook + + +class ExampleDataset(Dataset): + + def __init__(self): + self.index = 0 + + def __getitem__(self, idx): + results = dict(imgs=torch.tensor([1.0], dtype=torch.float32)) + return results + + def __len__(self): + return 1 + + +class BiggerDataset(ExampleDataset): + + def __init__(self, fixed_values=range(0, 12)): + assert len(self) == len(fixed_values) + self.fixed_values = fixed_values + + def __getitem__(self, idx): + results = dict( + imgs=torch.tensor([self.fixed_values[idx]], dtype=torch.float32)) + return results + + def __len__(self): + # a bigger dataset + return 12 + + +class ExampleModel(nn.Module): + + def __init__(self): + super().__init__() + self.conv = nn.Linear(1, 1) + self.bn = nn.BatchNorm1d(1) + self.test_cfg = None + + def forward(self, imgs, return_loss=False): + return self.bn(self.conv(imgs)) + + @staticmethod + def train_step(data_batch, optimizer, **kwargs): + outputs = { + 'loss': 0.5, + 'log_vars': { + 'accuracy': 0.98 + }, + 'num_samples': 1 + } + return outputs + + +class SingleBNModel(ExampleModel): + + def __init__(self): + super().__init__() + self.bn = nn.BatchNorm1d(1) + self.test_cfg = None + + def forward(self, imgs, return_loss=False): + return self.bn(imgs) + + +class GNExampleModel(ExampleModel): + + def __init__(self): + super().__init__() + self.conv = nn.Linear(1, 1) + self.bn = nn.GroupNorm(1, 1) + self.test_cfg = None + + +class NoBNExampleModel(ExampleModel): + + def __init__(self): + super().__init__() + self.conv = nn.Linear(1, 1) + self.test_cfg = None + + def forward(self, imgs, return_loss=False): + return self.conv(imgs) + + +def test_precise_bn(): + with pytest.raises(TypeError): + # `data_loader` must be a Pytorch DataLoader + test_dataset = ExampleModel() + data_loader = DataLoader( + test_dataset, + batch_size=2, + sampler=None, + num_workers=0, + shuffle=False) + PreciseBNHook('data_loader') + + optimizer_cfg = dict( + type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0001) + + test_dataset = ExampleDataset() + loader = DataLoader(test_dataset, batch_size=2) + model = ExampleModel() + optimizer = build_optimizer(model, optimizer_cfg) + + data_loader = DataLoader(test_dataset, batch_size=2) + precise_bn_loader = copy.deepcopy(data_loader) + logger = get_logger('precise_bn') + runner = EpochBasedRunner( + model=model, batch_processor=None, optimizer=optimizer, logger=logger) + + with pytest.raises(AssertionError): + # num_iters should be no larger than total + # iters + precise_bn_hook = PreciseBNHook(precise_bn_loader, num_iters=5) + runner.register_hook(precise_bn_hook) + runner.run([loader], [('train', 1)], 1) + + # test non-DDP model + test_bigger_dataset = BiggerDataset() + loader = DataLoader(test_bigger_dataset, batch_size=2) + precise_bn_hook = PreciseBNHook(loader, num_iters=5) + assert precise_bn_hook.num_iters == 5 + assert precise_bn_hook.interval == 1 + runner = EpochBasedRunner( + model=model, batch_processor=None, optimizer=optimizer, logger=logger) + runner.register_hook(precise_bn_hook) + runner.run([loader], [('train', 1)], 1) + + # test model w/ gn layer + loader = DataLoader(test_bigger_dataset, batch_size=2) + precise_bn_hook = PreciseBNHook(loader, num_iters=5) + assert precise_bn_hook.num_iters == 5 + assert precise_bn_hook.interval == 1 + model = GNExampleModel() + runner = EpochBasedRunner( + model=model, batch_processor=None, optimizer=optimizer, logger=logger) + runner.register_hook(precise_bn_hook) + runner.run([loader], [('train', 1)], 1) + + # test model without bn layer + loader = DataLoader(test_bigger_dataset, batch_size=2) + precise_bn_hook = PreciseBNHook(loader, num_iters=5) + assert precise_bn_hook.num_iters == 5 + assert precise_bn_hook.interval == 1 + model = NoBNExampleModel() + runner = EpochBasedRunner( + model=model, batch_processor=None, optimizer=optimizer, logger=logger) + runner.register_hook(precise_bn_hook) + runner.run([loader], [('train', 1)], 1) + + # test how precise it is + loader = DataLoader(test_bigger_dataset, batch_size=2) + precise_bn_hook = PreciseBNHook(loader, num_iters=6) # run all + assert precise_bn_hook.num_iters == 6 + assert precise_bn_hook.interval == 1 + model = SingleBNModel() + runner = EpochBasedRunner( + model=model, batch_processor=None, optimizer=optimizer, logger=logger) + runner.register_hook(precise_bn_hook) + runner.run([loader], [('train', 1)], 1) + imgs_list = list() + for _, data in enumerate(loader): + imgs_list.append(np.array(data['imgs'])) + mean = np.mean([np.mean(batch) for batch in imgs_list]) + # bassel correction used in Pytorch, therefore ddof=1 + var = np.mean([np.var(batch, ddof=1) for batch in imgs_list]) + assert np.equal(mean, np.array(model.bn.running_mean)) + assert np.equal(var, np.array(model.bn.running_var)) + + @pytest.mark.skipif( + not torch.cuda.is_available(), reason='requires CUDA support') + def test_ddp_model_precise_bn(): + # test DDP model + test_bigger_dataset = BiggerDataset() + loader = DataLoader(test_bigger_dataset, batch_size=2) + precise_bn_hook = PreciseBNHook(loader, num_iters=5) + assert precise_bn_hook.num_iters == 5 + assert precise_bn_hook.interval == 1 + model = ExampleModel() + model = MMDistributedDataParallel( + model.cuda(), + device_ids=[torch.cuda.current_device()], + broadcast_buffers=False, + find_unused_parameters=True) + runner = EpochBasedRunner( + model=model, + batch_processor=None, + optimizer=optimizer, + logger=logger) + runner.register_hook(precise_bn_hook) + runner.run([loader], [('train', 1)], 1) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_train.py b/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_train.py new file mode 100644 index 00000000..3a205dfb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_runtime/test_train.py @@ -0,0 +1,125 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy +import tempfile +from collections import OrderedDict + +import pytest +import torch +import torch.nn as nn +from mmcv import Config +from torch.utils.data import Dataset + +from mmaction.apis import train_model +from mmaction.datasets import DATASETS + + +@DATASETS.register_module() +class ExampleDataset(Dataset): + + def __init__(self, test_mode=False): + self.test_mode = test_mode + + @staticmethod + def evaluate(results, logger=None): + eval_results = OrderedDict() + eval_results['acc'] = 1 + return eval_results + + def __getitem__(self, idx): + results = dict(imgs=torch.tensor([1])) + return results + + def __len__(self): + return 1 + + +class ExampleModel(nn.Module): + + def __init__(self): + super().__init__() + self.test_cfg = None + self.conv1 = nn.Conv2d(3, 8, kernel_size=1) + self.norm1 = nn.BatchNorm1d(2) + + def forward(self, imgs, return_loss=False): + self.norm1(torch.rand(3, 2).cuda()) + losses = dict() + losses['test_loss'] = torch.tensor([0.5], requires_grad=True) + return losses + + def train_step(self, data_batch, optimizer, **kwargs): + imgs = data_batch['imgs'] + losses = self.forward(imgs, True) + loss = torch.tensor([0.5], requires_grad=True) + outputs = dict(loss=loss, log_vars=losses, num_samples=3) + return outputs + + def val_step(self, data_batch, optimizer, **kwargs): + imgs = data_batch['imgs'] + self.forward(imgs, False) + outputs = dict(results=0.5) + return outputs + + +@pytest.mark.skipif( + not torch.cuda.is_available(), reason='requires CUDA support') +def test_train_model(): + model = ExampleModel() + dataset = ExampleDataset() + datasets = [ExampleDataset(), ExampleDataset()] + _cfg = dict( + seed=0, + gpus=1, + gpu_ids=[0], + resume_from=None, + load_from=None, + workflow=[('train', 1)], + total_epochs=5, + evaluation=dict(interval=1, save_best='acc'), + data=dict( + videos_per_gpu=1, + workers_per_gpu=0, + val=dict(type='ExampleDataset')), + optimizer=dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0001), + optimizer_config=dict(grad_clip=dict(max_norm=40, norm_type=2)), + lr_config=dict(policy='step', step=[40, 80]), + omnisource=False, + precise_bn=False, + checkpoint_config=dict(interval=1), + log_level='INFO', + log_config=dict(interval=20, hooks=[dict(type='TextLoggerHook')])) + + with tempfile.TemporaryDirectory() as tmpdir: + # normal train + cfg = copy.deepcopy(_cfg) + cfg['work_dir'] = tmpdir + config = Config(cfg) + train_model(model, dataset, config) + + with tempfile.TemporaryDirectory() as tmpdir: + # train with validation + cfg = copy.deepcopy(_cfg) + cfg['work_dir'] = tmpdir + config = Config(cfg) + train_model(model, dataset, config, validate=True) + + with tempfile.TemporaryDirectory() as tmpdir: + cfg = copy.deepcopy(_cfg) + cfg['work_dir'] = tmpdir + cfg['omnisource'] = True + config = Config(cfg) + train_model(model, datasets, config) + + with tempfile.TemporaryDirectory() as tmpdir: + # train with precise_bn on + cfg = copy.deepcopy(_cfg) + cfg['work_dir'] = tmpdir + cfg['workflow'] = [('train', 1), ('val', 1)] + cfg['data'] = dict( + videos_per_gpu=1, + workers_per_gpu=0, + train=dict(type='ExampleDataset'), + val=dict(type='ExampleDataset')) + cfg['precise_bn'] = dict(num_iters=1, interval=1) + config = Config(cfg) + train_model(model, datasets, config) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_utils/__init__.py b/openmmlab_test/mmaction2-0.24.1/tests/test_utils/__init__.py new file mode 100644 index 00000000..ef101fec --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_utils/__init__.py @@ -0,0 +1 @@ +# Copyright (c) OpenMMLab. All rights reserved. diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_bbox.py b/openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_bbox.py new file mode 100644 index 00000000..8f5e0ab7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_bbox.py @@ -0,0 +1,151 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp +from abc import abstractproperty + +import numpy as np +import torch + +from mmaction.core.bbox import bbox2result, bbox_target +from mmaction.datasets import AVADataset + + +def test_assigner_sampler(): + try: + from mmdet.core.bbox import build_assigner, build_sampler + except (ImportError, ModuleNotFoundError): + raise ImportError( + 'Failed to import `build_assigner` and `build_sampler` ' + 'from `mmdet.core.bbox`. The two APIs are required for ' + 'the testing in `test_bbox.py`! ') + data_prefix = osp.normpath( + osp.join(osp.dirname(__file__), '../data/eval_detection')) + ann_file = osp.join(data_prefix, 'gt.csv') + label_file = osp.join(data_prefix, 'action_list.txt') + proposal_file = osp.join(data_prefix, 'proposal.pkl') + dataset = AVADataset( + ann_file=ann_file, + exclude_file=None, + pipeline=[], + label_file=label_file, + proposal_file=proposal_file, + num_classes=4) + + assigner = dict( + type='MaxIoUAssignerAVA', + pos_iou_thr=0.5, + neg_iou_thr=0.5, + min_pos_iou=0.5) + assigner = build_assigner(assigner) + proposal = torch.tensor(dataset[0]['proposals']) + + gt_bboxes = torch.tensor(dataset[0]['gt_bboxes']) + gt_labels = torch.tensor(dataset[0]['gt_labels']) + assign_result = assigner.assign( + bboxes=proposal, + gt_bboxes=gt_bboxes, + gt_bboxes_ignore=None, + gt_labels=gt_labels) + assert assign_result.num_gts == 4 + assert torch.all( + assign_result.gt_inds == torch.tensor([0, 0, 3, 3, 0, 0, 0, 1, 0, 0])) + assert torch.all( + torch.isclose( + assign_result.max_overlaps, + torch.tensor([ + 0.40386841, 0.47127257, 0.53544776, 0.58797631, 0.29281288, + 0.40979504, 0.45902917, 0.50093938, 0.21560125, 0.32948171 + ], + dtype=torch.float64))) + assert torch.all( + torch.isclose( + assign_result.labels, + torch.tensor([[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 1., 0., 0.], + [0., 1., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.], + [0., 0., 0., 0.], [0., 0., 0., 1.], [0., 0., 0., 0.], + [0., 0., 0., 0.]]))) + sampler = dict(type='RandomSampler', num=32, pos_fraction=1) + sampler = build_sampler(sampler) + sampling_result = sampler.sample(assign_result, proposal, gt_bboxes, + gt_labels) + assert (sampling_result.pos_inds.shape[0] == + sampling_result.pos_bboxes.shape[0]) + assert (sampling_result.neg_inds.shape[0] == + sampling_result.neg_bboxes.shape[0]) + return sampling_result + + +def test_bbox2result(): + bboxes = torch.tensor([[0.072, 0.47, 0.84, 0.898], + [0.23, 0.215, 0.781, 0.534], + [0.195, 0.128, 0.643, 0.944], + [0.236, 0.189, 0.689, 0.74], + [0.375, 0.371, 0.726, 0.804], + [0.024, 0.398, 0.776, 0.719]]) + labels = torch.tensor([[-1.650, 0.515, 0.798, 1.240], + [1.368, -1.128, 0.037, -1.087], + [0.481, -1.303, 0.501, -0.463], + [-0.356, 0.126, -0.840, 0.438], + [0.079, 1.269, -0.263, -0.538], + [-0.853, 0.391, 0.103, 0.398]]) + num_classes = 4 + # Test for multi-label + result = bbox2result(bboxes, labels, num_classes) + assert np.all( + np.isclose( + result[0], + np.array([[0.072, 0.47, 0.84, 0.898, 0.515], + [0.236, 0.189, 0.689, 0.74, 0.126], + [0.375, 0.371, 0.726, 0.804, 1.269], + [0.024, 0.398, 0.776, 0.719, 0.391]]))) + assert np.all( + np.isclose( + result[1], + np.array([[0.072, 0.47, 0.84, 0.898, 0.798], + [0.23, 0.215, 0.781, 0.534, 0.037], + [0.195, 0.128, 0.643, 0.944, 0.501], + [0.024, 0.398, 0.776, 0.719, 0.103]]))) + assert np.all( + np.isclose( + result[2], + np.array([[0.072, 0.47, 0.84, 0.898, 1.24], + [0.236, 0.189, 0.689, 0.74, 0.438], + [0.024, 0.398, 0.776, 0.719, 0.398]]))) + + # Test for single-label + result = bbox2result(bboxes, labels, num_classes, -1.0) + assert np.all( + np.isclose(result[0], np.array([[0.375, 0.371, 0.726, 0.804, 1.269]]))) + assert np.all( + np.isclose( + result[1], + np.array([[0.23, 0.215, 0.781, 0.534, 0.037], + [0.195, 0.128, 0.643, 0.944, 0.501]]))) + assert np.all( + np.isclose( + result[2], + np.array([[0.072, 0.47, 0.84, 0.898, 1.240], + [0.236, 0.189, 0.689, 0.74, 0.438], + [0.024, 0.398, 0.776, 0.719, 0.398]]))) + + +def test_bbox_target(): + pos_bboxes = torch.tensor([[0.072, 0.47, 0.84, 0.898], + [0.23, 0.215, 0.781, 0.534], + [0.195, 0.128, 0.643, 0.944], + [0.236, 0.189, 0.689, 0.74]]) + neg_bboxes = torch.tensor([[0.375, 0.371, 0.726, 0.804], + [0.024, 0.398, 0.776, 0.719]]) + pos_gt_labels = torch.tensor([[0., 0., 1., 0.], [0., 0., 0., 1.], + [0., 1., 0., 0.], [0., 1., 0., 0.]]) + cfg = abstractproperty() + cfg.pos_weight = 0.8 + labels, label_weights = bbox_target([pos_bboxes], [neg_bboxes], + [pos_gt_labels], cfg) + assert torch.all( + torch.isclose( + labels, + torch.tensor([[0., 0., 1., 0.], [0., 0., 0., 1.], [0., 1., 0., 0.], + [0., 1., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., + 0.]]))) + assert torch.all( + torch.isclose(label_weights, torch.tensor([0.8] * 4 + [1.0] * 2))) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_localization_utils.py b/openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_localization_utils.py new file mode 100644 index 00000000..b4709fe8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_localization_utils.py @@ -0,0 +1,204 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +import numpy as np +import pytest +from numpy.testing import assert_array_almost_equal, assert_array_equal + +from mmaction.localization import (generate_bsp_feature, + generate_candidate_proposals, soft_nms, + temporal_iop, temporal_iou) + + +def test_temporal_iou(): + anchors_min = np.array([0.0, 0.5]) + anchors_max = np.array([1.0, 1.5]) + box_min = 0.5 + box_max = 1.0 + + iou = temporal_iou(anchors_min, anchors_max, box_min, box_max) + assert_array_equal(iou, np.array([0.5, 0.5])) + + +def test_temporal_iop(): + anchors_min = np.array([0.0, 0.5]) + anchors_max = np.array([1.0, 1.5]) + box_min = 0.4 + box_max = 1.1 + + ioa = temporal_iop(anchors_min, anchors_max, box_min, box_max) + assert_array_almost_equal(ioa, np.array([0.6, 0.6])) + + +def test_soft_nms(): + proposals = np.array([[0., 1., 1., 1., 0.5, 0.5], + [0., 0.4, 1., 1., 0.4, 0.4], + [0., 0.95, 1., 1., 0.6, 0.6]]) + proposal_list = soft_nms(proposals, 0.75, 0.65, 0.9, 1) + assert_array_equal(proposal_list, [[0., 0.95, 0.6], [0., 0.4, 0.4]]) + + +def test_generate_candidate_proposals(): + video_list = [0, 1] + video_infos = [ + dict( + video_name='v_test1', + duration_second=100, + duration_frame=1000, + annotations=[{ + 'segment': [30.0, 60.0], + 'label': 'Rock climbing' + }], + feature_frame=900), + dict( + video_name='v_test2', + duration_second=100, + duration_frame=1000, + annotations=[{ + 'segment': [6.0, 8.0], + 'label': 'Drinking beer' + }], + feature_frame=900) + ] + tem_results_dir = osp.normpath( + osp.join(osp.dirname(__file__), '../data/tem_results')) + # test when tem_result_ext is not valid + with pytest.raises(NotImplementedError): + result_dict = generate_candidate_proposals( + video_list, + video_infos, + tem_results_dir, + 5, + 0.5, + tem_results_ext='unsupport_ext') + # test without result_dict + assert_result1 = np.array([ + [0.1, 0.7, 0.58390868, 0.35708317, 0.20850396, 0.55555556, 0.55555556], + [0.1, 0.5, 0.58390868, 0.32605207, 0.19038463, 0.29411765, 0.41666667], + [0.1, 0.3, 0.58390868, 0.26221931, 0.15311213, 0., 0.], + [0.3, 0.7, 0.30626667, 0.35708317, 0.10936267, 0.83333333, 0.83333333], + [0.3, 0.5, 0.30626667, 0.32605207, 0.09985888, 0.45454545, 0.83333333] + ]) + assert_result2 = np.array( + [[0.1, 0.3, 0.78390867, 0.3622193, 0.28394685, 0., 0.], + [0.1, 0.7, 0.78390867, 0.35708317, 0.27992059, 0., 0.], + [0.1, 0.5, 0.78390867, 0.32605207, 0.25559504, 0., 0.]]) + result_dict = generate_candidate_proposals(video_list, video_infos, + tem_results_dir, 5, 0.5) + + assert_array_almost_equal(result_dict['v_test1'], assert_result1) + assert_array_almost_equal(result_dict['v_test2'], assert_result2) + + # test with result_dict + result_dict = {} + generate_candidate_proposals( + video_list, + video_infos, + tem_results_dir, + 5, + 0.5, + result_dict=result_dict) + + assert_array_almost_equal(result_dict['v_test1'], assert_result1) + assert_array_almost_equal(result_dict['v_test2'], assert_result2) + + +def test_generate_bsp_feature(): + video_list = [0, 1] + video_infos = [ + dict( + video_name='v_test1', + duration_second=100, + duration_frame=1000, + annotations=[{ + 'segment': [30.0, 60.0], + 'label': 'Rock climbing' + }], + feature_frame=900), + dict( + video_name='v_test2', + duration_second=100, + duration_frame=1000, + annotations=[{ + 'segment': [6.0, 8.0], + 'label': 'Drinking beer' + }], + feature_frame=900) + ] + tem_results_dir = osp.normpath( + osp.join(osp.dirname(__file__), '../data/tem_results')) + pgm_proposals_dir = osp.normpath( + osp.join(osp.dirname(__file__), '../data/proposals')) + + # test when extension is not valid + with pytest.raises(NotImplementedError): + result_dict = generate_bsp_feature( + video_list, + video_infos, + tem_results_dir, + pgm_proposals_dir, + tem_results_ext='unsupport_ext') + + with pytest.raises(NotImplementedError): + result_dict = generate_bsp_feature( + video_list, + video_infos, + tem_results_dir, + pgm_proposals_dir, + pgm_proposal_ext='unsupport_ext') + + # test without result_dict + result_dict = generate_bsp_feature( + video_list, video_infos, tem_results_dir, pgm_proposals_dir, top_k=2) + assert_result1 = np.array( + [[ + 0.02633105, 0.02489364, 0.02345622, 0.0220188, 0.02058138, + 0.01914396, 0.01770654, 0.01626912, 0.01541432, 0.01514214, + 0.01486995, 0.01459776, 0.01432558, 0.01405339, 0.01378121, + 0.01350902, 0.03064331, 0.02941124, 0.02817916, 0.02694709, + 0.02571502, 0.02448295, 0.02325087, 0.0220188, 0.01432558, + 0.01409228, 0.01385897, 0.01362567, 0.01339237, 0.01315907, + 0.01292577, 0.01269246 + ], + [ + 0.01350902, 0.01323684, 0.01296465, 0.01269246, 0.01242028, + 0.01214809, 0.01187591, 0.01160372, 0.01154264, 0.01169266, + 0.01184269, 0.01199271, 0.01214273, 0.01229275, 0.01244278, + 0.0125928, 0.01432558, 0.01409228, 0.01385897, 0.01362567, + 0.01339237, 0.01315907, 0.01292577, 0.01269246, 0.01214273, + 0.01227132, 0.01239991, 0.0125285, 0.0126571, 0.01278569, + 0.01291428, 0.01304287 + ]]) + assert_result2 = np.array( + [[ + 0.04133105, 0.03922697, 0.03712288, 0.0350188, 0.03291471, + 0.03081063, 0.02870654, 0.02660246, 0.02541432, 0.02514214, + 0.02486995, 0.02459776, 0.02432558, 0.02405339, 0.02378121, + 0.02350902, 0.04764331, 0.04583981, 0.04403631, 0.04223281, + 0.0404293, 0.0386258, 0.0368223, 0.0350188, 0.02432558, 0.02409228, + 0.02385897, 0.02362567, 0.02339237, 0.02315907, 0.02292577, + 0.02269246 + ], + [ + 0.02350902, 0.02323684, 0.02296465, 0.02269246, 0.02242028, + 0.02214809, 0.02187591, 0.02160372, 0.02120931, 0.02069266, + 0.02017602, 0.01965937, 0.01914273, 0.01862609, 0.01810944, + 0.0175928, 0.02432558, 0.02409228, 0.02385897, 0.02362567, + 0.02339237, 0.02315907, 0.02292577, 0.02269246, 0.01914273, + 0.01869989, 0.01825706, 0.01781422, 0.01737138, 0.01692854, + 0.0164857, 0.01604287 + ]]) + assert_array_almost_equal(result_dict['v_test1'], assert_result1) + assert_array_almost_equal(result_dict['v_test2'], assert_result2) + + # test with result_dict + result_dict = {} + generate_bsp_feature( + video_list, + video_infos, + tem_results_dir, + pgm_proposals_dir, + top_k=2, + result_dict=result_dict) + assert_array_almost_equal(result_dict['v_test1'], assert_result1) + assert_array_almost_equal(result_dict['v_test2'], assert_result2) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_module_hooks.py b/openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_module_hooks.py new file mode 100644 index 00000000..d77d9e94 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_module_hooks.py @@ -0,0 +1,144 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy +import os.path as osp + +import mmcv +import numpy as np +import pytest +import torch + +from mmaction.models import build_recognizer +from mmaction.utils import register_module_hooks +from mmaction.utils.module_hooks import GPUNormalize +from mmaction.utils.multigrid import LongShortCycleHook + + +def test_register_module_hooks(): + _module_hooks = [ + dict( + type='GPUNormalize', + hooked_module='backbone', + hook_pos='forward_pre', + input_format='NCHW', + mean=[123.675, 116.28, 103.53], + std=[58.395, 57.12, 57.375]) + ] + + repo_dpath = osp.dirname(osp.dirname(osp.dirname(__file__))) + config_fpath = osp.join(repo_dpath, 'configs/_base_/models/tsm_r50.py') + config = mmcv.Config.fromfile(config_fpath) + config.model['backbone']['pretrained'] = None + + # case 1 + module_hooks = copy.deepcopy(_module_hooks) + module_hooks[0]['hook_pos'] = 'forward_pre' + recognizer = build_recognizer(config.model) + handles = register_module_hooks(recognizer, module_hooks) + assert recognizer.backbone._forward_pre_hooks[ + handles[0].id].__name__ == 'normalize_hook' + + # case 2 + module_hooks = copy.deepcopy(_module_hooks) + module_hooks[0]['hook_pos'] = 'forward' + recognizer = build_recognizer(config.model) + handles = register_module_hooks(recognizer, module_hooks) + assert recognizer.backbone._forward_hooks[ + handles[0].id].__name__ == 'normalize_hook' + + # case 3 + module_hooks = copy.deepcopy(_module_hooks) + module_hooks[0]['hooked_module'] = 'cls_head' + module_hooks[0]['hook_pos'] = 'backward' + recognizer = build_recognizer(config.model) + handles = register_module_hooks(recognizer, module_hooks) + assert recognizer.cls_head._backward_hooks[ + handles[0].id].__name__ == 'normalize_hook' + + # case 4 + module_hooks = copy.deepcopy(_module_hooks) + module_hooks[0]['hook_pos'] = '_other_pos' + recognizer = build_recognizer(config.model) + with pytest.raises(ValueError): + handles = register_module_hooks(recognizer, module_hooks) + + # case 5 + module_hooks = copy.deepcopy(_module_hooks) + module_hooks[0]['hooked_module'] = '_other_module' + recognizer = build_recognizer(config.model) + with pytest.raises(ValueError): + handles = register_module_hooks(recognizer, module_hooks) + + +def test_gpu_normalize(): + + def check_normalize(origin_imgs, result_imgs, norm_cfg): + """Check if the origin_imgs are normalized correctly into result_imgs + in a given norm_cfg.""" + from numpy.testing import assert_array_almost_equal + target_imgs = result_imgs.copy() + target_imgs *= norm_cfg['std'] + target_imgs += norm_cfg['mean'] + assert_array_almost_equal(origin_imgs, target_imgs, decimal=4) + + _gpu_normalize_cfg = dict( + input_format='NCTHW', + mean=[123.675, 116.28, 103.53], + std=[58.395, 57.12, 57.375]) + + # case 1 + gpu_normalize_cfg = copy.deepcopy(_gpu_normalize_cfg) + gpu_normalize_cfg['input_format'] = 'NCHW' + gpu_normalize = GPUNormalize(**gpu_normalize_cfg) + assert gpu_normalize._mean.shape == (1, 3, 1, 1) + imgs = np.random.randint(256, size=(2, 240, 320, 3), dtype=np.uint8) + _input = (torch.tensor(imgs).permute(0, 3, 1, 2), ) + normalize_hook = gpu_normalize.hook_func() + _input = normalize_hook(torch.nn.Module, _input) + result_imgs = np.array(_input[0].permute(0, 2, 3, 1)) + check_normalize(imgs, result_imgs, gpu_normalize_cfg) + + # case 2 + gpu_normalize_cfg = copy.deepcopy(_gpu_normalize_cfg) + gpu_normalize_cfg['input_format'] = 'NCTHW' + gpu_normalize = GPUNormalize(**gpu_normalize_cfg) + assert gpu_normalize._mean.shape == (1, 3, 1, 1, 1) + + # case 3 + gpu_normalize_cfg = copy.deepcopy(_gpu_normalize_cfg) + gpu_normalize_cfg['input_format'] = 'NCHW_Flow' + gpu_normalize = GPUNormalize(**gpu_normalize_cfg) + assert gpu_normalize._mean.shape == (1, 3, 1, 1) + + # case 4 + gpu_normalize_cfg = copy.deepcopy(_gpu_normalize_cfg) + gpu_normalize_cfg['input_format'] = 'NPTCHW' + gpu_normalize = GPUNormalize(**gpu_normalize_cfg) + assert gpu_normalize._mean.shape == (1, 1, 1, 3, 1, 1) + + # case 5 + gpu_normalize_cfg = copy.deepcopy(_gpu_normalize_cfg) + gpu_normalize_cfg['input_format'] = '_format' + with pytest.raises(ValueError): + gpu_normalize = GPUNormalize(**gpu_normalize_cfg) + + +def test_multigrid_hook(): + multigrid_cfg = dict(data=dict( + videos_per_gpu=8, + workers_per_gpu=4, + )) + with pytest.raises(AssertionError): + LongShortCycleHook(multigrid_cfg) + + multigrid_cfg = dict( + multigrid=dict( + long_cycle=True, + short_cycle=True, + epoch_factor=1.5, + long_cycle_factors=[[0.25, 0.7071], [0.5, 0.7071], [0.5, 1], + [1, 1]], + short_cycle_factors=[0.5, 0.7071], + default_s=(224, 224), + )) + with pytest.raises(AssertionError): + LongShortCycleHook(multigrid_cfg) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_onnx.py b/openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_onnx.py new file mode 100644 index 00000000..6324ccc3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_onnx.py @@ -0,0 +1,33 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp +import tempfile + +import torch.nn as nn + +from tools.deployment.pytorch2onnx import _convert_batchnorm, pytorch2onnx + + +class TestModel(nn.Module): + + def __init__(self): + super().__init__() + self.conv = nn.Conv3d(1, 2, 1) + self.bn = nn.SyncBatchNorm(2) + + def forward(self, x): + return self.bn(self.conv(x)) + + def forward_dummy(self, x): + out = self.bn(self.conv(x)) + return (out, ) + + +def test_onnx_exporting(): + with tempfile.TemporaryDirectory() as tmpdir: + out_file = osp.join(tmpdir, 'tmp.onnx') + model = TestModel() + model = _convert_batchnorm(model) + # test exporting + if hasattr(model, 'forward_dummy'): + model.forward = model.forward_dummy + pytorch2onnx(model, (2, 1, 1, 1, 1), output_file=out_file, verify=True) diff --git a/openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_setup_env.py b/openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_setup_env.py new file mode 100644 index 00000000..87c2f755 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tests/test_utils/test_setup_env.py @@ -0,0 +1,68 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import multiprocessing as mp +import os +import platform + +import cv2 +from mmcv import Config + +from mmaction.utils import setup_multi_processes + + +def test_setup_multi_processes(): + # temp save system setting + sys_start_mehod = mp.get_start_method(allow_none=True) + sys_cv_threads = cv2.getNumThreads() + # pop and temp save system env vars + sys_omp_threads = os.environ.pop('OMP_NUM_THREADS', default=None) + sys_mkl_threads = os.environ.pop('MKL_NUM_THREADS', default=None) + + # test config without setting env + config = dict(data=dict(workers_per_gpu=2)) + cfg = Config(config) + setup_multi_processes(cfg) + assert os.getenv('OMP_NUM_THREADS') == '1' + assert os.getenv('MKL_NUM_THREADS') == '1' + # when set to 0, the num threads will be 1 + assert cv2.getNumThreads() == 1 + if platform.system() != 'Windows': + assert mp.get_start_method() == 'fork' + + # test num workers <= 1 + os.environ.pop('OMP_NUM_THREADS') + os.environ.pop('MKL_NUM_THREADS') + config = dict(data=dict(workers_per_gpu=0)) + cfg = Config(config) + setup_multi_processes(cfg) + assert 'OMP_NUM_THREADS' not in os.environ + assert 'MKL_NUM_THREADS' not in os.environ + + # test manually set env var + os.environ['OMP_NUM_THREADS'] = '4' + config = dict(data=dict(workers_per_gpu=2)) + cfg = Config(config) + setup_multi_processes(cfg) + assert os.getenv('OMP_NUM_THREADS') == '4' + + # test manually set opencv threads and mp start method + config = dict( + data=dict(workers_per_gpu=2), + opencv_num_threads=4, + mp_start_method='spawn') + cfg = Config(config) + setup_multi_processes(cfg) + assert cv2.getNumThreads() == 4 + assert mp.get_start_method() == 'spawn' + + # revert setting to avoid affecting other programs + if sys_start_mehod: + mp.set_start_method(sys_start_mehod, force=True) + cv2.setNumThreads(sys_cv_threads) + if sys_omp_threads: + os.environ['OMP_NUM_THREADS'] = sys_omp_threads + else: + os.environ.pop('OMP_NUM_THREADS') + if sys_mkl_threads: + os.environ['MKL_NUM_THREADS'] = sys_mkl_threads + else: + os.environ.pop('MKL_NUM_THREADS') diff --git a/openmmlab_test/mmaction2-0.24.1/tools/__init__.py b/openmmlab_test/mmaction2-0.24.1/tools/__init__.py new file mode 100644 index 00000000..fd77cb4c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .analysis import * # noqa: F401, F403 +from .data import * # noqa: F401, F403 +from .deployment import * # noqa: F401, F403 +from .misc import * # noqa: F401, F403 diff --git a/openmmlab_test/mmaction2-0.24.1/tools/analysis/analyze_logs.py b/openmmlab_test/mmaction2-0.24.1/tools/analysis/analyze_logs.py new file mode 100644 index 00000000..4d2ca5b0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/analysis/analyze_logs.py @@ -0,0 +1,167 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import json +from collections import defaultdict + +import matplotlib.pyplot as plt +import numpy as np +import seaborn as sns + + +def cal_train_time(log_dicts, args): + for i, log_dict in enumerate(log_dicts): + print(f'{"-" * 5}Analyze train time of {args.json_logs[i]}{"-" * 5}') + all_times = [] + for epoch in log_dict.keys(): + if args.include_outliers: + all_times.append(log_dict[epoch]['time']) + else: + all_times.append(log_dict[epoch]['time'][1:]) + all_times = np.array(all_times) + epoch_ave_time = all_times.mean(-1) + slowest_epoch = epoch_ave_time.argmax() + fastest_epoch = epoch_ave_time.argmin() + std_over_epoch = epoch_ave_time.std() + print(f'slowest epoch {slowest_epoch + 1}, ' + f'average time is {epoch_ave_time[slowest_epoch]:.4f}') + print(f'fastest epoch {fastest_epoch + 1}, ' + f'average time is {epoch_ave_time[fastest_epoch]:.4f}') + print(f'time std over epochs is {std_over_epoch:.4f}') + print(f'average iter time: {np.mean(all_times):.4f} s/iter') + print() + + +def plot_curve(log_dicts, args): + if args.backend is not None: + plt.switch_backend(args.backend) + sns.set_style(args.style) + # if legend is None, use {filename}_{key} as legend + legend = args.legend + if legend is None: + legend = [] + for json_log in args.json_logs: + for metric in args.keys: + legend.append(f'{json_log}_{metric}') + assert len(legend) == (len(args.json_logs) * len(args.keys)) + metrics = args.keys + + num_metrics = len(metrics) + for i, log_dict in enumerate(log_dicts): + epochs = list(log_dict.keys()) + for j, metric in enumerate(metrics): + print(f'plot curve of {args.json_logs[i]}, metric is {metric}') + if metric not in log_dict[epochs[0]]: + raise KeyError( + f'{args.json_logs[i]} does not contain metric {metric}') + xs = [] + ys = [] + for epoch in epochs: + iters = log_dict[epoch]['iter'] + if log_dict[epoch]['mode'][-1] == 'val': + iters = iters[:-1] + num_iters_per_epoch = iters[-1] + xs.append(np.array(iters) + (epoch - 1) * num_iters_per_epoch) + ys.append(np.array(log_dict[epoch][metric][:len(iters)])) + xs = np.concatenate(xs) + ys = np.concatenate(ys) + plt.xlabel('iter') + plt.plot(xs, ys, label=legend[i * num_metrics + j], linewidth=0.5) + plt.legend() + if args.title is not None: + plt.title(args.title) + if args.out is None: + plt.show() + else: + print(f'save curve to: {args.out}') + plt.savefig(args.out) + plt.cla() + + +def add_plot_parser(subparsers): + parser_plt = subparsers.add_parser( + 'plot_curve', help='parser for plotting curves') + parser_plt.add_argument( + 'json_logs', + type=str, + nargs='+', + help='path of train log in json format') + parser_plt.add_argument( + '--keys', + type=str, + nargs='+', + default=['top1_acc'], + help='the metric that you want to plot') + parser_plt.add_argument('--title', type=str, help='title of figure') + parser_plt.add_argument( + '--legend', + type=str, + nargs='+', + default=None, + help='legend of each plot') + parser_plt.add_argument( + '--backend', type=str, default=None, help='backend of plt') + parser_plt.add_argument( + '--style', type=str, default='dark', help='style of plt') + parser_plt.add_argument('--out', type=str, default=None) + + +def add_time_parser(subparsers): + parser_time = subparsers.add_parser( + 'cal_train_time', + help='parser for computing the average time per training iteration') + parser_time.add_argument( + 'json_logs', + type=str, + nargs='+', + help='path of train log in json format') + parser_time.add_argument( + '--include-outliers', + action='store_true', + help='include the first value of every epoch when computing ' + 'the average time') + + +def parse_args(): + parser = argparse.ArgumentParser(description='Analyze Json Log') + # currently only support plot curve and calculate average train time + subparsers = parser.add_subparsers(dest='task', help='task parser') + add_plot_parser(subparsers) + add_time_parser(subparsers) + args = parser.parse_args() + return args + + +def load_json_logs(json_logs): + # load and convert json_logs to log_dict, key is epoch, value is a sub dict + # keys of sub dict is different metrics, e.g. memory, top1_acc + # value of sub dict is a list of corresponding values of all iterations + log_dicts = [dict() for _ in json_logs] + for json_log, log_dict in zip(json_logs, log_dicts): + with open(json_log, 'r') as log_file: + for line in log_file: + log = json.loads(line.strip()) + # skip lines without `epoch` field + if 'epoch' not in log: + continue + epoch = log.pop('epoch') + if epoch not in log_dict: + log_dict[epoch] = defaultdict(list) + for k, v in log.items(): + log_dict[epoch][k].append(v) + return log_dicts + + +def main(): + args = parse_args() + + json_logs = args.json_logs + for json_log in json_logs: + assert json_log.endswith('.json') + + log_dicts = load_json_logs(json_logs) + + eval(args.task)(log_dicts, args) + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/analysis/bench_processing.py b/openmmlab_test/mmaction2-0.24.1/tools/analysis/bench_processing.py new file mode 100644 index 00000000..df90899d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/analysis/bench_processing.py @@ -0,0 +1,65 @@ +# Copyright (c) OpenMMLab. All rights reserved. +"""This file is for benchmark dataloading process. The command line to run this +file is: + +$ python -m cProfile -o program.prof tools/analysis/bench_processing.py +configs/task/method/[config filename] + +It use cProfile to record cpu running time and output to program.prof +To visualize cProfile output program.prof, use Snakeviz and run: +$ snakeviz program.prof +""" +import argparse +import os + +import mmcv +from mmcv import Config + +from mmaction import __version__ +from mmaction.datasets import build_dataloader, build_dataset +from mmaction.utils import get_root_logger + + +def main(): + parser = argparse.ArgumentParser(description='Benchmark dataloading') + parser.add_argument('config', help='train config file path') + args = parser.parse_args() + cfg = Config.fromfile(args.config) + + # init logger before other steps + logger = get_root_logger() + logger.info(f'MMAction2 Version: {__version__}') + logger.info(f'Config: {cfg.text}') + + # create bench data list + ann_file_bench = 'benchlist.txt' + if not os.path.exists(ann_file_bench): + with open(cfg.ann_file_train) as f: + lines = f.readlines()[:256] + with open(ann_file_bench, 'w') as f1: + f1.writelines(lines) + cfg.data.train.ann_file = ann_file_bench + + dataset = build_dataset(cfg.data.train) + data_loader = build_dataloader( + dataset, + videos_per_gpu=cfg.data.videos_per_gpu, + workers_per_gpu=0, + persistent_workers=False, + num_gpus=1, + dist=False) + + # Start progress bar after first 5 batches + prog_bar = mmcv.ProgressBar( + len(dataset) - 5 * cfg.data.videos_per_gpu, start=False) + for i, data in enumerate(data_loader): + if i == 5: + prog_bar.start() + for _ in data['imgs']: + if i < 5: + continue + prog_bar.update() + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/analysis/benchmark.py b/openmmlab_test/mmaction2-0.24.1/tools/analysis/benchmark.py new file mode 100644 index 00000000..8e97a3b2 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/analysis/benchmark.py @@ -0,0 +1,94 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import time + +import torch +from mmcv import Config +from mmcv.cnn import fuse_conv_bn +from mmcv.parallel import MMDataParallel +from mmcv.runner.fp16_utils import wrap_fp16_model + +from mmaction.datasets import build_dataloader, build_dataset +from mmaction.models import build_model + + +def parse_args(): + parser = argparse.ArgumentParser( + description='MMAction2 benchmark a recognizer') + parser.add_argument('config', help='test config file path') + parser.add_argument( + '--log-interval', default=10, help='interval of logging') + parser.add_argument( + '--fuse-conv-bn', + action='store_true', + help='Whether to fuse conv and bn, this will slightly increase' + 'the inference speed') + args = parser.parse_args() + return args + + +def main(): + args = parse_args() + + cfg = Config.fromfile(args.config) + # set cudnn_benchmark + if cfg.get('cudnn_benchmark', False): + torch.backends.cudnn.benchmark = True + cfg.model.backbone.pretrained = None + cfg.data.test.test_mode = True + + # build the dataloader + dataset = build_dataset(cfg.data.test, dict(test_mode=True)) + data_loader = build_dataloader( + dataset, + videos_per_gpu=1, + workers_per_gpu=cfg.data.workers_per_gpu, + persistent_workers=cfg.data.get('persistent_workers', False), + dist=False, + shuffle=False) + + # build the model and load checkpoint + model = build_model( + cfg.model, train_cfg=None, test_cfg=cfg.get('test_cfg')) + fp16_cfg = cfg.get('fp16', None) + if fp16_cfg is not None: + wrap_fp16_model(model) + if args.fuse_conv_bn: + model = fuse_conv_bn(model) + + model = MMDataParallel(model, device_ids=[0]) + + model.eval() + + # the first several iterations may be very slow so skip them + num_warmup = 5 + pure_inf_time = 0 + + # benchmark with 2000 video and take the average + for i, data in enumerate(data_loader): + + torch.cuda.synchronize() + start_time = time.perf_counter() + + with torch.no_grad(): + model(return_loss=False, **data) + + torch.cuda.synchronize() + elapsed = time.perf_counter() - start_time + + if i >= num_warmup: + pure_inf_time += elapsed + if (i + 1) % args.log_interval == 0: + fps = (i + 1 - num_warmup) / pure_inf_time + print( + f'Done video [{i + 1:<3}/ 2000], fps: {fps:.1f} video / s') + + if (i + 1) == 200: + pure_inf_time += elapsed + fps = (i + 1 - num_warmup) / pure_inf_time + print(f'Overall fps: {fps:.1f} video / s') + break + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/analysis/check_videos.py b/openmmlab_test/mmaction2-0.24.1/tools/analysis/check_videos.py new file mode 100644 index 00000000..d2b45761 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/analysis/check_videos.py @@ -0,0 +1,158 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import os +import warnings +from functools import partial +from multiprocessing import Manager, Pool, cpu_count + +import mmcv +import numpy as np +from mmcv import Config, DictAction + +from mmaction.datasets import PIPELINES, build_dataset + + +def parse_args(): + parser = argparse.ArgumentParser(description='MMAction2 check datasets') + parser.add_argument('config', help='test config file path') + parser.add_argument( + '--options', + nargs='+', + action=DictAction, + default={}, + help='custom options for evaluation, the key-value pair in xxx=yyy ' + 'format will be kwargs for dataset.evaluate() function (deprecate), ' + 'change to --eval-options instead.') + parser.add_argument( + '--cfg-options', + nargs='+', + action=DictAction, + default={}, + help='override some settings in the used config, the key-value pair ' + 'in xxx=yyy format will be merged into config file. For example, ' + "'--cfg-options model.backbone.depth=18 model.backbone.with_cp=True'") + parser.add_argument( + '--output-file', + default='invalid-video.txt', + help='Output file path which keeps corrupted/missing video file paths') + parser.add_argument( + '--split', + default='train', + choices=['train', 'val', 'test'], + help='Dataset split') + parser.add_argument( + '--decoder', + default='decord', + choices=['decord', 'opencv', 'pyav'], + help='Video decoder type, should be one of [decord, opencv, pyav]') + parser.add_argument( + '--num-processes', + type=int, + default=(cpu_count() - 1 or 1), + help='Number of processes to check videos') + parser.add_argument( + '--remove-corrupted-videos', + action='store_true', + help='Whether to delete all corrupted videos') + args = parser.parse_args() + + if args.options and args.eval_options: + raise ValueError( + '--options and --eval-options cannot be both ' + 'specified, --options is deprecated in favor of --eval-options') + if args.options: + warnings.warn('--options is deprecated in favor of --eval-options') + args.eval_options = args.options + return args + + +@PIPELINES.register_module() +class RandomSampleFrames: + + def __call__(self, results): + """Select frames to verify. + + Select the first, last and three random frames, Required key is + "total_frames", added or modified key is "frame_inds". + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + assert results['total_frames'] > 0 + + # first and last frames + results['frame_inds'] = np.array([0, results['total_frames'] - 1]) + + # choose 3 random frames + if results['total_frames'] > 2: + results['frame_inds'] = np.concatenate([ + results['frame_inds'], + np.random.randint(1, results['total_frames'] - 1, 3) + ]) + + return results + + +def _do_check_videos(lock, dataset, output_file, idx): + try: + dataset[idx] + except: # noqa + # save invalid video path to output file + lock.acquire() + with open(output_file, 'a') as f: + f.write(dataset.video_infos[idx]['filename'] + '\n') + lock.release() + + +if __name__ == '__main__': + args = parse_args() + + decoder_to_pipeline_prefix = dict( + decord='Decord', opencv='OpenCV', pyav='PyAV') + + # read config file + cfg = Config.fromfile(args.config) + cfg.merge_from_dict(args.cfg_options) + + # build dataset + dataset_type = cfg.data[args.split].type + assert dataset_type == 'VideoDataset' + cfg.data[args.split].pipeline = [ + dict(type=decoder_to_pipeline_prefix[args.decoder] + 'Init'), + dict(type='RandomSampleFrames'), + dict(type=decoder_to_pipeline_prefix[args.decoder] + 'Decode') + ] + dataset = build_dataset(cfg.data[args.split], + dict(test_mode=(args.split != 'train'))) + + # prepare for checking + if os.path.exists(args.output_file): + # remove existing output file + os.remove(args.output_file) + pool = Pool(args.num_processes) + lock = Manager().Lock() + worker_fn = partial(_do_check_videos, lock, dataset, args.output_file) + ids = range(len(dataset)) + + # start checking + prog_bar = mmcv.ProgressBar(len(dataset)) + for _ in pool.imap_unordered(worker_fn, ids): + prog_bar.update() + pool.close() + pool.join() + + if os.path.exists(args.output_file): + num_lines = sum(1 for _ in open(args.output_file)) + print(f'Checked {len(dataset)} videos, ' + f'{num_lines} are corrupted/missing.') + if args.remove_corrupted_videos: + print('Start deleting corrupted videos') + cnt = 0 + with open(args.output_file, 'r') as f: + for line in f: + if os.path.exists(line.strip()): + os.remove(line.strip()) + cnt += 1 + print(f'Deleted {cnt} corrupted videos.') + else: + print(f'Checked {len(dataset)} videos, none are corrupted/missing') diff --git a/openmmlab_test/mmaction2-0.24.1/tools/analysis/eval_metric.py b/openmmlab_test/mmaction2-0.24.1/tools/analysis/eval_metric.py new file mode 100644 index 00000000..7841a4cb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/analysis/eval_metric.py @@ -0,0 +1,66 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse + +import mmcv +from mmcv import Config, DictAction + +from mmaction.datasets import build_dataset + + +def parse_args(): + parser = argparse.ArgumentParser(description='Evaluate metric of the ' + 'results saved in pkl/yaml/json format') + parser.add_argument('config', help='Config of the model') + parser.add_argument('results', help='Results in pkl/yaml/json format') + parser.add_argument( + '--eval', + type=str, + nargs='+', + help='evaluation metrics, which depends on the dataset, e.g.,' + ' "top_k_accuracy", "mean_class_accuracy" for video dataset') + parser.add_argument( + '--cfg-options', + nargs='+', + action=DictAction, + default={}, + help='override some settings in the used config, the key-value pair ' + 'in xxx=yyy format will be merged into config file. For example, ' + "'--cfg-options model.backbone.depth=18 model.backbone.with_cp=True'") + parser.add_argument( + '--eval-options', + nargs='+', + action=DictAction, + help='custom options for evaluation, the key-value pair in xxx=yyy ' + 'format will be kwargs for dataset.evaluate() function') + args = parser.parse_args() + return args + + +def main(): + args = parse_args() + + cfg = Config.fromfile(args.config) + + assert args.eval is not None + + if args.cfg_options is not None: + cfg.merge_from_dict(args.cfg_options) + cfg.data.test.test_mode = True + + dataset = build_dataset(cfg.data.test) + outputs = mmcv.load(args.results) + + kwargs = {} if args.eval_options is None else args.eval_options + eval_kwargs = cfg.get('evaluation', {}).copy() + # hard-code way to remove EvalHook args + for key in [ + 'interval', 'tmpdir', 'start', 'gpu_collect', 'save_best', 'rule', + 'by_epoch' + ]: + eval_kwargs.pop(key, None) + eval_kwargs.update(dict(metrics=args.eval, **kwargs)) + print(dataset.evaluate(outputs, **eval_kwargs)) + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/analysis/get_flops.py b/openmmlab_test/mmaction2-0.24.1/tools/analysis/get_flops.py new file mode 100644 index 00000000..d4c8e973 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/analysis/get_flops.py @@ -0,0 +1,73 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse + +from mmcv import Config + +from mmaction.models import build_recognizer + +try: + from mmcv.cnn import get_model_complexity_info +except ImportError: + raise ImportError('Please upgrade mmcv to >0.6.2') + + +def parse_args(): + parser = argparse.ArgumentParser(description='Train a recognizer') + parser.add_argument('config', help='train config file path') + parser.add_argument( + '--shape', + type=int, + nargs='+', + default=[340, 256], + help='input image size') + args = parser.parse_args() + return args + + +def main(): + + args = parse_args() + + if len(args.shape) == 1: + input_shape = (1, 3, args.shape[0], args.shape[0]) + elif len(args.shape) == 2: + input_shape = ( + 1, + 3, + ) + tuple(args.shape) + elif len(args.shape) == 4: + # n, c, h, w = args.shape + input_shape = tuple(args.shape) + elif len(args.shape) == 5: + # n, c, t, h, w = args.shape + input_shape = tuple(args.shape) + else: + raise ValueError('invalid input shape') + + cfg = Config.fromfile(args.config) + model = build_recognizer( + cfg.model, + train_cfg=cfg.get('train_cfg'), + test_cfg=cfg.get('test_cfg')) + + model = model.cuda() + model.eval() + + if hasattr(model, 'forward_dummy'): + model.forward = model.forward_dummy + else: + raise NotImplementedError( + 'FLOPs counter is currently not currently supported with {}'. + format(model.__class__.__name__)) + + flops, params = get_model_complexity_info(model, input_shape) + split_line = '=' * 30 + print(f'{split_line}\nInput shape: {input_shape}\n' + f'Flops: {flops}\nParams: {params}\n{split_line}') + print('!!!Please be cautious if you use the results in papers. ' + 'You may need to check if all ops are supported and verify that the ' + 'flops computation is correct.') + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/analysis/print_config.py b/openmmlab_test/mmaction2-0.24.1/tools/analysis/print_config.py new file mode 100644 index 00000000..c3538ef5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/analysis/print_config.py @@ -0,0 +1,27 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse + +from mmcv import Config, DictAction + + +def parse_args(): + parser = argparse.ArgumentParser(description='Print the whole config') + parser.add_argument('config', help='config file path') + parser.add_argument( + '--options', nargs='+', action=DictAction, help='arguments in dict') + args = parser.parse_args() + + return args + + +def main(): + args = parse_args() + + cfg = Config.fromfile(args.config) + if args.options is not None: + cfg.merge_from_dict(args.options) + print(f'Config:\n{cfg.pretty_text}') + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/analysis/report_accuracy.py b/openmmlab_test/mmaction2-0.24.1/tools/analysis/report_accuracy.py new file mode 100644 index 00000000..329434d1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/analysis/report_accuracy.py @@ -0,0 +1,57 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse + +from mmcv import load +from scipy.special import softmax + +from mmaction.core.evaluation import (get_weighted_score, mean_class_accuracy, + top_k_accuracy) + + +def parse_args(): + parser = argparse.ArgumentParser(description='Fusing multiple scores') + parser.add_argument( + '--scores', + nargs='+', + help='list of scores', + default=['demo/fuse/rgb.pkl', 'demo/fuse/flow.pkl']) + parser.add_argument( + '--coefficients', + nargs='+', + type=float, + help='coefficients of each score file', + default=[1.0, 1.0]) + parser.add_argument( + '--datalist', + help='list of testing data', + default='demo/fuse/data_list.txt') + parser.add_argument('--apply-softmax', action='store_true') + args = parser.parse_args() + return args + + +def main(): + args = parse_args() + assert len(args.scores) == len(args.coefficients) + score_list = args.scores + score_list = [load(f) for f in score_list] + if args.apply_softmax: + + def apply_softmax(scores): + return [softmax(score) for score in scores] + + score_list = [apply_softmax(scores) for scores in score_list] + + weighted_scores = get_weighted_score(score_list, args.coefficients) + data = open(args.datalist).readlines() + labels = [int(x.strip().split()[-1]) for x in data] + + mean_class_acc = mean_class_accuracy(weighted_scores, labels) + top_1_acc, top_5_acc = top_k_accuracy(weighted_scores, labels, (1, 5)) + print(f'Mean Class Accuracy: {mean_class_acc:.04f}') + print(f'Top 1 Accuracy: {top_1_acc:.04f}') + print(f'Top 5 Accuracy: {top_5_acc:.04f}') + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/analysis/report_map.py b/openmmlab_test/mmaction2-0.24.1/tools/analysis/report_map.py new file mode 100644 index 00000000..2aa46a1c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/analysis/report_map.py @@ -0,0 +1,87 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import os +import os.path as osp + +import mmcv +import numpy as np + +from mmaction.core import ActivityNetLocalization + +args = None + + +def cuhk17_top1(): + """Assign label for each proposal with the cuhk17 result, which is the #2 + entry in http://activity-net.org/challenges/2017/evaluation.html.""" + if not osp.exists('cuhk_anet17_pred.json'): + os.system('wget https://download.openmmlab.com/' + 'mmaction/localization/cuhk_anet17_pred.json') + proposal = mmcv.load(args.proposal) + results = proposal['results'] + cuhk_pred = mmcv.load('cuhk_anet17_pred.json')['results'] + + def get_topk(preds, k): + preds.sort(key=lambda x: x['score']) + return preds[-k:] + + for k, v in results.items(): + action_pred = cuhk_pred[k] + top1 = get_topk(action_pred, 1) + top1_label = top1[0]['label'] + new_value = [] + for item in v: + x = dict(label=top1_label) + x.update(item) + new_value.append(x) + results[k] = new_value + proposal['results'] = results + mmcv.dump(proposal, args.det_output) + + +cls_funcs = {'cuhk17_top1': cuhk17_top1} + + +def parse_args(): + parser = argparse.ArgumentParser(description='Report detection mAP for' + 'ActivityNet proposal file') + parser.add_argument('--proposal', type=str, help='proposal file') + parser.add_argument( + '--gt', + type=str, + default='data/ActivityNet/' + 'anet_anno_val.json', + help='groundtruth file') + parser.add_argument( + '--cls', + type=str, + default='cuhk17_top1', + choices=['cuhk17_top1'], + help='the way to assign label for each ' + 'proposal') + parser.add_argument( + '--det-output', + type=str, + default='det_result.json', + help='the path to store detection results') + args = parser.parse_args() + return args + + +def main(): + global args, cls_funcs + args = parse_args() + func = cls_funcs[args.cls] + func() + anet_detection = ActivityNetLocalization( + args.gt, + args.det_output, + tiou_thresholds=np.linspace(0.5, 0.95, 10), + verbose=True) + mAP, average_mAP = anet_detection.evaluate() + print('[RESULTS] Performance on ActivityNet detection task.\n' + f'mAP: {mAP}\nAverage-mAP: {average_mAP}') + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/argparse.bash b/openmmlab_test/mmaction2-0.24.1/tools/argparse.bash new file mode 100644 index 00000000..4e034cdc --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/argparse.bash @@ -0,0 +1,103 @@ +#!/usr/bin/env bash + +# Use python's argparse module in shell scripts +# +# The function `argparse` parses its arguments using +# argparse.ArgumentParser; the parser is defined in the function's +# stdin. +# +# Executing ``argparse.bash`` (as opposed to sourcing it) prints a +# script template. +# +# https://github.com/nhoffman/argparse-bash +# MIT License - Copyright (c) 2015 Noah Hoffman +# +# The MIT License (MIT) +# +# Copyright (c) 2015 Noah Hoffman +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +argparse(){ + argparser=$(mktemp 2>/dev/null || mktemp -t argparser) + cat > "$argparser" <> "$argparser" + + cat >> "$argparser" < /dev/null; then + eval $(python "$argparser" "$@") + retval=0 + else + python "$argparser" "$@" + retval=1 + fi + + rm "$argparser" + return $retval +} + +# print a script template when this script is executed +if [[ $0 == *argparse.bash ]]; then + cat < + +```BibTeX +@article{Heilbron2015ActivityNetAL, + title={ActivityNet: A large-scale video benchmark for human activity understanding}, + author={Fabian Caba Heilbron and Victor Escorcia and Bernard Ghanem and Juan Carlos Niebles}, + journal={2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, + year={2015}, + pages={961-970} +} +``` + +For basic dataset information, please refer to the official [website](http://activity-net.org/). +For action detection, you can either use the ActivityNet rescaled feature provided in this [repo](https://github.com/wzmsltw/BSN-boundary-sensitive-network#code-and-data-preparation) or extract feature with mmaction2 (which has better performance). +We release both pipeline. +Before we start, please make sure that current working directory is `$MMACTION2/tools/data/activitynet/`. + +## Option 1: Use the ActivityNet rescaled feature provided in this [repo](https://github.com/wzmsltw/BSN-boundary-sensitive-network#code-and-data-preparation) + +### Step 1. Download Annotations + +First of all, you can run the following script to download annotation files. + +```shell +bash download_feature_annotations.sh +``` + +### Step 2. Prepare Videos Features + +Then, you can run the following script to download activitynet features. + +```shell +bash download_features.sh +``` + +### Step 3. Process Annotation Files + +Next, you can run the following script to process the downloaded annotation files for training and testing. +It first merges the two annotation files together and then separates the annoations by `train`, `val` and `test`. + +```shell +python process_annotations.py +``` + +## Option 2: Extract ActivityNet feature using MMAction2 with all videos provided in official [website](http://activity-net.org/) + +### Step 1. Download Annotations + +First of all, you can run the following script to download annotation files. + +```shell +bash download_annotations.sh +``` + +### Step 2. Prepare Videos + +Then, you can run the following script to prepare videos. +The codes are adapted from the [official crawler](https://github.com/activitynet/ActivityNet/tree/master/Crawler/Kinetics). Note that this might take a long time. + +```shell +bash download_videos.sh +``` + +Since some videos in the ActivityNet dataset might be no longer available on YouTube, official [website](http://activity-net.org/) has made the full dataset available on Google and Baidu drives. +To accommodate missing data requests, you can fill in this [request form](https://docs.google.com/forms/d/e/1FAIpQLSeKaFq9ZfcmZ7W0B0PbEhfbTHY41GeEgwsa7WobJgGUhn4DTQ/viewform) provided in official [download page](http://activity-net.org/download.html) to have a 7-day-access to download the videos from the drive folders. + +We also provide download steps for annotations from [BSN repo](https://github.com/wzmsltw/BSN-boundary-sensitive-network#code-and-data-preparation) + +```shell +bash download_bsn_videos.sh +``` + +For this case, the downloading scripts update the annotation file after downloading to make sure every video in it exists. + +### Step 3. Extract RGB and Flow + +Before extracting, please refer to [install.md](/docs/install.md) for installing [denseflow](https://github.com/open-mmlab/denseflow). + +Use following scripts to extract both RGB and Flow. + +```shell +bash extract_frames.sh +``` + +The command above can generate images with new short edge 256. If you want to generate images with short edge 320 (320p), or with fix size 340x256, you can change the args `--new-short 256` to `--new-short 320` or `--new-width 340 --new-height 256`. +More details can be found in [data_preparation](/docs/data_preparation.md) + +### Step 4. Generate File List for ActivityNet Finetuning + +With extracted frames, you can generate video-level or clip-level lists of rawframes, which can be used for ActivityNet Finetuning. + +```shell +python generate_rawframes_filelist.py +``` + +### Step 5. Finetune TSN models on ActivityNet + +You can use ActivityNet configs in `configs/recognition/tsn` to finetune TSN models on ActivityNet. +You need to use Kinetics models for pretraining. +Both RGB models and Flow models are supported. + +### Step 6. Extract ActivityNet Feature with finetuned ckpts + +After finetuning TSN on ActivityNet, you can use it to extract both RGB and Flow feature. + +```shell +python tsn_feature_extraction.py --data-prefix ../../../data/ActivityNet/rawframes --data-list ../../../data/ActivityNet/anet_train_video.txt --output-prefix ../../../data/ActivityNet/rgb_feat --modality RGB --ckpt /path/to/rgb_checkpoint.pth + +python tsn_feature_extraction.py --data-prefix ../../../data/ActivityNet/rawframes --data-list ../../../data/ActivityNet/anet_val_video.txt --output-prefix ../../../data/ActivityNet/rgb_feat --modality RGB --ckpt /path/to/rgb_checkpoint.pth + +python tsn_feature_extraction.py --data-prefix ../../../data/ActivityNet/rawframes --data-list ../../../data/ActivityNet/anet_train_video.txt --output-prefix ../../../data/ActivityNet/flow_feat --modality Flow --ckpt /path/to/flow_checkpoint.pth + +python tsn_feature_extraction.py --data-prefix ../../../data/ActivityNet/rawframes --data-list ../../../data/ActivityNet/anet_val_video.txt --output-prefix ../../../data/ActivityNet/flow_feat --modality Flow --ckpt /path/to/flow_checkpoint.pth +``` + +After feature extraction, you can use our post processing scripts to concat RGB and Flow feature, generate the `100-t X 400-d` feature for Action Detection. + +```shell +python activitynet_feature_postprocessing.py --rgb ../../../data/ActivityNet/rgb_feat --flow ../../../data/ActivityNet/flow_feat --dest ../../../data/ActivityNet/mmaction_feat +``` + +## Final Step. Check Directory Structure + +After the whole data pipeline for ActivityNet preparation, +you will get the features, videos, frames and annotation files. + +In the context of the whole project (for ActivityNet only), the folder structure will look like: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── ActivityNet + +(if Option 1 used) +│ │ ├── anet_anno_{train,val,test,full}.json +│ │ ├── anet_anno_action.json +│ │ ├── video_info_new.csv +│ │ ├── activitynet_feature_cuhk +│ │ │ ├── csv_mean_100 +│ │ │ │ ├── v___c8enCfzqw.csv +│ │ │ │ ├── v___dXUJsj3yo.csv +│ │ │ | ├── .. + +(if Option 2 used) +│ │ ├── anet_train_video.txt +│ │ ├── anet_val_video.txt +│ │ ├── anet_train_clip.txt +│ │ ├── anet_val_clip.txt +│ │ ├── activity_net.v1-3.min.json +│ │ ├── mmaction_feat +│ │ │ ├── v___c8enCfzqw.csv +│ │ │ ├── v___dXUJsj3yo.csv +│ │ │ ├── .. +│ │ ├── rawframes +│ │ │ ├── v___c8enCfzqw +│ │ │ │ ├── img_00000.jpg +│ │ │ │ ├── flow_x_00000.jpg +│ │ │ │ ├── flow_y_00000.jpg +│ │ │ │ ├── .. +│ │ │ ├── .. + +``` + +For training and evaluating on ActivityNet, please refer to [getting_started.md](/docs/getting_started.md). diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/README_zh-CN.md new file mode 100644 index 00000000..7687b948 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/README_zh-CN.md @@ -0,0 +1,169 @@ +# 准备 ActivityNet + +## 简介 + + + +```BibTeX +@article{Heilbron2015ActivityNetAL, + title={ActivityNet: A large-scale video benchmark for human activity understanding}, + author={Fabian Caba Heilbron and Victor Escorcia and Bernard Ghanem and Juan Carlos Niebles}, + journal={2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, + year={2015}, + pages={961-970} +} +``` + +用户可参考该数据集的 [官网](http://activity-net.org/),以获取数据集相关的基本信息。 +对于时序动作检测任务,用户可以使用这个 [代码库](https://github.com/wzmsltw/BSN-boundary-sensitive-network#code-and-data-preparation) 提供的缩放过(rescaled)的 ActivityNet 特征, +或者使用 MMAction2 进行特征提取(这将具有更高的精度)。MMAction2 同时提供了以上所述的两种数据使用流程。 +在数据集准备前,请确保命令行当前路径为 `$MMACTION2/tools/data/activitynet/`。 + +## 选项 1:用户可以使用这个 [代码库](https://github.com/wzmsltw/BSN-boundary-sensitive-network#code-and-data-preparation) 提供的特征 + +### 步骤 1. 下载标注文件 + +首先,用户可以使用以下命令下载标注文件。 + +```shell +bash download_feature_annotations.sh +``` + +### 步骤 2. 准备视频特征 + +之后,用户可以使用以下命令下载 ActivityNet 特征。 + +```shell +bash download_features.sh +``` + +### 步骤 3. 处理标注文件 + +之后,用户可以使用以下命令处理下载的标注文件,以便于训练和测试。 +该脚本会首先合并两个标注文件,然后再将其分为 `train`, `val` 和 `test` 三个部分。 + +```shell +python process_annotations.py +``` + +## 选项 2:使用 MMAction2 对 [官网](http://activity-net.org/) 提供的视频进行特征抽取 + +### 步骤 1. 下载标注文件 + +首先,用户可以使用以下命令下载标注文件。 + +```shell +bash download_annotations.sh +``` + +### 步骤 2. 准备视频 + +之后,用户可以使用以下脚本准备视频数据。 +该代码参考自 [官方爬虫](https://github.com/activitynet/ActivityNet/tree/master/Crawler/Kinetics),该过程将会耗费较多时间。 + +```shell +bash download_videos.sh +``` + +由于 ActivityNet 数据集中的一些视频已经在 YouTube 失效,[官网](http://activity-net.org/) 在谷歌网盘和百度网盘提供了完整的数据集数据。 +如果用户想要获取失效的数据集,则需要填写 [下载页面](http://activity-net.org/download.html) 中提供的 [需求表格](https://docs.google.com/forms/d/e/1FAIpQLSeKaFq9ZfcmZ7W0B0PbEhfbTHY41GeEgwsa7WobJgGUhn4DTQ/viewform) 以获取 7 天的下载权限。 + +MMAction2 同时也提供了 [BSN 代码库](https://github.com/wzmsltw/BSN-boundary-sensitive-network#code-and-data-preparation) 的标注文件的下载步骤。 + +```shell +bash download_bsn_videos.sh +``` + +对于这种情况,该下载脚本将在下载后更新此标注文件,以确保每个视频都存在。 + +### 步骤 3. 抽取 RGB 帧和光流 + +在抽取视频帧和光流之前,请参考 [安装指南](/docs_zh_CN/install.md) 安装 [denseflow](https://github.com/open-mmlab/denseflow)。 + +可使用以下命令抽取视频帧和光流。 + +```shell +bash extract_frames.sh +``` + +以上脚本将会生成短边 256 分辨率的视频。如果用户想生成短边 320 分辨率的视频(即 320p),或者 340x256 的固定分辨率,用户可以通过改变参数由 `--new-short 256` 至 `--new-short 320`,或者 `--new-width 340 --new-height 256` 进行设置 +更多细节可参考 [数据准备指南](/docs_zh_CN/data_preparation.md) + +### 步骤 4. 生成用于 ActivityNet 微调的文件列表 + +根据抽取的帧,用户可以生成视频级别(video-level)或者片段级别(clip-level)的文件列表,其可用于微调 ActivityNet。 + +```shell +python generate_rawframes_filelist.py +``` + +### 步骤 5. 在 ActivityNet 上微调 TSN 模型 + +用户可使用 `configs/recognition/tsn` 目录中的 ActivityNet 配置文件进行 TSN 模型微调。 +用户需要使用 Kinetics 相关模型(同时支持 RGB 模型与光流模型)进行预训练。 + +### 步骤 6. 使用预训练模型进行 ActivityNet 特征抽取 + +在 ActivityNet 上微调 TSN 模型之后,用户可以使用该模型进行 RGB 特征和光流特征的提取。 + +```shell +python tsn_feature_extraction.py --data-prefix ../../../data/ActivityNet/rawframes --data-list ../../../data/ActivityNet/anet_train_video.txt --output-prefix ../../../data/ActivityNet/rgb_feat --modality RGB --ckpt /path/to/rgb_checkpoint.pth + +python tsn_feature_extraction.py --data-prefix ../../../data/ActivityNet/rawframes --data-list ../../../data/ActivityNet/anet_val_video.txt --output-prefix ../../../data/ActivityNet/rgb_feat --modality RGB --ckpt /path/to/rgb_checkpoint.pth + +python tsn_feature_extraction.py --data-prefix ../../../data/ActivityNet/rawframes --data-list ../../../data/ActivityNet/anet_train_video.txt --output-prefix ../../../data/ActivityNet/flow_feat --modality Flow --ckpt /path/to/flow_checkpoint.pth + +python tsn_feature_extraction.py --data-prefix ../../../data/ActivityNet/rawframes --data-list ../../../data/ActivityNet/anet_val_video.txt --output-prefix ../../../data/ActivityNet/flow_feat --modality Flow --ckpt /path/to/flow_checkpoint.pth +``` + +在提取完特征后,用户可以使用后处理脚本整合 RGB 特征和光流特征,生成 `100-t X 400-d` 维度的特征用于时序动作检测。 + +```shell +python activitynet_feature_postprocessing.py --rgb ../../../data/ActivityNet/rgb_feat --flow ../../../data/ActivityNet/flow_feat --dest ../../../data/ActivityNet/mmaction_feat +``` + +## 最后一步:检查文件夹结构 + +在完成所有 ActivityNet 数据集准备流程后,用户可以获得对应的特征文件,RGB + 光流文件,视频文件以及标注文件。 + +在整个 MMAction2 文件夹下,ActivityNet 的文件结构如下: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── ActivityNet + +(若根据选项 1 进行数据处理) +│ │ ├── anet_anno_{train,val,test,full}.json +│ │ ├── anet_anno_action.json +│ │ ├── video_info_new.csv +│ │ ├── activitynet_feature_cuhk +│ │ │ ├── csv_mean_100 +│ │ │ │ ├── v___c8enCfzqw.csv +│ │ │ │ ├── v___dXUJsj3yo.csv +│ │ │ | ├── .. + +(若根据选项 2 进行数据处理) +│ │ ├── anet_train_video.txt +│ │ ├── anet_val_video.txt +│ │ ├── anet_train_clip.txt +│ │ ├── anet_val_clip.txt +│ │ ├── activity_net.v1-3.min.json +│ │ ├── mmaction_feat +│ │ │ ├── v___c8enCfzqw.csv +│ │ │ ├── v___dXUJsj3yo.csv +│ │ │ ├── .. +│ │ ├── rawframes +│ │ │ ├── v___c8enCfzqw +│ │ │ │ ├── img_00000.jpg +│ │ │ │ ├── flow_x_00000.jpg +│ │ │ │ ├── flow_y_00000.jpg +│ │ │ │ ├── .. +│ │ │ ├── .. + +``` + +关于对 ActivityNet 进行训练和验证,可以参考 [基础教程](/docs_zh_CN/getting_started.md). diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/action_name.csv b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/action_name.csv new file mode 100644 index 00000000..5f5fe1d9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/action_name.csv @@ -0,0 +1,201 @@ +action +Applying sunscreen +Arm wrestling +Assembling bicycle +BMX +Baking cookies +Baton twirling +Beach soccer +Beer pong +Blow-drying hair +Blowing leaves +Playing ten pins +Braiding hair +Building sandcastles +Bullfighting +Calf roping +Camel ride +Canoeing +Capoeira +Carving jack-o-lanterns +Changing car wheel +Cleaning sink +Clipping cat claws +Croquet +Curling +Cutting the grass +Decorating the Christmas tree +Disc dog +Doing a powerbomb +Doing crunches +Drum corps +Elliptical trainer +Doing fencing +Fixing the roof +Fun sliding down +Futsal +Gargling mouthwash +Grooming dog +Hand car wash +Hanging wallpaper +Having an ice cream +Hitting a pinata +Hula hoop +Hurling +Ice fishing +Installing carpet +Kite flying +Kneeling +Knitting +Laying tile +Longboarding +Making a cake +Making a lemonade +Making an omelette +Mooping floor +Painting fence +Painting furniture +Peeling potatoes +Plastering +Playing beach volleyball +Playing blackjack +Playing congas +Playing drums +Playing ice hockey +Playing pool +Playing rubik cube +Powerbocking +Putting in contact lenses +Putting on shoes +Rafting +Raking leaves +Removing ice from car +Riding bumper cars +River tubing +Rock-paper-scissors +Rollerblading +Roof shingle removal +Rope skipping +Running a marathon +Scuba diving +Sharpening knives +Shuffleboard +Skiing +Slacklining +Snow tubing +Snowboarding +Spread mulch +Sumo +Surfing +Swimming +Swinging at the playground +Table soccer +Throwing darts +Trimming branches or hedges +Tug of war +Using the monkey bar +Using the rowing machine +Wakeboarding +Waterskiing +Waxing skis +Welding +Drinking coffee +Zumba +Doing kickboxing +Doing karate +Tango +Putting on makeup +High jump +Playing bagpipes +Cheerleading +Wrapping presents +Cricket +Clean and jerk +Preparing pasta +Bathing dog +Discus throw +Playing field hockey +Grooming horse +Preparing salad +Playing harmonica +Playing saxophone +Chopping wood +Washing face +Using the pommel horse +Javelin throw +Spinning +Ping-pong +Making a sandwich +Brushing hair +Playing guitarra +Doing step aerobics +Drinking beer +Playing polo +Snatch +Paintball +Long jump +Cleaning windows +Brushing teeth +Playing flauta +Tennis serve with ball bouncing +Bungee jumping +Triple jump +Horseback riding +Layup drill in basketball +Vacuuming floor +Cleaning shoes +Doing nails +Shot put +Fixing bicycle +Washing hands +Ironing clothes +Using the balance beam +Shoveling snow +Tumbling +Using parallel bars +Getting a tattoo +Rock climbing +Smoking hookah +Shaving +Getting a piercing +Springboard diving +Playing squash +Playing piano +Dodgeball +Smoking a cigarette +Sailing +Getting a haircut +Playing lacrosse +Cumbia +Tai chi +Painting +Mowing the lawn +Shaving legs +Walking the dog +Hammer throw +Skateboarding +Polishing shoes +Ballet +Hand washing clothes +Plataform diving +Playing violin +Breakdancing +Windsurfing +Hopscotch +Doing motocross +Mixing drinks +Starting a campfire +Belly dance +Removing curlers +Archery +Volleyball +Playing water polo +Playing racquetball +Kayaking +Polishing forniture +Playing kickball +Using uneven bars +Washing dishes +Pole vault +Playing accordion +Playing badminton diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/activitynet_feature_postprocessing.py b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/activitynet_feature_postprocessing.py new file mode 100644 index 00000000..8dcd7bfe --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/activitynet_feature_postprocessing.py @@ -0,0 +1,99 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import multiprocessing +import os +import os.path as osp + +import numpy as np +import scipy.interpolate +from mmcv import dump, load + +args = None + + +def parse_args(): + parser = argparse.ArgumentParser(description='ANet Feature Prepare') + parser.add_argument('--rgb', default='', help='rgb feature root') + parser.add_argument('--flow', default='', help='flow feature root') + parser.add_argument('--dest', default='', help='dest root') + parser.add_argument('--output-format', default='csv') + args = parser.parse_args() + return args + + +def pool_feature(data, num_proposals=100, num_sample_bins=3, pool_type='mean'): + """Pool features with arbitrary temporal length. + + Args: + data (list[np.ndarray] | np.ndarray): Features of an untrimmed video, + with arbitrary temporal length. + num_proposals (int): The temporal dim of pooled feature. Default: 100. + num_sample_bins (int): How many points to sample to get the feature + vector at one timestamp. Default: 3. + pool_type (str): Type of pooling to pool features. Choices are + ['mean', 'max']. Default: 'mean'. + + Returns: + np.ndarray: The pooled feature with shape num_proposals x feature_dim. + """ + if len(data) == 1: + return np.concatenate([data] * num_proposals) + x_range = list(range(len(data))) + f = scipy.interpolate.interp1d(x_range, data, axis=0) + eps = 1e-4 + start, end = eps, len(data) - 1 - eps + anchor_size = (end - start) / num_proposals + ptr = start + feature = [] + for _ in range(num_proposals): + x_new = [ + ptr + i / num_sample_bins * anchor_size + for i in range(num_sample_bins) + ] + y_new = f(x_new) + if pool_type == 'mean': + y_new = np.mean(y_new, axis=0) + elif pool_type == 'max': + y_new = np.max(y_new, axis=0) + else: + raise NotImplementedError('Unsupported pool type') + feature.append(y_new) + ptr += anchor_size + feature = np.stack(feature) + return feature + + +def merge_feat(name): + # concatenate rgb feat and flow feat for a single sample + rgb_feat = load(osp.join(args.rgb, name)) + flow_feat = load(osp.join(args.flow, name)) + rgb_feat = pool_feature(rgb_feat) + flow_feat = pool_feature(flow_feat) + feat = np.concatenate([rgb_feat, flow_feat], axis=-1) + if not osp.exists(args.dest): + os.system(f'mkdir -p {args.dest}') + if args.output_format == 'pkl': + dump(feat, osp.join(args.dest, name)) + elif args.output_format == 'csv': + feat = feat.tolist() + lines = [] + line0 = ','.join([f'f{i}' for i in range(400)]) + lines.append(line0) + for line in feat: + lines.append(','.join([f'{x:.4f}' for x in line])) + with open(osp.join(args.dest, name.replace('.pkl', '.csv')), 'w') as f: + f.write('\n'.join(lines)) + + +def main(): + global args + args = parse_args() + rgb_feat = os.listdir(args.rgb) + flow_feat = os.listdir(args.flow) + assert set(rgb_feat) == set(flow_feat) + pool = multiprocessing.Pool(32) + pool.map(merge_feat, rgb_feat) + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/convert_proposal_format.py b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/convert_proposal_format.py new file mode 100644 index 00000000..f2f8613e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/convert_proposal_format.py @@ -0,0 +1,162 @@ +# Copyright (c) OpenMMLab. All rights reserved. +"""This file converts the output proposal file of proposal generator (BSN, BMN) +into the input proposal file of action classifier (Currently supports SSN and +P-GCN, not including TSN, I3D etc.).""" +import argparse + +import mmcv +import numpy as np + +from mmaction.core import pairwise_temporal_iou + + +def load_annotations(ann_file): + """Load the annotation according to ann_file into video_infos.""" + video_infos = [] + anno_database = mmcv.load(ann_file) + for video_name in anno_database: + video_info = anno_database[video_name] + video_info['video_name'] = video_name + video_infos.append(video_info) + return video_infos + + +def import_ground_truth(video_infos, activity_index): + """Read ground truth data from video_infos.""" + ground_truth = {} + for video_info in video_infos: + video_id = video_info['video_name'][2:] + this_video_ground_truths = [] + for ann in video_info['annotations']: + t_start, t_end = ann['segment'] + label = activity_index[ann['label']] + this_video_ground_truths.append([t_start, t_end, label]) + ground_truth[video_id] = np.array(this_video_ground_truths) + return ground_truth + + +def import_proposals(result_dict): + """Read predictions from result dict.""" + proposals = {} + num_proposals = 0 + for video_id in result_dict: + result = result_dict[video_id] + this_video_proposals = [] + for proposal in result: + t_start, t_end = proposal['segment'] + score = proposal['score'] + this_video_proposals.append([t_start, t_end, score]) + num_proposals += 1 + proposals[video_id] = np.array(this_video_proposals) + return proposals, num_proposals + + +def dump_formatted_proposal(video_idx, video_id, num_frames, fps, gts, + proposals, tiou, t_overlap_self, + formatted_proposal_file): + """dump the formatted proposal file, which is the input proposal file of + action classifier (e.g: SSN). + + Args: + video_idx (int): Index of video. + video_id (str): ID of video. + num_frames (int): Total frames of the video. + fps (float): Fps of the video. + gts (np.ndarray[float]): t_start, t_end and label of groundtruths. + proposals (np.ndarray[float]): t_start, t_end and score of proposals. + tiou (np.ndarray[float]): 2-dim array with IoU ratio. + t_overlap_self (np.ndarray[float]): 2-dim array with overlap_self + (union / self_len) ratio. + formatted_proposal_file (open file object): Open file object of + formatted_proposal_file. + """ + + formatted_proposal_file.write( + f'#{video_idx}\n{video_id}\n{num_frames}\n{fps}\n{gts.shape[0]}\n') + for gt in gts: + formatted_proposal_file.write(f'{int(gt[2])} {gt[0]} {gt[1]}\n') + formatted_proposal_file.write(f'{proposals.shape[0]}\n') + + best_iou = np.amax(tiou, axis=0) + best_iou_index = np.argmax(tiou, axis=0) + best_overlap = np.amax(t_overlap_self, axis=0) + best_overlap_index = np.argmax(t_overlap_self, axis=0) + + for i in range(proposals.shape[0]): + index_iou = best_iou_index[i] + index_overlap = best_overlap_index[i] + label_iou = gts[index_iou][2] + label_overlap = gts[index_overlap][2] + if label_iou != label_overlap: + label = label_iou if label_iou != 0 else label_overlap + else: + label = label_iou + if best_iou[i] == 0 and best_overlap[i] == 0: + formatted_proposal_file.write( + f'0 0 0 {proposals[i][0]} {proposals[i][1]}\n') + else: + formatted_proposal_file.write( + f'{int(label)} {best_iou[i]} {best_overlap[i]} ' + f'{proposals[i][0]} {proposals[i][1]}\n') + + +def parse_args(): + parser = argparse.ArgumentParser(description='convert proposal format') + parser.add_argument( + '--ann-file', + type=str, + default='../../../data/ActivityNet/anet_anno_val.json', + help='name of annotation file') + parser.add_argument( + '--activity-index-file', + type=str, + default='../../../data/ActivityNet/anet_activity_indexes_val.txt', + help='name of activity index file') + parser.add_argument( + '--proposal-file', + type=str, + default='../../../results.json', + help='name of proposal file, which is the' + 'output of proposal generator (BMN)') + parser.add_argument( + '--formatted-proposal-file', + type=str, + default='../../../anet_val_formatted_proposal.txt', + help='name of formatted proposal file, which is the' + 'input of action classifier (SSN)') + args = parser.parse_args() + + return args + + +if __name__ == '__main__': + args = parse_args() + formatted_proposal_file = open(args.formatted_proposal_file, 'w') + + # The activity index file is constructed according to + # 'https://github.com/activitynet/ActivityNet/blob/master/Evaluation/eval_classification.py' + activity_index, class_idx = {}, 0 + for line in open(args.activity_index_file).readlines(): + activity_index[line.strip()] = class_idx + class_idx += 1 + + video_infos = load_annotations(args.ann_file) + ground_truth = import_ground_truth(video_infos, activity_index) + proposal, num_proposals = import_proposals( + mmcv.load(args.proposal_file)['results']) + video_idx = 0 + + for video_info in video_infos: + video_id = video_info['video_name'][2:] + num_frames = video_info['duration_frame'] + fps = video_info['fps'] + tiou, t_overlap = pairwise_temporal_iou( + proposal[video_id][:, :2].astype(float), + ground_truth[video_id][:, :2].astype(float), + calculate_overlap_self=True) + + dump_formatted_proposal(video_idx, video_id, num_frames, fps, + ground_truth[video_id], proposal[video_id], + tiou, t_overlap, formatted_proposal_file) + video_idx += 1 + formatted_proposal_file.close() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download.py b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download.py new file mode 100644 index 00000000..1d1bf41a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download.py @@ -0,0 +1,148 @@ +# Copyright (c) OpenMMLab. All rights reserved. +# This scripts is copied from +# https://github.com/activitynet/ActivityNet/blob/master/Crawler/Kinetics/download.py # noqa: E501 +# The code is licensed under the MIT licence. +import argparse +import os +import ssl +import subprocess + +import mmcv +from joblib import Parallel, delayed + +ssl._create_default_https_context = ssl._create_unverified_context +data_file = '../../../data/ActivityNet' +output_dir = f'{data_file}/videos' + + +def parse_args(): + parser = argparse.ArgumentParser(description='ActivityNet downloader') + parser.add_argument( + '--bsn', + action='store_true', + help='download for BSN annotation or official one') + args = parser.parse_args() + return args + + +def download_clip(video_identifier, + output_filename, + num_attempts=5, + url_base='https://www.youtube.com/watch?v='): + """Download a video from youtube if exists and is not blocked. + arguments: + --------- + video_identifier: str + Unique YouTube video identifier (11 characters) + output_filename: str + File path where the video will be stored. + """ + # Defensive argument checking. + assert isinstance(video_identifier, str), 'video_identifier must be string' + assert isinstance(output_filename, str), 'output_filename must be string' + assert len(video_identifier) == 11, 'video_identifier must have length 11' + + status = False + + if not os.path.exists(output_filename): + command = [ + 'youtube-dl', '--quiet', '--no-warnings', '--no-check-certificate', + '-f', 'mp4', '-o', + '"%s"' % output_filename, + '"%s"' % (url_base + video_identifier) + ] + command = ' '.join(command) + print(command) + attempts = 0 + while True: + try: + subprocess.check_output( + command, shell=True, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError: + attempts += 1 + if attempts == num_attempts: + return status, 'Fail' + else: + break + # Check if the video was successfully saved. + status = os.path.exists(output_filename) + return status, 'Downloaded' + + +def download_clip_wrapper(youtube_id, output_dir): + """Wrapper for parallel processing purposes.""" + # we do this to align with names in annotations + output_filename = os.path.join(output_dir, 'v_' + youtube_id + '.mp4') + if os.path.exists(output_filename): + status = tuple(['v_' + youtube_id, True, 'Exists']) + return status + + downloaded, log = download_clip(youtube_id, output_filename) + status = tuple(['v_' + youtube_id, downloaded, log]) + return status + + +def parse_activitynet_annotations(input_csv, is_bsn_case=False): + """Returns a list of YoutubeID. + arguments: + --------- + input_csv: str + Path to CSV file containing the following columns: + 'video,numFrame,seconds,fps,rfps,subset,featureFrame' + returns: + ------- + youtube_ids: list + List of all YoutubeIDs in ActivityNet. + + """ + if is_bsn_case: + lines = open(input_csv).readlines() + lines = lines[1:] + # YoutubeIDs do not have prefix `v_` + youtube_ids = [x.split(',')[0][2:] for x in lines] + else: + data = mmcv.load(anno_file)['database'] + youtube_ids = list(data.keys()) + + return youtube_ids + + +def main(input_csv, output_dir, anno_file, num_jobs=24, is_bsn_case=False): + # Reading and parsing ActivityNet. + youtube_ids = parse_activitynet_annotations(input_csv, is_bsn_case) + + # Creates folders where videos will be saved later. + if not os.path.exists(output_dir): + os.makedirs(output_dir) + # Download all clips. + if num_jobs == 1: + status_list = [] + for index in youtube_ids: + status_list.append(download_clip_wrapper(index, output_dir)) + else: + status_list = Parallel(n_jobs=num_jobs)( + delayed(download_clip_wrapper)(index, output_dir) + for index in youtube_ids) + + # Save download report. + mmcv.dump(status_list, 'download_report.json') + annotation = mmcv.load(anno_file) + downloaded = {status[0]: status[1] for status in status_list} + annotation = {k: v for k, v in annotation.items() if downloaded[k]} + + if is_bsn_case: + anno_file_bak = anno_file.replace('.json', '_bak.json') + os.rename(anno_file, anno_file_bak) + mmcv.dump(annotation, anno_file) + + +if __name__ == '__main__': + args = parse_args() + is_bsn_case = args.bsn + if is_bsn_case: + video_list = f'{data_file}/video_info_new.csv' + anno_file = f'{data_file}/anet_anno_action.json' + else: + video_list = f'{data_file}/activity_net.v1-3.min.json' + anno_file = video_list + main(video_list, output_dir, anno_file, 24, is_bsn_case) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_annotations.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_annotations.sh new file mode 100644 index 00000000..3be2e229 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_annotations.sh @@ -0,0 +1,12 @@ +DATA_DIR="../../../data/ActivityNet/" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +cd ${DATA_DIR} + +wget http://ec2-52-25-205-214.us-west-2.compute.amazonaws.com/files/activity_net.v1-3.min.json + +cd - diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_bsn_videos.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_bsn_videos.sh new file mode 100644 index 00000000..706aafc5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_bsn_videos.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +# set up environment +conda env create -f environment.yml +source activate activitynet +pip install --upgrade youtube-dl +pip install mmcv + +DATA_DIR="../../../data/ActivityNet" +python download.py --bsn + +source deactivate activitynet +conda remove -n activitynet --all diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_feature_annotations.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_feature_annotations.sh new file mode 100644 index 00000000..9ef9fc0b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_feature_annotations.sh @@ -0,0 +1,16 @@ +DATA_DIR="../../../data/ActivityNet/" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +cd ${DATA_DIR} + +wget https://raw.githubusercontent.com/wzmsltw/BSN-boundary-sensitive-network/master/data/activitynet_annotations/anet_anno_action.json + +wget https://raw.githubusercontent.com/wzmsltw/BSN-boundary-sensitive-network/master/data/activitynet_annotations/video_info_new.csv + +wget https://download.openmmlab.com/mmaction/localization/anet_activity_indexes_val.txt + +cd - diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_features.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_features.sh new file mode 100644 index 00000000..b9762597 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_features.sh @@ -0,0 +1,11 @@ +DATA_DIR="../../../data/ActivityNet/activitynet_feature_cuhk/" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1ISemndlSDS2FtqQOKL0t3Cjj9yk2yznF' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1ISemndlSDS2FtqQOKL0t3Cjj9yk2yznF" -O "csv_mean_100.zip" && rm -rf /tmp/cookies.txt + +unzip csv_mean_100.zip -d ${DATA_DIR}/ +rm csv_mean_100.zip diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_videos.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_videos.sh new file mode 100644 index 00000000..5d10a101 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/download_videos.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +# set up environment +conda env create -f environment.yml +source activate activitynet +pip install --upgrade youtube-dl +pip install mmcv + +DATA_DIR="../../../data/ActivityNet" +python download.py + +source deactivate activitynet +conda remove -n activitynet --all diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/environment.yml b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/environment.yml new file mode 100644 index 00000000..f4e6d51f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/environment.yml @@ -0,0 +1,36 @@ +name: activitynet +channels: + - anaconda + - menpo + - conda-forge + - defaults +dependencies: + - ca-certificates=2020.1.1 + - certifi=2020.4.5.1 + - ffmpeg=2.8.6 + - libcxx=10.0.0 + - libedit=3.1.20181209 + - libffi=3.3 + - ncurses=6.2 + - openssl=1.1.1g + - pip=20.0.2 + - python=3.7.7 + - readline=8.0 + - setuptools=46.4.0 + - sqlite=3.31.1 + - tk=8.6.8 + - wheel=0.34.2 + - xz=5.2.5 + - zlib=1.2.11 + - pip: + - decorator==4.4.2 + - intel-openmp==2019.0 + - joblib==0.15.1 + - mkl==2019.0 + - numpy==1.18.4 + - olefile==0.46 + - pandas==1.0.3 + - python-dateutil==2.8.1 + - pytz==2020.1 + - six==1.14.0 + - youtube-dl diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/extract_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/extract_frames.sh new file mode 100644 index 00000000..1449dded --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/extract_frames.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +cd ../ +python build_rawframes.py ../../data/ActivityNet/videos/ ../../data/ActivityNet/rawframes/ --level 1 --flow-type tvl1 --ext mp4 --task both --new-short 256 +echo "Raw frames (RGB and tv-l1) Generated for train set" + +cd activitynet/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/generate_rawframes_filelist.py b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/generate_rawframes_filelist.py new file mode 100644 index 00000000..4be92622 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/generate_rawframes_filelist.py @@ -0,0 +1,113 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import json +import os +import os.path as osp + +data_file = '../../../data/ActivityNet' +video_list = f'{data_file}/video_info_new.csv' +anno_file = f'{data_file}/anet_anno_action.json' +rawframe_dir = f'{data_file}/rawframes' +action_name_list = 'action_name.csv' + +train_rawframe_dir = rawframe_dir +val_rawframe_dir = rawframe_dir + +json_file = f'{data_file}/activity_net.v1-3.min.json' + + +def generate_rawframes_filelist(): + load_dict = json.load(open(json_file)) + + anet_labels = open(action_name_list).readlines() + anet_labels = [x.strip() for x in anet_labels[1:]] + + train_dir_list = [ + osp.join(train_rawframe_dir, x) for x in os.listdir(train_rawframe_dir) + ] + val_dir_list = [ + osp.join(val_rawframe_dir, x) for x in os.listdir(val_rawframe_dir) + ] + + def simple_label(anno): + label = anno[0]['label'] + return anet_labels.index(label) + + def count_frames(dir_list, video): + for dir_name in dir_list: + if video in dir_name: + return osp.basename(dir_name), len(os.listdir(dir_name)) + return None, None + + database = load_dict['database'] + training = {} + validation = {} + key_dict = {} + + for k in database: + data = database[k] + subset = data['subset'] + + if subset in ['training', 'validation']: + annotations = data['annotations'] + label = simple_label(annotations) + if subset == 'training': + dir_list = train_dir_list + data_dict = training + else: + dir_list = val_dir_list + data_dict = validation + + else: + continue + + gt_dir_name, num_frames = count_frames(dir_list, k) + if gt_dir_name is None: + continue + data_dict[gt_dir_name] = [num_frames, label] + key_dict[gt_dir_name] = k + + train_lines = [ + k + ' ' + str(training[k][0]) + ' ' + str(training[k][1]) + for k in training + ] + val_lines = [ + k + ' ' + str(validation[k][0]) + ' ' + str(validation[k][1]) + for k in validation + ] + + with open(osp.join(data_file, 'anet_train_video.txt'), 'w') as fout: + fout.write('\n'.join(train_lines)) + with open(osp.join(data_file, 'anet_val_video.txt'), 'w') as fout: + fout.write('\n'.join(val_lines)) + + def clip_list(k, anno, video_anno): + duration = anno['duration'] + num_frames = video_anno[0] + fps = num_frames / duration + segs = anno['annotations'] + lines = [] + for seg in segs: + segment = seg['segment'] + label = seg['label'] + label = anet_labels.index(label) + start, end = int(segment[0] * fps), int(segment[1] * fps) + if end > num_frames - 1: + end = num_frames - 1 + newline = f'{k} {start} {end - start + 1} {label}' + lines.append(newline) + return lines + + train_clips, val_clips = [], [] + for k in training: + train_clips.extend(clip_list(k, database[key_dict[k]], training[k])) + for k in validation: + val_clips.extend(clip_list(k, database[key_dict[k]], validation[k])) + + with open(osp.join(data_file, 'anet_train_clip.txt'), 'w') as fout: + fout.write('\n'.join(train_clips)) + with open(osp.join(data_file, 'anet_val_clip.txt'), 'w') as fout: + fout.write('\n'.join(val_clips)) + + +if __name__ == '__main__': + generate_rawframes_filelist() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/label_map.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/label_map.txt new file mode 100644 index 00000000..6b1bb01d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/label_map.txt @@ -0,0 +1,200 @@ +Applying sunscreen +Arm wrestling +Assembling bicycle +BMX +Baking cookies +Baton twirling +Beach soccer +Beer pong +Blow-drying hair +Blowing leaves +Playing ten pins +Braiding hair +Building sandcastles +Bullfighting +Calf roping +Camel ride +Canoeing +Capoeira +Carving jack-o-lanterns +Changing car wheel +Cleaning sink +Clipping cat claws +Croquet +Curling +Cutting the grass +Decorating the Christmas tree +Disc dog +Doing a powerbomb +Doing crunches +Drum corps +Elliptical trainer +Doing fencing +Fixing the roof +Fun sliding down +Futsal +Gargling mouthwash +Grooming dog +Hand car wash +Hanging wallpaper +Having an ice cream +Hitting a pinata +Hula hoop +Hurling +Ice fishing +Installing carpet +Kite flying +Kneeling +Knitting +Laying tile +Longboarding +Making a cake +Making a lemonade +Making an omelette +Mooping floor +Painting fence +Painting furniture +Peeling potatoes +Plastering +Playing beach volleyball +Playing blackjack +Playing congas +Playing drums +Playing ice hockey +Playing pool +Playing rubik cube +Powerbocking +Putting in contact lenses +Putting on shoes +Rafting +Raking leaves +Removing ice from car +Riding bumper cars +River tubing +Rock-paper-scissors +Rollerblading +Roof shingle removal +Rope skipping +Running a marathon +Scuba diving +Sharpening knives +Shuffleboard +Skiing +Slacklining +Snow tubing +Snowboarding +Spread mulch +Sumo +Surfing +Swimming +Swinging at the playground +Table soccer +Throwing darts +Trimming branches or hedges +Tug of war +Using the monkey bar +Using the rowing machine +Wakeboarding +Waterskiing +Waxing skis +Welding +Drinking coffee +Zumba +Doing kickboxing +Doing karate +Tango +Putting on makeup +High jump +Playing bagpipes +Cheerleading +Wrapping presents +Cricket +Clean and jerk +Preparing pasta +Bathing dog +Discus throw +Playing field hockey +Grooming horse +Preparing salad +Playing harmonica +Playing saxophone +Chopping wood +Washing face +Using the pommel horse +Javelin throw +Spinning +Ping-pong +Making a sandwich +Brushing hair +Playing guitarra +Doing step aerobics +Drinking beer +Playing polo +Snatch +Paintball +Long jump +Cleaning windows +Brushing teeth +Playing flauta +Tennis serve with ball bouncing +Bungee jumping +Triple jump +Horseback riding +Layup drill in basketball +Vacuuming floor +Cleaning shoes +Doing nails +Shot put +Fixing bicycle +Washing hands +Ironing clothes +Using the balance beam +Shoveling snow +Tumbling +Using parallel bars +Getting a tattoo +Rock climbing +Smoking hookah +Shaving +Getting a piercing +Springboard diving +Playing squash +Playing piano +Dodgeball +Smoking a cigarette +Sailing +Getting a haircut +Playing lacrosse +Cumbia +Tai chi +Painting +Mowing the lawn +Shaving legs +Walking the dog +Hammer throw +Skateboarding +Polishing shoes +Ballet +Hand washing clothes +Plataform diving +Playing violin +Breakdancing +Windsurfing +Hopscotch +Doing motocross +Mixing drinks +Starting a campfire +Belly dance +Removing curlers +Archery +Volleyball +Playing water polo +Playing racquetball +Kayaking +Polishing forniture +Playing kickball +Using uneven bars +Washing dishes +Pole vault +Playing accordion +Playing badminton diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/process_annotations.py b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/process_annotations.py new file mode 100644 index 00000000..09ed5b5c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/process_annotations.py @@ -0,0 +1,54 @@ +# Copyright (c) OpenMMLab. All rights reserved. +"""This file processes the annotation files and generates proper annotation +files for localizers.""" +import json + +import numpy as np + + +def load_json(file): + with open(file) as json_file: + data = json.load(json_file) + return data + + +data_file = '../../../data/ActivityNet' +info_file = f'{data_file}/video_info_new.csv' +ann_file = f'{data_file}/anet_anno_action.json' + +anno_database = load_json(ann_file) + +video_record = np.loadtxt(info_file, dtype=np.str, delimiter=',', skiprows=1) + +video_dict_train = {} +video_dict_val = {} +video_dict_test = {} +video_dict_full = {} + +for _, video_item in enumerate(video_record): + video_name = video_item[0] + video_info = anno_database[video_name] + video_subset = video_item[5] + video_info['fps'] = video_item[3].astype(np.float) + video_info['rfps'] = video_item[4].astype(np.float) + video_dict_full[video_name] = video_info + if video_subset == 'training': + video_dict_train[video_name] = video_info + elif video_subset == 'testing': + video_dict_test[video_name] = video_info + elif video_subset == 'validation': + video_dict_val[video_name] = video_info + +print(f'full subset video numbers: {len(video_record)}') + +with open(f'{data_file}/anet_anno_train.json', 'w') as result_file: + json.dump(video_dict_train, result_file) + +with open(f'{data_file}/anet_anno_val.json', 'w') as result_file: + json.dump(video_dict_val, result_file) + +with open(f'{data_file}/anet_anno_test.json', 'w') as result_file: + json.dump(video_dict_test, result_file) + +with open(f'{data_file}/anet_anno_full.json', 'w') as result_file: + json.dump(video_dict_full, result_file) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/tsn_feature_extraction.py b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/tsn_feature_extraction.py new file mode 100644 index 00000000..c3d53f46 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/activitynet/tsn_feature_extraction.py @@ -0,0 +1,149 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import os +import os.path as osp +import pickle + +import mmcv +import numpy as np +import torch + +from mmaction.datasets.pipelines import Compose +from mmaction.models import build_model + + +def parse_args(): + parser = argparse.ArgumentParser(description='Extract TSN Feature') + parser.add_argument('--data-prefix', default='', help='dataset prefix') + parser.add_argument('--output-prefix', default='', help='output prefix') + parser.add_argument( + '--data-list', + help='video list of the dataset, the format should be ' + '`frame_dir num_frames output_file`') + parser.add_argument( + '--frame-interval', + type=int, + default=16, + help='the sampling frequency of frame in the untrimed video') + parser.add_argument('--modality', default='RGB', choices=['RGB', 'Flow']) + parser.add_argument('--ckpt', help='checkpoint for feature extraction') + parser.add_argument( + '--part', + type=int, + default=0, + help='which part of dataset to forward(alldata[part::total])') + parser.add_argument( + '--total', type=int, default=1, help='how many parts exist') + args = parser.parse_args() + return args + + +def main(): + args = parse_args() + args.is_rgb = args.modality == 'RGB' + args.clip_len = 1 if args.is_rgb else 5 + args.input_format = 'NCHW' if args.is_rgb else 'NCHW_Flow' + rgb_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], + std=[58.395, 57.12, 57.375], + to_bgr=False) + flow_norm_cfg = dict(mean=[128, 128], std=[128, 128]) + args.img_norm_cfg = rgb_norm_cfg if args.is_rgb else flow_norm_cfg + args.f_tmpl = 'img_{:05d}.jpg' if args.is_rgb else 'flow_{}_{:05d}.jpg' + args.in_channels = args.clip_len * (3 if args.is_rgb else 2) + # max batch_size for one forward + args.batch_size = 200 + + # define the data pipeline for Untrimmed Videos + data_pipeline = [ + dict( + type='UntrimmedSampleFrames', + clip_len=args.clip_len, + frame_interval=args.frame_interval, + start_index=0), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=256), + dict(type='Normalize', **args.img_norm_cfg), + dict(type='FormatShape', input_format=args.input_format), + dict(type='Collect', keys=['imgs'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) + ] + data_pipeline = Compose(data_pipeline) + + # define TSN R50 model, the model is used as the feature extractor + model_cfg = dict( + type='Recognizer2D', + backbone=dict( + type='ResNet', + depth=50, + in_channels=args.in_channels, + norm_eval=False), + cls_head=dict( + type='TSNHead', + num_classes=200, + in_channels=2048, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1)), + test_cfg=dict(average_clips=None)) + model = build_model(model_cfg) + # load pretrained weight into the feature extractor + state_dict = torch.load(args.ckpt)['state_dict'] + model.load_state_dict(state_dict) + model = model.cuda() + model.eval() + + data = open(args.data_list).readlines() + data = [x.strip() for x in data] + data = data[args.part::args.total] + + # enumerate Untrimmed videos, extract feature from each of them + prog_bar = mmcv.ProgressBar(len(data)) + if not osp.exists(args.output_prefix): + os.system(f'mkdir -p {args.output_prefix}') + + for item in data: + frame_dir, length, _ = item.split() + output_file = osp.basename(frame_dir) + '.pkl' + frame_dir = osp.join(args.data_prefix, frame_dir) + output_file = osp.join(args.output_prefix, output_file) + assert output_file.endswith('.pkl') + length = int(length) + + # prepare a pseudo sample + tmpl = dict( + frame_dir=frame_dir, + total_frames=length, + filename_tmpl=args.f_tmpl, + start_index=0, + modality=args.modality) + sample = data_pipeline(tmpl) + imgs = sample['imgs'] + shape = imgs.shape + # the original shape should be N_seg * C * H * W, resize it to N_seg * + # 1 * C * H * W so that the network return feature of each frame (No + # score average among segments) + imgs = imgs.reshape((shape[0], 1) + shape[1:]) + imgs = imgs.cuda() + + def forward_data(model, data): + # chop large data into pieces and extract feature from them + results = [] + start_idx = 0 + num_clip = data.shape[0] + while start_idx < num_clip: + with torch.no_grad(): + part = data[start_idx:start_idx + args.batch_size] + feat = model.forward(part, return_loss=False) + results.append(feat) + start_idx += args.batch_size + return np.concatenate(results) + + feat = forward_data(model, imgs) + with open(output_file, 'wb') as fout: + pickle.dump(feat, fout) + prog_bar.update() + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/anno_txt2json.py b/openmmlab_test/mmaction2-0.24.1/tools/data/anno_txt2json.py new file mode 100644 index 00000000..fcefc777 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/anno_txt2json.py @@ -0,0 +1,103 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse + +import mmcv + + +def parse_args(): + parser = argparse.ArgumentParser( + description='Convert txt annotation list to json') + parser.add_argument( + 'annofile', type=str, help='the txt annotation file to convert') + parser.add_argument( + '--format', + type=str, + default='rawframes', + choices=['rawframes', 'videos'], + help='the format of the txt annotation file') + parser.add_argument( + '--output', + type=str, + default=None, + help=( + 'the output file name, use annofile.replace(\'.txt\', \'.json\') ' + 'if the arg value is None')) + args = parser.parse_args() + + return args + + +def lines2dictlist(lines, format): + """Convert lines in 'txt' format to dictionaries in 'json' format. + Currently support single-label and multi-label. + + Example of a single-label rawframes annotation txt file: + + .. code-block:: txt + + (frame_dir num_frames label) + some/directory-1 163 1 + some/directory-2 122 1 + some/directory-3 258 2 + + Example of a multi-label rawframes annotation txt file: + + .. code-block:: txt + + (frame_dir num_frames label1 label2 ...) + some/directory-1 163 1 3 5 + some/directory-2 122 1 2 + some/directory-3 258 2 + + Example of a single-label videos annotation txt file: + + .. code-block:: txt + + (filename label) + some/path/000.mp4 1 + some/path/001.mp4 1 + some/path/002.mp4 2 + + Example of a multi-label videos annotation txt file: + + .. code-block:: txt + + (filename label1 label2 ...) + some/path/000.mp4 1 3 5 + some/path/001.mp4 1 4 8 + some/path/002.mp4 2 4 9 + + Args: + lines (list): List of lines in 'txt' label format. + format (str): Data format, choices are 'rawframes' and 'videos'. + + Returns: + list[dict]: For rawframes format, each dict has keys: frame_dir, + total_frames, label; for videos format, each diction has keys: + filename, label. + """ + lines = [x.split() for x in lines] + if format == 'rawframes': + data = [ + dict( + frame_dir=line[0], + total_frames=int(line[1]), + label=[int(x) for x in line[2:]]) for line in lines + ] + elif format == 'videos': + data = [ + dict(filename=line[0], label=[int(x) for x in line[1:]]) + for line in lines + ] + return data + + +if __name__ == '__main__': + # convert txt anno list to json + args = parse_args() + lines = open(args.annofile).readlines() + lines = [x.strip() for x in lines] + result = lines2dictlist(lines, args.format) + if args.output is None: + args.output = args.annofile.replace('.txt', '.json') + mmcv.dump(result, args.output) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ava/AVA_annotation_explained.md b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/AVA_annotation_explained.md new file mode 100644 index 00000000..3d0002d1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/AVA_annotation_explained.md @@ -0,0 +1,34 @@ +# AVA Annotation Explained + +In this section, we explain the annotation format of AVA in details: + +``` +mmaction2 +├── data +│ ├── ava +│ │ ├── annotations +│ │ | ├── ava_dense_proposals_train.FAIR.recall_93.9.pkl +│ │ | ├── ava_dense_proposals_val.FAIR.recall_93.9.pkl +│ │ | ├── ava_dense_proposals_test.FAIR.recall_93.9.pkl +│ │ | ├── ava_train_v2.1.csv +│ │ | ├── ava_val_v2.1.csv +│ │ | ├── ava_train_excluded_timestamps_v2.1.csv +│ │ | ├── ava_val_excluded_timestamps_v2.1.csv +│ │ | ├── ava_action_list_v2.1_for_activitynet_2018.pbtxt +``` + +## The proposals generated by human detectors + +In the annotation folder, `ava_dense_proposals_[train/val/test].FAIR.recall_93.9.pkl` are human proposals generated by a human detector. They are used in training, validation and testing respectively. Take `ava_dense_proposals_train.FAIR.recall_93.9.pkl` as an example. It is a dictionary of size 203626. The key consists of the `videoID` and the `timestamp`. For example, the key `-5KQ66BBWC4,0902` means the values are the detection results for the frame at the $$902\_{nd}$$ second in the video `-5KQ66BBWC4`. The values in the dictionary are numpy arrays with shape $$N \\times 5$$ , $$N$$ is the number of detected human bounding boxes in the corresponding frame. The format of bounding box is $$\[x_1, y_1, x_2, y_2, score\], 0 \\le x_1, y_1, x_2, w_2, score \\le 1$$. $$(x_1, y_1)$$ indicates the top-left corner of the bounding box, $$(x_2, y_2)$$ indicates the bottom-right corner of the bounding box; $$(0, 0)$$ indicates the top-left corner of the image, while $$(1, 1)$$ indicates the bottom-right corner of the image. + +## The ground-truth labels for spatio-temporal action detection + +In the annotation folder, `ava_[train/val]_v[2.1/2.2].csv` are ground-truth labels for spatio-temporal action detection, which are used during training & validation. Take `ava_train_v2.1.csv` as an example, it is a csv file with 837318 lines, each line is the annotation for a human instance in one frame. For example, the first line in `ava_train_v2.1.csv` is `'-5KQ66BBWC4,0902,0.077,0.151,0.283,0.811,80,1'`: the first two items `-5KQ66BBWC4` and `0902` indicate that it corresponds to the $$902\_{nd}$$ second in the video `-5KQ66BBWC4`. The next four items ($$\[0.077(x_1), 0.151(y_1), 0.283(x_2), 0.811(y_2)\]$$) indicates the location of the bounding box, the bbox format is the same as human proposals. The next item `80` is the action label. The last item `1` is the ID of this bounding box. + +## Excluded timestamps + +`ava_[train/val]_excludes_timestamps_v[2.1/2.2].csv` contains excluded timestamps which are not used during training or validation. The format is `video_id, second_idx` . + +## Label map + +`ava_action_list_v[2.1/2.2]_for_activitynet_[2018/2019].pbtxt` contains the label map of the AVA dataset, which maps the action name to the label index. diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ava/README.md b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/README.md new file mode 100644 index 00000000..a416eb26 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/README.md @@ -0,0 +1,148 @@ +# Preparing AVA + +## Introduction + + + +```BibTeX +@inproceedings{gu2018ava, + title={Ava: A video dataset of spatio-temporally localized atomic visual actions}, + author={Gu, Chunhui and Sun, Chen and Ross, David A and Vondrick, Carl and Pantofaru, Caroline and Li, Yeqing and Vijayanarasimhan, Sudheendra and Toderici, George and Ricco, Susanna and Sukthankar, Rahul and others}, + booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition}, + pages={6047--6056}, + year={2018} +} +``` + +For basic dataset information, please refer to the official [website](https://research.google.com/ava/index.html). +Before we start, please make sure that the directory is located at `$MMACTION2/tools/data/ava/`. + +## Step 1. Prepare Annotations + +First of all, you can run the following script to prepare annotations. + +```shell +bash download_annotations.sh +``` + +This command will download `ava_v2.1.zip` for AVA `v2.1` annotation. If you need the AVA `v2.2` annotation, you can try the following script. + +```shell +VERSION=2.2 bash download_annotations.sh +``` + +## Step 2. Prepare Videos + +Then, use the following script to prepare videos. The codes are adapted from the [official crawler](https://github.com/cvdfoundation/ava-dataset). +Note that this might take a long time. + +```shell +bash download_videos.sh +``` + +Or you can use the following command to downloading AVA videos in parallel using a python script. + +```shell +bash download_videos_parallel.sh +``` + +Note that if you happen to have sudoer or have [GNU parallel](https://www.gnu.org/software/parallel/) on your machine, +you can speed up the procedure by downloading in parallel. + +```shell +# sudo apt-get install parallel +bash download_videos_gnu_parallel.sh +``` + +## Step 3. Cut Videos + +Cut each video from its 15th to 30th minute and make them at 30 fps. + +```shell +bash cut_videos.sh +``` + +## Step 4. Extract RGB and Flow + +Before extracting, please refer to [install.md](/docs/install.md) for installing [denseflow](https://github.com/open-mmlab/denseflow). + +If you have plenty of SSD space, then we recommend extracting frames there for better I/O performance. And you can run the following script to soft link the extracted frames. + +```shell +# execute these two line (Assume the SSD is mounted at "/mnt/SSD/") +mkdir /mnt/SSD/ava_extracted/ +ln -s /mnt/SSD/ava_extracted/ ../data/ava/rawframes/ +``` + +If you only want to play with RGB frames (since extracting optical flow can be time-consuming), consider running the following script to extract **RGB-only** frames using denseflow. + +```shell +bash extract_rgb_frames.sh +``` + +If you didn't install denseflow, you can still extract RGB frames using ffmpeg by the following script. + +```shell +bash extract_rgb_frames_ffmpeg.sh +``` + +If both are required, run the following script to extract frames. + +```shell +bash extract_frames.sh +``` + +## Step 5. Fetch Proposal Files + +The scripts are adapted from FAIR's [Long-Term Feature Banks](https://github.com/facebookresearch/video-long-term-feature-banks). + +Run the following scripts to fetch the pre-computed proposal list. + +```shell +bash fetch_ava_proposals.sh +``` + +## Step 6. Folder Structure + +After the whole data pipeline for AVA preparation. +you can get the rawframes (RGB + Flow), videos and annotation files for AVA. + +In the context of the whole project (for AVA only), the *minimal* folder structure will look like: +(*minimal* means that some data are not necessary: for example, you may want to evaluate AVA using the original video format.) + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── ava +│ │ ├── annotations +│ │ | ├── ava_dense_proposals_train.FAIR.recall_93.9.pkl +│ │ | ├── ava_dense_proposals_val.FAIR.recall_93.9.pkl +│ │ | ├── ava_dense_proposals_test.FAIR.recall_93.9.pkl +│ │ | ├── ava_train_v2.1.csv +│ │ | ├── ava_val_v2.1.csv +│ │ | ├── ava_train_excluded_timestamps_v2.1.csv +│ │ | ├── ava_val_excluded_timestamps_v2.1.csv +│ │ | ├── ava_action_list_v2.1_for_activitynet_2018.pbtxt +│ │ ├── videos +│ │ │ ├── 053oq2xB3oU.mkv +│ │ │ ├── 0f39OWEqJ24.mp4 +│ │ │ ├── ... +│ │ ├── videos_15min +│ │ │ ├── 053oq2xB3oU.mkv +│ │ │ ├── 0f39OWEqJ24.mp4 +│ │ │ ├── ... +│ │ ├── rawframes +│ │ │ ├── 053oq2xB3oU +| │ │ │ ├── img_00001.jpg +| │ │ │ ├── img_00002.jpg +| │ │ │ ├── ... +``` + +For training and evaluating on AVA, please refer to [getting_started](/docs/getting_started.md). + +## Reference + +1. O. Tange (2018): GNU Parallel 2018, March 2018, https://doi.org/10.5281/zenodo.1146014 diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ava/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/README_zh-CN.md new file mode 100644 index 00000000..5a7b96da --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/README_zh-CN.md @@ -0,0 +1,134 @@ +# 准备 AVA + +## 简介 + + + +```BibTeX +@inproceedings{gu2018ava, + title={Ava: A video dataset of spatio-temporally localized atomic visual actions}, + author={Gu, Chunhui and Sun, Chen and Ross, David A and Vondrick, Carl and Pantofaru, Caroline and Li, Yeqing and Vijayanarasimhan, Sudheendra and Toderici, George and Ricco, Susanna and Sukthankar, Rahul and others}, + booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition}, + pages={6047--6056}, + year={2018} +} +``` + +请参照 [官方网站](https://research.google.com/ava/index.html) 以获取数据集基本信息。 +在开始之前,用户需确保当前目录为 `$MMACTION2/tools/data/ava/`。 + +## 1. 准备标注文件 + +首先,用户可以使用如下脚本下载标注文件并进行预处理: + +```shell +bash download_annotations.sh +``` + +这一命令将下载 `ava_v2.1.zip` 以得到 AVA v2.1 标注文件。如用户需要 AVA v2.2 标注文件,可使用以下脚本: + +```shell +VERSION=2.2 bash download_annotations.sh +``` + +## 2. 下载视频 + +用户可以使用以下脚本准备视频,视频准备代码修改自 [官方爬虫](https://github.com/cvdfoundation/ava-dataset)。 +注意这一步骤将花费较长时间。 + +```shell +bash download_videos.sh +``` + +亦可使用以下脚本,使用 python 并行下载 AVA 数据集视频: + +```shell +bash download_videos_parallel.sh +``` + +## 3. 截取视频 + +截取每个视频中的 15 到 30 分钟,设定帧率为 30。 + +```shell +bash cut_videos.sh +``` + +## 4. 提取 RGB 帧和光流 + +在提取之前,请参考 [安装教程](/docs_zh_CN/install.md) 安装 [denseflow](https://github.com/open-mmlab/denseflow)。 + +如果用户有足够的 SSD 空间,那么建议将视频抽取为 RGB 帧以提升 I/O 性能。用户可以使用以下脚本为抽取得到的帧文件夹建立软连接: + +```shell +# 执行以下脚本 (假设 SSD 被挂载在 "/mnt/SSD/") +mkdir /mnt/SSD/ava_extracted/ +ln -s /mnt/SSD/ava_extracted/ ../data/ava/rawframes/ +``` + +如果用户只使用 RGB 帧(由于光流提取非常耗时),可执行以下脚本使用 denseflow 提取 RGB 帧: + +```shell +bash extract_rgb_frames.sh +``` + +如果用户未安装 denseflow,可执行以下脚本使用 ffmpeg 提取 RGB 帧: + +```shell +bash extract_rgb_frames_ffmpeg.sh +``` + +如果同时需要 RGB 帧和光流,可使用如下脚本抽帧: + +```shell +bash extract_frames.sh +``` + +## 5. 下载 AVA 上人体检测结果 + +以下脚本修改自 [Long-Term Feature Banks](https://github.com/facebookresearch/video-long-term-feature-banks)。 + +可使用以下脚本下载 AVA 上预先计算的人体检测结果: + +```shell +bash fetch_ava_proposals.sh +``` + +## 6. 目录结构 + +在完整完成 AVA 的数据处理后,将得到帧文件夹(RGB 帧和光流帧),视频以及标注文件。 + +在整个项目目录下(仅针对 AVA),*最简* 目录结构如下所示: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── ava +│ │ ├── annotations +│ │ | ├── ava_dense_proposals_train.FAIR.recall_93.9.pkl +│ │ | ├── ava_dense_proposals_val.FAIR.recall_93.9.pkl +│ │ | ├── ava_dense_proposals_test.FAIR.recall_93.9.pkl +│ │ | ├── ava_train_v2.1.csv +│ │ | ├── ava_val_v2.1.csv +│ │ | ├── ava_train_excluded_timestamps_v2.1.csv +│ │ | ├── ava_val_excluded_timestamps_v2.1.csv +│ │ | ├── ava_action_list_v2.1_for_activitynet_2018.pbtxt +│ │ ├── videos +│ │ │ ├── 053oq2xB3oU.mkv +│ │ │ ├── 0f39OWEqJ24.mp4 +│ │ │ ├── ... +│ │ ├── videos_15min +│ │ │ ├── 053oq2xB3oU.mkv +│ │ │ ├── 0f39OWEqJ24.mp4 +│ │ │ ├── ... +│ │ ├── rawframes +│ │ │ ├── 053oq2xB3oU +| │ │ │ ├── img_00001.jpg +| │ │ │ ├── img_00002.jpg +| │ │ │ ├── ... +``` + +关于 AVA 数据集上的训练与测试,请参照 [基础教程](/docs_zh_CN/getting_started.md)。 diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ava/cut_videos.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/cut_videos.sh new file mode 100644 index 00000000..763c9127 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/cut_videos.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +# Copyright (c) Facebook, Inc. and its affiliates. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################## + +# Cut each video from its 15th to 30th minute. + +IN_DATA_DIR="../../../data/ava/videos" +OUT_DATA_DIR="../../../data/ava/videos_15min" + +if [[ ! -d "${OUT_DATA_DIR}" ]]; then + echo "${OUT_DATA_DIR} doesn't exist. Creating it."; + mkdir -p ${OUT_DATA_DIR} +fi + +for video in $(ls -A1 -U ${IN_DATA_DIR}/*) +do + out_name="${OUT_DATA_DIR}/${video##*/}" + if [ ! -f "${out_name}" ]; then + ffmpeg -ss 900 -t 901 -i "${video}" -r 30 -strict experimental "${out_name}" + fi +done diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_annotations.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_annotations.sh new file mode 100644 index 00000000..ba4a5015 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_annotations.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +set -e + +VERSION=${VERSION:-"2.1"} +DATA_DIR="../../../data/ava/annotations" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +wget https://research.google.com/ava/download/ava_v${VERSION}.zip +unzip -j ava_v${VERSION}.zip -d ${DATA_DIR}/ +rm ava_v${VERSION}.zip diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_videos.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_videos.sh new file mode 100644 index 00000000..ba8c5692 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_videos.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +set -e + +DATA_DIR="../../../data/ava/videos" +ANNO_DIR="../../../data/ava/annotations" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +wget https://s3.amazonaws.com/ava-dataset/annotations/ava_file_names_trainval_v2.1.txt -P ${ANNO_DIR} + +cat ${ANNO_DIR}/ava_file_names_trainval_v2.1.txt | +while read vid; + do wget -c "https://s3.amazonaws.com/ava-dataset/trainval/${vid}" -P ${DATA_DIR}; done + +echo "Downloading finished." diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_videos_gnu_parallel.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_videos_gnu_parallel.sh new file mode 100644 index 00000000..6ef5bf11 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_videos_gnu_parallel.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +set -e + +DATA_DIR="../../../data/ava/videos" +ANNO_DIR="../../../data/ava/annotations" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +wget https://s3.amazonaws.com/ava-dataset/annotations/ava_file_names_trainval_v2.1.txt -P ${ANNO_DIR} + +# sudo apt-get install parallel +# parallel downloading to speed up +awk '{print "https://s3.amazonaws.com/ava-dataset/trainval/"$0}' ${ANNO_DIR}/ava_file_names_trainval_v2.1.txt | +parallel -j 8 wget -c -q {} -P ${DATA_DIR} + +echo "Downloading finished." diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_videos_parallel.py b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_videos_parallel.py new file mode 100644 index 00000000..7be4b1b8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_videos_parallel.py @@ -0,0 +1,66 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import os.path as osp +import subprocess + +import mmcv +from joblib import Parallel, delayed + +URL_PREFIX = 'https://s3.amazonaws.com/ava-dataset/trainval/' + + +def download_video(video_url, output_dir, num_attempts=5): + video_file = osp.basename(video_url) + output_file = osp.join(output_dir, video_file) + + status = False + + if not osp.exists(output_file): + command = ['wget', '-c', video_url, '-P', output_dir] + command = ' '.join(command) + print(command) + attempts = 0 + while True: + try: + subprocess.check_output( + command, shell=True, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError: + attempts += 1 + if attempts == num_attempts: + return status, 'Downloading Failed' + else: + break + + status = osp.exists(output_file) + return status, 'Downloaded' + + +def main(source_file, output_dir, num_jobs=24, num_attempts=5): + mmcv.mkdir_or_exist(output_dir) + video_list = open(source_file).read().strip().split('\n') + video_list = [osp.join(URL_PREFIX, video) for video in video_list] + + if num_jobs == 1: + status_list = [] + for video in video_list: + video_list.append(download_video(video, output_dir, num_attempts)) + else: + status_list = Parallel(n_jobs=num_jobs)( + delayed(download_video)(video, output_dir, num_attempts) + for video in video_list) + + mmcv.dump(status_list, 'download_report.json') + + +if __name__ == '__main__': + description = 'Helper script for downloading AVA videos' + parser = argparse.ArgumentParser(description=description) + parser.add_argument( + 'source_file', type=str, help='TXT file containing the video filename') + parser.add_argument( + 'output_dir', + type=str, + help='Output directory where videos will be saved') + parser.add_argument('-n', '--num-jobs', type=int, default=24) + parser.add_argument('--num-attempts', type=int, default=5) + main(**vars(parser.parse_args())) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_videos_parallel.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_videos_parallel.sh new file mode 100644 index 00000000..23329227 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/download_videos_parallel.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +set -e + +DATA_DIR="../../../data/ava/videos" +ANNO_DIR="../../../data/ava/annotations" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +wget https://s3.amazonaws.com/ava-dataset/annotations/ava_file_names_trainval_v2.1.txt -P ${ANNO_DIR} + +python download_videos_parallel.py ${ANNO_DIR}/ava_file_names_trainval_v2.1.txt ${DATA_DIR} diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ava/extract_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/extract_frames.sh new file mode 100644 index 00000000..68f5cf0c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/extract_frames.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/ava/videos_15min/ ../../data/ava/rawframes/ --task both --level 1 --flow-type tvl1 --mixed-ext +echo "Raw frames (RGB and Flow) Generated" +cd ava/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ava/extract_rgb_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/extract_rgb_frames.sh new file mode 100644 index 00000000..84d21d84 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/extract_rgb_frames.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/ava/videos_15min/ ../../data/ava/rawframes/ --task rgb --level 1 --mixed-ext +echo "Genearte raw frames (RGB only)" + +cd ava/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ava/extract_rgb_frames_ffmpeg.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/extract_rgb_frames_ffmpeg.sh new file mode 100644 index 00000000..b299a5cd --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/extract_rgb_frames_ffmpeg.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +# Copyright (c) Facebook, Inc. and its affiliates. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +############################################################################## + +# Extract frames from videos. + +IN_DATA_DIR="../../../data/ava/videos_15min" +OUT_DATA_DIR="../../../data/ava/rawframes" + +if [[ ! -d "${OUT_DATA_DIR}" ]]; then + echo "${OUT_DATA_DIR} doesn't exist. Creating it."; + mkdir -p ${OUT_DATA_DIR} +fi + +for video in $(ls -A1 -U ${IN_DATA_DIR}/*) +do + video_name=${video##*/} + + if [[ $video_name = *".webm" ]]; then + video_name=${video_name::-5} + else + video_name=${video_name::-4} + fi + + out_video_dir=${OUT_DATA_DIR}/${video_name} + mkdir -p "${out_video_dir}" + + out_name="${out_video_dir}/img_%05d.jpg" + + ffmpeg -i "${video}" -r 30 -q:v 1 "${out_name}" +done diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ava/fetch_ava_proposals.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/fetch_ava_proposals.sh new file mode 100644 index 00000000..57d2b2aa --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/fetch_ava_proposals.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -e + +DATA_DIR="../../../data/ava/annotations" + +wget https://download.openmmlab.com/mmaction/dataset/ava/ava_dense_proposals_train.FAIR.recall_93.9.pkl -P ${DATA_DIR} +wget https://download.openmmlab.com/mmaction/dataset/ava/ava_dense_proposals_val.FAIR.recall_93.9.pkl -P ${DATA_DIR} +wget https://download.openmmlab.com/mmaction/dataset/ava/ava_dense_proposals_test.FAIR.recall_93.9.pkl -P ${DATA_DIR} diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ava/label_map.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/label_map.txt new file mode 100644 index 00000000..0348b039 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ava/label_map.txt @@ -0,0 +1,60 @@ +1: bend/bow (at the waist) +3: crouch/kneel +4: dance +5: fall down +6: get up +7: jump/leap +8: lie/sleep +9: martial art +10: run/jog +11: sit +12: stand +13: swim +14: walk +15: answer phone +17: carry/hold (an object) +20: climb (e.g., a mountain) +22: close (e.g., a door, a box) +24: cut +26: dress/put on clothing +27: drink +28: drive (e.g., a car, a truck) +29: eat +30: enter +34: hit (an object) +36: lift/pick up +37: listen (e.g., to music) +38: open (e.g., a window, a car door) +41: play musical instrument +43: point to (an object) +45: pull (an object) +46: push (an object) +47: put down +48: read +49: ride (e.g., a bike, a car, a horse) +51: sail boat +52: shoot +54: smoke +56: take a photo +57: text on/look at a cellphone +58: throw +59: touch (an object) +60: turn (e.g., a screwdriver) +61: watch (e.g., TV) +62: work on a computer +63: write +64: fight/hit (a person) +65: give/serve (an object) to (a person) +66: grab (a person) +67: hand clap +68: hand shake +69: hand wave +70: hug (a person) +72: kiss (a person) +73: lift (a person) +74: listen to (a person) +76: push (another person) +77: sing to (e.g., self, a person, a group) +78: take (an object) from (a person) +79: talk to (e.g., self, a person, a group) +80: watch (a person) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/build_audio_features.py b/openmmlab_test/mmaction2-0.24.1/tools/data/build_audio_features.py new file mode 100644 index 00000000..f143427c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/build_audio_features.py @@ -0,0 +1,316 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import glob +import os +import os.path as osp +import sys +from multiprocessing import Pool + +import mmcv +import numpy as np +from scipy.io import wavfile + +try: + import librosa + import lws +except ImportError: + print('Please import librosa, lws first.') + +sys.path.append('..') + +SILENCE_THRESHOLD = 2 +FMIN = 125 +FMAX = 7600 +FRAME_SHIFT_MS = None +MIN_LEVEL_DB = -100 +REF_LEVEL_DB = 20 +RESCALING = True +RESCALING_MAX = 0.999 +ALLOW_CLIPPING_IN_NORMALIZATION = True +LOG_SCALE_MIN = -32.23619130191664 +NORM_AUDIO = True + + +class AudioTools: + """All methods related to audio feature extraction. Code Reference: + + `_, + `_. + + Args: + frame_rate (int): The frame rate per second of the video. Default: 30. + sample_rate (int): The sample rate for audio sampling. Default: 16000. + num_mels (int): Number of channels of the melspectrogram. Default: 80. + fft_size (int): fft_size / sample_rate is window size. Default: 1280. + hop_size (int): hop_size / sample_rate is step size. Default: 320. + """ + + def __init__(self, + frame_rate=30, + sample_rate=16000, + num_mels=80, + fft_size=1280, + hop_size=320, + spectrogram_type='lws'): + self.frame_rate = frame_rate + self.sample_rate = sample_rate + self.silence_threshold = SILENCE_THRESHOLD + self.num_mels = num_mels + self.fmin = FMIN + self.fmax = FMAX + self.fft_size = fft_size + self.hop_size = hop_size + self.frame_shift_ms = FRAME_SHIFT_MS + self.min_level_db = MIN_LEVEL_DB + self.ref_level_db = REF_LEVEL_DB + self.rescaling = RESCALING + self.rescaling_max = RESCALING_MAX + self.allow_clipping_in_normalization = ALLOW_CLIPPING_IN_NORMALIZATION + self.log_scale_min = LOG_SCALE_MIN + self.norm_audio = NORM_AUDIO + self.spectrogram_type = spectrogram_type + assert spectrogram_type in ['lws', 'librosa'] + + def load_wav(self, path): + """Load an audio file into numpy array.""" + return librosa.core.load(path, sr=self.sample_rate)[0] + + @staticmethod + def audio_normalize(samples, desired_rms=0.1, eps=1e-4): + """RMS normalize the audio data.""" + rms = np.maximum(eps, np.sqrt(np.mean(samples**2))) + samples = samples * (desired_rms / rms) + return samples + + def generate_spectrogram_magphase(self, audio, with_phase=False): + """Separate a complex-valued spectrogram D into its magnitude (S) + + and phase (P) components, so that D = S * P. + + Args: + audio (np.ndarray): The input audio signal. + with_phase (bool): Determines whether to output the + phase components. Default: False. + + Returns: + np.ndarray: magnitude and phase component of the complex-valued + spectrogram. + """ + spectro = librosa.core.stft( + audio, + hop_length=self.get_hop_size(), + n_fft=self.fft_size, + center=True) + spectro_mag, spectro_phase = librosa.core.magphase(spectro) + spectro_mag = np.expand_dims(spectro_mag, axis=0) + if with_phase: + spectro_phase = np.expand_dims(np.angle(spectro_phase), axis=0) + return spectro_mag, spectro_phase + + return spectro_mag + + def save_wav(self, wav, path): + """Save the wav to disk.""" + # 32767 = (2 ^ 15 - 1) maximum of int16 + wav *= 32767 / max(0.01, np.max(np.abs(wav))) + wavfile.write(path, self.sample_rate, wav.astype(np.int16)) + + def trim(self, quantized): + """Trim the audio wavfile.""" + start, end = self.start_and_end_indices(quantized, + self.silence_threshold) + return quantized[start:end] + + def adjust_time_resolution(self, quantized, mel): + """Adjust time resolution by repeating features. + + Args: + quantized (np.ndarray): (T,) + mel (np.ndarray): (N, D) + + Returns: + tuple: Tuple of (T,) and (T, D) + """ + assert quantized.ndim == 1 + assert mel.ndim == 2 + + upsample_factor = quantized.size // mel.shape[0] + mel = np.repeat(mel, upsample_factor, axis=0) + n_pad = quantized.size - mel.shape[0] + if n_pad != 0: + assert n_pad > 0 + mel = np.pad( + mel, [(0, n_pad), (0, 0)], mode='constant', constant_values=0) + + # trim + start, end = self.start_and_end_indices(quantized, + self.silence_threshold) + + return quantized[start:end], mel[start:end, :] + + @staticmethod + def start_and_end_indices(quantized, silence_threshold=2): + """Trim the audio file when reaches the silence threshold.""" + for start in range(quantized.size): + if abs(quantized[start] - 127) > silence_threshold: + break + for end in range(quantized.size - 1, 1, -1): + if abs(quantized[end] - 127) > silence_threshold: + break + + assert abs(quantized[start] - 127) > silence_threshold + assert abs(quantized[end] - 127) > silence_threshold + + return start, end + + def melspectrogram(self, y): + """Generate the melspectrogram.""" + D = self._lws_processor().stft(y).T + S = self._amp_to_db(self._linear_to_mel(np.abs(D))) - self.ref_level_db + if not self.allow_clipping_in_normalization: + assert S.max() <= 0 and S.min() - self.min_level_db >= 0 + return self._normalize(S) + + def get_hop_size(self): + """Calculate the hop size.""" + hop_size = self.hop_size + if hop_size is None: + assert self.frame_shift_ms is not None + hop_size = int(self.frame_shift_ms / 1000 * self.sample_rate) + return hop_size + + def _lws_processor(self): + """Perform local weighted sum. + + Please refer to `_. + """ + return lws.lws(self.fft_size, self.get_hop_size(), mode='speech') + + @staticmethod + def lws_num_frames(length, fsize, fshift): + """Compute number of time frames of lws spectrogram. + + Please refer to `_. + """ + pad = (fsize - fshift) + if length % fshift == 0: + M = (length + pad * 2 - fsize) // fshift + 1 + else: + M = (length + pad * 2 - fsize) // fshift + 2 + return M + + def lws_pad_lr(self, x, fsize, fshift): + """Compute left and right padding lws internally uses. + + Please refer to `_. + """ + M = self.lws_num_frames(len(x), fsize, fshift) + pad = (fsize - fshift) + T = len(x) + 2 * pad + r = (M - 1) * fshift + fsize - T + return pad, pad + r + + def _linear_to_mel(self, spectrogram): + """Warp linear scale spectrograms to the mel scale. + + Please refer to `_ + """ + global _mel_basis + _mel_basis = self._build_mel_basis() + return np.dot(_mel_basis, spectrogram) + + def _build_mel_basis(self): + """Build mel filters. + + Please refer to `_ + """ + assert self.fmax <= self.sample_rate // 2 + return librosa.filters.mel( + self.sample_rate, + self.fft_size, + fmin=self.fmin, + fmax=self.fmax, + n_mels=self.num_mels) + + def _amp_to_db(self, x): + min_level = np.exp(self.min_level_db / 20 * np.log(10)) + return 20 * np.log10(np.maximum(min_level, x)) + + @staticmethod + def _db_to_amp(x): + return np.power(10.0, x * 0.05) + + def _normalize(self, S): + return np.clip((S - self.min_level_db) / -self.min_level_db, 0, 1) + + def _denormalize(self, S): + return (np.clip(S, 0, 1) * -self.min_level_db) + self.min_level_db + + def read_audio(self, audio_path): + wav = self.load_wav(audio_path) + if self.norm_audio: + wav = self.audio_normalize(wav) + else: + wav = wav / np.abs(wav).max() + + return wav + + def audio_to_spectrogram(self, wav): + if self.spectrogram_type == 'lws': + spectrogram = self.melspectrogram(wav).astype(np.float32).T + elif self.spectrogram_type == 'librosa': + spectrogram = self.generate_spectrogram_magphase(wav) + return spectrogram + + +def extract_audio_feature(wav_path, audio_tools, mel_out_dir): + file_name, _ = osp.splitext(osp.basename(wav_path)) + # Write the spectrograms to disk: + mel_filename = os.path.join(mel_out_dir, file_name + '.npy') + if not os.path.exists(mel_filename): + try: + wav = audio_tools.read_audio(wav_path) + + spectrogram = audio_tools.audio_to_spectrogram(wav) + + np.save( + mel_filename, + spectrogram.astype(np.float32), + allow_pickle=False) + + except BaseException: + print(f'Read audio [{wav_path}] failed.') + + +if __name__ == '__main__': + audio_tools = AudioTools( + fft_size=512, hop_size=256) # window_size:32ms hop_size:16ms + + parser = argparse.ArgumentParser() + parser.add_argument('audio_home_path', type=str) + parser.add_argument('spectrogram_save_path', type=str) + parser.add_argument('--level', type=int, default=1) + parser.add_argument('--ext', default='m4a') + parser.add_argument('--num-workers', type=int, default=4) + parser.add_argument('--part', type=str, default='1/1') + args = parser.parse_args() + + mmcv.mkdir_or_exist(args.spectrogram_save_path) + + files = glob.glob( + # osp.join(args.audio_home_path, '*/' * args.level, '*' + args.ext) + args.audio_home_path + '/*' * args.level + '.' + args.ext) + print(f'found {len(files)} files.') + files = sorted(files) + if args.part is not None: + [this_part, num_parts] = [int(i) for i in args.part.split('/')] + part_len = len(files) // num_parts + + p = Pool(args.num_workers) + for file in files[part_len * (this_part - 1):( + part_len * this_part) if this_part != num_parts else len(files)]: + p.apply_async( + extract_audio_feature, + args=(file, audio_tools, args.spectrogram_save_path)) + p.close() + p.join() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/build_file_list.py b/openmmlab_test/mmaction2-0.24.1/tools/data/build_file_list.py new file mode 100644 index 00000000..0ba15e75 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/build_file_list.py @@ -0,0 +1,269 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import glob +import json +import os.path as osp +import random + +from mmcv.runner import set_random_seed + +from tools.data.anno_txt2json import lines2dictlist +from tools.data.parse_file_list import (parse_directory, parse_diving48_splits, + parse_hmdb51_split, + parse_jester_splits, + parse_kinetics_splits, + parse_mit_splits, parse_mmit_splits, + parse_sthv1_splits, parse_sthv2_splits, + parse_ucf101_splits) + + +def parse_args(): + parser = argparse.ArgumentParser(description='Build file list') + parser.add_argument( + 'dataset', + type=str, + choices=[ + 'ucf101', 'kinetics400', 'kinetics600', 'kinetics700', 'thumos14', + 'sthv1', 'sthv2', 'mit', 'mmit', 'activitynet', 'hmdb51', 'jester', + 'diving48' + ], + help='dataset to be built file list') + parser.add_argument( + 'src_folder', type=str, help='root directory for the frames or videos') + parser.add_argument( + '--rgb-prefix', type=str, default='img_', help='prefix of rgb frames') + parser.add_argument( + '--flow-x-prefix', + type=str, + default='flow_x_', + help='prefix of flow x frames') + parser.add_argument( + '--flow-y-prefix', + type=str, + default='flow_y_', + help='prefix of flow y frames') + parser.add_argument( + '--num-split', + type=int, + default=3, + help='number of split to file list') + parser.add_argument( + '--subset', + type=str, + default='train', + choices=['train', 'val', 'test'], + help='subset to generate file list') + parser.add_argument( + '--level', + type=int, + default=2, + choices=[1, 2], + help='directory level of data') + parser.add_argument( + '--format', + type=str, + default='rawframes', + choices=['rawframes', 'videos'], + help='data format') + parser.add_argument( + '--out-root-path', + type=str, + default='data/', + help='root path for output') + parser.add_argument( + '--output-format', + type=str, + default='txt', + choices=['txt', 'json'], + help='built file list format') + parser.add_argument('--seed', type=int, default=None, help='random seed') + parser.add_argument( + '--shuffle', + action='store_true', + default=False, + help='whether to shuffle the file list') + args = parser.parse_args() + + return args + + +def build_file_list(splits, frame_info, shuffle=False): + """Build file list for a certain data split. + + Args: + splits (tuple): Data split to generate file list. + frame_info (dict): Dict mapping from frames to path. e.g., + 'Skiing/v_Skiing_g18_c02': ('data/ucf101/rawframes/Skiing/v_Skiing_g18_c02', 0, 0). # noqa: E501 + shuffle (bool): Whether to shuffle the file list. + + Returns: + tuple: RGB file list for training and testing, together with + Flow file list for training and testing. + """ + + def build_list(split): + """Build RGB and Flow file list with a given split. + + Args: + split (list): Split to be generate file list. + + Returns: + tuple[list, list]: (rgb_list, flow_list), rgb_list is the + generated file list for rgb, flow_list is the generated + file list for flow. + """ + rgb_list, flow_list = list(), list() + for item in split: + if item[0] not in frame_info: + continue + if frame_info[item[0]][1] > 0: + # rawframes + rgb_cnt = frame_info[item[0]][1] + flow_cnt = frame_info[item[0]][2] + if isinstance(item[1], int): + rgb_list.append(f'{item[0]} {rgb_cnt} {item[1]}\n') + flow_list.append(f'{item[0]} {flow_cnt} {item[1]}\n') + elif isinstance(item[1], list): + # only for multi-label datasets like mmit + rgb_list.append(f'{item[0]} {rgb_cnt} ' + + ' '.join([str(digit) + for digit in item[1]]) + '\n') + rgb_list.append(f'{item[0]} {flow_cnt} ' + + ' '.join([str(digit) + for digit in item[1]]) + '\n') + else: + raise ValueError( + 'frame_info should be ' + + '[`video`(str), `label`(int)|`labels(list[int])`') + else: + # videos + if isinstance(item[1], int): + rgb_list.append(f'{frame_info[item[0]][0]} {item[1]}\n') + flow_list.append(f'{frame_info[item[0]][0]} {item[1]}\n') + elif isinstance(item[1], list): + # only for multi-label datasets like mmit + rgb_list.append(f'{frame_info[item[0]][0]} ' + + ' '.join([str(digit) + for digit in item[1]]) + '\n') + flow_list.append( + f'{frame_info[item[0]][0]} ' + + ' '.join([str(digit) for digit in item[1]]) + '\n') + else: + raise ValueError( + 'frame_info should be ' + + '[`video`(str), `label`(int)|`labels(list[int])`') + if shuffle: + random.shuffle(rgb_list) + random.shuffle(flow_list) + return rgb_list, flow_list + + train_rgb_list, train_flow_list = build_list(splits[0]) + test_rgb_list, test_flow_list = build_list(splits[1]) + return (train_rgb_list, test_rgb_list), (train_flow_list, test_flow_list) + + +def main(): + args = parse_args() + + if args.seed is not None: + print(f'Set random seed to {args.seed}') + set_random_seed(args.seed) + + if args.format == 'rawframes': + frame_info = parse_directory( + args.src_folder, + rgb_prefix=args.rgb_prefix, + flow_x_prefix=args.flow_x_prefix, + flow_y_prefix=args.flow_y_prefix, + level=args.level) + elif args.format == 'videos': + if args.level == 1: + # search for one-level directory + video_list = glob.glob(osp.join(args.src_folder, '*')) + elif args.level == 2: + # search for two-level directory + video_list = glob.glob(osp.join(args.src_folder, '*', '*')) + else: + raise ValueError(f'level must be 1 or 2, but got {args.level}') + frame_info = {} + for video in video_list: + video_path = osp.relpath(video, args.src_folder) + # video_id: (video_relative_path, -1, -1) + frame_info[osp.splitext(video_path)[0]] = (video_path, -1, -1) + else: + raise NotImplementedError('only rawframes and videos are supported') + + if args.dataset == 'ucf101': + splits = parse_ucf101_splits(args.level) + elif args.dataset == 'sthv1': + splits = parse_sthv1_splits(args.level) + elif args.dataset == 'sthv2': + splits = parse_sthv2_splits(args.level) + elif args.dataset == 'mit': + splits = parse_mit_splits() + elif args.dataset == 'mmit': + splits = parse_mmit_splits() + elif args.dataset in ['kinetics400', 'kinetics600', 'kinetics700']: + splits = parse_kinetics_splits(args.level, args.dataset) + elif args.dataset == 'hmdb51': + splits = parse_hmdb51_split(args.level) + elif args.dataset == 'jester': + splits = parse_jester_splits(args.level) + elif args.dataset == 'diving48': + splits = parse_diving48_splits() + else: + raise ValueError( + f"Supported datasets are 'ucf101, sthv1, sthv2', 'jester', " + f"'mmit', 'mit', 'kinetics400', 'kinetics600', 'kinetics700', but " + f'got {args.dataset}') + + assert len(splits) == args.num_split + + out_path = args.out_root_path + args.dataset + + if len(splits) > 1: + for i, split in enumerate(splits): + file_lists = build_file_list( + split, frame_info, shuffle=args.shuffle) + train_name = f'{args.dataset}_train_split_{i+1}_{args.format}.txt' + val_name = f'{args.dataset}_val_split_{i+1}_{args.format}.txt' + if args.output_format == 'txt': + with open(osp.join(out_path, train_name), 'w') as f: + f.writelines(file_lists[0][0]) + with open(osp.join(out_path, val_name), 'w') as f: + f.writelines(file_lists[0][1]) + elif args.output_format == 'json': + train_list = lines2dictlist(file_lists[0][0], args.format) + val_list = lines2dictlist(file_lists[0][1], args.format) + train_name = train_name.replace('.txt', '.json') + val_name = val_name.replace('.txt', '.json') + with open(osp.join(out_path, train_name), 'w') as f: + json.dump(train_list, f) + with open(osp.join(out_path, val_name), 'w') as f: + json.dump(val_list, f) + else: + lists = build_file_list(splits[0], frame_info, shuffle=args.shuffle) + + if args.subset == 'train': + ind = 0 + elif args.subset == 'val': + ind = 1 + elif args.subset == 'test': + ind = 2 + else: + raise ValueError(f"subset must be in ['train', 'val', 'test'], " + f'but got {args.subset}.') + + filename = f'{args.dataset}_{args.subset}_list_{args.format}.txt' + if args.output_format == 'txt': + with open(osp.join(out_path, filename), 'w') as f: + f.writelines(lists[0][ind]) + elif args.output_format == 'json': + data_list = lines2dictlist(lists[0][ind], args.format) + filename = filename.replace('.txt', '.json') + with open(osp.join(out_path, filename), 'w') as f: + json.dump(data_list, f) + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/build_rawframes.py b/openmmlab_test/mmaction2-0.24.1/tools/data/build_rawframes.py new file mode 100644 index 00000000..70054e5b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/build_rawframes.py @@ -0,0 +1,278 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import glob +import os +import os.path as osp +import sys +import warnings +from multiprocessing import Lock, Pool + +import mmcv +import numpy as np + + +def extract_frame(vid_item): + """Generate optical flow using dense flow. + + Args: + vid_item (list): Video item containing video full path, + video (short) path, video id. + + Returns: + bool: Whether generate optical flow successfully. + """ + full_path, vid_path, vid_id, method, task, report_file = vid_item + if '/' in vid_path: + act_name = osp.basename(osp.dirname(vid_path)) + out_full_path = osp.join(args.out_dir, act_name) + else: + out_full_path = args.out_dir + + run_success = -1 + + if task == 'rgb': + if args.use_opencv: + # Not like using denseflow, + # Use OpenCV will not make a sub directory with the video name + try: + video_name = osp.splitext(osp.basename(vid_path))[0] + out_full_path = osp.join(out_full_path, video_name) + + vr = mmcv.VideoReader(full_path) + for i, vr_frame in enumerate(vr): + if vr_frame is not None: + w, h, _ = np.shape(vr_frame) + if args.new_short == 0: + if args.new_width == 0 or args.new_height == 0: + # Keep original shape + out_img = vr_frame + else: + out_img = mmcv.imresize( + vr_frame, + (args.new_width, args.new_height)) + else: + if min(h, w) == h: + new_h = args.new_short + new_w = int((new_h / h) * w) + else: + new_w = args.new_short + new_h = int((new_w / w) * h) + out_img = mmcv.imresize(vr_frame, (new_h, new_w)) + mmcv.imwrite(out_img, + f'{out_full_path}/img_{i + 1:05d}.jpg') + else: + warnings.warn( + 'Length inconsistent!' + f'Early stop with {i + 1} out of {len(vr)} frames.' + ) + break + run_success = 0 + except Exception: + run_success = -1 + else: + if args.new_short == 0: + cmd = osp.join( + f"denseflow '{full_path}' -b=20 -s=0 -o='{out_full_path}'" + f' -nw={args.new_width} -nh={args.new_height} -v') + else: + cmd = osp.join( + f"denseflow '{full_path}' -b=20 -s=0 -o='{out_full_path}'" + f' -ns={args.new_short} -v') + run_success = os.system(cmd) + elif task == 'flow': + if args.input_frames: + if args.new_short == 0: + cmd = osp.join( + f"denseflow '{full_path}' -a={method} -b=20 -s=1 -o='{out_full_path}'" # noqa: E501 + f' -nw={args.new_width} --nh={args.new_height} -v --if') + else: + cmd = osp.join( + f"denseflow '{full_path}' -a={method} -b=20 -s=1 -o='{out_full_path}'" # noqa: E501 + f' -ns={args.new_short} -v --if') + else: + if args.new_short == 0: + cmd = osp.join( + f"denseflow '{full_path}' -a={method} -b=20 -s=1 -o='{out_full_path}'" # noqa: E501 + f' -nw={args.new_width} --nh={args.new_height} -v') + else: + cmd = osp.join( + f"denseflow '{full_path}' -a={method} -b=20 -s=1 -o='{out_full_path}'" # noqa: E501 + f' -ns={args.new_short} -v') + run_success = os.system(cmd) + else: + if args.new_short == 0: + cmd_rgb = osp.join( + f"denseflow '{full_path}' -b=20 -s=0 -o='{out_full_path}'" + f' -nw={args.new_width} -nh={args.new_height} -v') + cmd_flow = osp.join( + f"denseflow '{full_path}' -a={method} -b=20 -s=1 -o='{out_full_path}'" # noqa: E501 + f' -nw={args.new_width} -nh={args.new_height} -v') + else: + cmd_rgb = osp.join( + f"denseflow '{full_path}' -b=20 -s=0 -o='{out_full_path}'" + f' -ns={args.new_short} -v') + cmd_flow = osp.join( + f"denseflow '{full_path}' -a={method} -b=20 -s=1 -o='{out_full_path}'" # noqa: E501 + f' -ns={args.new_short} -v') + run_success_rgb = os.system(cmd_rgb) + run_success_flow = os.system(cmd_flow) + if run_success_flow == 0 and run_success_rgb == 0: + run_success = 0 + + if run_success == 0: + print(f'{task} {vid_id} {vid_path} {method} done') + sys.stdout.flush() + + lock.acquire() + with open(report_file, 'a') as f: + line = full_path + '\n' + f.write(line) + lock.release() + else: + print(f'{task} {vid_id} {vid_path} {method} got something wrong') + sys.stdout.flush() + + return True + + +def parse_args(): + parser = argparse.ArgumentParser(description='extract optical flows') + parser.add_argument('src_dir', type=str, help='source video directory') + parser.add_argument('out_dir', type=str, help='output rawframe directory') + parser.add_argument( + '--task', + type=str, + default='flow', + choices=['rgb', 'flow', 'both'], + help='which type of frames to be extracted') + parser.add_argument( + '--level', + type=int, + choices=[1, 2], + default=2, + help='directory level of data') + parser.add_argument( + '--num-worker', + type=int, + default=8, + help='number of workers to build rawframes') + parser.add_argument( + '--flow-type', + type=str, + default=None, + choices=[None, 'tvl1', 'warp_tvl1', 'farn', 'brox'], + help='flow type to be generated') + parser.add_argument( + '--out-format', + type=str, + default='jpg', + choices=['jpg', 'h5', 'png'], + help='output format') + parser.add_argument( + '--ext', + type=str, + default='avi', + choices=['avi', 'mp4', 'webm'], + help='video file extensions') + parser.add_argument( + '--mixed-ext', + action='store_true', + help='process video files with mixed extensions') + parser.add_argument( + '--new-width', type=int, default=0, help='resize image width') + parser.add_argument( + '--new-height', type=int, default=0, help='resize image height') + parser.add_argument( + '--new-short', + type=int, + default=0, + help='resize image short side length keeping ratio') + parser.add_argument('--num-gpu', type=int, default=8, help='number of GPU') + parser.add_argument( + '--resume', + action='store_true', + default=False, + help='resume optical flow extraction instead of overwriting') + parser.add_argument( + '--use-opencv', + action='store_true', + help='Whether to use opencv to extract rgb frames') + parser.add_argument( + '--input-frames', + action='store_true', + help='Whether to extract flow frames based on rgb frames') + parser.add_argument( + '--report-file', + type=str, + default='build_report.txt', + help='report to record files which have been successfully processed') + args = parser.parse_args() + + return args + + +def init(lock_): + global lock + lock = lock_ + + +if __name__ == '__main__': + args = parse_args() + + if not osp.isdir(args.out_dir): + print(f'Creating folder: {args.out_dir}') + os.makedirs(args.out_dir) + + if args.level == 2: + classes = os.listdir(args.src_dir) + for classname in classes: + new_dir = osp.join(args.out_dir, classname) + if not osp.isdir(new_dir): + print(f'Creating folder: {new_dir}') + os.makedirs(new_dir) + + if args.input_frames: + print('Reading rgb frames from folder: ', args.src_dir) + fullpath_list = glob.glob(args.src_dir + '/*' * args.level) + print('Total number of rgb frame folders found: ', len(fullpath_list)) + else: + print('Reading videos from folder: ', args.src_dir) + if args.mixed_ext: + print('Extension of videos is mixed') + fullpath_list = glob.glob(args.src_dir + '/*' * args.level) + else: + print('Extension of videos: ', args.ext) + fullpath_list = glob.glob(args.src_dir + '/*' * args.level + '.' + + args.ext) + print('Total number of videos found: ', len(fullpath_list)) + + if args.resume: + done_fullpath_list = [] + with open(args.report_file) as f: + for line in f: + if line == '\n': + continue + done_full_path = line.strip().split()[0] + done_fullpath_list.append(done_full_path) + done_fullpath_list = set(done_fullpath_list) + fullpath_list = list(set(fullpath_list).difference(done_fullpath_list)) + + if args.level == 2: + vid_list = list( + map( + lambda p: osp.join( + osp.basename(osp.dirname(p)), osp.basename(p)), + fullpath_list)) + elif args.level == 1: + vid_list = list(map(osp.basename, fullpath_list)) + + lock = Lock() + pool = Pool(args.num_worker, initializer=init, initargs=(lock, )) + pool.map( + extract_frame, + zip(fullpath_list, vid_list, range(len(vid_list)), + len(vid_list) * [args.flow_type], + len(vid_list) * [args.task], + len(vid_list) * [args.report_file])) + pool.close() + pool.join() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/build_videos.py b/openmmlab_test/mmaction2-0.24.1/tools/data/build_videos.py new file mode 100644 index 00000000..77a3a0bd --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/build_videos.py @@ -0,0 +1,127 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import glob +import os +import os.path as osp +import sys +from multiprocessing import Pool + + +def encode_video(frame_dir_item): + """Encode frames to video using ffmpeg. + + Args: + frame_dir_item (list): Rawframe item containing raw frame directory + full path, rawframe directory (short) path, rawframe directory id. + + Returns: + bool: Whether synthesize video successfully. + """ + full_path, frame_dir_path, frame_dir_id = frame_dir_item + out_full_path = args.out_dir + + img_name_tmpl = args.filename_tmpl + '.' + args.in_format + img_path = osp.join(full_path, img_name_tmpl) + + out_vid_name = frame_dir_path + '.' + args.ext + out_vid_path = osp.join(out_full_path, out_vid_name) + + cmd = osp.join( + f"ffmpeg -start_number {args.start_idx} -r {args.fps} -i '{img_path}' " + f"-vcodec {args.vcodec} '{out_vid_path}'") + os.system(cmd) + + print(f'{frame_dir_id} {frame_dir_path} done') + sys.stdout.flush() + return True + + +def parse_args(): + parser = argparse.ArgumentParser(description='synthesize videos') + parser.add_argument('src_dir', type=str, help='source rawframe directory') + parser.add_argument('out_dir', type=str, help='output video directory') + parser.add_argument( + '--fps', type=int, default=30, help='fps of videos to be synthesized') + parser.add_argument( + '--level', + type=int, + choices=[1, 2], + default=2, + help='directory level of data') + parser.add_argument( + '--num-worker', + type=int, + default=8, + help='number of workers to build videos') + parser.add_argument( + '--in-format', + type=str, + default='jpg', + choices=['jpg', 'png'], + help='input format') + parser.add_argument( + '--start-idx', type=int, default=0, help='starting index of rawframes') + parser.add_argument( + '--filename-tmpl', + type=str, + default='img_%05d', + help='filename template of rawframes') + parser.add_argument( + '--vcodec', type=str, default='mpeg4', help='coding method of videos') + parser.add_argument( + '--ext', + type=str, + default='mp4', + choices=['mp4', 'avi'], + help='video file extensions') + parser.add_argument('--num-gpu', type=int, default=8, help='number of GPU') + parser.add_argument( + '--resume', + action='store_true', + default=False, + help='resume optical flow extraction instead of overwriting') + args = parser.parse_args() + + return args + + +if __name__ == '__main__': + args = parse_args() + + if not osp.isdir(args.out_dir): + print(f'Creating folder: {args.out_dir}') + os.makedirs(args.out_dir) + + if args.level == 2: + classes = os.listdir(args.src_dir) + for classname in classes: + new_dir = osp.join(args.out_dir, classname) + if not osp.isdir(new_dir): + print(f'Creating folder: {new_dir}') + os.makedirs(new_dir) + + print('Reading rgb frames from folder: ', args.src_dir) + print('Input format of rgb frames: ', args.in_format) + fullpath_list = glob.glob(args.src_dir + '/*' * args.level) + done_fullpath_list = glob.glob(args.src_dir + '/*' * args.level + '.' + + args.ext) + print('Total number of rgb frame folders found: ', len(fullpath_list)) + + if args.resume: + fullpath_list = set(fullpath_list).difference(set(done_fullpath_list)) + fullpath_list = list(fullpath_list) + print('Resuming. number of videos to be synthesized: ', + len(fullpath_list)) + + if args.level == 2: + frame_dir_list = list( + map( + lambda p: osp.join( + osp.basename(osp.dirname(p)), osp.basename(p)), + fullpath_list)) + elif args.level == 1: + frame_dir_list = list(map(osp.basename, fullpath_list)) + + pool = Pool(args.num_worker) + pool.map(encode_video, + zip(fullpath_list, frame_dir_list, range(len(frame_dir_list)))) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/denormalize_proposal_file.py b/openmmlab_test/mmaction2-0.24.1/tools/data/denormalize_proposal_file.py new file mode 100644 index 00000000..1e198d03 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/denormalize_proposal_file.py @@ -0,0 +1,82 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import os.path as osp + +from mmaction.localization import load_localize_proposal_file +from tools.data.parse_file_list import parse_directory + + +def process_norm_proposal_file(norm_proposal_file, frame_dict): + """Process the normalized proposal file and denormalize it. + + Args: + norm_proposal_file (str): Name of normalized proposal file. + frame_dict (dict): Information of frame folders. + """ + proposal_file = norm_proposal_file.replace('normalized_', '') + norm_proposals = load_localize_proposal_file(norm_proposal_file) + + processed_proposal_list = [] + for idx, norm_proposal in enumerate(norm_proposals): + video_id = norm_proposal[0] + frame_info = frame_dict[video_id] + num_frames = frame_info[1] + frame_path = osp.basename(frame_info[0]) + + gt = [[ + int(x[0]), + int(float(x[1]) * num_frames), + int(float(x[2]) * num_frames) + ] for x in norm_proposal[2]] + + proposal = [[ + int(x[0]), + float(x[1]), + float(x[2]), + int(float(x[3]) * num_frames), + int(float(x[4]) * num_frames) + ] for x in norm_proposal[3]] + + gt_dump = '\n'.join(['{} {} {}'.format(*x) for x in gt]) + gt_dump += '\n' if len(gt) else '' + proposal_dump = '\n'.join( + ['{} {:.04f} {:.04f} {} {}'.format(*x) for x in proposal]) + proposal_dump += '\n' if len(proposal) else '' + + processed_proposal_list.append( + f'# {idx}\n{frame_path}\n{num_frames}\n1' + f'\n{len(gt)}\n{gt_dump}{len(proposal)}\n{proposal_dump}') + + with open(proposal_file, 'w') as f: + f.writelines(processed_proposal_list) + + +def parse_args(): + parser = argparse.ArgumentParser(description='Denormalize proposal file') + parser.add_argument( + 'dataset', + type=str, + choices=['thumos14'], + help='dataset to be denormalize proposal file') + parser.add_argument( + '--norm-proposal-file', + type=str, + help='normalized proposal file to be denormalize') + parser.add_argument( + '--data-prefix', + type=str, + help='path to a directory where rawframes are held') + args = parser.parse_args() + return args + + +def main(): + args = parse_args() + + print(f'Converting from {args.norm_proposal_file}.') + frame_dict = parse_directory(args.data_prefix) + process_norm_proposal_file(args.norm_proposal_file, frame_dict) + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/README.md b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/README.md new file mode 100644 index 00000000..588cddd1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/README.md @@ -0,0 +1,123 @@ +# Preparing Diving48 + +## Introduction + + + +```BibTeX +@inproceedings{li2018resound, + title={Resound: Towards action recognition without representation bias}, + author={Li, Yingwei and Li, Yi and Vasconcelos, Nuno}, + booktitle={Proceedings of the European Conference on Computer Vision (ECCV)}, + pages={513--528}, + year={2018} +} +``` + +For basic dataset information, you can refer to the official dataset [website](http://www.svcl.ucsd.edu/projects/resound/dataset.html). +Before we start, please make sure that the directory is located at `$MMACTION2/tools/data/diving48/`. + +## Step 1. Prepare Annotations + +You can run the following script to download annotations (considering the correctness of annotation files, we only download V2 version here). + +```shell +bash download_annotations.sh +``` + +## Step 2. Prepare Videos + +You can run the following script to download videos. + +```shell +bash download_videos.sh +``` + +## Step 3. Prepare RGB and Flow + +This part is **optional** if you only want to use the video loader. + +The frames provided in official compressed file are not complete. You may need to go through the following extraction steps to get the complete frames. + +Before extracting, please refer to [install.md](/docs/install.md) for installing [denseflow](https://github.com/open-mmlab/denseflow). + +If you have plenty of SSD space, then we recommend extracting frames there for better I/O performance. + +You can run the following script to soft link SSD. + +```shell +# execute these two line (Assume the SSD is mounted at "/mnt/SSD/") +mkdir /mnt/SSD/diving48_extracted/ +ln -s /mnt/SSD/diving48_extracted/ ../../../data/diving48/rawframes +``` + +If you only want to play with RGB frames (since extracting optical flow can be time-consuming), consider running the following script to extract **RGB-only** frames using denseflow. + +```shell +cd $MMACTION2/tools/data/diving48/ +bash extract_rgb_frames.sh +``` + +If you didn't install denseflow, you can still extract RGB frames using OpenCV by the following script, but it will keep the original size of the images. + +```shell +cd $MMACTION2/tools/data/diving48/ +bash extract_rgb_frames_opencv.sh +``` + +If both are required, run the following script to extract frames. + +```shell +cd $MMACTION2/tools/data/diving48/ +bash extract_frames.sh +``` + +## Step 4. Generate File List + +you can run the follow script to generate file list in the format of rawframes and videos. + +```shell +bash generate_videos_filelist.sh +bash generate_rawframes_filelist.sh +``` + +## Step 5. Check Directory Structure + +After the whole data process for Diving48 preparation, +you will get the rawframes (RGB + Flow), videos and annotation files for Diving48. + +In the context of the whole project (for Diving48 only), the folder structure will look like: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── diving48 +│ │ ├── diving48_{train,val}_list_rawframes.txt +│ │ ├── diving48_{train,val}_list_videos.txt +│ │ ├── annotations +│ | | ├── Diving48_V2_train.json +│ | | ├── Diving48_V2_test.json +│ | | ├── Diving48_vocab.json +│ | ├── videos +│ | | ├── _8Vy3dlHg2w_00000.mp4 +│ | | ├── _8Vy3dlHg2w_00001.mp4 +│ | | ├── ... +│ | ├── rawframes +│ | | ├── 2x00lRzlTVQ_00000 +│ | | | ├── img_00001.jpg +│ | | | ├── img_00002.jpg +│ | | | ├── ... +│ | | | ├── flow_x_00001.jpg +│ | | | ├── flow_x_00002.jpg +│ | | | ├── ... +│ | | | ├── flow_y_00001.jpg +│ | | | ├── flow_y_00002.jpg +│ | | | ├── ... +│ | | ├── 2x00lRzlTVQ_00001 +│ | | ├── ... +``` + +For training and evaluating on Diving48, please refer to [getting_started.md](/docs/getting_started.md). diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/README_zh-CN.md new file mode 100644 index 00000000..e91f8729 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/README_zh-CN.md @@ -0,0 +1,123 @@ +# 准备 Diving48 + +## 简介 + + + +```BibTeX +@inproceedings{li2018resound, + title={Resound: Towards action recognition without representation bias}, + author={Li, Yingwei and Li, Yi and Vasconcelos, Nuno}, + booktitle={Proceedings of the European Conference on Computer Vision (ECCV)}, + pages={513--528}, + year={2018} +} +``` + +用户可参考该数据集的 [官网](http://www.svcl.ucsd.edu/projects/resound/dataset.html),以获取数据集相关的基本信息。 +在数据集准备前,请确保命令行当前路径为 `$MMACTION2/tools/data/diving48/`。 + +## 步骤 1. 下载标注文件 + +用户可以使用以下命令下载标注文件(考虑到标注的准确性,这里仅下载 V2 版本)。 + +```shell +bash download_annotations.sh +``` + +## 步骤 2. 准备视频 + +用户可以使用以下命令下载视频。 + +```shell +bash download_videos.sh +``` + +## Step 3. 抽取 RGB 帧和光流 + +如果用户只想使用视频加载训练,则该部分是 **可选项**。 + +官网提供的帧压缩包并不完整。若想获取完整的数据,可以使用以下步骤解帧。 + +在抽取视频帧和光流之前,请参考 [安装指南](/docs_zh_CN/install.md) 安装 [denseflow](https://github.com/open-mmlab/denseflow)。 + +如果拥有大量的 SSD 存储空间,则推荐将抽取的帧存储至 I/O 性能更优秀的 SSD 中。 + +可以运行以下命令为 SSD 建立软链接。 + +```shell +# 执行这两行进行抽取(假设 SSD 挂载在 "/mnt/SSD/") +mkdir /mnt/SSD/diving48_extracted/ +ln -s /mnt/SSD/diving48_extracted/ ../../../data/diving48/rawframes +``` + +如果用户需要抽取 RGB 帧(因为抽取光流的过程十分耗时),可以考虑运行以下命令使用 denseflow **只抽取 RGB 帧**。 + +```shell +cd $MMACTION2/tools/data/diving48/ +bash extract_rgb_frames.sh +``` + +如果用户没有安装 denseflow,则可以运行以下命令使用 OpenCV 抽取 RGB 帧。然而,该方法只能抽取与原始视频分辨率相同的帧。 + +```shell +cd $MMACTION2/tools/data/diving48/ +bash extract_rgb_frames_opencv.sh +``` + +如果用户想抽取 RGB 帧和光流,则可以运行以下脚本进行抽取。 + +```shell +cd $MMACTION2/tools/data/diving48/ +bash extract_frames.sh +``` + +## 步骤 4. 生成文件列表 + +用户可以通过运行以下命令生成帧和视频格式的文件列表。 + +```shell +bash generate_videos_filelist.sh +bash generate_rawframes_filelist.sh +``` + +## 步骤 5. 检查文件夹结构 + +在完成所有 Diving48 数据集准备流程后, +用户可以获得对应的 RGB + 光流文件,视频文件以及标注文件。 + +在整个 MMAction2 文件夹下,Diving48 的文件结构如下: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── diving48 +│ │ ├── diving48_{train,val}_list_rawframes.txt +│ │ ├── diving48_{train,val}_list_videos.txt +│ │ ├── annotations +│ | | ├── Diving48_V2_train.json +│ | | ├── Diving48_V2_test.json +│ | | ├── Diving48_vocab.json +│ | ├── videos +│ | | ├── _8Vy3dlHg2w_00000.mp4 +│ | | ├── _8Vy3dlHg2w_00001.mp4 +│ | | ├── ... +│ | ├── rawframes +│ | | ├── 2x00lRzlTVQ_00000 +│ | | | ├── img_00001.jpg +│ | | | ├── img_00002.jpg +│ | | | ├── ... +│ | | | ├── flow_x_00001.jpg +│ | | | ├── flow_x_00002.jpg +│ | | | ├── ... +│ | | | ├── flow_y_00001.jpg +│ | | | ├── flow_y_00002.jpg +│ | | | ├── ... +│ | | ├── 2x00lRzlTVQ_00001 +│ | | ├── ... +``` + +关于对 Diving48 进行训练和验证,可以参考 [基础教程](/docs_zh_CN/getting_started.md)。 diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/download_annotations.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/download_annotations.sh new file mode 100644 index 00000000..1f884567 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/download_annotations.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +DATA_DIR="../../../data/diving48/annotations" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +cd ${DATA_DIR} + +wget http://www.svcl.ucsd.edu/projects/resound/Diving48_vocab.json +wget http://www.svcl.ucsd.edu/projects/resound/Diving48_V2_train.json +wget http://www.svcl.ucsd.edu/projects/resound/Diving48_V2_test.json + +cd - diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/download_videos.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/download_videos.sh new file mode 100644 index 00000000..757f443f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/download_videos.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +DATA_DIR="../../../data/diving48/" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +cd ${DATA_DIR} + +wget http://www.svcl.ucsd.edu/projects/resound/Diving48_rgb.tar.gz --no-check-certificate +tar -zxvf Diving48_rgb.tar.gz +mv ./rgb ./videos + +cd - diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/extract_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/extract_frames.sh new file mode 100644 index 00000000..1563d999 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/extract_frames.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/diving48/videos/ ../../data/diving48/rawframes/ --task both --level 1 --flow-type tvl1 --ext mp4 +echo "Raw frames (RGB and tv-l1) Generated" +cd - diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/extract_rgb_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/extract_rgb_frames.sh new file mode 100644 index 00000000..830d1433 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/extract_rgb_frames.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/diving48/videos/ ../../data/diving48/rawframes/ --task rgb --level 1 --ext mp4 +echo "Genearte raw frames (RGB only)" + +cd - diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/extract_rgb_frames_opencv.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/extract_rgb_frames_opencv.sh new file mode 100644 index 00000000..db4c83c3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/extract_rgb_frames_opencv.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/diving48/videos/ ../../data/diving48/rawframes/ --task rgb --level 1 --ext mp4 --use-opencv +echo "Genearte raw frames (RGB only)" + +cd - diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/generate_rawframes_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/generate_rawframes_filelist.sh new file mode 100644 index 00000000..96d73976 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/generate_rawframes_filelist.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +cd ../../../ +PYTHONPATH=. python tools/data/build_file_list.py diving48 data/diving48/rawframes/ --num-split 1 --level 1 --subset train --format rawframes --shuffle +PYTHONPATH=. python tools/data/build_file_list.py diving48 data/diving48/rawframes/ --num-split 1 --level 1 --subset val --format rawframes --shuffle +echo "Filelist for rawframes generated." + +cd tools/data/diving48/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/generate_videos_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/generate_videos_filelist.sh new file mode 100644 index 00000000..68d7ff19 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/generate_videos_filelist.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +cd ../../../ +PYTHONPATH=. python tools/data/build_file_list.py diving48 data/diving48/videos/ --num-split 1 --level 1 --subset train --format videos --shuffle +PYTHONPATH=. python tools/data/build_file_list.py diving48 data/diving48/videos/ --num-split 1 --level 1 --subset val --format videos --shuffle +echo "Filelist for videos generated." + +cd tools/data/diving48/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/label_map.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/label_map.txt new file mode 100644 index 00000000..e2f629dd --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/diving48/label_map.txt @@ -0,0 +1,48 @@ +Back+15som+05Twis+FREE +Back+15som+15Twis+FREE +Back+15som+25Twis+FREE +Back+15som+NoTwis+PIKE +Back+15som+NoTwis+TUCK +Back+25som+15Twis+PIKE +Back+25som+25Twis+PIKE +Back+25som+NoTwis+PIKE +Back+25som+NoTwis+TUCK +Back+2som+15Twis+FREE +Back+2som+25Twis+FREE +Back+35som+NoTwis+PIKE +Back+35som+NoTwis+TUCK +Back+3som+NoTwis+PIKE +Back+3som+NoTwis+TUCK +Back+Dive+NoTwis+PIKE +Back+Dive+NoTwis+TUCK +Forward+15som+1Twis+FREE +Forward+15som+2Twis+FREE +Forward+15som+NoTwis+PIKE +Forward+1som+NoTwis+PIKE +Forward+25som+1Twis+PIKE +Forward+25som+2Twis+PIKE +Forward+25som+3Twis+PIKE +Forward+25som+NoTwis+PIKE +Forward+25som+NoTwis+TUCK +Forward+35som+NoTwis+PIKE +Forward+35som+NoTwis+TUCK +Forward+45som+NoTwis+TUCK +Forward+Dive+NoTwis+PIKE +Forward+Dive+NoTwis+STR +Inward+15som+NoTwis+PIKE +Inward+15som+NoTwis+TUCK +Inward+25som+NoTwis+PIKE +Inward+25som+NoTwis+TUCK +Inward+35som+NoTwis+TUCK +Inward+Dive+NoTwis+PIKE +Reverse+15som+05Twis+FREE +Reverse+15som+15Twis+FREE +Reverse+15som+25Twis+FREE +Reverse+15som+35Twis+FREE +Reverse+15som+NoTwis+PIKE +Reverse+25som+15Twis+PIKE +Reverse+25som+NoTwis+PIKE +Reverse+25som+NoTwis+TUCK +Reverse+35som+NoTwis+TUCK +Reverse+Dive+NoTwis+PIKE +Reverse+Dive+NoTwis+TUCK diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/extract_audio.py b/openmmlab_test/mmaction2-0.24.1/tools/data/extract_audio.py new file mode 100644 index 00000000..ed828f99 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/extract_audio.py @@ -0,0 +1,61 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import glob +import os +import os.path as osp +from multiprocessing import Pool + +import mmcv + + +def extract_audio_wav(line): + """Extract the audio wave from video streams using FFMPEG.""" + video_id, _ = osp.splitext(osp.basename(line)) + video_dir = osp.dirname(line) + video_rel_dir = osp.relpath(video_dir, args.root) + dst_dir = osp.join(args.dst_root, video_rel_dir) + os.popen(f'mkdir -p {dst_dir}') + try: + if osp.exists(f'{dst_dir}/{video_id}.wav'): + return + cmd = f'ffmpeg -i {line} -map 0:a -y {dst_dir}/{video_id}.wav' + os.popen(cmd) + except BaseException: + with open('extract_wav_err_file.txt', 'a+') as f: + f.write(f'{line}\n') + + +def parse_args(): + parser = argparse.ArgumentParser(description='Extract audios') + parser.add_argument('root', type=str, help='source video directory') + parser.add_argument('dst_root', type=str, help='output audio directory') + parser.add_argument( + '--level', type=int, default=2, help='directory level of data') + parser.add_argument( + '--ext', + type=str, + default='mp4', + choices=['avi', 'mp4', 'webm'], + help='video file extensions') + parser.add_argument( + '--num-workers', type=int, default=8, help='number of workers') + args = parser.parse_args() + + return args + + +if __name__ == '__main__': + args = parse_args() + + mmcv.mkdir_or_exist(args.dst_root) + + print('Reading videos from folder: ', args.root) + print('Extension of videos: ', args.ext) + fullpath_list = glob.glob(args.root + '/*' * args.level + '.' + args.ext) + done_fullpath_list = glob.glob(args.dst_root + '/*' * args.level + '.wav') + print('Total number of videos found: ', len(fullpath_list)) + print('Total number of videos extracted finished: ', + len(done_fullpath_list)) + + pool = Pool(args.num_workers) + pool.map(extract_audio_wav, fullpath_list) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/gym/README.md b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/README.md new file mode 100644 index 00000000..a39eda6f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/README.md @@ -0,0 +1,109 @@ +# Preparing GYM + +## Introduction + + + +```BibTeX +@inproceedings{shao2020finegym, + title={Finegym: A hierarchical video dataset for fine-grained action understanding}, + author={Shao, Dian and Zhao, Yue and Dai, Bo and Lin, Dahua}, + booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition}, + pages={2616--2625}, + year={2020} +} +``` + +For basic dataset information, please refer to the official [project](https://sdolivia.github.io/FineGym/) and the [paper](https://arxiv.org/abs/2004.06704). +We currently provide the data pre-processing pipeline for GYM99. +Before we start, please make sure that the directory is located at `$MMACTION2/tools/data/gym/`. + +## Step 1. Prepare Annotations + +First of all, you can run the following script to prepare annotations. + +```shell +bash download_annotations.sh +``` + +## Step 2. Prepare Videos + +Then, you can run the following script to prepare videos. +The codes are adapted from the [official crawler](https://github.com/activitynet/ActivityNet/tree/master/Crawler/Kinetics). Note that this might take a long time. + +```shell +bash download_videos.sh +``` + +## Step 3. Trim Videos into Events + +First, you need to trim long videos into events based on the annotation of GYM with the following scripts. + +```shell +python trim_event.py +``` + +## Step 4. Trim Events into Subactions + +Then, you need to trim events into subactions based on the annotation of GYM with the following scripts. We use the two stage trimming for better efficiency (trimming multiple short clips from a long video can be extremely inefficient, since you need to go over the video many times). + +```shell +python trim_subaction.py +``` + +## Step 5. Extract RGB and Flow + +This part is **optional** if you only want to use the video loader for RGB model training. + +Before extracting, please refer to [install.md](/docs/install.md) for installing [denseflow](https://github.com/open-mmlab/denseflow). + +Run the following script to extract both rgb and flow using "tvl1" algorithm. + +```shell +bash extract_frames.sh +``` + +## Step 6. Generate file list for GYM99 based on extracted subactions + +You can use the following script to generate train / val lists for GYM99. + +```shell +python generate_file_list.py +``` + +## Step 7. Folder Structure + +After the whole data pipeline for GYM preparation. You can get the subaction clips, event clips, raw videos and GYM99 train/val lists. + +In the context of the whole project (for GYM only), the full folder structure will look like: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── gym +| | ├── annotations +| | | ├── gym99_train_org.txt +| | | ├── gym99_val_org.txt +| | | ├── gym99_train.txt +| | | ├── gym99_val.txt +| | | ├── annotation.json +| | | └── event_annotation.json +│ │ ├── videos +| | | ├── 0LtLS9wROrk.mp4 +| | | ├── ... +| | | └── zfqS-wCJSsw.mp4 +│ │ ├── events +| | | ├── 0LtLS9wROrk_E_002407_002435.mp4 +| | | ├── ... +| | | └── zfqS-wCJSsw_E_006732_006824.mp4 +│ │ ├── subactions +| | | ├── 0LtLS9wROrk_E_002407_002435_A_0003_0005.mp4 +| | | ├── ... +| | | └── zfqS-wCJSsw_E_006244_006252_A_0000_0007.mp4 +| | └── subaction_frames +``` + +For training and evaluating on GYM, please refer to [getting_started](/docs/getting_started.md). diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/gym/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/README_zh-CN.md new file mode 100644 index 00000000..cb3a796e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/README_zh-CN.md @@ -0,0 +1,109 @@ +# 准备 GYM + +## 简介 + + + +```BibTeX +@inproceedings{shao2020finegym, + title={Finegym: A hierarchical video dataset for fine-grained action understanding}, + author={Shao, Dian and Zhao, Yue and Dai, Bo and Lin, Dahua}, + booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition}, + pages={2616--2625}, + year={2020} +} +``` + +请参照 [项目主页](https://sdolivia.github.io/FineGym/) 及 [原论文](https://sdolivia.github.io/FineGym/) 以获取数据集基本信息。 +MMAction2 当前支持 GYM99 的数据集预处理。 +在开始之前,用户需确保当前目录为 `$MMACTION2/tools/data/gym/`。 + +## 1. 准备标注文件 + +首先,用户可以使用如下脚本下载标注文件并进行预处理: + +```shell +bash download_annotations.sh +``` + +## 2. 准备视频 + +用户可以使用以下脚本准备视频,视频准备代码修改自 [ActivityNet 爬虫](https://github.com/activitynet/ActivityNet/tree/master/Crawler/Kinetics)。 +注意这一步骤将花费较长时间。 + +```shell +bash download_videos.sh +``` + +## 3. 裁剪长视频至动作级别 + +用户首先需要使用以下脚本将 GYM 中的长视频依据标注文件裁剪至动作级别。 + +```shell +python trim_event.py +``` + +## 4. 裁剪动作视频至分动作级别 + +随后,用户需要使用以下脚本将 GYM 中的动作视频依据标注文件裁剪至分动作级别。将视频的裁剪分成两个级别可以带来更高的效率(在长视频中裁剪多个极短片段异常耗时)。 + +```shell +python trim_subaction.py +``` + +## 5. 提取 RGB 帧和光流 + +如果用户仅使用 video loader,则可以跳过本步。 + +在提取之前,请参考 [安装教程](/docs_zh_CN/install.md) 安装 [denseflow](https://github.com/open-mmlab/denseflow)。 + +用户可使用如下脚本同时抽取 RGB 帧和光流(提取光流时使用 tvl1 算法): + +```shell +bash extract_frames.sh +``` + +## 6. 基于提取出的分动作生成文件列表 + +用户可使用以下脚本为 GYM99 生成训练及测试的文件列表: + +```shell +python generate_file_list.py +``` + +## 7. 目录结构 + +在完整完成 GYM 的数据处理后,将得到帧文件夹(RGB 帧和光流帧),动作视频片段,分动作视频片段以及训练测试所用标注文件。 + +在整个项目目录下(仅针对 GYM),完整目录结构如下所示: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── gym +| | ├── annotations +| | | ├── gym99_train_org.txt +| | | ├── gym99_val_org.txt +| | | ├── gym99_train.txt +| | | ├── gym99_val.txt +| | | ├── annotation.json +| | | └── event_annotation.json +│ │ ├── videos +| | | ├── 0LtLS9wROrk.mp4 +| | | ├── ... +| | | └── zfqS-wCJSsw.mp4 +│ │ ├── events +| | | ├── 0LtLS9wROrk_E_002407_002435.mp4 +| | | ├── ... +| | | └── zfqS-wCJSsw_E_006732_006824.mp4 +│ │ ├── subactions +| | | ├── 0LtLS9wROrk_E_002407_002435_A_0003_0005.mp4 +| | | ├── ... +| | | └── zfqS-wCJSsw_E_006244_006252_A_0000_0007.mp4 +| | └── subaction_frames +``` + +关于 GYM 数据集上的训练与测试,请参照 [基础教程](/docs_zh_CN/getting_started.md)。 diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/gym/download.py b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/download.py new file mode 100644 index 00000000..cfcb954c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/download.py @@ -0,0 +1,100 @@ +# Copyright (c) OpenMMLab. All rights reserved. +# This scripts is copied from +# https://github.com/activitynet/ActivityNet/blob/master/Crawler/Kinetics/download.py # noqa: E501 +# The code is licensed under the MIT licence. +import argparse +import os +import ssl +import subprocess + +import mmcv +from joblib import Parallel, delayed + +ssl._create_default_https_context = ssl._create_unverified_context + + +def download(video_identifier, + output_filename, + num_attempts=5, + url_base='https://www.youtube.com/watch?v='): + """Download a video from youtube if exists and is not blocked. + arguments: + --------- + video_identifier: str + Unique YouTube video identifier (11 characters) + output_filename: str + File path where the video will be stored. + """ + # Defensive argument checking. + assert isinstance(video_identifier, str), 'video_identifier must be string' + assert isinstance(output_filename, str), 'output_filename must be string' + assert len(video_identifier) == 11, 'video_identifier must have length 11' + + status = False + + if not os.path.exists(output_filename): + command = [ + 'youtube-dl', '--quiet', '--no-warnings', '--no-check-certificate', + '-f', 'mp4', '-o', + '"%s"' % output_filename, + '"%s"' % (url_base + video_identifier) + ] + command = ' '.join(command) + print(command) + attempts = 0 + while True: + try: + subprocess.check_output( + command, shell=True, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError: + attempts += 1 + if attempts == num_attempts: + return status, 'Fail' + else: + break + # Check if the video was successfully saved. + status = os.path.exists(output_filename) + return status, 'Downloaded' + + +def download_wrapper(youtube_id, output_dir): + """Wrapper for parallel processing purposes.""" + # we do this to align with names in annotations + output_filename = os.path.join(output_dir, youtube_id + '.mp4') + if os.path.exists(output_filename): + status = tuple([youtube_id, True, 'Exists']) + return status + + downloaded, log = download(youtube_id, output_filename) + status = tuple([youtube_id, downloaded, log]) + return status + + +def main(input, output_dir, num_jobs=24): + # Reading and parsing ActivityNet. + youtube_ids = mmcv.load(input).keys() + # Creates folders where videos will be saved later. + if not os.path.exists(output_dir): + os.makedirs(output_dir) + # Download all clips. + if num_jobs == 1: + status_list = [] + for index in youtube_ids: + status_list.append(download_wrapper(index, output_dir)) + else: + status_list = Parallel(n_jobs=num_jobs)( + delayed(download_wrapper)(index, output_dir) + for index in youtube_ids) + + # Save download report. + mmcv.dump(status_list, 'download_report.json') + + +if __name__ == '__main__': + description = 'Helper script for downloading GYM videos.' + p = argparse.ArgumentParser(description=description) + p.add_argument('input', type=str, help='The gym annotation file') + p.add_argument( + 'output_dir', type=str, help='Output directory to save videos.') + p.add_argument('-n', '--num-jobs', type=int, default=24) + main(**vars(p.parse_args())) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/gym/download_annotations.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/download_annotations.sh new file mode 100644 index 00000000..49221049 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/download_annotations.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +set -e + +DATA_DIR="../../../data/gym/annotations" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +wget https://sdolivia.github.io/FineGym/resources/dataset/finegym_annotation_info_v1.0.json -O $DATA_DIR/annotation.json +wget https://sdolivia.github.io/FineGym/resources/dataset/gym99_train_element_v1.0.txt -O $DATA_DIR/gym99_train_org.txt +wget https://sdolivia.github.io/FineGym/resources/dataset/gym99_val_element.txt -O $DATA_DIR/gym99_val_org.txt diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/gym/download_videos.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/download_videos.sh new file mode 100644 index 00000000..1e8fd995 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/download_videos.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +# set up environment +conda env create -f environment.yml +source activate gym +pip install mmcv +pip install --upgrade youtube-dl + +DATA_DIR="../../../data/gym" +ANNO_DIR="../../../data/gym/annotations" +python download.py ${ANNO_DIR}/annotation.json ${DATA_DIR}/videos + +source deactivate gym +conda remove -n gym --all diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/gym/environment.yml b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/environment.yml new file mode 100644 index 00000000..88d89985 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/environment.yml @@ -0,0 +1,36 @@ +name: gym +channels: + - anaconda + - menpo + - conda-forge + - defaults +dependencies: + - ca-certificates=2020.1.1 + - certifi=2020.4.5.1 + - ffmpeg=2.8.6 + - libcxx=10.0.0 + - libedit=3.1.20181209 + - libffi=3.3 + - ncurses=6.2 + - openssl=1.1.1g + - pip=20.0.2 + - python=3.7.7 + - readline=8.0 + - setuptools=46.4.0 + - sqlite=3.31.1 + - tk=8.6.8 + - wheel=0.34.2 + - xz=5.2.5 + - zlib=1.2.11 + - pip: + - decorator==4.4.2 + - intel-openmp==2019.0 + - joblib==0.15.1 + - mkl==2019.0 + - numpy==1.18.4 + - olefile==0.46 + - pandas==1.0.3 + - python-dateutil==2.8.1 + - pytz==2020.1 + - six==1.14.0 + - youtube-dl diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/gym/extract_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/extract_frames.sh new file mode 100644 index 00000000..cfcc8c04 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/extract_frames.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/gym/subactions/ ../../data/gym/subaction_frames/ --level 1 --flow-type tvl1 --ext mp4 --task both --new-short 256 +echo "Raw frames (RGB and tv-l1) Generated" + +cd gym/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/gym/generate_file_list.py b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/generate_file_list.py new file mode 100644 index 00000000..5f4295d2 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/generate_file_list.py @@ -0,0 +1,49 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os +import os.path as osp + +annotation_root = '../../../data/gym/annotations' +data_root = '../../../data/gym/subactions' +frame_data_root = '../../../data/gym/subaction_frames' + +videos = os.listdir(data_root) +videos = set(videos) + +train_file_org = osp.join(annotation_root, 'gym99_train_org.txt') +val_file_org = osp.join(annotation_root, 'gym99_val_org.txt') +train_file = osp.join(annotation_root, 'gym99_train.txt') +val_file = osp.join(annotation_root, 'gym99_val.txt') +train_frame_file = osp.join(annotation_root, 'gym99_train_frame.txt') +val_frame_file = osp.join(annotation_root, 'gym99_val_frame.txt') + +train_org = open(train_file_org).readlines() +train_org = [x.strip().split() for x in train_org] +train = [x for x in train_org if x[0] + '.mp4' in videos] +if osp.exists(frame_data_root): + train_frames = [] + for line in train: + length = len(os.listdir(osp.join(frame_data_root, line[0]))) + train_frames.append([line[0], str(length // 3), line[1]]) + train_frames = [' '.join(x) for x in train_frames] + with open(train_frame_file, 'w') as fout: + fout.write('\n'.join(train_frames)) + +train = [x[0] + '.mp4 ' + x[1] for x in train] +with open(train_file, 'w') as fout: + fout.write('\n'.join(train)) + +val_org = open(val_file_org).readlines() +val_org = [x.strip().split() for x in val_org] +val = [x for x in val_org if x[0] + '.mp4' in videos] +if osp.exists(frame_data_root): + val_frames = [] + for line in val: + length = len(os.listdir(osp.join(frame_data_root, line[0]))) + val_frames.append([line[0], str(length // 3), line[1]]) + val_frames = [' '.join(x) for x in val_frames] + with open(val_frame_file, 'w') as fout: + fout.write('\n'.join(val_frames)) + +val = [x[0] + '.mp4 ' + x[1] for x in val] +with open(val_file, 'w') as fout: + fout.write('\n'.join(val)) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/gym/label_map.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/label_map.txt new file mode 100644 index 00000000..daca3aa7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/label_map.txt @@ -0,0 +1,99 @@ +(VT) round-off, flic-flac with 0.5 turn on, stretched salto forward with 0.5 turn off +(VT) round-off, flic-flac on, stretched salto backward with 2 turn off +(VT) round-off, flic-flac on, stretched salto backward with 1 turn off +(VT) round-off, flic-flac on, stretched salto backward with 1.5 turn off +(VT) round-off, flic-flac on, stretched salto backward with 2.5 turn off +(VT) round-off, flic-flac on, stretched salto backward off +(FX) switch leap with 0.5 turn +(FX) switch leap with 1 turn +(FX) split leap with 1 turn +(FX) split leap with 1.5 turn or more +(FX) switch leap (leap forward with leg change to cross split) +(FX) split jump with 1 turn +(FX) split jump (leg separation 180 degree parallel to the floor) +(FX) johnson with additional 0.5 turn +(FX) straddle pike or side split jump with 1 turn +(FX) switch leap to ring position +(FX) stag jump +(FX) 2 turn with free leg held upward in 180 split position throughout turn +(FX) 2 turn in tuck stand on one leg, free leg straight throughout turn +(FX) 3 turn on one leg, free leg optional below horizontal +(FX) 2 turn on one leg, free leg optional below horizontal +(FX) 1 turn on one leg, free leg optional below horizontal +(FX) 2 turn or more with heel of free leg forward at horizontal throughout turn +(FX) 1 turn with heel of free leg forward at horizontal throughout turn +(FX) arabian double salto tucked +(FX) salto forward tucked +(FX) aerial walkover forward +(FX) salto forward stretched with 2 twist +(FX) salto forward stretched with 1 twist +(FX) salto forward stretched with 1.5 twist +(FX) salto forward stretched, feet land together +(FX) double salto backward stretched +(FX) salto backward stretched with 3 twist +(FX) salto backward stretched with 2 twist +(FX) salto backward stretched with 2.5 twist +(FX) salto backward stretched with 1.5 twist +(FX) double salto backward tucked with 2 twist +(FX) double salto backward tucked with 1 twist +(FX) double salto backward tucked +(FX) double salto backward piked with 1 twist +(FX) double salto backward piked +(BB) sissone (leg separation 180 degree on the diagonal to the floor, take off two feet, land on one foot) +(BB) split jump with 0.5 turn in side position +(BB) split jump +(BB) straddle pike jump or side split jump +(BB) split ring jump (ring jump with front leg horizontal to the floor) +(BB) switch leap with 0.5 turn +(BB) switch leap (leap forward with leg change) +(BB) split leap forward +(BB) johnson (leap forward with leg change and 0.25 turn to side split or straddle pike position) +(BB) switch leap to ring position +(BB) sheep jump (jump with upper back arch and head release with feet to head height/closed Ring) +(BB) wolf hop or jump (hip angle at 45, knees together) +(BB) 1 turn with heel of free leg forward at horizontal throughout turn +(BB) 2 turn on one leg, free leg optional below horizontal +(BB) 1 turn on one leg, free leg optional below horizontal +(BB) 2 turn in tuck stand on one leg, free leg optional +(BB) salto backward tucked with 1 twist +(BB) salto backward tucked +(BB) salto backward stretched-step out (feet land successively) +(BB) salto backward stretched with legs together +(BB) salto sideward tucked, take off from one leg to side stand +(BB) free aerial cartwheel landing in cross position +(BB) salto forward tucked to cross stand +(BB) free aerial walkover forward, landing on one or both feet +(BB) jump backward, flic-flac take-off with 0.5 twist through handstand to walkover forward, also with support on one arm +(BB) flic-flac to land on both feet +(BB) flic-flac with step-out, also with support on one arm +(BB) round-off +(BB) double salto backward tucked +(BB) salto backward tucked +(BB) double salto backward piked +(BB) salto backward stretched with 2 twist +(BB) salto backward stretched with 2.5 twist +(UB) pike sole circle backward with 1 turn to handstand +(UB) pike sole circle backward with 0.5 turn to handstand +(UB) pike sole circle backward to handstand +(UB) giant circle backward with 1 turn to handstand +(UB) giant circle backward with 0.5 turn to handstand +(UB) giant circle backward +(UB) giant circle forward with 1 turn on one arm before handstand phase +(UB) giant circle forward with 0.5 turn to handstand +(UB) giant circle forward +(UB) clear hip circle backward to handstand +(UB) clear pike circle backward with 1 turn to handstand +(UB) clear pike circle backward with 0.5 turn to handstand +(UB) clear pike circle backward to handstand +(UB) stalder backward with 1 turn to handstand +(UB) stalder backward to handstand +(UB) counter straddle over high bar to hang +(UB) counter piked over high bar to hang +(UB) (swing backward or front support) salto forward straddled to hang on high bar +(UB) (swing backward) salto forward piked to hang on high bar +(UB) (swing forward or hip circle backward) salto backward with 0.5 turn piked to hang on high bar +(UB) transition flight from high bar to low bar +(UB) transition flight from low bar to high bar +(UB) (swing forward) double salto backward tucked with 1 turn +(UB) (swing backward) double salto forward tucked +(UB) (swing forward) double salto backward stretched diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/gym/trim_event.py b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/trim_event.py new file mode 100644 index 00000000..bf1fc97a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/trim_event.py @@ -0,0 +1,58 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os +import os.path as osp +import subprocess + +import mmcv + +data_root = '../../../data/gym' +video_root = f'{data_root}/videos' +anno_root = f'{data_root}/annotations' +anno_file = f'{anno_root}/annotation.json' + +event_anno_file = f'{anno_root}/event_annotation.json' +event_root = f'{data_root}/events' + +videos = os.listdir(video_root) +videos = set(videos) +annotation = mmcv.load(anno_file) +event_annotation = {} + +mmcv.mkdir_or_exist(event_root) + +for k, v in annotation.items(): + if k + '.mp4' not in videos: + print(f'video {k} has not been downloaded') + continue + + video_path = osp.join(video_root, k + '.mp4') + + for event_id, event_anno in v.items(): + timestamps = event_anno['timestamps'][0] + start_time, end_time = timestamps + event_name = k + '_' + event_id + + output_filename = event_name + '.mp4' + + command = [ + 'ffmpeg', '-i', + '"%s"' % video_path, '-ss', + str(start_time), '-t', + str(end_time - start_time), '-c:v', 'libx264', '-c:a', 'copy', + '-threads', '8', '-loglevel', 'panic', + '"%s"' % osp.join(event_root, output_filename) + ] + command = ' '.join(command) + try: + subprocess.check_output( + command, shell=True, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError: + print( + f'Trimming of the Event {event_name} of Video {k} Failed', + flush=True) + + segments = event_anno['segments'] + if segments is not None: + event_annotation[event_name] = segments + +mmcv.dump(event_annotation, event_anno_file) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/gym/trim_subaction.py b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/trim_subaction.py new file mode 100644 index 00000000..bbff90a8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/gym/trim_subaction.py @@ -0,0 +1,52 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os +import os.path as osp +import subprocess + +import mmcv + +data_root = '../../../data/gym' +anno_root = f'{data_root}/annotations' + +event_anno_file = f'{anno_root}/event_annotation.json' +event_root = f'{data_root}/events' +subaction_root = f'{data_root}/subactions' + +events = os.listdir(event_root) +events = set(events) +annotation = mmcv.load(event_anno_file) + +mmcv.mkdir_or_exist(subaction_root) + +for k, v in annotation.items(): + if k + '.mp4' not in events: + print(f'video {k[:11]} has not been downloaded ' + f'or the event clip {k} not generated') + continue + + video_path = osp.join(event_root, k + '.mp4') + + for subaction_id, subaction_anno in v.items(): + timestamps = subaction_anno['timestamps'] + start_time, end_time = timestamps[0][0], timestamps[-1][1] + subaction_name = k + '_' + subaction_id + + output_filename = subaction_name + '.mp4' + + command = [ + 'ffmpeg', '-i', + '"%s"' % video_path, '-ss', + str(start_time), '-t', + str(end_time - start_time), '-c:v', 'libx264', '-c:a', 'copy', + '-threads', '8', '-loglevel', 'panic', + '"%s"' % osp.join(subaction_root, output_filename) + ] + command = ' '.join(command) + try: + subprocess.check_output( + command, shell=True, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError: + print( + f'Trimming of the Subaction {subaction_name} of Event ' + f'{k} Failed', + flush=True) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/README.md b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/README.md new file mode 100644 index 00000000..206b5487 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/README.md @@ -0,0 +1,125 @@ +# Preparing HMDB51 + +## Introduction + + + +```BibTeX +@article{Kuehne2011HMDBAL, + title={HMDB: A large video database for human motion recognition}, + author={Hilde Kuehne and Hueihan Jhuang and E. Garrote and T. Poggio and Thomas Serre}, + journal={2011 International Conference on Computer Vision}, + year={2011}, + pages={2556-2563} +} +``` + +For basic dataset information, you can refer to the dataset [website](https://serre-lab.clps.brown.edu/resource/hmdb-a-large-human-motion-database/). +Before we start, please make sure that the directory is located at `$MMACTION2/tools/data/hmdb51/`. + +To run the bash scripts below, you need to install `unrar`. you can install it by `sudo apt-get install unrar`, +or refer to [this repo](https://github.com/innerlee/setup) by following the usage and taking [`zzunrar.sh`](https://github.com/innerlee/setup/blob/master/zzunrar.sh) +script for easy installation without sudo. + +## Step 1. Prepare Annotations + +First of all, you can run the following script to prepare annotations. + +```shell +bash download_annotations.sh +``` + +## Step 2. Prepare Videos + +Then, you can run the following script to prepare videos. + +```shell +bash download_videos.sh +``` + +## Step 3. Extract RGB and Flow + +This part is **optional** if you only want to use the video loader. + +Before extracting, please refer to [install.md](/docs/install.md) for installing [denseflow](https://github.com/open-mmlab/denseflow). + +If you have plenty of SSD space, then we recommend extracting frames there for better I/O performance. + +You can run the following script to soft link SSD. + +```shell +# execute these two line (Assume the SSD is mounted at "/mnt/SSD/") +mkdir /mnt/SSD/hmdb51_extracted/ +ln -s /mnt/SSD/hmdb51_extracted/ ../../../data/hmdb51/rawframes +``` + +If you only want to play with RGB frames (since extracting optical flow can be time-consuming), consider running the following script to extract **RGB-only** frames using denseflow. + +```shell +bash extract_rgb_frames.sh +``` + +If you didn't install denseflow, you can still extract RGB frames using OpenCV by the following script, but it will keep the original size of the images. + +```shell +bash extract_rgb_frames_opencv.sh +``` + +If both are required, run the following script to extract frames using "tvl1" algorithm. + +```shell +bash extract_frames.sh +``` + +## Step 4. Generate File List + +you can run the follow script to generate file list in the format of rawframes and videos. + +```shell +bash generate_rawframes_filelist.sh +bash generate_videos_filelist.sh +``` + +## Step 5. Check Directory Structure + +After the whole data process for HMDB51 preparation, +you will get the rawframes (RGB + Flow), videos and annotation files for HMDB51. + +In the context of the whole project (for HMDB51 only), the folder structure will look like: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── hmdb51 +│ │ ├── hmdb51_{train,val}_split_{1,2,3}_rawframes.txt +│ │ ├── hmdb51_{train,val}_split_{1,2,3}_videos.txt +│ │ ├── annotations +│ │ ├── videos +│ │ │ ├── brush_hair +│ │ │ │ ├── April_09_brush_hair_u_nm_np1_ba_goo_0.avi + +│ │ │ ├── wave +│ │ │ │ ├── 20060723sfjffbartsinger_wave_f_cm_np1_ba_med_0.avi +│ │ ├── rawframes +│ │ │ ├── brush_hair +│ │ │ │ ├── April_09_brush_hair_u_nm_np1_ba_goo_0 +│ │ │ │ │ ├── img_00001.jpg +│ │ │ │ │ ├── img_00002.jpg +│ │ │ │ │ ├── ... +│ │ │ │ │ ├── flow_x_00001.jpg +│ │ │ │ │ ├── flow_x_00002.jpg +│ │ │ │ │ ├── ... +│ │ │ │ │ ├── flow_y_00001.jpg +│ │ │ │ │ ├── flow_y_00002.jpg +│ │ │ ├── ... +│ │ │ ├── wave +│ │ │ │ ├── 20060723sfjffbartsinger_wave_f_cm_np1_ba_med_0 +│ │ │ │ ├── ... +│ │ │ │ ├── winKen_wave_u_cm_np1_ri_bad_1 + +``` + +For training and evaluating on HMDB51, please refer to [getting_started.md](/docs/getting_started.md). diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/README_zh-CN.md new file mode 100644 index 00000000..a34c4b9c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/README_zh-CN.md @@ -0,0 +1,121 @@ +# 准备 HMDB51 + +## 简介 + + + +```BibTeX +@article{Kuehne2011HMDBAL, + title={HMDB: A large video database for human motion recognition}, + author={Hilde Kuehne and Hueihan Jhuang and E. Garrote and T. Poggio and Thomas Serre}, + journal={2011 International Conference on Computer Vision}, + year={2011}, + pages={2556-2563} +} +``` + +用户可以参照数据集 [官网](https://serre-lab.clps.brown.edu/resource/hmdb-a-large-human-motion-database/),获取数据集相关的基本信息。 +在准备数据集前,请确保命令行当前路径为 `$MMACTION2/tools/data/hmdb51/`。 + +为运行下面的 bash 脚本,需要安装 `unrar`。用户可运行 `sudo apt-get install unrar` 安装,或参照 [setup](https://github.com/innerlee/setup),运行 [`zzunrar.sh`](https://github.com/innerlee/setup/blob/master/zzunrar.sh) 脚本实现无管理员权限下的简易安装。 + +## 步骤 1. 下载标注文件 + +首先,用户可使用以下命令下载标注文件。 + +```shell +bash download_annotations.sh +``` + +## 步骤 2. 下载视频 + +之后,用户可使用以下指令下载视频 + +```shell +bash download_videos.sh +``` + +## 步骤 3. 抽取帧和光流 + +如果用户只想使用视频加载训练,则该部分是 **可选项**。 + +在抽取视频帧和光流之前,请参考 [安装指南](/docs_zh_CN/install.md) 安装 [denseflow](https://github.com/open-mmlab/denseflow)。 + +如果用户有大量的 SSD 存储空间,则推荐将抽取的帧存储至 I/O 性能更优秀的 SSD 上。 +用户可使用以下命令为 SSD 建立软链接。 + +```shell +# 执行这两行指令进行抽取(假设 SSD 挂载在 "/mnt/SSD/"上) +mkdir /mnt/SSD/hmdb51_extracted/ +ln -s /mnt/SSD/hmdb51_extracted/ ../../../data/hmdb51/rawframes +``` + +如果用户需要抽取 RGB 帧(因为抽取光流的过程十分耗时),可以考虑运行以下命令使用 denseflow **只抽取 RGB 帧**。 + +```shell +bash extract_rgb_frames.sh +``` + +如果用户没有安装 denseflow,则可以运行以下命令使用 OpenCV 抽取 RGB 帧。然而,该方法只能抽取与原始视频分辨率相同的帧。 + +```shell +bash extract_rgb_frames_opencv.sh +``` + +如果用户想抽取 RGB 帧和光流,则可以运行以下脚本,使用 "tvl1" 算法进行抽取。 + +```shell +bash extract_frames.sh +``` + +## 步骤 4. 生成文件列表 + +用户可以通过运行以下命令生成帧和视频格式的文件列表。 + +```shell +bash generate_rawframes_filelist.sh +bash generate_videos_filelist.sh +``` + +## 步骤 5. 检查目录结构 + +在完成 HMDB51 数据集准备流程后,用户可以得到 HMDB51 的 RGB 帧 + 光流文件,视频文件以及标注文件。 + +在整个 MMAction2 文件夹下,HMDB51 的文件结构如下: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── hmdb51 +│ │ ├── hmdb51_{train,val}_split_{1,2,3}_rawframes.txt +│ │ ├── hmdb51_{train,val}_split_{1,2,3}_videos.txt +│ │ ├── annotations +│ │ ├── videos +│ │ │ ├── brush_hair +│ │ │ │ ├── April_09_brush_hair_u_nm_np1_ba_goo_0.avi + +│ │ │ ├── wave +│ │ │ │ ├── 20060723sfjffbartsinger_wave_f_cm_np1_ba_med_0.avi +│ │ ├── rawframes +│ │ │ ├── brush_hair +│ │ │ │ ├── April_09_brush_hair_u_nm_np1_ba_goo_0 +│ │ │ │ │ ├── img_00001.jpg +│ │ │ │ │ ├── img_00002.jpg +│ │ │ │ │ ├── ... +│ │ │ │ │ ├── flow_x_00001.jpg +│ │ │ │ │ ├── flow_x_00002.jpg +│ │ │ │ │ ├── ... +│ │ │ │ │ ├── flow_y_00001.jpg +│ │ │ │ │ ├── flow_y_00002.jpg +│ │ │ ├── ... +│ │ │ ├── wave +│ │ │ │ ├── 20060723sfjffbartsinger_wave_f_cm_np1_ba_med_0 +│ │ │ │ ├── ... +│ │ │ │ ├── winKen_wave_u_cm_np1_ri_bad_1 + +``` + +关于对 HMDB51 进行训练和验证,可以参照 [基础教程](/docs_zh_CN/getting_started.md)。 diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/download_annotations.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/download_annotations.sh new file mode 100644 index 00000000..f168cb1e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/download_annotations.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +set -e + +DATA_DIR="../../../data/hmdb51/annotations" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +cd ${DATA_DIR} +wget http://serre-lab.clps.brown.edu/wp-content/uploads/2013/10/test_train_splits.rar --no-check-certificate + +# sudo apt-get install unrar +unrar x test_train_splits.rar +rm test_train_splits.rar + +mv testTrainMulti_7030_splits/*.txt ./ +rmdir testTrainMulti_7030_splits + +cd - diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/download_videos.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/download_videos.sh new file mode 100644 index 00000000..ea5d9073 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/download_videos.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +set -e + +DATA_DIR="../../../data/hmdb51/" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +cd ${DATA_DIR} + +mkdir -p ./videos +cd ./videos + +wget http://serre-lab.clps.brown.edu/wp-content/uploads/2013/10/hmdb51_org.rar --no-check-certificate + +# sudo apt-get install unrar +unrar x ./hmdb51_org.rar +rm ./hmdb51_org.rar + +# extract all rar files with full path +for file in *.rar; do unrar x $file; done + +rm ./*.rar +cd "../../../tools/data/hmdb51" diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/extract_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/extract_frames.sh new file mode 100644 index 00000000..fb63c16b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/extract_frames.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/hmdb51/videos/ ../../data/hmdb51/rawframes/ --task both --level 2 --flow-type tvl1 +echo "Raw frames (RGB and Flow) Generated" +cd hmdb51/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/extract_rgb_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/extract_rgb_frames.sh new file mode 100644 index 00000000..9e935b1f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/extract_rgb_frames.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/hmdb51/videos/ ../../data/hmdb51/rawframes/ --task rgb --level 2 --ext avi +echo "Genearte raw frames (RGB only)" + +cd hmdb51/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/extract_rgb_frames_opencv.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/extract_rgb_frames_opencv.sh new file mode 100644 index 00000000..91ff4f32 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/extract_rgb_frames_opencv.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/hmdb51/videos/ ../../data/hmdb51/rawframes/ --task rgb --level 2 --ext avi --use-opencv +echo "Genearte raw frames (RGB only)" + +cd hmdb51/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/generate_rawframes_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/generate_rawframes_filelist.sh new file mode 100644 index 00000000..bc20187a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/generate_rawframes_filelist.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +cd ../../../ + +PYTHONPATH=. python tools/data/build_file_list.py hmdb51 data/hmdb51/rawframes/ --level 2 --format rawframes --shuffle +echo "Filelist for rawframes generated." + +cd tools/data/hmdb51/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/generate_videos_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/generate_videos_filelist.sh new file mode 100644 index 00000000..4acd28f4 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/generate_videos_filelist.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +cd ../../../ + +PYTHONPATH=. python tools/data/build_file_list.py hmdb51 data/hmdb51/videos/ --level 2 --format videos --shuffle +echo "Filelist for videos generated." + +cd tools/data/hmdb51/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/label_map.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/label_map.txt new file mode 100644 index 00000000..3217416f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hmdb51/label_map.txt @@ -0,0 +1,51 @@ +brush_hair +cartwheel +catch +chew +clap +climb +climb_stairs +dive +draw_sword +dribble +drink +eat +fall_floor +fencing +flic_flac +golf +handstand +hit +hug +jump +kick +kick_ball +kiss +laugh +pick +pour +pullup +punch +push +pushup +ride_bike +ride_horse +run +shake_hands +shoot_ball +shoot_bow +shoot_gun +sit +situp +smile +smoke +somersault +stand +swing_baseball +sword +sword_exercise +talk +throw +turn +walk +wave diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/README.md b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/README.md new file mode 100644 index 00000000..6bcc73f8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/README.md @@ -0,0 +1,123 @@ +# Preparing HVU + +## Introduction + + + +```BibTeX +@article{Diba2019LargeSH, + title={Large Scale Holistic Video Understanding}, + author={Ali Diba and M. Fayyaz and Vivek Sharma and Manohar Paluri and Jurgen Gall and R. Stiefelhagen and L. Gool}, + journal={arXiv: Computer Vision and Pattern Recognition}, + year={2019} +} +``` + +For basic dataset information, please refer to the official [project](https://github.com/holistic-video-understanding/HVU-Dataset/) and the [paper](https://arxiv.org/abs/1904.11451). +Before we start, please make sure that the directory is located at `$MMACTION2/tools/data/hvu/`. + +## Step 1. Prepare Annotations + +First of all, you can run the following script to prepare annotations. + +```shell +bash download_annotations.sh +``` + +Besides, you need to run the following command to parse the tag list of HVU. + +```shell +python parse_tag_list.py +``` + +## Step 2. Prepare Videos + +Then, you can run the following script to prepare videos. +The codes are adapted from the [official crawler](https://github.com/activitynet/ActivityNet/tree/master/Crawler/Kinetics). Note that this might take a long time. + +```shell +bash download_videos.sh +``` + +## Step 3. Extract RGB and Flow + +This part is **optional** if you only want to use the video loader. + +Before extracting, please refer to [install.md](/docs/install.md) for installing [denseflow](https://github.com/open-mmlab/denseflow). + +You can use the following script to extract both RGB and Flow frames. + +```shell +bash extract_frames.sh +``` + +By default, we generate frames with short edge resized to 256. +More details can be found in [data_preparation](/docs/data_preparation.md) + +## Step 4. Generate File List + +You can run the follow scripts to generate file list in the format of videos and rawframes, respectively. + +```shell +bash generate_videos_filelist.sh +# execute the command below when rawframes are ready +bash generate_rawframes_filelist.sh +``` + +## Step 5. Generate File List for Each Individual Tag Categories + +This part is **optional** if you don't want to train models on HVU for a specific tag category. + +The file list generated in step 4 contains labels of different categories. These file lists can only be +handled with HVUDataset and used for multi-task learning of different tag categories. The component +`LoadHVULabel` is needed to load the multi-category tags, and the `HVULoss` should be used to train +the model. + +If you only want to train video recognition models for a specific tag category, i.e. you want to train +a recognition model on HVU which only handles tags in the category `action`, we recommend you to use +the following command to generate file lists for the specific tag category. The new list, which only +contains tags of a specific category, can be handled with `VideoDataset` or `RawframeDataset`. The +recognition models can be trained with `BCELossWithLogits`. + +The following command generates file list for the tag category ${category}, note that the tag category you +specified should be in the 6 tag categories available in HVU: \['action', 'attribute', 'concept', 'event', +'object', 'scene'\]. + +```shell +python generate_sub_file_list.py path/to/filelist.json ${category} +``` + +The filename of the generated file list for ${category} is generated by replacing `hvu` in the original +filename with `hvu_${category}`. For example, if the original filename is `hvu_train.json`, the filename +of the file list for action is `hvu_action_train.json`. + +## Step 6. Folder Structure + +After the whole data pipeline for HVU preparation. +you can get the rawframes (RGB + Flow), videos and annotation files for HVU. + +In the context of the whole project (for HVU only), the full folder structure will look like: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── hvu +│ │ ├── hvu_train_video.json +│ │ ├── hvu_val_video.json +│ │ ├── hvu_train.json +│ │ ├── hvu_val.json +│ │ ├── annotations +│ │ ├── videos_train +│ │ │ ├── OLpWTpTC4P8_000570_000670.mp4 +│ │ │ ├── xsPKW4tZZBc_002330_002430.mp4 +│ │ │ ├── ... +│ │ ├── videos_val +│ │ ├── rawframes_train +│ │ ├── rawframes_val + +``` + +For training and evaluating on HVU, please refer to [getting_started](/docs/getting_started.md). diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/README_zh-CN.md new file mode 100644 index 00000000..5b3ffa1e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/README_zh-CN.md @@ -0,0 +1,110 @@ +# 准备 HVU + +## 简介 + + + +```BibTeX +@article{Diba2019LargeSH, + title={Large Scale Holistic Video Understanding}, + author={Ali Diba and M. Fayyaz and Vivek Sharma and Manohar Paluri and Jurgen Gall and R. Stiefelhagen and L. Gool}, + journal={arXiv: Computer Vision and Pattern Recognition}, + year={2019} +} +``` + +请参照 [官方项目](https://github.com/holistic-video-understanding/HVU-Dataset/) 及 [原论文](https://arxiv.org/abs/1904.11451) 以获取数据集基本信息。 +在开始之前,用户需确保当前目录为 `$MMACTION2/tools/data/hvu/`。 + +## 1. 准备标注文件 + +首先,用户可以使用如下脚本下载标注文件并进行预处理: + +```shell +bash download_annotations.sh +``` + +此外,用户可使用如下命令解析 HVU 的标签列表: + +```shell +python parse_tag_list.py +``` + +## 2. 准备视频 + +用户可以使用以下脚本准备视频,视频准备代码修改自 [ActivityNet 爬虫](https://github.com/activitynet/ActivityNet/tree/master/Crawler/Kinetics)。 +注意这一步骤将花费较长时间。 + +```shell +bash download_videos.sh +``` + +## 3. 提取 RGB 帧和光流 + +如果用户仅使用 video loader,则可以跳过本步。 + +在提取之前,请参考 [安装教程](/docs_zh_CN/install.md) 安装 [denseflow](https://github.com/open-mmlab/denseflow)。 + +用户可使用如下脚本同时抽取 RGB 帧和光流: + +```shell +bash extract_frames.sh +``` + +该脚本默认生成短边长度为 256 的帧,可参考 [数据准备](/docs_zh_CN/data_preparation.md) 获得更多细节。 + +## 4. 生成文件列表 + +用户可以使用以下两个脚本分别为视频和帧文件夹生成文件列表: + +```shell +bash generate_videos_filelist.sh +# 为帧文件夹生成文件列表 +bash generate_rawframes_filelist.sh +``` + +## 5. 为每个 tag 种类生成文件列表 + +若用户需要为 HVU 数据集的每个 tag 种类训练识别模型,则需要进行此步骤。 + +步骤 4 中生成的文件列表包含不同类型的标签,仅支持使用 HVUDataset 进行涉及多个标签种类的多任务学习。加载数据的过程中需要使用 `LoadHVULabel` 类进行多类别标签的加载,训练过程中使用 `HVULoss` 作为损失函数。 + +如果用户仅需训练某一特定类别的标签,例如训练一识别模型用于识别 HVU 中 `action` 类别的标签,则建议使用如下脚本为特定标签种类生成文件列表。新生成的列表将只含有特定类别的标签,因此可使用 `VideoDataset` 或 `RawframeDataset` 进行加载。训训练过程中使用 `BCELossWithLogits` 作为损失函数。 + +以下脚本为类别为 ${category} 的标签生成文件列表,注意仅支持 HVU 数据集包含的 6 种标签类别: action, attribute, concept, event, object, scene。 + +```shell +python generate_sub_file_list.py path/to/filelist.json ${category} +``` + +对于类别 ${category},生成的标签列表文件名中将使用 `hvu_${category}` 替代 `hvu`。例如,若原指定文件名为 `hvu_train.json`,则对于类别 action,生成的文件列表名为 `hvu_action_train.json`。 + +## 6. 目录结构 + +在完整完成 HVU 的数据处理后,将得到帧文件夹(RGB 帧和光流帧),视频以及标注文件。 + +在整个项目目录下(仅针对 HVU),完整目录结构如下所示: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── hvu +│ │ ├── hvu_train_video.json +│ │ ├── hvu_val_video.json +│ │ ├── hvu_train.json +│ │ ├── hvu_val.json +│ │ ├── annotations +│ │ ├── videos_train +│ │ │ ├── OLpWTpTC4P8_000570_000670.mp4 +│ │ │ ├── xsPKW4tZZBc_002330_002430.mp4 +│ │ │ ├── ... +│ │ ├── videos_val +│ │ ├── rawframes_train +│ │ ├── rawframes_val + +``` + +关于 HVU 数据集上的训练与测试,请参照 [基础教程](/docs_zh_CN/getting_started.md)。 diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/download.py b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/download.py new file mode 100644 index 00000000..2ab18e84 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/download.py @@ -0,0 +1,203 @@ +# ------------------------------------------------------------------------------ +# Adapted from https://github.com/activitynet/ActivityNet/ +# Original licence: Copyright (c) Microsoft, under the MIT License. +# ------------------------------------------------------------------------------ + +import argparse +import glob +import os +import shutil +import ssl +import subprocess +import uuid + +import mmcv +from joblib import Parallel, delayed + +ssl._create_default_https_context = ssl._create_unverified_context +args = None + + +def create_video_folders(output_dir, tmp_dir): + if not os.path.exists(output_dir): + os.makedirs(output_dir) + if not os.path.exists(tmp_dir): + os.makedirs(tmp_dir) + + +def construct_video_filename(item, trim_format, output_dir): + """Given a dataset row, this function constructs the output filename for a + given video.""" + youtube_id, start_time, end_time = item + start_time, end_time = int(start_time * 10), int(end_time * 10) + basename = '%s_%s_%s.mp4' % (youtube_id, trim_format % start_time, + trim_format % end_time) + output_filename = os.path.join(output_dir, basename) + return output_filename + + +def download_clip(video_identifier, + output_filename, + start_time, + end_time, + tmp_dir='/tmp/hvu/.tmp_dir', + num_attempts=5, + url_base='https://www.youtube.com/watch?v='): + """Download a video from youtube if exists and is not blocked. + arguments: + --------- + video_identifier: str + Unique YouTube video identifier (11 characters) + output_filename: str + File path where the video will be stored. + start_time: float + Indicates the beginning time in seconds from where the video + will be trimmed. + end_time: float + Indicates the ending time in seconds of the trimmed video. + """ + # Defensive argument checking. + assert isinstance(video_identifier, str), 'video_identifier must be string' + assert isinstance(output_filename, str), 'output_filename must be string' + assert len(video_identifier) == 11, 'video_identifier must have length 11' + + status = False + tmp_filename = os.path.join(tmp_dir, '%s.%%(ext)s' % uuid.uuid4()) + + if not os.path.exists(output_filename): + if not os.path.exists(tmp_filename): + command = [ + 'youtube-dl', '--quiet', '--no-warnings', + '--no-check-certificate', '-f', 'mp4', '-o', + '"%s"' % tmp_filename, + '"%s"' % (url_base + video_identifier) + ] + command = ' '.join(command) + print(command) + attempts = 0 + while True: + try: + subprocess.check_output( + command, shell=True, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError: + attempts += 1 + if attempts == num_attempts: + return status, 'Downloading Failed' + else: + break + + tmp_filename = glob.glob('%s*' % tmp_filename.split('.')[0])[0] + # Construct command to trim the videos (ffmpeg required). + command = [ + 'ffmpeg', '-i', + '"%s"' % tmp_filename, '-ss', + str(start_time), '-t', + str(end_time - start_time), '-c:v', 'libx264', '-c:a', 'copy', + '-threads', '1', '-loglevel', 'panic', + '"%s"' % output_filename + ] + command = ' '.join(command) + try: + subprocess.check_output( + command, shell=True, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError: + return status, 'Trimming Failed' + + # Check if the video was successfully saved. + status = os.path.exists(output_filename) + os.remove(tmp_filename) + return status, 'Downloaded' + + +def download_clip_wrapper(item, trim_format, tmp_dir, output_dir): + """Wrapper for parallel processing purposes.""" + output_filename = construct_video_filename(item, trim_format, output_dir) + clip_id = os.path.basename(output_filename).split('.mp4')[0] + if os.path.exists(output_filename): + status = tuple([clip_id, True, 'Exists']) + return status + + youtube_id, start_time, end_time = item + downloaded, log = download_clip( + youtube_id, output_filename, start_time, end_time, tmp_dir=tmp_dir) + + status = tuple([clip_id, downloaded, log]) + return status + + +def parse_hvu_annotations(input_csv): + """Returns a parsed DataFrame. + arguments: + --------- + input_csv: str + Path to CSV file containing the following columns: + 'Tags, youtube_id, time_start, time_end' + returns: + ------- + dataset: List of tuples. Each tuple consists of + (youtube_id, time_start, time_end). The type of time is float. + """ + lines = open(input_csv).readlines() + lines = [x.strip().split(',')[1:] for x in lines[1:]] + + lines = [(x[0], float(x[1]), float(x[2])) for x in lines] + + return lines + + +def main(input_csv, + output_dir, + trim_format='%06d', + num_jobs=24, + tmp_dir='/tmp/hvu'): + + tmp_dir = os.path.join(tmp_dir, '.tmp_dir') + + # Reading and parsing HVU. + dataset = parse_hvu_annotations(input_csv) + + # Creates folders where videos will be saved later. + create_video_folders(output_dir, tmp_dir) + + # Download all clips. + if num_jobs == 1: + status_lst = [] + for item in dataset: + status_lst.append( + download_clip_wrapper(item, trim_format, tmp_dir, output_dir)) + else: + status_lst = Parallel(n_jobs=num_jobs)( + delayed(download_clip_wrapper)(item, trim_format, tmp_dir, + output_dir) for item in dataset) + + # Clean tmp dir. + shutil.rmtree(tmp_dir) + # Save download report. + mmcv.dump(status_lst, 'download_report.json') + + +if __name__ == '__main__': + description = 'Helper script for downloading and trimming HVU videos.' + p = argparse.ArgumentParser(description=description) + p.add_argument( + 'input_csv', + type=str, + help=('CSV file containing the following format: ' + 'Tags, youtube_id, time_start, time_end')) + p.add_argument( + 'output_dir', + type=str, + help='Output directory where videos will be saved.') + p.add_argument( + '-f', + '--trim-format', + type=str, + default='%06d', + help=('This will be the format for the ' + 'filename of trimmed videos: ' + 'videoid_%0xd(start_time)_%0xd(end_time).mp4. ' + 'Note that the start_time is multiplied by 10 since ' + 'decimal exists somewhere. ')) + p.add_argument('-n', '--num-jobs', type=int, default=24) + p.add_argument('-t', '--tmp-dir', type=str, default='/tmp/hvu') + main(**vars(p.parse_args())) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/download_annotations.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/download_annotations.sh new file mode 100644 index 00000000..d100a475 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/download_annotations.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +set -e + +DATA_DIR="../../../data/hvu/annotations" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +git clone https://github.com/holistic-video-understanding/HVU-Dataset.git + +cd HVU-Dataset +unzip -o HVU_Train_V1.0.zip +unzip -o HVU_Val_V1.0.zip +cd .. +mv HVU-Dataset/HVU_Train_V1.0.csv ${DATA_DIR}/hvu_train.csv +mv HVU-Dataset/HVU_Val_V1.0.csv ${DATA_DIR}/hvu_val.csv +mv HVU-Dataset/HVU_Tags_Categories_V1.0.csv ${DATA_DIR}/hvu_categories.csv + +rm -rf HVU-Dataset diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/download_videos.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/download_videos.sh new file mode 100644 index 00000000..a4ce0d63 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/download_videos.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +# set up environment +conda env create -f environment.yml +source activate hvu +pip install mmcv +pip install --upgrade youtube-dl + +DATA_DIR="../../../data/hvu" +ANNO_DIR="../../../data/hvu/annotations" +python download.py ${ANNO_DIR}/hvu_train.csv ${DATA_DIR}/videos_train +python download.py ${ANNO_DIR}/hvu_val.csv ${DATA_DIR}/videos_val + +source deactivate hvu +conda remove -n hvu --all diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/environment.yml b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/environment.yml new file mode 100644 index 00000000..bcee98f8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/environment.yml @@ -0,0 +1,36 @@ +name: kinetics +channels: + - anaconda + - menpo + - conda-forge + - defaults +dependencies: + - ca-certificates=2020.1.1 + - certifi=2020.4.5.1 + - ffmpeg=2.8.6 + - libcxx=10.0.0 + - libedit=3.1.20181209 + - libffi=3.3 + - ncurses=6.2 + - openssl=1.1.1g + - pip=20.0.2 + - python=3.7.7 + - readline=8.0 + - setuptools=46.4.0 + - sqlite=3.31.1 + - tk=8.6.8 + - wheel=0.34.2 + - xz=5.2.5 + - zlib=1.2.11 + - pip: + - decorator==4.4.2 + - intel-openmp==2019.0 + - joblib==0.15.1 + - mkl==2019.0 + - numpy==1.18.4 + - olefile==0.46 + - pandas==1.0.3 + - python-dateutil==2.8.1 + - pytz==2020.1 + - six==1.14.0 + - youtube-dl diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/extract_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/extract_frames.sh new file mode 100644 index 00000000..d50f1cf8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/extract_frames.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/hvu/videos_train/ ../../data/hvu/rawframes_train/ --level 1 --flow-type tvl1 --ext mp4 --task both --new-short 256 +echo "Raw frames (RGB and tv-l1) Generated for train set" + +python build_rawframes.py ../../data/hvu/videos_val/ ../../data/hvu/rawframes_val/ --level 1 --flow-type tvl1 --ext mp4 --task both --new-short 256 +echo "Raw frames (RGB and tv-l1) Generated for val set" + +cd hvu/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/generate_file_list.py b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/generate_file_list.py new file mode 100644 index 00000000..83e99b14 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/generate_file_list.py @@ -0,0 +1,152 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import fnmatch +import glob +import os +import os.path as osp + +import mmcv + +annotation_root = '../../data/hvu/annotations' +tag_file = 'hvu_tags.json' +args = None + + +def parse_directory(path, + rgb_prefix='img_', + flow_x_prefix='flow_x_', + flow_y_prefix='flow_y_', + level=1): + """Parse directories holding extracted frames from standard benchmarks. + + Args: + path (str): Directory path to parse frames. + rgb_prefix (str): Prefix of generated rgb frames name. + default: 'img_'. + flow_x_prefix (str): Prefix of generated flow x name. + default: `flow_x_`. + flow_y_prefix (str): Prefix of generated flow y name. + default: `flow_y_`. + level (int): Directory level for glob searching. Options are 1 and 2. + default: 1. + + Returns: + dict: frame info dict with video id as key and tuple(path(str), + rgb_num(int), flow_x_num(int)) as value. + """ + print(f'parse frames under directory {path}') + if level == 1: + # Only search for one-level directory + def locate_directory(x): + return osp.basename(x) + + frame_dirs = glob.glob(osp.join(path, '*')) + + elif level == 2: + # search for two-level directory + def locate_directory(x): + return osp.join(osp.basename(osp.dirname(x)), osp.basename(x)) + + frame_dirs = glob.glob(osp.join(path, '*', '*')) + + else: + raise ValueError('level can be only 1 or 2') + + def count_files(directory, prefix_list): + """Count file number with a given directory and prefix. + + Args: + directory (str): Data directory to be search. + prefix_list (list): List or prefix. + + Returns: + list (int): Number list of the file with the prefix. + """ + lst = os.listdir(directory) + cnt_list = [len(fnmatch.filter(lst, x + '*')) for x in prefix_list] + return cnt_list + + # check RGB + frame_dict = {} + for i, frame_dir in enumerate(frame_dirs): + total_num = count_files(frame_dir, + (rgb_prefix, flow_x_prefix, flow_y_prefix)) + dir_name = locate_directory(frame_dir) + + num_x = total_num[1] + num_y = total_num[2] + if num_x != num_y: + raise ValueError(f'x and y direction have different number ' + f'of flow images in video directory: {frame_dir}') + if i % 200 == 0: + print(f'{i} videos parsed') + + frame_dict[dir_name] = (frame_dir, total_num[0], num_x) + + print('frame directory analysis done') + return frame_dict + + +def parse_args(): + parser = argparse.ArgumentParser(description='build file list for HVU') + parser.add_argument('--input_csv', type=str, help='path of input csv file') + parser.add_argument( + '--src_dir', type=str, help='source video / frames directory') + parser.add_argument( + '--output', + type=str, + help='output filename, should \ + ends with .json') + parser.add_argument( + '--mode', + type=str, + choices=['frames', 'videos'], + help='generate file list for frames or videos') + + args = parser.parse_args() + return args + + +if __name__ == '__main__': + args = parse_args() + tag_cates = mmcv.load(tag_file) + tag2category = {} + for k in tag_cates: + for tag in tag_cates[k]: + tag2category[tag] = k + + data_list = open(args.input_csv).readlines() + data_list = [x.strip().split(',') for x in data_list[1:]] + + if args.mode == 'videos': + downloaded = os.listdir(args.src_dir) + downloaded = [x.split('.')[0] for x in downloaded] + downloaded_set = set(downloaded) + else: + parse_result = parse_directory(args.src_dir) + downloaded_set = set(parse_result) + + def parse_line(line): + tags, youtube_id, start, end = line + start, end = int(float(start) * 10), int(float(end) * 10) + newname = f'{youtube_id}_{start:06d}_{end:06d}' + tags = tags.split('|') + all_tags = {} + for tag in tags: + category = tag2category[tag] + all_tags.setdefault(category, + []).append(tag_cates[category].index(tag)) + return newname, all_tags + + data_list = [parse_line(line) for line in data_list] + data_list = [line for line in data_list if line[0] in downloaded_set] + + if args.mode == 'frames': + result = [ + dict( + frame_dir=k[0], total_frames=parse_result[k[0]][1], label=k[1]) + for k in data_list + ] + elif args.mode == 'videos': + result = [dict(filename=k[0] + '.mp4', label=k[1]) for k in data_list] + mmcv.dump(result, args.output) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/generate_rawframes_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/generate_rawframes_filelist.sh new file mode 100644 index 00000000..59f3fa18 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/generate_rawframes_filelist.sh @@ -0,0 +1,5 @@ +# to generate file list of frames +python generate_file_list.py --input_csv ../../../data/hvu/annotations/hvu_train.csv --src_dir ../../../data/hvu/rawframes_train \ + --output ../../../data/hvu/hvu_train.json --mode frames +python generate_file_list.py --input_csv ../../../data/hvu/annotations/hvu_val.csv --src_dir ../../../data/hvu/rawframes_val \ + --output ../../../data/hvu/hvu_val.json --mode frames diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/generate_sub_file_list.py b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/generate_sub_file_list.py new file mode 100644 index 00000000..8313a9b3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/generate_sub_file_list.py @@ -0,0 +1,42 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import os.path as osp + +import mmcv + + +def main(annotation_file, category): + assert category in [ + 'action', 'attribute', 'concept', 'event', 'object', 'scene' + ] + + data = mmcv.load(annotation_file) + basename = osp.basename(annotation_file) + dirname = osp.dirname(annotation_file) + basename = basename.replace('hvu', f'hvu_{category}') + + target_file = osp.join(dirname, basename) + + result = [] + for item in data: + label = item['label'] + if category in label: + item['label'] = label[category] + result.append(item) + + mmcv.dump(data, target_file) + + +if __name__ == '__main__': + description = 'Helper script for generating HVU per-category file list.' + p = argparse.ArgumentParser(description=description) + p.add_argument( + 'annotation_file', + type=str, + help=('The annotation file which contains tags of all categories.')) + p.add_argument( + 'category', + type=str, + choices=['action', 'attribute', 'concept', 'event', 'object', 'scene'], + help='The tag category that you want to generate file list for.') + main(**vars(p.parse_args())) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/generate_videos_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/generate_videos_filelist.sh new file mode 100644 index 00000000..deba7b74 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/generate_videos_filelist.sh @@ -0,0 +1,5 @@ +# to generate file lists of videos +python generate_file_list.py --input_csv ../../../data/hvu/annotations/hvu_train.csv --src_dir ../../../data/hvu/videos_train \ + --output ../../../data/hvu/hvu_train_video.json --mode videos +python generate_file_list.py --input_csv ../../../data/hvu/annotations/hvu_val.csv --src_dir ../../../data/hvu/videos_val \ + --output ../../../data/hvu/hvu_val_video.json --mode videos diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/label_map.json b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/label_map.json new file mode 100644 index 00000000..a591a291 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/label_map.json @@ -0,0 +1 @@ +{"action": ["abseiling", "acrobatics", "acting_in_play", "adjusting_glasses", "air_drumming", "alligator_wrestling", "alpine_skiing", "american_football", "angling", "answering_questions", "applauding", "applying_cream", "archaeological_excavation", "archery", "arguing", "arm_wrestling", "arranging_flowers", "assembling_bicycle", "assembling_computer", "attending_conference", "auctioning", "auto_racing", "backflip_human_", "baking_cookies", "ball_game", "bandaging", "barbequing", "bartending", "base_jumping", "baseball", "basketball_moves", "bathing", "bathing_dog", "baton_twirling", "battle_rope_training", "beach_soccer", "beatboxing", "bee_keeping", "belly_dancing", "bench_pressing", "bending_back", "bending_metal", "biking_through_snow", "blasting_sand", "blowdrying_hair", "blowing_bubble_gum", "blowing_glass", "blowing_leaves", "blowing_nose", "blowing_out_candles", "bmx", "boating", "bobsledding", "bodybuilding", "bodysurfing", "bookbinding", "bottling", "bouldering", "bouncing_on_bouncy_castle", "bouncing_on_trampoline", "bowling", "boxing", "braiding_hair", "breading_or_breadcrumbing", "breakdancing", "breaking_boards", "breathing_fire", "brush_painting", "brushing_hair", "brushing_teeth", "building_cabinet", "building_lego", "building_sandcastle", "building_shed", "bull_fighting", "bulldozing", "bungee_jumping", "burping", "busking", "calculating", "calf_roping", "calligraphy", "canoeing_or_kayaking", "capoeira", "capsizing", "card_game", "card_stacking", "card_throwing", "carrying_baby", "cartwheeling", "carving_ice", "carving_pumpkin", "casting_fishing_line", "catching_fish", "catching_or_throwing_baseball", "catching_or_throwing_frisbee", "catching_or_throwing_softball", "caving", "celebrating", "changing_gear_in_car", "changing_oil", "changing_wheel_not_on_bike_", "checking_tires", "cheering", "cheerleading", "chewing_gum", "chiseling_stone", "chiseling_wood", "chopping_meat", "chopping_vegetables", "chopping_wood", "choreography", "clam_digging", "clapping", "clay_pottery_making", "clean_and_jerk", "cleaning_gutters", "cleaning_pool", "cleaning_shoes", "cleaning_toilet", "cleaning_windows", "climbing", "climbing_a_rope", "climbing_ladder", "climbing_tree", "clipping_cat_claws", "coloring_in", "combing_hair", "contact_juggling", "contorting", "control", "cooking", "cooking_egg", "cooking_on_campfire", "cooking_sausages_not_on_barbeque_", "cooking_scallops", "cosplaying", "counting_money", "country_line_dancing", "cracking_back", "cracking_knuckles", "cracking_neck", "craft", "crawling_baby", "crochet", "croquet", "cross", "cross_country_cycling", "crossing_eyes", "crossing_river", "crying", "cumbia", "curling_hair", "curling_sport_", "cutting_apple", "cutting_nails", "cutting_orange", "cutting_pineapple", "cutting_the_grass", "cutting_watermelon", "cycling", "dance", "dancing_ballet", "dancing_charleston", "dancing_gangnam_style", "dancing_macarena", "deadlifting", "decorating_the_christmas_tree", "delivering_mail", "dining", "directing_traffic", "disc_dog", "disc_golfing", "diving", "diving_cliff", "docking_boat", "dodgeball", "doing_a_powerbomb", "doing_aerobics", "doing_jigsaw_puzzle", "doing_karate", "doing_kickboxing", "doing_laundry", "doing_motocross", "doing_nails", "downhill_mountain_biking", "drawing", "dribbling_basketball", "drinking", "drinking_shots", "driving_car", "driving_tractor", "drooling", "drop_kicking", "drum_corps", "drumming_fingers", "dumpster_diving", "dunking_basketball", "dyeing_eyebrows", "dyeing_hair", "eating", "eating_burger", "eating_cake", "eating_carrots", "eating_chips", "eating_doughnuts", "eating_hotdog", "eating_ice_cream", "eating_spaghetti", "eating_watermelon", "egg_hunting", "embroidering", "equitation", "exercising_with_an_exercise_ball", "extinguishing_fire", "faceplanting", "falling_off_bike", "falling_off_chair", "feeding_birds", "feeding_fish", "feeding_goats", "fencing_sport_", "fidgeting", "fight", "figure_skating", "finger_snapping", "fishing", "fixing_bicycle", "fixing_hair", "fixing_the_roof", "flint_knapping", "flipping_pancake", "fly_casting", "fly_fishing", "fly_tying", "flying_kite", "folding_clothes", "folding_napkins", "folding_paper", "folk_dance", "front_raises", "frying", "frying_vegetables", "futsal", "gambling", "geocaching", "getting_a_haircut", "getting_a_piercing", "getting_a_tattoo", "giving_or_receiving_award", "gliding", "gold_panning", "golf", "golf_chipping", "golf_driving", "golf_putting", "gospel_singing_in_church", "grappling", "grilling", "grinding_meat", "grooming_dog", "grooming_horse", "gymnastics", "gymnastics_tumbling", "hammer_throw", "hand_car_wash", "hand_washing_clothes", "harvest", "head_stand", "headbanging", "headbutting", "high_jump", "high_kick", "historical_reenactment", "hitting_a_pinata", "hitting_baseball", "hockey_stop", "holding_snake", "home_roasting_coffee", "hopscotch", "hoverboarding", "huddling", "hugging_baby", "hugging_not_baby_", "hula_hooping", "hunt_seat", "hurdling", "hurling_sport_", "ice_climbing", "ice_fishing", "ice_skating", "ice_swimming", "inflating_balloons", "inline_skating", "installing_carpet", "ironing", "ironing_hair", "javelin_throw", "jaywalking", "jetskiing", "jogging", "juggling_balls", "juggling_fire", "juggling_soccer_ball", "jumping", "jumping_bicycle", "jumping_into_pool", "jumping_jacks", "jumpstyle_dancing", "karaoke", "kicking_field_goal", "kicking_soccer_ball", "kissing", "kitesurfing", "knitting", "krumping", "land_sailing", "laughing", "lawn_mower_racing", "laying_bricks", "laying_concrete", "laying_stone", "laying_tiles", "layup_drill_in_basketball", "learning", "leatherworking", "licking", "lifting_hat", "lighting_fire", "lock_picking", "logging", "long_jump", "longboarding", "looking_at_phone", "luge", "lunge", "making_a_cake", "making_a_lemonade", "making_a_sandwich", "making_an_omelette", "making_balloon_shapes", "making_bubbles", "making_cheese", "making_horseshoes", "making_jewelry", "making_paper_aeroplanes", "making_pizza", "making_snowman", "making_sushi", "making_tea", "making_the_bed", "marching", "marching_percussion", "marriage_proposal", "massaging_back", "massaging_feet", "massaging_legs", "massaging_neck", "massaging_person_s_head", "milking_cow", "modern_dance", "moon_walking", "mopping_floor", "mosh_pit_dancing", "motorcycling", "mountain_biking", "mountain_climber_exercise_", "moving_furniture", "mowing_lawn", "mushroom_foraging", "needle_felting", "needlework", "news_anchoring", "opening_bottle_not_wine_", "opening_door", "opening_present", "opening_refrigerator", "opening_wine_bottle", "origami", "outdoor_recreation", "packing", "painting_fence", "painting_furniture", "pan_frying", "parachuting", "paragliding", "parasailing", "parkour", "passing_american_football_in_game_", "passing_american_football_not_in_game_", "passing_soccer_ball", "peeling_apples", "peeling_potatoes", "percussion", "person_collecting_garbage", "petting_animal_not_cat_", "petting_cat", "photobombing", "photocopying", "photograph", "physical_exercise", "picking_fruit", "pillow_fight", "pinching", "pirouetting", "pitch", "planing_wood", "planting_trees", "plastering", "plataform_diving", "playing_accordion", "playing_badminton", "playing_bagpipes", "playing_basketball", "playing_bass_guitar", "playing_beer_pong", "playing_blackjack", "playing_cello", "playing_chess", "playing_clarinet", "playing_congas", "playing_controller", "playing_cricket", "playing_cymbals", "playing_darts", "playing_didgeridoo", "playing_dominoes", "playing_drums", "playing_field_hockey", "playing_flute", "playing_gong", "playing_guitar", "playing_hand_clapping_games", "playing_harmonica", "playing_harp", "playing_ice_hockey", "playing_keyboard", "playing_kickball", "playing_lacrosse", "playing_laser_tag", "playing_lute", "playing_maracas", "playing_marbles", "playing_monopoly", "playing_netball", "playing_ocarina", "playing_organ", "playing_paintball", "playing_pan_pipes", "playing_piano", "playing_pinball", "playing_ping_pong", "playing_poker", "playing_polo", "playing_recorder", "playing_rubiks_cube", "playing_saxophone", "playing_scrabble", "playing_squash_or_racquetball", "playing_ten_pins", "playing_tennis", "playing_trombone", "playing_trumpet", "playing_ukulele", "playing_violin", "playing_volleyball", "playing_water_polo", "playing_with_trains", "playing_xylophone", "poking_bellybutton", "pole_vault", "polishing_forniture", "polishing_metal", "popping_balloons", "pouring_beer", "powerbocking", "preparing_pasta", "preparing_salad", "presenting_weather_forecast", "print", "public_speaking", "pull_ups", "pumping_fist", "pumping_gas", "punch", "punching_bag", "punching_person_boxing_", "purl", "push_up", "pushing_car", "pushing_cart", "pushing_wheelbarrow", "pushing_wheelchair", "putting_in_contact_lenses", "putting_on_eyeliner", "putting_on_foundation", "putting_on_lipstick", "putting_on_mascara", "putting_on_sari", "putting_on_shoes", "rafting", "raising_eyebrows", "raking_leaves", "reading", "reading_book", "reading_newspaper", "recording_music", "recreation", "recreational_fishing", "removing_curlers", "repairing_puncture", "riding_a_bike", "riding_bumper_cars", "riding_camel", "riding_elephant", "riding_mechanical_bull", "riding_mower", "riding_mule", "riding_or_walking_with_horse", "riding_scooter", "riding_snow_blower", "riding_unicycle", "ripping_paper", "river_tubing", "roasting", "roasting_marshmallows", "roasting_pig", "robot_dancing", "rock_climbing", "rock_scissors_paper", "rodeo", "roller_skating", "rollerblading", "rolling_pastry", "roof_shingle_removal", "rope_pushdown", "running", "running_on_treadmill", "sailing", "salsa_dancing", "sanding_floor", "sausage_making", "sawing_wood", "scrambling_eggs", "scrapbooking", "scrubbing_face", "scuba_diving", "separating_eggs", "setting_table", "sewing", "shaking_hands", "shaking_head", "shaping_bread_dough", "sharpening_knives", "sharpening_pencil", "shaving_head", "shaving_legs", "shearing_sheep", "shining_flashlight", "shining_shoes", "shooting", "shooting_basketball", "shooting_goal_soccer_", "shopping", "shot_put", "shoveling_snow", "shucking_oysters", "shuffling_cards", "shuffling_feet", "side_kick", "sign_language_interpreting", "singing", "sipping_cup", "sitting", "situp", "skateboarding", "ski_jumping", "skiing", "skiing_crosscountry", "skiing_mono", "skiing_slalom", "skipping_rope", "skipping_stone", "skydiving", "slacklining", "slapping", "sled_dog_racing", "sledding", "sleeping", "smashing", "smelling_feet", "smile", "smoking", "smoking_hookah", "smoking_pipe", "snatch_weight_lifting", "sneezing", "snorkeling", "snow_tubing", "snowboarding", "snowkiting", "snowmobiling", "soccer", "softball", "somersaulting", "sparring", "spelunking", "spinning_poi", "sports_training", "spray_painting", "spread_mulch", "springboard_diving", "sprint", "square_dancing", "squat", "standing", "standing_on_hands", "staring", "steer_roping", "sticking_tongue_out", "stitch", "stomping_grapes", "stone_carving", "strength_training", "stretching_arm", "stretching_leg", "sucking_lolly", "surf_fishing", "surfing_crowd", "surfing_water", "sweeping_floor", "swimming", "swimming_backstroke", "swimming_breast_stroke", "swimming_butterfly_stroke", "swimming_front_crawl", "swing_dancing", "swinging_baseball_bat", "swinging_on_something", "sword_fighting", "sword_swallowing", "table_soccer", "tackling", "tagging_graffiti", "tai_chi", "talking_on_cell_phone", "tango_dancing", "tap_dancing", "tapping_guitar", "tapping_pen", "tasting_beer", "tasting_food", "tasting_wine", "testifying", "texting", "threading_needle", "throwing_axe", "throwing_ball_not_baseball_or_american_football_", "throwing_discus", "throwing_knife", "throwing_snowballs", "throwing_tantrum", "throwing_water_balloon", "tickling", "tie_dying", "tightrope_walking", "tiptoeing", "tobogganing", "tossing_coin", "track_and_field", "trail_riding", "training_dog", "trapezing", "trimming_or_shaving_beard", "trimming_shrubs", "trimming_trees", "triple_jump", "twiddling_fingers", "tying_bow_tie", "tying_knot_not_on_a_tie_", "tying_necktie", "tying_shoe_laces", "unboxing", "underwater_diving", "unloading_truck", "using_a_microscope", "using_a_paint_roller", "using_a_power_drill", "using_a_sledge_hammer", "using_a_wrench", "using_atm", "using_bagging_machine", "using_circular_saw", "using_inhaler", "using_puppets", "using_remote_controller_not_gaming_", "using_segway", "using_the_monkey_bar", "using_the_pommel_horse", "vacuuming_floor", "visiting_the_zoo", "wading_through_mud", "wading_through_water", "waiting_in_line", "waking_up", "walking", "walking_the_dog", "walking_through_snow", "washing_dishes", "washing_feet", "washing_hair", "washing_hands", "waste", "watching_tv", "water_skiing", "water_sliding", "watering_plants", "waving_hand", "waxing_back", "waxing_chest", "waxing_eyebrows", "waxing_legs", "weaving", "weaving_basket", "weaving_fabric", "welding", "whistling", "wicker_weaving", "windsurfing", "winking", "wood_burning_art_", "worship", "wrapping_present", "wrestling", "writing", "yarn_spinning", "yawning", "yoga", "zumba"], "attribute": ["afro", "aggression", "al_dente", "angora", "art_paper", "asphalt", "azure", "bangs", "barechestedness", "beauty", "beige", "black", "black_and_white", "black_hair", "blond", "blue", "bmw", "boiling", "brass", "bricks_and_mortar", "brown", "brown_hair", "caffeine", "calm", "camouflage", "caramel_color", "cardboard", "ceramic", "citric_acid", "classic", "clay", "cleft", "cobalt_blue", "coca_cola", "complexion", "concrete", "cool", "dairy", "darkness", "daytime", "deciduous", "denim", "drama", "elder", "electric_blue", "emerald", "evergreen", "explosive_material", "floating", "fluid", "flyweight", "forward", "freezing", "fun", "glitter", "gold", "granite", "green", "happy", "human_hair_color", "hunky", "inflatable", "iron", "laminate", "layered_hair", "leather", "leisure", "lilac", "long_hair", "magenta", "maroon", "metal", "metropolis", "military", "moist", "monochrome", "multimedia", "neon", "orange", "origami_paper", "paper", "patchwork", "peach", "pigtail", "pink", "plane", "plastic", "platinum_blond", "plush", "plywood", "polka_dot", "pompadour", "purple", "rapid", "red", "red_hair", "reflection", "satin", "shade", "silk", "silver", "sweetness", "symmetry", "synthetic_rubber", "teal", "transparency_and_translucency", "turquoise", "velvet", "violet", "white", "wood", "wool", "woolen", "woven_fabric", "wrinkle", "yellow", "youth"], "concept": ["aerial_photography", "agriculture", "air_force", "air_sports", "american_food", "ancient_history", "angle", "animal_migration", "animal_source_foods", "animal_sports", "arch", "architecture", "army", "art", "artistic_gymnastics", "asian_food", "athletics", "audience", "automotive_design", "automotive_exterior", "aviation", "baked_goods", "ball_over_a_net_games", "bat_and_ball_games", "benthos", "blessing", "boardsport", "brand", "business", "cable_management", "cellular_network", "choir", "circle", "circus", "class", "classic_car", "classical_music", "clergy", "clip_art", "close_up", "collaboration", "color_guard", "combat_sport", "comfort", "comfort_food", "commodity", "community", "computer_program", "concert_band", "confectionery", "construction", "contact_sport", "convenience_food", "costume_design", "court", "court_game", "crew", "crowd", "cube", "cuisine", "currency", "cycle_sport", "cylinder", "decor", "design", "dialog_box", "diet_food", "display_advertising", "dog_breed", "dog_sports", "doubles", "dressage", "east_asian_food", "ecosystem", "electrical_network", "electricity", "electronics", "emergency", "emergency_service", "emotion", "endurance_sports", "energy", "engineering", "ensemble", "entertainment", "equestrian_sport", "erg", "european_food", "extreme_sport", "facial_expression", "family", "fashion_design", "fast_food", "fauna", "fictional_character", "field_game", "film", "finger_food", "fixed_link", "floral_design", "floristry", "font", "fried_food", "friendship", "frozen_food", "games", "geological_phenomenon", "geology", "german_food", "golf_club", "graffito", "graphic_design", "graphics", "grilled_food", "hairstyle", "handwriting", "health_care", "heart", "heat", "herd", "history", "human_behavior", "individual_sports", "indoor_games_and_sports", "industry", "infrastructure", "interaction", "interior_design", "inventory", "italian_food", "japanese_cuisine", "japanese_martial_arts", "job", "junk_food", "kite_sports", "land_vehicle", "laser", "laughter", "law_enforcement", "light_commercial_vehicle", "lighting", "line", "line_art", "local_food", "lockstitch", "logo", "love", "luxury_vehicle", "luxury_yacht", "major_appliance", "male", "management", "map", "marching_band", "marine_mammal", "martial_arts", "mass_production", "match_play", "meal", "medal_play", "medical", "medicine", "memorial", "mesh", "meteorological_phenomenon", "mid_size_car", "military_officer", "military_organization", "military_rank", "mineral", "mixture", "mode_of_transport", "modern_art", "money", "monochrome_photography", "motorsport", "music", "musical_ensemble", "natural_foods", "nature", "news", "non_sporting_group", "number", "off_road", "official", "orchestra", "organism", "pachyderm", "packaging_and_labeling", "painting", "party_supply", "pattern", "people", "performance", "performing_arts", "physical_fitness", "pint_us", "plaid", "plant_community", "plaster", "police", "pollinator", "pollution", "pop_music", "primate", "public_transport", "public_utility", "pyramid", "racquet_sport", "rapid_transit", "real_estate", "recipe", "rectangle", "religion", "research", "rock", "roller_sport", "romance", "rose_order", "seafood", "security", "selfie", "service", "shadow", "shelving", "shoal", "shooting_sport", "side_dish", "silhouette", "singles", "skin_care", "social_group", "software", "song", "spanish_cuisine", "sphere", "spiral", "spoor", "sport", "spotlight", "spring_break", "square", "star", "stick_and_ball_games", "stick_and_ball_sports", "still_life", "still_life_photography", "stock_photography", "street_art", "street_food", "striking_combat_sports", "stucco", "superfood", "surface_water_sports", "symbol", "tartan", "taste", "team", "team_sport", "technology", "telephony", "television_program", "tool", "tourism", "towed_water_sport", "tradition", "traditional_sport", "traffic", "tread", "triangle", "tribe", "troop", "underwater", "vegetarian_food", "vegetation", "video_game_software", "visual_arts", "war", "waste_containment", "water_ball_sports", "water_sport", "water_transportation", "watercraft", "weapon", "weapon_combat_sports", "website", "whole_food", "wildlife", "wind", "windsports", "winter_sport"], "event": ["800_metres", "adventure", "air_travel", "art_exhibition", "auto_show", "autumn", "award_ceremony", "banquet", "bedtime", "breakfast", "broad_jump", "brunch", "carnival", "ceremony", "championship", "christmas", "competition", "concert", "conference", "convention", "conversation", "decathlon", "demonstration", "dinner", "disaster", "evening", "exhibition", "festival", "flight", "freight_transport", "general_aviation", "graduation", "halloween", "heptathlon", "holiday", "lecture", "lunch", "manicure", "marathon", "massage", "meeting", "morning", "multi_sport_event", "news_conference", "night", "parade", "party", "photo_shoot", "picnic", "presentation", "protest", "public_event", "race", "ritual", "road_trip", "rock_concert", "safari", "seminar", "ski_cross", "speech", "spring", "summer", "sunrise_and_sunset", "supper", "tournament", "vacation", "wedding", "wedding_reception", "winter"], "object": ["abdomen", "academic_dress", "accordion", "accordionist", "acoustic_electric_guitar", "acoustic_guitar", "acrylic_paint", "action_figure", "active_undergarment", "adding_machine", "aegean_cat", "aerialist", "african_elephant", "agaric", "agaricaceae", "agaricomycetes", "agaricus", "agricultural_machinery", "agriculturist", "aioli", "air_bubble", "air_gun", "aircraft", "airliner", "alaskan_malamute", "album_cover", "alcoholic_beverage", "ale", "algae", "all_terrain_vehicle", "all_xbox_accessory", "alligator", "alloy_wheel", "alpinist", "alto_horn", "american_alligator", "american_pit_bull_terrier", "amusement_ride", "ananas", "anchor", "angle_grinder", "animal_fat", "ankle", "annual_plant", "antique", "antique_car", "appetizer", "apple", "aqua", "aqualung", "aquanaut", "aquarium", "aquatic_plant", "aquifoliaceae", "arabian_camel", "arcade_game", "archer", "arecales", "arm", "artifact", "artificial_fly", "artificial_turf", "artisan", "artwork", "athlete", "athletic_shoe", "audio_engineer", "audio_equipment", "auto_part", "automaton", "automotive_engine_part", "automotive_exhaust", "automotive_lighting", "automotive_mirror", "automotive_tire", "automotive_wheel_system", "automotive_window_part", "ax", "ax_handle", "baby_buggy", "baby_carrier", "baby_products", "baby_toys", "back", "backboard", "backhoe", "backseat", "bag", "bagel", "baggage", "bagpipes", "bait", "baker", "balance_beam", "balcony", "ball", "ballet_dancer", "ballet_skirt", "balloon", "baluster", "bandage", "banderillero", "bandoneon", "banjo", "banner", "barbell", "barber", "baritone_saxophone", "barramundi", "barrel", "barrow", "bartender", "barware", "baseball_bat", "baseball_cap", "baseball_equipment", "baseball_player", "basket", "basketball_player", "bass", "bass_drum", "bass_fiddle", "bass_guitar", "bass_oboe", "bassinet", "bassist", "bassoon", "bathing_cap", "bathroom_accessory", "bathroom_sink", "bathtub", "batter", "bayonne_ham", "bead", "beak", "beam", "bean", "beanie", "beard", "bed", "bed_frame", "bed_sheet", "bedding", "bedrock", "bee", "beef", "beef_tenderloin", "beehive", "beekeeper", "beer", "beer_cocktail", "beer_glass", "belay_device", "bell_peppers_and_chili_peppers", "bench", "berry", "beyaz_peynir", "bib", "bichon", "bicycle", "bicycle_accessory", "bicycle_chain", "bicycle_drivetrain_part", "bicycle_frame", "bicycle_handlebar", "bicycle_helmet", "bicycle_part", "bicycle_saddle", "bicycle_tire", "bicycle_wheel", "bidet", "big_cats", "bikini", "billboard", "bin", "birch", "bird", "birthday_cake", "biscuit", "black_belt", "black_cat", "blackboard", "blacksmith", "blade", "blazer", "blender", "block", "blood", "blossom", "blouse", "blue_collar_worker", "bmx_bike", "boa_constrictor", "board_game", "boas", "boat", "boats_and_boating_equipment_and_supplies", "bobsled", "bocce_ball", "bodybuilder", "bolete", "bonfire", "bongo", "bony_fish", "book", "bookcase", "boot", "bottle", "bottled_water", "boulder", "bouquet", "bow_and_arrow", "bow_tie", "bowed_string_instrument", "bowie_knife", "bowl", "bowler", "bowling_ball", "bowling_equipment", "bowling_pin", "box", "boxing_equipment", "boxing_glove", "boy", "bracelet", "brake_disk", "branch", "brass_instrument", "brassiere", "bratwurst", "bread", "bread_dough", "brick", "bricklayer", "brickwork", "bridal_clothing", "bride", "bridle", "briefs", "broccoli", "brochette", "bromeliaceae", "broom", "broth", "brush", "bubble", "bubble_gum", "bucket", "bugle", "bull", "bulldozer", "bullfighter", "bumper", "bumper_car", "bun", "bungee", "buoyancy_compensator", "bus", "businessperson", "butcher", "buttercream", "button", "button_accordion", "cab", "cabin_cruiser", "cabinet", "cabinetry", "cable", "caesar_salad", "cage", "cake", "calf", "camel", "camera", "camera_accessory", "camera_lens", "camera_operator", "camgirl", "campfire", "candle", "cannon", "canoe", "cap", "car", "car_mirror", "car_seat", "car_seat_cover", "car_tire", "car_wheel", "carbonara", "carbonated_soft_drinks", "cardboard_box", "caricaturist", "carnivoran", "carpenter", "carpet", "carriage", "carrot", "cart", "carton", "cartoon", "carving", "cash", "cash_machine", "cat", "catamaran", "cattle_like_mammal", "ceiling", "celesta", "cellist", "cello", "cellular_telephone", "center_console", "central_processing_unit", "centrepiece", "chain", "chain_link_fencing", "chain_saw", "chair", "chalk", "champagne", "champagne_stemware", "charcoal", "charcuterie", "chariot", "chassis", "cheek", "cheerleader", "cheerleading_uniform", "cheese", "cheese_pizza", "cheeseburger", "chef", "cherry", "chess_master", "chessboard", "chessman", "chest", "chest_hair", "chest_of_drawers", "chicken", "chihuahua", "child", "chin", "chip", "chocolate", "chocolate_brownie", "chocolate_cake", "chocolate_chip_cookie", "chocolate_spread", "choreographer", "christmas_decoration", "christmas_lights", "christmas_tree", "chute", "circuit", "circuit_component", "circular_saw", "circus_acrobat", "citrullus", "citrus", "city_car", "clam", "clams_oysters_mussels_and_scallops", "clarinet", "clarinet_family", "clavier", "clementine", "climber", "climbing_frame", "climbing_harness", "closet", "clothes_closet", "clothes_dryer", "clothes_hamper", "clothing", "cloud", "clown", "coat", "cobblestone", "cockapoo", "cocktail", "cocktail_dress", "cocktail_garnish", "coconut", "cod", "coffee", "coffee_bean", "coffee_cup", "coffee_table", "coin", "cola", "colander", "cold_weapon", "collage", "collar", "collection", "collie", "color_television", "colt", "colubridae", "column", "comb", "comforter", "commercial_vehicle", "common_pet_parakeet", "communication_device", "commuter", "compact_car", "compact_van", "companion_dog", "composite_material", "compound_microscope", "computer", "computer_accessory", "computer_case", "computer_component", "computer_cooling", "computer_hardware", "computer_keyboard", "concert_grand", "concertina", "condiment", "conifer", "construction_equipment", "construction_worker", "convertible", "cookie", "cookie_sheet", "cookies_and_crackers", "cookware_accessory", "cookware_and_bakeware", "cor_anglais", "coral", "coral_reef_fish", "cornet", "cosmetics", "costume", "couch", "countertop", "coverall", "cow_goat_family", "cowbarn", "cowboy", "cowboy_hat", "craftsman", "crampon", "crane", "cravat", "cream", "cream_cheese", "cricket_bat", "cricketer", "crochet_needle", "crocodile", "crocodilia", "crop", "croquet_mallet", "crossword_puzzle", "cruciferous_vegetables", "crystal", "cuatro", "cucumber", "cucumber_gourd_and_melon_family", "cucumis", "cucurbita", "cumulus", "cup", "cupboard", "curbstone", "curd", "curtain", "customer", "cut_flowers", "cutlery", "cymbal", "dairy_cattle", "dairy_cow", "dairy_product", "dance_dress", "dancer", "dashboard", "data_storage_device", "date_palm", "defenseman", "desk", "desktop_computer", "dessert", "dhow", "diaper", "diatonic_button_accordion", "digital_clock", "dining_table", "dinnerware_set", "dip", "discinaceae", "dish", "dishware", "dishwasher", "disk_jockey", "display_case", "display_device", "display_window", "distilled_beverage", "divemaster", "diver", "diving_equipment", "diving_mask", "dobok", "document", "dog", "dog_sled", "doll", "dolphin", "dome", "domestic_rabbit", "donkey", "door", "door_handle", "double_bass", "dough", "drawer", "dress", "dress_shirt", "drill", "drink", "drinker", "drinking_water", "drinkware", "drop", "drum", "drumhead", "drummer", "drumstick", "dry_suit", "dryer", "duck", "ducks_geese_and_swans", "dumbbell", "dump_truck", "duplicator", "dustpan", "ear", "earl_grey_tea", "earrings", "eating_apple", "edger", "edible_mushroom", "egg", "egg_yolk", "electric_guitar", "electric_organ", "electric_piano", "electrical_supply", "electrical_wiring", "electronic_component", "electronic_device", "electronic_keyboard", "electronic_musical_instrument", "electronic_signage", "electronics_accessory", "elephant", "elliptical_trainer", "emblem", "emergency_vehicle", "engine", "engineer", "envelope", "epee", "equestrian", "espresso", "euphonium", "executive_car", "exercise_bike", "exercise_equipment", "exercise_machine", "exhaust_system", "eye", "eye_shadow", "eyebrow", "eyelash", "eyewear", "facade", "face", "facial_hair", "family_car", "fan", "farm_machine", "farmer", "farmworker", "fashion_accessory", "fashion_model", "faucet", "feather", "feather_boa", "feature_phone", "fedora", "fence", "fencing_sword", "fencing_weapon", "fern", "ferry", "fiddle", "field_hockey_ball", "figure_skater", "figurine", "fin", "finger", "finger_paint", "fipple_flute", "fir", "fire", "firearm", "firefighter", "fireplace", "fish", "fish_feeder", "fisherman", "fishing_bait", "fishing_lure", "fishing_rod", "fishing_vessel", "fitness_professional", "flag", "flag_of_the_united_states", "flagstone", "flashlight", "flat_panel_display", "flatbread", "flautist", "flightless_bird", "flooring", "florist", "flour", "flourless_chocolate_cake", "flower", "flower_bouquet", "flowering_plant", "flowerpot", "flush_toilet", "flute", "flutist", "fly", "foal", "foil", "folk_dancer", "folk_instrument", "fondant", "food", "food_processor", "foot", "football_equipment_and_supplies", "football_helmet", "football_player", "footwear", "forehead", "fork", "forklift_truck", "formal_wear", "fortepiano", "foundation", "fountain", "fountain_pen", "free_reed_aerophone", "french_fries", "fret", "fried_egg", "fried_rice", "frost", "frozen_dessert", "fruit", "fruit_tree", "frying_pan", "fuel", "full_size_car", "fungus", "fur", "fur_clothing", "furniture", "gadget", "galliformes", "game_controller", "garbage_heap", "garbage_man", "garbage_truck", "garden_roses", "gardener", "garmon", "garnish", "gas_burner", "gas_pump", "gas_ring", "gate", "gauge", "gazebo", "gear", "gearshift", "gemstone", "german_shepherd_dog", "german_spitz", "gift", "gin_and_tonic", "giraffe", "girl", "glass", "glassblower", "glasses", "glider", "glockenspiel", "glove", "glutinous_rice", "go_kart", "goal", "goat", "goat_antelope", "goggles", "golden_retriever", "goldfish", "golf_ball", "golf_equipment", "golfcart", "golfer", "gourd", "gown", "graffiti", "grand_piano", "grape", "grapevine_family", "grass", "gravel", "great_dane", "greek_salad", "green_algae", "green_bean", "greenland_dog", "grenadier", "greyhound", "griddle", "grocer", "groom", "groundcover", "guard_dog", "guard_rail", "guitar", "guitar_accessory", "guitarist", "gymnast", "hair", "hair_accessory", "hair_coloring", "hair_dryer", "hairbrush", "hairdresser", "halter", "hamburger", "hammer", "hand", "hand_calculator", "hand_drum", "hand_glass", "handbag", "handcart", "handlebar", "handrail", "hang_glider", "hard_hat", "hardware", "hardware_accessory", "harmonica", "harp", "harvester", "hat", "hatchback", "hatchet", "havanese", "hay", "head", "head_restraint", "headgear", "headphones", "headpiece", "hearth", "heat_sink", "hedge", "heel", "helmet", "herb", "high_heeled_footwear", "highchair", "hip", "hockey_protective_equipment", "hockey_stick", "home_accessories", "home_appliance", "home_door", "home_fencing", "home_game_console_accessory", "honey_bee", "honeycomb", "hood", "hoodie", "horizontal_bar", "horn", "hors_d_oeuvre", "horse", "horse_and_buggy", "horse_harness", "horse_like_mammal", "horse_supplies", "horse_tack", "horse_trainer", "horseman", "hospital_bed", "hot_air_balloon", "hot_pot", "hot_tub", "household_cleaning_supply", "houseplant", "hub_gear", "hubcap", "human", "human_body", "human_leg", "hunting_dog", "hurdle", "hybrid_bicycle", "ice", "ice_cream", "ice_cream_cone", "ice_lolly", "ice_skate", "iceberg", "icing", "illustration", "indian_elephant", "infant", "infant_bed", "infantry", "inflatable_boat", "ingredient", "input_device", "insect", "invertebrate", "io_card", "iris", "ivy", "jack_o_lantern", "jacket", "jasmine_rice", "javelin", "jaw", "jeans", "jersey", "jewellery", "jigsaw_puzzle", "jockey", "joint", "jointer", "journalist", "joystick", "juggler", "juice", "jungle_gym", "kayak", "kettle", "keyboard_instrument", "keyboard_player", "kielbasa", "kilt", "kisser", "kitchen_appliance", "kitchen_knife", "kite", "kitten", "knackwurst", "knee", "knife", "knit_cap", "knitting_needle", "knot", "koi", "konghou", "lab_coat", "label", "labrador_retriever", "lace", "lacrosse_stick", "lacrosse_training_equipment", "ladder", "lamp", "laptop", "lasso", "latch", "lathe", "laundry", "lawn", "lcd_tv", "lead_pencil", "leaf", "leaf_vegetable", "leash", "led_backlit_lcd_display", "leggings", "lemon", "lemonade", "lens", "leotard", "lettuce", "lever", "ligament", "light_bulb", "light_fixture", "light_microscope", "lighter", "lighting_accessory", "lineman", "linens", "lingerie", "lip", "lip_gloss", "lipstick", "liquor_shelf", "litter", "little_black_dress", "livestock", "lobe", "lock", "locker", "locomotive", "loggerhead", "lollipop", "longboard", "loom", "lotion", "loudspeaker", "lovebird", "loveseat", "lumber", "lute", "macaw", "machine", "machine_tool", "magazine", "maillot", "makeup", "mallet", "maltese", "mammal", "man", "mandarin_orange", "mandolin", "mane", "maraca", "marcher", "mare", "marimba", "marine_invertebrates", "marines", "mask", "mason_jar", "mast", "mat", "matador", "matsutake", "mattress", "mattress_pad", "mcintosh", "measuring_instrument", "meat", "meat_grinder", "mechanic", "media_player", "medical_assistant", "medical_equipment", "medical_glove", "medicine_ball", "melee_weapon", "mellophone", "melon", "membrane_winged_insect", "mender", "metal_lathe", "metalsmith", "microcontroller", "microphone", "microscope", "microwave_oven", "miler", "military_camouflage", "military_person", "military_uniform", "milk", "miniature_poodle", "minibus", "minivan", "mirror", "mixer", "mixing_bowl", "mixing_console", "mobile_device", "mobile_phone", "model", "monument", "moped", "moss", "motherboard", "motocross_bike", "motor_scooter", "motor_ship", "motor_vehicle", "motorboat", "motorcycle", "motorcycle_accessories", "motorcyclist", "motorized_wheelchair", "mountain_bike", "mountaineer", "moustache", "mouth", "mower", "mud", "mug", "mule", "mural", "muscle", "musher", "mushroom", "musical_instrument", "musical_instrument_accessory", "musical_keyboard", "musician", "musket", "nail", "nail_polish", "neck", "necklace", "necktie", "needle", "neon_lamp", "neon_sign", "net", "newscaster", "newspaper", "nib", "nightwear", "non_alcoholic_beverage", "non_commissioned_officer", "non_skin_percussion_instrument", "noodle", "nose", "numeric_keypad", "oars", "oboist", "ocarina", "off_road_vehicle", "office_equipment", "office_supplies", "oil_paint", "open_wheel_car", "optical_instrument", "orator", "organ", "organ_pipe", "organist", "outdoor_furniture", "outdoor_grill", "outdoor_play_equipment", "outdoor_power_equipment", "outdoor_shoe", "outdoor_structure", "outerwear", "output_device", "overhead_power_line", "ox", "oxygen_mask", "oyster", "oyster_mushroom", "oyster_shell", "pack_animal", "paddle", "padlock", "paintball_equipment", "paintball_gun", "palm_tree", "pan", "panelist", "pantyhose", "paper_product", "paper_towel", "parachute", "parakeet", "parallel_bars", "park_bench", "parquet", "parrot", "parsley", "passenger", "passenger_ship", "pasta", "pastry", "patient", "paving", "paw", "pawn", "pearl", "pebble", "pedestrian", "peel", "pen", "pencil", "pencil_sharpener", "pepperoni", "percussion_accessory", "percussion_instrument", "percussionist", "performance_car", "perico", "personal_computer", "personal_digital_assistant", "personal_flotation_device", "personal_protective_equipment", "petal", "pezizales", "photocopier", "physical_therapist", "physician", "pianet", "pianist", "piano", "piano_keyboard", "picador", "picket_fence", "pickup_truck", "picnic_boat", "pig", "pig_like_mammal", "pigeon", "pigeons_and_doves", "pillow", "pilot_boat", "pinata", "pinball_machine", "pine", "pine_family", "pineapple", "pinscher", "pint_glass", "pipe", "pizza", "pizza_cheese", "plant", "plant_stem", "plastic_bag", "plate", "platter", "play_vehicle", "player", "playground_slide", "playpen", "playstation_3_accessory", "playstation_accessory", "pliers", "plimsoll", "plucked_string_instruments", "plumbing", "plumbing_fixture", "pocket", "pointer", "pole", "police_officer", "polo_mallet", "polo_pony", "polo_shirt", "pomeranian", "pommel_horse", "pontoon", "pony", "poodle", "porcelain", "portable_communications_device", "portable_media_player", "portrait", "poster", "potato", "potato_and_tomato_genus", "pothole", "powdered_sugar", "power_drill", "power_mower", "power_shovel", "printer", "produce", "professional_golfer", "propeller", "protective_equipment_in_gridiron_football", "protective_gear_in_sports", "pug", "pumpkin", "pungsan_dog", "puppy", "putter", "puzzle", "queen", "quill", "rabbit", "race_car", "racer", "racing_bicycle", "racket", "radial", "random_orbital_sander", "ranged_weapon", "rear_view_mirror", "recycling_bin", "red_carpet", "red_meat", "red_wine", "redhead", "reed_instrument", "refrigerator", "rein", "remote_control", "reptile", "researcher", "retaining_wall", "retriever", "ribbon", "rice", "rifle", "rim", "ring", "road_bicycle", "roast_beef", "robot", "rock_climbing_equipment", "rock_star", "rodent", "roller_blades", "roller_skates", "rolling_pin", "roof", "root", "root_vegetable", "rope", "rose", "rose_family", "rotisserie", "royal_icing", "rubber_boot", "rubble", "runner", "running_shoe", "saddle", "safe", "safety_belt", "safety_bicycle", "safety_glove", "sail", "sailboat", "sailing_ship", "salad", "salmon", "samoyed", "sand", "sand_wedge", "sandal", "sandbox", "sandwich", "sapsali", "sari", "sarong", "sash_window", "sashimi", "saucer", "sauces", "sausage", "saw", "saxhorn", "saxophone", "saxophonist", "scaffolding", "scale_model", "scaled_reptile", "scanner", "scarf", "schipperke", "schnoodle", "schooner", "scientific_instrument", "scissors", "scooter", "scoreboard", "scow", "scrap", "screen", "scuba_diver", "sculptor", "sculpture", "sea_ice", "sea_kayak", "sea_turtle", "seabird", "seaplane", "seat_belt", "seaweed", "sedan", "seed", "segway", "senior_citizen", "serger", "serpent", "serveware", "sewing_machine", "sewing_machine_needle", "shaving_cream", "shed", "sheep", "shelf", "shih_tzu", "ship", "shipwreck", "shirt", "shoe", "shopkeeper", "shopping_basket", "shopping_cart", "shorts", "shoulder", "shovel", "shower_curtain", "shrimp", "shrub", "siberian_husky", "sicilian_pizza", "sideboard", "siding", "sign", "singer", "singlet", "sink", "skateboard", "skateboarder", "skateboarding_equipment_and_supplies", "sketch", "skewer", "ski", "ski_binding", "ski_equipment", "ski_pole", "skidder", "skiff", "skin", "skin_head_percussion_instrument", "skirt", "slate_roof", "sled", "sled_dog", "sleeper", "sleeve", "sloop", "slot", "slot_machine", "small_appliance", "smartphone", "smoke", "snack", "snake", "snare_drum", "sneakers", "snorkel", "snout", "snow_thrower", "snowboard", "snowmobile", "snowplow", "snowshoe", "snowsuit", "soccer_ball", "soccer_player", "sock", "soft_drink", "soil", "soup", "space_bar", "spaghetti", "spaniel", "spatula", "speaker", "speedometer", "speleothem", "spice", "spin_dryer", "spinach", "spinach_salad", "spindle", "spinet", "spinning_wheel", "spitz", "spoke", "spokesperson", "spoon", "sport_kite", "sport_utility_vehicle", "sports_car", "sports_equipment", "sports_uniform", "sportswear", "spring_greens", "sprinkler", "spruce", "spume", "square_dancer", "squash", "stairs", "stalagmite", "stall", "stallion", "standard_poodle", "statue", "steak", "steam_iron", "steamed_rice", "steel", "steel_drum", "steering_part", "steering_wheel", "stemware", "stew", "stick", "stock_car", "stock_dove", "stocking", "stomach", "stone_wall", "stony_coral", "storage_basket", "stout", "stove_and_oven", "strainer", "straw", "streamer_fly", "street_light", "string_instrument", "string_instrument_accessory", "stubble", "student", "stuffed_toy", "stuffing", "stunt_performer", "subcompact_car", "subwoofer", "sugar_cake", "sugar_paste", "suit", "sun", "sun_hat", "sunbather", "sunglasses", "sunlight", "supercar", "superhero", "surfboard", "surfing_equipment_and_supplies", "sushi", "swab", "swan", "sweater", "sweet_grass", "swimmer", "swimsuit_bottom", "swimwear", "swing", "switch", "synthesizer", "t_shirt", "tabby_cat", "table", "table_knife", "table_tennis_racket", "tablecloth", "tabletop_game", "tableware", "tachometer", "taglierini", "tail", "tall_ship", "tank", "tarpaulin", "tattoo", "tea", "teacher", "teapot", "teddy_bear", "telephone", "television_presenter", "television_reporter", "television_set", "tennis_equipment_and_supplies", "tennis_player", "tennis_pro", "tennis_racket", "tenor_saxophonist", "tent", "terrestrial_animal", "terrestrial_plant", "terrier", "text", "textile", "theater_curtain", "therapist", "thigh", "thorns_spines_and_prickles", "thread", "thumb", "tights", "tile", "tiple", "tire", "toast", "toddler", "toe", "toilet", "toilet_tissue", "tom_tom_drum", "tomahawk", "tomato", "tongue", "tooth", "toothbrush", "top", "toppings", "torch", "torso", "torte", "tower", "toy", "toy_box", "toy_poodle", "track_spikes", "tractor", "traffic_cop", "traffic_light", "trail_bike", "trailer", "trailer_truck", "train", "trampoline", "trapeze", "travel_trailer", "tree", "tricycle", "trigger", "trombone", "trousers", "trowel", "truck", "trumpet", "trumpeter", "tub", "tudung", "tusk", "tuxedo", "twig", "uke", "umbrella", "undergarment", "underpants", "uneven_parallel_bars", "unicycle", "unicyclist", "uniform", "urinal", "vacuum_cleaner", "van", "vascular_plant", "vase", "vaulter", "vegetable", "vehicle", "vehicle_brake", "vehicle_door", "vehicle_registration_plate", "venison", "vertebrate", "vibraphone", "video_game_console", "vigil_light", "vintage_car", "vintage_clothing", "violin", "violin_family", "violinist", "violist", "vitis", "vizsla", "volleyball_net", "volleyball_player", "wagon", "waist", "waiter", "walk_behind_mower", "walker", "walking_shoe", "wall", "wardrobe", "washbasin", "washing_machine", "waste_container", "watch", "water", "water_bird", "water_feature", "water_polo_cap", "water_ski", "watercolor_paint", "waterfowl", "watering_can", "watermelon", "wave", "wedding_ceremony_supply", "wedding_dress", "wedding_ring", "weightlifter", "weights", "welder", "west_highland_white_terrier", "wetsuit", "whaler", "whales_dolphins_and_porpoises", "wheat_beer", "wheel", "wheelchair", "whipped_cream", "whippet", "whisk", "whiskers", "whisky", "whistle", "white_coat", "white_collar_worker", "white_rice", "wicker_basket", "wicket", "wig", "wildflower", "wildlife_biologist", "wind_instrument", "wind_wave", "window", "window_blind", "window_covering", "window_screen", "window_treatment", "windshield", "windshield_wiper", "wine", "wine_glass", "wing", "winter_squash", "wiper", "wire", "wire_fencing", "wok", "woman", "wood_burning_stove", "wood_stain", "woodwind_instrument", "woody_plant", "workman", "wrench", "wrestler", "wrestling_mat", "wrestling_singlet", "wrist", "xylophone", "yacht", "yakitori", "yolk"], "scene": ["aeolian_landform", "aisle", "alley", "amusement_park", "animal_shelter", "apartment", "apiary", "archaeological_site", "arena", "arroyo", "attic", "auditorium", "automobile_repair_shop", "backyard", "badlands", "bakery", "ballpark", "ballroom", "bank", "bar", "barbershop", "barn", "baseball_field", "baseball_positions", "basement", "basketball_court", "bathroom", "batting_cage", "bay", "bayou", "bazaar", "beach", "beauty_salon", "bedroom", "boardwalk", "body_of_water", "boutique", "bowling_alley", "boxing_ring", "bridge", "building", "bullring", "butcher_shop", "canyon", "cape", "carport", "casino", "cave", "channel", "chapel", "cityscape", "cliff", "clinic", "coast", "coastal_and_oceanic_landforms", "cockpit", "cocktail_lounge", "concert_hall", "condominium", "conference_hall", "coral_reef", "courtyard", "creek", "day_nursery", "deck", "desert", "dining_room", "dock", "downtown", "dune", "ecoregion", "escarpment", "estate", "factory", "fair", "farm", "fault", "field", "field_lacrosse", "fire_department", "fish_pond", "floor", "fluvial_landforms_of_streams", "football_stadium", "forest", "formation", "foundry", "function_hall", "garage", "garden", "garden_buildings", "glacial_lake", "golf_course", "grassland", "grocery_store", "grove", "gym", "hall", "harbor", "haze", "headland", "highland", "hill", "historic_site", "home", "horizon", "hospital", "hot_spring", "hotel", "hotel_room", "house", "hut", "ice_hockey_position", "ice_hockey_rink", "ice_rink", "inlet", "intersection", "kindergarten", "kitchen", "laboratory", "lake", "land_lot", "landmark", "landscape", "lane", "lecture_room", "leisure_centre", "littoral", "living_room", "log_cabin", "marina", "market", "marsh", "massif", "meadow", "meander", "metropolitan_area", "mountain", "mountain_pass", "mountain_range", "mountainous_landforms", "music_venue", "musical_theatre", "national_park", "natural_resources", "nature_reserve", "neighbourhood", "nightclub", "office", "opera", "outcrop", "paddy_field", "palace", "panorama", "park", "parking", "pasture", "path", "patio", "pavilion", "pedestrian_crossing", "performing_arts_center", "piste", "place_of_worship", "plain", "plateau", "playground", "plaza", "pond", "port", "property", "public_space", "race_track", "ranch", "reef", "religious_institute", "reservoir", "residential_area", "resort", "restaurant", "restroom", "retail", "ridge", "riparian_zone", "river", "riverbed", "road", "road_highway", "room", "rural_area", "sandbank", "sandbar", "school", "sea", "seashore", "seaside", "shack", "shooting_range", "shopping_mall", "shore", "sidewalk", "ski_slope", "sky", "skyline", "skyscraper", "snow_covered_landscape", "sport_venue", "stable", "stadium", "stage", "strand", "stream", "stream_bed", "street", "suburb", "summit", "supermarket", "swamp", "swimming_pool", "tavern", "television_room", "tennis_camp", "tennis_court", "terrain", "theatre", "toolroom", "tourist_attraction", "tower_block", "town", "town_square", "track", "tropical_beach", "tropics", "tunnel", "urban_area", "urban_design", "valley", "village", "walkway", "warehouse", "watercourse", "waterfall", "waterway", "wetland", "wildlife_region", "workshop", "yard", "zoo"]} diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/parse_tag_list.py b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/parse_tag_list.py new file mode 100644 index 00000000..0871491e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/hvu/parse_tag_list.py @@ -0,0 +1,16 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import mmcv + +tag_list = '../../../data/hvu/annotations/hvu_categories.csv' + +lines = open(tag_list).readlines() +lines = [x.strip().split(',') for x in lines[1:]] +tag_categories = {} +for line in lines: + tag, category = line + tag_categories.setdefault(category, []).append(tag) + +for k in tag_categories: + tag_categories[k].sort() + +mmcv.dump(tag_categories, 'hvu_tags.json') diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/jester/README.md b/openmmlab_test/mmaction2-0.24.1/tools/data/jester/README.md new file mode 100644 index 00000000..2e054ab3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/jester/README.md @@ -0,0 +1,143 @@ +# Preparing Jester + +## Introduction + + + +```BibTeX +@InProceedings{Materzynska_2019_ICCV, + author = {Materzynska, Joanna and Berger, Guillaume and Bax, Ingo and Memisevic, Roland}, + title = {The Jester Dataset: A Large-Scale Video Dataset of Human Gestures}, + booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV) Workshops}, + month = {Oct}, + year = {2019} +} +``` + +For basic dataset information, you can refer to the dataset [website](https://20bn.com/datasets/jester/v1). +Before we start, please make sure that the directory is located at `$MMACTION2/tools/data/jester/`. + +## Step 1. Prepare Annotations + +First of all, you have to sign in and download annotations to `$MMACTION2/data/jester/annotations` on the official [website](https://20bn.com/datasets/jester/v1). + +## Step 2. Prepare RGB Frames + +Since the [jester website](https://20bn.com/datasets/jester/v1) doesn't provide the original video data and only extracted RGB frames are available, you have to directly download RGB frames from [jester website](https://20bn.com/datasets/jester/v1). + +You can download all RGB frame parts on [jester website](https://20bn.com/datasets/jester/v1) to `$MMACTION2/data/jester/` and use the following command to extract. + +```shell +cd $MMACTION2/data/jester/ +cat 20bn-jester-v1-?? | tar zx +cd $MMACTION2/tools/data/jester/ +``` + +For users who only want to use RGB frames, you can skip to step 5 to generate file lists in the format of rawframes. Since the prefix of official JPGs is "%05d.jpg" (e.g., "00001.jpg"), +we add `"filename_tmpl='{:05}.jpg'"` to the dict of `data.train`, `data.val` and `data.test` in the config files related with jester like this: + +``` +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +``` + +## Step 3. Extract Flow + +This part is **optional** if you only want to use RGB frames. + +Before extracting, please refer to [install.md](/docs/install.md) for installing [denseflow](https://github.com/open-mmlab/denseflow). + +If you have plenty of SSD space, then we recommend extracting frames there for better I/O performance. + +You can run the following script to soft link SSD. + +```shell +# execute these two line (Assume the SSD is mounted at "/mnt/SSD/") +mkdir /mnt/SSD/jester_extracted/ +ln -s /mnt/SSD/jester_extracted/ ../../../data/jester/rawframes +``` + +Then, you can run the following script to extract optical flow based on RGB frames. + +```shell +cd $MMACTION2/tools/data/jester/ +bash extract_flow.sh +``` + +## Step 4. Encode Videos + +This part is **optional** if you only want to use RGB frames. + +You can run the following script to encode videos. + +```shell +cd $MMACTION2/tools/data/jester/ +bash encode_videos.sh +``` + +## Step 5. Generate File List + +You can run the follow script to generate file list in the format of rawframes and videos. + +```shell +cd $MMACTION2/tools/data/jester/ +bash generate_{rawframes, videos}_filelist.sh +``` + +## Step 5. Check Directory Structure + +After the whole data process for Jester preparation, +you will get the rawframes (RGB + Flow), and annotation files for Jester. + +In the context of the whole project (for Jester only), the folder structure will look like: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── jester +│ │ ├── jester_{train,val}_list_rawframes.txt +│ │ ├── jester_{train,val}_list_videos.txt +│ │ ├── annotations +│ | ├── videos +│ | | ├── 1.mp4 +│ | | ├── 2.mp4 +│ | | ├──... +│ | ├── rawframes +│ | | ├── 1 +│ | | | ├── 00001.jpg +│ | | | ├── 00002.jpg +│ | | | ├── ... +│ | | | ├── flow_x_00001.jpg +│ | | | ├── flow_x_00002.jpg +│ | | | ├── ... +│ | | | ├── flow_y_00001.jpg +│ | | | ├── flow_y_00002.jpg +│ | | | ├── ... +│ | | ├── 2 +│ | | ├── ... + +``` + +For training and evaluating on Jester, please refer to [getting_started.md](/docs/getting_started.md). diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/jester/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/jester/README_zh-CN.md new file mode 100644 index 00000000..4b3fb17f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/jester/README_zh-CN.md @@ -0,0 +1,143 @@ +# 准备 Jester + +## 简介 + + + +```BibTeX +@InProceedings{Materzynska_2019_ICCV, + author = {Materzynska, Joanna and Berger, Guillaume and Bax, Ingo and Memisevic, Roland}, + title = {The Jester Dataset: A Large-Scale Video Dataset of Human Gestures}, + booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV) Workshops}, + month = {Oct}, + year = {2019} +} +``` + +用户可以参照数据集 [官网](https://20bn.com/datasets/jester/v1),获取数据集相关的基本信息。 +在准备数据集前,请确保命令行当前路径为 `$MMACTION2/tools/data/jester/`。 + +## 步骤 1. 下载标注文件 + +首先,用户需要在 [官网](https://20bn.com/datasets/jester/v1) 完成注册,才能下载标注文件。下载好的标注文件需要放在 `$MMACTION2/data/jester/annotations` 文件夹下。 + +## 步骤 2. 准备 RGB 帧 + +[jester 官网](https://20bn.com/datasets/jester/v1) 并未提供原始视频文件,只提供了对原视频文件进行抽取得到的 RGB 帧,用户可在 [jester 官网](https://20bn.com/datasets/jester/v1) 直接下载。 + +将下载好的压缩文件放在 `$MMACTION2/data/jester/` 文件夹下,并使用以下脚本进行解压。 + +```shell +cd $MMACTION2/data/jester/ +cat 20bn-jester-v1-?? | tar zx +cd $MMACTION2/tools/data/jester/ +``` + +如果用户只想使用 RGB 帧,则可以跳过中间步骤至步骤 5 以直接生成视频帧的文件列表。 +由于官网的 JPG 文件名形如 "%05d.jpg" (比如,"00001.jpg"),需要在配置文件的 `data.train`, `data.val` 和 `data.test` 处添加 `"filename_tmpl='{:05}.jpg'"` 代码,以修改文件名模板。 + +```python +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +``` + +## 步骤 3. 抽取光流 + +如果用户只想使用 RGB 帧训练,则该部分是 **可选项**。 + +在抽取视频帧和光流之前,请参考 [安装指南](/docs_zh_CN/install.md) 安装 [denseflow](https://github.com/open-mmlab/denseflow)。 + +如果拥有大量的 SSD 存储空间,则推荐将抽取的帧存储至 I/O 性能更优秀的 SSD 中。 + +可以运行以下命令为 SSD 建立软链接。 + +```shell +# 执行这两行进行抽取(假设 SSD 挂载在 "/mnt/SSD/") +mkdir /mnt/SSD/jester_extracted/ +ln -s /mnt/SSD/jester_extracted/ ../../../data/jester/rawframes +``` + +如果想抽取光流,则可以运行以下脚本从 RGB 帧中抽取出光流。 + +```shell +cd $MMACTION2/tools/data/jester/ +bash extract_flow.sh +``` + +## 步骤 4: 编码视频 + +如果用户只想使用 RGB 帧训练,则该部分是 **可选项**。 + +用户可以运行以下命令进行视频编码。 + +```shell +cd $MMACTION2/tools/data/jester/ +bash encode_videos.sh +``` + +## 步骤 5. 生成文件列表 + +用户可以通过运行以下命令生成帧和视频格式的文件列表。 + +```shell +cd $MMACTION2/tools/data/jester/ +bash generate_{rawframes, videos}_filelist.sh +``` + +## 步骤 6. 检查文件夹结构 + +在完成所有 Jester 数据集准备流程后, +用户可以获得对应的 RGB + 光流文件,视频文件以及标注文件。 + +在整个 MMAction2 文件夹下,Jester 的文件结构如下: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── jester +│ │ ├── jester_{train,val}_list_rawframes.txt +│ │ ├── jester_{train,val}_list_videos.txt +│ │ ├── annotations +│ | ├── videos +│ | | ├── 1.mp4 +│ | | ├── 2.mp4 +│ | | ├──... +│ | ├── rawframes +│ | | ├── 1 +│ | | | ├── 00001.jpg +│ | | | ├── 00002.jpg +│ | | | ├── ... +│ | | | ├── flow_x_00001.jpg +│ | | | ├── flow_x_00002.jpg +│ | | | ├── ... +│ | | | ├── flow_y_00001.jpg +│ | | | ├── flow_y_00002.jpg +│ | | | ├── ... +│ | | ├── 2 +│ | | ├── ... + +``` + +关于对 jester 进行训练和验证,可以参考 [基础教程](/docs_zh_CN/getting_started.md)。 diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/jester/encode_videos.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/jester/encode_videos.sh new file mode 100644 index 00000000..c220424a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/jester/encode_videos.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +cd ../ +python build_videos.py ../../data/jester/rawframes/ ../../data/jester/videos/ --fps 12 --level 1 --start-idx 1 --filename-tmpl '%05d' +echo "Encode videos" + +cd jester/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/jester/extract_flow.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/jester/extract_flow.sh new file mode 100644 index 00000000..f6b50908 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/jester/extract_flow.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/jester/rawframes/ ../../data/jester/rawframes/ --task flow --level 1 --flow-type tvl1 --input-frames +echo "Flow (tv-l1) Generated" +cd jester/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/jester/generate_rawframes_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/jester/generate_rawframes_filelist.sh new file mode 100644 index 00000000..c92674aa --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/jester/generate_rawframes_filelist.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +cd ../../../ +PYTHONPATH=. python tools/data/build_file_list.py jester data/jester/rawframes/ --rgb-prefix '0' --num-split 1 --level 1 --subset train --format rawframes --shuffle +PYTHONPATH=. python tools/data/build_file_list.py jester data/jester/rawframes/ --rgb-prefix '0' --num-split 1 --level 1 --subset val --format rawframes --shuffle +echo "Filelist for rawframes generated." + +cd tools/data/jester/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/jester/generate_videos_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/jester/generate_videos_filelist.sh new file mode 100644 index 00000000..69384967 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/jester/generate_videos_filelist.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +cd ../../../ +PYTHONPATH=. python tools/data/build_file_list.py jester data/jester/videos/ --num-split 1 --level 1 --subset train --format videos --shuffle +PYTHONPATH=. python tools/data/build_file_list.py jester data/jester/videos/ --num-split 1 --level 1 --subset val --format videos --shuffle +echo "Filelist for videos generated." + +cd tools/data/jester/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/jester/label_map.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/jester/label_map.txt new file mode 100644 index 00000000..577e5a22 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/jester/label_map.txt @@ -0,0 +1,27 @@ +Swiping Left +Swiping Right +Swiping Down +Swiping Up +Pushing Hand Away +Pulling Hand In +Sliding Two Fingers Left +Sliding Two Fingers Right +Sliding Two Fingers Down +Sliding Two Fingers Up +Pushing Two Fingers Away +Pulling Two Fingers In +Rolling Hand Forward +Rolling Hand Backward +Turning Hand Clockwise +Turning Hand Counterclockwise +Zooming In With Full Hand +Zooming Out With Full Hand +Zooming In With Two Fingers +Zooming Out With Two Fingers +Thumb Up +Thumb Down +Shaking Hand +Stop Sign +Drumming Fingers +No gesture +Doing other things diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/jhmdb/README.md b/openmmlab_test/mmaction2-0.24.1/tools/data/jhmdb/README.md new file mode 100644 index 00000000..6e2042c1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/jhmdb/README.md @@ -0,0 +1,101 @@ +# Preparing JHMDB + +## Introduction + + + +```BibTeX +@inproceedings{Jhuang:ICCV:2013, + title = {Towards understanding action recognition}, + author = {H. Jhuang and J. Gall and S. Zuffi and C. Schmid and M. J. Black}, + booktitle = {International Conf. on Computer Vision (ICCV)}, + month = Dec, + pages = {3192-3199}, + year = {2013} +} +``` + +For basic dataset information, you can refer to the dataset [website](http://jhmdb.is.tue.mpg.de/). +Before we start, please make sure that the directory is located at `$MMACTION2/tools/data/jhmdb/`. + +## Download and Extract + +You can download the RGB frames, optical flow and ground truth annotations from [google drive](https://drive.google.com/drive/folders/1BvGywlAGrACEqRyfYbz3wzlVV3cDFkct). +The data are provided from [MOC](https://github.com/MCG-NJU/MOC-Detector/blob/master/readme/Dataset.md), which is adapted from [act-detector](https://github.com/vkalogeiton/caffe/tree/act-detector). + +After downloading the `JHMDB.tar.gz` file and put it in `$MMACTION2/tools/data/jhmdb/`, you can run the following command to extract. + +```shell +tar -zxvf JHMDB.tar.gz +``` + +If you have plenty of SSD space, then we recommend extracting frames there for better I/O performance. + +You can run the following script to soft link SSD. + +```shell +# execute these two line (Assume the SSD is mounted at "/mnt/SSD/") +mkdir /mnt/SSD/JHMDB/ +ln -s /mnt/SSD/JHMDB/ ../../../data/jhmdb +``` + +## Check Directory Structure + +After extracting, you will get the `FlowBrox04` directory, `Frames` directory and `JHMDB-GT.pkl` for JHMDB. + +In the context of the whole project (for JHMDB only), the folder structure will look like: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── jhmdb +│ | ├── FlowBrox04 +│ | | ├── brush_hair +│ | | | ├── April_09_brush_hair_u_nm_np1_ba_goo_0 +│ | | | | ├── 00001.jpg +│ | | | | ├── 00002.jpg +│ | | | | ├── ... +│ | | | | ├── 00039.jpg +│ | | | | ├── 00040.jpg +│ | | | ├── ... +│ | | | ├── Trannydude___Brushing_SyntheticHair___OhNOES!__those_fukin_knots!_brush_hair_u_nm_np1_fr_goo_2 +│ | | ├── ... +│ | | ├── wave +│ | | | ├── 21_wave_u_nm_np1_fr_goo_5 +│ | | | ├── ... +│ | | | ├── Wie_man_winkt!!_wave_u_cm_np1_fr_med_0 +│ | ├── Frames +│ | | ├── brush_hair +│ | | | ├── April_09_brush_hair_u_nm_np1_ba_goo_0 +│ | | | | ├── 00001.png +│ | | | | ├── 00002.png +│ | | | | ├── ... +│ | | | | ├── 00039.png +│ | | | | ├── 00040.png +│ | | | ├── ... +│ | | | ├── Trannydude___Brushing_SyntheticHair___OhNOES!__those_fukin_knots!_brush_hair_u_nm_np1_fr_goo_2 +│ | | ├── ... +│ | | ├── wave +│ | | | ├── 21_wave_u_nm_np1_fr_goo_5 +│ | | | ├── ... +│ | | | ├── Wie_man_winkt!!_wave_u_cm_np1_fr_med_0 +│ | ├── JHMDB-GT.pkl + +``` + +:::{note} +The `JHMDB-GT.pkl` exists as a cache, it contains 6 items as follows: + +1. `labels` (list): List of the 21 labels. +2. `gttubes` (dict): Dictionary that contains the ground truth tubes for each video. + A **gttube** is dictionary that associates with each index of label and a list of tubes. + A **tube** is a numpy array with `nframes` rows and 5 columns, each col is in format like ` `. +3. `nframes` (dict): Dictionary that contains the number of frames for each video, like `'walk/Panic_in_the_Streets_walk_u_cm_np1_ba_med_5': 16`. +4. `train_videos` (list): A list with `nsplits=1` elements, each one containing the list of training videos. +5. `test_videos` (list): A list with `nsplits=1` elements, each one containing the list of testing videos. +6. `resolution` (dict): Dictionary that outputs a tuple (h,w) of the resolution for each video, like `'pour/Bartender_School_Students_Practice_pour_u_cm_np1_fr_med_1': (240, 320)`. + +::: diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/jhmdb/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/jhmdb/README_zh-CN.md new file mode 100644 index 00000000..3e9fb638 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/jhmdb/README_zh-CN.md @@ -0,0 +1,98 @@ +# 准备 JHMDB + +## 简介 + + + +```BibTeX +@inproceedings{Jhuang:ICCV:2013, + title = {Towards understanding action recognition}, + author = {H. Jhuang and J. Gall and S. Zuffi and C. Schmid and M. J. Black}, + booktitle = {International Conf. on Computer Vision (ICCV)}, + month = Dec, + pages = {3192-3199}, + year = {2013} +} +``` + +用户可参考该数据集的 [官网](http://jhmdb.is.tue.mpg.de/),以获取数据集相关的基本信息。 +在数据集准备前,请确保命令行当前路径为 `$MMACTION2/tools/data/jhmdb/`。 + +## 下载和解压 + +用户可以从 [这里](https://drive.google.com/drive/folders/1BvGywlAGrACEqRyfYbz3wzlVV3cDFkct) 下载 RGB 帧,光流和真实标签文件。 +该数据由 [MOC](https://github.com/MCG-NJU/MOC-Detector/blob/master/readme/Dataset.md) 代码库提供,参考自 [act-detector](https://github.com/vkalogeiton/caffe/tree/act-detector)。 + +用户在下载 `JHMDB.tar.gz` 文件后,需将其放置在 `$MMACTION2/tools/data/jhmdb/` 目录下,并使用以下指令进行解压: + +```shell +tar -zxvf JHMDB.tar.gz +``` + +如果拥有大量的 SSD 存储空间,则推荐将抽取的帧存储至 I/O 性能更优秀的 SSD 中。 + +可以运行以下命令为 SSD 建立软链接。 + +```shell +# 执行这两行进行抽取(假设 SSD 挂载在 "/mnt/SSD/") +mkdir /mnt/SSD/JHMDB/ +ln -s /mnt/SSD/JHMDB/ ../../../data/jhmdb +``` + +## 检查文件夹结构 + +完成解压后,用户将得到 `FlowBrox04` 文件夹,`Frames` 文件夹和 `JHMDB-GT.pkl` 文件。 + +在整个 MMAction2 文件夹下,JHMDB 的文件结构如下: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── jhmdb +│ | ├── FlowBrox04 +│ | | ├── brush_hair +│ | | | ├── April_09_brush_hair_u_nm_np1_ba_goo_0 +│ | | | | ├── 00001.jpg +│ | | | | ├── 00002.jpg +│ | | | | ├── ... +│ | | | | ├── 00039.jpg +│ | | | | ├── 00040.jpg +│ | | | ├── ... +│ | | | ├── Trannydude___Brushing_SyntheticHair___OhNOES!__those_fukin_knots!_brush_hair_u_nm_np1_fr_goo_2 +│ | | ├── ... +│ | | ├── wave +│ | | | ├── 21_wave_u_nm_np1_fr_goo_5 +│ | | | ├── ... +│ | | | ├── Wie_man_winkt!!_wave_u_cm_np1_fr_med_0 +│ | ├── Frames +│ | | ├── brush_hair +│ | | | ├── April_09_brush_hair_u_nm_np1_ba_goo_0 +│ | | | | ├── 00001.png +│ | | | | ├── 00002.png +│ | | | | ├── ... +│ | | | | ├── 00039.png +│ | | | | ├── 00040.png +│ | | | ├── ... +│ | | | ├── Trannydude___Brushing_SyntheticHair___OhNOES!__those_fukin_knots!_brush_hair_u_nm_np1_fr_goo_2 +│ | | ├── ... +│ | | ├── wave +│ | | | ├── 21_wave_u_nm_np1_fr_goo_5 +│ | | | ├── ... +│ | | | ├── Wie_man_winkt!!_wave_u_cm_np1_fr_med_0 +│ | ├── JHMDB-GT.pkl + +``` + +**注意**:`JHMDB-GT.pkl` 作为一个缓存文件,它包含 6 个项目: + +1. `labels` (list):21 个行为类别名称组成的列表 +2. `gttubes` (dict):每个视频对应的基准 tubes 组成的字典 + **gttube** 是由标签索引和 tube 列表组成的字典 + **tube** 是一个 `nframes` 行和 5 列的 numpy array,每一列的形式如 ` ` +3. `nframes` (dict):用以表示每个视频对应的帧数,如 `'walk/Panic_in_the_Streets_walk_u_cm_np1_ba_med_5': 16` +4. `train_videos` (list):包含 `nsplits=1` 的元素,每一项都包含了训练视频的列表 +5. `test_videos` (list):包含 `nsplits=1` 的元素,每一项都包含了测试视频的列表 +6. `resolution` (dict):每个视频对应的分辨率(形如 (h,w)),如 `'pour/Bartender_School_Students_Practice_pour_u_cm_np1_fr_med_1': (240, 320)` diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/README.md b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/README.md new file mode 100644 index 00000000..4fc7b6bb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/README.md @@ -0,0 +1,150 @@ +# Preparing Kinetics-\[400/600/700\] + +## Introduction + + + +```BibTeX +@inproceedings{inproceedings, + author = {Carreira, J. and Zisserman, Andrew}, + year = {2017}, + month = {07}, + pages = {4724-4733}, + title = {Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset}, + doi = {10.1109/CVPR.2017.502} +} +``` + +For basic dataset information, please refer to the official [website](https://deepmind.com/research/open-source/open-source-datasets/kinetics/). The scripts can be used for preparing kinetics400, kinetics600, kinetics700. To prepare different version of kinetics, you need to replace `${DATASET}` in the following examples with the specific dataset name. The choices of dataset names are `kinetics400`, `kinetics600` and `kinetics700`. +Before we start, please make sure that the directory is located at `$MMACTION2/tools/data/${DATASET}/`. + +:::{note} +Because of the expirations of some YouTube links, the sizes of kinetics dataset copies may be different. Here are the sizes of our kinetics dataset copies that used to train all checkpoints. + +| Dataset | training videos | validation videos | +| :---------: | :-------------: | :---------------: | +| kinetics400 | 240436 | 19796 | + +::: + +## Step 1. Prepare Annotations + +First of all, you can run the following script to prepare annotations by downloading from the official [website](https://deepmind.com/research/open-source/open-source-datasets/kinetics/). + +```shell +bash download_annotations.sh ${DATASET} +``` + +Since some video urls are invalid, the number of video items in current official annotations are less than the original official ones. +So we provide an alternative way to download the older one as a reference. +Among these, the annotation files of Kinetics400 and Kinetics600 are from [official crawler](https://github.com/activitynet/ActivityNet/tree/199c9358907928a47cdfc81de4db788fddc2f91d/Crawler/Kinetics/data), +the annotation files of Kinetics700 are from [website](https://deepmind.com/research/open-source/open-source-datasets/kinetics/) downloaded in 05/02/2021. + +```shell +bash download_backup_annotations.sh ${DATASET} +``` + +## Step 2. Prepare Videos + +Then, you can run the following script to prepare videos. +The codes are adapted from the [official crawler](https://github.com/activitynet/ActivityNet/tree/master/Crawler/Kinetics). Note that this might take a long time. + +```shell +bash download_videos.sh ${DATASET} +``` + +**Important**: If you have already downloaded video dataset using the download script above, +you must replace all whitespaces in the class name for ease of processing by running + +```shell +bash rename_classnames.sh ${DATASET} +``` + +For better decoding speed, you can resize the original videos into smaller sized, densely encoded version by: + +```bash +python ../resize_videos.py ../../../data/${DATASET}/videos_train/ ../../../data/${DATASET}/videos_train_256p_dense_cache --dense --level 2 +``` + +You can also download from [Academic Torrents](https://academictorrents.com/) ([kinetics400](https://academictorrents.com/details/184d11318372f70018cf9a72ef867e2fb9ce1d26) & [kinetics700](https://academictorrents.com/details/49f203189fb69ae96fb40a6d0e129949e1dfec98) with short edge 256 pixels are available) and [cvdfoundation/kinetics-dataset](https://github.com/cvdfoundation/kinetics-dataset) (Host by Common Visual Data Foundation and Kinetics400/Kinetics600/Kinetics-700-2020 are available) + +## Step 3. Extract RGB and Flow + +This part is **optional** if you only want to use the video loader. + +Before extracting, please refer to [install.md](/docs/install.md) for installing [denseflow](https://github.com/open-mmlab/denseflow). + +If you have plenty of SSD space, then we recommend extracting frames there for better I/O performance. And you can run the following script to soft link the extracted frames. + +```shell +# execute these two line (Assume the SSD is mounted at "/mnt/SSD/") +mkdir /mnt/SSD/${DATASET}_extracted_train/ +ln -s /mnt/SSD/${DATASET}_extracted_train/ ../../../data/${DATASET}/rawframes_train/ +mkdir /mnt/SSD/${DATASET}_extracted_val/ +ln -s /mnt/SSD/${DATASET}_extracted_val/ ../../../data/${DATASET}/rawframes_val/ +``` + +If you only want to play with RGB frames (since extracting optical flow can be time-consuming), consider running the following script to extract **RGB-only** frames using denseflow. + +```shell +bash extract_rgb_frames.sh ${DATASET} +``` + +If you didn't install denseflow, you can still extract RGB frames using OpenCV by the following script, but it will keep the original size of the images. + +```shell +bash extract_rgb_frames_opencv.sh ${DATASET} +``` + +If both are required, run the following script to extract frames. + +```shell +bash extract_frames.sh ${DATASET} +``` + +The commands above can generate images with new short edge 256. If you want to generate images with short edge 320 (320p), or with fix size 340x256, you can change the args `--new-short 256` to `--new-short 320` or `--new-width 340 --new-height 256`. +More details can be found in [data_preparation](/docs/data_preparation.md) + +## Step 4. Generate File List + +you can run the follow scripts to generate file list in the format of videos and rawframes, respectively. + +```shell +bash generate_videos_filelist.sh ${DATASET} +# execute the command below when rawframes are ready +bash generate_rawframes_filelist.sh ${DATASET} +``` + +## Step 5. Folder Structure + +After the whole data pipeline for Kinetics preparation. +you can get the rawframes (RGB + Flow), videos and annotation files for Kinetics. + +In the context of the whole project (for Kinetics only), the *minimal* folder structure will look like: +(*minimal* means that some data are not necessary: for example, you may want to evaluate kinetics using the original video format.) + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── ${DATASET} +│ │ ├── ${DATASET}_train_list_videos.txt +│ │ ├── ${DATASET}_val_list_videos.txt +│ │ ├── annotations +│ │ ├── videos_train +│ │ ├── videos_val +│ │ │ ├── abseiling +│ │ │ │ ├── 0wR5jVB-WPk_000417_000427.mp4 +│ │ │ │ ├── ... +│ │ │ ├── ... +│ │ │ ├── wrapping_present +│ │ │ ├── ... +│ │ │ ├── zumba +│ │ ├── rawframes_train +│ │ ├── rawframes_val + +``` + +For training and evaluating on Kinetics, please refer to [getting_started](/docs/getting_started.md). diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/README_zh-CN.md new file mode 100644 index 00000000..e307b9e7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/README_zh-CN.md @@ -0,0 +1,142 @@ +# 准备 Kinetics-\[400/600/700\] + +## 简介 + + + +```BibTeX +@inproceedings{inproceedings, + author = {Carreira, J. and Zisserman, Andrew}, + year = {2017}, + month = {07}, + pages = {4724-4733}, + title = {Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset}, + doi = {10.1109/CVPR.2017.502} +} +``` + +请参照 [官方网站](https://deepmind.com/research/open-source/open-source-datasets/kinetics/) 以获取数据集基本信息。此脚本用于准备数据集 kinetics400,kinetics600,kinetics700。为准备 kinetics 数据集的不同版本,用户需将脚本中的 `${DATASET}` 赋值为数据集对应版本名称,可选项为 `kinetics400`,`kinetics600`, `kinetics700`。 +在开始之前,用户需确保当前目录为 `$MMACTION2/tools/data/${DATASET}/`。 + +**注**:由于部分 YouTube 链接失效,爬取的 Kinetics 数据集大小可能与原版不同。以下是我们所使用 Kinetics 数据集的大小: + +| 数据集 | 训练视频 | 验证集视频 | +| :---------: | :------: | :--------: | +| kinetics400 | 240436 | 19796 | + +## 1. 准备标注文件 + +首先,用户可以使用如下脚本从 [Kinetics 数据集官网](https://deepmind.com/research/open-source/open-source-datasets/kinetics/)下载标注文件并进行预处理: + +```shell +bash download_annotations.sh ${DATASET} +``` + +由于部分视频的 URL 不可用,当前官方标注中所含视频数量可能小于初始版本。所以 MMAction2 提供了另一种方式以获取初始版本标注作为参考。 +在这其中,Kinetics400 和 Kinetics600 的标注文件来自 [官方爬虫](https://github.com/activitynet/ActivityNet/tree/199c9358907928a47cdfc81de4db788fddc2f91d/Crawler/Kinetics/data), +Kinetics700 的标注文件于 05/02/2021 下载自 [网站](https://deepmind.com/research/open-source/open-source-datasets/kinetics/)。 + +```shell +bash download_backup_annotations.sh ${DATASET} +``` + +## 2. 准备视频 + +用户可以使用以下脚本准备视频,视频准备代码修改自 [官方爬虫](https://github.com/activitynet/ActivityNet/tree/master/Crawler/Kinetics)。注意这一步骤将花费较长时间。 + +```shell +bash download_videos.sh ${DATASET} +``` + +**重要提示**:如果在此之前已下载好 Kinetics 数据集的视频,还需使用重命名脚本来替换掉类名中的空格: + +```shell +bash rename_classnames.sh ${DATASET} +``` + +为提升解码速度,用户可以使用以下脚本将原始视频缩放至更小的分辨率(利用稠密编码): + +```bash +python ../resize_videos.py ../../../data/${DATASET}/videos_train/ ../../../data/${DATASET}/videos_train_256p_dense_cache --dense --level 2 +``` + +也可以从 [Academic Torrents](https://academictorrents.com/) 中下载短边长度为 256 的 [kinetics400](https://academictorrents.com/details/184d11318372f70018cf9a72ef867e2fb9ce1d26) 和 [kinetics700](https://academictorrents.com/details/49f203189fb69ae96fb40a6d0e129949e1dfec98),或从 Common Visual Data Foundation 维护的 [cvdfoundation/kinetics-dataset](https://github.com/cvdfoundation/kinetics-dataset) 中下载 Kinetics400/Kinetics600/Kinetics-700-2020。 + +## 3. 提取 RGB 帧和光流 + +如果用户仅使用 video loader,则可以跳过本步。 + +在提取之前,请参考 [安装教程](/docs_zh_CN/install.md) 安装 [denseflow](https://github.com/open-mmlab/denseflow)。 + +如果用户有足够的 SSD 空间,那么建议将视频抽取为 RGB 帧以提升 I/O 性能。用户可以使用以下脚本为抽取得到的帧文件夹建立软连接: + +```shell +# 执行以下脚本 (假设 SSD 被挂载在 "/mnt/SSD/") +mkdir /mnt/SSD/${DATASET}_extracted_train/ +ln -s /mnt/SSD/${DATASET}_extracted_train/ ../../../data/${DATASET}/rawframes_train/ +mkdir /mnt/SSD/${DATASET}_extracted_val/ +ln -s /mnt/SSD/${DATASET}_extracted_val/ ../../../data/${DATASET}/rawframes_val/ +``` + +如果用户只使用 RGB 帧(由于光流提取非常耗时),可以考虑执行以下脚本,仅用 denseflow 提取 RGB 帧: + +```shell +bash extract_rgb_frames.sh ${DATASET} +``` + +如果用户未安装 denseflow,以下脚本可以使用 OpenCV 进行 RGB 帧的提取,但视频原分辨率大小会被保留: + +```shell +bash extract_rgb_frames_opencv.sh ${DATASET} +``` + +如果同时需要 RGB 帧和光流,可使用如下脚本抽帧: + +```shell +bash extract_frames.sh ${DATASET} +``` + +以上的命令生成短边长度为 256 的 RGB 帧和光流帧。如果用户需要生成短边长度为 320 的帧 (320p),或是固定分辨率为 340 x 256 的帧,可改变参数 `--new-short 256` 为 `--new-short 320` 或 `--new-width 340 --new-height 256`。 +更多细节可以参考 [数据准备](/docs_zh_CN/data_preparation.md)。 + +## 4. 生成文件列表 + +用户可以使用以下两个脚本分别为视频和帧文件夹生成文件列表: + +```shell +bash generate_videos_filelist.sh ${DATASET} +# 为帧文件夹生成文件列表 +bash generate_rawframes_filelist.sh ${DATASET} +``` + +## 5. 目录结构 + +在完整完成 Kinetics 的数据处理后,将得到帧文件夹(RGB 帧和光流帧),视频以及标注文件。 + +在整个项目目录下(仅针对 Kinetics),*最简* 目录结构如下所示: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── ${DATASET} +│ │ ├── ${DATASET}_train_list_videos.txt +│ │ ├── ${DATASET}_val_list_videos.txt +│ │ ├── annotations +│ │ ├── videos_train +│ │ ├── videos_val +│ │ │ ├── abseiling +│ │ │ │ ├── 0wR5jVB-WPk_000417_000427.mp4 +│ │ │ │ ├── ... +│ │ │ ├── ... +│ │ │ ├── wrapping_present +│ │ │ ├── ... +│ │ │ ├── zumba +│ │ ├── rawframes_train +│ │ ├── rawframes_val + +``` + +关于 Kinetics 数据集上的训练与测试,请参照 [基础教程](/docs_zh_CN/getting_started.md)。 diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/download.py b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/download.py new file mode 100644 index 00000000..b4e7e62a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/download.py @@ -0,0 +1,230 @@ +# ------------------------------------------------------------------------------ +# Adapted from https://github.com/activitynet/ActivityNet/ +# Original licence: Copyright (c) Microsoft, under the MIT License. +# ------------------------------------------------------------------------------ +import argparse +import glob +import json +import os +import shutil +import ssl +import subprocess +import uuid +from collections import OrderedDict + +import pandas as pd +from joblib import Parallel, delayed + +ssl._create_default_https_context = ssl._create_unverified_context + + +def create_video_folders(dataset, output_dir, tmp_dir): + """Creates a directory for each label name in the dataset.""" + if 'label-name' not in dataset.columns: + this_dir = os.path.join(output_dir, 'test') + if not os.path.exists(this_dir): + os.makedirs(this_dir) + # I should return a dict but ... + return this_dir + if not os.path.exists(output_dir): + os.makedirs(output_dir) + if not os.path.exists(tmp_dir): + os.makedirs(tmp_dir) + + label_to_dir = {} + for label_name in dataset['label-name'].unique(): + this_dir = os.path.join(output_dir, label_name) + if not os.path.exists(this_dir): + os.makedirs(this_dir) + label_to_dir[label_name] = this_dir + return label_to_dir + + +def construct_video_filename(row, label_to_dir, trim_format='%06d'): + """Given a dataset row, this function constructs the output filename for a + given video.""" + basename = '%s_%s_%s.mp4' % (row['video-id'], + trim_format % row['start-time'], + trim_format % row['end-time']) + if not isinstance(label_to_dir, dict): + dirname = label_to_dir + else: + dirname = label_to_dir[row['label-name']] + output_filename = os.path.join(dirname, basename) + return output_filename + + +def download_clip(video_identifier, + output_filename, + start_time, + end_time, + tmp_dir='/tmp/kinetics/.tmp_dir', + num_attempts=5, + url_base='https://www.youtube.com/watch?v='): + """Download a video from youtube if exists and is not blocked. + arguments: + --------- + video_identifier: str + Unique YouTube video identifier (11 characters) + output_filename: str + File path where the video will be stored. + start_time: float + Indicates the beginning time in seconds from where the video + will be trimmed. + end_time: float + Indicates the ending time in seconds of the trimmed video. + """ + # Defensive argument checking. + assert isinstance(video_identifier, str), 'video_identifier must be string' + assert isinstance(output_filename, str), 'output_filename must be string' + assert len(video_identifier) == 11, 'video_identifier must have length 11' + + status = False + # Construct command line for getting the direct video link. + tmp_filename = os.path.join(tmp_dir, '%s.%%(ext)s' % uuid.uuid4()) + + if not os.path.exists(output_filename): + if not os.path.exists(tmp_filename): + command = [ + 'youtube-dl', '--quiet', '--no-warnings', + '--no-check-certificate', '-f', 'mp4', '-o', + '"%s"' % tmp_filename, + '"%s"' % (url_base + video_identifier) + ] + command = ' '.join(command) + print(command) + attempts = 0 + while True: + try: + subprocess.check_output( + command, shell=True, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as err: + attempts += 1 + if attempts == num_attempts: + return status, err.output + else: + break + + tmp_filename = glob.glob('%s*' % tmp_filename.split('.')[0])[0] + # Construct command to trim the videos (ffmpeg required). + command = [ + 'ffmpeg', '-i', + '"%s"' % tmp_filename, '-ss', + str(start_time), '-t', + str(end_time - start_time), '-c:v', 'libx264', '-c:a', 'copy', + '-threads', '1', '-loglevel', 'panic', + '"%s"' % output_filename + ] + command = ' '.join(command) + try: + subprocess.check_output( + command, shell=True, stderr=subprocess.STDOUT) + except subprocess.CalledProcessError as err: + return status, err.output + + # Check if the video was successfully saved. + status = os.path.exists(output_filename) + os.remove(tmp_filename) + return status, 'Downloaded' + + +def download_clip_wrapper(row, label_to_dir, trim_format, tmp_dir): + """Wrapper for parallel processing purposes.""" + output_filename = construct_video_filename(row, label_to_dir, trim_format) + clip_id = os.path.basename(output_filename).split('.mp4')[0] + if os.path.exists(output_filename): + status = tuple([clip_id, True, 'Exists']) + return status + + downloaded, log = download_clip( + row['video-id'], + output_filename, + row['start-time'], + row['end-time'], + tmp_dir=tmp_dir) + status = tuple([clip_id, downloaded, log]) + return status + + +def parse_kinetics_annotations(input_csv, ignore_is_cc=False): + """Returns a parsed DataFrame. + arguments: + --------- + input_csv: str + Path to CSV file containing the following columns: + 'YouTube Identifier,Start time,End time,Class label' + returns: + ------- + dataset: DataFrame + Pandas with the following columns: + 'video-id', 'start-time', 'end-time', 'label-name' + """ + df = pd.read_csv(input_csv) + if 'youtube_id' in df.columns: + columns = OrderedDict([('youtube_id', 'video-id'), + ('time_start', 'start-time'), + ('time_end', 'end-time'), + ('label', 'label-name')]) + df.rename(columns=columns, inplace=True) + if ignore_is_cc: + df = df.loc[:, df.columns.tolist()[:-1]] + return df + + +def main(input_csv, + output_dir, + trim_format='%06d', + num_jobs=24, + tmp_dir='/tmp/kinetics'): + tmp_dir = os.path.join(tmp_dir, '.tmp_dir') + + # Reading and parsing Kinetics. + dataset = parse_kinetics_annotations(input_csv) + + # Creates folders where videos will be saved later. + label_to_dir = create_video_folders(dataset, output_dir, tmp_dir) + + # Download all clips. + if num_jobs == 1: + status_list = [] + for _, row in dataset.iterrows(): + status_list.append( + download_clip_wrapper(row, label_to_dir, trim_format, tmp_dir)) + else: + status_list = Parallel( + n_jobs=num_jobs)(delayed(download_clip_wrapper)( + row, label_to_dir, trim_format, tmp_dir) + for i, row in dataset.iterrows()) + + # Clean tmp dir. + shutil.rmtree(tmp_dir) + + # Save download report. + with open('download_report.json', 'w') as fobj: + fobj.write(json.dumps(status_list)) + + +if __name__ == '__main__': + description = 'Helper script for downloading and trimming kinetics videos.' + p = argparse.ArgumentParser(description=description) + p.add_argument( + 'input_csv', + type=str, + help=('CSV file containing the following format: ' + 'YouTube Identifier,Start time,End time,Class label')) + p.add_argument( + 'output_dir', + type=str, + help='Output directory where videos will be saved.') + p.add_argument( + '-f', + '--trim-format', + type=str, + default='%06d', + help=('This will be the format for the ' + 'filename of trimmed videos: ' + 'videoid_%0xd(start_time)_%0xd(end_time).mp4')) + p.add_argument('-n', '--num-jobs', type=int, default=24) + p.add_argument('-t', '--tmp-dir', type=str, default='/tmp/kinetics') + # help='CSV file of the previous version of Kinetics.') + main(**vars(p.parse_args())) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/download_annotations.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/download_annotations.sh new file mode 100644 index 00000000..09e25b19 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/download_annotations.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +DATASET=$1 +if [ "$DATASET" == "kinetics400" ] || [ "$1" == "kinetics600" ] || [ "$1" == "kinetics700" ]; then + echo "We are processing $DATASET" +else + echo "Bad Argument, we only support kinetics400, kinetics600 or kinetics700" + exit 0 +fi + +DATA_DIR="../../../data/${DATASET}/annotations" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +wget https://storage.googleapis.com/deepmind-media/Datasets/${DATASET}.tar.gz + +tar -zxvf ${DATASET}.tar.gz --strip-components 1 -C ${DATA_DIR}/ +mv ${DATA_DIR}/train.csv ${DATA_DIR}/kinetics_train.csv +mv ${DATA_DIR}/validate.csv ${DATA_DIR}/kinetics_val.csv +mv ${DATA_DIR}/test.csv ${DATA_DIR}/kinetics_test.csv + +rm ${DATASET}.tar.gz +rm ${DATA_DIR}/*.json diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/download_backup_annotations.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/download_backup_annotations.sh new file mode 100644 index 00000000..8f22a743 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/download_backup_annotations.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +DATASET=$1 +if [ "$DATASET" == "kinetics400" ] || [ "$1" == "kinetics600" ] || [ "$1" == "kinetics700" ]; then + echo "We are processing $DATASET" +else + echo "Bad Argument, we only support kinetics400, kinetics600 or kinetics700" + exit 0 +fi + +DATA_DIR="../../../data/${DATASET}/annotations" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + + +wget https://download.openmmlab.com/mmaction/dataset/${DATASET}/annotations/kinetics_train.csv +wget https://download.openmmlab.com/mmaction/dataset/${DATASET}/annotations/kinetics_val.csv +wget https://download.openmmlab.com/mmaction/dataset/${DATASET}/annotations/kinetics_test.csv + +mv kinetics_train.csv ${DATA_DIR}/kinetics_train.csv +mv kinetics_val.csv ${DATA_DIR}/kinetics_val.csv +mv kinetics_test.csv ${DATA_DIR}/kinetics_test.csv diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/download_videos.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/download_videos.sh new file mode 100644 index 00000000..0f49ed5e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/download_videos.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +# set up environment +conda env create -f environment.yml +source activate kinetics +pip install --upgrade youtube-dl + +DATASET=$1 +if [ "$DATASET" == "kinetics400" ] || [ "$1" == "kinetics600" ] || [ "$1" == "kinetics700" ]; then + echo "We are processing $DATASET" +else + echo "Bad Argument, we only support kinetics400, kinetics600 or kinetics700" + exit 0 +fi + +DATA_DIR="../../../data/${DATASET}" +ANNO_DIR="../../../data/${DATASET}/annotations" +python download.py ${ANNO_DIR}/kinetics_train.csv ${DATA_DIR}/videos_train +python download.py ${ANNO_DIR}/kinetics_val.csv ${DATA_DIR}/videos_val + +source deactivate kinetics +conda remove -n kinetics --all diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/environment.yml b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/environment.yml new file mode 100644 index 00000000..bcee98f8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/environment.yml @@ -0,0 +1,36 @@ +name: kinetics +channels: + - anaconda + - menpo + - conda-forge + - defaults +dependencies: + - ca-certificates=2020.1.1 + - certifi=2020.4.5.1 + - ffmpeg=2.8.6 + - libcxx=10.0.0 + - libedit=3.1.20181209 + - libffi=3.3 + - ncurses=6.2 + - openssl=1.1.1g + - pip=20.0.2 + - python=3.7.7 + - readline=8.0 + - setuptools=46.4.0 + - sqlite=3.31.1 + - tk=8.6.8 + - wheel=0.34.2 + - xz=5.2.5 + - zlib=1.2.11 + - pip: + - decorator==4.4.2 + - intel-openmp==2019.0 + - joblib==0.15.1 + - mkl==2019.0 + - numpy==1.18.4 + - olefile==0.46 + - pandas==1.0.3 + - python-dateutil==2.8.1 + - pytz==2020.1 + - six==1.14.0 + - youtube-dl diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/extract_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/extract_frames.sh new file mode 100644 index 00000000..a3e34667 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/extract_frames.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +DATASET=$1 +if [ "$DATASET" == "kinetics400" ] || [ "$1" == "kinetics600" ] || [ "$1" == "kinetics700" ]; then + echo "We are processing $DATASET" +else + echo "Bad Argument, we only support kinetics400, kinetics600 or kinetics700" + exit 0 +fi + +cd ../ +python build_rawframes.py ../../data/${DATASET}/videos_train/ ../../data/${DATASET}/rawframes_train/ --level 2 --flow-type tvl1 --ext mp4 --task both --new-short 256 +echo "Raw frames (RGB and tv-l1) Generated for train set" + +python build_rawframes.py ../../data/${DATASET}/videos_val/ ../../data/${DATASET}/rawframes_val/ --level 2 --flow-type tvl1 --ext mp4 --task both --new-short 256 +echo "Raw frames (RGB and tv-l1) Generated for val set" + +cd ${DATASET}/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/extract_rgb_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/extract_rgb_frames.sh new file mode 100644 index 00000000..c83c2f58 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/extract_rgb_frames.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +DATASET=$1 +if [ "$DATASET" == "kinetics400" ] || [ "$1" == "kinetics600" ] || [ "$1" == "kinetics700" ]; then + echo "We are processing $DATASET" +else + echo "Bad Argument, we only support kinetics400, kinetics600 or kinetics700" + exit 0 +fi + +cd ../ +python build_rawframes.py ../../data/${DATASET}/videos_train/ ../../data/${DATASET}/rawframes_train/ --level 2 --ext mp4 --task rgb --new-short 256 +echo "Raw frames (RGB only) generated for train set" + +python build_rawframes.py ../../data/${DATASET}/videos_val/ ../../data/${DATASET}/rawframes_val/ --level 2 --ext mp4 --task rgb --new-short 256 +echo "Raw frames (RGB only) generated for val set" + +cd ${DATASET}/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/extract_rgb_frames_opencv.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/extract_rgb_frames_opencv.sh new file mode 100644 index 00000000..83d94a51 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/extract_rgb_frames_opencv.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +DATASET=$1 +if [ "$DATASET" == "kinetics400" ] || [ "$1" == "kinetics600" ] || [ "$1" == "kinetics700" ]; then + echo "We are processing $DATASET" +else + echo "Bad Argument, we only support kinetics400, kinetics600 or kinetics700" + exit 0 +fi + +cd ../ +python build_rawframes.py ../../data/${DATASET}/videos_train/ ../../data/${DATASET}/rawframes_train/ --level 2 --ext mp4 --task rgb --new-short 256 --use-opencv +echo "Raw frames (RGB only) generated for train set" + +python build_rawframes.py ../../data/${DATASET}/videos_val/ ../../data/${DATASET}/rawframes_val/ --level 2 --ext mp4 --task rgb --new-short 256 --use-opencv +echo "Raw frames (RGB only) generated for val set" + +cd ${DATASET}/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/generate_rawframes_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/generate_rawframes_filelist.sh new file mode 100644 index 00000000..22b2366e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/generate_rawframes_filelist.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +DATASET=$1 +if [ "$DATASET" == "kinetics400" ] || [ "$1" == "kinetics600" ] || [ "$1" == "kinetics700" ]; then + echo "We are processing $DATASET" +else + echo "Bad Argument, we only support kinetics400, kinetics600 or kinetics700" + exit 0 +fi + +cd ../../../ +PYTHONPATH=. python tools/data/build_file_list.py ${DATASET} data/${DATASET}/rawframes_train/ --level 2 --format rawframes --num-split 1 --subset train --shuffle +echo "Train filelist for rawframes generated." + +PYTHONPATH=. python tools/data/build_file_list.py ${DATASET} data/${DATASET}/rawframes_val/ --level 2 --format rawframes --num-split 1 --subset val --shuffle +echo "Val filelist for rawframes generated." +cd tools/data/${DATASET}/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/generate_videos_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/generate_videos_filelist.sh new file mode 100644 index 00000000..16db70cf --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/generate_videos_filelist.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +DATASET=$1 +if [ "$DATASET" == "kinetics400" ] || [ "$1" == "kinetics600" ] || [ "$1" == "kinetics700" ]; then + echo "We are processing $DATASET" +else + echo "Bad Argument, we only support kinetics400, kinetics600 or kinetics700" + exit 0 +fi + +cd ../../../ +PYTHONPATH=. python tools/data/build_file_list.py ${DATASET} data/${DATASET}/videos_train/ --level 2 --format videos --num-split 1 --subset train --shuffle +echo "Train filelist for video generated." + +PYTHONPATH=. python tools/data/build_file_list.py ${DATASET} data/${DATASET}/videos_val/ --level 2 --format videos --num-split 1 --subset val --shuffle +echo "Val filelist for video generated." +cd tools/data/kinetics/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/label_map_k400.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/label_map_k400.txt new file mode 100644 index 00000000..cdaafcb1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/label_map_k400.txt @@ -0,0 +1,400 @@ +abseiling +air drumming +answering questions +applauding +applying cream +archery +arm wrestling +arranging flowers +assembling computer +auctioning +baby waking up +baking cookies +balloon blowing +bandaging +barbequing +bartending +beatboxing +bee keeping +belly dancing +bench pressing +bending back +bending metal +biking through snow +blasting sand +blowing glass +blowing leaves +blowing nose +blowing out candles +bobsledding +bookbinding +bouncing on trampoline +bowling +braiding hair +breading or breadcrumbing +breakdancing +brush painting +brushing hair +brushing teeth +building cabinet +building shed +bungee jumping +busking +canoeing or kayaking +capoeira +carrying baby +cartwheeling +carving pumpkin +catching fish +catching or throwing baseball +catching or throwing frisbee +catching or throwing softball +celebrating +changing oil +changing wheel +checking tires +cheerleading +chopping wood +clapping +clay pottery making +clean and jerk +cleaning floor +cleaning gutters +cleaning pool +cleaning shoes +cleaning toilet +cleaning windows +climbing a rope +climbing ladder +climbing tree +contact juggling +cooking chicken +cooking egg +cooking on campfire +cooking sausages +counting money +country line dancing +cracking neck +crawling baby +crossing river +crying +curling hair +cutting nails +cutting pineapple +cutting watermelon +dancing ballet +dancing charleston +dancing gangnam style +dancing macarena +deadlifting +decorating the christmas tree +digging +dining +disc golfing +diving cliff +dodgeball +doing aerobics +doing laundry +doing nails +drawing +dribbling basketball +drinking +drinking beer +drinking shots +driving car +driving tractor +drop kicking +drumming fingers +dunking basketball +dying hair +eating burger +eating cake +eating carrots +eating chips +eating doughnuts +eating hotdog +eating ice cream +eating spaghetti +eating watermelon +egg hunting +exercising arm +exercising with an exercise ball +extinguishing fire +faceplanting +feeding birds +feeding fish +feeding goats +filling eyebrows +finger snapping +fixing hair +flipping pancake +flying kite +folding clothes +folding napkins +folding paper +front raises +frying vegetables +garbage collecting +gargling +getting a haircut +getting a tattoo +giving or receiving award +golf chipping +golf driving +golf putting +grinding meat +grooming dog +grooming horse +gymnastics tumbling +hammer throw +headbanging +headbutting +high jump +high kick +hitting baseball +hockey stop +holding snake +hopscotch +hoverboarding +hugging +hula hooping +hurdling +hurling (sport) +ice climbing +ice fishing +ice skating +ironing +javelin throw +jetskiing +jogging +juggling balls +juggling fire +juggling soccer ball +jumping into pool +jumpstyle dancing +kicking field goal +kicking soccer ball +kissing +kitesurfing +knitting +krumping +laughing +laying bricks +long jump +lunge +making a cake +making a sandwich +making bed +making jewelry +making pizza +making snowman +making sushi +making tea +marching +massaging back +massaging feet +massaging legs +massaging person's head +milking cow +mopping floor +motorcycling +moving furniture +mowing lawn +news anchoring +opening bottle +opening present +paragliding +parasailing +parkour +passing American football (in game) +passing American football (not in game) +peeling apples +peeling potatoes +petting animal (not cat) +petting cat +picking fruit +planting trees +plastering +playing accordion +playing badminton +playing bagpipes +playing basketball +playing bass guitar +playing cards +playing cello +playing chess +playing clarinet +playing controller +playing cricket +playing cymbals +playing didgeridoo +playing drums +playing flute +playing guitar +playing harmonica +playing harp +playing ice hockey +playing keyboard +playing kickball +playing monopoly +playing organ +playing paintball +playing piano +playing poker +playing recorder +playing saxophone +playing squash or racquetball +playing tennis +playing trombone +playing trumpet +playing ukulele +playing violin +playing volleyball +playing xylophone +pole vault +presenting weather forecast +pull ups +pumping fist +pumping gas +punching bag +punching person (boxing) +push up +pushing car +pushing cart +pushing wheelchair +reading book +reading newspaper +recording music +riding a bike +riding camel +riding elephant +riding mechanical bull +riding mountain bike +riding mule +riding or walking with horse +riding scooter +riding unicycle +ripping paper +robot dancing +rock climbing +rock scissors paper +roller skating +running on treadmill +sailing +salsa dancing +sanding floor +scrambling eggs +scuba diving +setting table +shaking hands +shaking head +sharpening knives +sharpening pencil +shaving head +shaving legs +shearing sheep +shining shoes +shooting basketball +shooting goal (soccer) +shot put +shoveling snow +shredding paper +shuffling cards +side kick +sign language interpreting +singing +situp +skateboarding +ski jumping +skiing (not slalom or crosscountry) +skiing crosscountry +skiing slalom +skipping rope +skydiving +slacklining +slapping +sled dog racing +smoking +smoking hookah +snatch weight lifting +sneezing +sniffing +snorkeling +snowboarding +snowkiting +snowmobiling +somersaulting +spinning poi +spray painting +spraying +springboard diving +squat +sticking tongue out +stomping grapes +stretching arm +stretching leg +strumming guitar +surfing crowd +surfing water +sweeping floor +swimming backstroke +swimming breast stroke +swimming butterfly stroke +swing dancing +swinging legs +swinging on something +sword fighting +tai chi +taking a shower +tango dancing +tap dancing +tapping guitar +tapping pen +tasting beer +tasting food +testifying +texting +throwing axe +throwing ball +throwing discus +tickling +tobogganing +tossing coin +tossing salad +training dog +trapezing +trimming or shaving beard +trimming trees +triple jump +tying bow tie +tying knot (not on a tie) +tying tie +unboxing +unloading truck +using computer +using remote controller (not gaming) +using segway +vault +waiting in line +walking the dog +washing dishes +washing feet +washing hair +washing hands +water skiing +water sliding +watering plants +waxing back +waxing chest +waxing eyebrows +waxing legs +weaving basket +welding +whistling +windsurfing +wrapping present +wrestling +writing +yawning +yoga +zumba diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/label_map_k600.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/label_map_k600.txt new file mode 100644 index 00000000..639e9c91 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/label_map_k600.txt @@ -0,0 +1,600 @@ +abseiling +acting in play +adjusting glasses +air drumming +alligator wrestling +answering questions +applauding +applying cream +archaeological excavation +archery +arguing +arm wrestling +arranging flowers +assembling bicycle +assembling computer +attending conference +auctioning +backflip (human) +baking cookies +bandaging +barbequing +bartending +base jumping +bathing dog +battle rope training +beatboxing +bee keeping +belly dancing +bench pressing +bending back +bending metal +biking through snow +blasting sand +blowdrying hair +blowing bubble gum +blowing glass +blowing leaves +blowing nose +blowing out candles +bobsledding +bodysurfing +bookbinding +bottling +bouncing on bouncy castle +bouncing on trampoline +bowling +braiding hair +breading or breadcrumbing +breakdancing +breaking boards +breathing fire +brush painting +brushing hair +brushing teeth +building cabinet +building lego +building sandcastle +building shed +bull fighting +bulldozing +bungee jumping +burping +busking +calculating +calligraphy +canoeing or kayaking +capoeira +capsizing +card stacking +card throwing +carrying baby +cartwheeling +carving ice +carving pumpkin +casting fishing line +catching fish +catching or throwing baseball +catching or throwing frisbee +catching or throwing softball +celebrating +changing gear in car +changing oil +changing wheel (not on bike) +checking tires +cheerleading +chewing gum +chiseling stone +chiseling wood +chopping meat +chopping vegetables +chopping wood +clam digging +clapping +clay pottery making +clean and jerk +cleaning gutters +cleaning pool +cleaning shoes +cleaning toilet +cleaning windows +climbing a rope +climbing ladder +climbing tree +coloring in +combing hair +contact juggling +contorting +cooking egg +cooking on campfire +cooking sausages (not on barbeque) +cooking scallops +cosplaying +counting money +country line dancing +cracking back +cracking knuckles +cracking neck +crawling baby +crossing eyes +crossing river +crying +cumbia +curling (sport) +curling hair +cutting apple +cutting nails +cutting orange +cutting pineapple +cutting watermelon +dancing ballet +dancing charleston +dancing gangnam style +dancing macarena +deadlifting +decorating the christmas tree +delivering mail +dining +directing traffic +disc golfing +diving cliff +docking boat +dodgeball +doing aerobics +doing jigsaw puzzle +doing laundry +doing nails +drawing +dribbling basketball +drinking shots +driving car +driving tractor +drooling +drop kicking +drumming fingers +dumpster diving +dunking basketball +dyeing eyebrows +dyeing hair +eating burger +eating cake +eating carrots +eating chips +eating doughnuts +eating hotdog +eating ice cream +eating spaghetti +eating watermelon +egg hunting +embroidering +exercising with an exercise ball +extinguishing fire +faceplanting +falling off bike +falling off chair +feeding birds +feeding fish +feeding goats +fencing (sport) +fidgeting +finger snapping +fixing bicycle +fixing hair +flint knapping +flipping pancake +fly tying +flying kite +folding clothes +folding napkins +folding paper +front raises +frying vegetables +geocaching +getting a haircut +getting a piercing +getting a tattoo +giving or receiving award +gold panning +golf chipping +golf driving +golf putting +gospel singing in church +grinding meat +grooming dog +grooming horse +gymnastics tumbling +hammer throw +hand washing clothes +head stand +headbanging +headbutting +high jump +high kick +historical reenactment +hitting baseball +hockey stop +holding snake +home roasting coffee +hopscotch +hoverboarding +huddling +hugging (not baby) +hugging baby +hula hooping +hurdling +hurling (sport) +ice climbing +ice fishing +ice skating +ice swimming +inflating balloons +installing carpet +ironing +ironing hair +javelin throw +jaywalking +jetskiing +jogging +juggling balls +juggling fire +juggling soccer ball +jumping bicycle +jumping into pool +jumping jacks +jumpstyle dancing +karaoke +kicking field goal +kicking soccer ball +kissing +kitesurfing +knitting +krumping +land sailing +laughing +lawn mower racing +laying bricks +laying concrete +laying stone +laying tiles +leatherworking +licking +lifting hat +lighting fire +lock picking +long jump +longboarding +looking at phone +luge +lunge +making a cake +making a sandwich +making balloon shapes +making bubbles +making cheese +making horseshoes +making jewelry +making paper aeroplanes +making pizza +making snowman +making sushi +making tea +making the bed +marching +marriage proposal +massaging back +massaging feet +massaging legs +massaging neck +massaging person's head +milking cow +moon walking +mopping floor +mosh pit dancing +motorcycling +mountain climber (exercise) +moving furniture +mowing lawn +mushroom foraging +needle felting +news anchoring +opening bottle (not wine) +opening door +opening present +opening refrigerator +opening wine bottle +packing +paragliding +parasailing +parkour +passing American football (in game) +passing american football (not in game) +passing soccer ball +peeling apples +peeling potatoes +person collecting garbage +petting animal (not cat) +petting cat +photobombing +photocopying +picking fruit +pillow fight +pinching +pirouetting +planing wood +planting trees +plastering +playing accordion +playing badminton +playing bagpipes +playing basketball +playing bass guitar +playing beer pong +playing blackjack +playing cello +playing chess +playing clarinet +playing controller +playing cricket +playing cymbals +playing darts +playing didgeridoo +playing dominoes +playing drums +playing field hockey +playing flute +playing gong +playing guitar +playing hand clapping games +playing harmonica +playing harp +playing ice hockey +playing keyboard +playing kickball +playing laser tag +playing lute +playing maracas +playing marbles +playing monopoly +playing netball +playing ocarina +playing organ +playing paintball +playing pan pipes +playing piano +playing pinball +playing ping pong +playing poker +playing polo +playing recorder +playing rubiks cube +playing saxophone +playing scrabble +playing squash or racquetball +playing tennis +playing trombone +playing trumpet +playing ukulele +playing violin +playing volleyball +playing with trains +playing xylophone +poking bellybutton +pole vault +polishing metal +popping balloons +pouring beer +preparing salad +presenting weather forecast +pull ups +pumping fist +pumping gas +punching bag +punching person (boxing) +push up +pushing car +pushing cart +pushing wheelbarrow +pushing wheelchair +putting in contact lenses +putting on eyeliner +putting on foundation +putting on lipstick +putting on mascara +putting on sari +putting on shoes +raising eyebrows +reading book +reading newspaper +recording music +repairing puncture +riding a bike +riding camel +riding elephant +riding mechanical bull +riding mule +riding or walking with horse +riding scooter +riding snow blower +riding unicycle +ripping paper +roasting marshmallows +roasting pig +robot dancing +rock climbing +rock scissors paper +roller skating +rolling pastry +rope pushdown +running on treadmill +sailing +salsa dancing +sanding floor +sausage making +sawing wood +scrambling eggs +scrapbooking +scrubbing face +scuba diving +separating eggs +setting table +sewing +shaking hands +shaking head +shaping bread dough +sharpening knives +sharpening pencil +shaving head +shaving legs +shearing sheep +shining flashlight +shining shoes +shooting basketball +shooting goal (soccer) +shopping +shot put +shoveling snow +shucking oysters +shuffling cards +shuffling feet +side kick +sign language interpreting +singing +sipping cup +situp +skateboarding +ski jumping +skiing crosscountry +skiing mono +skiing slalom +skipping rope +skipping stone +skydiving +slacklining +slapping +sled dog racing +sleeping +smashing +smelling feet +smoking +smoking hookah +smoking pipe +snatch weight lifting +sneezing +snorkeling +snowboarding +snowkiting +snowmobiling +somersaulting +spelunking +spinning poi +spray painting +springboard diving +square dancing +squat +standing on hands +staring +steer roping +sticking tongue out +stomping grapes +stretching arm +stretching leg +sucking lolly +surfing crowd +surfing water +sweeping floor +swimming backstroke +swimming breast stroke +swimming butterfly stroke +swimming front crawl +swing dancing +swinging baseball bat +swinging on something +sword fighting +sword swallowing +tackling +tagging graffiti +tai chi +talking on cell phone +tango dancing +tap dancing +tapping guitar +tapping pen +tasting beer +tasting food +tasting wine +testifying +texting +threading needle +throwing axe +throwing ball (not baseball or American football) +throwing discus +throwing knife +throwing snowballs +throwing tantrum +throwing water balloon +tickling +tie dying +tightrope walking +tiptoeing +tobogganing +tossing coin +training dog +trapezing +trimming or shaving beard +trimming shrubs +trimming trees +triple jump +twiddling fingers +tying bow tie +tying knot (not on a tie) +tying necktie +tying shoe laces +unboxing +unloading truck +using a microscope +using a paint roller +using a power drill +using a sledge hammer +using a wrench +using atm +using bagging machine +using circular saw +using inhaler +using puppets +using remote controller (not gaming) +using segway +vacuuming floor +visiting the zoo +wading through mud +wading through water +waiting in line +waking up +walking the dog +walking through snow +washing dishes +washing feet +washing hair +washing hands +watching tv +water skiing +water sliding +watering plants +waving hand +waxing back +waxing chest +waxing eyebrows +waxing legs +weaving basket +weaving fabric +welding +whistling +windsurfing +winking +wood burning (art) +wrapping present +wrestling +writing +yarn spinning +yawning +yoga +zumba diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/label_map_k700.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/label_map_k700.txt new file mode 100644 index 00000000..2ce7e6fa --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/label_map_k700.txt @@ -0,0 +1,700 @@ +abseiling +acting in play +adjusting glasses +air drumming +alligator wrestling +answering questions +applauding +applying cream +archaeological excavation +archery +arguing +arm wrestling +arranging flowers +arresting +assembling bicycle +assembling computer +attending conference +auctioning +baby waking up +backflip (human) +baking cookies +bandaging +barbequing +bartending +base jumping +bathing dog +battle rope training +beatboxing +bee keeping +being excited +being in zero gravity +belly dancing +bench pressing +bending back +bending metal +biking through snow +blasting sand +blending fruit +blowdrying hair +blowing bubble gum +blowing glass +blowing leaves +blowing nose +blowing out candles +bobsledding +bodysurfing +bookbinding +bottling +bouncing ball (not juggling) +bouncing on bouncy castle +bouncing on trampoline +bowling +braiding hair +breading or breadcrumbing +breakdancing +breaking boards +breaking glass +breathing fire +brush painting +brushing floor +brushing hair +brushing teeth +building cabinet +building lego +building sandcastle +building shed +bulldozing +bungee jumping +burping +busking +calculating +calligraphy +canoeing or kayaking +capoeira +capsizing +card stacking +card throwing +carrying baby +carrying weight +cartwheeling +carving ice +carving marble +carving pumpkin +carving wood with a knife +casting fishing line +catching fish +catching or throwing baseball +catching or throwing frisbee +catching or throwing softball +celebrating +changing gear in car +changing oil +changing wheel (not on bike) +chasing +checking tires +checking watch +cheerleading +chewing gum +chiseling stone +chiseling wood +chopping meat +chopping wood +clam digging +clapping +clay pottery making +clean and jerk +cleaning gutters +cleaning pool +cleaning shoes +cleaning toilet +cleaning windows +climbing a rope +climbing ladder +climbing tree +closing door +coloring in +combing hair +contact juggling +contorting +cooking chicken +cooking egg +cooking on campfire +cooking sausages (not on barbeque) +cooking scallops +cosplaying +coughing +counting money +country line dancing +cracking back +cracking knuckles +cracking neck +crawling baby +crocheting +crossing eyes +crossing river +crying +cumbia +curling (sport) +curling eyelashes +curling hair +cutting apple +cutting cake +cutting nails +cutting orange +cutting pineapple +cutting watermelon +dancing ballet +dancing charleston +dancing gangnam style +dancing macarena +deadlifting +dealing cards +decorating the christmas tree +decoupage +delivering mail +digging +dining +directing traffic +disc golfing +diving cliff +docking boat +dodgeball +doing aerobics +doing jigsaw puzzle +doing laundry +doing nails +doing sudoku +drawing +dribbling basketball +drinking shots +driving car +driving tractor +drooling +drop kicking +drumming fingers +dumpster diving +dunking basketball +dyeing eyebrows +dyeing hair +eating burger +eating cake +eating carrots +eating chips +eating doughnuts +eating hotdog +eating ice cream +eating nachos +eating spaghetti +eating watermelon +egg hunting +embroidering +entering church +exercising arm +exercising with an exercise ball +extinguishing fire +faceplanting +falling off bike +falling off chair +feeding birds +feeding fish +feeding goats +fencing (sport) +fidgeting +filling cake +filling eyebrows +finger snapping +fixing bicycle +fixing hair +flint knapping +flipping bottle +flipping pancake +fly tying +flying kite +folding clothes +folding napkins +folding paper +front raises +frying vegetables +gargling +geocaching +getting a haircut +getting a piercing +getting a tattoo +giving or receiving award +gold panning +golf chipping +golf driving +golf putting +gospel singing in church +grinding meat +grooming cat +grooming dog +grooming horse +gymnastics tumbling +hammer throw +hand washing clothes +head stand +headbanging +headbutting +helmet diving +herding cattle +high fiving +high jump +high kick +historical reenactment +hitting baseball +hockey stop +holding snake +home roasting coffee +hopscotch +hoverboarding +huddling +hugging (not baby) +hugging baby +hula hooping +hurdling +hurling (sport) +ice climbing +ice fishing +ice skating +ice swimming +inflating balloons +installing carpet +ironing +ironing hair +javelin throw +jaywalking +jetskiing +jogging +juggling balls +juggling fire +juggling soccer ball +jumping bicycle +jumping into pool +jumping jacks +jumping sofa +jumpstyle dancing +karaoke +kicking field goal +kicking soccer ball +kissing +kitesurfing +knitting +krumping +land sailing +laughing +lawn mower racing +laying bricks +laying concrete +laying decking +laying stone +laying tiles +leatherworking +letting go of balloon +licking +lifting hat +lighting candle +lighting fire +listening with headphones +lock picking +long jump +longboarding +looking at phone +looking in mirror +luge +lunge +making a cake +making a sandwich +making balloon shapes +making bubbles +making cheese +making horseshoes +making jewelry +making latte art +making paper aeroplanes +making pizza +making slime +making snowman +making sushi +making tea +making the bed +marching +marriage proposal +massaging back +massaging feet +massaging legs +massaging neck +massaging person's head +metal detecting +milking cow +milking goat +mixing colours +moon walking +mopping floor +mosh pit dancing +motorcycling +mountain climber (exercise) +moving baby +moving child +moving furniture +mowing lawn +mushroom foraging +needle felting +news anchoring +opening bottle (not wine) +opening coconuts +opening door +opening present +opening refrigerator +opening wine bottle +packing +paragliding +parasailing +parkour +passing American football (in game) +passing American football (not in game) +passing soccer ball +peeling apples +peeling banana +peeling potatoes +person collecting garbage +petting animal (not cat) +petting cat +petting horse +photobombing +photocopying +picking apples +picking blueberries +pillow fight +pinching +pirouetting +planing wood +planting trees +plastering +playing accordion +playing american football +playing badminton +playing bagpipes +playing basketball +playing bass guitar +playing beer pong +playing billiards +playing blackjack +playing cards +playing cello +playing checkers +playing chess +playing clarinet +playing controller +playing cricket +playing cymbals +playing darts +playing didgeridoo +playing dominoes +playing drums +playing field hockey +playing flute +playing gong +playing guitar +playing hand clapping games +playing harmonica +playing harp +playing ice hockey +playing keyboard +playing kickball +playing laser tag +playing lute +playing mahjong +playing maracas +playing marbles +playing monopoly +playing netball +playing nose flute +playing oboe +playing ocarina +playing organ +playing paintball +playing pan pipes +playing piano +playing piccolo +playing pinball +playing ping pong +playing poker +playing polo +playing recorder +playing road hockey +playing rounders +playing rubiks cube +playing saxophone +playing scrabble +playing shuffleboard +playing slot machine +playing squash or racquetball +playing tennis +playing trombone +playing trumpet +playing ukulele +playing violin +playing volleyball +playing with trains +playing xylophone +poaching eggs +poking bellybutton +pole vault +polishing furniture +polishing metal +popping balloons +pouring beer +pouring milk +pouring wine +preparing salad +presenting weather forecast +pretending to be a statue +pull ups +pulling espresso shot +pulling rope (game) +pumping fist +pumping gas +punching bag +punching person (boxing) +push up +pushing car +pushing cart +pushing wheelbarrow +pushing wheelchair +putting in contact lenses +putting on eyeliner +putting on foundation +putting on lipstick +putting on mascara +putting on sari +putting on shoes +putting wallpaper on wall +raising eyebrows +reading book +reading newspaper +recording music +repairing puncture +riding a bike +riding camel +riding elephant +riding mechanical bull +riding mule +riding or walking with horse +riding scooter +riding snow blower +riding unicycle +ripping paper +roasting marshmallows +roasting pig +robot dancing +rock climbing +rock scissors paper +roller skating +rolling eyes +rolling pastry +rope pushdown +running on treadmill +sailing +salsa dancing +saluting +sanding floor +sanding wood +sausage making +sawing wood +scrambling eggs +scrapbooking +scrubbing face +scuba diving +seasoning food +separating eggs +setting table +sewing +shaking hands +shaking head +shaping bread dough +sharpening knives +sharpening pencil +shaving head +shaving legs +shearing sheep +shining flashlight +shining shoes +shoot dance +shooting basketball +shooting goal (soccer) +shooting off fireworks +shopping +shot put +shouting +shoveling snow +shredding paper +shucking oysters +shuffling cards +shuffling feet +side kick +sieving +sign language interpreting +silent disco +singing +sipping cup +situp +skateboarding +ski ballet +ski jumping +skiing crosscountry +skiing mono +skiing slalom +skipping rope +skipping stone +skydiving +slacklining +slapping +sled dog racing +sleeping +slicing onion +smashing +smelling feet +smoking +smoking hookah +smoking pipe +snatch weight lifting +sneezing +snorkeling +snowboarding +snowkiting +snowmobiling +somersaulting +spelunking +spinning plates +spinning poi +splashing water +spray painting +spraying +springboard diving +square dancing +squat +squeezing orange +stacking cups +stacking dice +standing on hands +staring +steer roping +steering car +sticking tongue out +stomping grapes +stretching arm +stretching leg +sucking lolly +surfing crowd +surfing water +surveying +sweeping floor +swimming backstroke +swimming breast stroke +swimming butterfly stroke +swimming front crawl +swimming with dolphins +swimming with sharks +swing dancing +swinging baseball bat +swinging on something +sword fighting +sword swallowing +tackling +tagging graffiti +tai chi +taking photo +talking on cell phone +tango dancing +tap dancing +tapping guitar +tapping pen +tasting beer +tasting food +tasting wine +testifying +texting +threading needle +throwing axe +throwing ball (not baseball or American football) +throwing discus +throwing knife +throwing snowballs +throwing tantrum +throwing water balloon +tickling +tie dying +tightrope walking +tiptoeing +tobogganing +tossing coin +tossing salad +training dog +trapezing +treating wood +trimming or shaving beard +trimming shrubs +trimming trees +triple jump +twiddling fingers +tying bow tie +tying knot (not on a tie) +tying necktie +tying shoe laces +unboxing +uncorking champagne +unloading truck +using a microscope +using a paint roller +using a power drill +using a sledge hammer +using a wrench +using atm +using bagging machine +using circular saw +using inhaler +using megaphone +using puppets +using remote controller (not gaming) +using segway +vacuuming car +vacuuming floor +visiting the zoo +wading through mud +wading through water +waiting in line +waking up +walking on stilts +walking the dog +walking through snow +walking with crutches +washing dishes +washing feet +washing hair +washing hands +watching tv +water skiing +water sliding +watering plants +waving hand +waxing armpits +waxing back +waxing chest +waxing eyebrows +waxing legs +weaving basket +weaving fabric +welding +whistling +windsurfing +winking +wood burning (art) +wrapping present +wrestling +writing +yarn spinning +yawning +yoga +zumba diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/rename_classnames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/rename_classnames.sh new file mode 100644 index 00000000..a2b7a1b4 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/kinetics/rename_classnames.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +# Rename classname for convenience +DATASET=$1 +if [ "$DATASET" == "kinetics400" ] || [ "$1" == "kinetics600" ] || [ "$1" == "kinetics700" ]; then + echo "We are processing $DATASET" +else + echo "Bad Argument, we only support kinetics400, kinetics600 or kinetics700" + exit 0 +fi + +cd ../../../data/${DATASET}/ +ls ./videos_train | while read class; do \ + newclass=`echo $class | tr " " "_" `; + if [ "${class}" != "${newclass}" ] + then + mv "videos_train/${class}" "videos_train/${newclass}"; + fi +done + +ls ./videos_val | while read class; do \ + newclass=`echo $class | tr " " "_" `; + if [ "${class}" != "${newclass}" ] + then + mv "videos_val/${class}" "videos_val/${newclass}"; + fi +done + +cd ../../tools/data/kinetics/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mit/README.md b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/README.md new file mode 100644 index 00000000..e67ca453 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/README.md @@ -0,0 +1,128 @@ +# Preparing Moments in Time + +## Introduction + + + +```BibTeX +@article{monfortmoments, + title={Moments in Time Dataset: one million videos for event understanding}, + author={Monfort, Mathew and Andonian, Alex and Zhou, Bolei and Ramakrishnan, Kandan and Bargal, Sarah Adel and Yan, Tom and Brown, Lisa and Fan, Quanfu and Gutfruend, Dan and Vondrick, Carl and others}, + journal={IEEE Transactions on Pattern Analysis and Machine Intelligence}, + year={2019}, + issn={0162-8828}, + pages={1--8}, + numpages={8}, + doi={10.1109/TPAMI.2019.2901464}, +} +``` + +For basic dataset information, you can refer to the dataset [website](http://moments.csail.mit.edu/). +Before we start, please make sure that the directory is located at `$MMACTION2/tools/data/mit/`. + +## Step 1. Prepare Annotations and Videos + +First of all, you have to visit the official [website](http://moments.csail.mit.edu/), fill in an application form for downloading the dataset. Then you will get the download link. You can use `bash preprocess_data.sh` to prepare annotations and videos. However, the download command is missing in that script. Remember to download the dataset to the proper place follow the comment in this script. + +For better decoding speed, you can resize the original videos into smaller sized, densely encoded version by: + +```shell +python ../resize_videos.py ../../../data/mit/videos/ ../../../data/mit/videos_256p_dense_cache --dense --level 2 +``` + +## Step 2. Extract RGB and Flow + +This part is **optional** if you only want to use the video loader. + +Before extracting, please refer to [install.md](/docs/install.md) for installing [denseflow](https://github.com/open-mmlab/denseflow). + +If you have plenty of SSD space, then we recommend extracting frames there for better I/O performance. And you can run the following script to soft link the extracted frames. + +```shell +# execute these two line (Assume the SSD is mounted at "/mnt/SSD/") +mkdir /mnt/SSD/mit_extracted/ +ln -s /mnt/SSD/mit_extracted/ ../../../data/mit/rawframes +``` + +If you only want to play with RGB frames (since extracting optical flow can be time-consuming), consider running the following script to extract **RGB-only** frames using denseflow. + +```shell +bash extract_rgb_frames.sh +``` + +If you didn't install denseflow, you can still extract RGB frames using OpenCV by the following script, but it will keep the original size of the images. + +```shell +bash extract_rgb_frames_opencv.sh +``` + +If both are required, run the following script to extract frames. + +```shell +bash extract_frames.sh +``` + +## Step 4. Generate File List + +you can run the follow script to generate file list in the format of rawframes and videos. + +```shell +bash generate_{rawframes, videos}_filelist.sh +``` + +## Step 5. Check Directory Structure + +After the whole data process for Moments in Time preparation, +you will get the rawframes (RGB + Flow), videos and annotation files for Moments in Time. + +In the context of the whole project (for Moments in Time only), the folder structure will look like: + +``` +mmaction2 +├── data +│   └── mit +│   ├── annotations +│   │   ├── license.txt +│   │   ├── moments_categories.txt +│   │   ├── README.txt +│   │   ├── trainingSet.csv +│   │   └── validationSet.csv +│   ├── mit_train_rawframe_anno.txt +│   ├── mit_train_video_anno.txt +│   ├── mit_val_rawframe_anno.txt +│   ├── mit_val_video_anno.txt +│   ├── rawframes +│   │   ├── training +│   │   │   ├── adult+female+singing +│   │   │   │   ├── 0P3XG_vf91c_35 +│   │   │   │   │   ├── flow_x_00001.jpg +│   │   │   │   │   ├── flow_x_00002.jpg +│   │   │   │   │   ├── ... +│   │   │   │   │   ├── flow_y_00001.jpg +│   │   │   │   │   ├── flow_y_00002.jpg +│   │   │   │   │   ├── ... +│   │   │   │   │   ├── img_00001.jpg +│   │   │   │   │   └── img_00002.jpg +│   │   │   │   └── yt-zxQfALnTdfc_56 +│   │   │   │   │   ├── ... +│   │   │   └── yawning +│   │   │   ├── _8zmP1e-EjU_2 +│   │   │      │   ├── ... +│   │   └── validation +│   │   │   ├── ... +│   └── videos +│   ├── training +│   │   ├── adult+female+singing +│   │   │   ├── 0P3XG_vf91c_35.mp4 +│   │   │   ├── ... +│   │   │   └── yt-zxQfALnTdfc_56.mp4 +│   │   └── yawning +│   │   ├── ... +│   └── validation +│   │   ├── ... +└── mmaction +└── ... + +``` + +For training and evaluating on Moments in Time, please refer to [getting_started.md](/docs/getting_started.md). diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mit/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/README_zh-CN.md new file mode 100644 index 00000000..74a3d0c2 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/README_zh-CN.md @@ -0,0 +1,130 @@ +# 准备 Moments in Time + +## 简介 + + + +```BibTeX +@article{monfortmoments, + title={Moments in Time Dataset: one million videos for event understanding}, + author={Monfort, Mathew and Andonian, Alex and Zhou, Bolei and Ramakrishnan, Kandan and Bargal, Sarah Adel and Yan, Tom and Brown, Lisa and Fan, Quanfu and Gutfruend, Dan and Vondrick, Carl and others}, + journal={IEEE Transactions on Pattern Analysis and Machine Intelligence}, + year={2019}, + issn={0162-8828}, + pages={1--8}, + numpages={8}, + doi={10.1109/TPAMI.2019.2901464}, +} +``` + +用户可以参照数据集 [官网](http://moments.csail.mit.edu/),获取数据集相关的基本信息。 +在准备数据集前,请确保命令行当前路径为 `$MMACTION2/tools/data/mit/`。 + +## 步骤 1. 准备标注文件和视频文件 + +首先,用户需要访问[官网](http://moments.csail.mit.edu/),填写申请表来下载数据集。 +在得到下载链接后,用户可以使用 `bash preprocess_data.sh` 来准备标注文件和视频。 +请注意此脚本并没有下载标注和视频文件,用户需要根据脚本文件中的注释,提前下载好数据集,并放/软链接到合适的位置。 + +为加快视频解码速度,用户需要缩小原视频的尺寸,可使用以下命令获取密集编码版视频: + +```shell +python ../resize_videos.py ../../../data/mit/videos/ ../../../data/mit/videos_256p_dense_cache --dense --level 2 +``` + +## Step 2. 抽取帧和光流 + +如果用户只想使用视频加载训练,则该部分是 **可选项**。 + +在抽取视频帧和光流之前,请参考 [安装指南](/docs_zh_CN/install.md) 安装 [denseflow](https://github.com/open-mmlab/denseflow)。 + +如果用户有大量的 SSD 存储空间,则推荐将抽取的帧存储至 I/O 性能更优秀的 SSD 上。 +用户可使用以下命令为 SSD 建立软链接。 + +```shell +# 执行这两行指令进行抽取(假设 SSD 挂载在 "/mnt/SSD/"上) +mkdir /mnt/SSD/mit_extracted/ +ln -s /mnt/SSD/mit_extracted/ ../../../data/mit/rawframes +``` + +如果用户需要抽取 RGB 帧(因为抽取光流的过程十分耗时),可以考虑运行以下命令使用 denseflow **只抽取 RGB 帧**。 + +```shell +bash extract_rgb_frames.sh +``` + +如果用户没有安装 denseflow,则可以运行以下命令使用 OpenCV 抽取 RGB 帧。然而,该方法只能抽取与原始视频分辨率相同的帧。 + +```shell +bash extract_rgb_frames_opencv.sh +``` + +如果用户想抽取 RGB 帧和光流,则可以运行以下脚本进行抽取。 + +```shell +bash extract_frames.sh +``` + +## 步骤 3. 生成文件列表 + +用户可以通过运行以下命令生成帧和视频格式的文件列表。 + +```shell +bash generate_{rawframes, videos}_filelist.sh +``` + +## 步骤 4. 检查目录结构 + +在完成 Moments in Time 数据集准备流程后,用户可以得到 Moments in Time 的 RGB 帧 + 光流文件,视频文件以及标注文件。 + +在整个 MMAction2 文件夹下,Moments in Time 的文件结构如下: + +``` +mmaction2 +├── data +│   └── mit +│   ├── annotations +│   │   ├── license.txt +│   │   ├── moments_categories.txt +│   │   ├── README.txt +│   │   ├── trainingSet.csv +│   │   └── validationSet.csv +│   ├── mit_train_rawframe_anno.txt +│   ├── mit_train_video_anno.txt +│   ├── mit_val_rawframe_anno.txt +│   ├── mit_val_video_anno.txt +│   ├── rawframes +│   │   ├── training +│   │   │   ├── adult+female+singing +│   │   │   │   ├── 0P3XG_vf91c_35 +│   │   │   │   │   ├── flow_x_00001.jpg +│   │   │   │   │   ├── flow_x_00002.jpg +│   │   │   │   │   ├── ... +│   │   │   │   │   ├── flow_y_00001.jpg +│   │   │   │   │   ├── flow_y_00002.jpg +│   │   │   │   │   ├── ... +│   │   │   │   │   ├── img_00001.jpg +│   │   │   │   │   └── img_00002.jpg +│   │   │   │   └── yt-zxQfALnTdfc_56 +│   │   │   │   │   ├── ... +│   │   │   └── yawning +│   │   │   ├── _8zmP1e-EjU_2 +│   │   │      │   ├── ... +│   │   └── validation +│   │   │   ├── ... +│   └── videos +│   ├── training +│   │   ├── adult+female+singing +│   │   │   ├── 0P3XG_vf91c_35.mp4 +│   │   │   ├── ... +│   │   │   └── yt-zxQfALnTdfc_56.mp4 +│   │   └── yawning +│   │   ├── ... +│   └── validation +│   │   ├── ... +└── mmaction +└── ... + +``` + +关于对 Moments in Times 进行训练和验证,可以参照 [基础教程](/docs_zh_CN/getting_started.md)。 diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mit/extract_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/extract_frames.sh new file mode 100644 index 00000000..477fb8d9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/extract_frames.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/mit/videos/training ../../data/mit/rawframes/training/ --level 2 --flow-type tvl1 --ext mp4 --task both +echo "Raw frames (RGB and tv-l1) Generated for train set" + +python build_rawframes.py ../../data/mit/vides/validation/ ../../data/mit/rawframes/validation/ --level 2 --flow-type tvl1 --ext mp4 --task both +echo "Raw frames (RGB and tv-l1) Generated for val set" + +cd mit/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mit/extract_rgb_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/extract_rgb_frames.sh new file mode 100644 index 00000000..4b468b52 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/extract_rgb_frames.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/mit/videos/training ../../data/mit/rawframes/training/ --level 2 --ext mp4 --task rgb +echo "Raw frames (RGB only) generated for train set" + +python build_rawframes.py ../../data/mit/videos/validation ../../data/mit/rawframes/validation/ --level 2 --ext mp4 --task rgb +echo "Raw frames (RGB only) generated for val set" + +cd mit/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mit/extract_rgb_frames_opencv.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/extract_rgb_frames_opencv.sh new file mode 100644 index 00000000..004f6e41 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/extract_rgb_frames_opencv.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/mit/videos/training ../../data/mit/rawframes/training/ --level 2 --ext mp4 --task rgb --use-opencv +echo "Raw frames (RGB only) generated for train set" + +python build_rawframes.py ../../data/mit/videos/validation ../../data/mit/rawframes/validation/ --level 2 --ext mp4 --task rgb --use-opencv +echo "Raw frames (RGB only) generated for val set" + +cd mit/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mit/generate_rawframes_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/generate_rawframes_filelist.sh new file mode 100644 index 00000000..f53bcdeb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/generate_rawframes_filelist.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +cd ../../../ +PYTHONPATH=. python tools/data/build_file_list.py mit data/mit/rawframes/training/ --level 2 --format rawframes --num-split 1 --subset train --shuffle +echo "Train filelist for rawframes generated." + +PYTHONPATH=. python tools/data/build_file_list.py mit data/mit/rawframes/validation/ --level 2 --format rawframes --num-split 1 --subset val --shuffle +echo "Val filelist for rawframes generated." +cd tools/data/mit/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mit/generate_videos_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/generate_videos_filelist.sh new file mode 100644 index 00000000..390d4eb7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/generate_videos_filelist.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +cd ../../../ +PYTHONPATH=. python tools/data/build_file_list.py mit data/mit/videos/training/ --level 2 --format videos --num-split 1 --subset train --shuffle +echo "Train filelist for videos generated." + +PYTHONPATH=. python tools/data/build_file_list.py mit data/mit/videos/validation/ --level 2 --format videos --num-split 1 --subset val --shuffle +echo "Val filelist for videos generated." +cd tools/data/mit/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mit/label_map.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/label_map.txt new file mode 100644 index 00000000..c1160edf --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/label_map.txt @@ -0,0 +1,339 @@ +clapping +praying +dropping +burying +covering +flooding +leaping +drinking +slapping +cuddling +sleeping +preaching +raining +stitching +spraying +twisting +coaching +submerging +breaking +tuning +boarding +running +destroying +competing +giggling +shoveling +chasing +flicking +pouring +buttoning +hammering +carrying +surfing +pulling +squatting +aiming +crouching +tapping +skipping +washing +winking +queuing +locking +stopping +sneezing +flipping +sewing +clipping +working +rocking +asking +playing+fun +camping +plugging +pedaling +constructing +slipping +sweeping +screwing +shrugging +hitchhiking +cracking +scratching +trimming +selling +marching +stirring +kissing +jumping +starting +clinging +socializing +picking +splashing +licking +kicking +sliding +filming +driving +handwriting +steering +filling +crashing +stealing +pressing +shouting +hiking +vacuuming +pointing +giving +diving +hugging +building +swerving +dining +floating +cheerleading +leaning +sailing +singing +playing +hitting +bubbling +joining +bathing +raising +sitting +drawing +protesting +rinsing +coughing +smashing +slicing +balancing +rafting +kneeling +dunking +brushing +crushing +rubbing +punting +watering +playing+music +removing +tearing +imitating +teaching +cooking +reaching +studying +serving +bulldozing +shaking +discussing +dragging +gardening +performing +officiating +photographing +sowing +dripping +writing +clawing +bending +boxing +mopping +gripping +flowing +digging +tripping +cheering +buying +bicycling +feeding +emptying +unpacking +sketching +standing +weeding +stacking +drying +crying +spinning +frying +cutting +paying +eating +lecturing +dancing +adult+female+speaking +boiling +peeling +wrapping +wetting +attacking +welding +putting +swinging +carving +walking +dressing +inflating +climbing +shredding +reading +sanding +frowning +closing +hunting +clearing +launching +packaging +fishing +spilling +leaking +knitting +boating +sprinkling +baptizing +playing+sports +rolling +spitting +dipping +riding +chopping +extinguishing +applauding +calling +talking +adult+male+speaking +snowing +shaving +marrying +rising +laughing +crawling +flying +assembling +injecting +landing +operating +packing +descending +falling +entering +pushing +sawing +smelling +overflowing +fighting +waking +barbecuing +skating +painting +drilling +punching +tying +manicuring +plunging +grilling +pitching +towing +telephoning +crafting +knocking +playing+videogames +storming +placing +turning +barking +child+singing +opening +waxing +juggling +mowing +shooting +sniffing +interviewing +stomping +chewing +arresting +grooming +rowing +bowing +gambling +saluting +fueling +autographing +throwing +drenching +waving +signing +repairing +baking +smoking +skiing +drumming +child+speaking +blowing +cleaning +combing +spreading +racing +combusting +adult+female+singing +fencing +swimming +adult+male+singing +snuggling +shopping +bouncing +dusting +stroking +snapping +biting +roaring +guarding +unloading +lifting +instructing +folding +measuring +whistling +exiting +stretching +taping +squinting +catching +draining +massaging +scrubbing +handcuffing +celebrating +jogging +colliding +bowling +resting +blocking +smiling +tattooing +erupting +howling +parading +grinning +sprinting +hanging +planting +speaking +ascending +yawning +cramming +burning +wrestling +poking +tickling +exercising +loading +piloting +typing diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mit/preprocess_data.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/preprocess_data.sh new file mode 100644 index 00000000..f1194273 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mit/preprocess_data.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +DATA_DIR="../../../data/mit/" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +cd ${DATA_DIR} + +# Download the Moments_in_Time_Raw.zip here manually +unzip Moments_in_Time_Raw.zip +rm Moments_in_Time_Raw.zip + +if [ ! -d "./videos" ]; then + mkdir ./videos +fi +mv ./training ./videos && mv ./validation ./video + +if [ ! -d "./annotations" ]; then + mkdir ./annotations +fi + +mv *.txt annotations && mv *.csv annotations + +cd "../../tools/data/mit" diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/README.md b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/README.md new file mode 100644 index 00000000..5deedf71 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/README.md @@ -0,0 +1,113 @@ +# Preparing Multi-Moments in Time + +## Introduction + + + +```BibTeX +@misc{monfort2019multimoments, + title={Multi-Moments in Time: Learning and Interpreting Models for Multi-Action Video Understanding}, + author={Mathew Monfort and Kandan Ramakrishnan and Alex Andonian and Barry A McNamara and Alex Lascelles, Bowen Pan, Quanfu Fan, Dan Gutfreund, Rogerio Feris, Aude Oliva}, + year={2019}, + eprint={1911.00232}, + archivePrefix={arXiv}, + primaryClass={cs.CV} +} +``` + +For basic dataset information, you can refer to the dataset [website](http://moments.csail.mit.edu). +Before we start, please make sure that the directory is located at `$MMACTION2/tools/data/mmit/`. + +## Step 1. Prepare Annotations and Videos + +First of all, you have to visit the official [website](http://moments.csail.mit.edu/), fill in an application form for downloading the dataset. Then you will get the download link. You can use `bash preprocess_data.sh` to prepare annotations and videos. However, the download command is missing in that script. Remember to download the dataset to the proper place follow the comment in this script. + +For better decoding speed, you can resize the original videos into smaller sized, densely encoded version by: + +``` +python ../resize_videos.py ../../../data/mmit/videos/ ../../../data/mmit/videos_256p_dense_cache --dense --level 2 +``` + +## Step 2. Extract RGB and Flow + +This part is **optional** if you only want to use the video loader. + +Before extracting, please refer to [install.md](/docs/install.md) for installing [denseflow](https://github.com/open-mmlab/denseflow). + +First, you can run the following script to soft link SSD. + +```shell +# execute these two line (Assume the SSD is mounted at "/mnt/SSD/") +mkdir /mnt/SSD/mmit_extracted/ +ln -s /mnt/SSD/mmit_extracted/ ../../../data/mmit/rawframes +``` + +If you only want to play with RGB frames (since extracting optical flow can be time-consuming), consider running the following script to extract **RGB-only** frames using denseflow. + +```shell +bash extract_rgb_frames.sh +``` + +If you didn't install denseflow, you can still extract RGB frames using OpenCV by the following script, but it will keep the original size of the images. + +```shell +bash extract_rgb_frames_opencv.sh +``` + +If both are required, run the following script to extract frames using "tvl1" algorithm. + +```shell +bash extract_frames.sh +``` + +## Step 3. Generate File List + +you can run the follow script to generate file list in the format of rawframes or videos. + +```shell +bash generate_rawframes_filelist.sh +bash generate_videos_filelist.sh +``` + +## Step 4. Check Directory Structure + +After the whole data process for Multi-Moments in Time preparation, +you will get the rawframes (RGB + Flow), videos and annotation files for Multi-Moments in Time. + +In the context of the whole project (for Multi-Moments in Time only), the folder structure will look like: + +``` +mmaction2/ +└── data + └── mmit + ├── annotations + │   ├── moments_categories.txt + │   ├── trainingSet.txt + │   └── validationSet.txt + ├── mmit_train_rawframes.txt + ├── mmit_train_videos.txt + ├── mmit_val_rawframes.txt + ├── mmit_val_videos.txt + ├── rawframes + │   ├── 0-3-6-2-9-1-2-6-14603629126_5 + │   │   ├── flow_x_00001.jpg + │   │   ├── flow_x_00002.jpg + │   │   ├── ... + │   │   ├── flow_y_00001.jpg + │   │   ├── flow_y_00002.jpg + │   │   ├── ... + │   │   ├── img_00001.jpg + │   │   └── img_00002.jpg + │   │   ├── ... + │   └── yt-zxQfALnTdfc_56 + │   │   ├── ... + │   └── ... + + └── videos + └── adult+female+singing + ├── 0-3-6-2-9-1-2-6-14603629126_5.mp4 + └── yt-zxQfALnTdfc_56.mp4 + └── ... +``` + +For training and evaluating on Multi-Moments in Time, please refer to [getting_started.md](/docs/getting_started.md). diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/README_zh-CN.md new file mode 100644 index 00000000..e070505e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/README_zh-CN.md @@ -0,0 +1,115 @@ +# 准备 Multi-Moments in Time + +## 简介 + + + +```BibTeX +@misc{monfort2019multimoments, + title={Multi-Moments in Time: Learning and Interpreting Models for Multi-Action Video Understanding}, + author={Mathew Monfort and Kandan Ramakrishnan and Alex Andonian and Barry A McNamara and Alex Lascelles, Bowen Pan, Quanfu Fan, Dan Gutfreund, Rogerio Feris, Aude Oliva}, + year={2019}, + eprint={1911.00232}, + archivePrefix={arXiv}, + primaryClass={cs.CV} +} +``` + +用户可以参照数据集 [官网](http://moments.csail.mit.edu/),获取数据集相关的基本信息。 +在准备数据集前,请确保命令行当前路径为 `$MMACTION2/tools/data/mmit/`。 + +## 步骤 1. Prepare Annotations and Videos + +首先,用户需要访问[官网](http://moments.csail.mit.edu/),填写申请表来下载数据集。 +在得到下载链接后,用户可以使用 `bash preprocess_data.sh` 来准备标注文件和视频。 +请注意此脚本并没有下载标注和视频文件,用户需要根据脚本文件中的注释,提前下载好数据集,并放/软链接到合适的位置。 + +为加快视频解码速度,用户需要缩小原视频的尺寸,可使用以下命令获取密集编码版视频: + +``` +python ../resize_videos.py ../../../data/mmit/videos/ ../../../data/mmit/videos_256p_dense_cache --dense --level 2 +``` + +## Step 2. 抽取帧和光流 + +如果用户只想使用视频加载训练,则该部分是 **可选项**。 + +在抽取视频帧和光流之前,请参考 [安装指南](/docs_zh_CN/install.md) 安装 [denseflow](https://github.com/open-mmlab/denseflow)。 + +如果用户有大量的 SSD 存储空间,则推荐将抽取的帧存储至 I/O 性能更优秀的 SSD 上。 +用户可使用以下命令为 SSD 建立软链接。 + +```shell +# 执行这两行指令进行抽取(假设 SSD 挂载在 "/mnt/SSD/"上) +mkdir /mnt/SSD/mmit_extracted/ +ln -s /mnt/SSD/mmit_extracted/ ../../../data/mmit/rawframes +``` + +如果用户需要抽取 RGB 帧(因为抽取光流的过程十分耗时),可以考虑运行以下命令使用 denseflow **只抽取 RGB 帧**。 + +```shell +bash extract_rgb_frames.sh +``` + +如果用户没有安装 denseflow,则可以运行以下命令使用 OpenCV 抽取 RGB 帧。然而,该方法只能抽取与原始视频分辨率相同的帧。 + +```shell +bash extract_rgb_frames_opencv.sh +``` + +如果用户想抽取 RGB 帧和光流,则可以运行以下脚本进行抽取。 + +```shell +bash extract_frames.sh +``` + +## 步骤 3. 生成文件列表 + +用户可以通过运行以下命令生成帧和视频格式的文件列表。 + +```shell +bash generate_rawframes_filelist.sh +bash generate_videos_filelist.sh +``` + +## 步骤 4. 检查目录结构 + +在完成 Multi-Moments in Time 数据集准备流程后,用户可以得到 Multi-Moments in Time 的 RGB 帧 + 光流文件,视频文件以及标注文件。 + +在整个 MMAction2 文件夹下,Multi-Moments in Time 的文件结构如下: + +``` +mmaction2/ +└── data + └── mmit + ├── annotations + │   ├── moments_categories.txt + │   ├── trainingSet.txt + │   └── validationSet.txt + ├── mmit_train_rawframes.txt + ├── mmit_train_videos.txt + ├── mmit_val_rawframes.txt + ├── mmit_val_videos.txt + ├── rawframes + │   ├── 0-3-6-2-9-1-2-6-14603629126_5 + │   │   ├── flow_x_00001.jpg + │   │   ├── flow_x_00002.jpg + │   │   ├── ... + │   │   ├── flow_y_00001.jpg + │   │   ├── flow_y_00002.jpg + │   │   ├── ... + │   │   ├── img_00001.jpg + │   │   └── img_00002.jpg + │   │   ├── ... + │   └── yt-zxQfALnTdfc_56 + │   │   ├── ... + │   └── ... + + └── videos + └── adult+female+singing + ├── 0-3-6-2-9-1-2-6-14603629126_5.mp4 + └── yt-zxQfALnTdfc_56.mp4 + └── ... +``` + +关于对 Multi-Moments in Time 进行训练和验证,可以参照 [基础教程](/docs_zh_CN/getting_started.md)。 diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/extract_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/extract_frames.sh new file mode 100644 index 00000000..548f8625 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/extract_frames.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/mmit/videos/ ../../../data/mmit/rawframes/ --task both --level 2 --flow-type tvl1 --ext mp4 +echo "Raw frames (RGB and Flow) Generated" +cd mmit/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/extract_rgb_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/extract_rgb_frames.sh new file mode 100644 index 00000000..869b7093 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/extract_rgb_frames.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/mmit/videos/ ../../data/mmit/rawframes/ --task rgb --level 2 --ext mp4 + +echo "Genearte raw frames (RGB only)" + +cd mmit/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/extract_rgb_frames_opencv.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/extract_rgb_frames_opencv.sh new file mode 100644 index 00000000..5d09f05a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/extract_rgb_frames_opencv.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/mmit/videos/ ../../data/mmit/rawframes/ --task rgb --level 2 --ext mp4 --use-opencv + +echo "Genearte raw frames (RGB only)" + +cd mmit/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/generate_rawframes_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/generate_rawframes_filelist.sh new file mode 100644 index 00000000..2e745c3d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/generate_rawframes_filelist.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +cd ../../../ +PYTHONPATH=. python tools/data/build_file_list.py mmit data/mmit/rawframes/ --level 2 --format rawframes --num-split 1 --subset train --shuffle +echo "Train filelist for rawframes generated." + +PYTHONPATH=. python tools/data/build_file_list.py mmit data/mmit/rawframes/ --level 2 --format rawframes --num-split 1 --subset val --shuffle +echo "Val filelist for rawframes generated." +cd tools/data/mmit/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/generate_videos_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/generate_videos_filelist.sh new file mode 100644 index 00000000..1fa1f3f0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/generate_videos_filelist.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +cd ../../../ +PYTHONPATH=. python tools/data/build_file_list.py mmit data/mmit/videos/ --level 2 --format videos --num-split 1 --subset train --shuffle +echo "Train filelist for videos generated." + +PYTHONPATH=. python tools/data/build_file_list.py mmit data/mmit/videos/ --level 2 --format videos --num-split 1 --subset val --shuffle +echo "Val filelist for videos generated." +cd tools/data/mmit/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/label_map.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/label_map.txt new file mode 100644 index 00000000..ae89927a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/label_map.txt @@ -0,0 +1,313 @@ +crafting +paddling +raining +weightlifting +clawing +hitchhiking +autographing +cooking +gripping +swerving +frowning +giving +tattooing +dipping +leaking +plunging +barking +stroking/petting +piloting +camping +towing +loading +parading +submerging +squeezing +sculpting +stomping +punting +kissing +smoking +pouring +texting +adult+male+speaking +adult+female+speaking +crying +unpacking +pointing +boating +landing +ironing +crouching +slapping +typing +ice+skating +boiling +chopping +bowling +fighting/attacking +tapping +applauding +driving +sprinting +slicing +approaching +waving +dusting +wrapping +knocking +snapping +gardening +combing +tickling +carving +smashing +smiling/grinning +dressing +pressing +lecturing +telephoning +exercising +riding +draining +flying +wrestling +boxing +rinsing +overflowing +inflating +picking +sowing +shaving +baking +shaking +running +throwing +stacking/piling +buttoning +leaping +fueling +pitching +child+speaking +breaking/destroying +lifting +filming/photographing +singing +reading +chewing +operating +bubbling +waxing +cleaning/washing +scooping +erasing +steering +playing+videogames +crashing +constructing/assembling +flooding +drinking +praying +shouting +winking +dining +repairing +tying +juggling +rolling +studying +marching +socializing +ascending/rising +arresting +cracking +laying +clinging +frying +vacuuming +combusting/burning +filling +standing +howling +dunking +spraying +bandaging +shivering +slipping +racing +roaring +planting +yawning +grilling +squinting +skiing +taping +trimming +preaching +resting +descending/lowering +clearing +screwing +chasing +speaking +manicuring +tripping +performing +teaching/instructing +blowing +painting +sneezing +packaging +punching +clapping +rotating/spinning +skating +cheerleading +balancing +child+singing +covering +snuggling/cuddling/hugging +bulldozing +jumping +sliding +barbecuing +weeding +swimming +shooting +dialing +measuring +pulling +celebrating +playing+fun +knitting +spreading +erupting +snowboarding +swinging +protesting +sitting +inserting +bouncing +surfing +extinguishing +unloading +aiming +bathing +hammering +fishing +opening +biting +packing +saluting +rafting +laughing +bicycling +rocking +storming +wetting +shrugging +handwriting +gambling +writing +skipping +dragging +unplugging +kicking +sawing +grooming +whistling +floating +diving +rubbing +bending +shoveling/digging +peeling +catching +closing +eating/feeding +falling +discussing +sweeping +massaging +locking +dancing +mowing +clipping +hanging +burying +reaching +kayaking +snowing +sleeping +climbing +flipping +tearing/ripping +folding +signing +cutting +stretching +stirring +licking +kneeling +sewing +dripping +queuing +pushing +pedaling +flossing +buying/selling/shopping +smelling/sniffing +emptying +sanding +smacking +carrying +adult+male+singing +poking +brushing +adult+female+singing +scratching +welding +crawling +skateboarding +turning +dropping +hunting +cheering +drawing +sprinkling +spitting +competing +bowing +hiking +drying +launching +twisting +crushing +hitting/colliding +shredding +plugging +gasping +rowing +calling +drumming +walking +removing +waking +stitching +coughing +playing+music +playing+sports +interviewing +scrubbing +splashing +officiating +mopping +flowing +sailing +drilling +squatting +handcuffing +spilling +marrying +injecting +jogging diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/preprocess_data.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/preprocess_data.sh new file mode 100644 index 00000000..5fbf25a4 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/mmit/preprocess_data.sh @@ -0,0 +1,20 @@ +DATA_DIR="../../../data/mmit/" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +cd ${DATA_DIR} + +# Download the Multi_Moments_in_Time_Raw.zip here manually +unzip Multi_Moments_in_Time_Raw.zip +rm Multi_Moments_in_Time.zip + +if [ ! -d "./annotations" ]; then + mkdir ./annotations +fi + +mv *.txt annotations && mv *.csv annotations + +cd - diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/omnisource/README.md b/openmmlab_test/mmaction2-0.24.1/tools/data/omnisource/README.md new file mode 100644 index 00000000..ef3ea7e4 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/omnisource/README.md @@ -0,0 +1,150 @@ +# Preparing OmniSource + +## Introduction + + + +```BibTeX +@article{duan2020omni, + title={Omni-sourced Webly-supervised Learning for Video Recognition}, + author={Duan, Haodong and Zhao, Yue and Xiong, Yuanjun and Liu, Wentao and Lin, Dahua}, + journal={arXiv preprint arXiv:2003.13042}, + year={2020} +} +``` + +We release a subset of the OmniSource web dataset used in the paper [Omni-sourced Webly-supervised Learning for Video Recognition](https://arxiv.org/abs/2003.13042). Since all web dataset in OmniSource are built based on the Kinetics-400 taxonomy, we select those web data related to the 200 classes in Mini-Kinetics subset (which is proposed in [Rethinking Spatiotemporal Feature Learning: Speed-Accuracy Trade-offs in Video Classification](https://arxiv.org/pdf/1712.04851.pdf)). + +We provide data from all sources that are related to the 200 classes in Mini-Kinetics (including Kinetics trimmed clips, Kinetics untrimmed videos, images from Google and Instagram, video clips from Instagram). To obtain this dataset, please first fill in the [request form](https://docs.google.com/forms/d/e/1FAIpQLSd8_GlmHzG8FcDbW-OEu__G7qLgOSYZpH-i5vYVJcu7wcb_TQ/viewform?usp=sf_link). We will share the download link to you after your request is received. Since we release all data crawled from the web without any filtering, the dataset is large and it may take some time to download them. We describe the size of the datasets in the following table: + +| Dataset Name | #samples | Size | Teacher Model | #samples after filtering | #samples similar to k200_val | +| :-------------: | :------: | :-----: | :--------------: | :----------------------: | :--------------------------: | +| k200_train | 76030 | 45.6G | N/A | N/A | N/A | +| k200_val | 4838 | 2.9G | N/A | N/A | N/A | +| googleimage_200 | 3050880 | 265.5G | TSN-R50-8seg | 1188695 | 967 | +| insimage_200 | 3654650 | 224.4G | TSN-R50-8seg | 879726 | 116 | +| insvideo_200 | 732855 | 1487.6G | SlowOnly-8x8-R50 | 330680 | 956 | +| k200_raw_train | 76027 | 963.5G | SlowOnly-8x8-R50 | N/A | N/A | + +The file structure of our uploaded OmniSource dataset looks like: + +``` +OmniSource/ +├── annotations +│ ├── googleimage_200 +│ │ ├── googleimage_200.txt File list of all valid images crawled from Google. +│ │ ├── tsn_8seg_googleimage_200_duplicate.txt Positive file list of images crawled from Google, which is similar to a validation example. +│ │ ├── tsn_8seg_googleimage_200.txt Positive file list of images crawled from Google, filtered by the teacher model. +│ │ └── tsn_8seg_googleimage_200_wodup.txt Positive file list of images crawled from Google, filtered by the teacher model, after de-duplication. +│ ├── insimage_200 +│ │ ├── insimage_200.txt +│ │ ├── tsn_8seg_insimage_200_duplicate.txt +│ │ ├── tsn_8seg_insimage_200.txt +│ │ └── tsn_8seg_insimage_200_wodup.txt +│ ├── insvideo_200 +│ │ ├── insvideo_200.txt +│ │ ├── slowonly_8x8_insvideo_200_duplicate.txt +│ │ ├── slowonly_8x8_insvideo_200.txt +│ │ └── slowonly_8x8_insvideo_200_wodup.txt +│ ├── k200_actions.txt The list of action names of the 200 classes in MiniKinetics. +│ ├── K400_to_MiniKinetics_classidx_mapping.json The index mapping from Kinetics-400 to MiniKinetics. +│ ├── kinetics_200 +│ │ ├── k200_train.txt +│ │ └── k200_val.txt +│ ├── kinetics_raw_200 +│ │ └── slowonly_8x8_kinetics_raw_200.json Kinetics Raw Clips filtered by the teacher model. +│ └── webimage_200 +│ └── tsn_8seg_webimage_200_wodup.txt The union of `tsn_8seg_googleimage_200_wodup.txt` and `tsn_8seg_insimage_200_wodup.txt` +├── googleimage_200 (10 volumes) +│ ├── vol_0.tar +│ ├── ... +│ └── vol_9.tar +├── insimage_200 (10 volumes) +│ ├── vol_0.tar +│ ├── ... +│ └── vol_9.tar +├── insvideo_200 (20 volumes) +│ ├── vol_00.tar +│ ├── ... +│ └── vol_19.tar +├── kinetics_200_train +│ └── kinetics_200_train.tar +├── kinetics_200_val +│ └── kinetics_200_val.tar +└── kinetics_raw_200_train (16 volumes) + ├── vol_0.tar + ├── ... + └── vol_15.tar +``` + +## Data Preparation + +For data preparation, you need to first download those data. For `kinetics_200` and 3 web datasets: `googleimage_200`, `insimage_200` and `insvideo_200`, you just need to extract each volume and merge their contents. + +For Kinetics raw videos, since loading long videos is very heavy, you need to first trim it into clips. Here we provide a script named `trim_raw_video.py`. It trims a long video into 10-second clips and remove the original raw video. You can use it to trim the Kinetics raw video. + +The data should be placed in `data/OmniSource/`. When data preparation finished, the folder structure of `data/OmniSource` looks like (We omit the files not needed in training & testing for simplicity): + +``` +data/OmniSource/ +├── annotations +│ ├── googleimage_200 +│ │ └── tsn_8seg_googleimage_200_wodup.txt Positive file list of images crawled from Google, filtered by the teacher model, after de-duplication. +│ ├── insimage_200 +│ │ └── tsn_8seg_insimage_200_wodup.txt +│ ├── insvideo_200 +│ │ └── slowonly_8x8_insvideo_200_wodup.txt +│ ├── kinetics_200 +│ │ ├── k200_train.txt +│ │ └── k200_val.txt +│ ├── kinetics_raw_200 +│ │ └── slowonly_8x8_kinetics_raw_200.json Kinetics Raw Clips filtered by the teacher model. +│ └── webimage_200 +│ └── tsn_8seg_webimage_200_wodup.txt The union of `tsn_8seg_googleimage_200_wodup.txt` and `tsn_8seg_insimage_200_wodup.txt` +├── googleimage_200 +│ ├── 000 +| │ ├── 00 +| │ │ ├── 000001.jpg +| │ │ ├── ... +| │ │ └── 000901.jpg +| │ ├── ... +| │ ├── 19 +│ ├── ... +│ └── 199 +├── insimage_200 +│ ├── 000 +| │ ├── abseil +| │ │ ├── 1J9tKWCNgV_0.jpg +| │ │ ├── ... +| │ │ └── 1J9tKWCNgV_0.jpg +| │ ├── abseiling +│ ├── ... +│ └── 199 +├── insvideo_200 +│ ├── 000 +| │ ├── abseil +| │ │ ├── B00arxogubl.mp4 +| │ │ ├── ... +| │ │ └── BzYsP0HIvbt.mp4 +| │ ├── abseiling +│ ├── ... +│ └── 199 +├── kinetics_200_train +│ ├── 0074cdXclLU.mp4 +| ├── ... +| ├── zzzlyL61Fyo.mp4 +├── kinetics_200_val +│ ├── 01fAWEHzudA.mp4 +| ├── ... +| ├── zymA_6jZIz4.mp4 +└── kinetics_raw_200_train +│ ├── pref_ +│ | ├── ___dTOdxzXY +| │ │ ├── part_0.mp4 +| │ │ ├── ... +| │ │ ├── part_6.mp4 +│ | ├── ... +│ | └── _zygwGDE2EM +│ ├── ... +│ └── prefZ +``` diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/omnisource/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/omnisource/README_zh-CN.md new file mode 100644 index 00000000..90aea5f4 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/omnisource/README_zh-CN.md @@ -0,0 +1,149 @@ +# 准备 OmniSource + +## 简介 + + + +```BibTeX +@article{duan2020omni, + title={Omni-sourced Webly-supervised Learning for Video Recognition}, + author={Duan, Haodong and Zhao, Yue and Xiong, Yuanjun and Liu, Wentao and Lin, Dahua}, + journal={arXiv preprint arXiv:2003.13042}, + year={2020} +} +``` + +MMAction2 中发布了 OmniSource 网络数据集的一个子集 (来自论文 [Omni-sourced Webly-supervised Learning for Video Recognition](https://arxiv.org/abs/2003.13042))。 +OmniSource 数据集中所有类别均来自 Kinetics-400。MMAction2 所提供的子集包含属于 Mini-Kinetics 数据集 200 类动作的网络数据 (Mini-inetics 数据集由论文 [Rethinking Spatiotemporal Feature Learning: Speed-Accuracy Trade-offs in Video Classification](https://arxiv.org/pdf/1712.04851.pdf) 提出)。 + +MMAction2 提供所有数据源中属于 Mini-Kinetics 200 类动作的数据,这些数据源包含:Kinetics 数据集,Kinetics 原始数据集(未经裁剪的长视频),来自 Google 和 Instagram 的网络图片,来自 Instagram 的网络视频。为获取这一数据集,用户需先填写 [数据申请表](https://docs.google.com/forms/d/e/1FAIpQLSd8_GlmHzG8FcDbW-OEu__G7qLgOSYZpH-i5vYVJcu7wcb_TQ/viewform?usp=sf_link)。在接收到申请后,下载链接将被发送至用户邮箱。由于发布的数据集均为爬取所得的原始数据,数据集较大,下载需要一定时间。下表中提供了 OmniSource 数据集各个分量的统计信息。 + +| 数据集名称 | 样本个数 | 所占空间 | 过滤使用的 Teacher 模型 | 过滤后的样本个数 | 与 k200_val 中样本相似(疑似重复)的样本个数 | +| :-------------: | :------: | :------: | :---------------------: | :--------------: | :------------------------------------------: | +| k200_train | 76030 | 45.6G | N/A | N/A | N/A | +| k200_val | 4838 | 2.9G | N/A | N/A | N/A | +| googleimage_200 | 3050880 | 265.5G | TSN-R50-8seg | 1188695 | 967 | +| insimage_200 | 3654650 | 224.4G | TSN-R50-8seg | 879726 | 116 | +| insvideo_200 | 732855 | 1487.6G | SlowOnly-8x8-R50 | 330680 | 956 | +| k200_raw_train | 76027 | 963.5G | SlowOnly-8x8-R50 | N/A | N/A | + +MMAction2 所发布的 OmniSource 数据集目录结构如下所示: + +``` +OmniSource/ +├── annotations +│ ├── googleimage_200 +│ │ ├── googleimage_200.txt 从 Google 爬取到的所有图片列表 +│ │ ├── tsn_8seg_googleimage_200_duplicate.txt 从 Google 爬取到的,疑似与 k200-val 中样本重复的正样本列表 +│ │ ├── tsn_8seg_googleimage_200.txt 从 Google 爬取到的,经过 teacher 模型过滤的正样本列表 +│ │ └── tsn_8seg_googleimage_200_wodup.txt 从 Google 爬取到的,经过 teacher 模型过滤及去重的正样本列表 +│ ├── insimage_200 +│ │ ├── insimage_200.txt +│ │ ├── tsn_8seg_insimage_200_duplicate.txt +│ │ ├── tsn_8seg_insimage_200.txt +│ │ └── tsn_8seg_insimage_200_wodup.txt +│ ├── insvideo_200 +│ │ ├── insvideo_200.txt +│ │ ├── slowonly_8x8_insvideo_200_duplicate.txt +│ │ ├── slowonly_8x8_insvideo_200.txt +│ │ └── slowonly_8x8_insvideo_200_wodup.txt +│ ├── k200_actions.txt MiniKinetics 中 200 类动作的名称 +│ ├── K400_to_MiniKinetics_classidx_mapping.json Kinetics 中的类索引至 MiniKinetics 中的类索引的映射 +│ ├── kinetics_200 +│ │ ├── k200_train.txt +│ │ └── k200_val.txt +│ └── kinetics_raw_200 +│ └── slowonly_8x8_kinetics_raw_200.json 经 teacher 模型过滤后的 Kinetics 原始视频片段 +├── googleimage_200 共 10 卷 +│ ├── vol_0.tar +│ ├── ... +│ └── vol_9.tar +├── insimage_200 共 10 卷 +│ ├── vol_0.tar +│ ├── ... +│ └── vol_9.tar +├── insvideo_200 共 20 卷 +│ ├── vol_00.tar +│ ├── ... +│ └── vol_19.tar +├── kinetics_200_train +│ └── kinetics_200_train.tar +├── kinetics_200_val +│ └── kinetics_200_val.tar +└── kinetics_raw_200_train 共 16 卷 + ├── vol_0.tar + ├── ... + └── vol_15.tar +``` + +## 数据准备 + +用户需要首先完成数据下载,对于 `kinetics_200` 和三个网络数据集 `googleimage_200`, `insimage_200`, `insvideo_200`,用户仅需解压各压缩卷并将其合并至一处。 + +对于 Kinetics 原始视频,由于直接读取长视频非常耗时,用户需要先将其分割为小段。MMAction2 提供了名为 `trim_raw_video.py` 的脚本,用于将长视频分割至 10 秒的小段(分割完成后删除长视频)。用户可利用这一脚本分割长视频。 + +所有数据应位于 `data/OmniSource/` 目录下。完成数据准备后,`data/OmniSource/` 目录的结构应如下所示(为简洁,省去了训练及测试时未使用的文件): + +``` +data/OmniSource/ +├── annotations +│ ├── googleimage_200 +│ │ └── tsn_8seg_googleimage_200_wodup.txt Positive file list of images crawled from Google, filtered by the teacher model, after de-duplication. +│ ├── insimage_200 +│ │ └── tsn_8seg_insimage_200_wodup.txt +│ ├── insvideo_200 +│ │ └── slowonly_8x8_insvideo_200_wodup.txt +│ ├── kinetics_200 +│ │ ├── k200_train.txt +│ │ └── k200_val.txt +│ ├── kinetics_raw_200 +│ │ └── slowonly_8x8_kinetics_raw_200.json Kinetics Raw Clips filtered by the teacher model. +│ └── webimage_200 +│ └── tsn_8seg_webimage_200_wodup.txt The union of `tsn_8seg_googleimage_200_wodup.txt` and `tsn_8seg_insimage_200_wodup.txt` +├── googleimage_200 +│ ├── 000 +| │ ├── 00 +| │ │ ├── 000001.jpg +| │ │ ├── ... +| │ │ └── 000901.jpg +| │ ├── ... +| │ ├── 19 +│ ├── ... +│ └── 199 +├── insimage_200 +│ ├── 000 +| │ ├── abseil +| │ │ ├── 1J9tKWCNgV_0.jpg +| │ │ ├── ... +| │ │ └── 1J9tKWCNgV_0.jpg +| │ ├── abseiling +│ ├── ... +│ └── 199 +├── insvideo_200 +│ ├── 000 +| │ ├── abseil +| │ │ ├── B00arxogubl.mp4 +| │ │ ├── ... +| │ │ └── BzYsP0HIvbt.mp4 +| │ ├── abseiling +│ ├── ... +│ └── 199 +├── kinetics_200_train +│ ├── 0074cdXclLU.mp4 +| ├── ... +| ├── zzzlyL61Fyo.mp4 +├── kinetics_200_val +│ ├── 01fAWEHzudA.mp4 +| ├── ... +| ├── zymA_6jZIz4.mp4 +└── kinetics_raw_200_train +│ ├── pref_ +│ | ├── ___dTOdxzXY +| │ │ ├── part_0.mp4 +| │ │ ├── ... +| │ │ ├── part_6.mp4 +│ | ├── ... +│ | └── _zygwGDE2EM +│ ├── ... +│ └── prefZ +``` diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/omnisource/trim_raw_video.py b/openmmlab_test/mmaction2-0.24.1/tools/data/omnisource/trim_raw_video.py new file mode 100644 index 00000000..81aef771 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/omnisource/trim_raw_video.py @@ -0,0 +1,45 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os +import os.path as osp +import sys +from subprocess import check_output + +import mmcv + + +def get_duration(vid_name): + command = f'ffprobe -i {vid_name} 2>&1 | grep "Duration"' + output = str(check_output(command, shell=True)) + output = output.split(',')[0].split('Duration:')[1].strip() + h, m, s = output.split(':') + duration = int(h) * 3600 + int(m) * 60 + float(s) + return duration + + +def trim(vid_name): + try: + lt = get_duration(vid_name) + except Exception: + print(f'get_duration failed for video {vid_name}', flush=True) + return + + i = 0 + name, _ = osp.splitext(vid_name) + + # We output 10-second clips into the folder `name` + dest = name + mmcv.mkdir_or_exist(dest) + + command_tmpl = ('ffmpeg -y loglevel error -i {} -ss {} -t {} -crf 18 ' + '-c:v libx264 {}/part_{}.mp4') + while i * 10 < lt: + os.system(command_tmpl.format(vid_name, i * 10, 10, dest, i)) + i += 1 + + # remove a raw video after decomposing it into 10-second clip to save space + os.remove(vid_name) + + +if __name__ == '__main__': + vid_name = sys.argv[1] + trim(vid_name) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/parse_file_list.py b/openmmlab_test/mmaction2-0.24.1/tools/data/parse_file_list.py new file mode 100644 index 00000000..a87073ef --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/parse_file_list.py @@ -0,0 +1,535 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import csv +import fnmatch +import glob +import json +import os +import os.path as osp + + +def parse_directory(path, + rgb_prefix='img_', + flow_x_prefix='flow_x_', + flow_y_prefix='flow_y_', + level=1): + """Parse directories holding extracted frames from standard benchmarks. + + Args: + path (str): Directory path to parse frames. + rgb_prefix (str): Prefix of generated rgb frames name. + default: 'img_'. + flow_x_prefix (str): Prefix of generated flow x name. + default: `flow_x_`. + flow_y_prefix (str): Prefix of generated flow y name. + default: `flow_y_`. + level (int): Directory level for glob searching. Options are 1 and 2. + default: 1. + + Returns: + dict: frame info dict with video id as key and tuple(path(str), + rgb_num(int), flow_x_num(int)) as value. + """ + print(f'parse frames under directory {path}') + if level == 1: + # Only search for one-level directory + def locate_directory(x): + return osp.basename(x) + + frame_dirs = glob.glob(osp.join(path, '*')) + + elif level == 2: + # search for two-level directory + def locate_directory(x): + return osp.join(osp.basename(osp.dirname(x)), osp.basename(x)) + + frame_dirs = glob.glob(osp.join(path, '*', '*')) + + else: + raise ValueError('level can be only 1 or 2') + + def count_files(directory, prefix_list): + """Count file number with a given directory and prefix. + + Args: + directory (str): Data directory to be search. + prefix_list (list): List or prefix. + + Returns: + list (int): Number list of the file with the prefix. + """ + lst = os.listdir(directory) + cnt_list = [len(fnmatch.filter(lst, x + '*')) for x in prefix_list] + return cnt_list + + # check RGB + frame_dict = {} + for i, frame_dir in enumerate(frame_dirs): + total_num = count_files(frame_dir, + (rgb_prefix, flow_x_prefix, flow_y_prefix)) + dir_name = locate_directory(frame_dir) + + num_x = total_num[1] + num_y = total_num[2] + if num_x != num_y: + raise ValueError(f'x and y direction have different number ' + f'of flow images in video directory: {frame_dir}') + if i % 200 == 0: + print(f'{i} videos parsed') + frame_dict[dir_name] = (frame_dir, total_num[0], num_x) + + print('frame directory analysis done') + return frame_dict + + +def parse_ucf101_splits(level): + """Parse UCF-101 dataset into "train", "val", "test" splits. + + Args: + level (int): Directory level of data. 1 for the single-level directory, + 2 for the two-level directory. + + Returns: + list: "train", "val", "test" splits of UCF-101. + """ + class_index_file = 'data/ucf101/annotations/classInd.txt' + train_file_template = 'data/ucf101/annotations/trainlist{:02d}.txt' + test_file_template = 'data/ucf101/annotations/testlist{:02d}.txt' + + with open(class_index_file, 'r') as fin: + class_index = [x.strip().split() for x in fin] + class_mapping = {x[1]: int(x[0]) - 1 for x in class_index} + + def line_to_map(line): + """A function to map line string to video and label. + + Args: + line (str): A long directory path, which is a text path. + + Returns: + tuple[str, str]: (video, label), video is the video id, + label is the video label. + """ + items = line.strip().split() + video = osp.splitext(items[0])[0] + if level == 1: + video = osp.basename(video) + label = items[0] + elif level == 2: + video = osp.join( + osp.basename(osp.dirname(video)), osp.basename(video)) + label = class_mapping[osp.dirname(items[0])] + return video, label + + splits = [] + for i in range(1, 4): + with open(train_file_template.format(i), 'r') as fin: + train_list = [line_to_map(x) for x in fin] + + with open(test_file_template.format(i), 'r') as fin: + test_list = [line_to_map(x) for x in fin] + splits.append((train_list, test_list)) + + return splits + + +def parse_jester_splits(level): + """Parse Jester into "train", "val" splits. + + Args: + level (int): Directory level of data. 1 for the single-level directory, + 2 for the two-level directory. + + Returns: + list: "train", "val", "test" splits of Jester dataset. + """ + # Read the annotations + class_index_file = 'data/jester/annotations/jester-v1-labels.csv' + train_file = 'data/jester/annotations/jester-v1-train.csv' + val_file = 'data/jester/annotations/jester-v1-validation.csv' + test_file = 'data/jester/annotations/jester-v1-test.csv' + + with open(class_index_file, 'r') as fin: + class_index = [x.strip() for x in fin] + class_mapping = {class_index[idx]: idx for idx in range(len(class_index))} + + def line_to_map(line, test_mode=False): + items = line.strip().split(';') + video = items[0] + if level == 1: + video = osp.basename(video) + elif level == 2: + video = osp.join( + osp.basename(osp.dirname(video)), osp.basename(video)) + if test_mode: + return video + + label = class_mapping[items[1]] + return video, label + + with open(train_file, 'r') as fin: + train_list = [line_to_map(x) for x in fin] + + with open(val_file, 'r') as fin: + val_list = [line_to_map(x) for x in fin] + + with open(test_file, 'r') as fin: + test_list = [line_to_map(x, test_mode=True) for x in fin] + + splits = ((train_list, val_list, test_list), ) + return splits + + +def parse_sthv1_splits(level): + """Parse Something-Something dataset V1 into "train", "val" splits. + + Args: + level (int): Directory level of data. 1 for the single-level directory, + 2 for the two-level directory. + + Returns: + list: "train", "val", "test" splits of Something-Something V1 dataset. + """ + # Read the annotations + # yapf: disable + class_index_file = 'data/sthv1/annotations/something-something-v1-labels.csv' # noqa + # yapf: enable + train_file = 'data/sthv1/annotations/something-something-v1-train.csv' + val_file = 'data/sthv1/annotations/something-something-v1-validation.csv' + test_file = 'data/sthv1/annotations/something-something-v1-test.csv' + + with open(class_index_file, 'r') as fin: + class_index = [x.strip() for x in fin] + class_mapping = {class_index[idx]: idx for idx in range(len(class_index))} + + def line_to_map(line, test_mode=False): + items = line.strip().split(';') + video = items[0] + if level == 1: + video = osp.basename(video) + elif level == 2: + video = osp.join( + osp.basename(osp.dirname(video)), osp.basename(video)) + if test_mode: + return video + + label = class_mapping[items[1]] + return video, label + + with open(train_file, 'r') as fin: + train_list = [line_to_map(x) for x in fin] + + with open(val_file, 'r') as fin: + val_list = [line_to_map(x) for x in fin] + + with open(test_file, 'r') as fin: + test_list = [line_to_map(x, test_mode=True) for x in fin] + + splits = ((train_list, val_list, test_list), ) + return splits + + +def parse_sthv2_splits(level): + """Parse Something-Something dataset V2 into "train", "val" splits. + + Args: + level (int): Directory level of data. 1 for the single-level directory, + 2 for the two-level directory. + + Returns: + list: "train", "val", "test" splits of Something-Something V2 dataset. + """ + # Read the annotations + # yapf: disable + class_index_file = 'data/sthv2/annotations/something-something-v2-labels.json' # noqa + # yapf: enable + train_file = 'data/sthv2/annotations/something-something-v2-train.json' + val_file = 'data/sthv2/annotations/something-something-v2-validation.json' + test_file = 'data/sthv2/annotations/something-something-v2-test.json' + + with open(class_index_file, 'r') as fin: + class_mapping = json.loads(fin.read()) + + def line_to_map(item, test_mode=False): + video = item['id'] + if level == 1: + video = osp.basename(video) + elif level == 2: + video = osp.join( + osp.basename(osp.dirname(video)), osp.basename(video)) + if test_mode: + return video + + template = item['template'].replace('[', '') + template = template.replace(']', '') + label = int(class_mapping[template]) + return video, label + + with open(train_file, 'r') as fin: + items = json.loads(fin.read()) + train_list = [line_to_map(item) for item in items] + + with open(val_file, 'r') as fin: + items = json.loads(fin.read()) + val_list = [line_to_map(item) for item in items] + + with open(test_file, 'r') as fin: + items = json.loads(fin.read()) + test_list = [line_to_map(item, test_mode=True) for item in items] + + splits = ((train_list, val_list, test_list), ) + return splits + + +def parse_mmit_splits(): + """Parse Multi-Moments in Time dataset into "train", "val" splits. + + Returns: + list: "train", "val", "test" splits of Multi-Moments in Time. + """ + + # Read the annotations + def line_to_map(x): + video = osp.splitext(x[0])[0] + labels = [int(digit) for digit in x[1:]] + return video, labels + + csv_reader = csv.reader(open('data/mmit/annotations/trainingSet.csv')) + train_list = [line_to_map(x) for x in csv_reader] + + csv_reader = csv.reader(open('data/mmit/annotations/validationSet.csv')) + val_list = [line_to_map(x) for x in csv_reader] + + test_list = val_list # not test for mit + + splits = ((train_list, val_list, test_list), ) + return splits + + +def parse_kinetics_splits(level, dataset): + """Parse Kinetics dataset into "train", "val", "test" splits. + + Args: + level (int): Directory level of data. 1 for the single-level directory, + 2 for the two-level directory. + dataset (str): Denotes the version of Kinetics that needs to be parsed, + choices are "kinetics400", "kinetics600" and "kinetics700". + + Returns: + list: "train", "val", "test" splits of Kinetics. + """ + + def convert_label(s, keep_whitespaces=False): + """Convert label name to a formal string. + + Remove redundant '"' and convert whitespace to '_'. + + Args: + s (str): String to be converted. + keep_whitespaces(bool): Whether to keep whitespace. Default: False. + + Returns: + str: Converted string. + """ + if not keep_whitespaces: + return s.replace('"', '').replace(' ', '_') + + return s.replace('"', '') + + def line_to_map(x, test=False): + """A function to map line string to video and label. + + Args: + x (str): A single line from Kinetics csv file. + test (bool): Indicate whether the line comes from test + annotation file. + + Returns: + tuple[str, str]: (video, label), video is the video id, + label is the video label. + """ + if test: + # video = f'{x[0]}_{int(x[1]):06d}_{int(x[2]):06d}' + video = f'{x[1]}_{int(float(x[2])):06d}_{int(float(x[3])):06d}' + label = -1 # label unknown + return video, label + + video = f'{x[1]}_{int(float(x[2])):06d}_{int(float(x[3])):06d}' + if level == 2: + video = f'{convert_label(x[0])}/{video}' + else: + assert level == 1 + label = class_mapping[convert_label(x[0])] + return video, label + + train_file = f'data/{dataset}/annotations/kinetics_train.csv' + val_file = f'data/{dataset}/annotations/kinetics_val.csv' + test_file = f'data/{dataset}/annotations/kinetics_test.csv' + + csv_reader = csv.reader(open(train_file)) + # skip the first line + next(csv_reader) + + labels_sorted = sorted({convert_label(row[0]) for row in csv_reader}) + class_mapping = {label: i for i, label in enumerate(labels_sorted)} + + csv_reader = csv.reader(open(train_file)) + next(csv_reader) + train_list = [line_to_map(x) for x in csv_reader] + + csv_reader = csv.reader(open(val_file)) + next(csv_reader) + val_list = [line_to_map(x) for x in csv_reader] + + csv_reader = csv.reader(open(test_file)) + next(csv_reader) + test_list = [line_to_map(x, test=True) for x in csv_reader] + + splits = ((train_list, val_list, test_list), ) + return splits + + +def parse_mit_splits(): + """Parse Moments in Time dataset into "train", "val" splits. + + Returns: + list: "train", "val", "test" splits of Moments in Time. + """ + # Read the annotations + class_mapping = {} + with open('data/mit/annotations/moments_categories.txt') as f_cat: + for line in f_cat.readlines(): + cat, digit = line.rstrip().split(',') + class_mapping[cat] = int(digit) + + def line_to_map(x): + video = osp.splitext(x[0])[0] + label = class_mapping[osp.dirname(x[0])] + return video, label + + csv_reader = csv.reader(open('data/mit/annotations/trainingSet.csv')) + train_list = [line_to_map(x) for x in csv_reader] + + csv_reader = csv.reader(open('data/mit/annotations/validationSet.csv')) + val_list = [line_to_map(x) for x in csv_reader] + + test_list = val_list # no test for mit + + splits = ((train_list, val_list, test_list), ) + return splits + + +def parse_hmdb51_split(level): + train_file_template = 'data/hmdb51/annotations/trainlist{:02d}.txt' + test_file_template = 'data/hmdb51/annotations/testlist{:02d}.txt' + class_index_file = 'data/hmdb51/annotations/classInd.txt' + + def generate_class_index_file(): + """This function will generate a `ClassInd.txt` for HMDB51 in a format + like UCF101, where class id starts with 1.""" + video_path = 'data/hmdb51/videos' + annotation_dir = 'data/hmdb51/annotations' + + class_list = sorted(os.listdir(video_path)) + class_dict = dict() + if not osp.exists(class_index_file): + with open(class_index_file, 'w') as f: + content = [] + for class_id, class_name in enumerate(class_list): + # like `ClassInd.txt` in UCF-101, + # the class_id begins with 1 + class_dict[class_name] = class_id + 1 + cur_line = ' '.join([str(class_id + 1), class_name]) + content.append(cur_line) + content = '\n'.join(content) + f.write(content) + else: + print(f'{class_index_file} has been generated before.') + class_dict = { + class_name: class_id + 1 + for class_id, class_name in enumerate(class_list) + } + + for i in range(1, 4): + train_content = [] + test_content = [] + for class_name in class_dict: + filename = class_name + f'_test_split{i}.txt' + filename_path = osp.join(annotation_dir, filename) + with open(filename_path, 'r') as fin: + for line in fin: + video_info = line.strip().split() + video_name = video_info[0] + if video_info[1] == '1': + target_line = ' '.join([ + osp.join(class_name, video_name), + str(class_dict[class_name]) + ]) + train_content.append(target_line) + elif video_info[1] == '2': + target_line = ' '.join([ + osp.join(class_name, video_name), + str(class_dict[class_name]) + ]) + test_content.append(target_line) + train_content = '\n'.join(train_content) + test_content = '\n'.join(test_content) + with open(train_file_template.format(i), 'w') as fout: + fout.write(train_content) + with open(test_file_template.format(i), 'w') as fout: + fout.write(test_content) + + generate_class_index_file() + + with open(class_index_file, 'r') as fin: + class_index = [x.strip().split() for x in fin] + class_mapping = {x[1]: int(x[0]) - 1 for x in class_index} + + def line_to_map(line): + items = line.strip().split() + video = osp.splitext(items[0])[0] + if level == 1: + video = osp.basename(video) + elif level == 2: + video = osp.join( + osp.basename(osp.dirname(video)), osp.basename(video)) + label = class_mapping[osp.dirname(items[0])] + return video, label + + splits = [] + for i in range(1, 4): + with open(train_file_template.format(i), 'r') as fin: + train_list = [line_to_map(x) for x in fin] + + with open(test_file_template.format(i), 'r') as fin: + test_list = [line_to_map(x) for x in fin] + splits.append((train_list, test_list)) + + return splits + + +def parse_diving48_splits(): + + train_file = 'data/diving48/annotations/Diving48_V2_train.json' + test_file = 'data/diving48/annotations/Diving48_V2_test.json' + + train = json.load(open(train_file)) + test = json.load(open(test_file)) + + # class_index_file = 'data/diving48/annotations/Diving48_vocab.json' + # class_list = json.load(open(class_index_file)) + + train_list = [] + test_list = [] + + for item in train: + vid_name = item['vid_name'] + label = item['label'] + train_list.append((vid_name, label)) + + for item in test: + vid_name = item['vid_name'] + label = item['label'] + test_list.append((vid_name, label)) + + splits = ((train_list, test_list), ) + return splits diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/resize_videos.py b/openmmlab_test/mmaction2-0.24.1/tools/data/resize_videos.py new file mode 100644 index 00000000..8f6695a6 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/resize_videos.py @@ -0,0 +1,126 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import glob +import os +import os.path as osp +import sys +from multiprocessing import Pool + + +def resize_videos(vid_item, args): + """Generate resized video cache. + + Args: + vid_item (list): Video item containing video full path, + video relative path. + Returns: + bool: Whether generate video cache successfully. + """ + full_path, vid_path = vid_item + # Change the output video extension to .mp4 if '--to-mp4' flag is set + if args.to_mp4: + vid_path = vid_path.split('.') + assert len(vid_path) == 2, \ + f"Video path '{vid_path}' contain more than one dot" + vid_path = vid_path[0] + '.mp4' + out_full_path = osp.join(args.out_dir, vid_path) + dir_name = osp.dirname(vid_path) + out_dir = osp.join(args.out_dir, dir_name) + if not osp.exists(out_dir): + os.makedirs(out_dir) + result = os.popen( + f'ffprobe -hide_banner -loglevel error -select_streams v:0 -show_entries stream=width,height -of csv=p=0 {full_path}' # noqa:E501 + ) + w, h = [int(d) for d in result.readline().rstrip().split(',')] + if w > h: + cmd = (f'ffmpeg -hide_banner -loglevel error -i {full_path} ' + f'-vf {"mpdecimate," if args.remove_dup else ""}' + f'scale=-2:{args.scale} ' + f'{"-vsync vfr" if args.remove_dup else ""} ' + f'-c:v libx264 {"-g 16" if args.dense else ""} ' + f'-an {out_full_path} -y') + else: + cmd = (f'ffmpeg -hide_banner -loglevel error -i {full_path} ' + f'-vf {"mpdecimate," if args.remove_dup else ""}' + f'scale={args.scale}:-2 ' + f'{"-vsync vfr" if args.remove_dup else ""} ' + f'-c:v libx264 {"-g 16" if args.dense else ""} ' + f'-an {out_full_path} -y') + os.popen(cmd) + print(f'{vid_path} done') + sys.stdout.flush() + return True + + +def run_with_args(item): + vid_item, args = item + return resize_videos(vid_item, args) + + +def parse_args(): + parser = argparse.ArgumentParser( + description='Generate the resized cache of original videos') + parser.add_argument('src_dir', type=str, help='source video directory') + parser.add_argument('out_dir', type=str, help='output video directory') + parser.add_argument( + '--dense', + action='store_true', + help='whether to generate a faster cache') + parser.add_argument( + '--level', + type=int, + choices=[1, 2], + default=2, + help='directory level of data') + parser.add_argument( + '--remove-dup', + action='store_true', + help='whether to remove duplicated frames') + parser.add_argument( + '--ext', + type=str, + default='mp4', + choices=['avi', 'mp4', 'webm', 'mkv'], + help='video file extensions') + parser.add_argument( + '--to-mp4', + action='store_true', + help='whether to output videos in mp4 format') + parser.add_argument( + '--scale', + type=int, + default=256, + help='resize image short side length keeping ratio') + parser.add_argument( + '--num-worker', type=int, default=8, help='number of workers') + args = parser.parse_args() + + return args + + +if __name__ == '__main__': + args = parse_args() + + if not osp.isdir(args.out_dir): + print(f'Creating folder: {args.out_dir}') + os.makedirs(args.out_dir) + + print('Reading videos from folder: ', args.src_dir) + print('Extension of videos: ', args.ext) + fullpath_list = glob.glob(args.src_dir + '/*' * args.level + '.' + + args.ext) + done_fullpath_list = glob.glob(args.out_dir + '/*' * args.level + args.ext) + print('Total number of videos found: ', len(fullpath_list)) + print('Total number of videos transfer finished: ', + len(done_fullpath_list)) + if args.level == 2: + vid_list = list( + map( + lambda p: osp.join( + osp.basename(osp.dirname(p)), osp.basename(p)), + fullpath_list)) + elif args.level == 1: + vid_list = list(map(osp.basename, fullpath_list)) + pool = Pool(args.num_worker) + vid_items = zip(fullpath_list, vid_list) + pool.map(run_with_args, [(item, args) for item in vid_items]) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/NTU_RGBD120_samples_with_missing_skeletons.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/NTU_RGBD120_samples_with_missing_skeletons.txt new file mode 100644 index 00000000..e37c94eb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/NTU_RGBD120_samples_with_missing_skeletons.txt @@ -0,0 +1,535 @@ +S001C002P005R002A008 +S001C002P006R001A008 +S001C003P002R001A055 +S001C003P002R002A012 +S001C003P005R002A004 +S001C003P005R002A005 +S001C003P005R002A006 +S001C003P006R002A008 +S002C002P011R002A030 +S002C003P008R001A020 +S002C003P010R002A010 +S002C003P011R002A007 +S002C003P011R002A011 +S002C003P014R002A007 +S003C001P019R001A055 +S003C002P002R002A055 +S003C002P018R002A055 +S003C003P002R001A055 +S003C003P016R001A055 +S003C003P018R002A024 +S004C002P003R001A013 +S004C002P008R001A009 +S004C002P020R001A003 +S004C002P020R001A004 +S004C002P020R001A012 +S004C002P020R001A020 +S004C002P020R001A021 +S004C002P020R001A036 +S005C002P004R001A001 +S005C002P004R001A003 +S005C002P010R001A016 +S005C002P010R001A017 +S005C002P010R001A048 +S005C002P010R001A049 +S005C002P016R001A009 +S005C002P016R001A010 +S005C002P018R001A003 +S005C002P018R001A028 +S005C002P018R001A029 +S005C003P016R002A009 +S005C003P018R002A013 +S005C003P021R002A057 +S006C001P001R002A055 +S006C002P007R001A005 +S006C002P007R001A006 +S006C002P016R001A043 +S006C002P016R001A051 +S006C002P016R001A052 +S006C002P022R001A012 +S006C002P023R001A020 +S006C002P023R001A021 +S006C002P023R001A022 +S006C002P023R001A023 +S006C002P024R001A018 +S006C002P024R001A019 +S006C003P001R002A013 +S006C003P007R002A009 +S006C003P007R002A010 +S006C003P007R002A025 +S006C003P016R001A060 +S006C003P017R001A055 +S006C003P017R002A013 +S006C003P017R002A014 +S006C003P017R002A015 +S006C003P022R002A013 +S007C001P018R002A050 +S007C001P025R002A051 +S007C001P028R001A050 +S007C001P028R001A051 +S007C001P028R001A052 +S007C002P008R002A008 +S007C002P015R002A055 +S007C002P026R001A008 +S007C002P026R001A009 +S007C002P026R001A010 +S007C002P026R001A011 +S007C002P026R001A012 +S007C002P026R001A050 +S007C002P027R001A011 +S007C002P027R001A013 +S007C002P028R002A055 +S007C003P007R001A002 +S007C003P007R001A004 +S007C003P019R001A060 +S007C003P027R002A001 +S007C003P027R002A002 +S007C003P027R002A003 +S007C003P027R002A004 +S007C003P027R002A005 +S007C003P027R002A006 +S007C003P027R002A007 +S007C003P027R002A008 +S007C003P027R002A009 +S007C003P027R002A010 +S007C003P027R002A011 +S007C003P027R002A012 +S007C003P027R002A013 +S008C002P001R001A009 +S008C002P001R001A010 +S008C002P001R001A014 +S008C002P001R001A015 +S008C002P001R001A016 +S008C002P001R001A018 +S008C002P001R001A019 +S008C002P008R002A059 +S008C002P025R001A060 +S008C002P029R001A004 +S008C002P031R001A005 +S008C002P031R001A006 +S008C002P032R001A018 +S008C002P034R001A018 +S008C002P034R001A019 +S008C002P035R001A059 +S008C002P035R002A002 +S008C002P035R002A005 +S008C003P007R001A009 +S008C003P007R001A016 +S008C003P007R001A017 +S008C003P007R001A018 +S008C003P007R001A019 +S008C003P007R001A020 +S008C003P007R001A021 +S008C003P007R001A022 +S008C003P007R001A023 +S008C003P007R001A025 +S008C003P007R001A026 +S008C003P007R001A028 +S008C003P007R001A029 +S008C003P007R002A003 +S008C003P008R002A050 +S008C003P025R002A002 +S008C003P025R002A011 +S008C003P025R002A012 +S008C003P025R002A016 +S008C003P025R002A020 +S008C003P025R002A022 +S008C003P025R002A023 +S008C003P025R002A030 +S008C003P025R002A031 +S008C003P025R002A032 +S008C003P025R002A033 +S008C003P025R002A049 +S008C003P025R002A060 +S008C003P031R001A001 +S008C003P031R002A004 +S008C003P031R002A014 +S008C003P031R002A015 +S008C003P031R002A016 +S008C003P031R002A017 +S008C003P032R002A013 +S008C003P033R002A001 +S008C003P033R002A011 +S008C003P033R002A012 +S008C003P034R002A001 +S008C003P034R002A012 +S008C003P034R002A022 +S008C003P034R002A023 +S008C003P034R002A024 +S008C003P034R002A044 +S008C003P034R002A045 +S008C003P035R002A016 +S008C003P035R002A017 +S008C003P035R002A018 +S008C003P035R002A019 +S008C003P035R002A020 +S008C003P035R002A021 +S009C002P007R001A001 +S009C002P007R001A003 +S009C002P007R001A014 +S009C002P008R001A014 +S009C002P015R002A050 +S009C002P016R001A002 +S009C002P017R001A028 +S009C002P017R001A029 +S009C003P017R002A030 +S009C003P025R002A054 +S010C001P007R002A020 +S010C002P016R002A055 +S010C002P017R001A005 +S010C002P017R001A018 +S010C002P017R001A019 +S010C002P019R001A001 +S010C002P025R001A012 +S010C003P007R002A043 +S010C003P008R002A003 +S010C003P016R001A055 +S010C003P017R002A055 +S011C001P002R001A008 +S011C001P018R002A050 +S011C002P008R002A059 +S011C002P016R002A055 +S011C002P017R001A020 +S011C002P017R001A021 +S011C002P018R002A055 +S011C002P027R001A009 +S011C002P027R001A010 +S011C002P027R001A037 +S011C003P001R001A055 +S011C003P002R001A055 +S011C003P008R002A012 +S011C003P015R001A055 +S011C003P016R001A055 +S011C003P019R001A055 +S011C003P025R001A055 +S011C003P028R002A055 +S012C001P019R001A060 +S012C001P019R002A060 +S012C002P015R001A055 +S012C002P017R002A012 +S012C002P025R001A060 +S012C003P008R001A057 +S012C003P015R001A055 +S012C003P015R002A055 +S012C003P016R001A055 +S012C003P017R002A055 +S012C003P018R001A055 +S012C003P018R001A057 +S012C003P019R002A011 +S012C003P019R002A012 +S012C003P025R001A055 +S012C003P027R001A055 +S012C003P027R002A009 +S012C003P028R001A035 +S012C003P028R002A055 +S013C001P015R001A054 +S013C001P017R002A054 +S013C001P018R001A016 +S013C001P028R001A040 +S013C002P015R001A054 +S013C002P017R002A054 +S013C002P028R001A040 +S013C003P008R002A059 +S013C003P015R001A054 +S013C003P017R002A054 +S013C003P025R002A022 +S013C003P027R001A055 +S013C003P028R001A040 +S014C001P027R002A040 +S014C002P015R001A003 +S014C002P019R001A029 +S014C002P025R002A059 +S014C002P027R002A040 +S014C002P039R001A050 +S014C003P007R002A059 +S014C003P015R002A055 +S014C003P019R002A055 +S014C003P025R001A048 +S014C003P027R002A040 +S015C001P008R002A040 +S015C001P016R001A055 +S015C001P017R001A055 +S015C001P017R002A055 +S015C002P007R001A059 +S015C002P008R001A003 +S015C002P008R001A004 +S015C002P008R002A040 +S015C002P015R001A002 +S015C002P016R001A001 +S015C002P016R002A055 +S015C003P008R002A007 +S015C003P008R002A011 +S015C003P008R002A012 +S015C003P008R002A028 +S015C003P008R002A040 +S015C003P025R002A012 +S015C003P025R002A017 +S015C003P025R002A020 +S015C003P025R002A021 +S015C003P025R002A030 +S015C003P025R002A033 +S015C003P025R002A034 +S015C003P025R002A036 +S015C003P025R002A037 +S015C003P025R002A044 +S016C001P019R002A040 +S016C001P025R001A011 +S016C001P025R001A012 +S016C001P025R001A060 +S016C001P040R001A055 +S016C001P040R002A055 +S016C002P008R001A011 +S016C002P019R002A040 +S016C002P025R002A012 +S016C003P008R001A011 +S016C003P008R002A002 +S016C003P008R002A003 +S016C003P008R002A004 +S016C003P008R002A006 +S016C003P008R002A009 +S016C003P019R002A040 +S016C003P039R002A016 +S017C001P016R002A031 +S017C002P007R001A013 +S017C002P008R001A009 +S017C002P015R001A042 +S017C002P016R002A031 +S017C002P016R002A055 +S017C003P007R002A013 +S017C003P008R001A059 +S017C003P016R002A031 +S017C003P017R001A055 +S017C003P020R001A059 +S019C001P046R001A075 +S019C002P042R001A094 +S019C002P042R001A095 +S019C002P042R001A096 +S019C002P042R001A097 +S019C002P042R001A098 +S019C002P042R001A099 +S019C002P042R001A100 +S019C002P042R001A101 +S019C002P042R001A102 +S019C002P049R002A074 +S019C002P049R002A079 +S019C002P051R001A061 +S019C003P046R001A061 +S019C003P046R002A061 +S019C003P046R002A062 +S020C002P041R001A063 +S020C002P041R001A064 +S020C002P044R001A063 +S020C002P044R001A064 +S020C002P044R001A066 +S020C002P044R001A084 +S020C002P054R001A081 +S021C001P059R001A108 +S021C002P055R001A065 +S021C002P055R001A092 +S021C002P055R001A093 +S021C002P057R001A064 +S021C002P058R001A063 +S021C002P058R001A064 +S021C002P059R001A074 +S021C002P059R001A075 +S021C002P059R001A076 +S021C002P059R001A077 +S021C002P059R001A078 +S021C002P059R001A079 +S021C003P057R002A078 +S021C003P057R002A079 +S021C003P057R002A094 +S022C002P061R001A113 +S022C003P061R002A061 +S022C003P061R002A062 +S022C003P063R002A061 +S022C003P063R002A062 +S022C003P063R002A063 +S022C003P063R002A064 +S022C003P063R002A078 +S022C003P064R002A061 +S022C003P064R002A062 +S022C003P065R002A061 +S022C003P065R002A062 +S022C003P065R002A119 +S022C003P067R002A064 +S023C002P055R001A114 +S023C002P055R002A092 +S023C002P059R001A075 +S023C002P063R001A075 +S023C003P055R002A093 +S023C003P055R002A094 +S023C003P061R002A061 +S023C003P064R001A092 +S024C001P063R001A109 +S024C002P062R002A074 +S024C002P067R001A100 +S024C002P067R001A101 +S024C002P067R001A102 +S024C002P067R001A103 +S024C003P062R002A074 +S024C003P063R002A061 +S024C003P063R002A062 +S025C001P055R002A119 +S025C003P056R002A119 +S025C003P059R002A115 +S026C002P044R001A061 +S026C002P044R001A062 +S026C002P070R001A092 +S026C003P069R002A075 +S026C003P074R002A061 +S026C003P074R002A062 +S026C003P075R001A117 +S026C003P075R001A118 +S027C001P082R001A063 +S027C002P044R002A092 +S027C002P079R001A061 +S027C002P079R001A062 +S027C002P079R001A063 +S027C002P079R001A064 +S027C002P082R001A092 +S027C002P084R001A061 +S027C002P084R001A062 +S027C002P086R001A061 +S027C003P041R002A087 +S027C003P080R002A061 +S027C003P082R002A061 +S027C003P082R002A062 +S027C003P086R002A061 +S027C003P086R002A062 +S028C001P087R001A061 +S028C002P041R001A091 +S028C002P087R001A061 +S028C003P042R002A064 +S028C003P046R002A063 +S028C003P046R002A066 +S028C003P046R002A067 +S028C003P046R002A068 +S028C003P046R002A069 +S028C003P046R002A070 +S028C003P046R002A071 +S028C003P046R002A072 +S028C003P046R002A074 +S028C003P046R002A075 +S028C003P046R002A077 +S028C003P046R002A081 +S028C003P046R002A082 +S028C003P046R002A083 +S028C003P046R002A084 +S028C003P048R002A061 +S028C003P048R002A062 +S028C003P048R002A073 +S028C003P073R002A073 +S028C003P087R001A061 +S028C003P087R002A061 +S028C003P087R002A062 +S029C001P043R002A092 +S029C001P044R002A092 +S029C001P048R001A073 +S029C001P089R001A063 +S029C002P041R001A074 +S029C002P041R001A084 +S029C002P044R001A091 +S029C002P048R001A075 +S029C002P048R001A081 +S029C002P074R001A081 +S029C002P074R001A095 +S029C002P074R001A096 +S029C002P080R001A091 +S029C002P088R001A066 +S029C002P089R001A065 +S029C002P090R001A067 +S029C003P008R002A065 +S029C003P008R002A067 +S029C003P041R001A089 +S029C003P043R001A080 +S029C003P043R001A092 +S029C003P043R001A105 +S029C003P043R002A085 +S029C003P043R002A086 +S029C003P044R002A106 +S029C003P048R001A065 +S029C003P048R002A073 +S029C003P048R002A074 +S029C003P048R002A075 +S029C003P048R002A076 +S029C003P048R002A092 +S029C003P048R002A094 +S029C003P051R002A073 +S029C003P051R002A074 +S029C003P051R002A075 +S029C003P051R002A076 +S029C003P051R002A077 +S029C003P051R002A078 +S029C003P051R002A079 +S029C003P051R002A080 +S029C003P051R002A081 +S029C003P051R002A082 +S029C003P051R002A083 +S029C003P051R002A084 +S029C003P051R002A085 +S029C003P051R002A086 +S029C003P051R002A110 +S029C003P067R001A098 +S029C003P074R002A110 +S029C003P080R002A066 +S029C003P088R002A078 +S029C003P089R001A075 +S029C003P089R002A061 +S029C003P089R002A062 +S029C003P089R002A063 +S029C003P090R002A092 +S029C003P090R002A095 +S030C002P091R002A091 +S030C002P091R002A092 +S030C002P091R002A093 +S030C002P091R002A094 +S030C002P091R002A095 +S030C002P091R002A096 +S030C002P091R002A097 +S030C002P091R002A098 +S030C002P091R002A099 +S030C002P091R002A100 +S030C002P091R002A101 +S030C002P091R002A102 +S030C002P091R002A103 +S030C002P091R002A104 +S030C002P091R002A105 +S030C003P044R002A065 +S030C003P044R002A081 +S030C003P044R002A084 +S031C002P042R001A111 +S031C002P051R001A061 +S031C002P051R001A062 +S031C002P067R001A067 +S031C002P067R001A068 +S031C002P067R001A069 +S031C002P067R001A070 +S031C002P067R001A071 +S031C002P067R001A072 +S031C002P082R001A075 +S031C002P082R002A117 +S031C002P097R001A061 +S031C002P097R001A062 +S031C003P043R002A074 +S031C003P043R002A075 +S031C003P044R002A094 +S031C003P082R002A067 +S031C003P082R002A068 +S031C003P082R002A069 +S031C003P082R002A070 +S031C003P082R002A071 +S031C003P082R002A072 +S031C003P082R002A073 +S031C003P082R002A075 +S031C003P082R002A076 +S031C003P082R002A077 +S031C003P082R002A084 +S031C003P082R002A085 +S031C003P082R002A086 +S032C002P067R001A092 +S032C003P067R002A066 +S032C003P067R002A067 +S032C003P067R002A075 +S032C003P067R002A076 +S032C003P067R002A077 diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/NTU_RGBD_samples_with_missing_skeletons.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/NTU_RGBD_samples_with_missing_skeletons.txt new file mode 100644 index 00000000..5ad472e4 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/NTU_RGBD_samples_with_missing_skeletons.txt @@ -0,0 +1,302 @@ +S001C002P005R002A008 +S001C002P006R001A008 +S001C003P002R001A055 +S001C003P002R002A012 +S001C003P005R002A004 +S001C003P005R002A005 +S001C003P005R002A006 +S001C003P006R002A008 +S002C002P011R002A030 +S002C003P008R001A020 +S002C003P010R002A010 +S002C003P011R002A007 +S002C003P011R002A011 +S002C003P014R002A007 +S003C001P019R001A055 +S003C002P002R002A055 +S003C002P018R002A055 +S003C003P002R001A055 +S003C003P016R001A055 +S003C003P018R002A024 +S004C002P003R001A013 +S004C002P008R001A009 +S004C002P020R001A003 +S004C002P020R001A004 +S004C002P020R001A012 +S004C002P020R001A020 +S004C002P020R001A021 +S004C002P020R001A036 +S005C002P004R001A001 +S005C002P004R001A003 +S005C002P010R001A016 +S005C002P010R001A017 +S005C002P010R001A048 +S005C002P010R001A049 +S005C002P016R001A009 +S005C002P016R001A010 +S005C002P018R001A003 +S005C002P018R001A028 +S005C002P018R001A029 +S005C003P016R002A009 +S005C003P018R002A013 +S005C003P021R002A057 +S006C001P001R002A055 +S006C002P007R001A005 +S006C002P007R001A006 +S006C002P016R001A043 +S006C002P016R001A051 +S006C002P016R001A052 +S006C002P022R001A012 +S006C002P023R001A020 +S006C002P023R001A021 +S006C002P023R001A022 +S006C002P023R001A023 +S006C002P024R001A018 +S006C002P024R001A019 +S006C003P001R002A013 +S006C003P007R002A009 +S006C003P007R002A010 +S006C003P007R002A025 +S006C003P016R001A060 +S006C003P017R001A055 +S006C003P017R002A013 +S006C003P017R002A014 +S006C003P017R002A015 +S006C003P022R002A013 +S007C001P018R002A050 +S007C001P025R002A051 +S007C001P028R001A050 +S007C001P028R001A051 +S007C001P028R001A052 +S007C002P008R002A008 +S007C002P015R002A055 +S007C002P026R001A008 +S007C002P026R001A009 +S007C002P026R001A010 +S007C002P026R001A011 +S007C002P026R001A012 +S007C002P026R001A050 +S007C002P027R001A011 +S007C002P027R001A013 +S007C002P028R002A055 +S007C003P007R001A002 +S007C003P007R001A004 +S007C003P019R001A060 +S007C003P027R002A001 +S007C003P027R002A002 +S007C003P027R002A003 +S007C003P027R002A004 +S007C003P027R002A005 +S007C003P027R002A006 +S007C003P027R002A007 +S007C003P027R002A008 +S007C003P027R002A009 +S007C003P027R002A010 +S007C003P027R002A011 +S007C003P027R002A012 +S007C003P027R002A013 +S008C002P001R001A009 +S008C002P001R001A010 +S008C002P001R001A014 +S008C002P001R001A015 +S008C002P001R001A016 +S008C002P001R001A018 +S008C002P001R001A019 +S008C002P008R002A059 +S008C002P025R001A060 +S008C002P029R001A004 +S008C002P031R001A005 +S008C002P031R001A006 +S008C002P032R001A018 +S008C002P034R001A018 +S008C002P034R001A019 +S008C002P035R001A059 +S008C002P035R002A002 +S008C002P035R002A005 +S008C003P007R001A009 +S008C003P007R001A016 +S008C003P007R001A017 +S008C003P007R001A018 +S008C003P007R001A019 +S008C003P007R001A020 +S008C003P007R001A021 +S008C003P007R001A022 +S008C003P007R001A023 +S008C003P007R001A025 +S008C003P007R001A026 +S008C003P007R001A028 +S008C003P007R001A029 +S008C003P007R002A003 +S008C003P008R002A050 +S008C003P025R002A002 +S008C003P025R002A011 +S008C003P025R002A012 +S008C003P025R002A016 +S008C003P025R002A020 +S008C003P025R002A022 +S008C003P025R002A023 +S008C003P025R002A030 +S008C003P025R002A031 +S008C003P025R002A032 +S008C003P025R002A033 +S008C003P025R002A049 +S008C003P025R002A060 +S008C003P031R001A001 +S008C003P031R002A004 +S008C003P031R002A014 +S008C003P031R002A015 +S008C003P031R002A016 +S008C003P031R002A017 +S008C003P032R002A013 +S008C003P033R002A001 +S008C003P033R002A011 +S008C003P033R002A012 +S008C003P034R002A001 +S008C003P034R002A012 +S008C003P034R002A022 +S008C003P034R002A023 +S008C003P034R002A024 +S008C003P034R002A044 +S008C003P034R002A045 +S008C003P035R002A016 +S008C003P035R002A017 +S008C003P035R002A018 +S008C003P035R002A019 +S008C003P035R002A020 +S008C003P035R002A021 +S009C002P007R001A001 +S009C002P007R001A003 +S009C002P007R001A014 +S009C002P008R001A014 +S009C002P015R002A050 +S009C002P016R001A002 +S009C002P017R001A028 +S009C002P017R001A029 +S009C003P017R002A030 +S009C003P025R002A054 +S010C001P007R002A020 +S010C002P016R002A055 +S010C002P017R001A005 +S010C002P017R001A018 +S010C002P017R001A019 +S010C002P019R001A001 +S010C002P025R001A012 +S010C003P007R002A043 +S010C003P008R002A003 +S010C003P016R001A055 +S010C003P017R002A055 +S011C001P002R001A008 +S011C001P018R002A050 +S011C002P008R002A059 +S011C002P016R002A055 +S011C002P017R001A020 +S011C002P017R001A021 +S011C002P018R002A055 +S011C002P027R001A009 +S011C002P027R001A010 +S011C002P027R001A037 +S011C003P001R001A055 +S011C003P002R001A055 +S011C003P008R002A012 +S011C003P015R001A055 +S011C003P016R001A055 +S011C003P019R001A055 +S011C003P025R001A055 +S011C003P028R002A055 +S012C001P019R001A060 +S012C001P019R002A060 +S012C002P015R001A055 +S012C002P017R002A012 +S012C002P025R001A060 +S012C003P008R001A057 +S012C003P015R001A055 +S012C003P015R002A055 +S012C003P016R001A055 +S012C003P017R002A055 +S012C003P018R001A055 +S012C003P018R001A057 +S012C003P019R002A011 +S012C003P019R002A012 +S012C003P025R001A055 +S012C003P027R001A055 +S012C003P027R002A009 +S012C003P028R001A035 +S012C003P028R002A055 +S013C001P015R001A054 +S013C001P017R002A054 +S013C001P018R001A016 +S013C001P028R001A040 +S013C002P015R001A054 +S013C002P017R002A054 +S013C002P028R001A040 +S013C003P008R002A059 +S013C003P015R001A054 +S013C003P017R002A054 +S013C003P025R002A022 +S013C003P027R001A055 +S013C003P028R001A040 +S014C001P027R002A040 +S014C002P015R001A003 +S014C002P019R001A029 +S014C002P025R002A059 +S014C002P027R002A040 +S014C002P039R001A050 +S014C003P007R002A059 +S014C003P015R002A055 +S014C003P019R002A055 +S014C003P025R001A048 +S014C003P027R002A040 +S015C001P008R002A040 +S015C001P016R001A055 +S015C001P017R001A055 +S015C001P017R002A055 +S015C002P007R001A059 +S015C002P008R001A003 +S015C002P008R001A004 +S015C002P008R002A040 +S015C002P015R001A002 +S015C002P016R001A001 +S015C002P016R002A055 +S015C003P008R002A007 +S015C003P008R002A011 +S015C003P008R002A012 +S015C003P008R002A028 +S015C003P008R002A040 +S015C003P025R002A012 +S015C003P025R002A017 +S015C003P025R002A020 +S015C003P025R002A021 +S015C003P025R002A030 +S015C003P025R002A033 +S015C003P025R002A034 +S015C003P025R002A036 +S015C003P025R002A037 +S015C003P025R002A044 +S016C001P019R002A040 +S016C001P025R001A011 +S016C001P025R001A012 +S016C001P025R001A060 +S016C001P040R001A055 +S016C001P040R002A055 +S016C002P008R001A011 +S016C002P019R002A040 +S016C002P025R002A012 +S016C003P008R001A011 +S016C003P008R002A002 +S016C003P008R002A003 +S016C003P008R002A004 +S016C003P008R002A006 +S016C003P008R002A009 +S016C003P019R002A040 +S016C003P039R002A016 +S017C001P016R002A031 +S017C002P007R001A013 +S017C002P008R001A009 +S017C002P015R001A042 +S017C002P016R002A031 +S017C002P016R002A055 +S017C003P007R002A013 +S017C003P008R001A059 +S017C003P016R002A031 +S017C003P017R001A055 +S017C003P020R001A059 diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/README.md b/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/README.md new file mode 100644 index 00000000..25c7f628 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/README.md @@ -0,0 +1,131 @@ +# Preparing Skeleton Dataset + + + +```BibTeX +@misc{duan2021revisiting, + title={Revisiting Skeleton-based Action Recognition}, + author={Haodong Duan and Yue Zhao and Kai Chen and Dian Shao and Dahua Lin and Bo Dai}, + year={2021}, + eprint={2104.13586}, + archivePrefix={arXiv}, + primaryClass={cs.CV} +} +``` + +## Introduction + +We release the skeleton annotations used in [Revisiting Skeleton-based Action Recognition](https://arxiv.org/abs/2104.13586). By default, we use [Faster-RCNN](https://github.com/open-mmlab/mmdetection/blob/master/configs/faster_rcnn/faster_rcnn_r50_caffe_fpn_mstrain_1x_coco-person.py) with ResNet50 backbone for human detection and [HRNet-w32](https://github.com/open-mmlab/mmpose/blob/master/configs/top_down/hrnet/coco/hrnet_w32_coco_256x192.py) for single person pose estimation. For FineGYM, we use Ground-Truth bounding boxes for the athlete instead of detection bounding boxes. Currently, we release the skeleton annotations for FineGYM and NTURGB-D Xsub split. Other annotations will be soo released. + +## Prepare Annotations + +Currently, we support HMDB51, UCF101, FineGYM and NTURGB+D. For FineGYM, you can execute following scripts to prepare the annotations. + +```shell +bash download_annotations.sh ${DATASET} +``` + +Due to [Conditions of Use](http://rose1.ntu.edu.sg/Datasets/actionRecognition.asp) of the NTURGB+D dataset, we can not directly release the annotations used in our experiments. So that we provide a script to generate pose annotations for videos in NTURGB+D datasets, which generate a dictionary and save it as a single pickle file. You can create a list which contain all annotation dictionaries of corresponding videos and save them as a pickle file. Then you can get the `ntu60_xsub_train.pkl`, `ntu60_xsub_val.pkl`, `ntu120_xsub_train.pkl`, `ntu120_xsub_val.pkl` that we used in training. + +For those who have not enough computations for pose extraction, we provide the outputs of the above pipeline here, corresponding to 4 different splits of NTURGB+D datasets: + +- ntu60_xsub_train: https://download.openmmlab.com/mmaction/posec3d/ntu60_xsub_train.pkl +- ntu60_xsub_val: https://download.openmmlab.com/mmaction/posec3d/ntu60_xsub_val.pkl +- ntu120_xsub_train: https://download.openmmlab.com/mmaction/posec3d/ntu120_xsub_train.pkl +- ntu120_xsub_val: https://download.openmmlab.com/mmaction/posec3d/ntu120_xsub_val.pkl +- hmdb51: https://download.openmmlab.com/mmaction/posec3d/hmdb51.pkl +- ucf101: https://download.openmmlab.com/mmaction/posec3d/ucf101.pkl + +To generate 2D pose annotations for a single video, first, you need to install mmdetection and mmpose from src code. After that, you need to replace the placeholder `mmdet_root` and `mmpose_root` in `ntu_pose_extraction.py` with your installation path. Then you can use following scripts for NTURGB+D video pose extraction: + +```python +python ntu_pose_extraction.py S001C001P001R001A001_rgb.avi S001C001P001R001A001.pkl +``` + +After you get pose annotations for all videos in a dataset split, like `ntu60_xsub_val`. You can gather them into a single list and save the list as `ntu60_xsub_val.pkl`. You can use those larger pickle files for training and testing. + +## The Format of PoseC3D Annotations + +Here we briefly introduce the format of PoseC3D Annotations, we will take `gym_train.pkl` as an example: the content of `gym_train.pkl` is a list of length 20484, each item is a dictionary that is the skeleton annotation of one video. Each dictionary has following fields: + +- keypoint: The keypoint coordinates, which is a numpy array of the shape N (#person) x T (temporal length) x K (#keypoints, 17 in our case) x 2 (x, y coordinate). +- keypoint_score: The keypoint confidence scores, which is a numpy array of the shape N (#person) x T (temporal length) x K (#keypoints, 17 in our case). +- frame_dir: The corresponding video name. +- label: The action category. +- img_shape: The image shape of each frame. +- original_shape: Same as above. +- total_frames: The temporal length of the video. + +For training with your custom dataset, you can refer to [Custom Dataset Training](https://github.com/open-mmlab/mmaction2/blob/master/configs/skeleton/posec3d/custom_dataset_training.md). + +## Visualization + +For skeleton data visualization, you need also to prepare the RGB videos. Please refer to [visualize_heatmap_volume](/demo/visualize_heatmap_volume.ipynb) for detailed process. Here we provide some visualization examples from NTU-60 and FineGYM. + + + + + + + + + +
        +
        + Pose Estimation Results +
        + +
        +
        + +
        +
        + Keypoint Heatmap Volume Visualization +
        + +
        +
        + +
        +
        + Limb Heatmap Volume Visualization +
        + +
        +
        + +
        + +## Convert the NTU RGB+D raw skeleton data to our format (only applicable to GCN backbones) + +Here we also provide the script for converting the NTU RGB+D raw skeleton data to our format. +First, download the raw skeleton data of NTU-RGBD 60 and NTU-RGBD 120 from https://github.com/shahroudy/NTURGB-D. + +For NTU-RGBD 60, preprocess data and convert the data format with + +```python +python gen_ntu_rgbd_raw.py --data-path your_raw_nturgbd60_skeleton_path --ignored-sample-path NTU_RGBD_samples_with_missing_skeletons.txt --out-folder your_nturgbd60_output_path --task ntu60 +``` + +For NTU-RGBD 120, preprocess data and convert the data format with + +```python +python gen_ntu_rgbd_raw.py --data-path your_raw_nturgbd120_skeleton_path --ignored-sample-path NTU_RGBD120_samples_with_missing_skeletons.txt --out-folder your_nturgbd120_output_path --task ntu120 +``` + +## Convert annotations from third-party projects + +We provide scripts to convert skeleton annotations from third-party projects to MMAction2 formats: + +- BABEL: `babel2mma2.py` + +**TODO**: + +- [x] FineGYM +- [x] NTU60_XSub +- [x] NTU120_XSub +- [x] NTU60_XView +- [x] NTU120_XSet +- [x] UCF101 +- [x] HMDB51 +- [ ] Kinetics diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/README_zh-CN.md new file mode 100644 index 00000000..fb6de592 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/README_zh-CN.md @@ -0,0 +1,135 @@ +# 准备骨架数据集 + +```BibTeX +@misc{duan2021revisiting, + title={Revisiting Skeleton-based Action Recognition}, + author={Haodong Duan and Yue Zhao and Kai Chen and Dian Shao and Dahua Lin and Bo Dai}, + year={2021}, + eprint={2104.13586}, + archivePrefix={arXiv}, + primaryClass={cs.CV} +} +``` + +## 简介 + +MMAction2 发布 [Revisiting Skeleton-based Action Recognition](https://arxiv.org/abs/2104.13586) 论文中所使用的骨架标注。 +默认使用 [Faster-RCNN](https://github.com/open-mmlab/mmdetection/blob/master/configs/faster_rcnn/faster_rcnn_r50_caffe_fpn_mstrain_1x_coco-person.py) 作为人体检测器, +使用 [HRNet-w32](https://github.com/open-mmlab/mmpose/blob/master/configs/top_down/hrnet/coco/hrnet_w32_coco_256x192.py) 作为单人姿态估计模型。 +对于 FineGYM 数据集,MMAction2 使用的是运动员的真实框标注,而非检测器所出的框。目前,MMAction2 已发布 FineGYM 和 NTURGB-D Xsub 部分的骨架标注,其他数据集的标注也将很快发布。 + +## 准备标注文件 + +目前,MMAction2 支持 HMDB51, UCF101, FineGYM 和 NTURGB+D 数据集。对于 FineGYM 数据集,用户可以使用以下脚本下载标注文件。 + +```shell +bash download_annotations.sh ${DATASET} +``` + +由于 NTURGB+D 数据集的 [使用条例](http://rose1.ntu.edu.sg/Datasets/actionRecognition.asp),MMAction2 并未直接发布实验中所使用的标注文件。 +因此,这里提供生成 NTURGB+D 数据集中视频的姿态标注文件,这将生成一个 dict 数据并将其保存为一个 pickle 文件。 +用户可以生成一个 list 用以包含对应视频的 dict 数据,并将其保存为一个 pickle 文件。 +之后,用户可以获得 `ntu60_xsub_train.pkl`, `ntu60_xsub_val.pkl`, `ntu120_xsub_train.pkl`, `ntu120_xsub_val.pkl` 文件用于训练。 + +对于无法进行姿态提取的用户,这里提供了上述流程的输出结果,分别对应 NTURGB-D 数据集的 4 个部分: + +- ntu60_xsub_train: https://download.openmmlab.com/mmaction/posec3d/ntu60_xsub_train.pkl +- ntu60_xsub_val: https://download.openmmlab.com/mmaction/posec3d/ntu60_xsub_val.pkl +- ntu120_xsub_train: https://download.openmmlab.com/mmaction/posec3d/ntu120_xsub_train.pkl +- ntu120_xsub_val: https://download.openmmlab.com/mmaction/posec3d/ntu120_xsub_val.pkl +- hmdb51: https://download.openmmlab.com/mmaction/posec3d/hmdb51.pkl +- ucf101: https://download.openmmlab.com/mmaction/posec3d/ucf101.pkl + +若想生成单个视频的 2D 姿态标注文件,首先,用户需要由源码安装 mmdetection 和 mmpose。之后,用户需要在 `ntu_pose_extraction.py` 中指定 `mmdet_root` 和 `mmpose_root` 变量。 +最后,用户可使用以下脚本进行 NTURGB+D 视频的姿态提取: + +```python +python ntu_pose_extraction.py S001C001P001R001A001_rgb.avi S001C001P001R001A001.pkl +``` + +在用户获得数据集某部分所有视频的姿态标注文件(如 `ntu60_xsub_val`)后,可以将其集合成一个 list 数据并保存为 `ntu60_xsub_val.pkl`。用户可用这些大型 pickle 文件进行训练和测试。 + +## PoseC3D 的标注文件格式 + +这里简单介绍 PoseC3D 的标注文件格式。以 `gym_train.pkl` 为例:`gym_train.pkl` 存储一个长度为 20484 的 list,list 的每一项为单个视频的骨架标注 dict。每个 dict 的内容如下: + +- keypoint:关键点坐标,大小为 N(#人数)x T(时序长度)x K(#关键点, 这里为17)x 2 (x,y 坐标)的 numpy array 数据类型 +- keypoint_score:关键点的置信分数,大小为 N(#人数)x T(时序长度)x K(#关键点, 这里为17)的 numpy array 数据类型 +- frame_dir: 对应视频名 +- label: 动作类别 +- img_shape: 每一帧图像的大小 +- original_shape: 同 `img_shape` +- total_frames: 视频时序长度 + +如用户想使用自己的数据集训练 PoseC3D,可以参考 [Custom Dataset Training](https://github.com/open-mmlab/mmaction2/blob/master/configs/skeleton/posec3d/custom_dataset_training.md)。 + +## 可视化 + +为了可视化骨架数据,用户需要准备 RGB 的视频。详情可参考 [visualize_heatmap_volume](/demo/visualize_heatmap_volume.ipynb)。这里提供一些 NTU-60 和 FineGYM 上的例子 + + + + + + + + + +
        +
        + 姿态估计结果 +
        + +
        +
        + +
        +
        + 关键点热力图三维可视化 +
        + +
        +
        + +
        +
        + 肢体热力图三维可视化 +
        + +
        +
        + +
        + +## 如何将 NTU RGB+D 原始数据转化为 MMAction2 格式 (转换好的标注文件目前仅适用于 GCN 模型) + +这里介绍如何将 NTU RGB+D 原始数据转化为 MMAction2 格式。首先,需要从 https://github.com/shahroudy/NTURGB-D 下载原始 NTU-RGBD 60 和 NTU-RGBD 120 数据集的原始骨架数据。 + +对于 NTU-RGBD 60 数据集,可使用以下脚本 + +```python +python gen_ntu_rgbd_raw.py --data-path your_raw_nturgbd60_skeleton_path --ignored-sample-path NTU_RGBD_samples_with_missing_skeletons.txt --out-folder your_nturgbd60_output_path --task ntu60 +``` + +对于 NTU-RGBD 120 数据集,可使用以下脚本 + +```python +python gen_ntu_rgbd_raw.py --data-path your_raw_nturgbd120_skeleton_path --ignored-sample-path NTU_RGBD120_samples_with_missing_skeletons.txt --out-folder your_nturgbd120_output_path --task ntu120 +``` + +## 转换其他第三方项目的骨骼标注 + +MMAction2 提供脚本以将其他第三方项目的骨骼标注转至 MMAction2 格式,如: + +- BABEL: `babel2mma2.py` + +**待办项**: + +- [x] FineGYM +- [x] NTU60_XSub +- [x] NTU120_XSub +- [x] NTU60_XView +- [x] NTU120_XSet +- [x] UCF101 +- [x] HMDB51 +- [ ] Kinetics diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/S001C001P001R001A001_rgb.avi b/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/S001C001P001R001A001_rgb.avi new file mode 100644 index 0000000000000000000000000000000000000000..0ea54177e04e0654267aba7b77c936f8fe477658 GIT binary patch literal 987146 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 z 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
        $j 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

        prF0Nj{p3y^+8FOuEkT>ADPl8Jas#ZzUY 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

        6WDP2 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

      1. UVO{ju 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 z
        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℞h;C{4MB0)YWIrXJQ9UgT(v6Y9=+BmMK$T3h`Oz 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%0AEn;*vIFh%R;TGJlb5Ar*MRduVtR&tn^D`9S>F03 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%0DM&8%nolTUFc+Lp-Uh|e| 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�l-73;vLXiq7ix!OFo>bkRi98b;?Y$Jc<)-VAn68 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

        0QIR1<%-Mq9yW`%_8M6?i`xtt_kXSMFHz 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∈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

        i<}h#mb~DRy9-O;+1FIMSg$isF<|J% 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

        9v}*w@l5Uev{~P{s>^1BMhw7k!6UM{p7Vl7IXY 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

        M^%=}G zlhp_N%z2-m=5^r@o5iw*oVCVs#<*RW{uB|s)=dv5_xPM#XJ(s?GNGN>Fu%m#E_|2? zzoX+RdHkb5aymu|h4P%sCN)B+Rq4_gb~%KK}u;%vQI1hT!~2 zwaI(gKTpR!ul%sE0G8$@XQ!;Z_^E(lM3 zaK@~!G>)>k6r|IX~N39ZV|A&otRYnNT4JJ_XSDtueSsD@K2W0#st3he;%H@Ta5bW`!M< zY$_JyWiDO7%>2kVS--FcOdV3DV~CAnjuQmBs&|oj43Vqv>Aya;!bC1195%u=d4;sN zBj=F`xalkyAWS>oAgV7RtqwE}#pg`Q0VtP#^7C3ubWt3eB{C$Y@|h>FXNiMm%p=FX z1KNAk10574t0!sM07l|3?P4MsX*PRyuVp^%WD~Kv?8(Lq()qkD;k{H1%{^)UDAIQ= zzkImO=tl_+-9q(=7`r|CCfSG_KcDuHIsExHL>b|7bq_I0P3{JAq5r95dosG{`e6>O zBr@QS&pS0PUUmDG#T032BC%`r(mYrBQy3C6QqI$|oaAVqv3%D^mWjuf?9o+kR#Nu) z=~|`4v*NLat{R00GrO#i|K zeGovX#tX9(LjvR^FKi?P32e!|uxuhEfI|4fCJm54n8*u1{ec9;SzlP11qujy_rhy3 zP=GDo3#(c}0siSPyn_G@cuBvog&H(qsrkZNbUFbzmx_bj0vAl5j2NRnB;W`5g_Bs20Dj3A-ttBQ{%&3R|MueFkbt#U=@|-;fN!tbKhli^Y~sGy*RLS~ zVt>y|{VNad00|($cwv^`NC4H}h;;vSBWMuN`S*wRj~OsQfZUrG4#fol>96u*AOiu6 ze`jL8wA!BqrpbhWL{IbutLpe^vjTOb}oJ`J$`lfB?K#?3o7w!a*-OS~UpZeU-m@ z9SCTLc+rU)KmZHe3v0K70G?O=DHsF+RIlt8hCqPBD}O1^fB=S9dgLq!sC(5PlB*zq z;FWH_1_H=m={Y|^fb=WsaXf&U^X{$uedFz{c*r++M53>> angle_between((1, 0, 0), (0, 1, 0)) + 1.5707963267948966 + >>> angle_between((1, 0, 0), (1, 0, 0)) + 0.0 + >>> angle_between((1, 0, 0), (-1, 0, 0)) + 3.141592653589793 + """ + if np.abs(v1).sum() < 1e-6 or np.abs(v2).sum() < 1e-6: + return 0 + v1_u = unit_vector(v1) + v2_u = unit_vector(v2) + return np.arccos(np.clip(np.dot(v1_u, v2_u), -1.0, 1.0)) + + +def rotation_matrix(axis, theta): + """Return the rotation matrix associated with counterclockwise rotation + about the given axis by theta radians.""" + if np.abs(axis).sum() < 1e-6 or np.abs(theta) < 1e-6: + return np.eye(3) + axis = np.asarray(axis) + axis = axis / math.sqrt(np.dot(axis, axis)) + a = math.cos(theta / 2.0) + b, c, d = -axis * math.sin(theta / 2.0) + aa, bb, cc, dd = a * a, b * b, c * c, d * d + bc, ad, ac, ab, bd, cd = b * c, a * d, a * c, a * b, b * d, c * d + return np.array([[aa + bb - cc - dd, 2 * (bc + ad), 2 * (bd - ac)], + [2 * (bc - ad), aa + cc - bb - dd, 2 * (cd + ab)], + [2 * (bd + ac), 2 * (cd - ab), aa + dd - bb - cc]]) + + +def pre_normalization(data, zaxis=[0, 1], xaxis=[8, 4]): + N, C, T, V, M = data.shape + s = np.transpose(data, [0, 4, 2, 3, 1]) # N C T V M -> N M T V C + + print('pad the null frames with the previous frames') + prog_bar = mmcv.ProgressBar(len(s)) + for i_s, skeleton in enumerate(s): + if skeleton.sum() == 0: + print(i_s, ' has no skeleton') + for i_p, person in enumerate(skeleton): + if person.sum() == 0: + continue + if person[0].sum() == 0: + index = (person.sum(-1).sum(-1) != 0) + tmp = person[index].copy() + person *= 0 + person[:len(tmp)] = tmp + + for i_f, frame in enumerate(person): + if frame.sum() == 0: + if person[i_f:].sum() == 0: + rest = len(person) - i_f + num = int(np.ceil(rest / i_f)) + pad = np.concatenate( + [person[0:i_f] for _ in range(num)], 0)[:rest] + s[i_s, i_p, i_f:] = pad + break + prog_bar.update() + + print('sub the center joint #1 (spine joint in ntu and ' + 'neck joint in kinetics)') + prog_bar = mmcv.ProgressBar(len(s)) + for i_s, skeleton in enumerate(s): + if skeleton.sum() == 0: + continue + main_body_center = skeleton[0][:, 1:2, :].copy() + for i_p, person in enumerate(skeleton): + if person.sum() == 0: + continue + mask = (person.sum(-1) != 0).reshape(T, V, 1) + s[i_s, i_p] = (s[i_s, i_p] - main_body_center) * mask + prog_bar.update() + + print('parallel the bone between hip(jpt 0) and ' + 'spine(jpt 1) of the first person to the z axis') + prog_bar = mmcv.ProgressBar(len(s)) + for i_s, skeleton in enumerate(s): + if skeleton.sum() == 0: + continue + joint_bottom = skeleton[0, 0, zaxis[0]] + joint_top = skeleton[0, 0, zaxis[1]] + axis = np.cross(joint_top - joint_bottom, [0, 0, 1]) + angle = angle_between(joint_top - joint_bottom, [0, 0, 1]) + matrix_z = rotation_matrix(axis, angle) + for i_p, person in enumerate(skeleton): + if person.sum() == 0: + continue + for i_f, frame in enumerate(person): + if frame.sum() == 0: + continue + for i_j, joint in enumerate(frame): + s[i_s, i_p, i_f, i_j] = np.dot(matrix_z, joint) + prog_bar.update() + + print('parallel the bone between right shoulder(jpt 8) and ' + 'left shoulder(jpt 4) of the first person to the x axis') + prog_bar = mmcv.ProgressBar(len(s)) + for i_s, skeleton in enumerate(s): + if skeleton.sum() == 0: + continue + joint_rshoulder = skeleton[0, 0, xaxis[0]] + joint_lshoulder = skeleton[0, 0, xaxis[1]] + axis = np.cross(joint_rshoulder - joint_lshoulder, [1, 0, 0]) + angle = angle_between(joint_rshoulder - joint_lshoulder, [1, 0, 0]) + matrix_x = rotation_matrix(axis, angle) + for i_p, person in enumerate(skeleton): + if person.sum() == 0: + continue + for i_f, frame in enumerate(person): + if frame.sum() == 0: + continue + for i_j, joint in enumerate(frame): + s[i_s, i_p, i_f, i_j] = np.dot(matrix_x, joint) + prog_bar.update() + + data = np.transpose(s, [0, 4, 2, 3, 1]) + return data + + +def read_skeleton_filter(file): + with open(file, 'r') as f: + skeleton_sequence = {} + skeleton_sequence['num_frame'] = int(f.readline()) + skeleton_sequence['frameInfo'] = [] + + for t in range(skeleton_sequence['num_frame']): + frame_info = {} + frame_info['numBody'] = int(f.readline()) + frame_info['bodyInfo'] = [] + + for m in range(frame_info['numBody']): + body_info = {} + body_info_key = [ + 'bodyID', 'clipedEdges', 'handLeftConfidence', + 'handLeftState', 'handRightConfidence', 'handRightState', + 'isResticted', 'leanX', 'leanY', 'trackingState' + ] + body_info = { + k: float(v) + for k, v in zip(body_info_key, + f.readline().split()) + } + body_info['numJoint'] = int(f.readline()) + body_info['jointInfo'] = [] + for v in range(body_info['numJoint']): + joint_info_key = [ + 'x', 'y', 'z', 'depthX', 'depthY', 'colorX', 'colorY', + 'orientationW', 'orientationX', 'orientationY', + 'orientationZ', 'trackingState' + ] + joint_info = { + k: float(v) + for k, v in zip(joint_info_key, + f.readline().split()) + } + body_info['jointInfo'].append(joint_info) + frame_info['bodyInfo'].append(body_info) + skeleton_sequence['frameInfo'].append(frame_info) + + return skeleton_sequence + + +def get_nonzero_std(s): # T V C + index = s.sum(-1).sum(-1) != 0 + s = s[index] + if len(s) != 0: + s = s[:, :, 0].std() + s[:, :, 1].std() + s[:, :, + 2].std() # three channels + else: + s = 0 + return s + + +def read_xyz(file, max_body=2, num_joint=25): + seq_info = read_skeleton_filter(file) + # num_frame = seq_info['num_frame'] + data = np.zeros((max_body, seq_info['num_frame'], num_joint, 3)) + for n, f in enumerate(seq_info['frameInfo']): + for m, b in enumerate(f['bodyInfo']): + for j, v in enumerate(b['jointInfo']): + if m < max_body and j < num_joint: + data[m, n, j, :] = [v['x'], v['y'], v['z']] + else: + pass + + # select two max energy body + energy = np.array([get_nonzero_std(x) for x in data]) + index = energy.argsort()[::-1][0:max_body_true] + data = data[index] + data = data.transpose(3, 1, 2, 0) + return data + + +def gendata(data_path, + out_path, + ignored_sample_path=None, + task='ntu60', + benchmark='xsub', + part='train', + pre_norm=True): + if ignored_sample_path is not None: + with open(ignored_sample_path, 'r') as f: + ignored_samples = [ + line.strip() + '.skeleton' for line in f.readlines() + ] + else: + ignored_samples = [] + + sample_name = [] + sample_label = [] + total_frames = [] + results = [] + + for filename in os.listdir(data_path): + if filename in ignored_samples: + continue + + setup_number = int(filename[filename.find('S') + 1:filename.find('S') + + 4]) + action_class = int(filename[filename.find('A') + 1:filename.find('A') + + 4]) + subject_id = int(filename[filename.find('P') + 1:filename.find('P') + + 4]) + camera_id = int(filename[filename.find('C') + 1:filename.find('C') + + 4]) + + if benchmark == 'xsub': + if task == 'ntu60': + istraining = (subject_id in training_subjects_60) + else: + istraining = (subject_id in training_subjects_120) + elif benchmark == 'xview': + istraining = (camera_id in training_cameras_60) + elif benchmark == 'xsetup': + istraining = (setup_number in training_setups_120) + else: + raise ValueError() + + if part == 'train': + issample = istraining + elif part == 'val': + issample = not (istraining) + else: + raise ValueError() + + if issample: + sample_name.append(filename) + sample_label.append(action_class - 1) + + fp = np.zeros((len(sample_label), 3, max_frame, num_joint, max_body_true), + dtype=np.float32) + prog_bar = mmcv.ProgressBar(len(sample_name)) + for i, s in enumerate(sample_name): + data = read_xyz( + osp.join(data_path, s), + max_body=max_body_kinect, + num_joint=num_joint).astype(np.float32) + fp[i, :, 0:data.shape[1], :, :] = data + total_frames.append(data.shape[1]) + prog_bar.update() + + if pre_norm: + fp = pre_normalization(fp) + + prog_bar = mmcv.ProgressBar(len(sample_name)) + for i, s in enumerate(sample_name): + anno = dict() + anno['total_frames'] = total_frames[i] + anno['keypoint'] = fp[i, :, 0:total_frames[i], :, :].transpose( + 3, 1, 2, 0) # C T V M -> M T V C + anno['frame_dir'] = osp.splitext(s)[0] + anno['img_shape'] = (1080, 1920) + anno['original_shape'] = (1080, 1920) + anno['label'] = sample_label[i] + + results.append(anno) + prog_bar.update() + + output_path = '{}/{}.pkl'.format(out_path, part) + mmcv.dump(results, output_path) + print(f'{benchmark}-{part} finish~!') + + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='Generate Pose Annotation for NTURGB-D raw skeleton data') + parser.add_argument( + '--data-path', + type=str, + help='raw skeleton data path', + default='data/ntu/nturgb+d_skeletons_60/') + parser.add_argument( + '--ignored-sample-path', + type=str, + default='NTU_RGBD_samples_with_missing_skeletons.txt') + parser.add_argument( + '--out-folder', type=str, default='data/ntu/nturgb+d_skeletons_60_3d') + parser.add_argument('--task', type=str, default='ntu60') + args = parser.parse_args() + + assert args.task in ['ntu60', 'ntu120'] + + if args.task == 'ntu60': + benchmark = ['xsub', 'xview'] + else: + benchmark = ['xsub', 'xsetup'] + part = ['train', 'val'] + + for b in benchmark: + for p in part: + out_path = osp.join(args.out_folder, b) + if not osp.exists(out_path): + os.makedirs(out_path) + gendata( + args.data_path, + out_path, + args.ignored_sample_path, + args.task, + benchmark=b, + part=p) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/label_map_gym99.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/label_map_gym99.txt new file mode 100644 index 00000000..daca3aa7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/label_map_gym99.txt @@ -0,0 +1,99 @@ +(VT) round-off, flic-flac with 0.5 turn on, stretched salto forward with 0.5 turn off +(VT) round-off, flic-flac on, stretched salto backward with 2 turn off +(VT) round-off, flic-flac on, stretched salto backward with 1 turn off +(VT) round-off, flic-flac on, stretched salto backward with 1.5 turn off +(VT) round-off, flic-flac on, stretched salto backward with 2.5 turn off +(VT) round-off, flic-flac on, stretched salto backward off +(FX) switch leap with 0.5 turn +(FX) switch leap with 1 turn +(FX) split leap with 1 turn +(FX) split leap with 1.5 turn or more +(FX) switch leap (leap forward with leg change to cross split) +(FX) split jump with 1 turn +(FX) split jump (leg separation 180 degree parallel to the floor) +(FX) johnson with additional 0.5 turn +(FX) straddle pike or side split jump with 1 turn +(FX) switch leap to ring position +(FX) stag jump +(FX) 2 turn with free leg held upward in 180 split position throughout turn +(FX) 2 turn in tuck stand on one leg, free leg straight throughout turn +(FX) 3 turn on one leg, free leg optional below horizontal +(FX) 2 turn on one leg, free leg optional below horizontal +(FX) 1 turn on one leg, free leg optional below horizontal +(FX) 2 turn or more with heel of free leg forward at horizontal throughout turn +(FX) 1 turn with heel of free leg forward at horizontal throughout turn +(FX) arabian double salto tucked +(FX) salto forward tucked +(FX) aerial walkover forward +(FX) salto forward stretched with 2 twist +(FX) salto forward stretched with 1 twist +(FX) salto forward stretched with 1.5 twist +(FX) salto forward stretched, feet land together +(FX) double salto backward stretched +(FX) salto backward stretched with 3 twist +(FX) salto backward stretched with 2 twist +(FX) salto backward stretched with 2.5 twist +(FX) salto backward stretched with 1.5 twist +(FX) double salto backward tucked with 2 twist +(FX) double salto backward tucked with 1 twist +(FX) double salto backward tucked +(FX) double salto backward piked with 1 twist +(FX) double salto backward piked +(BB) sissone (leg separation 180 degree on the diagonal to the floor, take off two feet, land on one foot) +(BB) split jump with 0.5 turn in side position +(BB) split jump +(BB) straddle pike jump or side split jump +(BB) split ring jump (ring jump with front leg horizontal to the floor) +(BB) switch leap with 0.5 turn +(BB) switch leap (leap forward with leg change) +(BB) split leap forward +(BB) johnson (leap forward with leg change and 0.25 turn to side split or straddle pike position) +(BB) switch leap to ring position +(BB) sheep jump (jump with upper back arch and head release with feet to head height/closed Ring) +(BB) wolf hop or jump (hip angle at 45, knees together) +(BB) 1 turn with heel of free leg forward at horizontal throughout turn +(BB) 2 turn on one leg, free leg optional below horizontal +(BB) 1 turn on one leg, free leg optional below horizontal +(BB) 2 turn in tuck stand on one leg, free leg optional +(BB) salto backward tucked with 1 twist +(BB) salto backward tucked +(BB) salto backward stretched-step out (feet land successively) +(BB) salto backward stretched with legs together +(BB) salto sideward tucked, take off from one leg to side stand +(BB) free aerial cartwheel landing in cross position +(BB) salto forward tucked to cross stand +(BB) free aerial walkover forward, landing on one or both feet +(BB) jump backward, flic-flac take-off with 0.5 twist through handstand to walkover forward, also with support on one arm +(BB) flic-flac to land on both feet +(BB) flic-flac with step-out, also with support on one arm +(BB) round-off +(BB) double salto backward tucked +(BB) salto backward tucked +(BB) double salto backward piked +(BB) salto backward stretched with 2 twist +(BB) salto backward stretched with 2.5 twist +(UB) pike sole circle backward with 1 turn to handstand +(UB) pike sole circle backward with 0.5 turn to handstand +(UB) pike sole circle backward to handstand +(UB) giant circle backward with 1 turn to handstand +(UB) giant circle backward with 0.5 turn to handstand +(UB) giant circle backward +(UB) giant circle forward with 1 turn on one arm before handstand phase +(UB) giant circle forward with 0.5 turn to handstand +(UB) giant circle forward +(UB) clear hip circle backward to handstand +(UB) clear pike circle backward with 1 turn to handstand +(UB) clear pike circle backward with 0.5 turn to handstand +(UB) clear pike circle backward to handstand +(UB) stalder backward with 1 turn to handstand +(UB) stalder backward to handstand +(UB) counter straddle over high bar to hang +(UB) counter piked over high bar to hang +(UB) (swing backward or front support) salto forward straddled to hang on high bar +(UB) (swing backward) salto forward piked to hang on high bar +(UB) (swing forward or hip circle backward) salto backward with 0.5 turn piked to hang on high bar +(UB) transition flight from high bar to low bar +(UB) transition flight from low bar to high bar +(UB) (swing forward) double salto backward tucked with 1 turn +(UB) (swing backward) double salto forward tucked +(UB) (swing forward) double salto backward stretched diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/label_map_ntu120.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/label_map_ntu120.txt new file mode 100644 index 00000000..69826dfe --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/label_map_ntu120.txt @@ -0,0 +1,120 @@ +drink water +eat meal/snack +brushing teeth +brushing hair +drop +pickup +throw +sitting down +standing up (from sitting position) +clapping +reading +writing +tear up paper +wear jacket +take off jacket +wear a shoe +take off a shoe +wear on glasses +take off glasses +put on a hat/cap +take off a hat/cap +cheer up +hand waving +kicking something +reach into pocket +hopping (one foot jumping) +jump up +make a phone call/answer phone +playing with phone/tablet +typing on a keyboard +pointing to something with finger +taking a selfie +check time (from watch) +rub two hands together +nod head/bow +shake head +wipe face +salute +put the palms together +cross hands in front (say stop) +sneeze/cough +staggering +falling +touch head (headache) +touch chest (stomachache/heart pain) +touch back (backache) +touch neck (neckache) +nausea or vomiting condition +use a fan (with hand or paper)/feeling warm +punching/slapping other person +kicking other person +pushing other person +pat on back of other person +point finger at the other person +hugging other person +giving something to other person +touch other person's pocket +handshaking +walking towards each other +walking apart from each other +put on headphone +take off headphone +shoot at the basket +bounce ball +tennis bat swing +juggling table tennis balls +hush (quite) +flick hair +thumb up +thumb down +make ok sign +make victory sign +staple book +counting money +cutting nails +cutting paper (using scissors) +snapping fingers +open bottle +sniff (smell) +squat down +toss a coin +fold paper +ball up paper +play magic cube +apply cream on face +apply cream on hand back +put on bag +take off bag +put something into a bag +take something out of a bag +open a box +move heavy objects +shake fist +throw up cap/hat +hands up (both hands) +cross arms +arm circles +arm swings +running on the spot +butt kicks (kick backward) +cross toe touch +side kick +yawn +stretch oneself +blow nose +hit other person with something +wield knife towards other person +knock over other person (hit with body) +grab other person’s stuff +shoot at other person with a gun +step on foot +high-five +cheers and drink +carry something with other person +take a photo of other person +follow other person +whisper in other person’s ear +exchange things with other person +support somebody with hand +finger-guessing game (playing rock-paper-scissors) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/ntu_pose_extraction.py b/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/ntu_pose_extraction.py new file mode 100644 index 00000000..7ce37ced --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/skeleton/ntu_pose_extraction.py @@ -0,0 +1,347 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import abc +import argparse +import os +import os.path as osp +import random as rd +import shutil +import string +from collections import defaultdict + +import cv2 +import mmcv +import numpy as np + +try: + from mmdet.apis import inference_detector, init_detector +except (ImportError, ModuleNotFoundError): + raise ImportError('Failed to import `inference_detector` and ' + '`init_detector` form `mmdet.apis`. These apis are ' + 'required in this script! ') + +try: + from mmpose.apis import inference_top_down_pose_model, init_pose_model +except (ImportError, ModuleNotFoundError): + raise ImportError('Failed to import `inference_top_down_pose_model` and ' + '`init_pose_model` form `mmpose.apis`. These apis are ' + 'required in this script! ') + +mmdet_root = '' +mmpose_root = '' + +args = abc.abstractproperty() +args.det_config = f'{mmdet_root}/configs/faster_rcnn/faster_rcnn_r50_caffe_fpn_mstrain_1x_coco-person.py' # noqa: E501 +args.det_checkpoint = 'https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco-person/faster_rcnn_r50_fpn_1x_coco-person_20201216_175929-d022e227.pth' # noqa: E501 +args.det_score_thr = 0.5 +args.pose_config = f'{mmpose_root}/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/hrnet_w32_coco_256x192.py' # noqa: E501 +args.pose_checkpoint = 'https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w32_coco_256x192-c78dce93_20200708.pth' # noqa: E501 + + +def gen_id(size=8): + chars = string.ascii_uppercase + string.digits + return ''.join(rd.choice(chars) for _ in range(size)) + + +def extract_frame(video_path): + dname = gen_id() + os.makedirs(dname, exist_ok=True) + frame_tmpl = osp.join(dname, 'img_{:05d}.jpg') + vid = cv2.VideoCapture(video_path) + frame_paths = [] + flag, frame = vid.read() + cnt = 0 + while flag: + frame_path = frame_tmpl.format(cnt + 1) + frame_paths.append(frame_path) + + cv2.imwrite(frame_path, frame) + cnt += 1 + flag, frame = vid.read() + + return frame_paths + + +def detection_inference(args, frame_paths): + model = init_detector(args.det_config, args.det_checkpoint, args.device) + assert model.CLASSES[0] == 'person', ('We require you to use a detector ' + 'trained on COCO') + results = [] + print('Performing Human Detection for each frame') + prog_bar = mmcv.ProgressBar(len(frame_paths)) + for frame_path in frame_paths: + result = inference_detector(model, frame_path) + # We only keep human detections with score larger than det_score_thr + result = result[0][result[0][:, 4] >= args.det_score_thr] + results.append(result) + prog_bar.update() + return results + + +def intersection(b0, b1): + l, r = max(b0[0], b1[0]), min(b0[2], b1[2]) + u, d = max(b0[1], b1[1]), min(b0[3], b1[3]) + return max(0, r - l) * max(0, d - u) + + +def iou(b0, b1): + i = intersection(b0, b1) + u = area(b0) + area(b1) - i + return i / u + + +def area(b): + return (b[2] - b[0]) * (b[3] - b[1]) + + +def removedup(bbox): + + def inside(box0, box1, thre=0.8): + return intersection(box0, box1) / area(box0) > thre + + num_bboxes = bbox.shape[0] + if num_bboxes == 1 or num_bboxes == 0: + return bbox + valid = [] + for i in range(num_bboxes): + flag = True + for j in range(num_bboxes): + if i != j and inside(bbox[i], + bbox[j]) and bbox[i][4] <= bbox[j][4]: + flag = False + break + if flag: + valid.append(i) + return bbox[valid] + + +def is_easy_example(det_results, num_person): + threshold = 0.95 + + def thre_bbox(bboxes, thre=threshold): + shape = [sum(bbox[:, -1] > thre) for bbox in bboxes] + ret = np.all(np.array(shape) == shape[0]) + return shape[0] if ret else -1 + + if thre_bbox(det_results) == num_person: + det_results = [x[x[..., -1] > 0.95] for x in det_results] + return True, np.stack(det_results) + return False, thre_bbox(det_results) + + +def bbox2tracklet(bbox): + iou_thre = 0.6 + tracklet_id = -1 + tracklet_st_frame = {} + tracklets = defaultdict(list) + for t, box in enumerate(bbox): + for idx in range(box.shape[0]): + matched = False + for tlet_id in range(tracklet_id, -1, -1): + cond1 = iou(tracklets[tlet_id][-1][-1], box[idx]) >= iou_thre + cond2 = ( + t - tracklet_st_frame[tlet_id] - len(tracklets[tlet_id]) < + 10) + cond3 = tracklets[tlet_id][-1][0] != t + if cond1 and cond2 and cond3: + matched = True + tracklets[tlet_id].append((t, box[idx])) + break + if not matched: + tracklet_id += 1 + tracklet_st_frame[tracklet_id] = t + tracklets[tracklet_id].append((t, box[idx])) + return tracklets + + +def drop_tracklet(tracklet): + tracklet = {k: v for k, v in tracklet.items() if len(v) > 5} + + def meanarea(track): + boxes = np.stack([x[1] for x in track]).astype(np.float32) + areas = (boxes[..., 2] - boxes[..., 0]) * ( + boxes[..., 3] - boxes[..., 1]) + return np.mean(areas) + + tracklet = {k: v for k, v in tracklet.items() if meanarea(v) > 5000} + return tracklet + + +def distance_tracklet(tracklet): + dists = {} + for k, v in tracklet.items(): + bboxes = np.stack([x[1] for x in v]) + c_x = (bboxes[..., 2] + bboxes[..., 0]) / 2. + c_y = (bboxes[..., 3] + bboxes[..., 1]) / 2. + c_x -= 480 + c_y -= 270 + c = np.concatenate([c_x[..., None], c_y[..., None]], axis=1) + dist = np.linalg.norm(c, axis=1) + dists[k] = np.mean(dist) + return dists + + +def tracklet2bbox(track, num_frame): + # assign_prev + bbox = np.zeros((num_frame, 5)) + trackd = {} + for k, v in track: + bbox[k] = v + trackd[k] = v + for i in range(num_frame): + if bbox[i][-1] <= 0.5: + mind = np.Inf + for k in trackd: + if np.abs(k - i) < mind: + mind = np.abs(k - i) + bbox[i] = bbox[k] + return bbox + + +def tracklets2bbox(tracklet, num_frame): + dists = distance_tracklet(tracklet) + sorted_inds = sorted(dists, key=lambda x: dists[x]) + dist_thre = np.Inf + for i in sorted_inds: + if len(tracklet[i]) >= num_frame / 2: + dist_thre = 2 * dists[i] + break + + dist_thre = max(50, dist_thre) + + bbox = np.zeros((num_frame, 5)) + bboxd = {} + for idx in sorted_inds: + if dists[idx] < dist_thre: + for k, v in tracklet[idx]: + if bbox[k][-1] < 0.01: + bbox[k] = v + bboxd[k] = v + bad = 0 + for idx in range(num_frame): + if bbox[idx][-1] < 0.01: + bad += 1 + mind = np.Inf + mink = None + for k in bboxd: + if np.abs(k - idx) < mind: + mind = np.abs(k - idx) + mink = k + bbox[idx] = bboxd[mink] + return bad, bbox + + +def bboxes2bbox(bbox, num_frame): + ret = np.zeros((num_frame, 2, 5)) + for t, item in enumerate(bbox): + if item.shape[0] <= 2: + ret[t, :item.shape[0]] = item + else: + inds = sorted( + list(range(item.shape[0])), key=lambda x: -item[x, -1]) + ret[t] = item[inds[:2]] + for t in range(num_frame): + if ret[t, 0, -1] <= 0.01: + ret[t] = ret[t - 1] + elif ret[t, 1, -1] <= 0.01: + if t: + if ret[t - 1, 0, -1] > 0.01 and ret[t - 1, 1, -1] > 0.01: + if iou(ret[t, 0], ret[t - 1, 0]) > iou( + ret[t, 0], ret[t - 1, 1]): + ret[t, 1] = ret[t - 1, 1] + else: + ret[t, 1] = ret[t - 1, 0] + return ret + + +def ntu_det_postproc(vid, det_results): + det_results = [removedup(x) for x in det_results] + label = int(vid.split('/')[-1].split('A')[1][:3]) + mpaction = list(range(50, 61)) + list(range(106, 121)) + n_person = 2 if label in mpaction else 1 + is_easy, bboxes = is_easy_example(det_results, n_person) + if is_easy: + print('\nEasy Example') + return bboxes + + tracklets = bbox2tracklet(det_results) + tracklets = drop_tracklet(tracklets) + + print(f'\nHard {n_person}-person Example, found {len(tracklets)} tracklet') + if n_person == 1: + if len(tracklets) == 1: + tracklet = list(tracklets.values())[0] + det_results = tracklet2bbox(tracklet, len(det_results)) + return np.stack(det_results) + else: + bad, det_results = tracklets2bbox(tracklets, len(det_results)) + return det_results + # n_person is 2 + if len(tracklets) <= 2: + tracklets = list(tracklets.values()) + bboxes = [] + for tracklet in tracklets: + bboxes.append(tracklet2bbox(tracklet, len(det_results))[:, None]) + bbox = np.concatenate(bboxes, axis=1) + return bbox + else: + return bboxes2bbox(det_results, len(det_results)) + + +def pose_inference(args, frame_paths, det_results): + model = init_pose_model(args.pose_config, args.pose_checkpoint, + args.device) + print('Performing Human Pose Estimation for each frame') + prog_bar = mmcv.ProgressBar(len(frame_paths)) + + num_frame = len(det_results) + num_person = max([len(x) for x in det_results]) + kp = np.zeros((num_person, num_frame, 17, 3), dtype=np.float32) + + for i, (f, d) in enumerate(zip(frame_paths, det_results)): + # Align input format + d = [dict(bbox=x) for x in list(d) if x[-1] > 0.5] + pose = inference_top_down_pose_model(model, f, d, format='xyxy')[0] + for j, item in enumerate(pose): + kp[j, i] = item['keypoints'] + prog_bar.update() + return kp + + +def ntu_pose_extraction(vid, skip_postproc=False): + frame_paths = extract_frame(vid) + det_results = detection_inference(args, frame_paths) + if not skip_postproc: + det_results = ntu_det_postproc(vid, det_results) + pose_results = pose_inference(args, frame_paths, det_results) + anno = dict() + anno['keypoint'] = pose_results[..., :2] + anno['keypoint_score'] = pose_results[..., 2] + anno['frame_dir'] = osp.splitext(osp.basename(vid))[0] + anno['img_shape'] = (1080, 1920) + anno['original_shape'] = (1080, 1920) + anno['total_frames'] = pose_results.shape[1] + anno['label'] = int(osp.basename(vid).split('A')[1][:3]) - 1 + shutil.rmtree(osp.dirname(frame_paths[0])) + + return anno + + +def parse_args(): + parser = argparse.ArgumentParser( + description='Generate Pose Annotation for a single NTURGB-D video') + parser.add_argument('video', type=str, help='source video') + parser.add_argument('output', type=str, help='output pickle name') + parser.add_argument('--device', type=str, default='cuda:0') + parser.add_argument('--skip-postproc', action='store_true') + args = parser.parse_args() + return args + + +if __name__ == '__main__': + global_args = parse_args() + args.device = global_args.device + args.video = global_args.video + args.output = global_args.output + args.skip_postproc = global_args.skip_postproc + anno = ntu_pose_extraction(args.video, args.skip_postproc) + mmcv.dump(anno, args.output) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/README.md b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/README.md new file mode 100644 index 00000000..75f4c111 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/README.md @@ -0,0 +1,144 @@ +# Preparing Something-Something V1 + +## Introduction + + + +```BibTeX +@misc{goyal2017something, + title={The "something something" video database for learning and evaluating visual common sense}, + author={Raghav Goyal and Samira Ebrahimi Kahou and Vincent Michalski and Joanna Materzyńska and Susanne Westphal and Heuna Kim and Valentin Haenel and Ingo Fruend and Peter Yianilos and Moritz Mueller-Freitag and Florian Hoppe and Christian Thurau and Ingo Bax and Roland Memisevic}, + year={2017}, + eprint={1706.04261}, + archivePrefix={arXiv}, + primaryClass={cs.CV} +} +``` + +For basic dataset information, you can refer to the dataset [website](https://20bn.com/datasets/something-something/v1). +Before we start, please make sure that the directory is located at `$MMACTION2/tools/data/sthv1/`. + +## Step 1. Prepare Annotations + +First of all, you have to sign in and download annotations to `$MMACTION2/data/sthv1/annotations` on the official [website](https://20bn.com/datasets/something-something/v1). + +## Step 2. Prepare RGB Frames + +Since the [sthv1 website](https://20bn.com/datasets/something-something/v1) doesn't provide the original video data and only extracted RGB frames are available, you have to directly download RGB frames from [sthv1 website](https://20bn.com/datasets/something-something/v1). + +You can download all compressed file parts on [sthv1 website](https://20bn.com/datasets/something-something/v1) to `$MMACTION2/data/sthv1/` and use the following command to uncompress. + +```shell +cd $MMACTION2/data/sthv1/ +cat 20bn-something-something-v1-?? | tar zx +cd $MMACTION2/tools/data/sthv1/ +``` + +For users who only want to use RGB frames, you can skip to step 5 to generate file lists in the format of rawframes. +Since the prefix of official JPGs is "%05d.jpg" (e.g., "00001.jpg"), users need to add `"filename_tmpl='{:05}.jpg'"` to the dict of `data.train`, `data.val` and `data.test` in the config files related with sthv1 like this: + +``` +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +``` + +## Step 3. Extract Flow + +This part is **optional** if you only want to use RGB frames. + +Before extracting, please refer to [install.md](/docs/install.md) for installing [denseflow](https://github.com/open-mmlab/denseflow). + +If you have plenty of SSD space, then we recommend extracting frames there for better I/O performance. + +You can run the following script to soft link SSD. + +```shell +# execute these two line (Assume the SSD is mounted at "/mnt/SSD/") +mkdir /mnt/SSD/sthv1_extracted/ +ln -s /mnt/SSD/sthv1_extracted/ ../../../data/sthv1/rawframes +``` + +Then, you can run the following script to extract optical flow based on RGB frames. + +```shell +cd $MMACTION2/tools/data/sthv1/ +bash extract_flow.sh +``` + +## Step 4. Encode Videos + +This part is **optional** if you only want to use RGB frames. + +You can run the following script to encode videos. + +```shell +cd $MMACTION2/tools/data/sthv1/ +bash encode_videos.sh +``` + +## Step 5. Generate File List + +You can run the follow script to generate file list in the format of rawframes and videos. + +```shell +cd $MMACTION2/tools/data/sthv1/ +bash generate_{rawframes, videos}_filelist.sh +``` + +## Step 6. Check Directory Structure + +After the whole data process for Something-Something V1 preparation, +you will get the rawframes (RGB + Flow), and annotation files for Something-Something V1. + +In the context of the whole project (for Something-Something V1 only), the folder structure will look like: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── sthv1 +│ │ ├── sthv1_{train,val}_list_rawframes.txt +│ │ ├── sthv1_{train,val}_list_videos.txt +│ │ ├── annotations +│ | ├── videos +│ | | ├── 1.mp4 +│ | | ├── 2.mp4 +│ | | ├──... +│ | ├── rawframes +│ | | ├── 1 +│ | | | ├── 00001.jpg +│ | | | ├── 00002.jpg +│ | | | ├── ... +│ | | | ├── flow_x_00001.jpg +│ | | | ├── flow_x_00002.jpg +│ | | | ├── ... +│ | | | ├── flow_y_00001.jpg +│ | | | ├── flow_y_00002.jpg +│ | | | ├── ... +│ | | ├── 2 +│ | | ├── ... + +``` + +For training and evaluating on Something-Something V1, please refer to [getting_started.md](/docs/getting_started.md). diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/README_zh-CN.md new file mode 100644 index 00000000..11cc9318 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/README_zh-CN.md @@ -0,0 +1,142 @@ +# 准备 Something-Something V1 + +## 简介 + +``` +@misc{goyal2017something, + title={The "something something" video database for learning and evaluating visual common sense}, + author={Raghav Goyal and Samira Ebrahimi Kahou and Vincent Michalski and Joanna Materzyńska and Susanne Westphal and Heuna Kim and Valentin Haenel and Ingo Fruend and Peter Yianilos and Moritz Mueller-Freitag and Florian Hoppe and Christian Thurau and Ingo Bax and Roland Memisevic}, + year={2017}, + eprint={1706.04261}, + archivePrefix={arXiv}, + primaryClass={cs.CV} +} +``` + +用户可参考该数据集的 [官网](https://20bn.com/datasets/something-something/v1),以获取数据集相关的基本信息。 +在数据集准备前,请确保命令行当前路径为 `$MMACTION2/tools/data/sthv1/`。 + +## 步骤 1. 下载标注文件 + +首先,用户需要在 [官网](https://20bn.com/datasets/something-something/v1) 进行注册,才能下载标注文件。下载好的标注文件需要放在 `$MMACTION2/data/sthv1/annotations` 文件夹下。 + +## 步骤 2. 准备 RGB 帧 + +[官网](https://20bn.com/datasets/something-something/v1) 并未提供原始视频文件,只提供了对原视频文件进行抽取得到的 RGB 帧,用户可在 [官网](https://20bn.com/datasets/something-something/v1) 直接下载。 + +将下载好的压缩文件放在 `$MMACTION2/data/sthv1/` 文件夹下,并使用以下脚本进行解压。 + +```shell +cd $MMACTION2/data/sthv1/ +cat 20bn-something-something-v1-?? | tar zx +cd $MMACTION2/tools/data/sthv1/ +``` + +如果用户只想使用 RGB 帧,则可以跳过中间步骤至步骤 5 以直接生成视频帧的文件列表。 +由于官网的 JPG 文件名形如 "%05d.jpg" (比如,"00001.jpg"),需要在配置文件的 `data.train`, `data.val` 和 `data.test` 处添加 `"filename_tmpl='{:05}.jpg'"` 代码,以修改文件名模板。 + +``` +data = dict( + videos_per_gpu=16, + workers_per_gpu=2, + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + filename_tmpl='{:05}.jpg', + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + filename_tmpl='{:05}.jpg', + pipeline=test_pipeline)) +``` + +## 步骤 3. 抽取光流 + +如果用户只想使用原 RGB 帧加载训练,则该部分是 **可选项**。 + +在抽取视频帧和光流之前,请参考 [安装指南](/docs_zh_CN/install.md) 安装 [denseflow](https://github.com/open-mmlab/denseflow)。 + +如果拥有大量的 SSD 存储空间,则推荐将抽取的帧存储至 I/O 性能更优秀的 SSD 中。 + +可以运行以下命令为 SSD 建立软链接。 + +```shell +# 执行这两行进行抽取(假设 SSD 挂载在 "/mnt/SSD/") +mkdir /mnt/SSD/sthv1_extracted/ +ln -s /mnt/SSD/sthv1_extracted/ ../../../data/sthv1/rawframes +``` + +如果想抽取光流,则可以运行以下脚本从 RGB 帧中抽取出光流。 + +```shell +cd $MMACTION2/tools/data/sthv1/ +bash extract_flow.sh +``` + +## 步骤 4: 编码视频 + +如果用户只想使用 RGB 帧加载训练,则该部分是 **可选项**。 + +用户可以运行以下命令进行视频编码。 + +```shell +cd $MMACTION2/tools/data/sthv1/ +bash encode_videos.sh +``` + +## 步骤 5. 生成文件列表 + +用户可以通过运行以下命令生成帧和视频格式的文件列表。 + +```shell +cd $MMACTION2/tools/data/sthv1/ +bash generate_{rawframes, videos}_filelist.sh +``` + +## 步骤 6. 检查文件夹结构 + +在完成所有 Something-Something V1 数据集准备流程后, +用户可以获得对应的 RGB + 光流文件,视频文件以及标注文件。 + +在整个 MMAction2 文件夹下,Something-Something V1 的文件结构如下: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── sthv1 +│ │ ├── sthv1_{train,val}_list_rawframes.txt +│ │ ├── sthv1_{train,val}_list_videos.txt +│ │ ├── annotations +│ | ├── videos +│ | | ├── 1.mp4 +│ | | ├── 2.mp4 +│ | | ├──... +│ | ├── rawframes +│ | | ├── 1 +│ | | | ├── 00001.jpg +│ | | | ├── 00002.jpg +│ | | | ├── ... +│ | | | ├── flow_x_00001.jpg +│ | | | ├── flow_x_00002.jpg +│ | | | ├── ... +│ | | | ├── flow_y_00001.jpg +│ | | | ├── flow_y_00002.jpg +│ | | | ├── ... +│ | | ├── 2 +│ | | ├── ... + +``` + +关于对 Something-Something V1 进行训练和验证,可以参考 [基础教程](/docs_zh_CN/getting_started.md)。 diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/encode_videos.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/encode_videos.sh new file mode 100644 index 00000000..79a49ab3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/encode_videos.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +cd ../ +python build_videos.py ../../data/sthv1/rawframes/ ../../data/sthv1/videos/ --fps 12 --level 1 --start-idx 1 --filename-tmpl '%05d' +echo "Encode videos" + +cd sthv1/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/extract_flow.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/extract_flow.sh new file mode 100644 index 00000000..25a66883 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/extract_flow.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/sthv1/rawframes/ ../../data/sthv1/rawframes/ --task flow --level 1 --flow-type tvl1 --input-frames +echo "Flow (tv-l1) Generated" +cd sthv1/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/generate_rawframes_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/generate_rawframes_filelist.sh new file mode 100644 index 00000000..b6a3935a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/generate_rawframes_filelist.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +cd ../../../ +PYTHONPATH=. python tools/data/build_file_list.py sthv1 data/sthv1/rawframes/ --rgb-prefix '0' --num-split 1 --level 1 --subset train --format rawframes --shuffle +PYTHONPATH=. python tools/data/build_file_list.py sthv1 data/sthv1/rawframes/ --rgb-prefix '0' --num-split 1 --level 1 --subset val --format rawframes --shuffle +echo "Filelist for rawframes generated." + +cd tools/data/sthv1/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/generate_videos_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/generate_videos_filelist.sh new file mode 100644 index 00000000..4da50b93 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/generate_videos_filelist.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +cd ../../../ +PYTHONPATH=. python tools/data/build_file_list.py sthv1 data/sthv1/videos/ --num-split 1 --level 1 --subset train --format videos --shuffle +PYTHONPATH=. python tools/data/build_file_list.py sthv1 data/sthv1/videos/ --num-split 1 --level 1 --subset val --format videos --shuffle +echo "Filelist for videos generated." + +cd tools/data/sthv1/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/label_map.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/label_map.txt new file mode 100644 index 00000000..8e07166d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv1/label_map.txt @@ -0,0 +1,174 @@ +Holding something +Turning something upside down +Turning the camera left while filming something +Stacking number of something +Turning the camera right while filming something +Opening something +Approaching something with your camera +Picking something up +Pushing something so that it almost falls off but doesn't +Folding something +Moving something away from the camera +Closing something +Moving away from something with your camera +Turning the camera downwards while filming something +Pushing something so that it slightly moves +Turning the camera upwards while filming something +Pretending to pick something up +Showing something to the camera +Moving something up +Plugging something into something +Unfolding something +Putting something onto something +Showing that something is empty +Pretending to put something on a surface +Taking something from somewhere +Putting something next to something +Moving something towards the camera +Showing a photo of something to the camera +Pushing something with something +Throwing something +Pushing something from left to right +Something falling like a feather or paper +Throwing something in the air and letting it fall +Throwing something against something +Lifting something with something on it +Taking one of many similar things on the table +Showing something behind something +Putting something into something +Tearing something just a little bit +Moving something away from something +Tearing something into two pieces +Pushing something from right to left +Holding something next to something +Putting something, something and something on the table +Pretending to take something from somewhere +Moving something closer to something +Pretending to put something next to something +Uncovering something +Something falling like a rock +Putting something and something on the table +Pouring something into something +Moving something down +Pulling something from right to left +Throwing something in the air and catching it +Tilting something with something on it until it falls off +Putting something in front of something +Pretending to turn something upside down +Putting something on a surface +Pretending to throw something +Showing something on top of something +Covering something with something +Squeezing something +Putting something similar to other things that are already on the table +Lifting up one end of something, then letting it drop down +Taking something out of something +Moving part of something +Pulling something from left to right +Lifting something up completely without letting it drop down +Attaching something to something +Putting something behind something +Moving something and something closer to each other +Holding something in front of something +Pushing something so that it falls off the table +Holding something over something +Pretending to open something without actually opening it +Removing something, revealing something behind +Hitting something with something +Moving something and something away from each other +Touching (without moving) part of something +Pretending to put something into something +Showing that something is inside something +Lifting something up completely, then letting it drop down +Pretending to take something out of something +Holding something behind something +Laying something on the table on its side, not upright +Poking something so it slightly moves +Pretending to close something without actually closing it +Putting something upright on the table +Dropping something in front of something +Dropping something behind something +Lifting up one end of something without letting it drop down +Rolling something on a flat surface +Throwing something onto a surface +Showing something next to something +Dropping something onto something +Stuffing something into something +Dropping something into something +Piling something up +Letting something roll along a flat surface +Twisting something +Spinning something that quickly stops spinning +Putting number of something onto something +Putting something underneath something +Moving something across a surface without it falling down +Plugging something into something but pulling it right out as you remove your hand +Dropping something next to something +Poking something so that it falls over +Spinning something so it continues spinning +Poking something so lightly that it doesn't or almost doesn't move +Wiping something off of something +Moving something across a surface until it falls down +Pretending to poke something +Putting something that cannot actually stand upright upright on the table, so it falls on its side +Pulling something out of something +Scooping something up with something +Pretending to be tearing something that is not tearable +Burying something in something +Tipping something over +Tilting something with something on it slightly so it doesn't fall down +Pretending to put something onto something +Bending something until it breaks +Letting something roll down a slanted surface +Trying to bend something unbendable so nothing happens +Bending something so that it deforms +Digging something out of something +Pretending to put something underneath something +Putting something on a flat surface without letting it roll +Putting something on the edge of something so it is not supported and falls down +Spreading something onto something +Pretending to put something behind something +Sprinkling something onto something +Something colliding with something and both come to a halt +Pushing something off of something +Putting something that can't roll onto a slanted surface, so it stays where it is +Lifting a surface with something on it until it starts sliding down +Pretending or failing to wipe something off of something +Trying but failing to attach something to something because it doesn't stick +Pulling something from behind of something +Pushing something so it spins +Pouring something onto something +Pulling two ends of something but nothing happens +Moving something and something so they pass each other +Pretending to sprinkle air onto something +Putting something that can't roll onto a slanted surface, so it slides down +Something colliding with something and both are being deflected +Pretending to squeeze something +Pulling something onto something +Putting something onto something else that cannot support it so it falls down +Lifting a surface with something on it but not enough for it to slide down +Pouring something out of something +Moving something and something so they collide with each other +Tipping something with something in it over, so something in it falls out +Letting something roll up a slanted surface, so it rolls back down +Pretending to scoop something up with something +Pretending to pour something out of something, but something is empty +Pulling two ends of something so that it gets stretched +Failing to put something into something because something does not fit +Pretending or trying and failing to twist something +Trying to pour something into something, but missing so it spills next to it +Something being deflected from something +Poking a stack of something so the stack collapses +Spilling something onto something +Pulling two ends of something so that it separates into two pieces +Pouring something into something until it overflows +Pretending to spread air onto something +Twisting (wringing) something wet until water comes out +Poking a hole into something soft +Spilling something next to something +Poking a stack of something without the stack collapsing +Putting something onto a slanted surface but it doesn't glide down +Pushing something onto something +Poking something so that it spins around +Spilling something behind something +Poking a hole into some substance diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/README.md b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/README.md new file mode 100644 index 00000000..af112872 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/README.md @@ -0,0 +1,118 @@ +# Preparing Something-Something V2 + +## Introduction + + + +```BibTeX +@misc{goyal2017something, + title={The "something something" video database for learning and evaluating visual common sense}, + author={Raghav Goyal and Samira Ebrahimi Kahou and Vincent Michalski and Joanna Materzyńska and Susanne Westphal and Heuna Kim and Valentin Haenel and Ingo Fruend and Peter Yianilos and Moritz Mueller-Freitag and Florian Hoppe and Christian Thurau and Ingo Bax and Roland Memisevic}, + year={2017}, + eprint={1706.04261}, + archivePrefix={arXiv}, + primaryClass={cs.CV} +} +``` + +For basic dataset information, you can refer to the dataset [website](https://20bn.com/datasets/something-something/v2). +Before we start, please make sure that the directory is located at `$MMACTION2/tools/data/sthv2/`. + +## Step 1. Prepare Annotations + +First of all, you have to sign in and download annotations to `$MMACTION2/data/sthv2/annotations` on the official [website](https://20bn.com/datasets/something-something/v2). + +## Step 2. Prepare Videos + +Then, you can download all data parts to `$MMACTION2/data/sthv2/` and use the following command to uncompress. + +```shell +cd $MMACTION2/data/sthv2/ +cat 20bn-something-something-v2-?? | tar zx +cd $MMACTION2/tools/data/sthv2/ +``` + +## Step 3. Extract RGB and Flow + +This part is **optional** if you only want to use the video loader. + +Before extracting, please refer to [install.md](/docs/install.md) for installing [denseflow](https://github.com/open-mmlab/denseflow). + +If you have plenty of SSD space, then we recommend extracting frames there for better I/O performance. + +You can run the following script to soft link SSD. + +```shell +# execute these two line (Assume the SSD is mounted at "/mnt/SSD/") +mkdir /mnt/SSD/sthv2_extracted/ +ln -s /mnt/SSD/sthv2_extracted/ ../../../data/sthv2/rawframes +``` + +If you only want to play with RGB frames (since extracting optical flow can be time-consuming), consider running the following script to extract **RGB-only** frames using denseflow. + +```shell +cd $MMACTION2/tools/data/sthv2/ +bash extract_rgb_frames.sh +``` + +If you didn't install denseflow, you can still extract RGB frames using OpenCV by the following script, but it will keep the original size of the images. + +```shell +cd $MMACTION2/tools/data/sthv2/ +bash extract_rgb_frames_opencv.sh +``` + +If both are required, run the following script to extract frames. + +```shell +cd $MMACTION2/tools/data/sthv2/ +bash extract_frames.sh +``` + +## Step 4. Generate File List + +you can run the follow script to generate file list in the format of rawframes and videos. + +```shell +cd $MMACTION2/tools/data/sthv2/ +bash generate_{rawframes, videos}_filelist.sh +``` + +## Step 5. Check Directory Structure + +After the whole data process for Something-Something V2 preparation, +you will get the rawframes (RGB + Flow), videos and annotation files for Something-Something V2. + +In the context of the whole project (for Something-Something V2 only), the folder structure will look like: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── sthv2 +│ │ ├── sthv2_{train,val}_list_rawframes.txt +│ │ ├── sthv2_{train,val}_list_videos.txt +│ │ ├── annotations +│ | ├── videos +│ | | ├── 1.mp4 +│ | | ├── 2.mp4 +│ | | ├──... +│ | ├── rawframes +│ | | ├── 1 +│ | | | ├── img_00001.jpg +│ | | | ├── img_00002.jpg +│ | | | ├── ... +│ | | | ├── flow_x_00001.jpg +│ | | | ├── flow_x_00002.jpg +│ | | | ├── ... +│ | | | ├── flow_y_00001.jpg +│ | | | ├── flow_y_00002.jpg +│ | | | ├── ... +│ | | ├── 2 +│ | | ├── ... + +``` + +For training and evaluating on Something-Something V2, please refer to [getting_started.md](/docs/getting_started.md). diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/README_zh-CN.md new file mode 100644 index 00000000..7d8080c5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/README_zh-CN.md @@ -0,0 +1,118 @@ +# 准备 Something-Something V2 + +## 简介 + + + +```BibTeX +@misc{goyal2017something, + title={The "something something" video database for learning and evaluating visual common sense}, + author={Raghav Goyal and Samira Ebrahimi Kahou and Vincent Michalski and Joanna Materzyńska and Susanne Westphal and Heuna Kim and Valentin Haenel and Ingo Fruend and Peter Yianilos and Moritz Mueller-Freitag and Florian Hoppe and Christian Thurau and Ingo Bax and Roland Memisevic}, + year={2017}, + eprint={1706.04261}, + archivePrefix={arXiv}, + primaryClass={cs.CV} +} +``` + +用户可参考该数据集的 [官网](https://20bn.com/datasets/something-something/v2),以获取数据集相关的基本信息。 +在数据集准备前,请确保命令行当前路径为 `$MMACTION2/tools/data/sthv2/`。 + +## 步骤 1. 下载标注文件 + +首先,用户需要在 [官网](https://20bn.com/datasets/something-something/v2) 完成注册,才能下载标注文件。下载好的标注文件需要放在 `$MMACTION2/data/sthv2/annotations` 文件夹下。 + +## 步骤 2. 准备视频 + +之后,用户可将下载好的压缩文件放在 `$MMACTION2/data/sthv2/` 文件夹下,并且使用以下指令进行解压。 + +```shell +cd $MMACTION2/data/sthv2/ +cat 20bn-something-something-v2-?? | tar zx +cd $MMACTION2/tools/data/sthv2/ +``` + +## 步骤 3. 抽取 RGB 帧和光流 + +如果用户只想使用视频加载训练,则该部分是 **可选项**。 + +在抽取视频帧和光流之前,请参考 [安装指南](/docs_zh_CN/install.md) 安装 [denseflow](https://github.com/open-mmlab/denseflow)。 + +如果拥有大量的 SSD 存储空间,则推荐将抽取的帧存储至 I/O 性能更优秀的 SSD 中。 + +可以运行以下命令为 SSD 建立软链接。 + +```shell +# 执行这两行进行抽取(假设 SSD 挂载在 "/mnt/SSD/") +mkdir /mnt/SSD/sthv2_extracted/ +ln -s /mnt/SSD/sthv2_extracted/ ../../../data/sthv2/rawframes +``` + +如果用户需要抽取 RGB 帧(因为抽取光流的过程十分耗时),可以考虑运行以下命令使用 denseflow **只抽取 RGB 帧**。 + +```shell +cd $MMACTION2/tools/data/sthv2/ +bash extract_rgb_frames.sh +``` + +如果用户没有安装 denseflow,则可以运行以下命令使用 OpenCV 抽取 RGB 帧。然而,该方法只能抽取与原始视频分辨率相同的帧。 + +```shell +cd $MMACTION2/tools/data/sthv2/ +bash extract_rgb_frames_opencv.sh +``` + +如果用户想抽取 RGB 帧和光流,则可以运行以下脚本进行抽取。 + +```shell +cd $MMACTION2/tools/data/sthv2/ +bash extract_frames.sh +``` + +## 步骤 4. 生成文件列表 + +用户可以通过运行以下命令生成帧和视频格式的文件列表。 + +```shell +cd $MMACTION2/tools/data/sthv2/ +bash generate_{rawframes, videos}_filelist.sh +``` + +## 步骤 5. 检查文件夹结构 + +在完成所有 Something-Something V2 数据集准备流程后, +用户可以获得对应的 RGB + 光流文件,视频文件以及标注文件。 + +在整个 MMAction2 文件夹下,Something-Something V2 的文件结构如下: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── sthv2 +│ │ ├── sthv2_{train,val}_list_rawframes.txt +│ │ ├── sthv2_{train,val}_list_videos.txt +│ │ ├── annotations +│ | ├── videos +│ | | ├── 1.mp4 +│ | | ├── 2.mp4 +│ | | ├──... +│ | ├── rawframes +│ | | ├── 1 +│ | | | ├── img_00001.jpg +│ | | | ├── img_00002.jpg +│ | | | ├── ... +│ | | | ├── flow_x_00001.jpg +│ | | | ├── flow_x_00002.jpg +│ | | | ├── ... +│ | | | ├── flow_y_00001.jpg +│ | | | ├── flow_y_00002.jpg +│ | | | ├── ... +│ | | ├── 2 +│ | | ├── ... + +``` + +关于对 Something-Something V2 进行训练和验证,可以参考 [基础教程](/docs_zh_CN/getting_started.md)。 diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/extract_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/extract_frames.sh new file mode 100644 index 00000000..22bc4360 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/extract_frames.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/sthv2/videos/ ../../data/sthv2/rawframes/ --task both --level 1 --flow-type tvl1 --ext webm +echo "Raw frames (RGB and tv-l1) Generated" +cd sthv2/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/extract_rgb_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/extract_rgb_frames.sh new file mode 100644 index 00000000..5b6d58d0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/extract_rgb_frames.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/sthv2/videos/ ../../data/sthv2/rawframes/ --task rgb --level 1 --ext webm +echo "Genearte raw frames (RGB only)" + +cd sthv2/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/extract_rgb_frames_opencv.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/extract_rgb_frames_opencv.sh new file mode 100644 index 00000000..5805d618 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/extract_rgb_frames_opencv.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/sthv2/videos/ ../../data/sthv2/rawframes/ --task rgb --level 1 --ext webm --use-opencv +echo "Genearte raw frames (RGB only)" + +cd sthv2/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/generate_rawframes_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/generate_rawframes_filelist.sh new file mode 100644 index 00000000..da6f938b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/generate_rawframes_filelist.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +cd ../../../ +PYTHONPATH=. python tools/data/build_file_list.py sthv2 data/sthv2/rawframes/ --num-split 1 --level 1 --subset train --format rawframes --shuffle +PYTHONPATH=. python tools/data/build_file_list.py sthv2 data/sthv2/rawframes/ --num-split 1 --level 1 --subset val --format rawframes --shuffle +echo "Filelist for rawframes generated." + +cd tools/data/sthv2/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/generate_videos_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/generate_videos_filelist.sh new file mode 100644 index 00000000..bef25544 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/generate_videos_filelist.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +cd ../../../ +PYTHONPATH=. python tools/data/build_file_list.py sthv2 data/sthv2/videos/ --num-split 1 --level 1 --subset train --format videos --shuffle +PYTHONPATH=. python tools/data/build_file_list.py sthv2 data/sthv2/videos/ --num-split 1 --level 1 --subset val --format videos --shuffle +echo "Filelist for videos generated." + +cd tools/data/sthv2/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/label_map.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/label_map.txt new file mode 100644 index 00000000..7dbb309b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/sthv2/label_map.txt @@ -0,0 +1,174 @@ +Approaching something with your camera +Attaching something to something +Bending something so that it deforms +Bending something until it breaks +Burying something in something +Closing something +Covering something with something +Digging something out of something +Dropping something behind something +Dropping something in front of something +Dropping something into something +Dropping something next to something +Dropping something onto something +Failing to put something into something because something does not fit +Folding something +Hitting something with something +Holding something +Holding something behind something +Holding something in front of something +Holding something next to something +Holding something over something +Laying something on the table on its side, not upright +Letting something roll along a flat surface +Letting something roll down a slanted surface +Letting something roll up a slanted surface, so it rolls back down +Lifting a surface with something on it but not enough for it to slide down +Lifting a surface with something on it until it starts sliding down +Lifting something up completely without letting it drop down +Lifting something up completely, then letting it drop down +Lifting something with something on it +Lifting up one end of something without letting it drop down +Lifting up one end of something, then letting it drop down +Moving away from something with your camera +Moving part of something +Moving something across a surface until it falls down +Moving something across a surface without it falling down +Moving something and something away from each other +Moving something and something closer to each other +Moving something and something so they collide with each other +Moving something and something so they pass each other +Moving something away from something +Moving something away from the camera +Moving something closer to something +Moving something down +Moving something towards the camera +Moving something up +Opening something +Picking something up +Piling something up +Plugging something into something +Plugging something into something but pulling it right out as you remove your hand +Poking a hole into some substance +Poking a hole into something soft +Poking a stack of something so the stack collapses +Poking a stack of something without the stack collapsing +Poking something so it slightly moves +Poking something so lightly that it doesn't or almost doesn't move +Poking something so that it falls over +Poking something so that it spins around +Pouring something into something +Pouring something into something until it overflows +Pouring something onto something +Pouring something out of something +Pretending or failing to wipe something off of something +Pretending or trying and failing to twist something +Pretending to be tearing something that is not tearable +Pretending to close something without actually closing it +Pretending to open something without actually opening it +Pretending to pick something up +Pretending to poke something +Pretending to pour something out of something, but something is empty +Pretending to put something behind something +Pretending to put something into something +Pretending to put something next to something +Pretending to put something on a surface +Pretending to put something onto something +Pretending to put something underneath something +Pretending to scoop something up with something +Pretending to spread air onto something +Pretending to sprinkle air onto something +Pretending to squeeze something +Pretending to take something from somewhere +Pretending to take something out of something +Pretending to throw something +Pretending to turn something upside down +Pulling something from behind of something +Pulling something from left to right +Pulling something from right to left +Pulling something onto something +Pulling something out of something +Pulling two ends of something but nothing happens +Pulling two ends of something so that it gets stretched +Pulling two ends of something so that it separates into two pieces +Pushing something from left to right +Pushing something from right to left +Pushing something off of something +Pushing something onto something +Pushing something so it spins +Pushing something so that it almost falls off but doesn't +Pushing something so that it falls off the table +Pushing something so that it slightly moves +Pushing something with something +Putting number of something onto something +Putting something and something on the table +Putting something behind something +Putting something in front of something +Putting something into something +Putting something next to something +Putting something on a flat surface without letting it roll +Putting something on a surface +Putting something on the edge of something so it is not supported and falls down +Putting something onto a slanted surface but it doesn't glide down +Putting something onto something +Putting something onto something else that cannot support it so it falls down +Putting something similar to other things that are already on the table +Putting something that can't roll onto a slanted surface, so it slides down +Putting something that can't roll onto a slanted surface, so it stays where it is +Putting something that cannot actually stand upright upright on the table, so it falls on its side +Putting something underneath something +Putting something upright on the table +Putting something, something and something on the table +Removing something, revealing something behind +Rolling something on a flat surface +Scooping something up with something +Showing a photo of something to the camera +Showing something behind something +Showing something next to something +Showing something on top of something +Showing something to the camera +Showing that something is empty +Showing that something is inside something +Something being deflected from something +Something colliding with something and both are being deflected +Something colliding with something and both come to a halt +Something falling like a feather or paper +Something falling like a rock +Spilling something behind something +Spilling something next to something +Spilling something onto something +Spinning something so it continues spinning +Spinning something that quickly stops spinning +Spreading something onto something +Sprinkling something onto something +Squeezing something +Stacking number of something +Stuffing something into something +Taking one of many similar things on the table +Taking something from somewhere +Taking something out of something +Tearing something into two pieces +Tearing something just a little bit +Throwing something +Throwing something against something +Throwing something in the air and catching it +Throwing something in the air and letting it fall +Throwing something onto a surface +Tilting something with something on it slightly so it doesn't fall down +Tilting something with something on it until it falls off +Tipping something over +Tipping something with something in it over, so something in it falls out +Touching (without moving) part of something +Trying but failing to attach something to something because it doesn't stick +Trying to bend something unbendable so nothing happens +Trying to pour something into something, but missing so it spills next to it +Turning something upside down +Turning the camera downwards while filming something +Turning the camera left while filming something +Turning the camera right while filming something +Turning the camera upwards while filming something +Twisting (wringing) something wet until water comes out +Twisting something +Uncovering something +Unfolding something +Wiping something off of something diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/README.md b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/README.md new file mode 100644 index 00000000..eaddb60c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/README.md @@ -0,0 +1,142 @@ +# Preparing THUMOS'14 + +## Introduction + + + +```BibTeX +@misc{THUMOS14, + author = {Jiang, Y.-G. and Liu, J. and Roshan Zamir, A. and Toderici, G. and Laptev, + I. and Shah, M. and Sukthankar, R.}, + title = {{THUMOS} Challenge: Action Recognition with a Large + Number of Classes}, + howpublished = "\url{http://crcv.ucf.edu/THUMOS14/}", + Year = {2014} +} +``` + +For basic dataset information, you can refer to the dataset [website](https://www.crcv.ucf.edu/THUMOS14/download.html). +Before we start, please make sure that the directory is located at `$MMACTION2/tools/data/thumos14/`. + +## Step 1. Prepare Annotations + +First of all, run the following script to prepare annotations. + +```shell +cd $MMACTION2/tools/data/thumos14/ +bash download_annotations.sh +``` + +## Step 2. Prepare Videos + +Then, you can run the following script to prepare videos. + +```shell +cd $MMACTION2/tools/data/thumos14/ +bash download_videos.sh +``` + +## Step 3. Extract RGB and Flow + +This part is **optional** if you only want to use the video loader. + +Before extracting, please refer to [install.md](/docs/install.md) for installing [denseflow](https://github.com/open-mmlab/denseflow). + +If you have plenty of SSD space, then we recommend extracting frames there for better I/O performance. + +You can run the following script to soft link SSD. + +```shell +# execute these two line (Assume the SSD is mounted at "/mnt/SSD/") +mkdir /mnt/SSD/thumos14_extracted/ +ln -s /mnt/SSD/thumos14_extracted/ ../data/thumos14/rawframes/ +``` + +If you only want to play with RGB frames (since extracting optical flow can be time-consuming), consider running the following script to extract **RGB-only** frames using denseflow. + +```shell +cd $MMACTION2/tools/data/thumos14/ +bash extract_rgb_frames.sh +``` + +If you didn't install denseflow, you can still extract RGB frames using OpenCV by the following script, but it will keep the original size of the images. + +```shell +cd $MMACTION2/tools/data/thumos14/ +bash extract_rgb_frames_opencv.sh +``` + +If both are required, run the following script to extract frames. + +```shell +cd $MMACTION2/tools/data/thumos14/ +bash extract_frames.sh tvl1 +``` + +## Step 4. Fetch File List + +This part is **optional** if you do not use SSN model. + +You can run the follow script to fetch pre-computed tag proposals. + +```shell +cd $MMACTION2/tools/data/thumos14/ +bash fetch_tag_proposals.sh +``` + +## Step 5. Denormalize Proposal File + +This part is **optional** if you do not use SSN model. + +You can run the follow script to denormalize pre-computed tag proposals according to +actual number of local rawframes. + +```shell +cd $MMACTION2/tools/data/thumos14/ +bash denormalize_proposal_file.sh +``` + +## Step 6. Check Directory Structure + +After the whole data process for THUMOS'14 preparation, +you will get the rawframes (RGB + Flow), videos and annotation files for THUMOS'14. + +In the context of the whole project (for THUMOS'14 only), the folder structure will look like: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── thumos14 +│ │ ├── proposals +│ │ | ├── thumos14_tag_val_normalized_proposal_list.txt +│ │ | ├── thumos14_tag_test_normalized_proposal_list.txt +│ │ ├── annotations_val +│ │ ├── annotations_test +│ │ ├── videos +│ │ │ ├── val +│ │ │ | ├── video_validation_0000001.mp4 +│ │ │ | ├── ... +│ │ | ├── test +│ │ │ | ├── video_test_0000001.mp4 +│ │ │ | ├── ... +│ │ ├── rawframes +│ │ │ ├── val +│ │ │ | ├── video_validation_0000001 +| │ │ | │ ├── img_00001.jpg +| │ │ | │ ├── img_00002.jpg +| │ │ | │ ├── ... +| │ │ | │ ├── flow_x_00001.jpg +| │ │ | │ ├── flow_x_00002.jpg +| │ │ | │ ├── ... +| │ │ | │ ├── flow_y_00001.jpg +| │ │ | │ ├── flow_y_00002.jpg +| │ │ | │ ├── ... +│ │ │ | ├── ... +│ │ | ├── test +│ │ │ | ├── video_test_0000001 +``` + +For training and evaluating on THUMOS'14, please refer to [getting_started.md](/docs/getting_started.md). diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/README_zh-CN.md new file mode 100644 index 00000000..fb7140a2 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/README_zh-CN.md @@ -0,0 +1,139 @@ +# 准备 THUMOS'14 + +## 简介 + + + +```BibTex +@misc{THUMOS14, + author = {Jiang, Y.-G. and Liu, J. and Roshan Zamir, A. and Toderici, G. and Laptev, + I. and Shah, M. and Sukthankar, R.}, + title = {{THUMOS} Challenge: Action Recognition with a Large + Number of Classes}, + howpublished = "\url{http://crcv.ucf.edu/THUMOS14/}", + Year = {2014} +} +``` + +用户可以参照数据集 [官网](https://www.crcv.ucf.edu/THUMOS14/download.html),获取数据集相关的基本信息。 +在准备数据集前,请确保命令行当前路径为 `$MMACTION2/tools/data/thumos14/`。 + +## 步骤 1. 下载标注文件 + +首先,用户可使用以下命令下载标注文件。 + +```shell +cd $MMACTION2/tools/data/thumos14/ +bash download_annotations.sh +``` + +## 步骤 2. 下载视频 + +之后,用户可使用以下指令下载视频 + +```shell +cd $MMACTION2/tools/data/thumos14/ +bash download_videos.sh +``` + +## 步骤 3. 抽取帧和光流 + +如果用户只想使用视频加载训练,则该部分是 **可选项**。 + +在抽取视频帧和光流之前,请参考 [安装指南](/docs_zh_CN/install.md) 安装 [denseflow](https://github.com/open-mmlab/denseflow)。 + +如果用户有大量的 SSD 存储空间,则推荐将抽取的帧存储至 I/O 性能更优秀的 SSD 上。 +用户可使用以下命令为 SSD 建立软链接。 + +```shell +# 执行这两行指令进行抽取(假设 SSD 挂载在 "/mnt/SSD/"上) +mkdir /mnt/SSD/thumos14_extracted/ +ln -s /mnt/SSD/thumos14_extracted/ ../data/thumos14/rawframes/ +``` + +如果用户需要抽取 RGB 帧(因为抽取光流的过程十分耗时),可以考虑运行以下命令使用 denseflow **只抽取 RGB 帧**。 + +```shell +cd $MMACTION2/tools/data/thumos14/ +bash extract_rgb_frames.sh +``` + +如果用户没有安装 denseflow,则可以运行以下命令使用 OpenCV 抽取 RGB 帧。然而,该方法只能抽取与原始视频分辨率相同的帧。 + +```shell +cd $MMACTION2/tools/data/thumos14/ +bash extract_rgb_frames_opencv.sh +``` + +如果用户想抽取 RGB 帧和光流,则可以运行以下脚本进行抽取。 + +```shell +cd $MMACTION2/tools/data/thumos14/ +bash extract_frames.sh tvl1 +``` + +## 步骤 4. 生成文件列表 + +如果用户不使用 SSN 模型,则该部分是 **可选项**。 + +可使用运行以下脚本下载预先计算的候选标签。 + +```shell +cd $MMACTION2/tools/data/thumos14/ +bash fetch_tag_proposals.sh +``` + +## 步骤 5. 去规范化候选文件 + +如果用户不使用 SSN 模型,则该部分是 **可选项**。 + +可运行以下脚本,来根据本地原始帧的实际数量,去规范化预先计算的候选标签。 + +```shell +cd $MMACTION2/tools/data/thumos14/ +bash denormalize_proposal_file.sh +``` + +## 步骤 6. 检查目录结构 + +在完成 THUMOS'14 数据集准备流程后,用户可以得到 THUMOS'14 的 RGB 帧 + 光流文件,视频文件以及标注文件。 + +在整个 MMAction2 文件夹下,THUMOS'14 的文件结构如下: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── thumos14 +│ │ ├── proposals +│ │ | ├── thumos14_tag_val_normalized_proposal_list.txt +│ │ | ├── thumos14_tag_test_normalized_proposal_list.txt +│ │ ├── annotations_val +│ │ ├── annotations_test +│ │ ├── videos +│ │ │ ├── val +│ │ │ | ├── video_validation_0000001.mp4 +│ │ │ | ├── ... +│ │ | ├── test +│ │ │ | ├── video_test_0000001.mp4 +│ │ │ | ├── ... +│ │ ├── rawframes +│ │ │ ├── val +│ │ │ | ├── video_validation_0000001 +| │ │ | │ ├── img_00001.jpg +| │ │ | │ ├── img_00002.jpg +| │ │ | │ ├── ... +| │ │ | │ ├── flow_x_00001.jpg +| │ │ | │ ├── flow_x_00002.jpg +| │ │ | │ ├── ... +| │ │ | │ ├── flow_y_00001.jpg +| │ │ | │ ├── flow_y_00002.jpg +| │ │ | │ ├── ... +│ │ │ | ├── ... +│ │ | ├── test +│ │ │ | ├── video_test_0000001 +``` + +关于对 THUMOS'14 进行训练和验证,可以参照 [基础教程](/docs_zh_CN/getting_started.md)。 diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/denormalize_proposal_file.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/denormalize_proposal_file.sh new file mode 100644 index 00000000..92f561a4 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/denormalize_proposal_file.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +cd ../../../ +PYTHONPATH=. python tools/data/denormalize_proposal_file.py thumos14 --norm-proposal-file data/thumos14/proposals/thumos14_tag_val_normalized_proposal_list.txt --data-prefix data/thumos14/rawframes/val/ +echo "Proposal file denormalized for val set" + +PYTHONPATH=. python tools/data/denormalize_proposal_file.py thumos14 --norm-proposal-file data/thumos14/proposals/thumos14_tag_test_normalized_proposal_list.txt --data-prefix data/thumos14/rawframes/test/ +echo "Proposal file denormalized for test set" + +cd tools/data/thumos14/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/download_annotations.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/download_annotations.sh new file mode 100644 index 00000000..fc8473f6 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/download_annotations.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +DATA_DIR="../../../data/thumos14/" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi +cd ${DATA_DIR} + +wget http://crcv.ucf.edu/THUMOS14/Validation_set/TH14_Temporal_annotations_validation.zip --no-check-certificate +wget http://crcv.ucf.edu/THUMOS14/test_set/TH14_Temporal_annotations_test.zip --no-check-certificate + +if [ ! -d "./annotations_val" ]; then + mkdir ./annotations_val +fi +unzip -j TH14_Temporal_annotations_validation.zip -d annotations_val + +if [ ! -d "./annotations_test" ]; then + mkdir ./annotations_test +fi +unzip -j TH14_Temporal_annotations_test.zip -d annotations_test + +rm TH14_Temporal_annotations_validation.zip +rm TH14_Temporal_annotations_test.zip + +cd "../../tools/data/thumos14/" diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/download_videos.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/download_videos.sh new file mode 100644 index 00000000..e987bb4e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/download_videos.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +DATA_DIR="../../../data/thumos14/" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +cd ${DATA_DIR} + +wget https://storage.googleapis.com/thumos14_files/TH14_validation_set_mp4.zip +wget https://storage.googleapis.com/thumos14_files/TH14_Test_set_mp4.zip + +if [ ! -d "./videos/val" ]; then + mkdir -p ./videos/val +fi +unzip -j TH14_validation_set_mp4.zip -d videos/val + +if [ ! -d "./videos/test" ]; then + mkdir -p ./videos/test +fi +unzip -P "THUMOS14_REGISTERED" -j TH14_Test_set_mp4.zip -d videos/test + +cd "../../tools/data/thumos14/" diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/extract_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/extract_frames.sh new file mode 100644 index 00000000..edf6be2b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/extract_frames.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/thumos14/videos/val/ ../../data/thumos14/rawframes/val/ --level 1 --flow-type tvl1 --ext mp4 --task both +echo "Raw frames (RGB and tv-l1) Generated for val set" + +python build_rawframes.py ../../data/thumos14/videos/test/ ../../data/thumos14/rawframes/test/ --level 1 --flow-type tvl1 --ext mp4 --task both +echo "Raw frames (RGB and tv-l1) Generated for test set" + +cd thumos14/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/extract_rgb_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/extract_rgb_frames.sh new file mode 100644 index 00000000..776575f9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/extract_rgb_frames.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/thumos14/videos/val/ ../../data/thumos14/rawframes/val/ --level 1 --ext mp4 --task rgb +echo "Raw frames (RGB only) generated for val set" + +python build_rawframes.py ../../data/thumos14/videos/test/ ../../data/thumos14/rawframes/test/ --level 1 --ext mp4 --task rgb +echo "Raw frames (RGB only) generated for test set" + +cd thumos14/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/extract_rgb_frames_opencv.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/extract_rgb_frames_opencv.sh new file mode 100644 index 00000000..d4fad08d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/extract_rgb_frames_opencv.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/thumos14/videos/val/ ../../data/thumos14/rawframes/val/ --level 1 --ext mp4 --task rgb --use-opencv +echo "Raw frames (RGB only) generated for val set" + +python build_rawframes.py ../../data/thumos14/videos/test/ ../../data/thumos14/rawframes/test/ --level 1 --ext mp4 --task rgb --use-opencv +echo "Raw frames (RGB only) generated for test set" + +cd thumos14/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/fetch_tag_proposals.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/fetch_tag_proposals.sh new file mode 100644 index 00000000..39f05fd1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/thumos14/fetch_tag_proposals.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +PROP_DIR="../../../data/thumos14/proposals" + +if [[ ! -d "${PROP_DIR}" ]]; then + echo "${PROP_DIR} does not exist. Creating"; + mkdir -p ${PROP_DIR} +fi + +wget https://download.openmmlab.com/mmaction/dataset/thumos14/thumos14_tag_val_normalized_proposal_list.txt -P ${PROP_DIR} +wget https://download.openmmlab.com/mmaction/dataset/thumos14/thumos14_tag_test_normalized_proposal_list.txt -P ${PROP_DIR} diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/README.md b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/README.md new file mode 100644 index 00000000..9abaff1b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/README.md @@ -0,0 +1,127 @@ +# Preparing UCF-101 + +## Introduction + + + +```BibTeX +@article{Soomro2012UCF101AD, + title={UCF101: A Dataset of 101 Human Actions Classes From Videos in The Wild}, + author={K. Soomro and A. Zamir and M. Shah}, + journal={ArXiv}, + year={2012}, + volume={abs/1212.0402} +} +``` + +For basic dataset information, you can refer to the dataset [website](https://www.crcv.ucf.edu/research/data-sets/ucf101/). +Before we start, please make sure that the directory is located at `$MMACTION2/tools/data/ucf101/`. + +## Step 1. Prepare Annotations + +First of all, you can run the following script to prepare annotations. + +```shell +bash download_annotations.sh +``` + +## Step 2. Prepare Videos + +Then, you can run the following script to prepare videos. + +```shell +bash download_videos.sh +``` + +For better decoding speed, you can resize the original videos into smaller sized, densely encoded version by: + +``` +python ../resize_videos.py ../../../data/ucf101/videos/ ../../../data/ucf101/videos_256p_dense_cache --dense --level 2 --ext avi +``` + +## Step 3. Extract RGB and Flow + +This part is **optional** if you only want to use the video loader. + +Before extracting, please refer to [install.md](/docs/install.md) for installing [denseflow](https://github.com/open-mmlab/denseflow). + +If you have plenty of SSD space, then we recommend extracting frames there for better I/O performance. The extracted frames (RGB + Flow) will take up about 100GB. + +You can run the following script to soft link SSD. + +```shell +# execute these two line (Assume the SSD is mounted at "/mnt/SSD/") +mkdir /mnt/SSD/ucf101_extracted/ +ln -s /mnt/SSD/ucf101_extracted/ ../../../data/ucf101/rawframes +``` + +If you only want to play with RGB frames (since extracting optical flow can be time-consuming), consider running the following script to extract **RGB-only** frames using denseflow. + +```shell +bash extract_rgb_frames.sh +``` + +If you didn't install denseflow, you can still extract RGB frames using OpenCV by the following script, but it will keep the original size of the images. + +```shell +bash extract_rgb_frames_opencv.sh +``` + +If Optical Flow is also required, run the following script to extract flow using "tvl1" algorithm. + +```shell +bash extract_frames.sh +``` + +## Step 4. Generate File List + +you can run the follow script to generate file list in the format of rawframes and videos. + +```shell +bash generate_videos_filelist.sh +bash generate_rawframes_filelist.sh +``` + +## Step 5. Check Directory Structure + +After the whole data process for UCF-101 preparation, +you will get the rawframes (RGB + Flow), videos and annotation files for UCF-101. + +In the context of the whole project (for UCF-101 only), the folder structure will look like: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── ucf101 +│ │ ├── ucf101_{train,val}_split_{1,2,3}_rawframes.txt +│ │ ├── ucf101_{train,val}_split_{1,2,3}_videos.txt +│ │ ├── annotations +│ │ ├── videos +│ │ │ ├── ApplyEyeMakeup +│ │ │ │ ├── v_ApplyEyeMakeup_g01_c01.avi + +│ │ │ ├── YoYo +│ │ │ │ ├── v_YoYo_g25_c05.avi +│ │ ├── rawframes +│ │ │ ├── ApplyEyeMakeup +│ │ │ │ ├── v_ApplyEyeMakeup_g01_c01 +│ │ │ │ │ ├── img_00001.jpg +│ │ │ │ │ ├── img_00002.jpg +│ │ │ │ │ ├── ... +│ │ │ │ │ ├── flow_x_00001.jpg +│ │ │ │ │ ├── flow_x_00002.jpg +│ │ │ │ │ ├── ... +│ │ │ │ │ ├── flow_y_00001.jpg +│ │ │ │ │ ├── flow_y_00002.jpg +│ │ │ ├── ... +│ │ │ ├── YoYo +│ │ │ │ ├── v_YoYo_g01_c01 +│ │ │ │ ├── ... +│ │ │ │ ├── v_YoYo_g25_c05 + +``` + +For training and evaluating on UCF-101, please refer to [getting_started.md](/docs/getting_started.md). diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/README_zh-CN.md new file mode 100644 index 00000000..96e9453f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/README_zh-CN.md @@ -0,0 +1,125 @@ +# 准备 UCF-101 + +## 简介 + +```BibTeX +@article{Soomro2012UCF101AD, + title={UCF101: A Dataset of 101 Human Actions Classes From Videos in The Wild}, + author={K. Soomro and A. Zamir and M. Shah}, + journal={ArXiv}, + year={2012}, + volume={abs/1212.0402} +} +``` + +用户可参考该数据集的 [官网](https://www.crcv.ucf.edu/research/data-sets/ucf101/),以获取数据集相关的基本信息。 +在数据集准备前,请确保命令行当前路径为 `$MMACTION2/tools/data/ucf101/`。 + +## 步骤 1. 下载标注文件 + +首先,用户可运行以下脚本下载标注文件。 + +```shell +bash download_annotations.sh +``` + +## 步骤 2. 准备视频文件 + +之后,用户可运行以下脚本准备视频文件。 + +```shell +bash download_videos.sh +``` + +用户可使用以下脚本,对原视频进行裁剪,得到密集编码且更小尺寸的视频。 + +``` +python ../resize_videos.py ../../../data/ucf101/videos/ ../../../data/ucf101/videos_256p_dense_cache --dense --level 2 --ext avi +``` + +## 步骤 3. 抽取视频帧和光流 + +如果用户只想使用视频加载训练,则该部分是 **可选项**。 + +在抽取视频帧和光流之前,请参考 [安装指南](/docs_zh_CN/install.md) 安装 [denseflow](https://github.com/open-mmlab/denseflow)。 + +如果拥有大量的 SSD 存储空间,则推荐将抽取的帧存储至 I/O 性能更优秀的 SSD 中。所抽取的视频帧和光流约占据 100 GB 的存储空间。 + +可以运行以下命令为 SSD 建立软链接。 + +```shell +# 执行这两行进行抽取(假设 SSD 挂载在 "/mnt/SSD/") +mkdir /mnt/SSD/ucf101_extracted/ +ln -s /mnt/SSD/ucf101_extracted/ ../../../data/ucf101/rawframes +``` + +如果用户需要抽取 RGB 帧(因为抽取光流的过程十分耗时),可以考虑运行以下命令使用 denseflow **只抽取 RGB 帧**。 + +```shell +bash extract_rgb_frames.sh +``` + +如果用户没有安装 denseflow,则可以运行以下命令使用 OpenCV 抽取 RGB 帧。然而,该方法只能抽取与原始视频分辨率相同的帧。 + +```shell +bash extract_rgb_frames_opencv.sh +``` + +如果用户想抽取 RGB 帧和光流,则可以运行以下脚本使用 "tvl1" 算法进行抽取。 + +```shell +bash extract_frames.sh +``` + +## 步骤 4. 生成文件列表 + +用户可以通过运行以下命令生成帧和视频格式的文件列表。 + +```shell +bash generate_videos_filelist.sh +bash generate_rawframes_filelist.sh +``` + +## 步骤 5. 检查文件夹结构 + +在完成所有 UCF-101 数据集准备流程后, +用户可以获得对应的 RGB + 光流文件,视频文件以及标注文件。 + +在整个 MMAction2 文件夹下,UCF-101 的文件结构如下: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── ucf101 +│ │ ├── ucf101_{train,val}_split_{1,2,3}_rawframes.txt +│ │ ├── ucf101_{train,val}_split_{1,2,3}_videos.txt +│ │ ├── annotations +│ │ ├── videos +│ │ │ ├── ApplyEyeMakeup +│ │ │ │ ├── v_ApplyEyeMakeup_g01_c01.avi + +│ │ │ ├── YoYo +│ │ │ │ ├── v_YoYo_g25_c05.avi +│ │ ├── rawframes +│ │ │ ├── ApplyEyeMakeup +│ │ │ │ ├── v_ApplyEyeMakeup_g01_c01 +│ │ │ │ │ ├── img_00001.jpg +│ │ │ │ │ ├── img_00002.jpg +│ │ │ │ │ ├── ... +│ │ │ │ │ ├── flow_x_00001.jpg +│ │ │ │ │ ├── flow_x_00002.jpg +│ │ │ │ │ ├── ... +│ │ │ │ │ ├── flow_y_00001.jpg +│ │ │ │ │ ├── flow_y_00002.jpg +│ │ │ ├── ... +│ │ │ ├── YoYo +│ │ │ │ ├── v_YoYo_g01_c01 +│ │ │ │ ├── ... +│ │ │ │ ├── v_YoYo_g25_c05 + +``` + +关于对 UCF-101 进行训练和验证,可以参考 [基础教程](/docs_zh_CN/getting_started.md)。 diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/download_annotations.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/download_annotations.sh new file mode 100644 index 00000000..7a8822b3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/download_annotations.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +DATA_DIR="../../../data/ucf101/annotations" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +wget https://www.crcv.ucf.edu/wp-content/uploads/2019/03/UCF101TrainTestSplits-RecognitionTask.zip --no-check-certificate + +unzip -j UCF101TrainTestSplits-RecognitionTask.zip -d ${DATA_DIR}/ +rm UCF101TrainTestSplits-RecognitionTask.zip diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/download_videos.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/download_videos.sh new file mode 100644 index 00000000..6efd98e1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/download_videos.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +DATA_DIR="../../../data/ucf101/" + +if [[ ! -d "${DATA_DIR}" ]]; then + echo "${DATA_DIR} does not exist. Creating"; + mkdir -p ${DATA_DIR} +fi + +cd ${DATA_DIR} + +wget https://www.crcv.ucf.edu/datasets/human-actions/ucf101/UCF101.rar --no-check-certificate +unrar x UCF101.rar +mv ./UCF-101 ./videos + +cd "../../tools/data/ucf101" diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/extract_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/extract_frames.sh new file mode 100644 index 00000000..b549b6e6 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/extract_frames.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/ucf101/videos/ ../../data/ucf101/rawframes/ --task both --level 2 --flow-type tvl1 +echo "Raw frames (RGB and Flow) Generated" +cd ucf101/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/extract_rgb_frames.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/extract_rgb_frames.sh new file mode 100644 index 00000000..b39df7c6 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/extract_rgb_frames.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/ucf101/videos/ ../../data/ucf101/rawframes/ --task rgb --level 2 --ext avi +echo "Genearte raw frames (RGB only)" + +cd ucf101/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/extract_rgb_frames_opencv.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/extract_rgb_frames_opencv.sh new file mode 100644 index 00000000..50d1ac32 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/extract_rgb_frames_opencv.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +cd ../ +python build_rawframes.py ../../data/ucf101/videos/ ../../data/ucf101/rawframes/ --task rgb --level 2 --ext avi --use-opencv +echo "Genearte raw frames (RGB only)" + +cd ucf101/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/generate_rawframes_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/generate_rawframes_filelist.sh new file mode 100644 index 00000000..9b9ed993 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/generate_rawframes_filelist.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +cd ../../../ + +PYTHONPATH=. python tools/data/build_file_list.py ucf101 data/ucf101/rawframes/ --level 2 --format rawframes --shuffle +echo "Filelist for rawframes generated." + +cd tools/data/ucf101/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/generate_videos_filelist.sh b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/generate_videos_filelist.sh new file mode 100644 index 00000000..5f391437 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/generate_videos_filelist.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +cd ../../../ + +PYTHONPATH=. python tools/data/build_file_list.py ucf101 data/ucf101/videos/ --level 2 --format videos --shuffle +echo "Filelist for videos generated." + +cd tools/data/ucf101/ diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/label_map.txt b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/label_map.txt new file mode 100644 index 00000000..dd41d095 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101/label_map.txt @@ -0,0 +1,101 @@ +ApplyEyeMakeup +ApplyLipstick +Archery +BabyCrawling +BalanceBeam +BandMarching +BaseballPitch +Basketball +BasketballDunk +BenchPress +Biking +Billiards +BlowDryHair +BlowingCandles +BodyWeightSquats +Bowling +BoxingPunchingBag +BoxingSpeedBag +BreastStroke +BrushingTeeth +CleanAndJerk +CliffDiving +CricketBowling +CricketShot +CuttingInKitchen +Diving +Drumming +Fencing +FieldHockeyPenalty +FloorGymnastics +FrisbeeCatch +FrontCrawl +GolfSwing +Haircut +Hammering +HammerThrow +HandstandPushups +HandstandWalking +HeadMassage +HighJump +HorseRace +HorseRiding +HulaHoop +IceDancing +JavelinThrow +JugglingBalls +JumpingJack +JumpRope +Kayaking +Knitting +LongJump +Lunges +MilitaryParade +Mixing +MoppingFloor +Nunchucks +ParallelBars +PizzaTossing +PlayingCello +PlayingDaf +PlayingDhol +PlayingFlute +PlayingGuitar +PlayingPiano +PlayingSitar +PlayingTabla +PlayingViolin +PoleVault +PommelHorse +PullUps +Punch +PushUps +Rafting +RockClimbingIndoor +RopeClimbing +Rowing +SalsaSpin +ShavingBeard +Shotput +SkateBoarding +Skiing +Skijet +SkyDiving +SoccerJuggling +SoccerPenalty +StillRings +SumoWrestling +Surfing +Swing +TableTennisShot +TaiChi +TennisSwing +ThrowDiscus +TrampolineJumping +Typing +UnevenBars +VolleyballSpiking +WalkingWithDog +WallPushups +WritingOnBoard +YoYo diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101_24/README.md b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101_24/README.md new file mode 100644 index 00000000..8d637965 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101_24/README.md @@ -0,0 +1,89 @@ +# Preparing UCF101-24 + +## Introduction + + + +```BibTeX +@article{Soomro2012UCF101AD, + title={UCF101: A Dataset of 101 Human Actions Classes From Videos in The Wild}, + author={K. Soomro and A. Zamir and M. Shah}, + journal={ArXiv}, + year={2012}, + volume={abs/1212.0402} +} +``` + +For basic dataset information, you can refer to the dataset [website](http://www.thumos.info/download.html). +Before we start, please make sure that the directory is located at `$MMACTION2/tools/data/ucf101_24/`. + +## Download and Extract + +You can download the RGB frames, optical flow and ground truth annotations from [google drive](https://drive.google.com/drive/folders/1BvGywlAGrACEqRyfYbz3wzlVV3cDFkct). +The data are provided from [MOC](https://github.com/MCG-NJU/MOC-Detector/blob/master/readme/Dataset.md), which is adapted from [act-detector](https://github.com/vkalogeiton/caffe/tree/act-detector) and [corrected-UCF101-Annots](https://github.com/gurkirt/corrected-UCF101-Annots). + +:::{note} +The annotation of this UCF101-24 is from [here](https://github.com/gurkirt/corrected-UCF101-Annots), which is more correct. +::: + +After downloading the `UCF101_v2.tar.gz` file and put it in `$MMACTION2/tools/data/ucf101_24/`, you can run the following command to uncompress. + +```shell +tar -zxvf UCF101_v2.tar.gz +``` + +## Check Directory Structure + +After uncompressing, you will get the `rgb-images` directory, `brox-images` directory and `UCF101v2-GT.pkl` for UCF101-24. + +In the context of the whole project (for UCF101-24 only), the folder structure will look like: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── ucf101_24 +│ | ├── brox-images +│ | | ├── Basketball +│ | | | ├── v_Basketball_g01_c01 +│ | | | | ├── 00001.jpg +│ | | | | ├── 00002.jpg +│ | | | | ├── ... +│ | | | | ├── 00140.jpg +│ | | | | ├── 00141.jpg +│ | | ├── ... +│ | | ├── WalkingWithDog +│ | | | ├── v_WalkingWithDog_g01_c01 +│ | | | ├── ... +│ | | | ├── v_WalkingWithDog_g25_c04 +│ | ├── rgb-images +│ | | ├── Basketball +│ | | | ├── v_Basketball_g01_c01 +│ | | | | ├── 00001.jpg +│ | | | | ├── 00002.jpg +│ | | | | ├── ... +│ | | | | ├── 00140.jpg +│ | | | | ├── 00141.jpg +│ | | ├── ... +│ | | ├── WalkingWithDog +│ | | | ├── v_WalkingWithDog_g01_c01 +│ | | | ├── ... +│ | | | ├── v_WalkingWithDog_g25_c04 +│ | ├── UCF101v2-GT.pkl + +``` + +:::{note} +The `UCF101v2-GT.pkl` exists as a cache, it contains 6 items as follows: +::: + +1. `labels` (list): List of the 24 labels. +2. `gttubes` (dict): Dictionary that contains the ground truth tubes for each video. + A **gttube** is dictionary that associates with each index of label and a list of tubes. + A **tube** is a numpy array with `nframes` rows and 5 columns, each col is in format like ` `. +3. `nframes` (dict): Dictionary that contains the number of frames for each video, like `'HorseRiding/v_HorseRiding_g05_c02': 151`. +4. `train_videos` (list): A list with `nsplits=1` elements, each one containing the list of training videos. +5. `test_videos` (list): A list with `nsplits=1` elements, each one containing the list of testing videos. +6. `resolution` (dict): Dictionary that outputs a tuple (h,w) of the resolution for each video, like `'FloorGymnastics/v_FloorGymnastics_g09_c03': (240, 320)`. diff --git a/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101_24/README_zh-CN.md b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101_24/README_zh-CN.md new file mode 100644 index 00000000..1e91b251 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/data/ucf101_24/README_zh-CN.md @@ -0,0 +1,84 @@ +# 准备 UCF101-24 + +## 简介 + +```BibTeX +@article{Soomro2012UCF101AD, + title={UCF101: A Dataset of 101 Human Actions Classes From Videos in The Wild}, + author={K. Soomro and A. Zamir and M. Shah}, + journal={ArXiv}, + year={2012}, + volume={abs/1212.0402} +} +``` + +用户可参考该数据集的 [官网](http://www.thumos.info/download.html),以获取数据集相关的基本信息。 +在数据集准备前,请确保命令行当前路径为 `$MMACTION2/tools/data/ucf101_24/`。 + +## 下载和解压 + +用户可以从 [这里](https://drive.google.com/drive/folders/1BvGywlAGrACEqRyfYbz3wzlVV3cDFkct) 下载 RGB 帧,光流和标注文件。 +该数据由 [MOC](https://github.com/MCG-NJU/MOC-Detector/blob/master/readme/Dataset.md) 代码库提供, +参考自 [act-detector](https://github.com/vkalogeiton/caffe/tree/act-detector) 和 [corrected-UCF101-Annots](https://github.com/gurkirt/corrected-UCF101-Annots)。 + +**注意**:UCF101-24 的标注文件来自于 [这里](https://github.com/gurkirt/corrected-UCF101-Annots),该标注文件相对于其他标注文件更加准确。 + +用户在下载 `UCF101_v2.tar.gz` 文件后,需将其放置在 `$MMACTION2/tools/data/ucf101_24/` 目录下,并使用以下指令进行解压: + +```shell +tar -zxvf UCF101_v2.tar.gz +``` + +## 检查文件夹结构 + +经过解压后,用户将得到 `rgb-images` 文件夹,`brox-images` 文件夹和 `UCF101v2-GT.pkl` 文件。 + +在整个 MMAction2 文件夹下,UCF101_24 的文件结构如下: + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── ucf101_24 +│ | ├── brox-images +│ | | ├── Basketball +│ | | | ├── v_Basketball_g01_c01 +│ | | | | ├── 00001.jpg +│ | | | | ├── 00002.jpg +│ | | | | ├── ... +│ | | | | ├── 00140.jpg +│ | | | | ├── 00141.jpg +│ | | ├── ... +│ | | ├── WalkingWithDog +│ | | | ├── v_WalkingWithDog_g01_c01 +│ | | | ├── ... +│ | | | ├── v_WalkingWithDog_g25_c04 +│ | ├── rgb-images +│ | | ├── Basketball +│ | | | ├── v_Basketball_g01_c01 +│ | | | | ├── 00001.jpg +│ | | | | ├── 00002.jpg +│ | | | | ├── ... +│ | | | | ├── 00140.jpg +│ | | | | ├── 00141.jpg +│ | | ├── ... +│ | | ├── WalkingWithDog +│ | | | ├── v_WalkingWithDog_g01_c01 +│ | | | ├── ... +│ | | | ├── v_WalkingWithDog_g25_c04 +│ | ├── UCF101v2-GT.pkl + +``` + +**注意**:`UCF101v2-GT.pkl` 作为一个缓存文件,它包含 6 个项目: + +1. `labels` (list):24 个行为类别名称组成的列表 +2. `gttubes` (dict):每个视频对应的基准 tubes 组成的字典 + **gttube** 是由标签索引和 tube 列表组成的字典 + **tube** 是一个 `nframes` 行和 5 列的 numpy array,每一列的形式如 ` ` +3. `nframes` (dict):用以表示每个视频对应的帧数,如 `'HorseRiding/v_HorseRiding_g05_c02': 151` +4. `train_videos` (list):包含 `nsplits=1` 的元素,每一项都包含了训练视频的列表 +5. `test_videos` (list):包含 `nsplits=1` 的元素,每一项都包含了测试视频的列表 +6. `resolution` (dict):每个视频对应的分辨率(形如 (h,w)),如 `'FloorGymnastics/v_FloorGymnastics_g09_c03': (240, 320)` diff --git a/openmmlab_test/mmaction2-0.24.1/tools/deployment/mmaction2torchserve.py b/openmmlab_test/mmaction2-0.24.1/tools/deployment/mmaction2torchserve.py new file mode 100644 index 00000000..d491ac7b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/deployment/mmaction2torchserve.py @@ -0,0 +1,109 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import shutil +from argparse import ArgumentParser, Namespace +from pathlib import Path +from tempfile import TemporaryDirectory + +import mmcv + +try: + from model_archiver.model_packaging import package_model + from model_archiver.model_packaging_utils import ModelExportUtils +except ImportError: + raise ImportError('`torch-model-archiver` is required.' + 'Try: pip install torch-model-archiver') + + +def mmaction2torchserve( + config_file: str, + checkpoint_file: str, + output_folder: str, + model_name: str, + label_file: str, + model_version: str = '1.0', + force: bool = False, +): + """Converts MMAction2 model (config + checkpoint) to TorchServe `.mar`. + + Args: + config_file (str): In MMAction2 config format. + checkpoint_file (str): In MMAction2 checkpoint format. + output_folder (str): Folder where `{model_name}.mar` will be created. + The file created will be in TorchServe archive format. + label_file (str): A txt file which contains the action category names. + model_name (str | None): If not None, used for naming the + `{model_name}.mar` file that will be created under `output_folder`. + If None, `{Path(checkpoint_file).stem}` will be used. + model_version (str): Model's version. + force (bool): If True, if there is an existing `{model_name}.mar` file + under `output_folder` it will be overwritten. + """ + mmcv.mkdir_or_exist(output_folder) + + config = mmcv.Config.fromfile(config_file) + + with TemporaryDirectory() as tmpdir: + config.dump(f'{tmpdir}/config.py') + shutil.copy(label_file, f'{tmpdir}/label_map.txt') + + args = Namespace( + **{ + 'model_file': f'{tmpdir}/config.py', + 'serialized_file': checkpoint_file, + 'handler': f'{Path(__file__).parent}/mmaction_handler.py', + 'model_name': model_name or Path(checkpoint_file).stem, + 'version': model_version, + 'export_path': output_folder, + 'force': force, + 'requirements_file': None, + 'extra_files': f'{tmpdir}/label_map.txt', + 'runtime': 'python', + 'archive_format': 'default' + }) + manifest = ModelExportUtils.generate_manifest_json(args) + package_model(args, manifest) + + +def parse_args(): + parser = ArgumentParser( + description='Convert MMAction2 models to TorchServe `.mar` format.') + parser.add_argument('config', type=str, help='config file path') + parser.add_argument('checkpoint', type=str, help='checkpoint file path') + parser.add_argument( + '--output-folder', + type=str, + required=True, + help='Folder where `{model_name}.mar` will be created.') + parser.add_argument( + '--model-name', + type=str, + default=None, + help='If not None, used for naming the `{model_name}.mar`' + 'file that will be created under `output_folder`.' + 'If None, `{Path(checkpoint_file).stem}` will be used.') + parser.add_argument( + '--label-file', + type=str, + default=None, + help='A txt file which contains the action category names. ') + parser.add_argument( + '--model-version', + type=str, + default='1.0', + help='Number used for versioning.') + parser.add_argument( + '-f', + '--force', + action='store_true', + help='overwrite the existing `{model_name}.mar`') + args = parser.parse_args() + + return args + + +if __name__ == '__main__': + args = parse_args() + + mmaction2torchserve(args.config, args.checkpoint, args.output_folder, + args.model_name, args.label_file, args.model_version, + args.force) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/deployment/mmaction_handler.py b/openmmlab_test/mmaction2-0.24.1/tools/deployment/mmaction_handler.py new file mode 100644 index 00000000..10626d15 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/deployment/mmaction_handler.py @@ -0,0 +1,79 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import base64 +import os +import os.path as osp +import warnings + +import decord +import numpy as np +import torch + +from mmaction.apis import inference_recognizer, init_recognizer # noqa: F401 + +try: + from ts.torch_handler.base_handler import BaseHandler +except ImportError: + raise ImportError('`ts` is required. Try: pip install ts.') + + +class MMActionHandler(BaseHandler): + + def initialize(self, context): + properties = context.system_properties + self.map_location = 'cuda' if torch.cuda.is_available() else 'cpu' + self.device = torch.device(self.map_location + ':' + + str(properties.get('gpu_id')) if torch.cuda. + is_available() else self.map_location) + self.manifest = context.manifest + + model_dir = properties.get('model_dir') + serialized_file = self.manifest['model']['serializedFile'] + checkpoint = os.path.join(model_dir, serialized_file) + self.config_file = os.path.join(model_dir, 'config.py') + + mapping_file_path = osp.join(model_dir, 'label_map.txt') + if not os.path.isfile(mapping_file_path): + warnings.warn('Missing the label_map.txt file. ' + 'Inference output will not include class name.') + self.mapping = None + else: + lines = open(mapping_file_path).readlines() + self.mapping = [x.strip() for x in lines] + + self.model = init_recognizer(self.config_file, checkpoint, self.device) + self.initialized = True + + def preprocess(self, data): + videos = [] + + for row in data: + video = row.get('data') or row.get('body') + if isinstance(video, str): + video = base64.b64decode(video) + # First save the bytes as a tmp file + with open('/tmp/tmp.mp4', 'wb') as fout: + fout.write(video) + + video = decord.VideoReader('/tmp/tmp.mp4') + frames = [x.asnumpy() for x in video] + videos.append(np.stack(frames)) + + return videos + + def inference(self, data, *args, **kwargs): + results = [inference_recognizer(self.model, item) for item in data] + return results + + def postprocess(self, data): + # Format output following the example ObjectDetectionHandler format + output = [] + for video_idx, video_result in enumerate(data): + output.append([]) + assert isinstance(video_result, list) + + output[video_idx] = { + self.mapping[x[0]] if self.mapping else x[0]: float(x[1]) + for x in video_result + } + + return output diff --git a/openmmlab_test/mmaction2-0.24.1/tools/deployment/publish_model.py b/openmmlab_test/mmaction2-0.24.1/tools/deployment/publish_model.py new file mode 100644 index 00000000..1c59508c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/deployment/publish_model.py @@ -0,0 +1,47 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import os +import platform +import subprocess + +import torch + + +def parse_args(): + parser = argparse.ArgumentParser( + description='Process a checkpoint to be published') + parser.add_argument('in_file', help='input checkpoint filename') + parser.add_argument('out_file', help='output checkpoint filename') + args = parser.parse_args() + return args + + +def process_checkpoint(in_file, out_file): + checkpoint = torch.load(in_file, map_location='cpu') + # remove optimizer for smaller file size + if 'optimizer' in checkpoint: + del checkpoint['optimizer'] + # if it is necessary to remove some sensitive data in checkpoint['meta'], + # add the code here. + torch.save(checkpoint, out_file) + if platform.system() == 'Windows': + sha = subprocess.check_output( + ['certutil', '-hashfile', out_file, 'SHA256']) + sha = str(sha).split('\\r\\n')[1] + else: + sha = subprocess.check_output(['sha256sum', out_file]).decode() + if out_file.endswith('.pth'): + out_file_name = out_file[:-4] + else: + out_file_name = out_file + final_file = out_file_name + f'-{sha[:8]}.pth' + os.rename(out_file, final_file) + + +def main(): + args = parse_args() + process_checkpoint(args.in_file, args.out_file) + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/deployment/pytorch2onnx.py b/openmmlab_test/mmaction2-0.24.1/tools/deployment/pytorch2onnx.py new file mode 100644 index 00000000..9b4cf5ca --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/deployment/pytorch2onnx.py @@ -0,0 +1,183 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import warnings + +import mmcv +import numpy as np +import torch +from mmcv.runner import load_checkpoint + +from mmaction.models import build_model + +try: + import onnx + import onnxruntime as rt +except ImportError as e: + raise ImportError(f'Please install onnx and onnxruntime first. {e}') + +try: + from mmcv.onnx.symbolic import register_extra_symbolics +except ModuleNotFoundError: + raise NotImplementedError('please update mmcv to version>=1.0.4') + + +def _convert_batchnorm(module): + """Convert the syncBNs into normal BN3ds.""" + module_output = module + if isinstance(module, torch.nn.SyncBatchNorm): + module_output = torch.nn.BatchNorm3d(module.num_features, module.eps, + module.momentum, module.affine, + module.track_running_stats) + if module.affine: + module_output.weight.data = module.weight.data.clone().detach() + module_output.bias.data = module.bias.data.clone().detach() + # keep requires_grad unchanged + module_output.weight.requires_grad = module.weight.requires_grad + module_output.bias.requires_grad = module.bias.requires_grad + module_output.running_mean = module.running_mean + module_output.running_var = module.running_var + module_output.num_batches_tracked = module.num_batches_tracked + for name, child in module.named_children(): + module_output.add_module(name, _convert_batchnorm(child)) + del module + return module_output + + +def pytorch2onnx(model, + input_shape, + opset_version=11, + show=False, + output_file='tmp.onnx', + verify=False): + """Convert pytorch model to onnx model. + + Args: + model (:obj:`nn.Module`): The pytorch model to be exported. + input_shape (tuple[int]): The input tensor shape of the model. + opset_version (int): Opset version of onnx used. Default: 11. + show (bool): Determines whether to print the onnx model architecture. + Default: False. + output_file (str): Output onnx model name. Default: 'tmp.onnx'. + verify (bool): Determines whether to verify the onnx model. + Default: False. + """ + model.cpu().eval() + + input_tensor = torch.randn(input_shape) + + register_extra_symbolics(opset_version) + torch.onnx.export( + model, + input_tensor, + output_file, + export_params=True, + keep_initializers_as_inputs=True, + verbose=show, + opset_version=opset_version) + + print(f'Successfully exported ONNX model: {output_file}') + if verify: + # check by onnx + onnx_model = onnx.load(output_file) + onnx.checker.check_model(onnx_model) + + # check the numerical value + # get pytorch output + pytorch_result = model(input_tensor)[0].detach().numpy() + + # get onnx output + input_all = [node.name for node in onnx_model.graph.input] + input_initializer = [ + node.name for node in onnx_model.graph.initializer + ] + net_feed_input = list(set(input_all) - set(input_initializer)) + assert len(net_feed_input) == 1 + sess = rt.InferenceSession(output_file) + onnx_result = sess.run( + None, {net_feed_input[0]: input_tensor.detach().numpy()})[0] + # only compare part of results + random_class = np.random.randint(pytorch_result.shape[1]) + assert np.allclose( + pytorch_result[:, random_class], onnx_result[:, random_class] + ), 'The outputs are different between Pytorch and ONNX' + print('The numerical values are same between Pytorch and ONNX') + + +def parse_args(): + parser = argparse.ArgumentParser( + description='Convert MMAction2 models to ONNX') + parser.add_argument('config', help='test config file path') + parser.add_argument('checkpoint', help='checkpoint file') + parser.add_argument('--show', action='store_true', help='show onnx graph') + parser.add_argument('--output-file', type=str, default='tmp.onnx') + parser.add_argument('--opset-version', type=int, default=11) + parser.add_argument( + '--verify', + action='store_true', + help='verify the onnx model output against pytorch output') + parser.add_argument( + '--is-localizer', + action='store_true', + help='whether it is a localizer') + parser.add_argument( + '--shape', + type=int, + nargs='+', + default=[1, 3, 8, 224, 224], + help='input video size') + parser.add_argument( + '--softmax', + action='store_true', + help='wheter to add softmax layer at the end of recognizers') + args = parser.parse_args() + return args + + +if __name__ == '__main__': + args = parse_args() + + assert args.opset_version == 11, 'MMAction2 only supports opset 11 now' + + cfg = mmcv.Config.fromfile(args.config) + # import modules from string list. + + if not args.is_localizer: + cfg.model.backbone.pretrained = None + + # build the model + model = build_model( + cfg.model, train_cfg=None, test_cfg=cfg.get('test_cfg')) + model = _convert_batchnorm(model) + + # onnx.export does not support kwargs + if hasattr(model, 'forward_dummy'): + from functools import partial + model.forward = partial(model.forward_dummy, softmax=args.softmax) + elif hasattr(model, '_forward') and args.is_localizer: + model.forward = model._forward + else: + raise NotImplementedError( + 'Please implement the forward method for exporting.') + + checkpoint = load_checkpoint(model, args.checkpoint, map_location='cpu') + + # convert model to onnx file + pytorch2onnx( + model, + args.shape, + opset_version=args.opset_version, + show=args.show, + output_file=args.output_file, + verify=args.verify) + + # Following strings of text style are from colorama package + bright_style, reset_style = '\x1b[1m', '\x1b[0m' + red_text, blue_text = '\x1b[31m', '\x1b[34m' + white_background = '\x1b[107m' + + msg = white_background + bright_style + red_text + msg += 'DeprecationWarning: This tool will be deprecated in future. ' + msg += blue_text + 'Welcome to use the unified model deployment toolbox ' + msg += 'MMDeploy: https://github.com/open-mmlab/mmdeploy' + msg += reset_style + warnings.warn(msg) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/dist_test.sh b/openmmlab_test/mmaction2-0.24.1/tools/dist_test.sh new file mode 100644 index 00000000..4e90525c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/dist_test.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +NNODES=${NNODES:-1} +NODE_RANK=${NODE_RANK:-0} +MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"} +CONFIG=$1 +CHECKPOINT=$2 +GPUS=$3 +PORT=${PORT:-29500} + +PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ +# Arguments starting from the forth one are captured by ${@:4} +python -m torch.distributed.launch --nnodes=$NNODES --node_rank=$NODE_RANK --master_addr=$MASTER_ADDR \ + --nproc_per_node=$GPUS --master_port=$PORT $(dirname "$0")/test.py $CONFIG $CHECKPOINT --launcher pytorch ${@:4} diff --git a/openmmlab_test/mmaction2-0.24.1/tools/dist_train.sh b/openmmlab_test/mmaction2-0.24.1/tools/dist_train.sh new file mode 100644 index 00000000..89441990 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/dist_train.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +NNODES=${NNODES:-1} +NODE_RANK=${NODE_RANK:-0} +MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"} +CONFIG=$1 +GPUS=$2 +PORT=${PORT:-29500} + +PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ +python -m torch.distributed.launch --nnodes=$NNODES --node_rank=$NODE_RANK --master_addr=$MASTER_ADDR \ + --nproc_per_node=$GPUS --master_port=$PORT $(dirname "$0")/train.py $CONFIG --launcher pytorch ${@:3} +# Any arguments from the third one are captured by ${@:3} diff --git a/openmmlab_test/mmaction2-0.24.1/tools/misc/bsn_proposal_generation.py b/openmmlab_test/mmaction2-0.24.1/tools/misc/bsn_proposal_generation.py new file mode 100644 index 00000000..04e3cc72 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/misc/bsn_proposal_generation.py @@ -0,0 +1,198 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import os +import os.path as osp + +import mmcv +import numpy as np +import torch.multiprocessing as mp + +from mmaction.localization import (generate_bsp_feature, + generate_candidate_proposals) + + +def load_video_infos(ann_file): + """Load the video annotations. + + Args: + ann_file (str): A json file path of the annotation file. + + Returns: + list[dict]: A list containing annotations for videos. + """ + video_infos = [] + anno_database = mmcv.load(ann_file) + for video_name in anno_database: + video_info = anno_database[video_name] + video_info['video_name'] = video_name + video_infos.append(video_info) + return video_infos + + +def generate_proposals(ann_file, tem_results_dir, pgm_proposals_dir, + pgm_proposals_thread, **kwargs): + """Generate proposals using multi-process. + + Args: + ann_file (str): A json file path of the annotation file for + all videos to be processed. + tem_results_dir (str): Directory to read tem results + pgm_proposals_dir (str): Directory to save generated proposals. + pgm_proposals_thread (int): Total number of threads. + kwargs (dict): Keyword arguments for "generate_candidate_proposals". + """ + video_infos = load_video_infos(ann_file) + num_videos = len(video_infos) + num_videos_per_thread = num_videos // pgm_proposals_thread + processes = [] + manager = mp.Manager() + result_dict = manager.dict() + kwargs['result_dict'] = result_dict + for tid in range(pgm_proposals_thread - 1): + tmp_video_list = range(tid * num_videos_per_thread, + (tid + 1) * num_videos_per_thread) + p = mp.Process( + target=generate_candidate_proposals, + args=( + tmp_video_list, + video_infos, + tem_results_dir, + ), + kwargs=kwargs) + p.start() + processes.append(p) + + tmp_video_list = range((pgm_proposals_thread - 1) * num_videos_per_thread, + num_videos) + p = mp.Process( + target=generate_candidate_proposals, + args=( + tmp_video_list, + video_infos, + tem_results_dir, + ), + kwargs=kwargs) + p.start() + processes.append(p) + + for p in processes: + p.join() + + # save results + os.makedirs(pgm_proposals_dir, exist_ok=True) + prog_bar = mmcv.ProgressBar(num_videos) + header = 'tmin,tmax,tmin_score,tmax_score,score,match_iou,match_ioa' + for video_name in result_dict: + proposals = result_dict[video_name] + proposal_path = osp.join(pgm_proposals_dir, video_name + '.csv') + np.savetxt( + proposal_path, + proposals, + header=header, + delimiter=',', + comments='') + prog_bar.update() + + +def generate_features(ann_file, tem_results_dir, pgm_proposals_dir, + pgm_features_dir, pgm_features_thread, **kwargs): + """Generate proposals features using multi-process. + + Args: + ann_file (str): A json file path of the annotation file for + all videos to be processed. + tem_results_dir (str): Directory to read tem results. + pgm_proposals_dir (str): Directory to read generated proposals. + pgm_features_dir (str): Directory to save generated features. + pgm_features_thread (int): Total number of threads. + kwargs (dict): Keyword arguments for "generate_bsp_feature". + """ + video_infos = load_video_infos(ann_file) + num_videos = len(video_infos) + num_videos_per_thread = num_videos // pgm_features_thread + processes = [] + manager = mp.Manager() + feature_return_dict = manager.dict() + kwargs['result_dict'] = feature_return_dict + for tid in range(pgm_features_thread - 1): + tmp_video_list = range(tid * num_videos_per_thread, + (tid + 1) * num_videos_per_thread) + p = mp.Process( + target=generate_bsp_feature, + args=( + tmp_video_list, + video_infos, + tem_results_dir, + pgm_proposals_dir, + ), + kwargs=kwargs) + p.start() + processes.append(p) + tmp_video_list = range((pgm_features_thread - 1) * num_videos_per_thread, + num_videos) + p = mp.Process( + target=generate_bsp_feature, + args=( + tmp_video_list, + video_infos, + tem_results_dir, + pgm_proposals_dir, + ), + kwargs=kwargs) + p.start() + processes.append(p) + + for p in processes: + p.join() + + # save results + os.makedirs(pgm_features_dir, exist_ok=True) + prog_bar = mmcv.ProgressBar(num_videos) + for video_name in feature_return_dict.keys(): + bsp_feature = feature_return_dict[video_name] + feature_path = osp.join(pgm_features_dir, video_name + '.npy') + np.save(feature_path, bsp_feature) + prog_bar.update() + + +def parse_args(): + parser = argparse.ArgumentParser(description='Proposal generation module') + parser.add_argument('config', help='test config file path') + parser.add_argument( + '--mode', + choices=['train', 'test'], + default='test', + help='train or test') + args = parser.parse_args() + return args + + +def main(): + print('Begin Proposal Generation Module') + args = parse_args() + cfg = mmcv.Config.fromfile(args.config) + tem_results_dir = cfg.tem_results_dir + pgm_proposals_dir = cfg.pgm_proposals_dir + pgm_features_dir = cfg.pgm_features_dir + if args.mode == 'test': + generate_proposals(cfg.ann_file_val, tem_results_dir, + pgm_proposals_dir, **cfg.pgm_proposals_cfg) + print('\nFinish proposal generation') + generate_features(cfg.ann_file_val, tem_results_dir, pgm_proposals_dir, + pgm_features_dir, **cfg.pgm_features_test_cfg) + print('\nFinish feature generation') + + elif args.mode == 'train': + generate_proposals(cfg.ann_file_train, tem_results_dir, + pgm_proposals_dir, **cfg.pgm_proposals_cfg) + print('\nFinish proposal generation') + generate_features(cfg.ann_file_train, tem_results_dir, + pgm_proposals_dir, pgm_features_dir, + **cfg.pgm_features_train_cfg) + print('\nFinish feature generation') + + print('Finish Proposal Generation Module') + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/misc/clip_feature_extraction.py b/openmmlab_test/mmaction2-0.24.1/tools/misc/clip_feature_extraction.py new file mode 100644 index 00000000..1829bf9b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/misc/clip_feature_extraction.py @@ -0,0 +1,229 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import os +import os.path as osp +import warnings +from datetime import datetime + +import mmcv +import numpy as np +import torch +import torch.distributed as dist +from mmcv import Config, DictAction +from mmcv.cnn import fuse_conv_bn +from mmcv.fileio.io import file_handlers +from mmcv.parallel import MMDataParallel, MMDistributedDataParallel +from mmcv.runner import get_dist_info, init_dist, load_checkpoint +from mmcv.runner.fp16_utils import wrap_fp16_model + +from mmaction.apis import multi_gpu_test, single_gpu_test +from mmaction.datasets import build_dataloader, build_dataset +from mmaction.models import build_model +from mmaction.utils import register_module_hooks + + +def parse_args(): + parser = argparse.ArgumentParser( + description='MMAction2 clip-level feature extraction') + parser.add_argument('config', help='test config file path') + parser.add_argument('checkpoint', help='checkpoint file') + parser.add_argument('--video-list', help='video file list') + parser.add_argument('--video-root', help='video root directory') + parser.add_argument( + '--out', + default=None, + help='output result file in pkl/yaml/json format') + parser.add_argument( + '--fuse-conv-bn', + action='store_true', + help='Whether to fuse conv and bn, this will slightly increase' + 'the inference speed') + parser.add_argument( + '--gpu-collect', + action='store_true', + help='whether to use gpu to collect results') + parser.add_argument( + '--tmpdir', + help='tmp directory used for collecting results from multiple ' + 'workers, available when gpu-collect is not specified') + parser.add_argument( + '--cfg-options', + nargs='+', + action=DictAction, + default={}, + help='override some settings in the used config, the key-value pair ' + 'in xxx=yyy format will be merged into config file. For example, ' + "'--cfg-options model.backbone.depth=18 model.backbone.with_cp=True'") + parser.add_argument( + '--launcher', + choices=['none', 'pytorch', 'slurm', 'mpi'], + default='none', + help='job launcher') + parser.add_argument('--local_rank', type=int, default=0) + args = parser.parse_args() + if 'LOCAL_RANK' not in os.environ: + os.environ['LOCAL_RANK'] = str(args.local_rank) + + return args + + +def turn_off_pretrained(cfg): + # recursively find all pretrained in the model config, + # and set them None to avoid redundant pretrain steps for testing + if 'pretrained' in cfg: + cfg.pretrained = None + + # recursively turn off pretrained value + for sub_cfg in cfg.values(): + if isinstance(sub_cfg, dict): + turn_off_pretrained(sub_cfg) + + +def text2tensor(text, size=256): + nums = [ord(x) for x in text] + assert len(nums) < size + nums.extend([0] * (size - len(nums))) + nums = np.array(nums, dtype=np.uint8) + return torch.from_numpy(nums) + + +def tensor2text(tensor): + # 0 may not occur in a string + chars = [chr(x) for x in tensor if x != 0] + return ''.join(chars) + + +def inference_pytorch(args, cfg, distributed, data_loader): + """Get predictions by pytorch models.""" + # remove redundant pretrain steps for testing + turn_off_pretrained(cfg.model) + + # build the model and load checkpoint + model = build_model( + cfg.model, train_cfg=None, test_cfg=cfg.get('test_cfg')) + + if len(cfg.module_hooks) > 0: + register_module_hooks(model, cfg.module_hooks) + + fp16_cfg = cfg.get('fp16', None) + if fp16_cfg is not None: + wrap_fp16_model(model) + load_checkpoint(model, args.checkpoint, map_location='cpu') + + if args.fuse_conv_bn: + model = fuse_conv_bn(model) + + if not distributed: + model = MMDataParallel(model, device_ids=[0]) + outputs = single_gpu_test(model, data_loader) + else: + model = MMDistributedDataParallel( + model.cuda(), + device_ids=[torch.cuda.current_device()], + broadcast_buffers=False) + outputs = multi_gpu_test(model, data_loader, args.tmpdir, + args.gpu_collect) + + return outputs + + +def main(): + args = parse_args() + + cfg = Config.fromfile(args.config) + + cfg.merge_from_dict(args.cfg_options) + + if cfg.model['test_cfg'] is None: + cfg.model['test_cfg'] = dict(feature_extraction=True) + else: + cfg.model['test_cfg']['feature_extraction'] = True + + # Load output_config from cfg + output_config = cfg.get('output_config', {}) + if args.out: + # Overwrite output_config from args.out + output_config = Config._merge_a_into_b( + dict(out=args.out), output_config) + + assert output_config, 'Please specify output filename with --out.' + + dataset_type = cfg.data.test.type + if output_config.get('out', None): + if 'output_format' in output_config: + # ugly workround to make recognition and localization the same + warnings.warn( + 'Skip checking `output_format` in localization task.') + else: + out = output_config['out'] + # make sure the dirname of the output path exists + mmcv.mkdir_or_exist(osp.dirname(out)) + _, suffix = osp.splitext(out) + assert dataset_type == 'VideoDataset' + + assert suffix[1:] in file_handlers, ( + 'The format of the output ' + 'file should be json, pickle or yaml') + + # set cudnn benchmark + if cfg.get('cudnn_benchmark', False): + torch.backends.cudnn.benchmark = True + cfg.data.test.test_mode = True + cfg.data.test.data_prefix = args.video_root + + # init distributed env first, since logger depends on the dist info. + if args.launcher == 'none': + distributed = False + else: + distributed = True + init_dist(args.launcher, **cfg.dist_params) + + rank, _ = get_dist_info() + + size = 256 + fname_tensor = torch.zeros(size, dtype=torch.uint8).cuda() + if rank == 0: + videos = open(args.video_list).readlines() + videos = [x.strip() for x in videos] + + timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') + fake_anno = f'fake_anno_{timestamp}.txt' + with open(fake_anno, 'w') as fout: + lines = [x + ' 0' for x in videos] + fout.write('\n'.join(lines)) + fname_tensor = text2tensor(fake_anno, size).cuda() + + if distributed: + dist.broadcast(fname_tensor.cuda(), src=0) + + fname = tensor2text(fname_tensor) + cfg.data.test.ann_file = fname + + # The flag is used to register module's hooks + cfg.setdefault('module_hooks', []) + + # build the dataloader + dataset = build_dataset(cfg.data.test, dict(test_mode=True)) + dataloader_setting = dict( + videos_per_gpu=cfg.data.get('videos_per_gpu', 1), + workers_per_gpu=cfg.data.get('workers_per_gpu', 1), + dist=distributed, + shuffle=False) + + dataloader_setting = dict(dataloader_setting, + **cfg.data.get('test_dataloader', {})) + data_loader = build_dataloader(dataset, **dataloader_setting) + + outputs = inference_pytorch(args, cfg, distributed, data_loader) + + if rank == 0: + if output_config.get('out', None): + out = output_config['out'] + print(f'\nwriting results to {out}') + dataset.dump_results(outputs, **output_config) + # remove the temporary file + os.remove(fake_anno) + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/misc/dist_clip_feature_extraction.sh b/openmmlab_test/mmaction2-0.24.1/tools/misc/dist_clip_feature_extraction.sh new file mode 100644 index 00000000..f5c7a1a6 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/misc/dist_clip_feature_extraction.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +CONFIG=$1 +CHECKPOINT=$2 +GPUS=$3 +PORT=${PORT:-29500} + +PYTHONPATH="$(dirname $0)/../..":$PYTHONPATH \ +# Arguments starting from the forth one are captured by ${@:4} +python -m torch.distributed.launch --nproc_per_node=$GPUS --master_port=$PORT \ + $(dirname "$0")/clip_feature_extraction.py $CONFIG $CHECKPOINT \ + --launcher pytorch ${@:4} diff --git a/openmmlab_test/mmaction2-0.24.1/tools/misc/flow_extraction.py b/openmmlab_test/mmaction2-0.24.1/tools/misc/flow_extraction.py new file mode 100644 index 00000000..b8763430 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/misc/flow_extraction.py @@ -0,0 +1,187 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import os +import os.path as osp + +import cv2 +import numpy as np + + +def flow_to_img(raw_flow, bound=20.): + """Convert flow to gray image. + + Args: + raw_flow (np.ndarray[float]): Estimated flow with the shape (w, h). + bound (float): Bound for the flow-to-image normalization. Default: 20. + + Returns: + np.ndarray[uint8]: The result list of np.ndarray[uint8], with shape + (w, h). + """ + flow = np.clip(raw_flow, -bound, bound) + flow += bound + flow *= (255 / float(2 * bound)) + flow = flow.astype(np.uint8) + return flow + + +def generate_flow(frames, method='tvl1'): + """Estimate flow with given frames. + + Args: + frames (list[np.ndarray[uint8]]): List of rgb frames, with shape + (w, h, 3). + method (str): Use which method to generate flow. Options are 'tvl1' + and 'farneback'. Default: 'tvl1'. + + Returns: + list[np.ndarray[float]]: The result list of np.ndarray[float], with + shape (w, h, 2). + """ + assert method in ['tvl1', 'farneback'] + gray_frames = [cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) for frame in frames] + + if method == 'tvl1': + tvl1 = cv2.optflow.DualTVL1OpticalFlow_create() + + def op(x, y): + return tvl1.calc(x, y, None) + elif method == 'farneback': + + def op(x, y): + return cv2.calcOpticalFlowFarneback(x, y, None, 0.5, 3, 15, 3, 5, + 1.2, 0) + + gray_st = gray_frames[:-1] + gray_ed = gray_frames[1:] + + flow = [op(x, y) for x, y in zip(gray_st, gray_ed)] + return flow + + +def extract_dense_flow(path, + dest, + bound=20., + save_rgb=False, + start_idx=0, + rgb_tmpl='img_{:05d}.jpg', + flow_tmpl='{}_{:05d}.jpg', + method='tvl1'): + """Extract dense flow given video or frames, save them as gray-scale + images. + + Args: + path (str): Location of the input video. + dest (str): The directory to store the extracted flow images. + bound (float): Bound for the flow-to-image normalization. Default: 20. + save_rgb (bool): Save extracted RGB frames. Default: False. + start_idx (int): The starting frame index if use frames as input, the + first image is path.format(start_idx). Default: 0. + rgb_tmpl (str): The template of RGB frame names, Default: + 'img_{:05d}.jpg'. + flow_tmpl (str): The template of Flow frame names, Default: + '{}_{:05d}.jpg'. + method (str): Use which method to generate flow. Options are 'tvl1' + and 'farneback'. Default: 'tvl1'. + """ + + frames = [] + assert osp.exists(path) + video = cv2.VideoCapture(path) + flag, f = video.read() + while flag: + frames.append(f) + flag, f = video.read() + + flow = generate_flow(frames, method=method) + + flow_x = [flow_to_img(x[:, :, 0], bound) for x in flow] + flow_y = [flow_to_img(x[:, :, 1], bound) for x in flow] + + if not osp.exists(dest): + os.system('mkdir -p ' + dest) + flow_x_names = [ + osp.join(dest, flow_tmpl.format('x', ind + start_idx)) + for ind in range(len(flow_x)) + ] + flow_y_names = [ + osp.join(dest, flow_tmpl.format('y', ind + start_idx)) + for ind in range(len(flow_y)) + ] + + num_frames = len(flow) + for i in range(num_frames): + cv2.imwrite(flow_x_names[i], flow_x[i]) + cv2.imwrite(flow_y_names[i], flow_y[i]) + + if save_rgb: + img_names = [ + osp.join(dest, rgb_tmpl.format(ind + start_idx)) + for ind in range(len(frames)) + ] + for frame, name in zip(frames, img_names): + cv2.imwrite(name, frame) + + +def parse_args(): + parser = argparse.ArgumentParser(description='Extract flow and RGB images') + parser.add_argument( + '--input', + help='videos for frame extraction, can be' + 'single video or a video list, the video list should be a txt file ' + 'and just consists of filenames without directories') + parser.add_argument( + '--prefix', + default='', + help='the prefix of input ' + 'videos, used when input is a video list') + parser.add_argument( + '--dest', + default='', + help='the destination to save ' + 'extracted frames') + parser.add_argument( + '--save-rgb', action='store_true', help='also save ' + 'rgb frames') + parser.add_argument( + '--rgb-tmpl', + default='img_{:05d}.jpg', + help='template filename of rgb frames') + parser.add_argument( + '--flow-tmpl', + default='{}_{:05d}.jpg', + help='template filename of flow frames') + parser.add_argument( + '--start-idx', + type=int, + default=1, + help='the start ' + 'index of extracted frames') + parser.add_argument( + '--method', + default='tvl1', + help='use which method to ' + 'generate flow') + parser.add_argument( + '--bound', type=float, default=20, help='maximum of ' + 'optical flow') + + args = parser.parse_args() + return args + + +if __name__ == '__main__': + args = parse_args() + if args.input.endswith('.txt'): + lines = open(args.input).readlines() + lines = [x.strip() for x in lines] + videos = [osp.join(args.prefix, x) for x in lines] + dests = [osp.join(args.dest, x.split('.')[0]) for x in lines] + for video, dest in zip(videos, dests): + extract_dense_flow(video, dest, args.bound, args.save_rgb, + args.start_idx, args.rgb_tmpl, args.flow_tmpl, + args.method) + else: + extract_dense_flow(args.input, args.dest, args.bound, args.save_rgb, + args.start_idx, args.rgb_tmpl, args.flow_tmpl, + args.method) diff --git a/openmmlab_test/mmaction2-0.24.1/tools/slurm_test.sh b/openmmlab_test/mmaction2-0.24.1/tools/slurm_test.sh new file mode 100644 index 00000000..fdea5da7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/slurm_test.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +set -x + +PARTITION=$1 +JOB_NAME=$2 +CONFIG=$3 +CHECKPOINT=$4 +GPUS=${GPUS:-8} +GPUS_PER_NODE=${GPUS_PER_NODE:-8} +CPUS_PER_TASK=${CPUS_PER_TASK:-5} +PY_ARGS=${@:5} # Arguments starting from the fifth one are captured +SRUN_ARGS=${SRUN_ARGS:-""} + +PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ +srun -p ${PARTITION} \ + --job-name=${JOB_NAME} \ + --gres=gpu:${GPUS_PER_NODE} \ + --ntasks=${GPUS} \ + --ntasks-per-node=${GPUS_PER_NODE} \ + --cpus-per-task=${CPUS_PER_TASK} \ + --kill-on-bad-exit=1 \ + ${SRUN_ARGS} \ + python -u tools/test.py ${CONFIG} ${CHECKPOINT} --launcher="slurm" ${PY_ARGS} diff --git a/openmmlab_test/mmaction2-0.24.1/tools/slurm_train b/openmmlab_test/mmaction2-0.24.1/tools/slurm_train new file mode 100644 index 00000000..15e77f04 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/slurm_train @@ -0,0 +1,56 @@ +#!/usr/bin/env bash + +ARGPARSE_DESCRIPTION="Train recognizer on slurm cluster" +source $(dirname $0)/argparse.bash || exit 1 +argparse "$@" < 0: + register_module_hooks(model, cfg.module_hooks) + + fp16_cfg = cfg.get('fp16', None) + if fp16_cfg is not None: + wrap_fp16_model(model) + load_checkpoint(model, args.checkpoint, map_location='cpu') + + if args.fuse_conv_bn: + model = fuse_conv_bn(model) + + if not distributed: + model = build_dp( + model, default_device, default_args=dict(device_ids=cfg.gpu_ids)) + outputs = single_gpu_test(model, data_loader) + else: + model = build_ddp( + model, + default_device, + default_args=dict( + device_ids=[int(os.environ['LOCAL_RANK'])], + broadcast_buffers=False)) + outputs = multi_gpu_test(model, data_loader, args.tmpdir, + args.gpu_collect) + + return outputs + + +def inference_tensorrt(ckpt_path, distributed, data_loader, batch_size): + """Get predictions by TensorRT engine. + + For now, multi-gpu mode and dynamic tensor shape are not supported. + """ + assert not distributed, \ + 'TensorRT engine inference only supports single gpu mode.' + import tensorrt as trt + from mmcv.tensorrt.tensorrt_utils import (torch_device_from_trt, + torch_dtype_from_trt) + + # load engine + with trt.Logger() as logger, trt.Runtime(logger) as runtime: + with open(ckpt_path, mode='rb') as f: + engine_bytes = f.read() + engine = runtime.deserialize_cuda_engine(engine_bytes) + + # For now, only support fixed input tensor + cur_batch_size = engine.get_binding_shape(0)[0] + assert batch_size == cur_batch_size, \ + ('Dataset and TensorRT model should share the same batch size, ' + f'but get {batch_size} and {cur_batch_size}') + + context = engine.create_execution_context() + + # get output tensor + dtype = torch_dtype_from_trt(engine.get_binding_dtype(1)) + shape = tuple(context.get_binding_shape(1)) + device = torch_device_from_trt(engine.get_location(1)) + output = torch.empty( + size=shape, dtype=dtype, device=device, requires_grad=False) + + # get predictions + results = [] + dataset = data_loader.dataset + prog_bar = mmcv.ProgressBar(len(dataset)) + for data in data_loader: + bindings = [ + data['imgs'].contiguous().data_ptr(), + output.contiguous().data_ptr() + ] + context.execute_async_v2(bindings, + torch.cuda.current_stream().cuda_stream) + results.extend(output.cpu().numpy()) + batch_size = len(next(iter(data.values()))) + for _ in range(batch_size): + prog_bar.update() + return results + + +def inference_onnx(ckpt_path, distributed, data_loader, batch_size): + """Get predictions by ONNX. + + For now, multi-gpu mode and dynamic tensor shape are not supported. + """ + assert not distributed, 'ONNX inference only supports single gpu mode.' + + import onnx + import onnxruntime as rt + + # get input tensor name + onnx_model = onnx.load(ckpt_path) + input_all = [node.name for node in onnx_model.graph.input] + input_initializer = [node.name for node in onnx_model.graph.initializer] + net_feed_input = list(set(input_all) - set(input_initializer)) + assert len(net_feed_input) == 1 + + # For now, only support fixed tensor shape + input_tensor = None + for tensor in onnx_model.graph.input: + if tensor.name == net_feed_input[0]: + input_tensor = tensor + break + cur_batch_size = input_tensor.type.tensor_type.shape.dim[0].dim_value + assert batch_size == cur_batch_size, \ + ('Dataset and ONNX model should share the same batch size, ' + f'but get {batch_size} and {cur_batch_size}') + + # get predictions + sess = rt.InferenceSession(ckpt_path) + results = [] + dataset = data_loader.dataset + prog_bar = mmcv.ProgressBar(len(dataset)) + for data in data_loader: + imgs = data['imgs'].cpu().numpy() + onnx_result = sess.run(None, {net_feed_input[0]: imgs})[0] + results.extend(onnx_result) + batch_size = len(next(iter(data.values()))) + for _ in range(batch_size): + prog_bar.update() + return results + + +def main(): + args = parse_args() + + if args.tensorrt and args.onnx: + raise ValueError( + 'Cannot set onnx mode and tensorrt mode at the same time.') + + cfg = Config.fromfile(args.config) + + cfg.merge_from_dict(args.cfg_options) + + # set multi-process settings + setup_multi_processes(cfg) + + # Load output_config from cfg + output_config = cfg.get('output_config', {}) + if args.out: + # Overwrite output_config from args.out + output_config = Config._merge_a_into_b( + dict(out=args.out), output_config) + + # Load eval_config from cfg + eval_config = cfg.get('eval_config', {}) + if args.eval: + # Overwrite eval_config from args.eval + eval_config = Config._merge_a_into_b( + dict(metrics=args.eval), eval_config) + if args.eval_options: + # Add options from args.eval_options + eval_config = Config._merge_a_into_b(args.eval_options, eval_config) + + assert output_config or eval_config, \ + ('Please specify at least one operation (save or eval the ' + 'results) with the argument "--out" or "--eval"') + + dataset_type = cfg.data.test.type + if output_config.get('out', None): + if 'output_format' in output_config: + # ugly workround to make recognition and localization the same + warnings.warn( + 'Skip checking `output_format` in localization task.') + else: + out = output_config['out'] + # make sure the dirname of the output path exists + mmcv.mkdir_or_exist(osp.dirname(out)) + _, suffix = osp.splitext(out) + if dataset_type == 'AVADataset': + assert suffix[1:] == 'csv', ('For AVADataset, the format of ' + 'the output file should be csv') + else: + assert suffix[1:] in file_handlers, ( + 'The format of the output ' + 'file should be json, pickle or yaml') + + # set cudnn benchmark + if cfg.get('cudnn_benchmark', False): + torch.backends.cudnn.benchmark = True + cfg.data.test.test_mode = True + + # init distributed env first, since logger depends on the dist info. + if args.launcher == 'none': + distributed = False + else: + distributed = True + init_dist(args.launcher, **cfg.dist_params) + + # The flag is used to register module's hooks + cfg.setdefault('module_hooks', []) + + # build the dataloader + dataset = build_dataset(cfg.data.test, dict(test_mode=True)) + dataloader_setting = dict( + videos_per_gpu=cfg.data.get('videos_per_gpu', 1), + workers_per_gpu=cfg.data.get('workers_per_gpu', 1), + dist=distributed, + shuffle=False) + dataloader_setting = dict(dataloader_setting, + **cfg.data.get('test_dataloader', {})) + data_loader = build_dataloader(dataset, **dataloader_setting) + + if args.tensorrt: + outputs = inference_tensorrt(args.checkpoint, distributed, data_loader, + dataloader_setting['videos_per_gpu']) + elif args.onnx: + outputs = inference_onnx(args.checkpoint, distributed, data_loader, + dataloader_setting['videos_per_gpu']) + else: + outputs = inference_pytorch(args, cfg, distributed, data_loader) + + rank, _ = get_dist_info() + if rank == 0: + if output_config.get('out', None): + out = output_config['out'] + print(f'\nwriting results to {out}') + dataset.dump_results(outputs, **output_config) + if eval_config: + eval_res = dataset.evaluate(outputs, **eval_config) + for name, val in eval_res.items(): + print(f'{name}: {val:.04f}') + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/tools/train.py b/openmmlab_test/mmaction2-0.24.1/tools/train.py new file mode 100644 index 00000000..d4049804 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/tools/train.py @@ -0,0 +1,222 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import copy +import os +import os.path as osp +import time +import warnings + +import mmcv +import torch +import torch.distributed as dist +from mmcv import Config, DictAction +from mmcv.runner import get_dist_info, init_dist, set_random_seed +from mmcv.utils import get_git_hash + +from mmaction import __version__ +from mmaction.apis import init_random_seed, train_model +from mmaction.datasets import build_dataset +from mmaction.models import build_model +from mmaction.utils import (collect_env, get_root_logger, + register_module_hooks, setup_multi_processes) + + +def parse_args(): + parser = argparse.ArgumentParser(description='Train a recognizer') + parser.add_argument('config', help='train config file path') + parser.add_argument('--work-dir', help='the dir to save logs and models') + parser.add_argument( + '--resume-from', help='the checkpoint file to resume from') + parser.add_argument( + '--validate', + action='store_true', + help='whether to evaluate the checkpoint during training') + parser.add_argument( + '--test-last', + action='store_true', + help='whether to test the checkpoint after training') + parser.add_argument( + '--test-best', + action='store_true', + help=('whether to test the best checkpoint (if applicable) after ' + 'training')) + group_gpus = parser.add_mutually_exclusive_group() + group_gpus.add_argument( + '--gpus', + type=int, + help='number of gpus to use ' + '(only applicable to non-distributed training)') + group_gpus.add_argument( + '--gpu-ids', + type=int, + nargs='+', + help='ids of gpus to use ' + '(only applicable to non-distributed training)') + parser.add_argument('--seed', type=int, default=None, help='random seed') + parser.add_argument( + '--diff-seed', + action='store_true', + help='Whether or not set different seeds for different ranks') + parser.add_argument( + '--deterministic', + action='store_true', + help='whether to set deterministic options for CUDNN backend.') + parser.add_argument( + '--cfg-options', + nargs='+', + action=DictAction, + default={}, + help='override some settings in the used config, the key-value pair ' + 'in xxx=yyy format will be merged into config file. For example, ' + "'--cfg-options model.backbone.depth=18 model.backbone.with_cp=True'") + parser.add_argument( + '--launcher', + choices=['none', 'pytorch', 'slurm', 'mpi'], + default='none', + help='job launcher') + parser.add_argument('--local_rank', type=int, default=0) + args = parser.parse_args() + if 'LOCAL_RANK' not in os.environ: + os.environ['LOCAL_RANK'] = str(args.local_rank) + + return args + + +def main(): + args = parse_args() + + cfg = Config.fromfile(args.config) + + cfg.merge_from_dict(args.cfg_options) + + # set multi-process settings + setup_multi_processes(cfg) + + # set cudnn_benchmark + if cfg.get('cudnn_benchmark', False): + torch.backends.cudnn.benchmark = True + + # work_dir is determined in this priority: + # CLI > config file > default (base filename) + if args.work_dir is not None: + # update configs according to CLI args if args.work_dir is not None + cfg.work_dir = args.work_dir + elif cfg.get('work_dir', None) is None: + # use config filename as default work_dir if cfg.work_dir is None + cfg.work_dir = osp.join('./work_dirs', + osp.splitext(osp.basename(args.config))[0]) + if args.resume_from is not None: + cfg.resume_from = args.resume_from + + if args.gpu_ids is not None or args.gpus is not None: + warnings.warn( + 'The Args `gpu_ids` and `gpus` are only used in non-distributed ' + 'mode and we highly encourage you to use distributed mode, i.e., ' + 'launch training with dist_train.sh. The two args will be ' + 'deperacted.') + if args.gpu_ids is not None: + warnings.warn( + 'Non-distributed training can only use 1 gpu now. We will ' + 'use the 1st one in gpu_ids. ') + cfg.gpu_ids = [args.gpu_ids[0]] + elif args.gpus is not None: + warnings.warn('Non-distributed training can only use 1 gpu now. ') + cfg.gpu_ids = range(1) + + # init distributed env first, since logger depends on the dist info. + if args.launcher == 'none': + distributed = False + else: + distributed = True + init_dist(args.launcher, **cfg.dist_params) + _, world_size = get_dist_info() + cfg.gpu_ids = range(world_size) + + # The flag is used to determine whether it is omnisource training + cfg.setdefault('omnisource', False) + + # The flag is used to register module's hooks + cfg.setdefault('module_hooks', []) + + # create work_dir + mmcv.mkdir_or_exist(osp.abspath(cfg.work_dir)) + # dump config + cfg.dump(osp.join(cfg.work_dir, osp.basename(args.config))) + # init logger before other steps + timestamp = time.strftime('%Y%m%d_%H%M%S', time.localtime()) + log_file = osp.join(cfg.work_dir, f'{timestamp}.log') + logger = get_root_logger(log_file=log_file, log_level=cfg.log_level) + + # init the meta dict to record some important information such as + # environment info and seed, which will be logged + meta = dict() + # log env info + env_info_dict = collect_env() + env_info = '\n'.join([f'{k}: {v}' for k, v in env_info_dict.items()]) + dash_line = '-' * 60 + '\n' + logger.info('Environment info:\n' + dash_line + env_info + '\n' + + dash_line) + meta['env_info'] = env_info + + # log some basic info + logger.info(f'Distributed training: {distributed}') + logger.info(f'Config: {cfg.pretty_text}') + + # set random seeds + seed = init_random_seed(args.seed, distributed=distributed) + seed = seed + dist.get_rank() if args.diff_seed else seed + logger.info(f'Set random seed to {seed}, ' + f'deterministic: {args.deterministic}') + set_random_seed(seed, deterministic=args.deterministic) + + cfg.seed = seed + meta['seed'] = seed + meta['config_name'] = osp.basename(args.config) + meta['work_dir'] = osp.basename(cfg.work_dir.rstrip('/\\')) + + model = build_model( + cfg.model, + train_cfg=cfg.get('train_cfg'), + test_cfg=cfg.get('test_cfg')) + + if len(cfg.module_hooks) > 0: + register_module_hooks(model, cfg.module_hooks) + + if cfg.omnisource: + # If omnisource flag is set, cfg.data.train should be a list + assert isinstance(cfg.data.train, list) + datasets = [build_dataset(dataset) for dataset in cfg.data.train] + else: + datasets = [build_dataset(cfg.data.train)] + + if len(cfg.workflow) == 2: + # For simplicity, omnisource is not compatible with val workflow, + # we recommend you to use `--validate` + assert not cfg.omnisource + if args.validate: + warnings.warn('val workflow is duplicated with `--validate`, ' + 'it is recommended to use `--validate`. see ' + 'https://github.com/open-mmlab/mmaction2/pull/123') + val_dataset = copy.deepcopy(cfg.data.val) + datasets.append(build_dataset(val_dataset)) + if cfg.checkpoint_config is not None: + # save mmaction version, config file content and class names in + # checkpoints as meta data + cfg.checkpoint_config.meta = dict( + mmaction_version=__version__ + get_git_hash(digits=7), + config=cfg.pretty_text) + + test_option = dict(test_last=args.test_last, test_best=args.test_best) + train_model( + model, + datasets, + cfg, + distributed=distributed, + validate=args.validate, + test=test_option, + timestamp=timestamp, + meta=meta) + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/train.md b/openmmlab_test/mmaction2-0.24.1/train.md new file mode 100644 index 00000000..0014a32e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/train.md @@ -0,0 +1,65 @@ +# MMaction2算例测试 + +## 测试前准备 + +### 环境部署 + +```python +yum install python3 +yum install libquadmath +yum install numactl +yum install openmpi3 +yum install glog +yum install lmdb-libs +yum install opencv-core +yum install opencv +yum install openblas-serial +pip3 install --upgrade pip +pip3 install opencv-python +``` + +### 安装python依赖包 + +```python +pip3 install torch-1.10.0a0+git2040069.dtk2210-cp37-cp37m-manylinux2014_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple +pip3 install torchvision-0.10.0a0+e04d001.dtk2210-cp37-cp37m-manylinux2014_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple +pip3 install mmcv_full-1.6.1+gitdebbc80.dtk2210-cp37-cp37m-manylinux2014_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple +mmaction2 安装: +cd mmaction2-0.24.1 +pip3 install -e . +``` + +注:测试不同版本的dtk,需安装对应版本的库whl包 + +## ST-GCN测试 +### 单精度测试 + +### 单卡测试(单精度) + +```python +export ROCBLAS_ATOMICS_MOD=1 +./sing_test.sh configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py +``` +#### 参数说明 + +configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py 中batch_size=videos_per_gpu*卡数,性能计算方法:batch_size/time + +#### 性能关注:time + +### 多卡测试(单精度) +#### 单机多卡训练 + +1.pytorch单机多卡训练 + +```python +export ROCBLAS_ATOMICS_MOD=1 +./tools/dist_train.sh configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py $GPUS +``` +#### 多机多卡训练 + +1.pytorch多机多卡训练 +在第一台机器上: +NODES=2 NODE_RANK=0 PORT=12345 MASTER_ADDR=10.1.3.56 sh tools/dist_train.sh export ROCBLAS_ATOMICS_MOD=1 $GPUS +在第二台机器上: +NODES=2 NODE_RANK=1 PORT=12345 MASTER_ADDR=10.1.3.56 sh tools/dist_train.sh export ROCBLAS_ATOMICS_MOD=1 $GPUS + -- GitLab From 701c0060afcce18f55d0cd30609f760ab405caa2 Mon Sep 17 00:00:00 2001 From: unknown <365893829@qq.com> Date: Mon, 16 Jan 2023 16:59:47 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9mmaction=20train.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openmmlab_test/mmaction2-0.24.1/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmmlab_test/mmaction2-0.24.1/README.md b/openmmlab_test/mmaction2-0.24.1/README.md index 95617f05..675fb6be 100644 --- a/openmmlab_test/mmaction2-0.24.1/README.md +++ b/openmmlab_test/mmaction2-0.24.1/README.md @@ -34,7 +34,7 @@ -English | [简体中文](/README_zh-CN.md) +English | [简体中文](/README_zh-CN.md) | [模型测试步骤](/train.md) ## Introduction -- GitLab

        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 z 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

      2. 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�B_kvyaAPJE3nnKgCN4`S77iyH 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 vFL#ff=#&ruid3bK%~+KlqGHD+kSbY{ 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 literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/resources/zhihu_qrcode.jpg b/openmmlab_test/mmaction2-0.24.1/resources/zhihu_qrcode.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c745fb027f06564d41794e9a40069b06c34e2bb5 GIT binary patch literal 397245 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�z}kBy(lpECAp?2$3?2Ce?C@=QTLjJV^{=f7xK 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 `>)#!#P|5Ci-PrOOx&3?kH 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

      >K4yWKK#}vc%Pw;3s<~n~Z=dje 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�>i(XAW$ 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≷i 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%0DuG#D1fsCR9$gZ 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%0AU-FTpn6- zbHm)&&8P^L`easKOCLlNP6_noSFC*#68O)8cWRhmi9K8xx{4td)a-G|YPA%L6UG?W zEk!6|-B&=iL1&QzBbjFR0xubsfr&ktq{0d5%Su$_qy*AuV>{WmBU` z2Gbz9|(-pJsW;6eAOAB$yx#v znA9$5>Pt@a-nBokQ38pZ^4aHpGDBuf2|NEo-4B{FK-Cq{fHVRPzl>lFvYieV7Hgmv zXH}xMl>%*Nc^Cy3!Ua*hk%MTEqZ~KzDG&lI6nUIu7CLgmz$otm7MfIFQuo3zsf!_V z1Hl)rkUR)JQc5iU*hiIKrq*IJDfC>@LC~M3stRfy$jW?DDCR`-_@QJrVVJ~p0$!Xa0Kiee z0SegF1vnCzmc2wiFuZ{XQrRz(dLbL`Py-o06D6Ah@1_#7&~}<=BRGY{jwk5iEM_Ny z!CVbwOnH|CmIAl28Ic4oB(CAFhVMPsgKx%)R1_PS9iE08)Cqq?FgGwhBl-+ zmE`Krz_2u|sSJ~}@{S5lAcT||)gzu8lvHFflV3QshGLBBE04BNsGTl=u3X*fxJQlN z{iItn>soe5s}Qs@0k|TJqefVDnuxj)u5X>AT$5=$4ir-i1h{JuM(CJ~qQMJ+O{vDz z^&tvy^RP0d>0lYl*p~K70_NMwWM#CYWa&?FC9&2?@zjwNk_tM&@I_NEM>?R@Q-x-e z4s5Ic*-xK#RkpBviYbutr2BPEH*RY%8GRc^Jzh7DT`ca{$ckL$E_Z@-jYD$Dpdvr^ z^$lYP!4<9x*NAL4S13Ftc{dnd#3~k47S-`!E3h*kOU`_dyH`-6=8~Lwgm0m}o6~HX zIpp+LwO5*I`pR~sB5UZtSzO#wxXjw`gokX?VF+(~myixT_ruAR;CecoW)QR0xoCzf zGetIoyD(wIGd;tIlbhm@J!>uspa4eKr2*vHII&Eq$c`DEn*32}hB_mf4|OywBda&b zBBdge*(fxv$TK#l5PY}8PbzN5p$-OB2?(754Lga9bu@#U(U6A! zHCt&Y9_I5~)4<%hCS=zmrgNQjB?>q^yTv3%@)7(Ng1lZArZ%3(jVI93M(>!Mku~c2 zJVKETM4-KrCSJkddWoGlH9UdjFn4-q0!i- zqV))8;UqAtCfRBBHJBOZK(<9&xy26g!#oi2Wiy+_d!A!*`@EpFRGXW{)b?Q$y;xlX z4CXOs^t6&i?rB>S-C&XrA#rZOS08kjWQ_NZ1ctfQ{-AoU!55H>k&|2e`&t5TWx-GN zK1TkndrrQpDOj|BowU43+?2KDg~B8BV#AFP{jl6 zp{$+vA3*1^_sG#|r%R7_FS$Xc0IY|Up$ne)dvaM0hcJ9U42FiQaJi|5@{_;T8&LoH zF<64>X?OB*;kmg7O4@t>T*3*J9};0^i(y~_^oC*oOb_xPXNXjREC`3HROo`P&5a)L zx<)|vc!vW2h0mVg*1#@OMnLR@Z^SaN;%=#pJW%@JO8GV}&c;u=oF`rXr~sx&5Ux}V z{=@{u0&nHwpcdXi2X*jac2Ed1>c*Vl3+hhz;3)ARVA`BX2?qisl*3q>gpBSF|4uDC zmTLbvZ;8yp8Dhb`hAdM)Z5UEdfl_55U=L-!%fiwyu0RlNbdQ*b3+%qb0%35DK#;?Z zOSwwW3{FsO+%DNltfQ>U?xgPuL}may!3MWY5m_z=ckmsYAp;um9l}74!b=SfB<1ul z&z>j#D6iC(qJ7#20NcrQ_Tr4nNEmA33J*{VoxvCk?9%89W>De(+NX(V4+n-NxE^o` zT41<3P>$FjqhLS&LV@MPU<}A0`o>W%B#&pJ4xmn=76H&7hoKjY z#YQfsWZZ`fXVDg2@fD4u3tP`{zzA#_5Cj|$0^?`}cC7_^5eCvgXM4@*Liw z7QiwUo*)czuof&}{G^gJt5OV>EVGb?7UD}FPsc335&!|RAz6>BFl84wuSa^JEpOyf z0IE!ai#qd?3=~T*v(xZYzzYDAgShhoG4Q%<50fquYDi!)^(Z8P&j^h17-K*h(I5rp zle0W>8EuPk|eba|wDaK;aB0JyR#;FEp?73W%@-rSCJ#Q2@%| z?+$Ab-9Zr85fiikraFK&ao`Q)aVo1ax&FX2ji@sJ(_+gE?DN19MuFitXB6s?(?-W~ zA60^CI>S1((?@?)FW&$Lx^oH4Pdw`pJeNxY-ee=(N{-UgK6Otc-g8I=lsnnLN-I!G z6DSShAU^l7*ite+1#>h?veD#dLU)q7y6ForP7{TaLIolSvS9l#l;v6zEb;6pLzE1% zk1CL6g=mX12}-Q z&eYGA@IR;kyPTjSO_a~l6j(&F?(9@UTk{QCH1TPpJV1O@q=`Kc3dw_M`+?_|M7GhHOnq5I2P$T z_i|o|X@tn{{Or|8Qy{N4vhJ*Qn99#z(?A18c3>Y6O2hONjBzU9Qv+TA2IMo@Vs&lz z5MrTYOB-%o1k@w&!QH))j?Yv{B`vD0bQkfP?5YWwoqK41?w=md&% z&r+Zwl>lrPfMEYp8HW|?HjwK=LvI0e*Tggi#;S|Zh&O z4kzku>##ugcDIOUC$4v8PZNdz>5g!PZ==d_P3x59lE4rA;3)|&?Jyw;upoWEwQxPN z3E>wnkj}7fF9*FO?NIe zNi!6n4FmNv1lb4}gYpeJsNU|-4Ah`klu(P!afMlU1%c%g&@>SdEBexrgh;d|c{s67 zDmiCsAAxf^-xUpkYl)e7fQ__!q1K82_>l?oioICH44?&}PipxHg$E*xNs~}*pB-N49r_dx*k}0{7 z{kM`;H;?EwJ6#rv-(GmzJ?BT5p;AGBmN;RC4dmmvdB-B9$&{ub9;j+Sd2k6xxZC zS(+cYbst)y9hsUZ`H!6-K}3o&=JX1Z7%wr}n{6X9R_v13x&9JUjou}#b}?S7z@?-1 z0aIC(69NRBPv;smo!#`qJV9iehweZjpZ%DTE>v3OF_r@r=c;CA4q8bOdZC{hs-YU6 zk=dak+NvoPt5KJltr?`VIh)s{qlcQ2uQ{U~L;Fg)FvaF~%uB~e3cqIBga`?YZ9rYl zEHpZfG)6=H&gxYEp=&7L;*)wZGh< z_btk1+AD3G%}4R-V%rQQRXEUcTt5#OHl=ysxq`a`nd+yF;SDs)dWVBjtp6EjrF_bp z7Gtsd${9V&A6?5aTf3VXyv^LpRs2#doyb7x$%tG+UCIH=Wb5bG(zM(8vod;D&@7hSf>EI15KW!rh!wp=d|_>8LH9m9V;9XD;(EIugLR z0Xqxsdj0mAFe^MlCzqr7m)|L}(Hq^^i=DC|-Mcy4*`2+0(>vOm{en2n>fA2WwQ$sG zV${*K86HjC4MduZq1^w`CFJ9qM|Ry&UDjLc)=yK=x<%o*uCMzV-xF)e7KCa0U4(`` zyCePI0bbb)-r%`;n|~hR1z6}U8jh&C%z+*+(Hy4;j;AidEDW+OHJ8mrH{&%val8T( zrrySjfk*H$v0{r%jxekNeEZ=vtar77NA7BD@G5rYB?(ZJ&2`!^u z2(vo*9oYXK@B_c!`&Z02!L$v3+WlVeqrfw8h%J@6al|s+bi@}b-xrc$zmfx+-{eg+ zns)408D`?&jFn^Zg7b~|^iv=886aRwpF!^izY`{^x)_6NKb*-RAOHX%`2+00{p8MWh;Ntl+X~2MsFJ!muH%9}XTMIC2ER6oEV}SU9jiLIaN;9Td@G zDgzIQ7DPmNAfkcA1ql$u(#Gd!@e3z_Tj^)TTsCgI#6ST3UJ+0m>XBZN)U9(=zU-Tf)^%# zK|II;7=lT_8YmDZd|^W2#f$@I5JK71K!iUHKGVgyvZYh9PKl-l+GI&nc6+K?z4@85 z*R*0|9{TivZ3HMATD<%5W5&v?~Nn*<4zA}joODbb|}*{!3?f_^%)b+!bjaOBEe z>u$T?g_-{?OMWF;wdm8QAJ4wMS+>7{S}syOV_+tDH=V)nb}*ACX9S2}1SSc1AAtWg z!G#hVV4zom78n>io;jfzRbZf?oKF;X0SR+Shy#FhdH|v&Cu+FjpBx$y z12!a<_MvF0ypj-;Ek+6(j6KO{BaWD6s_9WW!jzj99ZgYzs1ThdXp<^Fsp>%5b>&q{ zRFeN?rFdA@y5)La-lFS!mo+LMpc>KF>uG+a>86_xQg~pVYpO{n7Y*h)nFiEWyMdn< zX8UKLr-Inwg|i@v=r!M#c#5w|N*Ae%lUBOarkC1S)4cS?Tal)cuR58Rn%{AztTb;JQ zn;ByTNl>N+^y)-WEh=qJt4A@@!L?`A*bSRqlx1NvU{l-lO((2hRp6Iw-NudV!QP7o zF8%b-d-$34g`0Q*-yic}_=b_sy!g0{cR1|J(v%N#G(KN#Ileh%POkwuxiZAPwq=zJ zFZ%Y<3ozPA3-B(&t?4AmdSAJoEF|{20-|aPR*O>C+HySISivdmSpd?yqCxan%5zEc zAePQXLaix)em7#k1i)mUyiulm#)%&FW++1s6{mSP^jP=w zs72H$U*jf+8KLC_Unqi8%Hpks9oCC=pEwxlxixmD2dx1=;q*q2YvnQIusZqhiY~)J_r~ zTwAETXt>n@b1jt{CTNmmnFFfsD=s|+1lxFo3C?q-Z<{7et7#HY6;np%X{IfN;XZGI z^P2`ti8>uH)Qd!642EHnXDnvVY1s#PFvL(}`Uy}kXkedm3#b?n^Mo{btgK~4=$+KK zP*lcDq7aR!UDpSTNxdwH7R4x~5OTp+h7@xkjiT^qQh?f^qG_UgEN+B{#|3=Rj8_>( zR+#z>mg13B00f3HhGC3lMvzrKRf}CdW3iD4HEdS6CIiJOOuPTgHfTG2ol~D$l$Lp9 z42Epx1P1c}A(ZGOj)4G6R=5%iBxY{Ro5cqZWY)Hx0Z!IUt3RvTf(=Luu9KXrhZY(+ zXrMBq&`7T{IFv++{_w7=JV;@UM&J5&^fn*G5vOwGDG?w53@r`e(pD!6&u*5fSpi*X zXTeN^Y*e)*0qT5S%Md=wR-9l!DzA{FTHTU|w?bjcs*I(^P(3vpqxfukBDA}wkR4uBdomaOXd2) zQhu8Puyo$#6l`kt7A7{ZOgp=@Wss)9sO@9%04dp_%4q*2;$dcncM8)1s->wP2C!+PRmbGju_wH%!Qc2Km;Anke$tc5a$RuyMHEf}njTCf3y z!j)|l*W~;ISNtxf#jI_fY1KM1@|ncq>}+PoA`2EDMtOv>ad`Wg7~@{+yUsgn2Pz$g zz8T@&@QycNWtP26qYu6fh4QDp6>8Yvks0RYw7(7ViijBe;1MZ8^*9VGgggAk2wp)HcmX42+AaDOZwX_?h$FW4|&PJVfn4nZ~6qJdL z3#`=jN<*dzBxZ%*&Qk^O2F>Snm(nPcx6+pm@0(d808c=$zut)?FDOY}>V3zIvoNY~ zF#_J9ap+qiTJ`{v94>^W->l#bmx>)TGW4Q?rz&qpIO;Z2SkLJy7|d9Pvug@y+;)&N z1jg_W?hNtK$p`XgP$_Y?z&h)4MeJXnyyOLu3-9_erqhUo}F0q7{95*A#O!ewp4 z+=qkP;AAb5dtgUzE8%dzBtw-YffiK_ps_d_XapI!fyKv$Q&@4mb`tVpFkFKWkR?Xj zL0TU~5jW6FvqW;i;t+6AVI72WmX#87gosA};VPl!N38=WNAfF^(-`FjJqndbLRJ}b zwL_SANpVFXCopRMNo>y$89RG0wSUUCc=g*z<+>8Mi~$RHDV)*2MhZG6*Qtj2S5Zq@QwG=65H`9 zYJ(o1qlg*d61bs=<+yB1gM%NqE7Zn==~synHe|+gPjJ*i^Ym4G;#_u9P;yf(H)d8R zfPYWugr=y9tk{sPn1BJOZ?dR`wYY^{NOiAaLcy4D*t0;vXpbm|HgQB8j3#zGpo}q~ zjNV3vGgXbWgkoH#jW_{_H&B!JGn3o@*fow37hi*p9+4vsp-r$gey{R)=qD7)0d)A7 zeL~oI0RvWTLLmaFEaXOAipD1gnUDynl^Erakur4u_mwVWkwy~Es8JK?=0N!|$C^jn%caF%Ej`c`EaWL+Pjw>jL-dB#eQ*iSC2vw7a8tb=JnTZ4Nq&<-qknIT|YNZ!B#vqcEG1pZg z&ZV0A*_Bc#mH_xbR|GQSbmx*{EWt);I14LAGl+5|hQfv# zfs)FYMw|hJ+R;%axC>%r3;7b5)Y*;JxuSi@aS5t|F$jVQbB0=HIZPpflgVb`G!lK$ zk8nX5cEX9>GnJqjY5Xxz=XNL6G6L(Cn)?}8q_m1i5VNqC5kvrUB-7@?~ zv3u4ntvRz^`8}YNWD}XO4%xN&7OLw7N+3&{rh2Ml`7@2ut|tqexyEfmbP8lck`8JO z4DoKnX{(XK8B)82Nzp$|lZ`jRvjRJ;M9>k1*b+($D@<#1SEWu}@VI3VxhEt@g#@{U z#74RDG);kK(^^>+Q9GvMGT<|0EN6rFn6-0w3gv@DUhA!`8`%bL;QZjiPdxyF_qlQJezTsMAPX>USstUvOKxjE? zx7!S0CttejuENl^IH(IkbPd=?h_bpk8=8_L5(7)Q5YKiHT)C~_T6rq6ydj}#8nlxj z9Kwqmp$D5mA=DMmW3;7!ztJ}K$XLYZOZ#=W9w0o|gvkgLw zfa;YQa@EYGtV_Hr!;phgLBhFFAE{v+KI9DJnZ;9!v95cu`fEC>JBwjlyF?){2uep~ z^P=2=9bsDwPzFFJ`d=DswR#((d8((^`Cknrs)fv2cq=10E5|#`t*m*-vr!PYi@Va> z$d2s0k?gy0N6BLIVes@C(M*}v#>K|`t!s2(m$6EyLR%6ub2sk_xqKwbNk7c&y92JP{R&J3@) zRt#k!%?nF%Bp^753T&d<48)Le<{T8jmWC00yitrO4T>lwSf}t9$(rFSE{BM*g|{pJ zvcVzyn+>y_yLB1ta}MW_Uh&MUB(XD5H?y&@v-+&d903(r7#aW#n$&2RGg7$lRLEVN zO8RTls_`0nHCR~}(Goq;6>ZTAtGZ2BJRhnVu2B%#+{QDPg?RfRCyl(=kT{4USuCwI zx&~&+JihO{Eljr7MqHHX{CEce&q2%#!Qcx6<~lJ;aqsl6g}DQiozzqfxBZMpPaT?T zQ>-d_1g7A%SM9@D?bR?+S8$CG5WTy*Bi5Pq(PaI^vQhslLMS z*_OScBETs3vdx@fm2?tkaXOgRX4Rv;y0K;2r?gO%vf7iJ-&KKe(45%gLCwN3+kmW% z`65OLHl8%+%V?cMX?iGDoYJq5jiwt6{&Tu`+o{kEVF06reZ9K$4cFCTiYVISwuX< zuub7Q2>~MPKnrj`bE5d_8Jy=ejJY_j2s_(m_yx3Pg;6#bBpIFzBK^ z3r4ld+Of?rZhMSw+P1D8`tt41cioaX7Dj&2SkViNEzf_;s|JqX@KHpSvTvrYIH#V{ zYN+Z;!|oS!3s@WLVP1i>9=d#Y>kgyI#GnkY4e3b1>&ejY!QkC-#~;Ez*}B}~DDkHsZqw-=jXV4)GyLWzFrP0ld$+CUCkKl7|U z+)%DG4*&2Yp+XTKQpMsj@8(mxB%1W#{(-HWihx~UBV~<`2oO^QT0uoH)lL+xPf5H z7Ap%7*a&c7STm#)F)<6ah1Mx)QKinJMorp5mRXl&MI~t&RjSL9fg`I_7|a7d)uKWx z2|=o5u_PU#OUZ6sylxE+D^|>yvzD@$4How5$KeQx6)!&gcU#iIgM00wtT!VWo^|3b=oUl$7Ii~8w(8otbzsw$}$2LEX$We(hfgR;K%~Q zg$FLrOiUR=ZPA}M1Q#8eG^R$XnYz3&;op)PGL$@-l0;xt!FlS$$=hY1seIf zv!%mYPHpKsqlLy;Q)L<}yn-sMU;4UlskQ{-Wr|p)sO+t{?y~Sgx^^MxmW=wM%9?Ai zBMdjhN@VP?r67xpsmUaiWG|0mj1exlF4~Z{(MUTDHPuvs>KY(V0VcLx>{?5hpj=VX zK~uE*&9w$@AVNx_VzP3>2$y88py|X}h#Pd!Nk=+p7K%z4BUTWy!-V<*=>jD-U|~)R zP%^YR5usrqRgpTN;pMo*VMcJ)>^tykpMQKv@~eCb03S2oa(#;m+Y{O7-6JB zDe{$qIO~O>UJpjX6FBt%_Vc|!7qFm|Y5qDmVZiQgtziyJ5V{n`88tBD1RUtl?T;JR z7#8qCHQ7qeV{%Jnq*Mhlns=qzIc8d2t(hskG;ZoaTVmJDSCAzPRiMy@-7&R8A3LY2 zjy>+>Qze&O3l%U9pO%(a4#2uvoJs6@OE0Up-b-`GzTT1#?gg(1JLQyn?z-;`JXR8& z-+O(5rSwS{hYeo%d;yie%8FTrW>pr455TypWgLJY-@#Ai4g{N5{7Q3H>)a41p&^^4 z3K{@R6yj)P4BD9pKdQ4?fi$Q8o2SKwQ@;WhP*#Jy@tE&JqeB!rYVkru4I?fNs*I;< z#Jr8Xf_qfsP6LaQGQOa1TT2SY^|WWUb3vzirJ$QiMglht&})43%D~n{kR&DL1}*E; z8&Qn&MdL8w2N*j@qIyI^0V&KdiX)m;pwhhmwdy#rXcI;DrG>_w;w%X~$O5=s<>Y<2hVNK@W!T7SCAWc9P+c zU|2$Jy{XVni14Bn#b}5Fk;oC1XhbhDv58f{z!T&p#a%wkQ-{%F>}bP9_IMGD!V$qG z1J{uX4#<)hykLY*P%Ov)#nCeZN>N4pXSqie#E(97ppgi9PPc84VUgNkB9}osMh{nW(NR-nJf}BK9k`WGIvsdp%90e&b){*5Vn~O{pxf`5`k}g z3P)qz<}-mI%r5Zw#%j8PLdF=?^PV=A2)a{ngyu2LeSS5{xBW(z#ZIS+#=UvQ=IAq6}0~v}6_G5Swt-E7b0fpQbZL z(cWo{(V|2gto0mH*u%oX3~6vIeH(k5$et1x zrV>hR_BEw`wKSO%3T%cR^-d0rP^_qvl?ed{GRBEuwNOHcFo>!(yk)Xknba_Q5uK_r>7C?ms!0Z*RW7>2g^ z$J)$d7QG|?RIk^NvC&$(HyjQr!T9W3()n`dA*W<%hQQdg^9s0MYhg}hWAUps9RwCz z+o>cIGXf~%sWAS@W+{S>5-bq&~f zRmL<%?UP!gNF?ca8L5J*S3TwnAS3DjX+FJj|EwTStZfBe@^tNnPga~}8#_5V-Luw8RNFd%uh4mfXKg`*;6KCYVtzg<&dYj@Vkt75`Zn~s zi@U;S6q!?tqIYR5C7ZF#nCbjMEiLxE8OaP>#sxPQzKbzPAh<;_5Q9+o0xhegWQ6GWKMNN7@Yaq#!lulMTJp*jX{P3sw$)99wNto1v=D;PkMkxf2JCVqDjK%RBIN@u?*z3!sP$b(i&;yOqBt*IX zsy3iJh~KnD`7^WK13Ch|NR4!Z5P*U)eHHJ@B=xJ(fTR%reOjmLeAB?>Kju=a>(Y#@ zI67oOHHsq78Ku#v$dwSf(P!z5s3IgfRm2gTDC;W%^P!)h+mcu`43g`$V-r#Bgg4KF zQYqb3f#J>RVXzZ%fCK;|+C!Sah!6$9NHG`#F(p$O7>0AG1-X(X7<9Qb^+lfXOEe4% zqtQcl(lBoGL)YWIZ4)|P`G}nCC*u)Rf}#q5iYjhWBNZe;Vwj9G3rW@+&?eK*aTCYY zl#S3VKnP^6v(!{h_u0!$hrK2R)vCB1;k?!6;9C; z(DO11K}b`v0ATbf61A?O@;ao<)}UjS&Qu|&i&z=$)12(XYWqJ{n}rqVOP8!nmCRGA z^)vTmkufyV=5xNx@9vT2my1*{|H&m>nZu;YbF1>`RU4|2l>rTyERqTg@z1T+`8<7pH129M2!G~N0{&$1&by_C;x%5wTVCbu z+uEEX-xLa1bWo0DC#AFAPl=p`3ryQJU(a=4VS16ZT3=rz9{9a8 z`8Bj#aLY#wmE1|p;0mwZ8Y%-64FO$S9F;+%6dqm42qVm*7?Yvp64$#8Aeb`O3YOA1 ztCFH^OD!~r-@Gj=D7b_nk>g}s#|7H|qX?78-JPr81wJ~X@gA%aF2H0#M^{Ig~b*Jti*DIqoA%0xpBHF1_+U z+L+*x6}|Y>T>RAC8^#KCGh|ZiVOhxE1MDOOlPXI!jc0s~$hb*F+EJ!}CZBXMA{=7; z@DUT;)!V{i3MS=FowhZTl_5cnEEP_0R5Y{*0y21my7bvu4%%A2Wn3O+$NRcmU6g6= zk5rgoQv`}fI^U)ZW@TRHLe3ZeBeYRh5SB$gz+PN4YrbY^yoOCnG&u&}q?XH{4r*9M7@{6m-qpeZ)vy3zX*q@7cf4r`l^u`- zK$Y&wdzXvz=*IfOuI1UmoS#Yib79@$upNaEsYPggegv=}WYkDOy) z>wYJd=4*LPM9LnbtH$h8)#}tv6BqqXWRb1H2<_3n(E*p;ao~;4q&9unyG0HBT_v?40V~>?tvJN7yD$ZbQ!2in z1g35No>JsRAjE}b6-C(pv$&|qSk6}2h88{N0U@CaQ|}gq#vI9=u~oz3Duy98w^R{Y>?CSf z0oWkVV!M7ynaSw_2S&n?rdxdS;+BDwQENH_4dCCgngCc@51y zx@GLVZ(8(Q_~7}k{CWNS(syLY?pk(zy z*p3HG{1A7qkKY-NTDI84bl+@*f}xm1%=0EUtTGh0;rACWmb9{IOTH;->IE$zYF^a& zA5Xmh`2cdBpQN8`O9BURobIk5mVmhY>oJ{@BV>AtTjE27CriNfby}VjWUHu^>dUY2 zttUp1^%{xR{@NFPV>*H+G5g;c8lh>Uqq%HnB`)xS?bp|6`cW?IClH8v>k;L}<^c#B zHv$kW*uX-A0s|K^Z0PVI#DWZcP`rWQ$E#SVL}1j&@neLHA~RZ<(qIZKY1ghvi{^~h zG%Z2Ks1Y+}O^^^05AZzV(?6sVqynwoWsZ z^ea@AEnChiORenKXe-z15*Ex>)siKF(XE^DYgd>sWAWm((N@nP1%z0GR_k!J7>cp~ z#lU85ElZ|amOX3ftl2hZnk&0}N$qj9(4s+0QKEG@^CUmc0jWXYf@&ssKJL_rxbWNwDgN#tkGTou3b9C{TD zR`imMX+Z#9F#Pz^C+GEA|1_$~Xvxl|=29(fZoviJTvAD8lv4NYW!@GIWx&!o05&$^ zVvdET3uR@wgqdc=bl71kpN(cAX#OoTuJ;lKm9_A9>%I zDHtj|*taHLbR9L8G^d<3XIdhzR9k@r=4lsR_rc=cm<1s~n13r-NTFhhHuhL)9D4XD zF_A_Z;+!z9^bC7$k(6Rn%DE_`Y?YEWizy*-gd5KV^C55jWBY=8#&LgzExSWg8u!1Ra2CpY~ac zpnh`pM;(BVon?$%dhUs0xOveC?LZaG0vf)IDO#b0r3u@iq>~E!rAo9}Mr4uhVkG1= zqK?WRs79Q%DN;Y&*6ORkU0ma=v>H$&$Tccp0Cpbdx@v%5{=L56y zH9N$!zor+aoU8SGip1+Gmk`cVpvR`Xy|^5wxpUI#l5EqotMGwV#jBT+8Ao7fz7~4@ zwPn2sTa;b547^;^TpNYpQdGafoWlmE9U5$Sf@?9W7-#$&%6J!`fCCMf++D~7kUaR| zzSgMo&aD~lL>D25=>DDhl!QbjAlw7SMS1`itDuP7dLHxCCBc@dhhL! zaS|*bP~Z$8p0~(|9}Y6gjaU3J6zxNi6XoDZVk;39U35HCoU2R!J-)N_IuPUhWR;$& zZgu`iSB7NgF6T`vUaHF2gZd{T5{(E#QtJfNRzPSltZ9 zDZi0Vdm7^ipu+bt1hB7#hC3e)EfNy-p=V@<6TlB?My8uNt0E{lo(T>3Il5(}R_WOb zj`jnwbNy#6(9;Df;^Ms8+3rsdAxvzdH^I@oggsH&AkRWYD(if(XYG=dGPEHMVmKp( z{pp_sQ$e7ku+W9uux(QR7k1j82d!W=G;%O)qBM%? zhCw`W$g!B(;D#6@wnQtgFnfOdW0Fi}vKH!YAcrK}BM-t$$v85SvYaHez_lJxqH>93 zyqQO zQ;yr<{vT zOHWxLT7625Y2KNiMfzsF*11DoV|ZW-N0Xbx%h#M#%EvP&Xz26+r@K0zXMM%bBS1De4GXLAqfG zdhO8}e!Qeq)%Ej~z`BMWe_EjH1@$Yj7~M{a&_SeP>Yi4q7G^P_!;d*op~v0bpp_KlfA8%#zoPR7nPUiFb_k7NtWA zJtjC5I$CZVGa98?Y8H=RKcK~iQSD++AjcY89-$Ae7^#(Qbr%8L>UM^_MdK@ch)sIY z>o)W=s|c8<+~r;r`+xe^%Zg#V^w1{GXF6EVHHe}^4>E;+El`GVmE`)Qe<4N$? z$Dj=|kt4JXW%$BNKBc6VLX@vNF&V)E9&l{gTDY-hR07^}u}CjjW5E&beFUH|w7d-2 zTq!cS<>GKPgcjjkpqb5U#!8!gR)TvKL0j0>?sjo!Nbx~BS_}KGFV~n@8v}ZnIo`2m z5*k|gf@7;g_Qm{ir|pWog3O)!ujrird}&O}cGIurh^L7b(nE@xNXUt>v2r3;RNJh( z;L)aP^g8J~nU{26f~uNtot0dh%LqmQgRkWb)H*X<*xuqD53;uHZ>jU2EQ0G0ylc?j zR?FFgE;MGcDr9IB1KZmk&v>Q)*3E*N(@$4= zhG-F;3}zX}J(TO77JjgDxHK{5Hq@KT0d+$s1Aw+7srkA&R-~N6Ti#u`LeGW!^GWJ9 z0wum<{|x%*G^?2_ewOIZdZ*g|ssFm&8@##=im-ykXwq62qjzdUvx28En`LERZ;#O~ z@*j627YKmf)pa8TTc#4M%g$QJzBz6J+h9rNwrvAUrBO}qcJRh)WW3#Qc*Og>a*P)Y z$q09loW^)I{k5A-Y0Uj{T|O2WO16kb+4&GRoJ^vx5TjTh9mN;G0;6Bd##>((W$4%! zv7dH)8Ivy%!4GJK!x@eDQG=xIl`O=C{D|A#xm-ld7W$lC^35F0(GVdyn5PjQT**}# zKu+X%OU(e?;#nV1bjRTZfvaiKm@&}<-QFS%T=#JW+@N3jCEQPW9{$`J5LJL^P*D7N zk_q<21>B!vD4>nGo{pjam;bq!F+l@5&>kiD0PpxuCB1^?G0_7c08s zUu+uvK|~o6mGN2snnbMOEkfTL)<_)k;!JqL7lBg~85W@l z62(-X5eyD0ph=t<)zMk|xrzwzmk{<(D*ObFJQo2bhNAGmI37t827@p3#V2~hIfm9T zkPb$omMN@a7lKZH9p4bqV?ElPE$$=C^rPSHVn#$k9}46^&ec5Xp$7WmKu#qxI?Yag zn?#ONRaPYPT%<4v1(*26)T9_BI>blr)d^*r2$;f(SQ!{O#_GMB9F9#(PQrTa*i3?! zBv1sz?IjURfh8-y#k0W(pC~scF~{#c}7{V%U$+`7Okd36i36L<){dQPsk=MoS6imWTHf) zW)(?pM#^r^XE(?sgNkB05`h*7XVN8LR&W?%g`0~VW^*!UJ#G=LXj<`Ar;(t*WNN3f zKvH)W;ZLU8Z=L83ktdu$o>9dex-rN3nbJRj;bdrqdBRQ{A=4}nLpRLliE(7x08%^d z6<;;~*Xa1Cum$M8AXb469$mg9F4!e6END37WjFw*0wSaq5GP-;hA}(}FvWynE+>cb zjZeOchXS51jwoFDB9%bSiE<|yt|+vW+Lp0kd79^pe#8;&=%4;6jl!sT9^5Z%DHX0% zk+L5jrJ_AXtSrgPPna(g<>iX@>y}37rSV zouHl)ANRCrHEj{bq09zeVAYVQR8C2ic+;#ZUgdPhmbH%ojHbSI(geT|nkmPP7OI=2 zo3c_Ush;YU&QI6PMWF41w$i6MC7FIk)Df)e1N~(w=*wah!KbpMZqlc>O2T@X>Oy({ zLrvNwe-_}HxDHi8N>M-wgQ=+>Mc|ZuOP*9G15{vv_3BAE0cGAPo(?N!9_x!r>)c#O zvw93~S!~Z_z=An|z0_c(OhZg+si=ahRVl@XILf2&pUV~*a^6W>NJ0Uc9!`R!Vi>_V zf@*@s>vzm6y$&hP9DrYKLB26v4F-$90xUi%=7u_Lf;}gSl|;}9oq=E{;%%q}^6J8bdLI zet4VmplQweU;(;Wr8Y)Pw5wexP+000tpRPRh6Ac5fPEOvPGnLui}LJ%uLs|lyDKp4JkmFhNkD7t(0^iQ*i8?J%BG(!0u_1+?E9o zoQg8Ym&>{=q(mFva)a}#-5hxX9g*j2dYDgDK-?h!w^gX2#K0_coV(IR&+@{N$?GRB z>Z0DO58NJs1_{#6hH*X$2@wkfB4+4{?&zKjfoRLdWD~+li9%AJ`-}`-y)LB50J4%y z?b1o+Z6OJW0Ex~-2fC-UUH}9bqnb2b<}E|O1R$b)u=0{3F->l%E~wam0WA=wvISK3 zZZF~{ZZ!}nFOraYJ+79_=UrCe`l7Ja?5i*N>%Uq8!r?Dj5%H~J%eL_U@7`bsMcyh z5!`8S-$?)o1ZMYo?`c*||Apl>4sBRoDJ98fNg{3FmYHq_F&K0UP}(mvDdy-tClXJx zhJufv0`OFZ=Ku>%tW0qcg)QM+F+{CI1~kC*p+Ml&?%E)^H6x-HVC!94 z>D@-A27Tpl`Q0*rmBo48(4ZDEzwj})#i!22TZrWp0LF9%N(t85U%9V)(uqMSvH@B}{8hK@AKrFDX}=Cy=iCg15fvvfeTHjUc1g#!YN(BvL^-1jiZzO75xLGz>L!)hw_0z8D zS-(nJqg-%(RN-Xi6=<@lbv7M`ZV}cZgVe=9v$9m@k#4f_F!Xg!%b!~v<8T)*TRVZV zhCm=0b!H_jD$bHN27%`Dw7nl0h*FS>v57av7b!_i9HiDBGcI zb6G+BIFMhf3GeeU6oZTZ>5^VRjqs_)ExJ}@00mG1c(P!HiZKRM`N`P&gkR5)sM{Z3 zUZe?5<;W@J0jACq?ZavH}Z#`_BZ=TN!PEj=sCoy zcAxt>>Xqz#f@xlV4kB8>Bi(ni6P#8k0dT1xq#ImWNIJHMl%U|YbL-qoOZP1%N5YdU zZ81y+54TxZf-sE4%4&wHuX@va!ms%kaGRtXl7RC5ceB4sIyt?aOf774FjS)q9ZbT2EwVsUn*7uIHB znq`@kbugh8hRY^atbO(2576M1r(Jwr4%+Puq{qRsDqt}C)> z_N7DcM)2;yz{&v+;4;QNtHdnJT{R+z0M>G42Wi(na2pnGhLnQ&-_`pcz`p{sC71#Y z{A;vQR=|eAtFCb@G{9b=!^{4;|vMq(G4@Brz;hc5Wv&g{s+XZMuAH(=7ej6)I;dae>w^1JEmDlN~ z!7|j*s;ANSnHR}4#b1Cq(l`JwEB@E(YrRtqZM1jRYe|TgoK<8z*FO8Z1$sF600(%C zP^ODP<8QQMTgERgAyzd`HkPR^4k+1{CY)Q3=bpU7oqKq=vv*z~{uB|QGMlWX~8+QTTBN6xw)26P&G6wQhAF}^-_j*<%vwjz9#MQ6x_1(c<9?($^#s-W5Djr zxl-3bwPdx`BGY0~Y*O6-30T0^$qqA>L12qqWV_xqr2)tTk4R|pK;OxWA;II&Bc%xfr?;a!6J7FK_XiaTA~v7mXcv;XJ=!d$xH!1y8RG{lN(I@ z&L#vS=+9ER2pvXTQNuY=%YacF-~ktywN71qYU$i07_b7RB?<@X_hfU6Vj|Iycpyl1DCH-A`*y-e2DuPnKwsX(>wNi zq-uC@MBB(tP}I}p>j+pZtC{nh>0B08Dzv~;-mX+%;gQ^m(14Fb2Na;_!cI!%yIFej zpS9f5E_M0FzCng2S_l7>G5_M*^F6Nu1iM$}j}!i)AiEaqNsy2Unym^?)Iy z5gqCBk|rS{Qt~|Z>YqnBSx$5w>jGb8f)~8-gfoQV4Nss-PDNQ6FtPJfFw%*SOzd$6ArhPxcB$pmOrgp;9kwxN4%O2#xLT&`eGrTZ^`l~p zQC87dp%=oS6e*vn8Mf|`xYU%Kap!6p4-p1dvYK4}7<&!S2@kC=MXfo_X#pj8_q&@Q zEMXH{UNj&Uu^%vxPQ~)rt@u=w^YNnF65xa?-1o2$6GKvy`h^h4AfDTOoP`Acyr=?i z*OLu3rY=~@Fg@82nTiP}3U`-DWGzM(zDUL|f?*orrnOOYl`C?^YKgdtSZ5riTjdaG);6S4;?vYWR~K@ zYBMQr_l(`vR2qXO_e6_{oU|@}h-o9zm1E15Yr+k@uz29^!5(LGkPxveD^I ztAPxl0IfUP;f`#0;=h*7^59mj=X;(v3ToMHrX4bwJY#YdNP&vwjJY*|kMg!pXMPK5HG^2xLBS#>P8nQE{*CmPlFgFDjp~Q_S$h_`O5jecQh=) zJtx7wzuDQgx65hQ6u^I2|T|kORdBeu;uva9|3jEpQ45~W@ z%&P$pyc9hvNP*w`UVTOf0DC}$zkXkmCVb%~+dH4wx6|(~wW-lSf^(c79ngqIG@fx& zOsHS|s$jrQHX#f4um2qJhrcw=UkhV61OIA40Cy<#-X+aauk7rC;27r!?r2zMVFe-( zp;w!=flb5~d(@_^241;kp=!-lEGG24WfNr!erRe~7R6|BNrkNX`R3P6kg4 z@}5sD-~vlh&iZzc+pw=JV(z@ui~B0VF}yDb_6z8eiqzb#(*zLx`mYw83JL{q{@4Np zr_c$rPyqKY3o9VpoUZ_1t>3N#o{Yn;6l6h^FZMQ%=1#%a1W6J!u-_!48Q3otb|YY% zVuglg7^I;hE(vMcZu3+J+lZ2BJLECrTe3Chppi~vhqfDw6+ z6MJx31aA=`i{`-K=KAUT!~m(>Ewq-f{G1R9Re=d6fd5{RE{Y%kwGbD#@D`&m+nmoA z@vRJr?l{2C1HZ=_(y$;(h{Vzb7!V~>E~Wyd;TGzsKZd4`|7>AG_UF2!N|u}oyi@=Y zB{55yZwXdl5l;XUV<7oJE)yq_1#GZcFmV$*vHB*_y!cKC5vWtNFAiM51S5-`DyFh5 zivX^G@x(6)P0jq!PyP4@u~cCe1<(#OVhl`S7jsbyBk~-Kfed`C6Aeqp5D{-OC%QiH z{Qz(ni0RIh@oFyP4*_Wpe+Cw=P#TH}Tr6imc!e46PpzsgYD6v(#f!XPps=Rz3|xRH zeT)*p(Z@Cb6BlCzET!(4QnAocTX4_}vaJ*CQQQ2nij0Wlg7AhcO(1FHCxYPaP*KWy z&gU@TB-QU6l3>4D5eg?#06@Y1_zxrZ(g`I%3?8rg{~oW$n1Fm5(3RvS#Y__Zm;u-> zLM2tJB{9SpQgYT1r6z=n{{S#X0@0zME6hq`7>HpQ{tuV@5-5c-EgSJDjq(XpVC0lC zDOD~V6C)}Yqa52Hv9h2Aj*VtiKryc81uAh8VSqS;kT{DIABFS0jx#v7imNb;1fEhj zeG}w*iY!ghCpyx{c1{UPEwr9M72uCHz~BWnvK9g%003LQw##gz(PZ9 z$1)Vrh!P!#@-@pVHp@{RuR#Xmf+@*>3OYdg{|YBPjG!t*p&eZ_4PrDaSI!+P@$Zll zOCa!ucyk3hVA9;NIsvkF%2F7k2mDqppHLAYvq1y4&=~HcCgBna{Qv>FU_GOuJq0i# zYk~dvk{9b!OqKLK(#U08Y{fcbG#4`^fsbLnj`qyuKthv15o9zJG(gZsu;}JOV-Xbx zOG6oNL%o0!J+#Mi6tNs}L=__{LFEHZ)CpYRM+?W;LV*%tv<^5894}Snn9@dn6v!OW zL@TLgx+zgNRlCYl*huT&D<+G(8QHSUnA~{!+@C z@cd+furd}3u`n}*6>oDORxk3#;8g*AOnKaQdxjq|85+KlLH*F zMrD%`?J-Nr@rYDF?6e{}XZLd(7KvVlRj(xkHbDoKR4qxZ)9f!UMb~aac4PN;FK1yK zB9a6o7I4>13;-yLBr`$3PFl+saa|S@D6_?EjfmuGa(6aRvrT>zt!K@3bJcb62J>iL z;NyVzAvT}`K7bK%rQn7I1VpzhK~y+zSLNUUQTJ67RVs;0E>VfMczLJFjEcv0Fn?zi z2S{_gk{}7*ZyOF2F1-{=|KHM2Fu@P}V1zNj73=UMXMlUx?QeJR(~Kz<==47i6hLzl zGDJf(OIUr^cVQ6I3A(jUzx8Ji)pE=0(CT+k<2NG?63>b8k<&Pp9?Rns zGhnlRjJS{p70Bjabb?nc_b->Q)IQC7#o!B^Ak}2eS^KjyDpc}7APbThkX6a1lz0M? zxNUJ5R_Uie{zNp@H`l6Bh!3=Ql{fcq_%2YKRJziI#SB!3v9Kns z+SAkkkBvA`P%yfT_>#NXn>YHK!I_HZ_sPn+im7kW(iswCubl}iSB^P=m38iyz4O!lRQ!BSIvDz;n;D|LSA;mKarKi=UofRp(@#0tqec3o zp_;1Axswa}SYR(AlmJ{~(T-W#rCFJQWmlcimUw2_pY?|Xa5^el;;58)R#CBzzkrVS zYs!lGm=VjN|Bc#)A6lXfcRz2o1-ZnjXnK~n4J4&{ldsybt9qoz8j8;V1nP^%z{~-o z8jzU;BsR^7B^&ZkIh|*2j~GIhL2|9pww1(VMv`>fmNc~PS}oClj@_UO@EQ%m+Bo>S zuLJX_0aFbMiKDpjcq(*%6B{>|x2y~Ln>*UMzxuHsd$J+Bilf+$=>nGtW{H!yR;U9* zvHG(;ITla5z;>843}hjSF|HqSMLdjnO`Xx>a9@U$5nZOgG<6%&-a`9Uu)M5=dd$<1^zyaaM#lYeu@4gb; z$Q69SHN3eWyup7~!lT=xqa3VP8fI==$tiro$J^Sp%ZkcOB1oK(Py885`+I8H74oPQ z3Feq0^JKs*@sLh*3Cq7=hNykqw|`sZaAljn8@aPOu|M*@<$TGRyvYeYXd}GPo&2k# zdczAHMR^>akMPO~UCYVre1e0_X9E)wG|U$n#n$pQUsC!NuEo!5I^*L{7%F}cyfnY#_(InL6-dEJkP1+W6hl)^XD z|9!Z`r#W6IGn>)eBb)ow45?*xNnc z6a7N#Iy!1)N$gtQx!F6uYRzA+rvhH!#aEIImz}2xc~iuNVx(U=Kw~ zMLX}2-0@t`&z-z%{fU>G2WMHy8T;Hze!EQ`-Z`AAL9O0fo};@pa;FI3XFlMs2AANp z7tE?!t#QaZ@Dp zwVvf&o|^%A>cd{_!Jh0<9@x*`-M!xIJ)!Dj{+5s{GHqTMR`$7eUJlXRV`yCAB1;_T z(>NG4LUXW6%;=^eZs=ioLjivA`OwVjL3`bqJ0Ji6A^8La3IH000R8 z08ynfMzEm4fe3{u)WT3ggat<;CP1*D;uZu4EJCEHAc#i;3_5-s*`=h(lONrv3=x6> z!y+(a@|Y>JX2P2dbLxcUuz`c0Kz#}oLA2~2vHBE`FX@MpfnG`UTb;5+pleAvAv}Ho(N?j!&=4QFe*NX)qmI8lWM!2wHS%?E0 z@jw^MGhM#;H5+nQ=TciO32@8m7Eb4QjNRT8wmUJ>EN*R)C zf}r3*BJo&SzNZ2IP24b8oLWFfl*Igi^XJehZgtpoI@7DDvTNUdmHMsf;CF8S9bCM8 zhQNX|SeTGj!}$wo%fj`-Htwdk_}|{mPoFNCxNpTZ%P9kj72JUY4oD3)BVe$>G6`OD z%_)w-dVR5c2IKHU3gUDloV7Aokbi>z0q{RSn$bbpI+*n zG3H)#X>bOA`hTK^5=yaZ(fU6wsfrtV1kv} zc_*HV5m?Q+=LU*irHY)}&Mu(BT99cwEPo1h~DNRDa_=BLwF3@EK445iz zszS>2VXIrb3Tsrd=8CJWw~l8qawTS|C24w*+O2(ZvDK`ZYCH>{Uv9RUpL_i=p#iZd zlkAp*8MzC|#y6QS&y|xv+kVKNC zHif(e2NjAsQjsdNDvp&cAp+!%PLT4H)6@-k7ZV=wUP8C5oK8e73d?#@7Bi9|D`s+$ z%cX91p2umgd*Fg0g;)T-%pGceJ!_xOtg!-g^{{;s(jol+A|tx?(NA7ec-nKGwm<&$ z?`aVm#xRo63tqg!7|dt}CcXolyPd^usLGDfFw`p(@v1aaQQ*C<_{9uSA~jcv5p|rx zHd<+Acw7BE;QSgw2F}bm}SCihwJ0q=0>T*0-5q%0VSm> zkx7wOz7m!Oc+L|GfHsJPC?l+FP7)pUoMC3*rWdGfk4pL|6=bMZ~&^O#nV+DcpRZ1G*5=KvDq(^6XX7(8*MFRzOg9YuqChIWq{% zhh#8wR-8!qmcRJ3lLb{!C`n1y_6@P0q8zK|>bD_OG&Fxui)B#@5Tc7F5SLqs#Q_9D z%Nd*w+Rv}sRtl3r-_qdl$t7TsO>SF*JFKMhb z8puVZSr2O5w02HHY~9Qc-uh68O0;!!wdlQ)xQk%S@)pu@6&(M1K#|S@47VUib{cyM zHiE%Xi3Nsywd2^aMHZ%9O6;&^TEQk|RxD4E31?A*Qq!5zz@wd;PK3iNQgy)rb*qfX zx|AMNUFw`=DkPaMi9&3-$ptBF%Wl=MrrgE_#J}}caOoE)fI1_&)QHA7kgK$?o|n1J z9q4nTiy8D<_s7?rtJS0?31HYlM5zexM@K|nU}~xe!jSJ`EyGLzTgEEgBv5izb>B&` zRC%eOsb?GVUwR$b%v~9a@3bV^pe6+WLk^bFDtq#P3tW20mUdAafuP_0ud*=tNmngbBzd%<|?hyn79majUm`bPx`p>La!4?Emu+txoT5; z>!McEI+%PdQ-oSfif%*IObLfnAU6_k12+E;5Jvu zD;zv;1ddvpU;dO?!ekHh_QE$mpKz;?8+6KEW-Uke?OMG(aeMBGxVCtjemj%~rj3hS zXlU_5F7EVY>J4Mh*$*|P4tW0tZfd#Wi?XzUg#cBn>-1LH$Bt=lu5<0VE%zFxNe%O0 z9FoN9Ab_U~{NkA1n;beI8^O>2c3|FGO6>@UMHRgx(qZkoXPQEG9yxN7k?Q@Zct4b&;OO{je+JtJ2#iz|1MahyfLLB#K;dXd zrPQ!^8-2YVDARiHN9p+g-$8UF!M|GB$=My!4j*~KD}KQ%FNFk<8lyJ;h*y)WyyyKE z0i6?_-94vtN_TqiWO}D(fT>qj3J6{Jwlq*jX~`vTGj?xc6-2f7cDF}kT<004kVrE! z6g*IX252mFv@hLfS$IP%lTs`s*cAK(SQ(*e^OauJ2W0^ic~MbJ+6NO|wqGr1YwJO5 z;P-K*fg}Sqa#q1z$cA{NrE>9?A{Agpr!rL_qbyYQLX(q)8Bls6h=AsEJ_{IzWd&9b z2!T^KW3xwA7pQBP25P!j5PkAaUsrslV0!2?86_wJ6@Y-ICjoqD4aTyEUg&r?1%uNi zg8{}^#KsHiM^fegH*BM^aolHFO5rs^_;)a&glcm~QQ=+0AVo|Ff2;yh$|HTAW)_Yl zRZW#S-cv&`M1Vp7hGIC26XJlj*nm-2W3PvX_@;)zLKti)bulJm_Lga$VM!%0hd~j7 ze`0!{QG%1lhgyJuJp_fJgnHA6E}e6V1#}{aC=Az>aExdqj2LB(h$LD=W{m<_4q=Ix zNM@OsHX5f>)zOI)2YFK>iVg%UP{v?XmNdnpNUNw$W5jfr^n2IS1gbcB&P9s~*nqd# zi!fy7FRkG-iVF-~C8E^eYjG1PU6S9UH z348U{8CnuBA!&k5LVPDVf+Bb>E2)hsi48rpOc_EA0Ru=zxC^k5WV^tKcx96S~6@}uqa}H`~FvBJgI%2~~0d0w#$N7-9xuFjDIrSEM6b zdoQ*$dug42DU#j;C}>m_WvO2)2#*qE9_Xo_7-0iCx^R|RnU+aWI(h>_I;6`%q&|sJ zPYH=o=~AP)lnVe_L7AjWaU@ZRkH6!DaCl)1dQuq%Ro3%)x3wnZR-s}rp*FKPXD|T; zh@oTEreoNla7vMs#)~3)bv^bS@`VYm2Xh>lhs#)))bNbgIhdR?jnXK6hYA=5$f0om zre8pMq(0iC+$Em@V5B+f1DKkrKABg&lO5C4q=)#VLHM8H=R1#heFUmr1!mZB;ue0oSZ zvM8uVL8ySJjfN=!6yig`;*#3Pm`~;aj~Wq?Dyb1+q(tf*0HCSt8f)C)JL3ms4fQCK zHAm$~6>W2sT=YxB!m35U7==WVmUlCcQw3vcro^(4hr>AAv!-MPtP4nx!z!n>XsmW= zr@#n#&xdInXc(TlqWxDirfHJBiY|$nt(JhTmJk6vR1GgVDEKx+=GYYNX|9z2ny!yp zsq3n#NSa2X$*I?wHBX5pSAwdknt0aMef`>-PS;Mq=^%&{Th=3%T==$1D2ITE{} z6d8dsCU3$~r;3%Vc=~+JTAjNRejs}tLAx(9q*6Ne8Fl!Q)gXT^88kw}sQlPjYEzl4 zWV7gcsX9xfJ39n1xIm;D6+*E~pUPbkb2V2AZN(FJh@p6>s2;B+kdNd}To_3<)|OeT zwTwDO!m3WXc!rkdoSK8IcdD_>+N^x3wrfj#Cds6&YBb9>8sK9h$Y_T!tG8(@sqLw* zI7_^Pi>`wkJ4>q*EI3Db1_3c*6u5%4CAzOavXvj19$Yz)Tid;&`@Q7L@&u5+`TNx18J8juw# z5a=FW6rv%>-%7|jR*M+YaFg3W1r^Pq`^v4S$dy=#sggWH8ztFP zQpiyZx4cDGP-K^*&c+nRKgq5<%U%%@&k{?@OGHeiTf)Kr8mAF^ff%@v_6E$sJj?>E z6!&Sr7u_+sE3$0m(5lM98d^Txo1i|z!SCnH%IeKPRkZl}Fq*cP-c^I?%)j7xt}5NG z$%Y|aNi^Cy#7TUlYi!TVsay)U&v(kKJH3~hmB#^{!+4$7_bVPv5^>7s3`mXDlsnNc zUB(=^N@oOee5;?;Ye!b?$Qd&+lZg|VwwKJX)sx*tCf$`i8P+OoFPai4>T?PaIsq6l zpO^Y^Y)#m+2y^;o5S5K6p_YC=t=F~<)J)qY$5I?I3)s~w*v_!J+DNz93QBc*eH-`1 z>Lq!d)ivo9wzm1y2@%xbqUGz`sCT>*EAJs2@5&DbhXqirtL zPbahKIq}H zI>yX-GBi5%WYcZ5X*L{0^fTZXa*yF5!IGNPO|;eRUe2%$Y@XfRklkAyd7xQ;aLLXs zF5a5@0|l~h@z+IZs)Bt>ysj`@Htpj-j&+9rGURuq`tABMm!Yha@IS45d5-B7mSMeBYhQKv5^(&u-Wpk{sL#%Kh$w)xN-UPJWlk zqul=Ld|7q6U_3p8?!^u2aT{1XDyeAyUM@ca@6tWA^={_XEnfqn@B2QLTMb7bzq|^A z(ggq6IxfcbS>8Sw46%OM8pY!lNquLMMKAD?f9E^@(EaN=S>swSKM8kR)C&UCfhJsW22(zuzfJ{`Qg2vI zq)xf2o4L0}zvT2^KA#7)~(Z{6;66W6udDNM@58bnz{!h{SPgz%^^K>|vo7ZDHvK-Whuym$5H z-Ma(HU%dqm+z3GAzybt`2OAz%HSEHmCM9P))pHgsSCK3CgmnZ}sm&HsImP76G^!&* zQp04u`iL-9u}8Z)(7N{jZPvDUZDIJs_ix}4f)6MDN;g5841vi!hP>DFU=JZyycl$a z$B!aM@;q8p^Qj_RV(#8uQ~C0pJt=DhZG6jn_&+8}oZ_nfeW>{zGBb_UYdCMnDTf?y zX4ys?ViGhegSK$6K!~-@f(t1vwjiu8zA)?yu)qqtK{5DLI{=u{qG4v3TPT}sMawXo zFs_Rz`7E?$MkCR*(L}WGy`@@%g%;Tmvdy*J4&tpiB$NDYwDNAU$)E(yGf2OojB!be zm9WcBJCII+F*MHZE6+Lm4w}(2^){*yKE+a-0+xxyEVHSpq#6bs{|My9s;l-C2NP+) zQKlH!7}UT84K7Iks|5=r1d>7v?a~l14h!?EQoZUDtWDJ#fTcte0rir_$vE3WDTbDb z3$-(Qsu2}pN<2tM-QGlHpt)WFqefv~BJx+r%v5q%B%dqh#AB095K8Hqg~-cWbu~iE z7`EHaBIUXi3#(HOFLRuNQUnitYe(rMRMt&aH!-V#I> z7Mq2$nIWB1pK|qPt(42@X^S>`RLPu?re0~TA*t8%ZgM*6>1fnqZ;7wA6(O#>jtUs8 z$`LeAc?tB-AhbGoVQqmsXf$rQQ;Bp^hc{$6;^Gl#07BbMs<%c}3C|eup-B?CqzZpn z54_n*&e48X%QWgu&N1n8B8raaN~08al`cuPKwavP^}FZP2~I#m*%V^8rE9q=ee}W| zwwmVuJ8$g<6%-kbG2AB*Y8!Zd`pyg^JbOXQmk93TQ+2~IW(I-z7tRf_9`EMG@hBC_eS_B zSLljYv7ims-1sJ)fiZy!Twt&xEE=dN0{uw7EgQ&(abJsSq&K^$1Z^?In5?XB#1E2|s$kT|}=Fp-H3 zfTEW=C`S^uuZmaH&LA&?0E`GPS|tM+|N3`EHmXsMzWQ7PbM_EA5(|!Z^xf)K=rb?> z*@!4UYag0yS+Yk~#u)s0hA|e2D}}`389vbtW^QDPB3R*wBWl*IlBc|2bkdVHFbDhT^>#v<3v_vMRzt{!~_+pP+Cb27>o!aHGF%S+1W@}P#1blpHk2M?OTIr0+GT10d(r9IZk;0Ss*yPWl+ z$dMq0&UoV+PTke_gxpmmF@C{dT_I~($so@#o*_5~9*Zm$%1~ZF$2t+fR!&e0YYn+V z;R=7IhyS`jDuz*IWZ+_e=4)dmK_}uQ9^=a@PO$@C2F!@Q_{B?-3~C5n(D!)MV|!)m z&$0_(&wg;ox`p8CK0A~pH(7ofYzlj&jFB#VOuv>5CygZYVpX6vweLOFHu_6uubO6Z zc3jq&O_*RqdzgXidN73PbRcrvLD6{j%2tA*iW2Pb3ESSb77RQSaFTOE@*IK${-5m{0uih_H zrZLo`9l2SByR5#m8P_2m)jl(U>Y%ofJ8GaOX*%bB2pPW zaEyXDcD2ycOyBF&s(v!WF8Dqy+q!((PCALt(e$NPI>ded>CIs@B~B3(aI8R5?~6WzFZ z&L5HJO@tZBBw~Mg7pHx`O3cgKZ{D@ot9;WI?-`OJ2_VvAn{kN^VL=i&$vD%S1)&N% z0W*@`NEs_A7Ya-}_^P6e5v*Pz6IjtZ=d&FMoW9hNJ5k~^p`(j88yb72Wpzx+w(LI2Zqu-D*^ztVEp70*bNgyr^JNjBL>{=0wVY*uw z6QAn1lVb)ZsfjdG!4=%A5IL;J8N$Pmy~2Zv8X-Z20FWER!TNX#_E7>aaDoJ20JZ=j zToDX$J3>)JLPKK!;Gja6g9;Eyu_#=+DNGgRTayTwfGFsKGPuPu2!T1wvM>Ze_F1D6 z@CfcGK9+DR;&3$>8$hrFIc<4{uDPiV)FSv=y^71jvFa%@nM5gT4kVj9F*~qWgSPA+;t9q7*8s+%*+`=)MhV!y$ z5s8ph@^$T1gYRmE7g#wS;&s+JkB>%PX3@y z!bzWs5}tubBcRGA9ZNV4;T$65J3Cg5HMu+~+u7E@DG@WJw`CBx zGCIA&JU%#0%oH8g9r2d`A}|7lOI8?dMvG*l&x)W6H;Mtz1$LRo4?knWXSRc|}kt2wI`7h#%!0R=PCYIMwX5FMzes*TYV{ z%(6tP)P!Bw#WTZ-01B}~#_?l1THQBcCE4T1z${udja`;?T1M`IlA;u${D7Jkd{AXs zG-hd9m95Png;|%4*}Wao#1H{PWI|Lpu2uXio`?poj6DzqBNT9gO(g@M722SEIQnAR zYapnR?N^FOOqK22F6~vDQdJGjuEEJpIpxs}ybRLf4#&WyU)|2{8qjpSSPYul7zHpd z-JOZrkG5^ZmvANjyx0O|(XX_fz%I<&zD?ejeLn#hfOZ=qaYawqMA^f|JF7HE3259+ z1%=2>&`;{1|W3^J{q6^RC%DqVBh4eY8;somV_Jq;AW zyRY3)DDkR1!W>y3nrgWg7ezU~Qkox?qv5qT8GOGK8bKr@3uZ(+45o$x#819eUT}@s zc4ajBAXTwyiq(~dX3$w%IaMm?g6)l5hwM#eU`AFoC*B*3A5p$kjn&dXSQ6z7elbI5 zNa0GIT7+FBV4wwJlv=O|ryB8~uKnNivb>t`mL8!?*+F2$yy)z#*Dbr*kGY+D$7k((4budTXbK%90^R= z(Ks_zZAmh7-BhZN*?&*a8D+**Om8{!}qZT{bY>-#rEv1R%>z zP0L&iWCSgSdMV^CVIj48i@i#fM*-jzPF=u~%T4>q!Ca{a0x`=ittUoF4UPr>{Sp8M zG*4upU{vJ^Y&xaIGWuMplch7^`>LV5Tm^AaXRzB027_OAKMxk>sBE`W;o}mv;~yA? zo>-s%_Hh|vC01sBVR}u_5O80RgE&KOBiF!YZ8|nl207@fyOwy#(X!{Jxx6<+!9P34 zUERQ2@U+yOASn)`-U&Y}re`;H>500_E>y|hh<&rVXXCkd5mfed-wQ8&m?R%8XZDOpRY3Y(6;+zT~$1+fj?p_)2=(H|cMcgL1k{iEsWof)hg6yjQ zf`h`L2)@NzT9k~b*(NINa_7M&SH65s#7^w|bzPz+Brg^=ixD>L)+x7&GPw>E+X2LZ zZsU4Jh&Tpq(Ozi6XjEFBBP*e3xsjVIaL7M?X30J4sAg4ZV538mk7-Tr`7Kzqqh!5& zDb{`wu-?X-&Md)3UEk}a;5lie_#hI|nKQcv3e6q-&R@xV@P6&tP#bZ}UEH7q$nG?b&vQ?9<%S&fzclYm&Ig2{G{Z z2FU`_$!9t;(sJ5mAPP~2kvYLrral_^1XF+&4X6v{M-pEj&DHedOo$-Z&KhX{CUy+D z7OK*G=>kaa7JuJi|J8Ari5{W4V}b2x6baC*ba+4 zawNxXSF`feN!eGH@+t3*lO2n0=s8sblxYrgShZ(e5<}yjFQYMFjl?(-IR5mjxv z`{re9{%kp~bz3ihQ+zi+&54H!m6*!&2e?Hw;PYE7>j@9OB~QsB7d{(B1%vr-0RPfl zee^t+wQd|lasuge1zx5!8=sJHmf&TUP{up5=cG&j6aYpl5aNS;faKSdrREHD)YQJ$?{e}HX zGao+AFctDk=eb^BIoH?)Rr@#-iH33q?9-bDqZoBnWpf{W_s!xjBE}thfASOuRsSkC zecyLE4>IO5;aQ+)&H?sh?VZulh4wlE7q>Kl!Z>Y^PT7U(5A{6N5ic3 z^`W17T8!7V6yy-_a~B-92eS!JH}X~nR<_@r)lT$*w~ytto$Su;SO?SeD#)(S?sp?M zIPWc87>Ugadb$f(seLZYG7Z%(B&|2<5{Y{?XWccgXJj`p&mkZGTG#tURlRkw;}Zsa zfq(A`D0;(3eA}?Mn8U;u~%Lv9cZ0N`MN1Pg2wZ0OJ+ z#E23nQf%l0qN^XML|BRS>f?ftsEp0Jc1;?lVZu@^GbQUK%$P5`lo11}%o>~opg=Kk zM4+St2!?L4QX^c^lUMllA zgPLk`>J;Fd2vEP$i6T|%)v42GQMXqu*3s-!lzPL;gw?C;*~@CXKHW-9F}9PR@8Zqt zb;`ilLISg=RHV*?8ogb{bjewG~!cSh~mmnK2o9RG*V$<)#O0 zm#Ryurg9!I4H|oym{D?7Affc3*;JIYttf#J{h{<{Trr5df?VRx`Jt(MX4Pj>4rT`8 ze+D9Y;ix3R>mi_T&B6mm4qVC-rkZX#ux+s68o&So4}^dN{aRXAFsK-XmyUv#wQm!wcTLurW-vv8-~uv4p>9?YkWHHj-_ zwpVkMJX3jN%7*e9W!ead4RoU)7L7FOREfrJ#G*abnbu(rOLgb3Sbg<`{VBdR56S+! zkiuh=J^tBE|xUgSKIgRd8$=;F{ zcd4s+-P5#W6fl-&?(+QCok?~5JxjFzd;&rUojdAMC!%DuE<=u)R-;68pxGIUb{?@> zfAHm|-BC{#Ujtt7gtsY5F+eEEQyW2;*SrvXP+=yk-j6JhsUkrkZ#p@c_ktorTM^E1 z*>RNlSoNS&Kx}FBgPAaP!HZP@E>wT~bt$n$k^Bai-v!_`sGy4YnvSXVVn_6f!~(8iZj7tR4#A z=zxUDfQ3bZVXeAHgjDnJCh)dJ!GuW%^vwh1EIzLJP{+HGQgn?ZRoNvxwKd5vbH-RxCEARoa68~bpVYF zg^!{W;U4kWus;G)S*g;31Kg&(7LLJ4iv(OyzDdIx9&SC0GvB@_SxGVZ4wH0)T+OIt zw?}>}l=K?qQ=Z5?wOIg_A$rqrP(R=rhS6$1cku(TPfwU9$A2 z(9$^tU>&rB$V?`Smf0_7KC^8@DWTXZMa@f|tO5^co*Uedx9y43do?|n$$aD=fJTys zbQ?>bigm1I4Y4Kgl&6+nLeF~k=0f-^Xb6#)wtk{=cSGAD)H)+SvivkVS1rju8COej zP_(QQ6-O@rG*AgXsst7P09;2&N=IcnOs)voBTAj4(!&kacqF8W_7GB2o8A;U3oI2n zVb{}wYC$To_>Qv(s;pa_=P8j*swC+d8F`h_srbZCRFU@surlgRbyDo&(D#{@J=H%% z71m>s0#UP?6|E7{>Plvj%C<&8oKwIKus#aX+Z3Py4TyjQK8ja98sGsa65rQa>OAfF z4TghN{P{SjS9KUCRUYKZB=J|Go|{a2yjweCTUT7 zH)}SfUX5d5>$)VwxShuv5v46f$w9zcX5>A>6oRC(D}ih3bFKqpn{g{FScEMXgb66# zVV_htFuv4<;0#4&#twzxxu#PO>cKg;`3DS}{wMf}Z0A@IC1p#L(Us z7FP4IQr&1XfW>iqy^>PgjOU5-Ymp*4gS6tJGH!3daK@kP8gh zH1nC!>_Ic@5w9g=K&77hUtUE(Au-LKtn#eqM0W27aEwY;6T~4wYt*togchP-_Qv+{ z7|FC4<3=6--4RdMXwqnF7+iOT{qmXKm}WL}@w> zFS2?}&u%HsmhqJ@v0q_sev&{%zTK-VWH}sDXynHb?{vB^_nDXzc>GCw%NSEO*U9mJ0vY`94WKq>$J92Rum8(^zj@nx@gI>@cSX>{JG z_cpo|i6e7eMox0^95IC|cW>fW8}3K{{EktDdch4=Q(c*2Ycs;n0!lD6c-QEbtIjvk zdwF30q_YLf<=94HB$49C6A0EMnEDixi*@0idFvY?MM0%Wses0nEev`xGr8)r^<2^&xDgU17gwhvP;3{;!b;Tu;YPS7E8x47D9# z=+T5>mDUVXdL@p#g_sg43iIg@jX>M;Mc>Oc3B*-janV|w$Ol zo%r3weZixVVJoI*2;tm*!`O4kjnqjNJ!xS z1a*0g3=|*&HbmI`RddCiX0_1+l9_7F&)%tuB+1JG!48Ntn)FQ{3vR*Bd|;f!#m;Hq zI89Xwn#&u((h|m7#K2%snN^l;-bB?PuH2wNy~TK)-YG~P%Sp=o0U_&Y-A~{jn-w85 z$=;g<+i%Fo9SR`F$VwFQ9@`Pb4E+_xC_wMD*96sFk8v8RBwuM@7I!$A4ysb(7|$7^ zp&hCrkug9ikjq?T)a2cf1cZbT%wY@^+#R-{7?$;+S^2`P0Bt~$zodc$ z;ZQ2-Ai+Umr7>b7)}IjCmDdFzB}$bgUZN6`N{J01k$96Qw%v8L%^C;^2zXx>UX3mc z|BF}@6l^7*$Z1Jx{n6jOiy77;2a+3TX^M97VlN6)D%gsp@!T?jUc>H+U%cQb%aK^(KlM2Q0~D9ILp!ASN;w|$@F?ThQFBWBl7ASM}TOa#Q@^S$4U{fpUkm23Q2rd=aG2Aok&|K$d< zVB=sMhFO9_mL8qtM*{>5w+Kiv+Tl5trKk;9+^8i)wWV(EQa7vu_@KrhTBa(M!tqcV zV`d#f;@S@21VOAL1gv~3KXSLnuJt%CT0qov|O4~ zJ|$EFUM%o}%Dmjq`3he;00{ulRwhVvTnc`OfHjN@MgAYL_)u+9&TZzVfgWgXek4(N zQPh1^EOv_!Smh5Q=Y($9UmD>NdQeRk=11TpWa{K%wj*J!mK}f=;3i_Y&Wk^sB|7d}V1A;m! zltSr8(jwyEpvraTc-~P;QmApV9_;-92C+>Ejb>pwp~i5GbzY~>T-Q6A7{^eiimvFe zdD@F6mL-hDddlKe1jEqTW@i;1U+xEwxnBcj-y%)ekOrxd&O+q{=#nyNlSZke;^veZ zms7kgZ7*r<<`NW7yq2PEB_Oy@?c$d(~sqtXq zussF?zTa`>>2MZ9H}t6xNgu??T%az%0pW``|6xybVypgz0ZLqv z=pwC>QRwJr$(6A7wDe7;%mPC>?3Yd z_H-LS{Tqy$O%%~-Pw5xJUJALg5-bQS$xK;}3fYYs1%c6l$my0=mQO0Eh;iiy)KOhU zR_nE%2Z2$7BxI|}cI#V;(_S!5#8BX-`HlyoYs_w`g%(#W+U#@2Ys!=;&)OMJfU1bD ziIP;IAwd9~!pqTq-P;lD(#8%g!W~k|B4rI7E=+BFA)3qZ|4GwqnYaED1aMbJKlmRYJk(2=iV46{mr;lBab1AJU!rEan?v^~LHSh&mF03AwnzO7gGvvu0 zO4KeHM(LWac={mlI33(|%YZZv$nuEn&Tjc_tG3<&0i*Bc+Mp&m4W`8ezoewPaw)Dc zOfCA}0f=hgerQe{8v(ox5VGlY6%q)CKoV8$Xte1@Ggmj@xb-9|L*H1g&E!G$OJF}Z>|(ianog9 zFpzF)%_F|0guO08;-7Vk-Aak54C$`Yn&C&EWW+DAmDH`l|ty~HtCa%^9(Pp7l zRR9z0aRt%vHIzwV@KP@6un&`iE}g6Z|H8OA->cCjI!2gB9V!xQ#{MdywU!#%8byk& z?G$&i6j$-munWt24e;J=r$R8UfpNHrv2pcAHkEO`_G@!u+}d?;{qaQGyfGdNr!_!I z^CA~8%g7xAn#anhAE!hhKPe)6gXT`L-24{DHS$1V6EKrV*d_^jZieeFQM+X1u;Sui zd9pL}o2|H~-0JF;2At}xVHXo`1l!S3aB=az|J>OrX7(6YGkuDuc<@byFbPfaF0)(W zSO8$fuyY->vtg-z-56;8Y9c@M0LP%q9N;_yBpcD_Jr3+kT{96NYvaMiL^9AvBqQ3A zg>9%UCrdGbS|v80(OF>cHAc#(!YnE)ClyAI*kG6|o9WJGuqZUi0-gSyvworX69hy%KgS2bWM6mP&50 z0`j(aT7{;;L=G>hvtY(k-|1(2^gOi{rrfh_qsT1+VMvPK^I0Q}U?S4$wlI59F|v&1 z&31D)cW@C!sUkoPMI~x&@hNvPuMIbGKT||FaEZn;d9QLD`XqYSHkCEjzY^jdU-b)~ z@4`}}Woxemc!3%)!573g4Mz&@;c|X6o~I>hDfKF;tarXx(8iUU1CUd|d5Auy43E%G zzciI?0}J={ceFX6DdSOI`!%!S|JuPAIKC26RJo8DFQ$HzpmEpVF6hkqsD*o(-j$9l z<*4)|xXXr*S9j8D5yXVu8NmryfN=?J^qfd05*EBD%dn2T zb`HBb8h$h;UBybei%t5PV8suj$%qcQO1DAr`F(%W0Q; zIg@a=_V(BX2sXx8?$ik!HYos;?~_2d`Ntx90jRc-{m&PD%~#r-Y^eI4cP!_eiQKXb zyB0gUGT}E(!JZ?vtsSJ16R$fIu`Mpwv4{STeUpi2-t+y^LFbD^^WArs1 zBBZcQ;fiUUNdQc%T%^p@Og(^^tK6N_JG|OEEh7Z&<+~TLQ94aYzyKSrI_=c`u}844 zx|HdkABqj-_5xs_<2t;Oj}2BP4NEJN-f~^YgG|Lchm%Ws$5T4DH=VbSe94xd6&zVW zr*kQ`ymP#K+TikJlB>$8kOuPv&JVLG$g@H~IDp#MGm$llI7&v1CH1Jev*|jwq414# zUR&($B_BNgP|2W&|7*kVz0GBPi!>J3(^0yE(=8g7SdC!G1q+)CTs)g%xUy*u+@v(@wU}%AniR%NJd&5M#0?V4scgm?l52=CYAmU;bh*%y zg@*vRcJ&(Z|3+A`V~Zr5HDzpCwQ4^)wDI;W$Srf*(uE6g0D*@g%6t*yWKEEPGQb8P z@^wcKBtD=vW_%d(kh_I#NH9Cqs@a8CHOmqqmT=y^1DDe3oG`0Ef&-~6%ehc1Tn0yJ zD-}`qW5}XNm1?P$a%Ia?Fl|`@GYu#5n>Anmp!9Ue7Guv;IkR4pH};Y6n0`9k#V&P@3 zSC-om|0kEUSir64Sd0agkcbop$t0DOV5b;23U55}%)3y%Diw^#J@^V!Z#Mc+gmJ~9 z8W>ZsAj}M5FuuANLqOJWt1n0duT;>W3qUXcuL2_Y@TxxfR7ePiy2|rE1uXFJ!_Npz zfTcS${% z|G83FeYMqh8+I7th#_V;%FN;owkuvWjtf|g7wc762ga0@WMm^ukFi_$m9k7%2v z8crh`Ltqi3vgs~&fNC3$7|6ii32=Z7AzoMbLI5iz%|YF30D9)OH=liwVIh1~^bVo{ z3|znh5D=L~w(~p}a<2j33l9uQpgswVi~(87nJ_F@FP*RtOTQ8Uyv(CPjYy|nxY|wr zUf9IiZ6SLj@mnc`Lo`zmM5!NIEhhvvyI>HNJOh*^A{~+RUT-Q4B zb*P6${M#Fo2*nmQ5tKKyk48etGfPCtPhcpZC+~>BgLzSmW6S^v5E(`u^z4+t8(@gO z5`<8+LkuBsqn_+Il3aBV08H!MGVwSupN$ZNusTfE8p$)JyuvP7qa67r^QmA^hhc~+ z7dC%!j7bn|hj7fK0-1OlEu7{6Rw(5>pD4vp>SBOiR9zMsMoTXK6PB`^B~1njMq8qg z2?=Gw8J_S256nWBMO>s9vf++wi~%AG3JWo9`GX}2uY-m%s4Nd!OJ?5jknXgn!$e8V z$Mq;HdQ_w%d6*;*8SO^6(CIn3*&BmhhMi1Aq8BA0&v}NjW=oV_{~$4!Pah%6s6PWJ zOchcBe=et>wzQ)XD4)^Dr;s-5DfBR-`nX8`%U2RX{9M+Id(@z+8r zNvN=&)FMDN)2+LXbgNzU!fM4jR@c7PwPiJ{5RN$jPqd>Q*~qOE+`3U^8dQ-$q@x}2 zT3nNMCt?}tYhq(GvY7B7eJ;5olYC}a#nxyFxG1MD%()A1TJtzQtPm)N*qJR9RkTax zo_6YKH65wXsnhi%cu8AYBcRp-N;qK^Sle3I{`bG$f+z$*|3`wjg~pfeu&6tLDNLn- zK)?Hqjc`LsM&q8%xLQ@NcbXJMzE1WkV7wuI;@KzwrX;)EZBa0|TVgHVYQ5T-?0Jo< zUK@89sItwncBm;~HOLkkV- zYVnko<)sG!L9XwZ|A}D+mS()}yEizz)i6@1}+`(GOClZGMOjWlqc}tIFxt zj_exwvfIgLRql&l3UC4CDQ^R~9$gI;v_RZ3hpm7=WI`rXj|>#m^v*{u zg`UxY4n8lkLusi>Sds5_u^6eX0*vnF85eFx(oY9GGz%Ub<5TwG;U z@QKNs1{Tf<&$3Gr#IJ0eEROI7DozBGe&QN9j&eY5zWT|8EXU-8psNwAl;@6^9E4UNPq-S5FXN@Uu16qFOc|>00nr! z0%h;?WN#bh0vb4Q0to>H7>X854+V*D0wZt&&%yN0VFEE>0@Cm_RE>+gjs_KuKRAdj zW@DDv%&Hiz*Mx%>xCR!FP)Ot{7EEjzgrVtf27Eke7@!b~zC^hKX;n&U1+LIrZY{s~ zs|8fxgt$-zR=^8Y!m6G?1yW!P|6za(C9N6DPbFf2|7I>5`;QI6Dh%T=-8N0#bW8I{ zFabMH=^D@hlaCQ=AqT#I0&Fk&IFB3_vGaC;2qeMwEb$#~2ogC^Y}BWrc=GU0ARLoyB2{t!zVQv;z#7eP(uA@O67MP| zfT9R+$}GwOp&=dM(GPS49{+F~_>msZ;2x201PkFCkPi`_10WeO^$H;hLIDkUKoZdb z_-dg9MerPk4+B%r1GNmc|C&HBC$b{FPHxmgGFa)9z^2WNjTM2A8?S*E!jCPVj)zQ= zD6%Q~;LJF7>0wF=gmzEARKOd5CZZXrlt@% zuU|N@D{sO0+_LksAgmS<1CK8+IS}%#a565r z)h#+fZ}zHl_GHfwFo7YD4<57fJ>OvwtF#jRK+EWoJ&#WlYe582Z!d}OJ+~9Kc+N}# zjJI^~M5gda`o;L1At)rYQ}jsVMCEL*!%`s2G86PVpv|zLs%ny=MQ*_uj86N!N(|mj zQ86?kaZ(Ifi!@=2Cs%+*P(nyaR7XwdM7<3g!3qvYlSN&(NBOTq zS2agJG&lojLO_5>(=i(?u^3VT8Y0jS2*DW|5FNOZA5U*9gLMIcwHc-~_~da)<8v+z zvOP7iFTr##|APV^$n;FJHCxGmvqJ0RD&;#}?^3od6^JA$mZS&?br_6+8Q8U73Khqm zs22wH7NCtm@y_omV7(>}Q5V%;{goQkz*`_SLo+oEVxUq*^cpsFN8=y`Tr@}HAPmnS zRE1zvadQn9&qOy>I3<=n2aIJWYaQl1Pc`(7cf|7F9T6e0g>-m znH3Pv0Rk;>J0nsR>QWQ0wGyY5O9RmhwDk>HgilG^7PimQ=MF90_F{LP6 zWW~1j&thV0_RQJ3=TQ5GUlY}A{}pW+wNYuZ3Xui^xHaB zHY@gG|Jjf=H-JXPFh|p1QbAT?+YmNkbs|yLB^1Dya_bId&t+p49k_u6XSM-P@DFDX z9?jA{lg~?)PX)VkAusU~MKA(ufeDb-b>m=ZB`KzE3~H-X_?)2_VDVp$rD|IRyaSzKObKe1G+mT9()er%Z z63=0D`;z$hQuTxnFBLdFNiYe{F=;DUY3mdx=u~=8VO?#vN{b;@sAYG_#@Y4>U;D^0 z|DC62khfq*jiHp6dC}H+pI7A?>d2B(U~(d2J67J9l6qT9ssP9t1=E7zz=*{+ebskk z`L<*gVt^Q63=HrN8_`uTp#iy}9MZuL_=Opw)(^fIjKlRh!T1o$I6IdvEE~95`DOVk z#p=RR0&fqD388h1_;q3TGO4a!?KMW;wD*Kh?Q*Py2RVu=>yDDQg|+d8VK{~_wDHt- zk#G2VfdhabBx3uoBBCy6tjYn7){Z|Jlxfs)ANLE?(Ue^a6cQDLa=;>-K$ZE1dMZM2 zDuTPpNuzw_Sh$!dGC2##fL3K$Wd6v7T)9l|Sku&iJMk1#e3wPW^Z2ZTY6;oB|8y*q z5jm23Sjn!LEE&0Z1s9T!j6+ibCCtO0?l0WTO=ooPTVeyVKN=h_ zCwooQtN$xa4^wGG4W8Zb@J5*jx&RF%m*?DV=hkYsbS~UL0ic6rWs2IU|NHur)!-k! zi6^jjpUCH&h=E=Qwa}{is zkNcakS*-&siNBf)fn#6;Q>9}wHZRndfjVmVf~c2!<{THBoM5bCdqAQF3if%*E-F!f z+N{&Vw!IIZa_CXUz@WLiyFn+S!F#pGyO&nWFDUN|u0RcBPPBEUz2V!$|CKhKSBlZJO4|}# zkr{lyAKSmRx`zQ=xo29y=MxoYDc5x7zDL@+8ysbt#Q=gpa26_&z1qbcYQR*1P@iE; zd>IPVL)5(B!vjRZWsbJ1L;y-0w@-XqQ(RS=>Esgpve!4qmoms>+_-04vbkEM!I{Eg ztKM*s?hG2p)wZKI`g$Imh3zv95l_&=chFhR(7{E}&kB-&1Wkh4wluY&ZZ2iE`^Mi; zFlzg@zx>3-AjSD=tH5oEO;prJ{me;y%Q&3PkK4@`^~T|R&cn*wG^z{!TjfF;#yJ`y zyDHVxFmpa}lgp*pAPQI3n}PscTxhAq*E!H@J)eX6tu!6l|3R74HJSpVH!9he)UzGU zwSC(^JJna6#+N+i#NEZYY>^7XmERo56$*KA0EJvI@e;_1Te9i`3ZI^#X`L7h5Fn$} zBg{y}H5@Hy;C;W&0MvA)%efoO85-TJx_Y@C;;+5bAs(!5{o7R?x#gVPm;A?V{M|r% z#0iB8Xk5<=`h&;_tPQHKmLcFntlp`v<%gmdo_rQe#EpLHBkg_axCmS#fY=8G!a3vn;BcAEow&K@ZzrVfB)t2KEyw*K_k&7PW2_?%c9&LM>pyf|M<20aF zzU37N;91IqBbvhE!@_cYDkA9zW%n7}MgsN?L-tzeUZY*jCxUuf*y_ohx&=S$asA2< z|M0IG@fY8?J=*afzvQjjdLGIVARqt$A^8La3IH000R808wd4Wvrk< zf&&u@TPR^c0Rjdf8c3jkfyIhJsA$~Cv17(AK|(|vDYB$Qh$tlvT*k5`L67Q=K@r26bK_RUTen!Q zz`1T6E>l9#rc{$FUyl5#QK40DMVC&!`t+;Bga7`$8@FJwBmfKl86UXphO%TRXfSK` z$r&74CE1*j)-`$EOiv9qR#)PAN8Vgmv6m%VO;CVC7U{(m)|mB$Nv3^azR}ly z{9#t3fCL(`USQYMX{Tfl3RaaXuUL2?hBEm`BzQb*s9}hPB3glo5A2ixXpn+*5sb9S z_-2hb2A5-TM<8H}E1(J~s;CDP$s}`1rW&P_tS&^{o`Zh>IHguvYIzm}Ovsfhm>_y_ zhMHdB<*Tn@d2wE_>8&T%d-us_Mt%bN_oje|5g4E~caqm87<{A&4H7Wt&zYZupsTB3|UE1($~FW~Q4W)TvTPA(bww2&=ketE{?IRh0?J z67hBuR7@AHRb=d?abOPH*IT{*>MICvxi_E58X#-z12_pAeBH zI5UlK)*M3&I`b^v%|FA^fH2=m<2krPw`2vWNFz{s=?kQudeZkAcQ%xC{b0cYV23R> zzyWV~Hrhw2ed_ORC;2wqSt-PW5T?*wJ9=@ss4L$e=Y7`|e*X&JuqIcr-j{NnXWn}8 zdJy@|k3)_*e@3jZv*qJYv(V;-eJ=lQE{z_V>8Rtce~hF3*nj?{bBF{mRX!VyjcnP0 z#lV{L6Z-)#I_E-C@Z2^$y7kF3bWvT1Bv!lRdFgt~g5LD7*Eg1h5Lfj1UI+3NzVo^8 zg_#jrcRY79Y77Wl)xeqhu$8R@y^nLBvtfe&KBpjC5E#WNS2P^e}pDk}_UflI+x#ePu6SlGlT3u7Av*|?JA zAw+flOMtBARwyqas{+`A0QgkM!fFySGL``3fJ%^o{%Gw=wmPIZ4^u-S-l-audt@Zx zN5e{5l8B<)BqvD{N7@uXo~DE%E+oFEcQr{xbP9F9|AAyn+aVJ;1!v93U5|{OZ2}k{n4vK=Z1u*zo zfQy;#2i-X+W3&*eRt{*PTxlrzctb-lOhKYL0gDRFa#TqOBq6paCXVlq@wlt=Z>*IJ7_sw`w0B~_}76xp3!ov~kKt2^3P${X-(%R5{ zS_GmE&snFXGBrquohLn~iju1T@~9X8>_vw@6$`Fb05pMZtWl?sInBNGtg>6igcPbp zf%NCClMyLD zjz`(b-l}3<+SPdU7zZ?D_6=xw!m)g%re|puwDU`_I~DZKXhg%E?-Z#m+sWDpW74Vr zlV?gILfbf!D@eBuhFwQjD&B%PUq47!ScyAUR~=U}$yHZ`q*IgyO|7s4yI?m@f!?#! z^{xZit}zATm5oZ$D@TN`DadPH?3_2ftoe|Hb%Ga`_KdFFMV_K`g)4<(jKJ9I60`dI z-vD#KF2*7ufZfBd1t}Q+LX~vzgKZd%aYQ4L3zo2I?IctlN~4GuGF@y>BGvwVlEb87 zz&$@qMWXE1G9+#Y?JTq6@KT2;%g}|ZlpE3JK1QUffH98xnUDv$5xYPpYcUB593zXj zD}IGFk&^SpTGO#bQ5ayRp`(`v3Dg3+T&!4fl7U_|%d^{T3mGsF3NpLr%<|bwfX5sM z4Rip_ob_*KfBNP)xAV_-X7CN|gjyoY@6L3VGoUpyyC%B(-G|n2(m-qr4uz^|rkmX< zS@~U}1jC>IM(t~X{BLI5!p5UEGSpgZOygL=t_l&do?Cs_SG$!cv7EJ&Y;C+>8#XV0 z0hd!gUbEkRyvkPplV+~)lPsHVmYd4{m4Rh$foRLcz? zxioPwGP$M@kb!hzeBVsrbg#C~MrTY>lfDe66Wzg`VK<4|yZY8+gz8m?{ne{3f}g_O zsj&vTL1H`wTKp{R30gZ>+D@+w9To4c*8A`;1IF)qYsp{lJIDVXWuU{|3RC%k;qQiW zC#d|Hh;uprHo51_#Z^{(h~eRCTRZLw_lz;!{`}JE9D1A~9hNL{3^SlHXV29+_2~5( zBqD(KG8tuYR0QZWC--r#_j(SF$0sb|SJL+?3FQH?vlCk}H(IcL@PQX;fm7VoE1R_#HDfb`WCRta zen+TIZWe#?hi=pWdeD$*qIZ9(HVpf>baDoONak0qLoG0tfF3eO^a3JtbS@TCFFRpa z9`a2Qf?-$GBwe9h0M%TB@*o<>c1d$VHHdv^Sb{-@S3^>PEEs}U^=U9@9mTOJ;sG_u z16I5L;W;}dQ1i7h?GlN;7E>euSxJ>tN!W=>2!BkNAWry%^*4I>Ct+7eTIrU0zJ@gl z=ppt;Zb5-VIJ6i@xMW}jNL+J#aCGEW5LK9p z=jIHoI3PUG09*)*>NJbASPcQSKGh%#uqcq*2q(6;WC3VZP%&Jel7fVIRU0)FfT)7^ zHHN&@jD-?dA_Xfa_+7k3N}gtogoTagf{kt#BI4Lmg#?cB#U9>ci|FWya0ZI=vyQ6& z*p5;dRMfB;^T>ZhdUu7y}*;g8wkxE8Z1SgFEcMESB zgSkUdHVHbsXlfcjhKmD)fy0+87iP@Tc!EioooJYcIf~Mtn3%AWrudU{Mt_n2X?&N7 znMzrjV3=HGs8@xe6L=XzqnShFWL8)+0H~=^t@$HEu%G-%1U8U$s`HT_(r#f_3xHPr(a>XAKWmOU?%M}Zl6WX1%gz-QL^iRw6XiHUmf zSSOJwUJC&XS9p5eX?(3`oFJ1cltw(7MvO%@LPMXX^PgK6MOvAkM0x{Cx}-_U zq_;IjWQ1yFd7zdNA_rrFl@Ub^3YP(+9Tk&1ls)0+l%bG*CH6i>0tk zY9U;wR0^puq(o{oMw(9?(w|Pcb+qXN0Whk#1WZzDf(Lq0_R@mEXkrf9cZx_y$Foqi z!-yf5Cp~zkCbMQD^DNebLd%IBfcbNoxPIq|gmrq8Lq}Rr=$-fHqSVn0rl)Q*>M%7* zfQJgHa0$b_Gu(y31RsiHcY@#>$D)=`f3R;XH) z6NPsu=&F3eTeMb^afyS+h%b{USMPZ;J5?6?u}6VM5m@zNS!B&%*vh4 z8js55r=~|qLRlCuc&*$@J~`U0-fFHE`{=fA`$d;1P{xtFJSGJ0Bu`Vh(MsiewYM9Tn;qDyCJhR)+6 zPEZjE%(Omg6bAOM`>|#l4Ev{;+zG$+ zBfs?PwsQ-R)62W6HJPSsmyIittr`cr<;x?ETbsQx+-k8Eo^6LE4$os6f-=F z@fmn>}{pH&!krjf7+d} zYmahVvKY6{dCa_N_!A=vN!!@Y^$bsrF&L@;R}df^&cZB1*_%bQN|6F9g96$u3gb}+ z{f?vv4GX==TkOzpX3d@2vrw&pM4@2aoPhv!7``ULA-u*ssS4#hp6)x+fHt1Ip{^+X zwrGu;zjTs1J<~Kz(-`e1q4O`TixYO&w@cAz!ep;&M8`fYVX%7+=rGs@H%pt$)Q1F# z5cSkh9o6o-QHDguTf<9->;T_$#vQ%S``n_>XAmN-bWe97&vDji4HTIoH;naX&tP!Y zOAyR(5U*|1bLz6ANuoS?RI|%L5G7C!gT3k!T$~%%7!o{8MnQzV4PZA)M|y|l)4jCt za6Ho3(p{TZ1Uh6~pR}1wO#nVx?X{o(tF=Da*(5#Qt|i(hP1>dH6Y)&0rtptL)Do@D z+OWOTSZfXR?B1dWed3K9dn+zwsmh$p+dG{bBgsI)^rFVF4deh0#n27OKuXJPam)!G zG;2COE3eaS*>!7gxlzxGro2cL00yu!9gN1B&6CE;*_Z@q!TTrZo!)l*lnerz>LWB3 zD1sJ<5V1|)nYPpr!btHsZrE^f+jyQ{I5aah5QloFTqK2XM;UZy;KVHu7pTxk4bsW& zzp|6ef_F&0CD9n(*a0aF{G`o>K~})XvsoZuh8fOUYpm|~XI~xQE$-qn+&Ynq=P>>g zv~3Oc>&Lr%g25Tzsj%a*?M=o1mrd!Tx0Q24Rc&~Jk;1)QJ1|t_z+q}zXiIch+=Q$o z5#%T)2-Go1Qu^S-r#Oqi{6sDSImEc8A#h z!b|eII{*8mdcN?}``bVq@e*&OR-Ag(3~G#Z3M=49b1UT5-rvtS+P+8fLL{-X5I=&^ zbt_NYT55%`Tn^$O4$5unCtWY7?&Df;^I`t?IiKAY0pebl-8;LvLQi38XXKF+BszRn zU;X5AEjB7|_575{m_J=nFZD(8GgTk)&yHIHyY<`~CzFHi*RGj4#G>}DQ3wrGYM+o+ zqVfk0@{|mt(V*bkQ1{*t4i4@ZBL`L{By5k<_c$N#P|Z3Zu66zyn^pQ!q4?YgB1n#p zP_Xpmgg2ZaH8TYNMPinJ`I#SxoNwCpJqxUP3{&I_QREB4i2kpt^$&B2Uw`^F?2-_I zgc}b2Srxcu1rW0Y4m73f)GS#AOIc!=kd{MKR;Ea#7%|qxSFkW@v`EnyGjiI*c?;L= zPB(9uq@7ZAOH0NJB!pbBFhNTZhY7VHAks6J51>JX4kg-i$PJ`J5G>uo)93*rA`}`t zxYFuXg0>VAtlCsoRfMU;qI#uj87xUh)UG|ycI}j9X3tV=N-6DKypncFlr-_jU%-JQ z2qrAp2)1iec=_80+i7epQ*BJe&{|cr zc$qe>j0)`kw66-Rb^?AWr5iRCU^3PjHeyx@}S z6}s$l@IeQG5zeo|Djdv0BUUg%BE~voEEtI>OQyKa#Ny005=t0tG}KyDO|z|DQ%yEr zW`iuU;8ufax8!J>;<%S0az#0bj5{tO1YCioIgy?#2_7oOdAI6 zse$}3c!C0%Zez2}IA4NAmd_IEkD$zSTsEy*59}yO7#ZZtytV9-h!{#4UG!gnhXkfl zObTx1;DVRE6w_y7wYP{2S^V@g`{bkLplY&8l`&NZrpq!{%R1O40VPz2=*it!TU4Xq0Xpnf~ ziov4Bnigdl(!*mS`5#;J7uJDw$aA9n@a-Lxnvk}Hp?yb z%gM{4TR%F00QLqWto$rybG|KjFik#$u>Q~8)%0o&A&Z8WVCuL4ycgeIB%Qmnw%ra4 zJPDsal+qzw?^8>aA|y1Rc|~uRGpl9eb7E9ClT`% zW02-Kn~?;7p(_a(HgG`hWJh&pVIR?2XRY-VU{>mpfXJdIs@sh#cb|Gq)O6whJDmVe zPh87NOs7bL2?7c*j3kK#)3WrQP1$Nl90895 zT?acexynp85ypPb5|;~Rus+k+AjOPGjZzdSH(3*5TZTuxAFXDM$&+E(w6zyy6>Nvn zt6?Qkh(jGx%43vUSZhv1mK^1Wh)^3G`jnN#V9;n61mZ>9NcE{xtj3K-0i}<)c#(*) z2#jMK;~nVWt!MR2e@a49T4s67G0D*_ToaHg8Wzem>9LP8@{b^IqZzXQm}P{AoQ4S} zgPxnHPz1{}k1w1zNlIE0V58$Fw8a$;@PV{4{H2A2}u=wZygHw3v9ThnzL;fx< zlMx;xC707>0`;7A6RIVb28&ikYLaQoNIWfdsjrrgv7~ftGE{P?%oId!QJoBKP^*`? zF_ju&JygPEnTwMJ<%P{rV_F@03W|MT1f7ZoU5Q1}x?VH`tNBHUk^!&1xn)Ql6^hxc z1;JD;#i7|c(EJiRmU}ifmN#7(7{EZM%3_mOv1(7K4hx{Agi}YK1?`!Bid*QF_FooQ zh&4XLP-32SV0)p3v{>uIs13xyEb(AHJvpL}RBC%b#Y8Y1>)RXQF|5#NhG<0#9`qcc zyceEa_H10aSy0RjAHaraWHwPJSu}3%8HP!$kPOBgWmbLvxuFByf=tM)&;j8sRBPUw zU}xrJk9860GAVn_Woc?9;5nDOT8j!YdzQdz-K$>VSz5xBqKMSwVT2`|MXO@>l+m1o`I~?OFS;iiWC6HasWh6IkRIA4j|B^Dj3O-h^ZIg(NR{5q`TUh7szngq4~Hy~RSZ|n>7U~D!@kt0|kK1|y#9i>9P zStt@OWuhP0oHEM~sRNnY(>(~hBCYEQ2}%;8$|zd# zCWXrzSVIdF3Z{4AmYQ$^5_|v<009OV9hPP10=DF3v0_DfNDSB@+Qg1nQb_S5|fY{GN+%*nNNegj(R|~aJQB70MsLc2!IcJ z)3=j&JrG%y-vbVfnxF_w!>lWh0%(B$3TiFqn;fxQIHwW@CNmNdXu}C8!7J#)J`94{ znKSf(hRai|_{yB{K@9CPt6ed+!@xn=iarBrwE+AxpmjVa^KNJHoC<8wPM3w`ju*$8On>kguhSTt(7KyGi z69%vq z8P{T#-H3+o$^~6CvIZ13Cp;DZgCjY}_oX5DZ zMY|qTl)|8U%JGsh;n7VDdjLldOx#PY2DaMU7#-bR23>-aM zvcNOzHgN2)<3X$VSqdsxNx%FyX%o}-1U@(i(qDo1jvAwaP8cdmo!VK$?q@F{YinPfG zyCGp@%eKr-IP$&pXhrYowdHt5|2xbpu0p%Mbb>N)12<5~H3-ZyxWP=(DZ``$sws_b zR7}8W%tjI_$@0cN>n3*V!F0LIjLA%-tgW*vPCxmDo@yUdai3!tO@tUo-l~*&8MO=q zCHCPY)_{h}`?*HDu!_S>QBzCY)Xm(izy$D3AITN{6wWLv7Y0F(5?li)fP&`C(B>RR z^E1AXf)}5>PV5AgK$*cADx*>w7j{vvVHi+uDm{x!Jfsv#hdR6W1Wi?`Oj8=jkef^U zIggP$Gp_815a*~%(3JWvEpPz8-kv}4iB%ZTJ5yPXI~h**H*gvkqC z&JYL!tIv!oyuVX71BKEk-ADzczwuH# z>)^oeu&FX?mFG^`tWhg~z1n!OW-O?7)SD-T zKu`_U`!Rq7=r{zCh(jf)!6C#fjW2bj7jU}*FTlnwh*ep=P+G9gTL3Oa&7x<}Cwra8 z@;gV&?1*}*9W8SR|ES@x4$}!BdPnl4m~e7di#aS}3eC#-7^>5Y2)MNIK_yKc(1=|& zX1vc?qLo`|(9>L)#Du$b6@Ye?(zV1*--9rE1+RPr$KS|_+0aiD#KtoS*ny4Jam<)I z@~_xa5NRlpUFB65dD&Xa*ow7S?|jA%1E}CLh+PGX9#h0(%^*W5vJp{0lWhzf>J-Mb z3ixv~4ppCH9oj7#jy7ULFYBvVxY^D?*KT|UY5dfmU0iqN*>_FB0cjB6DkW&Zsv=Pc zb%{HrT3Rt^S_{QcYxD%c%-a#2j5?C4*z!T^d|1XT4PQ+ZjQv_Ilex9c$6I)ew>w+2 z{X4PsS|vpW|DLM74_O?!r7XGyl^vZhn}oL1u-ua@I{Z8)x)cUY($(^#g~aVy?QPr$ ziq~*e&n-Y#^hu?ssHf@G3=(8o!3@*m%tlTn$8&V7`7E@oElTEv*xKw`*{xU(yUUQ> zSR$gwYEvJttys?NsY@N+UpyShAOUmS+7mm!s=CSOQ@2Q^oLl`~4Mxb0%b`heiC1!6 zy;NN8WnAs`-f(Tu6lI3LJxI(|S0Zs$fE@!e1>HZSJcFv+4O5BwwZ!{{;Mv15ie)4` zLDBVF+o&-+aEeUB6BQAqC)w=?sDwPeg_ysArT!gOUAReR zU&f@e|LrYd6W&dDWl-_0T=L2tq@7L!a8*zMg_jiAox+$!YVp}V*vj#0d& zkt}0MX^x7+Vl`f4Hg03zyWkufu6|jo)u~x&#N#vAU8ZKwhFiR|8@>$HV z_>n-GKm>T?*sVt$+}($*uuFd8C?=cZh$>74xy$vU80b}R1Rg$f*P*0T=haab>*Wn;wW#f@pd5D22i5op?9oe15freOjY*bpdYmrd!SHR`*bN9!|} zq(W7ONJ_*T!(x?8m;$AO7*VOs36YkPb7O{uT^8k~hR~pxg$0}@?r51yh}cS7|4SIZ z`unEG%naBb6@SjTQ7$5qxo5);)%+Bjp=RN7(QMhB0LcEs$xdj>Ln8HoSVHP(kX_b4 znv1R(Vyo_7)uJ01qAEx(;t#w*?`G}h!91yChP9zyaYkcZ28R*lUApdHu;H_)Ufr3n zvYGB{CWgOcw%-OUi$nG#@M1nC~|3hwXA++BS zp9{o{HWW|syjyXpWU=BJhjCbJ;hW(2Zi&a(j1X%Msk4#9Q4$}Ys?Ndf+$Qn>5hbw} zA1@*ZeWII$iE=dGurzh>E8p~<)*c)~W}D(y3%_uJ{({IJa}MXSj^WdX7Dsf|;j_K9 zT+XBOZWBdvg^#eFI**1tZ-)Kx)5Ywd+YK&5@x^I;AKRdq725_(Q1sO;>( zb7y6!Tlh~FPoLK%kwZ$`7LmcdtdW98cFIzADnTEK9^~~)Hi#~6|Cb)oa$eb7FPLRN zr9UNb5V68<|9DO(3oN}?h}@Gd*R69e=#^A=87Md(@u_zw<$DV9HhnPi+ik11T{Hu9 z7F#iA@Xzy!EoS(2gE;AOuK4CP8|o8R#YlLWtP*ah1=Lsp5RZ1~%L%H|cuiDo*Y(C> zNSL0Vo39#W_%nDb2l+Kjij^LSuu{{wF?Yv~f()-vGGF(lC)u5uYa*Wc{*G7)5ntjX zJB(JLUf2wbk1f+49A5``kM@*`*EM~9?yMq1lXG2WUn0{$dLMiyO4j>HKQZGPaI)tu zY*%mY8U11Fg$E>$Do1-Y+`6O~5?b|V&Jr&}?A?lefDAWi|1nQ!rC_DBva(2q=pNPu zE)_(7`i^DG;j=hF&B>EhKYt%3tZ8;k6anD!rqstGgwvy|Imo4T8dxR}<0@7g4J%fZL`l*vSF);=yjJUMPqNrztSxJD znwDkKoW8|m*Df=R()QlH=2j@*R5_6j%NVloty`-6|1!45Qxz(Q0VZFaVu42ltv0f9 zrtG=%XV9UuF0dGFFW)H>B}!DO2*k%~2J0>DhJBI?9x9G`fwc5hX9J8L*`48_fDLGAK z!#Vj}jFtg*oow4lcanED9q8bLbD1Q~FzQXn|B^24x#!pdDpn=g7FvjBo?im4uoi%9 z)%o5mJvFnSg2V*#Co^9DRhKbJ8Jd`3h+;UXc^*mdgNq=FXo>_TTB;(ZnQ|t9N2qWW zi!1caI1!{N2@_Y9+M&<|8K8_|P!O@kNR)|uhrDUCB1VZ)&{+dV$*2=^1*}+w?K<4pj0LsQ_-Ij{#oI!FW=bdp<~kf3N7~vl`q(n^6PKW|C((8(WJ4qwq{jr z5vi%Y!aSP@A!uw+LO%*n>r*c>v1F0`9 zJYZuAxtkm4r$Qm!ut>lVoDBCTm`9$X2wQ+2Lt+t~5zgc=%aS3v#t|MN>Tia3d0lMi zhOmo(ijPvfANp(-!|80U|CA^B2&go9Ba=mrJIXOwGSDc@G^!C8rvRE8YxkPVNFYsf zq+=bg(hv%6aF4_@-X8%e$knC7Ha~L18oIDC975!8!2+P_B1y^~j%0}skpKy%02~Q& z@{2vRLK4j<%62`-l;T4ruf(W8XQu6ylcAy(dpWaX;%hp|S))TE2Pc~x5Ov-drZCAE zJBE4-f?$h}d{hQa-RVwY7AUCi^w_~`J}R3e+h!+46afy}O`NMBS!cq9j1c?bB<6gGua=0+NrYW`PZGB@S<}0FDMtqF2IEM{>zYhEjAH zJ`774F`7{|B29m9{{)*nZ`Hk#k~BqqJSoBSSO5Zeu%#fRC%<+G210(bra@5TIq##> z#nFZ=2+GM35t%nDAV8Jl!hvEHhXwdSQ2WVChgvPLn}iM4 zs`f5s+IGHVl3cr786dA3q2}ShO~f9BJl{WYrs-=5&P- zIo49g!@$d3RRTjvMMY9+3LYj^80FK_fvlv&-f~AJsC=nMT!B{FmX@6Ogp)@bHP!v{ z_ZCw-qD8In3uFXSt>EAWH_Bl~jW*D;9+jAI_(o9S{%fxo3{L%y%U26;Sh+89O>@U9 zV!;IOkgu99|M$L9-BINVfV1Hzn1JdQFyMz8lzJOx6V#O6ZluQ{o+NEEH&t8Ery@UC z02B*q+K6awC_t125Bm$-PW`tq!LV(5(rQKobAue>IPihItS$v+k+=Dxim)0$)Fe|l zU>rtihBb^_v?ZWnHR5lS!OJ`o&x&IyUa{X=OiwRC%PiZ~t`5g*kr5}SPhH&0V`7@m zx0+%(L6%pAK$0-FZTP}NVvz+zkW;QLl{;Wlrj%pbr(mEi%fj@@IJ5!gFq1=Fm~Nwn zBI;W;S0FmH{1{#9D$V*jvx9n7n4J%WXDWrL0t)C&Ld029#0Kk`DuxI?PhDuIJVR&v z6vh@r|BOvWbHve;t|VunEaJDiL>IZV$fW^EVh?E;*_rt?0*r8q#0ksA*#qU7Q|;di zr3cG@QU)5qq2Mpqf*R}lvQb=@3I{tmf^Q_8LweU{6qVL92T|#UnfM+h1G3d zg||QF6qEN6QFc9gXj0m!xyCRzzITQ{mKA=+azxxpHrHoTGh z-06N@qQZERdvD`_ZuttV?F$U$M$9e&&RPk6Tk$|wj(jpm+}DWuRy?rQ66ITTX>NK5 z-gU|5U79YVeBR5T7iQ^~)zS4vU-fM(TkDJV`V4o!n#VRk!Qfu*J>9d})ZH8w@CBbp z-AA1z(Y+WSm#|jcT;8PI9P|<1dI4T%8JhK7Uwnm(_F>TSJxbCI!S{s=d4NGH=~RRj z!JLo5zlz}ZAMkx>~@Lk1yo%FF8?m(0Nm7V>R#&FPH?Fkv@?H2a0$N){FhCIqP=-KY4_?h5smAgJ-UVV{#SPj9f?Ee-+K^>M2|b&$vXR>#m@hpC;i z9nVzl-i|o#O$UL1~2~{?0doBW$=G+uP234u&#UX*0ge#u584bWiS zT^SfNIBt~AOMxGw_FbU5@pd|p| zB2rideVQ~eKokC7=2W6fDS$Y&$`dBiCbAqhhE$y~B;L8>7UmO_)sV~V*UZEmQ0@yq zLJO!=)fvK8lL#bBG3GlpW%9YB;Xug&bW6|-qgCd`fcb)e@!>@R|Du;MSQh11yo?M( z;R{(ZqFq4~-~3M59f^9RxJOwbj-v!#7ZGsTe{`M+@=%YO?eOF;2i!ZfL1_F2B#7||BTPfb>0sGGj&ZNX_X0u}weR4sjt z>~ZN`4%dx}U5@VPS|*{7;%7~XL63ZsKpN?u{>}u@(ttM9AqGXLx!nQS-m*a&VSZPY zs#7uCfiGm~r@&ST#%5AdO=A8`F1o018K>Lu9p|CTiHhGH-~pW0s+_jk;MvoI%G_$Q zrk>7d6iJb6Qe(Z%Gnd^n?Iv?Iom2BW6%4K}IQqehpwv+LeAP zSgb}Y-U6@?7i$<9D~(w<1OtSg34vNtCjHg{WKj%E{{=Cw%YyWRzAoi4cD}~AnpBN*}5}1}LgXoQ3F~|@c@}(>|6Ti9Yy-wu5_Tn-A zYrxVf(#~o(9BjHU7?~uex{2Du)~I`qHwk&rnaM#ZED-T>@m!jy7UQ`5ks7c*@1z>R;H0eA*4H^1jzWnyf#hT z9BjU#j%wV>(fTXpRxSf2(9}>%hMYo8SW?yU|7lqUD~>9zVs4LPiXhNEN)z5j*g6j$ zm2Ht?(%B{e4~%SsLL;>B09-mjR0f^g&h6lEuH9aoNp$Lpk`b&1Zr>{J`yuTwXs+RY z4Z|Km$AArEyvF4cZHIJBzfNxD`s?_xXp;qJ=T7X6isbBRpFxqX)^6>Eb?u-659yjk2$_M`7E`I5+q^ev5^zL!$TF(V#D@Lk~AzZ>SZ}V0i17ju5Do9gwXfjQ&_k~Cn z6;AeYX3_Q{k$}a~cBa1`BQA_gWJr&Zu>?O^&W-)5uU@U_8cqA!Xlqy>q^#}}76e^l zOoC$A{o-%(ms#n(E4C*-EIsx#~!vjYq< z5$9tZ0g;I+$TmE5phR;iJkc>c(z>176YcS8tcI!Z=E!t&6K8R*h1$iEa+g|gS%4Ng z|D0k1>PElxM&C;H1kgOc(dxOdJ>#?4=`+Wft4mXiFb8tMsPmr6t|zMOL@{wQCkUUc znlniBkx^h0f#MSF8LONtsXPjGRVqjyPg|7*Z;>FJg#1|_DyG(Bv(`CU%`e`-L_;0$H~HIHB?qwFUV`F9el@kENSgv26;<2x=|<1! z##wlG^-JlZc_-*q_`nBccM_Sip}4o9s2y9&_wvbd2YaC`z;WHq)aPo84#{yz?Y12U zi-*@S@9Bns@ARh?|2S~{rz9l9&LU!r)-8j7=xWS}-V^{$KG|ELz>h=#gAXUwZn!ZA zxgW`35|`3wGc3RH+JlC1nkGn#i@;jPd5rg)X3fr$*7Nz2h7h|g=l-bZP^USMmG3G&?^!}zR)%Xh>~Sq?2sVa_vZ#;x(=3 z`uZXP5FmPzyWB1~5dY$fAoU={o=`$mYLsU=wmU%mHR)*!4^~@S{cts@yGD(Gu`R=E zr52ApDl#^p|J$BSjuVNAtj8OzbKefy@>|{8uK$a7qDh~Z4IUk(BAzaQA8LOBxeqYA zvu|}d(d}~AQxaA832|6=gGlOed-Hg^6T@p|z;^q}b`{d*sE>sejkZyt?4$3ZMw|wC zWW>9{`Mu9{TzS|l%ySQZ_rGIGz{A3i>vA5+9^0@@e`{D@pOCUM{Ifs%H6FoM;d-R% z<0ftT8(ll4bNRM=KofTS#wTLP%lF80#gvDr$%EJsr@U=fl6%pU({=fC29A$;%8TFL zdK7_-LrL}Me1Wrp*KBmo*&z8dQPt58{t*9 z?^V_p|F9BueIQr95>-mYian_al#C4Pd%HGjsl9o>ec(~EB`oDv7*H3w@!89iRj8d= z^ZUjTsD13Jpja(rCZn4+~* z|EY(RSqCsE^0nzv2{T1nar@SlEnvfl6|;NGiX@vK`S$h87uGCngRK=VObux)NmI@~ z_4*j{J_Zg z1jS_(U!Vm&c(n~K!}Yt1SN`5x^z#1u-wH6QAJm&A=!PH3PdtU?SRTi_QktMm%w$vg%_1z>(;qqKg=Fn}CA#Aks=X=3LZh{|DHh zYlwjeB%qN8Ax<&E8l<>eN;3JBluA4sY_h?i@=)n2s-#LNVyN~4C~HCPD)VSXzHHJ9 zO-j%VNu$u}vrHDk2sH2&x56|sg9aljY(fkB{L{}s|7;AY4hwY35(_}AG6VrcgpJDE z3PABuh8!3YQz6OB%*`vD_!P#VT-1%eH%%46L?21~?WP6l6DF1Tnsjn15{^(v$|$YG zGCiasaP-Fa;ycRMO^r2k$|IC*wNqm~dPNsG=T!1DJekyU)(Lso7E8zm{T5ta4L#JU z38G}F(Mp45U{OkKD{+DdGnL?#dY=^%1$J31^o2TSP|+nQs> zmctIix|kwQ+_}QbiXfGe-*(lt$bk$ikdQ)5&+2YzRHq<0Q_cX+v;l#K=2QgukQCyF zz8HWgVOXsOy5o=Cxpsl6-$jU*V>seZ4%`eFp8HrZ;tQzi_tz*%0{VVGq;#pc8n z&spcXBb6bDY~0Bv-FLUDAZ&W0Jlaxi!~K?CH|u43>CH-y_w>y~K;lPNEuhdyql(Z7 zC$baduV$-iSoofP|HwGAxQqT=CP5T~AhEn>GJg?|R{ug>-|hxI>fw!IhY=jd zXi>5U7VbL{teN4w^BCb^00$Ic!Vb^yhBs)S1cGZE;xfP*$h9MVlM4d-+NZ6saVi1x zqaXP4=Pl3W4@0T*460n%wB{&l0lbsSw&Hd`kj!O^FD#8N@>0P`T+kyKblc3R$3?o) zQG_U*o(c6hJs~1S7taXfG~h=#?ro2SG^C;Dlu!jPJhF#A|3t$iDH+7^J*kN7Awv?= z=ZOIfEmt^rjQMJ(HYrA=etDweDzW%F&t#}0feIZ-5O5wDLQQHInH?&^RG?*4(2W^1 znH-BZxIIQ-gDmW$9{D&uk8y=uhzlg*mK7&)Rr8S1qn4L0*fkhnIL;&i#j?w!I1As(i@U1i?pQe zAttEabm=$=D^r)ww45GFTjX?_KFSdU0uLb04T8W@GIU8woU^B2Im^_}o)oI4z{n}U zb}GxniaRP;fe|{^5n9@0ZiP}|Fv1~L=`|ETRaMrNiix;fR#k5sVxbj0Xt$337H(9l z+BBkRP(b3(sh(YuU`p`K!d@4<*Zn|ZG3kJn^!Gv^W;hW|y$pHtpETIu0 zjJ5jgeCcaV(Yg=0$$jDd9yEdpTq+}G46blx|C5OGSFuL`UY-~1E0S`wz8XeF8haVs8SLhp<#tyG$YfTe#bc~ zkW^NwwU9{w!TQ7WY6ezh@9pvjzPh>g!K|?qPDfM9YGN&OD8!pv-jF!T&D5uWt*{< z{e*BsuU@Y}gV{hDmeBOWqG9Pqp{Z=Kv08awJ-bt{0HVX|SQ0$?9q{P)qyG&KQlmrc zw?2m|6kvr+i#_e*cr-X>l4@0B|Kgo!P({SWu4;-CTHd7f?Q`G9>jRNA9g_mN!XqIS4i|SB7X5s+aLde=QK0k>1+Q_ z;D2NTNJ`EsAm%puFP=(@%>v5VT2AwD0eGgyEre-{P{ovdYA;-Ymq>3JOs(g-h<})k zGNwZVCSU_nK!+a51(u-p|IXk95#wukFZZeo2F##`n(q0)som7-u3{ht;H{;C@9D0t z_FACDs;}$f0PX%Q*5ZNtyiXOl@82*j)oS6;AfOn~F8jy|?E--k+z-_pju_BO@9Hno z&H)WCPS!RJ|5oi5VC)GrKn{%ptK@4bDu8W5#FP?9ZzS*a?rStAZ;%8@f+{FYhD`%+ zfiCg_Izo?t3=Xw?%jd`qi!uNOtAh)?00UZ3lFXn65obtk1E|!O_wI6N~{G z(g7MVEmlMg9injt|1e<<7vve?F8xsL9nxVKgn=3APu0e7l2XA8BM#wW?H$Yz|5)vj zbTAW}U=E{>sqjz__pogGs#hdYgK8*(sDb4Uu_mC$Gn!E`7;o4F4BMQ65TERUS}D(H z#G7Ei3r-*hIgyfzumg^+FscqoW?=)+Km|@w6|D{jQ?dq;PWM(I29$3FYVi$*@A;Sx z2T79oRM95kAPttU1x`Rac&~%R02#AE8Ktob^bPEW0Su_|(fj}#)lk#+Z7OYz4fl@; z&M_S~&DPp+4cQSMSPlB-ksgf?AN6tDAd&Qv&m*s4t>z3OAt;#y=_@>L^GM_o)e<2? zBQFc`CQOYB|Kl=zCUS@LOt35xBO^&8Cy66f1|*Y218`E3R#6BU^9-6!2!QWFL~*rd zQ6_^i2W@Z_N%Avek~D$nt7btIsYwiIEQyp*?B4JU^i9^_0UW_^`??Pk!YL)lDq(D_^^PUr5M&S6bWQzW-b;mOvuEM1L*=k zf`>N@4vpl>KK|no$*O504+08P4dPQiA*mwO026y?F;8;^9@DEtu>?j^Bc1LOZSgXF zQRdeC`&^!4; zKVEJ~QO$v3VL$w$KiuToG7Mkd6F%otOX;&dO;Hn3&33ZCv6fX zYZ5UHbTeVEGd)wBe(@v|jTR>~6(_XyX6hAJh_tfuHIv}cKGYPJF&fiB9k|a#qcKGV z4$}JW?$Tk_b`9gmQPs|YMmtT{uoCM4fk(w);{efL6wxl46d_^7+tPDC@=~E*t}gDP zs$45B;ONRY$~{2<#$rr9d38&FwLUKr7{Bz-cu_)MQd+8xV{%coBJ?Cva;6|u>b}Yv z|9lW8)zlV&F-&Wa1@bgZd6Mb)bWCv%GC4*^2ldeiK@_6UHnUGrDXkrO(?qHAL>ZOe z?ru46wA04HQXMW0@ikL1HAm&`4|w#YL^UejQm%xQNSl!vS`}h#L1O#TKm5WwY1K|p zNLP22OMlf@J+@=NR6dz*&-TnEleHSqR3vp$O<4*RPplK;FuH=$2Wz$(Rxq4)ah!JY zTPtZm8S@3C0^OGNT$2a`R80z?t{Jfr8sC)}g8^0jKx(I!8^FP8rSK54R%`9z8@8cF zYc0}FbsLO9Y^}CxcP&Q4aBPp!VB0pPZY*Jshh)TdX)&P~f+0#b4^k7A+3F zpvJNR6m%%sZXpL&Hwv;K#>n7GAunGF06!F}7aDH}cw!fbi)>|;K6Lfavfxu>7xHkd zxF$eXKQ&b8tXR;KF6tH=?KVAc^;kqlgtpEwOSYxfExi<%aKCpXxzu|d^kk<6QARRy zxtHB0sUCT+Op$f9Hn(#**AtPCw1TSZCP$|ZwhMeU(O#;1dq@r1>Ag|}1tQBmb#w>? zczj*fZQWK4NQ1PV6w5vWYNJ=vGHn?4_F_XOxi|_-v$ug4n1lm(gip9+{|TdfrRgai zSAAbt9y6eK$Q5iLKzRiX740|OkTHK9%M%GJNUTx#Q{8pcz4x*Pq>7;*o$E}X1!`VTqb?N_^^14ucko@h%77TmxPT1Q12HR z+hM#~(=~k<(Z&)Ds32(G#omw@kdOE|)nGB)qHLR(FD@8WQOzzccCVBMSF`vFb`{1Z z*^;+de2X}c-MEW)kn)(KjLlemk+*1w$^fDu9`$&8;TVvLRE{}`j$Z(nUk}* zXLT@VJK&P0B9y~foPEef^6}(|@{3nFjuD4+9c#R@f+8x*H76OHuWORJgnbOc02H{F ze|dh@z&ydNJ30863mV)q28)MRc&Yi48Je1{IgjhvjklSivsn(=QjFzzoD=PZ1vr;= zxw6t3a;I;FL@TGV;S1aV3JSO^z91CZ!E{|(l?m83Lb{)CI#k_kpf60hRF6g~8Fr_+ zp&j~l#o(b0SE98!XDfQ5pI~lic$(-@l*d;-U1GADs701xA7ZH&g;x%A$=$S)5rJu&C`N;JJV+N;=CRMk4x)KU%G2jIGH>>=_sZK50B6Lc-r0h4~vxivqw^ zBcC{k8kTJGn&if#Tbh6^ACKx4uG29hah*XqPt*;<$$GRayuwY}bv2Q-&AVsim%bsI zyB|r!vmB{6n# z=mH{%T%_K7nx5*;m3+x59HyKc4w0KI6Fq(Bu`q#}W6#{tEm_iun$p=jzxNx{u^iKd zHwdmeXta8$BYl!vLh{lW&YO&+R8_CkXpu;2Vx5>je*CDuQxKOyRhdnB%GowP;mb|j z%O`iff87%T0stZT1O*BJCIBn|0000$0ki-B2>$?4r5b3Apg}DN6Czx2pg_X}2~aRl zK#?L9i9s@IG!SAV$BrOFh9E%FO-PMhH2yGHq~*bvFb@iwNwcQSS2%P2(8+UWte-wn z2@N{5sFkBglPWdJv}sSCu%b#;NHr!)96U^E-KsUig|1&oc+D#If)fy7$1+(<#*3FM zOwLZ|Y6;=8yDSUdr6tRfsS+O`!0o&2R#YLUxPsC0b3v@Vsv_^zOIfc7h#w7LoXGjC z=P?qUgr<^# zI)*HncI{LWh|s`92oyM=0|+iq(So6MR>o%xMDc)xrh%4{X&JRfo_QP|=U;II2`Hk7 zOBEH|iM|16B5%XBSe0?dA%|ab$~h-QcG2Mw!39n5sKj#bX~!J~%5`U?cQ}YA-fYN8 zCZm#;tk52jy3FE?G}N48M3&+CrQc&thWVjoJ3X`jV=V=EK!PGf@Bl>zBB&XGaBfy7 z3Rgr?MulZ)*kp%*x(4DwM-=*yB#1VYXn|X7AyA7brl{hHkm?52Yy-t8-Hc*Y@YSal zOhAE;?o9x~d)INHfqPE~=@yZqxc};1s@OrvWSC8+r=AffY;fN**TiSdu6cVzHuE}s-DqskVXP2Yg=eMoaC;z z;))!U8~7Tmu+~%qa(JeE8QC)|x4dj+jW%$of|m_AtxF{Mgb=mUwzeYz)c!EmWe13A zDg$mBoq*8k2I}FU1QlB1)Q$>g@4fk2UFmAg%DvWy-oIkypt$dH0S zQ!c@o`w4CB4+tEQa<$Y-mu%Bc%LcU;Qd6xI&{xNfuT!$~s}+ED#q>2;6l8%X-e0)= zUE9G2PxtV1Z*ZLkb!+E*#2$oS#90qmBLv?FS5Ua_l@NTim`MZ1*Rt}R&pd^R znff9(ugGQQhwWQb`~P@oh197FMyq3;{H!1qq6}pht_Yw22S`ALye3;|QeV)razL+) z3Stm+px!VR#k# z6lXV-D!%B72_ev-=yw%QWiX7e${VYwv_?0+5RO`+V<~>=0UmTIdV3M19cSUkU}1xW zEF4xJ{TMbT;xS8EDxWiG(?djN#!NueA)|spjB-vAY>zV_V>EfPk6}?5RdZw~7chmF zv`%NH{K5T%(*LO4kZ4i>t=HCYXT=cN%!d&oOIK`pHdtN23loUW^pw=bIHquzzBHy- z=7>x<)`$m9fIu3*2nJ;?)1rDToJvPVO+a3gn&#_I4tF@jZ$2a>iFAmgd;!Ua0LTiV zD;nv5#?C*^L`i5`%odClxFs=>P(8z0!L-E~pr&#m&HAT^)|3-lxQ>ZhQ{^kaMG?t$ z%O%el*hD)@QDL@|qeb}Ob4XyY9@&)(cx{2vFi5erlvEcc?F&j%YPiC(G;u!-t*NM|(84B{(Kr0%&{pLs?Mq^|lCF60cKmc! zLJ+XG1pnR+fJf<n$xuv|XR z41ApnQ;l^}@L|b&>0v2&6N|@^9k#J}@nK}uYtzkI_PwZ(#8Kc2*__dqsDGLQQXl24 z@SQeG1wo3j9%T^L)-{B6C7o4GxrO3t#ZN`Rt!WqY6N3U}pf9?L&FF~}c)3Z8#)Xbn z(#o7_;pkHy-78*&*MTuk7gZVSz^jf|-BFF$R^2t>ccU?mX!w|!&7?*QMQg3^8rHDr zohd}t%U(uWb_zs{?|dyAi$*pC1D7!ce$S_0)uzIlvqc>UdCWl!+>&9A zj{g=}EKp4vJQjG0O)I$lBp50gMXh+Uw;BHJPZc1M+zlmMB7U&84p!S!)y=Q=iLTtx zKwTGLAc8M;i``yu>EzA$RW}|a;HdfI`1BYPks0ie!OYCU9@%`{EYM_~>=4P)I;Tf) zlzf3oWh)oJ6fz?LJvE6bN!>yfIN{5fg<A#-B&ZV>H|2Cm_(O@^}22s;c-My#q)S^V+a=F5~rcsON}0A zG$Z4a*)V1nx%a+v#57Bmb;kuC_|MuA434s7g@P-Q%0##<)Vi9 zJZCNJoaYf3;otRSnUduU=tD4(b`us3Ouyl7ebS{E=o~L>ZFd?B5 zZVK@Ou?GTFhaF)jcG8tMKtclQabO(qdm}V_yz+q{7=l|eg2a~?XSXDyhCRzSEIbAc z&(~_+6L+A*4A8KAbw?kyu@iCfPo6>-8K6}_7=&@MeKb=inglxN_ZW;<7~RHm;u8zT zQf@+5f1aW(KDU7S)KA*hSttic(V`HNBoM%6dIe~J;^8gt1U4*F5FRirPPaCDbz%p$ zL0%C|9{7QBB!YUVht5=jDR_K;$b2iW*`4om*s97}U7+=_7 zQ{W3Kw+sY06$V&tKX^cQriQSlT*;wUA=XxIB}}~1hIx1&dl-!)C|)WAh)lI`-!(EV z_=4w!h=^DWn6QF%cX=arA3IoWA_#;MAc9383m|AR0n&zZWCTgzc?T0}E%QW-6i=ln z3^S#QhJjhKbrqafSEiyfp;9Kc(0M6?a!lk^JJT4=LQdplXQ%gz1`z@E6gGO+SiWam zO%;-Xqg-jn10FR!#WasAB#qNZeBdRL*Qg$Jw~gF*h{mvZr2klhFy)AM;T*HTh37bl zA*hb*=#C!>O)Q|Mng#j5)942v8xKLO`RRsx14e2OU zC0hR%Ta#x_vQ>r{xf8`!QVs`eQioi0Nm1?ekr)_VcLg^UaEC0plGospCs;nvCzFF% zh=v%0H<^ezIg>s{j+Wq2K`4|^LX=EtI9g#|hEoawasq=>SYB~tzv42(IC4p782>0q zl2A2S89GEj1Z(nTnOBziq<_v*EiqGtX4!y`R8DGnk!=}WUL#mH^pQTOQ6$EDInsL~ z6J*kdlci{P7ymbRkf|g==rdrbRqOa_Mrk-J zz?n(uYVRoo@;RFMD2$233%mtI`l%@D^_l?sWCntevEb)6xtfVRGiwC7|)3?5Jf7_qkH~F2GIF7(ixa7`Imk8lA?A^D<~h%*PY$Sgx`2~ z*!Y-vkrU^LElp*KQbiRB>6W%-Et=Uqhj&yzSZnX4pS{3qtJx?HVFN=DrBVu;iXx=~ zDmM4`I{Z=rj3Rpb*F>cV3}LtwY-t7<={1EgB2K@|W2+B#s0i(y$+xcOuintuFeW)B*n5^APi<1;qb5)_b$ zOA=A5;+(KTE1z~Gb&4>PCaii&oqcMZN`jr&q;}3k4ckblifO2gnS9i`sFaZuIrTMdJA;S14LVt){xMHPc}zhei8||aLrRbF*|VRyJ>}}N zt12yzq@?v)wEn8E`jKuTI_VLJFvw)$aC5d>6N!k7=#J@(gyHlg&Vgipos`f)qk{yi5Z!>$y^$rIgWx z4SrFd#wQD9CQm}^xRPtMu8FFU%e_e|PE`NKo5kA{4agarB#T71FO$k2{zw=CV`6og zowPf@^jp8orGmCQNH4{3jJUff+q=J8iZsZw#3vKz1$nQhqPpHxV}?Wx)mrcxDi&LD^?$psaHFgEZo8{X}>SbTnG2Iw_BtA z+lc>boeao?0$hCzz8gfC>UCjf=`uN6Voff6a1-`biqff!9~lOQ%Pv2l20OB zfyHAX7s0tcVK(U-ux8pEX9_5RrA)^sqlXcb+A5R#o4+&+sDgNX{_CBf#KXfdz``q@ zK|I9BI}3%wl+^pT_9u@i)Mk0O#B%>xU{gk~;On1;GNl`Qul3|LKocQkK*HWPAm^4R zps@yf0?MKs%At$`U>rN=i;5vKFTLXxw9?I%YfL%+ElW2>y6f&$9QXZ zgow;}C&bE}u7Zq)e+$hjWeR<%Qq#;`cRa>z>$bK_%}oQfoB^@C%86K*h6)U(>-?bo zXa$k9kVteM^4wTZX0MRz3NZiY&oKqPe*(ud+{-l_&@0Dmh&mtQ$*l>k%;!0Y$LG*r z%*>#(7>E{{{a7bZiT)JbP%ai}&75Xm*L@zRZ> zSu#Dj0D8|wJkL1mq;f`_@vFaAeZN(mal||j11!|QOwlp)|Zr zQGLP$mBUtz)p{*ze^YEf$FN~NKvR=j=ur!`V0X+A3{F@TYYoeim%T}ww4w))zkHM1 zYo(>LMj^w`l)YFP?bp;N*n`cJSESJAso2Dg*d<(M4t;18lyXAxe4_tN+NMntn3R4w&BDCM+O18wRw`c($BR=sIS{ZMW}vYfI82xA z&-2^1yzL*ThM11nANpk2#XaDQooJs}VvGaX&h~OvQC>r;QV?D^DV0N_o5BRu6eT%o z$nw_dO}Vh+Q!xi}O)9EE@C0d)Z}~<&xLwse z-cr*iCWD=10506aP2kR~JF=Z^AMzFQu#a6dfk;U5mnKDG^N-cyb&ixmpec>P#-z5{s5 zCy=6A0A7IOhJN2|%;Wlvh<}6G)f^z=0_l`DNs~$wi(F(Y#77hj zz2b4R#h2Qzyg;e$hptga9GQrpjpqJ%4*Gr$wm#y2F0`8n(p{^jQ5x*&eE`#tCB^<^ zn6xO7%rMMu-#ea1&5*|ypXtq(joBpa8{X)_UF6vw>38^pNRGH)*0>5AR}7(+QyAC>_#P(gw)mOQW!xfFPOFVS*7~LovuI03s3+0iWd`>2PJ_C z5G!KDs8$f$L2R>5>5^p%jKf!3c1@JX%a$vQz;2+t-Fg_osTPL~r=hw*#K%>vS+#D> zx`4qEs|CD{ty;i>!4eLotz~P{C0lCGY=K!g(yqj5b>l8GmI{?Hsjwt|%;>QuUsX#* zEM|;A(&LGb!47$x@yBJ%nKf_TY-B~kR23;ww6bv`O`uwYseblM3o3;wJr5*^Z6N=` z*iuhMbUb>rE1HBo(ltWO+VN7UlrL}iHYzP+uVl`oZWER;>%)p^4`$3bIHPyOizDxC zR?lJ$C#-*NO2iPWT;<1~ANHe&1&(i+H6k*(EWO%t3odC~DT1K^8Nw?-zWjnEv0H4R z?1%#>q2z!HCp-WumavmaG73SQ3`5H}Gx5X-JUb{f-z>67yIx$>Xf@?pTgn=h1fs3B z+7611IUywItwkAS`pA_2id#q+j7CF^LsL{+Ef(RX%kH}2xYH>ZW}*Sls4vCghCFC^ zB1S0**wc-w0P1s7KFUbcZ$Ae}uyX?*niFtOy$p148s?TkU<&|qYw)iIB|QJ&qQN?n zY(wZ26HY%7L$vfX6f@OqwrYeB&6i}h40XFLX9SWKD@@w)Hroy&$k0Ny7*aGBfvXav zBz1YM$yzOvWQzrGl2STGt^5n8;2I#|6l2g+=Gmc&DyK|nzyrrxX|`)B&Gt~q@J(>( z)6fQThiKs3CZ2esie(v0uuo)_TL{oW3#CS(Ltp7DBFb*HLZS+xglWin%y581{44IlN=sH|9bc8j%%ODFnVj-E2QxjQ+f&XJu##T7EYwLb!Xb6Jn3`&< z;hm+^z3yf0%ci*F5nfG6|m(djgz|i&xKIF%(Y?x-NgS+9ux}@7~p*OloZ&efo zHa|-MM+i3o_hNKqixTD);aC-2{I|y&Ct^{Ub3&~Y6;>^1p<<#n>gWB5BBp}S>83*n z5SQt;(k29!g#itK5(dtogbW}EcCk~)*p5?;*wke~xmylRct`&P3H%6QfMJ#-iWeP* zEdXg@IhaO>(G#0I4|)_T#`K!O450PIGE&MI-|(Uujs?y~b}0ysP~jqy@upb%f(|fP z)|-Wq5MOh$Pq8956IpPKHlD!~7?`0y&*3ag`-2JqMK`(?8c=Bf2!IV*h9L}z;59wW zfCFDwwb%*Bg5WFE27i>duz@glSX_z;8|0zJB#(u*&{EJGB*Ph+(1sKX2BR*vH@Ses zJw@PTRO~W13KnD<7!lF05Otp!#i$p^h|&6DVK0(g<94X4q7@BeipuTi1RHQcFJ++& zFa}eYMA1TWBrrNu5-W{rY$F^UQveEW0VaLnOC2LP!94#iWC}h?%TW(r`#xMAHW880cdL|4MXo<0ZX3}>8!TG6P**8WvWCN9Nd zFe1t^kk}F7-7A*1i-owNX-ic8ZB?v7%NK{)zoLkzJ4JvTu`YAa0veE9&U7C-5%Vw! z=24~<J0-~@jTHKepN$vR!^x4y-roL zH=xVWkw7-PTP?gw(62@aj*>~J0EZDRhqg1DKg9%-SO`Ci-lquF$ffs+s0#gU4y54; zRd94tvXfp!5-APKo1)25N?CQM#?YrsXLV17{#jhHm9ISHpp}#3}-}()ux8E zw;jp-;)@>JRya9YGLY`N1YF>H)->==A#lgf!g(;r= zeK#4sun<{HSvswJt3EM0*I4p%SVRE|ky`(Cj!gUZ8abwEHH(7fPLCM8R1Cp)O4ggm z66)E-e58eCanptCH9rdM1OfRj_Q|BURbg1nE81j>844TvC3Y|2u8a|1zoLS zP6;!G!k=`@=t5f-S2hl* zcyN(yq4)w+ycldPD+KCw0-PesLo)wN7PVAD-&ug|b?=mf-NS0j`a#rSuV0jH8Z95v zM5L3%aG&*YZDEJ0>>grWobgvTzn3JSNx8JCox7fns#M4#GxIj`jB7~y+hchOL>fFQ zXZ_k0=q^!Q+5PBV!n@tPObfm3?TbmI8<@YKI=|Uz>he}a)NjSQr8abvBLs^&OkVh& zhb8R4oWwb*VN5Y)SsHMs#tHz|_@D!c?>7IW6eM7~4BcLAaz;@(Jh6gzR(_sn(>a5S zk2x}eQT3Tz2iWFx#$L?2z;kgcBIG8sfrCNx$hDZ#EqH*Wfsqs0GCNQHy=&WajT@r}PtwcGmaR(pHnDnl5$Qxhj4QGpSd z^maP^Q8wey`<}a6i~oQ>jv=<4?KuK$g348*|gWg5Zo)Q+{-}2f~NGk zkKO~m;AP=)V1g~V%(mt!@3ORKbMl28G;+lmgo6TX(XLVDqaU+6r~^ND^luQ*w^G<&os zpa2j!0|e{<57?z7Q3n53ScO&4Hwm0TOX`bCnmr6`8V=mUHyMC@6zQyn-yqf*^P$yJ#CLsgd9EfV!eMop3xvo4MKX5eYyrc(Wae!Yv%^ z2)P3WUGP4V5Wm_1CBkXKhcb-q@CKxahPXJZ!m~oNiV(-+zb^DOMFK$RQpF_cC3SfK z*Wo3mJ3SRZLR>(%qWG?=dp)^p96j7aKCBPoVLP}=ugpj?LL5XvQKvu@3rXyPFZcpS z9D^>HM4XEy2uZ|1nH_7WtJ;u;D|0haDMIffsfOVuaF2$GN_u>`lT$@il!k?*N5#UX$7@1~#1t3W66xtP+EOkp zVTwsQG+&#$w|bvbOC}+Z4G*}07Oa2^7|bzTx|irQncT5t8!2L;y=}}%%LKSX%n#AH zh)b+W*|L$MG|EFn0Z2?rNNma=7{6{x#hSbig_NS2kW3!m z@jf9MqG1>gJiARxNH7Iki&G4r2NlBM*cyCPx+oFOv(&=kY{I`HnNpF?w`@NO?=A0s-Mim^F&Ye+)+6R#}K@@LVT&=!;cWehyiAYO};FLJ&$@P2p_LxYV&< zh&unqQ6)E}h!-5rk4(AYd7oSPfjbQj^yoz;F-4O!OyOd)BD}3oh+C0&CM0L$jH&Ns@U->lNuY@4Z)4puCQ1$7&@fhaG1 zti{99DQ%8EB}-YvBMChpl|ijLax)_|qJD9nn5j#RD3sxJhP~4O z2LhmzBG2J8RHQ*vZMDqwloPQlK4E2x`HK`G1x?{#h|mZErgTS5-Oo(*RMv!}BQv4y z9MzSJ&1X1JM6{mq+nbW=h(Y_LNOeeJ(So0<)d~{`3`!7)j4LFH%UOA%^+^?lU0DA) zHPITKQY8G*%s9p*E3vyNF|Rra4&bF}eTpd!%Y(vE9o^QJb=hVj5f`KqI4Znu8&}a8 zK2q|Nmr&QHWLE;v)J%l}PrbgzIjG1wMe@4_*knkwoX{FM!F-}hrL_^Obu88tRoNgS zN2?q=Q;^Ur8Af#|T6{j13BZoyl#=r>Uvo}a;?n6jn!}2oyP*~X%NS>r);c<-lr8B^b*gMRC66K4v7GEL`_bG0?8FxPsLIJG{JfNzT;q88I#JI9KW0` zyUcyoj2%HLv03BD71@Zlx=ILz0JqDXl!+)?Q$nIgQ5cQtTyb?U_&P;Vq>ld+4KjQ? zw3J)P($m}QR8aE_Tt$6Z9VOhcx`ovB5($&CpwbP|*w@E>1E39o5O_y7uu6;7Sk}}P zo84S{ZQ7F1*ISaM!4%z4x>-oYBQ%*%)H?|++Ngn`I4sFQ&h%fhg}Tasyj`h`Q|K6c z&8_9=DkZ$vgb>J21GV$PM#SWT2XdYJlajubi@yzA=H*d8%wB~o&lsd5Q)m<{lK>=D z1MZF7OkGz`6{6filg!mz<4|8&+KBeGhO~g+29`>m;uG@)3GY;0wV*5g)upNU--+Z1 z{VUFUYr@mQC5}qq`D5T3jy$%-~cYpkvgOxQeOquOK63QiMlHm+a8!nrZh=OYvPW+orRS> zR5k`&!F}EYXq3ZkhD4)dOhT1k0hsaf*%o$T{+vXDk|-gfh8NmRi6Z0zohZ{lA5qHA zvm3jg3XJ(glhd%5(IeyQnL%33U%%DR@?kVK-B6vYCImiYs=6Chi)Lm{h{<$i>(C7L z=%fr_&Oo*=md)k$yk+$CV(FEoYH?HalBPBJ+XHY!F$e|JoLv8RrKe?fV1xj)^uwdu z)ZHt+K!51vfcw(lbVER?qyd2Xjdq(XbQWa z1dh0IWw^lkPtMd>AuC2ASO90$tojo!7l}oZa5RfU%jxr^m*Y~%jIJj(&R#en;n5M; z^>I9O?vv0B)hC#Pp&r`OVu&m{nh%YkPcYv%(k^)?;_= zYN54gL-uG^Ye+o_#n_b1gtUhDa9#;el51U!`m1K(U^xHSGNLOw4A0zJ^eqOcYt6V6 z)|cX3ka32yPGto?>G}C#kFjfNW z_7L3)(CYk*T<_J-uO_Ilp60JrD8#-hj20i%ZGc9_yv#!qSUEACP^I&$+Nsz#ye_K- zA+$eYEZ%Z6C!Xnt5>n1BziVM`^u1xr!^A(y#J>F=U0R)o0n~@t?!?fodNo9*7Vq&U zZ#|^4+3^xmsu%WdZ{4s2sW44U9RP~1?~A@+Qs(Av-tl_PSLwo$##LOst~Q0jp>Zga zaG7SYAb$lAFi{San0!+bR@rW-I{Vt z$MjP!v9636Q|TcHYw!=1sxU`3-z%r(HuL1#a5Y~|6Aly*<62Th;JxTd<*M7t>n4$D zUOw-2&6cKa<1MIOZ$XFO3^4RDKy-@cRDG%2GPy0WwlLB)$F&*|Jyp<0|0$E>s&DuP zXvp+tpcZiVWlzU4EZ?DF06D(Y;o(Kjs!Z8huv-q7rF&&^h+Aa7NQΞ%H};TF3Re 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

    2. E;k}vrhw~JhpsnQJ4RE? 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 r` 30:\n", + " label = split_label(label)\n", + " else:\n", + " label = [label]\n", + " label = ['Action: '] + label\n", + " \n", + " sizes = []\n", + " for line in label:\n", + " sizes.append(cv2.getTextSize(line, FONTFACE, FONTSCALE, THICKNESS)[0])\n", + " box_width = max([x[0] for x in sizes]) + 10\n", + " text_height = sizes[0][1]\n", + " box_height = len(sizes) * (text_height + 6)\n", + " \n", + " cv2.rectangle(frame, (0, 0), (box_width, box_height), BGCOLOR, -1)\n", + " for i, line in enumerate(label):\n", + " location = (5, (text_height + 6) * i + text_height + 3)\n", + " cv2.putText(frame, line, location, FONTFACE, FONTSCALE, FONTCOLOR, THICKNESS, LINETYPE)\n", + " return frame\n", + " \n", + "\n", + "def vis_skeleton(vid_path, anno, category_name=None, ratio=0.5):\n", + " vid = decord.VideoReader(vid_path)\n", + " frames = [x.asnumpy() for x in vid]\n", + " \n", + " h, w, _ = frames[0].shape\n", + " new_shape = (int(w * ratio), int(h * ratio))\n", + " frames = [cv2.resize(f, new_shape) for f in frames]\n", + " \n", + " assert len(frames) == anno['total_frames']\n", + " # The shape is N x T x K x 3\n", + " kps = np.concatenate([anno['keypoint'], anno['keypoint_score'][..., None]], axis=-1)\n", + " kps[..., :2] *= ratio\n", + " # Convert to T x N x K x 3\n", + " kps = kps.transpose([1, 0, 2, 3])\n", + " vis_frames = []\n", + "\n", + " # we need an instance of TopDown model, so build a minimal one\n", + " model = TopDown(backbone=dict(type='ShuffleNetV1'))\n", + "\n", + " for f, kp in zip(frames, kps):\n", + " bbox = np.zeros([0, 4], dtype=np.float32)\n", + " result = [dict(bbox=bbox, keypoints=k) for k in kp]\n", + " vis_frame = vis_pose_result(model, f, result)\n", + " \n", + " if category_name is not None:\n", + " vis_frame = add_label(vis_frame, category_name)\n", + " \n", + " vis_frames.append(vis_frame)\n", + " return vis_frames" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "applied-humanity", + "metadata": {}, + "outputs": [], + "source": [ + "keypoint_pipeline = [\n", + " dict(type='PoseDecode'),\n", + " dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True),\n", + " dict(type='Resize', scale=(-1, 64)),\n", + " dict(type='CenterCrop', crop_size=64),\n", + " dict(type='GeneratePoseTarget', sigma=0.6, use_score=True, with_kp=True, with_limb=False)\n", + "]\n", + "\n", + "limb_pipeline = [\n", + " dict(type='PoseDecode'),\n", + " dict(type='PoseCompact', hw_ratio=1., allow_imgpad=True),\n", + " dict(type='Resize', scale=(-1, 64)),\n", + " dict(type='CenterCrop', crop_size=64),\n", + " dict(type='GeneratePoseTarget', sigma=0.6, use_score=True, with_kp=False, with_limb=True)\n", + "]\n", + "\n", + "from mmaction.datasets.pipelines import Compose\n", + "def get_pseudo_heatmap(anno, flag='keypoint'):\n", + " assert flag in ['keypoint', 'limb']\n", + " pipeline = Compose(keypoint_pipeline if flag == 'keypoint' else limb_pipeline)\n", + " return pipeline(anno)['imgs']\n", + "\n", + "def vis_heatmaps(heatmaps, channel=-1, ratio=8):\n", + " # if channel is -1, draw all keypoints / limbs on the same map\n", + " import matplotlib.cm as cm\n", + " h, w, _ = heatmaps[0].shape\n", + " newh, neww = int(h * ratio), int(w * ratio)\n", + " \n", + " if channel == -1:\n", + " heatmaps = [np.max(x, axis=-1) for x in heatmaps]\n", + " cmap = cm.viridis\n", + " heatmaps = [(cmap(x)[..., :3] * 255).astype(np.uint8) for x in heatmaps]\n", + " heatmaps = [cv2.resize(x, (neww, newh)) for x in heatmaps]\n", + " return heatmaps" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "automatic-commons", + "metadata": {}, + "outputs": [], + "source": [ + "# Load GYM annotations\n", + "lines = list(urllib.request.urlopen('https://sdolivia.github.io/FineGym/resources/dataset/gym99_categories.txt'))\n", + "gym_categories = [x.decode().strip().split('; ')[-1] for x in lines]\n", + "gym_annos = load(gym_train_ann_file) + load(gym_val_ann_file)" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "id": "numerous-bristol", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2021-04-25 22:18:53-- https://download.openmmlab.com/mmaction/posec3d/gym_samples.tar\n", + "Resolving download.openmmlab.com (download.openmmlab.com)... 124.160.145.22\n", + "Connecting to download.openmmlab.com (download.openmmlab.com)|124.160.145.22|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 36300800 (35M) [application/x-tar]\n", + "Saving to: ‘gym_samples.tar’\n", + "\n", + "100%[======================================>] 36,300,800 11.5MB/s in 3.0s \n", + "\n", + "2021-04-25 22:18:58 (11.5 MB/s) - ‘gym_samples.tar’ saved [36300800/36300800]\n", + "\n" + ] + } + ], + "source": [ + "# download sample videos of GYM\n", + "!wget https://download.openmmlab.com/mmaction/posec3d/gym_samples.tar\n", + "!tar -xf gym_samples.tar\n", + "!rm gym_samples.tar" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "id": "ranging-harrison", + "metadata": {}, + "outputs": [], + "source": [ + "gym_root = 'gym_samples/'\n", + "gym_vids = os.listdir(gym_root)\n", + "# visualize pose of which video? index in 0 - 50.\n", + "idx = 1\n", + "vid = gym_vids[idx]\n", + "\n", + "frame_dir = vid.split('.')[0]\n", + "vid_path = osp.join(gym_root, vid)\n", + "anno = [x for x in gym_annos if x['frame_dir'] == frame_dir][0]" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "id": "fitting-courage", + "metadata": {}, + "outputs": [], + "source": [ + "# Visualize Skeleton\n", + "vis_frames = vis_skeleton(vid_path, anno, gym_categories[anno['label']])\n", + "vid = mpy.ImageSequenceClip(vis_frames, fps=24)\n", + "vid.ipython_display()" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "id": "orange-logging", + "metadata": {}, + "outputs": [], + "source": [ + "keypoint_heatmap = get_pseudo_heatmap(anno)\n", + "keypoint_mapvis = vis_heatmaps(keypoint_heatmap)\n", + "keypoint_mapvis = [add_label(f, gym_categories[anno['label']]) for f in keypoint_mapvis]\n", + "vid = mpy.ImageSequenceClip(keypoint_mapvis, fps=24)\n", + "vid.ipython_display()" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "id": "residential-conjunction", + "metadata": {}, + "outputs": [], + "source": [ + "limb_heatmap = get_pseudo_heatmap(anno, 'limb')\n", + "limb_mapvis = vis_heatmaps(limb_heatmap)\n", + "limb_mapvis = [add_label(f, gym_categories[anno['label']]) for f in limb_mapvis]\n", + "vid = mpy.ImageSequenceClip(limb_mapvis, fps=24)\n", + "vid.ipython_display()" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "id": "coupled-stranger", + "metadata": {}, + "outputs": [], + "source": [ + "# The name list of \n", + "ntu_categories = ['drink water', 'eat meal/snack', 'brushing teeth', 'brushing hair', 'drop', 'pickup', \n", + " 'throw', 'sitting down', 'standing up (from sitting position)', 'clapping', 'reading', \n", + " 'writing', 'tear up paper', 'wear jacket', 'take off jacket', 'wear a shoe', \n", + " 'take off a shoe', 'wear on glasses', 'take off glasses', 'put on a hat/cap', \n", + " 'take off a hat/cap', 'cheer up', 'hand waving', 'kicking something', \n", + " 'reach into pocket', 'hopping (one foot jumping)', 'jump up', \n", + " 'make a phone call/answer phone', 'playing with phone/tablet', 'typing on a keyboard', \n", + " 'pointing to something with finger', 'taking a selfie', 'check time (from watch)', \n", + " 'rub two hands together', 'nod head/bow', 'shake head', 'wipe face', 'salute', \n", + " 'put the palms together', 'cross hands in front (say stop)', 'sneeze/cough', \n", + " 'staggering', 'falling', 'touch head (headache)', 'touch chest (stomachache/heart pain)', \n", + " 'touch back (backache)', 'touch neck (neckache)', 'nausea or vomiting condition', \n", + " 'use a fan (with hand or paper)/feeling warm', 'punching/slapping other person', \n", + " 'kicking other person', 'pushing other person', 'pat on back of other person', \n", + " 'point finger at the other person', 'hugging other person', \n", + " 'giving something to other person', \"touch other person's pocket\", 'handshaking', \n", + " 'walking towards each other', 'walking apart from each other']\n", + "ntu_annos = load(ntu60_xsub_train_ann_file) + load(ntu60_xsub_val_ann_file)" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "id": "critical-review", + "metadata": {}, + "outputs": [], + "source": [ + "ntu_root = 'ntu_samples/'\n", + "ntu_vids = os.listdir(ntu_root)\n", + "# visualize pose of which video? index in 0 - 50.\n", + "idx = 20\n", + "vid = ntu_vids[idx]\n", + "\n", + "frame_dir = vid.split('.')[0]\n", + "vid_path = osp.join(ntu_root, vid)\n", + "anno = [x for x in ntu_annos if x['frame_dir'] == frame_dir.split('_')[0]][0]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "id": "seasonal-palmer", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--2021-04-25 22:21:16-- https://download.openmmlab.com/mmaction/posec3d/ntu_samples.tar\n", + "Resolving download.openmmlab.com (download.openmmlab.com)... 124.160.145.22\n", + "Connecting to download.openmmlab.com (download.openmmlab.com)|124.160.145.22|:443... connected.\n", + "HTTP request sent, awaiting response... 200 OK\n", + "Length: 121753600 (116M) [application/x-tar]\n", + "Saving to: ‘ntu_samples.tar’\n", + "\n", + "100%[======================================>] 121,753,600 14.4MB/s in 9.2s \n", + "\n", + "2021-04-25 22:21:26 (12.6 MB/s) - ‘ntu_samples.tar’ saved [121753600/121753600]\n", + "\n" + ] + } + ], + "source": [ + "# download sample videos of NTU-60\n", + "!wget https://download.openmmlab.com/mmaction/posec3d/ntu_samples.tar\n", + "!tar -xf ntu_samples.tar\n", + "!rm ntu_samples.tar" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "id": "accompanied-invitation", + "metadata": {}, + "outputs": [], + "source": [ + "vis_frames = vis_skeleton(vid_path, anno, ntu_categories[anno['label']])\n", + "vid = mpy.ImageSequenceClip(vis_frames, fps=24)\n", + "vid.ipython_display()" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "id": "respiratory-conclusion", + "metadata": {}, + "outputs": [], + "source": [ + "keypoint_heatmap = get_pseudo_heatmap(anno)\n", + "keypoint_mapvis = vis_heatmaps(keypoint_heatmap)\n", + "keypoint_mapvis = [add_label(f, gym_categories[anno['label']]) for f in keypoint_mapvis]\n", + "vid = mpy.ImageSequenceClip(keypoint_mapvis, fps=24)\n", + "vid.ipython_display()" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "id": "thirty-vancouver", + "metadata": {}, + "outputs": [], + "source": [ + "limb_heatmap = get_pseudo_heatmap(anno, 'limb')\n", + "limb_mapvis = vis_heatmaps(limb_heatmap)\n", + "limb_mapvis = [add_label(f, gym_categories[anno['label']]) for f in limb_mapvis]\n", + "vid = mpy.ImageSequenceClip(limb_mapvis, fps=24)\n", + "vid.ipython_display()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/openmmlab_test/mmaction2-0.24.1/demo/webcam_demo.py b/openmmlab_test/mmaction2-0.24.1/demo/webcam_demo.py new file mode 100644 index 00000000..575a503a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/demo/webcam_demo.py @@ -0,0 +1,223 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import argparse +import time +from collections import deque +from operator import itemgetter +from threading import Thread + +import cv2 +import numpy as np +import torch +from mmcv import Config, DictAction +from mmcv.parallel import collate, scatter + +from mmaction.apis import init_recognizer +from mmaction.datasets.pipelines import Compose + +FONTFACE = cv2.FONT_HERSHEY_COMPLEX_SMALL +FONTSCALE = 1 +FONTCOLOR = (255, 255, 255) # BGR, white +MSGCOLOR = (128, 128, 128) # BGR, gray +THICKNESS = 1 +LINETYPE = 1 + +EXCLUED_STEPS = [ + 'OpenCVInit', 'OpenCVDecode', 'DecordInit', 'DecordDecode', 'PyAVInit', + 'PyAVDecode', 'RawFrameDecode' +] + + +def parse_args(): + parser = argparse.ArgumentParser(description='MMAction2 webcam demo') + parser.add_argument('config', help='test config file path') + parser.add_argument('checkpoint', help='checkpoint file') + parser.add_argument('label', help='label file') + parser.add_argument( + '--device', type=str, default='cuda:0', help='CPU/CUDA device option') + parser.add_argument( + '--camera-id', type=int, default=0, help='camera device id') + parser.add_argument( + '--threshold', + type=float, + default=0.01, + help='recognition score threshold') + parser.add_argument( + '--average-size', + type=int, + default=1, + help='number of latest clips to be averaged for prediction') + parser.add_argument( + '--drawing-fps', + type=int, + default=20, + help='Set upper bound FPS value of the output drawing') + parser.add_argument( + '--inference-fps', + type=int, + default=4, + help='Set upper bound FPS value of model inference') + parser.add_argument( + '--cfg-options', + nargs='+', + action=DictAction, + default={}, + help='override some settings in the used config, the key-value pair ' + 'in xxx=yyy format will be merged into config file. For example, ' + "'--cfg-options model.backbone.depth=18 model.backbone.with_cp=True'") + args = parser.parse_args() + assert args.drawing_fps >= 0 and args.inference_fps >= 0, \ + 'upper bound FPS value of drawing and inference should be set as ' \ + 'positive number, or zero for no limit' + return args + + +def show_results(): + print('Press "Esc", "q" or "Q" to exit') + + text_info = {} + cur_time = time.time() + while True: + msg = 'Waiting for action ...' + _, frame = camera.read() + frame_queue.append(np.array(frame[:, :, ::-1])) + + if len(result_queue) != 0: + text_info = {} + results = result_queue.popleft() + for i, result in enumerate(results): + selected_label, score = result + if score < threshold: + break + location = (0, 40 + i * 20) + text = selected_label + ': ' + str(round(score, 2)) + text_info[location] = text + cv2.putText(frame, text, location, FONTFACE, FONTSCALE, + FONTCOLOR, THICKNESS, LINETYPE) + + elif len(text_info) != 0: + for location, text in text_info.items(): + cv2.putText(frame, text, location, FONTFACE, FONTSCALE, + FONTCOLOR, THICKNESS, LINETYPE) + + else: + cv2.putText(frame, msg, (0, 40), FONTFACE, FONTSCALE, MSGCOLOR, + THICKNESS, LINETYPE) + + cv2.imshow('camera', frame) + ch = cv2.waitKey(1) + + if ch == 27 or ch == ord('q') or ch == ord('Q'): + break + + if drawing_fps > 0: + # add a limiter for actual drawing fps <= drawing_fps + sleep_time = 1 / drawing_fps - (time.time() - cur_time) + if sleep_time > 0: + time.sleep(sleep_time) + cur_time = time.time() + + +def inference(): + score_cache = deque() + scores_sum = 0 + cur_time = time.time() + while True: + cur_windows = [] + + while len(cur_windows) == 0: + if len(frame_queue) == sample_length: + cur_windows = list(np.array(frame_queue)) + if data['img_shape'] is None: + data['img_shape'] = frame_queue.popleft().shape[:2] + + cur_data = data.copy() + cur_data['imgs'] = cur_windows + cur_data = test_pipeline(cur_data) + cur_data = collate([cur_data], samples_per_gpu=1) + if next(model.parameters()).is_cuda: + cur_data = scatter(cur_data, [device])[0] + + with torch.no_grad(): + scores = model(return_loss=False, **cur_data)[0] + + score_cache.append(scores) + scores_sum += scores + + if len(score_cache) == average_size: + scores_avg = scores_sum / average_size + num_selected_labels = min(len(label), 5) + + scores_tuples = tuple(zip(label, scores_avg)) + scores_sorted = sorted( + scores_tuples, key=itemgetter(1), reverse=True) + results = scores_sorted[:num_selected_labels] + + result_queue.append(results) + scores_sum -= score_cache.popleft() + + if inference_fps > 0: + # add a limiter for actual inference fps <= inference_fps + sleep_time = 1 / inference_fps - (time.time() - cur_time) + if sleep_time > 0: + time.sleep(sleep_time) + cur_time = time.time() + + camera.release() + cv2.destroyAllWindows() + + +def main(): + global frame_queue, camera, frame, results, threshold, sample_length, \ + data, test_pipeline, model, device, average_size, label, \ + result_queue, drawing_fps, inference_fps + + args = parse_args() + average_size = args.average_size + threshold = args.threshold + drawing_fps = args.drawing_fps + inference_fps = args.inference_fps + + device = torch.device(args.device) + + cfg = Config.fromfile(args.config) + cfg.merge_from_dict(args.cfg_options) + + model = init_recognizer(cfg, args.checkpoint, device=device) + camera = cv2.VideoCapture(args.camera_id) + data = dict(img_shape=None, modality='RGB', label=-1) + + with open(args.label, 'r') as f: + label = [line.strip() for line in f] + + # prepare test pipeline from non-camera pipeline + cfg = model.cfg + sample_length = 0 + pipeline = cfg.data.test.pipeline + pipeline_ = pipeline.copy() + for step in pipeline: + if 'SampleFrames' in step['type']: + sample_length = step['clip_len'] * step['num_clips'] + data['num_clips'] = step['num_clips'] + data['clip_len'] = step['clip_len'] + pipeline_.remove(step) + if step['type'] in EXCLUED_STEPS: + # remove step to decode frames + pipeline_.remove(step) + test_pipeline = Compose(pipeline_) + + assert sample_length > 0 + + try: + frame_queue = deque(maxlen=sample_length) + result_queue = deque(maxlen=1) + pw = Thread(target=show_results, args=(), daemon=True) + pr = Thread(target=inference, args=(), daemon=True) + pw.start() + pr.start() + pw.join() + except KeyboardInterrupt: + pass + + +if __name__ == '__main__': + main() diff --git a/openmmlab_test/mmaction2-0.24.1/demo/webcam_demo_spatiotemporal_det.py b/openmmlab_test/mmaction2-0.24.1/demo/webcam_demo_spatiotemporal_det.py new file mode 100644 index 00000000..fd02cbdb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/demo/webcam_demo_spatiotemporal_det.py @@ -0,0 +1,856 @@ +# Copyright (c) OpenMMLab. All rights reserved. +"""Webcam Spatio-Temporal Action Detection Demo. + +Some codes are based on https://github.com/facebookresearch/SlowFast +""" + +import argparse +import atexit +import copy +import logging +import queue +import threading +import time +from abc import ABCMeta, abstractmethod + +import cv2 +import mmcv +import numpy as np +import torch +from mmcv import Config, DictAction +from mmcv.runner import load_checkpoint + +from mmaction.models import build_detector + +try: + from mmdet.apis import inference_detector, init_detector +except (ImportError, ModuleNotFoundError): + raise ImportError('Failed to import `inference_detector` and ' + '`init_detector` form `mmdet.apis`. These apis are ' + 'required in this demo! ') + +logging.basicConfig(level=logging.DEBUG) +logger = logging.getLogger(__name__) + + +def parse_args(): + parser = argparse.ArgumentParser( + description='MMAction2 webcam spatio-temporal detection demo') + + parser.add_argument( + '--config', + default=('configs/detection/ava/' + 'slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py'), + help='spatio temporal detection config file path') + parser.add_argument( + '--checkpoint', + default=('https://download.openmmlab.com/mmaction/detection/ava/' + 'slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/' + 'slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb' + '_20201217-16378594.pth'), + help='spatio temporal detection checkpoint file/url') + parser.add_argument( + '--action-score-thr', + type=float, + default=0.4, + help='the threshold of human action score') + parser.add_argument( + '--det-config', + default='demo/faster_rcnn_r50_fpn_2x_coco.py', + help='human detection config file path (from mmdet)') + parser.add_argument( + '--det-checkpoint', + default=('http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/' + 'faster_rcnn_r50_fpn_2x_coco/' + 'faster_rcnn_r50_fpn_2x_coco_' + 'bbox_mAP-0.384_20200504_210434-a5d8aa15.pth'), + help='human detection checkpoint file/url') + parser.add_argument( + '--det-score-thr', + type=float, + default=0.9, + help='the threshold of human detection score') + parser.add_argument( + '--input-video', + default='0', + type=str, + help='webcam id or input video file/url') + parser.add_argument( + '--label-map', + default='tools/data/ava/label_map.txt', + help='label map file') + parser.add_argument( + '--device', type=str, default='cuda:0', help='CPU/CUDA device option') + parser.add_argument( + '--output-fps', + default=15, + type=int, + help='the fps of demo video output') + parser.add_argument( + '--out-filename', + default=None, + type=str, + help='the filename of output video') + parser.add_argument( + '--show', + action='store_true', + help='Whether to show results with cv2.imshow') + parser.add_argument( + '--display-height', + type=int, + default=0, + help='Image height for human detector and draw frames.') + parser.add_argument( + '--display-width', + type=int, + default=0, + help='Image width for human detector and draw frames.') + parser.add_argument( + '--predict-stepsize', + default=8, + type=int, + help='give out a prediction per n frames') + parser.add_argument( + '--clip-vis-length', + default=8, + type=int, + help='Number of draw frames per clip.') + parser.add_argument( + '--cfg-options', + nargs='+', + action=DictAction, + default={}, + help='override some settings in the used config, the key-value pair ' + 'in xxx=yyy format will be merged into config file. For example, ' + "'--cfg-options model.backbone.depth=18 model.backbone.with_cp=True'") + + args = parser.parse_args() + return args + + +class TaskInfo: + """Wapper for a clip. + + Transmit data around three threads. + + 1) Read Thread: Create task and put task into read queue. Init `frames`, + `processed_frames`, `img_shape`, `ratio`, `clip_vis_length`. + 2) Main Thread: Get data from read queue, predict human bboxes and stdet + action labels, draw predictions and put task into display queue. Init + `display_bboxes`, `stdet_bboxes` and `action_preds`, update `frames`. + 3) Display Thread: Get data from display queue, show/write frames and + delete task. + """ + + def __init__(self): + self.id = -1 + + # raw frames, used as human detector input, draw predictions input + # and output, display input + self.frames = None + + # stdet params + self.processed_frames = None # model inputs + self.frames_inds = None # select frames from processed frames + self.img_shape = None # model inputs, processed frame shape + # `action_preds` is `list[list[tuple]]`. The outer brackets indicate + # different bboxes and the intter brackets indicate different action + # results for the same bbox. tuple contains `class_name` and `score`. + self.action_preds = None # stdet results + + # human bboxes with the format (xmin, ymin, xmax, ymax) + self.display_bboxes = None # bboxes coords for self.frames + self.stdet_bboxes = None # bboxes coords for self.processed_frames + self.ratio = None # processed_frames.shape[1::-1]/frames.shape[1::-1] + + # for each clip, draw predictions on clip_vis_length frames + self.clip_vis_length = -1 + + def add_frames(self, idx, frames, processed_frames): + """Add the clip and corresponding id. + + Args: + idx (int): the current index of the clip. + frames (list[ndarray]): list of images in "BGR" format. + processed_frames (list[ndarray]): list of resize and normed images + in "BGR" format. + """ + self.frames = frames + self.processed_frames = processed_frames + self.id = idx + self.img_shape = processed_frames[0].shape[:2] + + def add_bboxes(self, display_bboxes): + """Add correspondding bounding boxes.""" + self.display_bboxes = display_bboxes + self.stdet_bboxes = display_bboxes.clone() + self.stdet_bboxes[:, ::2] = self.stdet_bboxes[:, ::2] * self.ratio[0] + self.stdet_bboxes[:, 1::2] = self.stdet_bboxes[:, 1::2] * self.ratio[1] + + def add_action_preds(self, preds): + """Add the corresponding action predictions.""" + self.action_preds = preds + + def get_model_inputs(self, device): + """Convert preprocessed images to MMAction2 STDet model inputs.""" + cur_frames = [self.processed_frames[idx] for idx in self.frames_inds] + input_array = np.stack(cur_frames).transpose((3, 0, 1, 2))[np.newaxis] + input_tensor = torch.from_numpy(input_array).to(device) + return dict( + return_loss=False, + img=[input_tensor], + proposals=[[self.stdet_bboxes]], + img_metas=[[dict(img_shape=self.img_shape)]]) + + +class BaseHumanDetector(metaclass=ABCMeta): + """Base class for Human Dector. + + Args: + device (str): CPU/CUDA device option. + """ + + def __init__(self, device): + self.device = torch.device(device) + + @abstractmethod + def _do_detect(self, image): + """Get human bboxes with shape [n, 4]. + + The format of bboxes is (xmin, ymin, xmax, ymax) in pixels. + """ + + def predict(self, task): + """Add keyframe bboxes to task.""" + # keyframe idx == (clip_len * frame_interval) // 2 + keyframe = task.frames[len(task.frames) // 2] + + # call detector + bboxes = self._do_detect(keyframe) + + # convert bboxes to torch.Tensor and move to target device + if isinstance(bboxes, np.ndarray): + bboxes = torch.from_numpy(bboxes).to(self.device) + elif isinstance(bboxes, torch.Tensor) and bboxes.device != self.device: + bboxes = bboxes.to(self.device) + + # update task + task.add_bboxes(bboxes) + + return task + + +class MmdetHumanDetector(BaseHumanDetector): + """Wrapper for mmdetection human detector. + + Args: + config (str): Path to mmdetection config. + ckpt (str): Path to mmdetection checkpoint. + device (str): CPU/CUDA device option. + score_thr (float): The threshold of human detection score. + person_classid (int): Choose class from detection results. + Default: 0. Suitable for COCO pretrained models. + """ + + def __init__(self, config, ckpt, device, score_thr, person_classid=0): + super().__init__(device) + self.model = init_detector(config, ckpt, device) + self.person_classid = person_classid + self.score_thr = score_thr + + def _do_detect(self, image): + """Get bboxes in shape [n, 4] and values in pixels.""" + result = inference_detector(self.model, image)[self.person_classid] + result = result[result[:, 4] >= self.score_thr][:, :4] + return result + + +class StdetPredictor: + """Wrapper for MMAction2 spatio-temporal action models. + + Args: + config (str): Path to stdet config. + ckpt (str): Path to stdet checkpoint. + device (str): CPU/CUDA device option. + score_thr (float): The threshold of human action score. + label_map_path (str): Path to label map file. The format for each line + is `{class_id}: {class_name}`. + """ + + def __init__(self, config, checkpoint, device, score_thr, label_map_path): + self.score_thr = score_thr + + # load model + config.model.backbone.pretrained = None + model = build_detector(config.model, test_cfg=config.get('test_cfg')) + load_checkpoint(model, checkpoint, map_location='cpu') + model.to(device) + model.eval() + self.model = model + self.device = device + + # init label map, aka class_id to class_name dict + with open(label_map_path) as f: + lines = f.readlines() + lines = [x.strip().split(': ') for x in lines] + self.label_map = {int(x[0]): x[1] for x in lines} + try: + if config['data']['train']['custom_classes'] is not None: + self.label_map = { + id + 1: self.label_map[cls] + for id, cls in enumerate(config['data']['train'] + ['custom_classes']) + } + except KeyError: + pass + + def predict(self, task): + """Spatio-temporval Action Detection model inference.""" + # No need to do inference if no one in keyframe + if len(task.stdet_bboxes) == 0: + return task + + with torch.no_grad(): + result = self.model(**task.get_model_inputs(self.device))[0] + + # pack results of human detector and stdet + preds = [] + for _ in range(task.stdet_bboxes.shape[0]): + preds.append([]) + for class_id in range(len(result)): + if class_id + 1 not in self.label_map: + continue + for bbox_id in range(task.stdet_bboxes.shape[0]): + if result[class_id][bbox_id, 4] > self.score_thr: + preds[bbox_id].append((self.label_map[class_id + 1], + result[class_id][bbox_id, 4])) + + # update task + # `preds` is `list[list[tuple]]`. The outer brackets indicate + # different bboxes and the intter brackets indicate different action + # results for the same bbox. tuple contains `class_name` and `score`. + task.add_action_preds(preds) + + return task + + +class ClipHelper: + """Multithrading utils to manage the lifecycle of task.""" + + def __init__(self, + config, + display_height=0, + display_width=0, + input_video=0, + predict_stepsize=40, + output_fps=25, + clip_vis_length=8, + out_filename=None, + show=True, + stdet_input_shortside=256): + # stdet sampling strategy + val_pipeline = config.data.val.pipeline + sampler = [x for x in val_pipeline + if x['type'] == 'SampleAVAFrames'][0] + clip_len, frame_interval = sampler['clip_len'], sampler[ + 'frame_interval'] + self.window_size = clip_len * frame_interval + + # asserts + assert (out_filename or show), \ + 'out_filename and show cannot both be None' + assert clip_len % 2 == 0, 'We would like to have an even clip_len' + assert clip_vis_length <= predict_stepsize + assert 0 < predict_stepsize <= self.window_size + + # source params + try: + self.cap = cv2.VideoCapture(int(input_video)) + self.webcam = True + except ValueError: + self.cap = cv2.VideoCapture(input_video) + self.webcam = False + assert self.cap.isOpened() + + # stdet input preprocessing params + h = int(self.cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) + w = int(self.cap.get(cv2.CAP_PROP_FRAME_WIDTH)) + self.stdet_input_size = mmcv.rescale_size( + (w, h), (stdet_input_shortside, np.Inf)) + img_norm_cfg = config['img_norm_cfg'] + if 'to_rgb' not in img_norm_cfg and 'to_bgr' in img_norm_cfg: + to_bgr = img_norm_cfg.pop('to_bgr') + img_norm_cfg['to_rgb'] = to_bgr + img_norm_cfg['mean'] = np.array(img_norm_cfg['mean']) + img_norm_cfg['std'] = np.array(img_norm_cfg['std']) + self.img_norm_cfg = img_norm_cfg + + # task init params + self.clip_vis_length = clip_vis_length + self.predict_stepsize = predict_stepsize + self.buffer_size = self.window_size - self.predict_stepsize + frame_start = self.window_size // 2 - (clip_len // 2) * frame_interval + self.frames_inds = [ + frame_start + frame_interval * i for i in range(clip_len) + ] + self.buffer = [] + self.processed_buffer = [] + + # output/display params + if display_height > 0 and display_width > 0: + self.display_size = (display_width, display_height) + elif display_height > 0 or display_width > 0: + self.display_size = mmcv.rescale_size( + (w, h), (np.Inf, max(display_height, display_width))) + else: + self.display_size = (w, h) + self.ratio = tuple( + n / o for n, o in zip(self.stdet_input_size, self.display_size)) + if output_fps <= 0: + self.output_fps = int(self.cap.get(cv2.CAP_PROP_FPS)) + else: + self.output_fps = output_fps + self.show = show + self.video_writer = None + if out_filename is not None: + self.video_writer = self.get_output_video_writer(out_filename) + display_start_idx = self.window_size // 2 - self.predict_stepsize // 2 + self.display_inds = [ + display_start_idx + i for i in range(self.predict_stepsize) + ] + + # display multi-theading params + self.display_id = -1 # task.id for display queue + self.display_queue = {} + self.display_lock = threading.Lock() + self.output_lock = threading.Lock() + + # read multi-theading params + self.read_id = -1 # task.id for read queue + self.read_id_lock = threading.Lock() + self.read_queue = queue.Queue() + self.read_lock = threading.Lock() + self.not_end = True # cap.read() flag + + # program state + self.stopped = False + + atexit.register(self.clean) + + def read_fn(self): + """Main function for read thread. + + Contains three steps: + + 1) Read and preprocess (resize + norm) frames from source. + 2) Create task by frames from previous step and buffer. + 3) Put task into read queue. + """ + was_read = True + start_time = time.time() + while was_read and not self.stopped: + # init task + task = TaskInfo() + task.clip_vis_length = self.clip_vis_length + task.frames_inds = self.frames_inds + task.ratio = self.ratio + + # read buffer + frames = [] + processed_frames = [] + if len(self.buffer) != 0: + frames = self.buffer + if len(self.processed_buffer) != 0: + processed_frames = self.processed_buffer + + # read and preprocess frames from source and update task + with self.read_lock: + before_read = time.time() + read_frame_cnt = self.window_size - len(frames) + while was_read and len(frames) < self.window_size: + was_read, frame = self.cap.read() + if not self.webcam: + # Reading frames too fast may lead to unexpected + # performance degradation. If you have enough + # resource, this line could be commented. + time.sleep(1 / self.output_fps) + if was_read: + frames.append(mmcv.imresize(frame, self.display_size)) + processed_frame = mmcv.imresize( + frame, self.stdet_input_size).astype(np.float32) + _ = mmcv.imnormalize_(processed_frame, + **self.img_norm_cfg) + processed_frames.append(processed_frame) + task.add_frames(self.read_id + 1, frames, processed_frames) + + # update buffer + if was_read: + self.buffer = frames[-self.buffer_size:] + self.processed_buffer = processed_frames[-self.buffer_size:] + + # update read state + with self.read_id_lock: + self.read_id += 1 + self.not_end = was_read + + self.read_queue.put((was_read, copy.deepcopy(task))) + cur_time = time.time() + logger.debug( + f'Read thread: {1000*(cur_time - start_time):.0f} ms, ' + f'{read_frame_cnt / (cur_time - before_read):.0f} fps') + start_time = cur_time + + def display_fn(self): + """Main function for display thread. + + Read data from display queue and display predictions. + """ + start_time = time.time() + while not self.stopped: + # get the state of the read thread + with self.read_id_lock: + read_id = self.read_id + not_end = self.not_end + + with self.display_lock: + # If video ended and we have display all frames. + if not not_end and self.display_id == read_id: + break + + # If the next task are not available, wait. + if (len(self.display_queue) == 0 or + self.display_queue.get(self.display_id + 1) is None): + time.sleep(0.02) + continue + + # get display data and update state + self.display_id += 1 + was_read, task = self.display_queue[self.display_id] + del self.display_queue[self.display_id] + display_id = self.display_id + + # do display predictions + with self.output_lock: + if was_read and task.id == 0: + # the first task + cur_display_inds = range(self.display_inds[-1] + 1) + elif not was_read: + # the last task + cur_display_inds = range(self.display_inds[0], + len(task.frames)) + else: + cur_display_inds = self.display_inds + + for frame_id in cur_display_inds: + frame = task.frames[frame_id] + if self.show: + cv2.imshow('Demo', frame) + cv2.waitKey(int(1000 / self.output_fps)) + if self.video_writer: + self.video_writer.write(frame) + + cur_time = time.time() + logger.debug( + f'Display thread: {1000*(cur_time - start_time):.0f} ms, ' + f'read id {read_id}, display id {display_id}') + start_time = cur_time + + def __iter__(self): + return self + + def __next__(self): + """Get data from read queue. + + This function is part of the main thread. + """ + if self.read_queue.qsize() == 0: + time.sleep(0.02) + return not self.stopped, None + + was_read, task = self.read_queue.get() + if not was_read: + # If we reach the end of the video, there aren't enough frames + # in the task.processed_frames, so no need to model inference + # and draw predictions. Put task into display queue. + with self.read_id_lock: + read_id = self.read_id + with self.display_lock: + self.display_queue[read_id] = was_read, copy.deepcopy(task) + + # main thread doesn't need to handle this task again + task = None + return was_read, task + + def start(self): + """Start read thread and display thread.""" + self.read_thread = threading.Thread( + target=self.read_fn, args=(), name='VidRead-Thread', daemon=True) + self.read_thread.start() + self.display_thread = threading.Thread( + target=self.display_fn, + args=(), + name='VidDisplay-Thread', + daemon=True) + self.display_thread.start() + + return self + + def clean(self): + """Close all threads and release all resources.""" + self.stopped = True + self.read_lock.acquire() + self.cap.release() + self.read_lock.release() + self.output_lock.acquire() + cv2.destroyAllWindows() + if self.video_writer: + self.video_writer.release() + self.output_lock.release() + + def join(self): + """Waiting for the finalization of read and display thread.""" + self.read_thread.join() + self.display_thread.join() + + def display(self, task): + """Add the visualized task to the display queue. + + Args: + task (TaskInfo object): task object that contain the necessary + information for prediction visualization. + """ + with self.display_lock: + self.display_queue[task.id] = (True, task) + + def get_output_video_writer(self, path): + """Return a video writer object. + + Args: + path (str): path to the output video file. + """ + return cv2.VideoWriter( + filename=path, + fourcc=cv2.VideoWriter_fourcc(*'mp4v'), + fps=float(self.output_fps), + frameSize=self.display_size, + isColor=True) + + +class BaseVisualizer(metaclass=ABCMeta): + """Base class for visualization tools.""" + + def __init__(self, max_labels_per_bbox): + self.max_labels_per_bbox = max_labels_per_bbox + + def draw_predictions(self, task): + """Visualize stdet predictions on raw frames.""" + # read bboxes from task + bboxes = task.display_bboxes.cpu().numpy() + + # draw predictions and update task + keyframe_idx = len(task.frames) // 2 + draw_range = [ + keyframe_idx - task.clip_vis_length // 2, + keyframe_idx + (task.clip_vis_length - 1) // 2 + ] + assert draw_range[0] >= 0 and draw_range[1] < len(task.frames) + task.frames = self.draw_clip_range(task.frames, task.action_preds, + bboxes, draw_range) + + return task + + def draw_clip_range(self, frames, preds, bboxes, draw_range): + """Draw a range of frames with the same bboxes and predictions.""" + # no predictions to be draw + if bboxes is None or len(bboxes) == 0: + return frames + + # draw frames in `draw_range` + left_frames = frames[:draw_range[0]] + right_frames = frames[draw_range[1] + 1:] + draw_frames = frames[draw_range[0]:draw_range[1] + 1] + + # get labels(texts) and draw predictions + draw_frames = [ + self.draw_one_image(frame, bboxes, preds) for frame in draw_frames + ] + + return list(left_frames) + draw_frames + list(right_frames) + + @abstractmethod + def draw_one_image(self, frame, bboxes, preds): + """Draw bboxes and corresponding texts on one frame.""" + + @staticmethod + def abbrev(name): + """Get the abbreviation of label name: + + 'take (an object) from (a person)' -> 'take ... from ...' + """ + while name.find('(') != -1: + st, ed = name.find('('), name.find(')') + name = name[:st] + '...' + name[ed + 1:] + return name + + +class DefaultVisualizer(BaseVisualizer): + """Tools to visualize predictions. + + Args: + max_labels_per_bbox (int): Max number of labels to visualize for a + person box. Default: 5. + plate (str): The color plate used for visualization. Two recommended + plates are blue plate `03045e-023e8a-0077b6-0096c7-00b4d8-48cae4` + and green plate `004b23-006400-007200-008000-38b000-70e000`. These + plates are generated by https://coolors.co/. + Default: '03045e-023e8a-0077b6-0096c7-00b4d8-48cae4'. + text_fontface (int): Fontface from OpenCV for texts. + Default: cv2.FONT_HERSHEY_DUPLEX. + text_fontscale (float): Fontscale from OpenCV for texts. + Default: 0.5. + text_fontcolor (tuple): fontface from OpenCV for texts. + Default: (255, 255, 255). + text_thickness (int): Thickness from OpenCV for texts. + Default: 1. + text_linetype (int): LInetype from OpenCV for texts. + Default: 1. + """ + + def __init__( + self, + max_labels_per_bbox=5, + plate='03045e-023e8a-0077b6-0096c7-00b4d8-48cae4', + text_fontface=cv2.FONT_HERSHEY_DUPLEX, + text_fontscale=0.5, + text_fontcolor=(255, 255, 255), # white + text_thickness=1, + text_linetype=1): + super().__init__(max_labels_per_bbox=max_labels_per_bbox) + self.text_fontface = text_fontface + self.text_fontscale = text_fontscale + self.text_fontcolor = text_fontcolor + self.text_thickness = text_thickness + self.text_linetype = text_linetype + + def hex2color(h): + """Convert the 6-digit hex string to tuple of 3 int value (RGB)""" + return (int(h[:2], 16), int(h[2:4], 16), int(h[4:], 16)) + + plate = plate.split('-') + self.plate = [hex2color(h) for h in plate] + + def draw_one_image(self, frame, bboxes, preds): + """Draw predictions on one image.""" + for bbox, pred in zip(bboxes, preds): + # draw bbox + box = bbox.astype(np.int64) + st, ed = tuple(box[:2]), tuple(box[2:]) + cv2.rectangle(frame, st, ed, (0, 0, 255), 2) + + # draw texts + for k, (label, score) in enumerate(pred): + if k >= self.max_labels_per_bbox: + break + text = f'{self.abbrev(label)}: {score:.4f}' + location = (0 + st[0], 18 + k * 18 + st[1]) + textsize = cv2.getTextSize(text, self.text_fontface, + self.text_fontscale, + self.text_thickness)[0] + textwidth = textsize[0] + diag0 = (location[0] + textwidth, location[1] - 14) + diag1 = (location[0], location[1] + 2) + cv2.rectangle(frame, diag0, diag1, self.plate[k + 1], -1) + cv2.putText(frame, text, location, self.text_fontface, + self.text_fontscale, self.text_fontcolor, + self.text_thickness, self.text_linetype) + + return frame + + +def main(args): + # init human detector + human_detector = MmdetHumanDetector(args.det_config, args.det_checkpoint, + args.device, args.det_score_thr) + + # init action detector + config = Config.fromfile(args.config) + config.merge_from_dict(args.cfg_options) + + try: + # In our spatiotemporal detection demo, different actions should have + # the same number of bboxes. + config['model']['test_cfg']['rcnn']['action_thr'] = .0 + except KeyError: + pass + stdet_predictor = StdetPredictor( + config=config, + checkpoint=args.checkpoint, + device=args.device, + score_thr=args.action_score_thr, + label_map_path=args.label_map) + + # init clip helper + clip_helper = ClipHelper( + config=config, + display_height=args.display_height, + display_width=args.display_width, + input_video=args.input_video, + predict_stepsize=args.predict_stepsize, + output_fps=args.output_fps, + clip_vis_length=args.clip_vis_length, + out_filename=args.out_filename, + show=args.show) + + # init visualizer + vis = DefaultVisualizer() + + # start read and display thread + clip_helper.start() + + try: + # Main thread main function contains: + # 1) get data from read queue + # 2) get human bboxes and stdet predictions + # 3) draw stdet predictions and update task + # 4) put task into display queue + for able_to_read, task in clip_helper: + # get data from read queue + + if not able_to_read: + # read thread is dead and all tasks are processed + break + + if task is None: + # when no data in read queue, wait + time.sleep(0.01) + continue + + inference_start = time.time() + + # get human bboxes + human_detector.predict(task) + + # get stdet predictions + stdet_predictor.predict(task) + + # draw stdet predictions in raw frames + vis.draw_predictions(task) + logger.info(f'Stdet Results: {task.action_preds}') + + # add draw frames to display queue + clip_helper.display(task) + + logger.debug('Main thread inference time ' + f'{1000*(time.time() - inference_start):.0f} ms') + + # wait for display thread + clip_helper.join() + except KeyboardInterrupt: + pass + finally: + # close read & display thread, release all resources + clip_helper.clean() + + +if __name__ == '__main__': + main(parse_args()) diff --git a/openmmlab_test/mmaction2-0.24.1/docker/Dockerfile b/openmmlab_test/mmaction2-0.24.1/docker/Dockerfile new file mode 100644 index 00000000..506366f7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docker/Dockerfile @@ -0,0 +1,25 @@ +ARG PYTORCH="1.6.0" +ARG CUDA="10.1" +ARG CUDNN="7" + +FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel + +ENV TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0+PTX" +ENV TORCH_NVCC_FLAGS="-Xfatbin -compress-all" +ENV CMAKE_PREFIX_PATH="$(dirname $(which conda))/../" + +RUN apt-get update && apt-get install -y git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 ffmpeg \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +# Install mmcv-full +RUN pip install mmcv-full==latest -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.6.0/index.html + +# Install MMAction2 +RUN conda clean --all +RUN git clone https://github.com/open-mmlab/mmaction2.git /mmaction2 +WORKDIR /mmaction2 +RUN mkdir -p /mmaction2/data +ENV FORCE_CUDA="1" +RUN pip install cython --no-cache-dir +RUN pip install --no-cache-dir -e . diff --git a/openmmlab_test/mmaction2-0.24.1/docker/serve/Dockerfile b/openmmlab_test/mmaction2-0.24.1/docker/serve/Dockerfile new file mode 100644 index 00000000..8ea55de3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docker/serve/Dockerfile @@ -0,0 +1,51 @@ +ARG PYTORCH="1.9.0" +ARG CUDA="10.2" +ARG CUDNN="7" +FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel + +ARG MMCV="1.3.8" +ARG MMACTION="0.24.0" + +ENV PYTHONUNBUFFERED TRUE + +RUN apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ + ca-certificates \ + g++ \ + openjdk-11-jre-headless \ + # MMDET Requirements + ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 \ + libsndfile1 libturbojpeg \ + && rm -rf /var/lib/apt/lists/* + +ENV PATH="/opt/conda/bin:$PATH" +RUN export FORCE_CUDA=1 + +# TORCHSEVER +RUN pip install torchserve torch-model-archiver + +# MMLAB +ARG PYTORCH +ARG CUDA +RUN ["/bin/bash", "-c", "pip install mmcv-full==${MMCV} -f https://download.openmmlab.com/mmcv/dist/cu${CUDA//./}/torch${PYTORCH}/index.html"] +# RUN pip install mmaction2==${MMACTION} +RUN pip install git+https://github.com/open-mmlab/mmaction2.git + +RUN useradd -m model-server \ + && mkdir -p /home/model-server/tmp + +COPY entrypoint.sh /usr/local/bin/entrypoint.sh + +RUN chmod +x /usr/local/bin/entrypoint.sh \ + && chown -R model-server /home/model-server + +COPY config.properties /home/model-server/config.properties +RUN mkdir /home/model-server/model-store && chown -R model-server /home/model-server/model-store + +EXPOSE 8080 8081 8082 + +USER model-server +WORKDIR /home/model-server +ENV TEMP=/home/model-server/tmp +ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] +CMD ["serve"] diff --git a/openmmlab_test/mmaction2-0.24.1/docker/serve/config.properties b/openmmlab_test/mmaction2-0.24.1/docker/serve/config.properties new file mode 100644 index 00000000..efb9c47e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docker/serve/config.properties @@ -0,0 +1,5 @@ +inference_address=http://0.0.0.0:8080 +management_address=http://0.0.0.0:8081 +metrics_address=http://0.0.0.0:8082 +model_store=/home/model-server/model-store +load_models=all diff --git a/openmmlab_test/mmaction2-0.24.1/docker/serve/entrypoint.sh b/openmmlab_test/mmaction2-0.24.1/docker/serve/entrypoint.sh new file mode 100644 index 00000000..41ba00b0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docker/serve/entrypoint.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -e + +if [[ "$1" = "serve" ]]; then + shift 1 + torchserve --start --ts-config /home/model-server/config.properties +else + eval "$@" +fi + +# prevent docker exit +tail -f /dev/null diff --git a/openmmlab_test/mmaction2-0.24.1/docs/Makefile b/openmmlab_test/mmaction2-0.24.1/docs/Makefile new file mode 100644 index 00000000..d4bb2cbb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/openmmlab_test/mmaction2-0.24.1/docs/_static/css/readthedocs.css b/openmmlab_test/mmaction2-0.24.1/docs/_static/css/readthedocs.css new file mode 100644 index 00000000..c8b2f6bd --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/_static/css/readthedocs.css @@ -0,0 +1,6 @@ +.header-logo { + background-image: url("../images/mmaction2.png"); + background-size: 130px 40px; + height: 40px; + width: 130px; +} diff --git a/openmmlab_test/mmaction2-0.24.1/docs/_static/images/mmaction2.png b/openmmlab_test/mmaction2-0.24.1/docs/_static/images/mmaction2.png new file mode 100644 index 0000000000000000000000000000000000000000..f0c759bb78c5424b4394d18a5ba833a8c9f43add GIT binary patch literal 31100 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 HFTwu@rHlVn literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/docs/api.rst b/openmmlab_test/mmaction2-0.24.1/docs/api.rst new file mode 100644 index 00000000..ecc9b810 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/api.rst @@ -0,0 +1,101 @@ +mmaction.apis +------------- +.. automodule:: mmaction.apis + :members: + +mmaction.core +------------- + +optimizer +^^^^^^^^^ +.. automodule:: mmaction.core.optimizer + :members: + +evaluation +^^^^^^^^^^ +.. automodule:: mmaction.core.evaluation + :members: + +scheduler +^^ +.. automodule:: mmaction.core.scheduler + :members: + +mmaction.localization +--------------------- + +localization +^^^^^^^^^^^^ +.. automodule:: mmaction.localization + :members: + +mmaction.models +--------------- + +models +^^^^^^ +.. automodule:: mmaction.models + :members: + +recognizers +^^^^^^^^^^^ +.. automodule:: mmaction.models.recognizers + :members: + +localizers +^^^^^^^^^^ +.. automodule:: mmaction.models.localizers + :members: + +common +^^^^^^ +.. automodule:: mmaction.models.common + :members: + +backbones +^^^^^^^^^ +.. automodule:: mmaction.models.backbones + :members: + +heads +^^^^^ +.. automodule:: mmaction.models.heads + :members: + +necks +^^^^^ +.. automodule:: mmaction.models.necks + :members: + +losses +^^^^^^ +.. automodule:: mmaction.models.losses + :members: + +mmaction.datasets +----------------- + +datasets +^^^^^^^^ +.. automodule:: mmaction.datasets + :members: + +pipelines +^^^^^^^^^ +.. automodule:: mmaction.datasets.pipelines + :members: + +samplers +^^^^^^^^ +.. automodule:: mmaction.datasets.samplers + :members: + +mmaction.utils +-------------- +.. automodule:: mmaction.utils + :members: + +mmaction.localization +--------------------- +.. automodule:: mmaction.localization + :members: diff --git a/openmmlab_test/mmaction2-0.24.1/docs/benchmark.md b/openmmlab_test/mmaction2-0.24.1/docs/benchmark.md new file mode 100644 index 00000000..562064e5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/benchmark.md @@ -0,0 +1,160 @@ +# Benchmark + +We compare our results with some popular frameworks and official releases in terms of speed. + +## Settings + +### Hardware + +- 8 NVIDIA Tesla V100 (32G) GPUs +- Intel(R) Xeon(R) Gold 6146 CPU @ 3.20GHz + +### Software Environment + +- Python 3.7 +- PyTorch 1.4 +- CUDA 10.1 +- CUDNN 7.6.03 +- NCCL 2.4.08 + +### Metrics + +The time we measured is the average training time for an iteration, including data processing and model training. +The training speed is measure with s/iter. The lower, the better. Note that we skip the first 50 iter times as they may contain the device warmup time. + +### Comparison Rules + +Here we compare our MMAction2 repo with other video understanding toolboxes in the same data and model settings +by the training time per iteration. Here, we use + +- commit id [7f3490d](https://github.com/open-mmlab/mmaction/tree/7f3490d3db6a67fe7b87bfef238b757403b670e3)(1/5/2020) of MMAction +- commit id [8d53d6f](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd)(5/5/2020) of Temporal-Shift-Module +- commit id [8299c98](https://github.com/facebookresearch/SlowFast/tree/8299c9862f83a067fa7114ce98120ae1568a83ec)(7/7/2020) of PySlowFast +- commit id [f13707f](https://github.com/wzmsltw/BSN-boundary-sensitive-network/tree/f13707fbc362486e93178c39f9c4d398afe2cb2f)(12/12/2018) of BSN(boundary sensitive network) +- commit id [45d0514](https://github.com/JJBOY/BMN-Boundary-Matching-Network/tree/45d05146822b85ca672b65f3d030509583d0135a)(17/10/2019) of BMN(boundary matching network) + +To ensure the fairness of the comparison, the comparison experiments were conducted under the same hardware environment and using the same dataset. The rawframe dataset we used is generated by the [data preparation tools](/tools/data/kinetics/README.md), the video dataset we used is a special version of resized video cache called '256p dense-encoded video', featuring a faster decoding speed which is generated by the scripts [here](/tools/data/resize_videos.py). Significant improvement can be observed when comparing with normal 256p videos as shown in the table below, especially when the sampling is sparse(like [TSN](/configs/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb.py)). + +For each model setting, we kept the same data preprocessing methods to make sure the same feature input. +In addition, we also used Memcached, a distributed cached system, to load the data for the same IO time except for fair comparisons with Pyslowfast which uses raw videos directly from disk by default. + +We provide the training log based on which we calculate the average iter time, with the actual setting logged inside, feel free to verify it and fire an issue if something does not make sense. + +## Main Results + +### Recognizers + +| Model | input | io backend | batch size x gpus | MMAction2 (s/iter) | GPU mem(GB) | MMAction (s/iter) | GPU mem(GB) | Temporal-Shift-Module (s/iter) | GPU mem(GB) | PySlowFast (s/iter) | GPU mem(GB) | +| :------------------------------------------------------------------------------------------ | :----------------------: | :--------: | :---------------: | :-------------------------------------------------------------------------------------------------------------------------: | :---------: | :------------------------------------------------------------------------------------------------------------------: | :---------: | :-------------------------------------------------------------------------------------------------------------------------------: | :---------: | :--------------------------------------------------------------------------------------------------------------------: | :---------: | +| [TSN](/configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py) | 256p rawframes | Memcached | 32x8 | **[0.32](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/tsn_256p_rawframes_memcahed_32x8.zip)** | 8.1 | [0.38](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction/tsn_256p_rawframes_memcached_32x8.zip) | 8.1 | [0.42](https://download.openmmlab.com/mmaction/benchmark/recognition/temporal_shift_module/tsn_256p_rawframes_memcached_32x8.zip) | 10.5 | x | x | +| [TSN](/configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py) | 256p videos | Disk | 32x8 | **[1.42](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/tsn_256p_videos_disk_32x8.zip)** | 8.1 | x | x | x | x | TODO | TODO | +| [TSN](/configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py) | 256p dense-encoded video | Disk | 32x8 | **[0.61](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/tsn_256p_fast_videos_disk_32x8.zip)** | 8.1 | x | x | x | x | TODO | TODO | +| [I3D heavy](/configs/recognition/i3d/i3d_r50_video_heavy_8x8x1_100e_kinetics400_rgb.py) | 256p videos | Disk | 8x8 | **[0.34](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/i3d_heavy_256p_videos_disk_8x8.zip)** | 4.6 | x | x | x | x | [0.44](https://download.openmmlab.com/mmaction/benchmark/recognition/pyslowfast/pysf_i3d_r50_8x8_video.log) | 4.6 | +| [I3D heavy](/configs/recognition/i3d/i3d_r50_video_heavy_8x8x1_100e_kinetics400_rgb.py) | 256p dense-encoded video | Disk | 8x8 | **[0.35](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/i3d_heavy_256p_fast_videos_disk_8x8.zip)** | 4.6 | x | x | x | x | [0.36](https://download.openmmlab.com/mmaction/benchmark/recognition/pyslowfast/pysf_i3d_r50_8x8_fast_video.log) | 4.6 | +| [I3D](/configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py) | 256p rawframes | Memcached | 8x8 | **[0.43](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/i3d_256p_rawframes_memcahed_8x8.zip)** | 5.0 | [0.56](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction/i3d_256p_rawframes_memcached_8x8.zip) | 5.0 | x | x | x | x | +| [TSM](/configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py) | 256p rawframes | Memcached | 8x8 | **[0.31](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/tsm_256p_rawframes_memcahed_8x8.zip)** | 6.9 | x | x | [0.41](https://download.openmmlab.com/mmaction/benchmark/recognition/temporal_shift_module/tsm_256p_rawframes_memcached_8x8.zip) | 9.1 | x | x | +| [Slowonly](/configs/recognition/slowonly/slowonly_r50_video_4x16x1_256e_kinetics400_rgb.py) | 256p videos | Disk | 8x8 | **[0.32](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/slowonly_256p_videos_disk_8x8.zip)** | 3.1 | TODO | TODO | x | x | [0.34](https://download.openmmlab.com/mmaction/benchmark/recognition/pyslowfast/pysf_slowonly_r50_4x16_video.log) | 3.4 | +| [Slowonly](/configs/recognition/slowonly/slowonly_r50_video_4x16x1_256e_kinetics400_rgb.py) | 256p dense-encoded video | Disk | 8x8 | **[0.25](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/slowonly_256p_fast_videos_disk_8x8.zip)** | 3.1 | TODO | TODO | x | x | [0.28](https://download.openmmlab.com/mmaction/benchmark/recognition/pyslowfast/pysf_slowonly_r50_4x16_fast_video.log) | 3.4 | +| [Slowfast](/configs/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb.py) | 256p videos | Disk | 8x8 | **[0.69](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/slowfast_256p_videos_disk_8x8.zip)** | 6.1 | x | x | x | x | [1.04](https://download.openmmlab.com/mmaction/benchmark/recognition/pyslowfast/pysf_slowfast_r50_4x16_video.log) | 7.0 | +| [Slowfast](/configs/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb.py) | 256p dense-encoded video | Disk | 8x8 | **[0.68](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/slowfast_256p_fast_videos_disk_8x8.zip)** | 6.1 | x | x | x | x | [0.96](https://download.openmmlab.com/mmaction/benchmark/recognition/pyslowfast/pysf_slowfast_r50_4x16_fast_video.log) | 7.0 | +| [R(2+1)D](/configs/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb.py) | 256p videos | Disk | 8x8 | **[0.45](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/r2plus1d_256p_videos_disk_8x8.zip)** | 5.1 | x | x | x | x | x | x | +| [R(2+1)D](/configs/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb.py) | 256p dense-encoded video | Disk | 8x8 | **[0.44](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/r2plus1d_256p_fast_videos_disk_8x8.zip)** | 5.1 | x | x | x | x | x | x | + +### Localizers + +| Model | MMAction2 (s/iter) | BSN(boundary sensitive network) (s/iter) | BMN(boundary matching network) (s/iter) | +| :------------------------------------------------------------------------------------------------------------------ | :-----------------------: | :--------------------------------------: | :-------------------------------------: | +| BSN ([TEM + PEM + PGM](/configs/localization/bsn)) | **0.074(TEM)+0.040(PEM)** | 0.101(TEM)+0.040(PEM) | x | +| BMN ([bmn_400x100_2x8_9e_activitynet_feature](/configs/localization/bmn/bmn_400x100_2x8_9e_activitynet_feature.py)) | **3.27** | x | 3.30 | + +## Details of Comparison + +### TSN + +- **MMAction2** + +```shell +# rawframes +bash tools/slurm_train.sh ${PARTATION_NAME} benchmark_tsn configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py --work-dir work_dirs/benchmark_tsn_rawframes + +# videos +bash tools/slurm_train.sh ${PARTATION_NAME} benchmark_tsn configs/recognition/tsn/tsn_r50_video_1x1x3_100e_kinetics400_rgb.py --work-dir work_dirs/benchmark_tsn_video +``` + +- **MMAction** + +```shell +python -u tools/train_recognizer.py configs/TSN/tsn_kinetics400_2d_rgb_r50_seg3_f1s1.py +``` + +- **Temporal-Shift-Module** + +```shell +python main.py kinetics RGB --arch resnet50 --num_segments 3 --gd 20 --lr 0.02 --wd 1e-4 --lr_steps 20 40 --epochs 1 --batch-size 256 -j 32 --dropout 0.5 --consensus_type=avg --eval-freq=10 --npb --print-freq 1 +``` + +### I3D + +- **MMAction2** + +```shell +# rawframes +bash tools/slurm_train.sh ${PARTATION_NAME} benchmark_i3d configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py --work-dir work_dirs/benchmark_i3d_rawframes + +# videos +bash tools/slurm_train.sh ${PARTATION_NAME} benchmark_i3d configs/recognition/i3d/i3d_r50_video_heavy_8x8x1_100e_kinetics400_rgb.py --work-dir work_dirs/benchmark_i3d_video +``` + +- **MMAction** + +```shell +python -u tools/train_recognizer.py configs/I3D_RGB/i3d_kinetics400_3d_rgb_r50_c3d_inflate3x1x1_seg1_f32s2.py +``` + +- **PySlowFast** + +```shell +python tools/run_net.py --cfg configs/Kinetics/I3D_8x8_R50.yaml DATA.PATH_TO_DATA_DIR ${DATA_ROOT} NUM_GPUS 8 TRAIN.BATCH_SIZE 64 TRAIN.AUTO_RESUME False LOG_PERIOD 1 SOLVER.MAX_EPOCH 1 > pysf_i3d_r50_8x8_video.log +``` + +You may reproduce the result by writing a simple script to parse out the value of the field 'time_diff'. + +### SlowFast + +- **MMAction2** + +```shell +bash tools/slurm_train.sh ${PARTATION_NAME} benchmark_slowfast configs/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb.py --work-dir work_dirs/benchmark_slowfast_video +``` + +- **PySlowFast** + +```shell +python tools/run_net.py --cfg configs/Kinetics/SLOWFAST_4x16_R50.yaml DATA.PATH_TO_DATA_DIR ${DATA_ROOT} NUM_GPUS 8 TRAIN.BATCH_SIZE 64 TRAIN.AUTO_RESUME False LOG_PERIOD 1 SOLVER.MAX_EPOCH 1 > pysf_slowfast_r50_4x16_video.log +``` + +You may reproduce the result by writing a simple script to parse out the value of the field 'time_diff'. + +### SlowOnly + +- **MMAction2** + +```shell +bash tools/slurm_train.sh ${PARTATION_NAME} benchmark_slowonly configs/recognition/slowonly/slowonly_r50_video_4x16x1_256e_kinetics400_rgb.py --work-dir work_dirs/benchmark_slowonly_video +``` + +- **PySlowFast** + +```shell +python tools/run_net.py --cfg configs/Kinetics/SLOW_4x16_R50.yaml DATA.PATH_TO_DATA_DIR ${DATA_ROOT} NUM_GPUS 8 TRAIN.BATCH_SIZE 64 TRAIN.AUTO_RESUME False LOG_PERIOD 1 SOLVER.MAX_EPOCH 1 > pysf_slowonly_r50_4x16_video.log +``` + +You may reproduce the result by writing a simple script to parse out the value of the field 'time_diff'. + +### R2plus1D + +- **MMAction2** + +```shell +bash tools/slurm_train.sh ${PARTATION_NAME} benchmark_r2plus1d configs/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb.py --work-dir work_dirs/benchmark_r2plus1d_video +``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs/changelog.md b/openmmlab_test/mmaction2-0.24.1/docs/changelog.md new file mode 100644 index 00000000..94c3632f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/changelog.md @@ -0,0 +1,792 @@ +## Changelog + +### 0.24.0 (05/05/2022) + +**Highlights** + +- Support different seeds + +**New Features** + +- Add lateral norm in multigrid config ([#1567](https://github.com/open-mmlab/mmaction2/pull/1567)) +- Add openpose 25 joints in graph config ([#1578](https://github.com/open-mmlab/mmaction2/pull/1578)) +- Support MLU Backend ([#1608](https://github.com/open-mmlab/mmaction2/pull/1608)) + +**Bug and Typo Fixes** + +- Fix local_rank ([#1558](https://github.com/open-mmlab/mmaction2/pull/1558)) +- Fix install typo ([#1571](https://github.com/open-mmlab/mmaction2/pull/1571)) +- Fix the inference API doc ([#1580](https://github.com/open-mmlab/mmaction2/pull/1580)) +- Fix zh-CN demo.md and getting_started.md ([#1587](https://github.com/open-mmlab/mmaction2/pull/1587)) +- Remove Recommonmark ([#1595](https://github.com/open-mmlab/mmaction2/pull/1595)) +- Fix inference with ndarray ([#1603](https://github.com/open-mmlab/mmaction2/pull/1603)) +- Fix the log error when `IterBasedRunner` is used ([#1606](https://github.com/open-mmlab/mmaction2/pull/1606)) + +### 0.23.0 (04/01/2022) + +**Highlights** + +- Support different seeds +- Provide multi-node training & testing script +- Update error log + +**New Features** + +- Support different seeds([#1502](https://github.com/open-mmlab/mmaction2/pull/1502)) +- Provide multi-node training & testing script([#1521](https://github.com/open-mmlab/mmaction2/pull/1521)) +- Update error log([#1546](https://github.com/open-mmlab/mmaction2/pull/1546)) + +**Documentations** + +- Update gpus in Slowfast readme([#1497](https://github.com/open-mmlab/mmaction2/pull/1497)) +- Fix work_dir in multigrid config([#1498](https://github.com/open-mmlab/mmaction2/pull/1498)) +- Add sub bn docs([#1503](https://github.com/open-mmlab/mmaction2/pull/1503)) +- Add shortcycle sampler docs([#1513](https://github.com/open-mmlab/mmaction2/pull/1513)) +- Update Windows Declaration([#1520](https://github.com/open-mmlab/mmaction2/pull/1520)) +- Update the link for ST-GCN([#1544](https://github.com/open-mmlab/mmaction2/pull/1544)) +- Update install commands([#1549](https://github.com/open-mmlab/mmaction2/pull/1549)) + +**Bug and Typo Fixes** + +- Update colab tutorial install cmds([#1522](https://github.com/open-mmlab/mmaction2/pull/1522)) +- Fix num_iters_per_epoch in analyze_logs.py([#1530](https://github.com/open-mmlab/mmaction2/pull/1530)) +- Fix distributed_sampler([#1532](https://github.com/open-mmlab/mmaction2/pull/1532)) +- Fix cd dir error([#1545](https://github.com/open-mmlab/mmaction2/pull/1545)) +- Update arg names([#1548](https://github.com/open-mmlab/mmaction2/pull/1548)) + +**ModelZoo** + +### 0.22.0 (03/05/2022) + +**Highlights** + +- Support Multigrid training strategy +- Support CPU training +- Support audio demo +- Support topk customizing in models/heads/base.py + +**New Features** + +- Support Multigrid training strategy([#1378](https://github.com/open-mmlab/mmaction2/pull/1378)) +- Support STGCN in demo_skeleton.py([#1391](https://github.com/open-mmlab/mmaction2/pull/1391)) +- Support CPU training([#1407](https://github.com/open-mmlab/mmaction2/pull/1407)) +- Support audio demo([#1425](https://github.com/open-mmlab/mmaction2/pull/1425)) +- Support topk customizing in models/heads/base.py([#1452](https://github.com/open-mmlab/mmaction2/pull/1452)) + +**Documentations** + +- Add OpenMMLab platform([#1393](https://github.com/open-mmlab/mmaction2/pull/1393)) +- Update links([#1394](https://github.com/open-mmlab/mmaction2/pull/1394)) +- Update readme in configs([#1404](https://github.com/open-mmlab/mmaction2/pull/1404)) +- Update instructions to install mmcv-full([#1426](https://github.com/open-mmlab/mmaction2/pull/1426)) +- Add shortcut([#1433](https://github.com/open-mmlab/mmaction2/pull/1433)) +- Update modelzoo([#1439](https://github.com/open-mmlab/mmaction2/pull/1439)) +- add video_structuralize in readme([#1455](https://github.com/open-mmlab/mmaction2/pull/1455)) +- Update OpenMMLab repo information([#1482](https://github.com/open-mmlab/mmaction2/pull/1482)) + +**Bug and Typo Fixes** + +- Update train.py([#1375](https://github.com/open-mmlab/mmaction2/pull/1375)) +- Fix printout bug([#1382](<(https://github.com/open-mmlab/mmaction2/pull/1382)>)) +- Update multi processing setting([#1395](https://github.com/open-mmlab/mmaction2/pull/1395)) +- Setup multi processing both in train and test([#1405](https://github.com/open-mmlab/mmaction2/pull/1405)) +- Fix bug in nondistributed multi-gpu training([#1406](https://github.com/open-mmlab/mmaction2/pull/1406)) +- Add variable fps in ava_dataset.py([#1409](https://github.com/open-mmlab/mmaction2/pull/1409)) +- Only support distributed training([#1414](https://github.com/open-mmlab/mmaction2/pull/1414)) +- Set test_mode for AVA configs([#1432](https://github.com/open-mmlab/mmaction2/pull/1432)) +- Support single label([#1434](https://github.com/open-mmlab/mmaction2/pull/1434)) +- Add check copyright([#1447](https://github.com/open-mmlab/mmaction2/pull/1447)) +- Support Windows CI([#1448](https://github.com/open-mmlab/mmaction2/pull/1448)) +- Fix wrong device of class_weight in models/losses/cross_entropy_loss.py([#1457](https://github.com/open-mmlab/mmaction2/pull/1457)) +- Fix bug caused by distributed([#1459](https://github.com/open-mmlab/mmaction2/pull/1459)) +- Update readme([#1460](https://github.com/open-mmlab/mmaction2/pull/1460)) +- Fix lint caused by colab automatic upload([#1461](https://github.com/open-mmlab/mmaction2/pull/1461)) +- Refine CI([#1471](https://github.com/open-mmlab/mmaction2/pull/1471)) +- Update pre-commit([#1474](https://github.com/open-mmlab/mmaction2/pull/1474)) +- Add deprecation message for deploy tool([#1483](https://github.com/open-mmlab/mmaction2/pull/1483)) + +**ModelZoo** + +- Support slowfast_steplr([#1421](https://github.com/open-mmlab/mmaction2/pull/1421)) + +### 0.21.0 (31/12/2021) + +**Highlights** + +- Support 2s-AGCN +- Support publish models in Windows +- Improve some sthv1 related models +- Support BABEL + +**New Features** + +- Support 2s-AGCN([#1248](https://github.com/open-mmlab/mmaction2/pull/1248)) +- Support skip postproc in ntu_pose_extraction([#1295](https://github.com/open-mmlab/mmaction2/pull/1295)) +- Support publish models in Windows([#1325](https://github.com/open-mmlab/mmaction2/pull/1325)) +- Add copyright checkhook in pre-commit-config([#1344](https://github.com/open-mmlab/mmaction2/pull/1344)) + +**Documentations** + +- Add MMFlow ([#1273](https://github.com/open-mmlab/mmaction2/pull/1273)) +- Revise README.md and add projects.md ([#1286](https://github.com/open-mmlab/mmaction2/pull/1286)) +- Add 2s-AGCN in Updates([#1289](https://github.com/open-mmlab/mmaction2/pull/1289)) +- Add MMFewShot([#1300](https://github.com/open-mmlab/mmaction2/pull/1300)) +- Add MMHuman3d([#1304](https://github.com/open-mmlab/mmaction2/pull/1304)) +- Update pre-commit([#1313](https://github.com/open-mmlab/mmaction2/pull/1313)) +- Use share menu from the theme instead([#1328](https://github.com/open-mmlab/mmaction2/pull/1328)) +- Update installation command([#1340](https://github.com/open-mmlab/mmaction2/pull/1340)) + +**Bug and Typo Fixes** + +- Update the inference part in notebooks([#1256](https://github.com/open-mmlab/mmaction2/pull/1256)) +- Update the map_location([#1262](<(https://github.com/open-mmlab/mmaction2/pull/1262)>)) +- Fix bug that start_index is not used in RawFrameDecode([#1278](https://github.com/open-mmlab/mmaction2/pull/1278)) +- Fix bug in init_random_seed([#1282](https://github.com/open-mmlab/mmaction2/pull/1282)) +- Fix bug in setup.py([#1303](https://github.com/open-mmlab/mmaction2/pull/1303)) +- Fix interrogate error in workflows([#1305](https://github.com/open-mmlab/mmaction2/pull/1305)) +- Fix typo in slowfast config([#1309](https://github.com/open-mmlab/mmaction2/pull/1309)) +- Cancel previous runs that are not completed([#1327](https://github.com/open-mmlab/mmaction2/pull/1327)) +- Fix missing skip_postproc parameter([#1347](https://github.com/open-mmlab/mmaction2/pull/1347)) +- Update ssn.py([#1355](https://github.com/open-mmlab/mmaction2/pull/1355)) +- Use latest youtube-dl([#1357](https://github.com/open-mmlab/mmaction2/pull/1357)) +- Fix test-best([#1362](https://github.com/open-mmlab/mmaction2/pull/1362)) + +**ModelZoo** + +- Improve some sthv1 related models([#1306](https://github.com/open-mmlab/mmaction2/pull/1306)) +- Support BABEL([#1332](https://github.com/open-mmlab/mmaction2/pull/1332)) + +### 0.20.0 (07/10/2021) + +**Highlights** + +- Support TorchServe +- Add video structuralize demo +- Support using 3D skeletons for skeleton-based action recognition +- Benchmark PoseC3D on UCF and HMDB + +**New Features** + +- Support TorchServe ([#1212](https://github.com/open-mmlab/mmaction2/pull/1212)) +- Support 3D skeletons pre-processing ([#1218](https://github.com/open-mmlab/mmaction2/pull/1218)) +- Support video structuralize demo ([#1197](https://github.com/open-mmlab/mmaction2/pull/1197)) + +**Documentations** + +- Revise README.md and add projects.md ([#1214](https://github.com/open-mmlab/mmaction2/pull/1214)) +- Add CN docs for Skeleton dataset, PoseC3D and ST-GCN ([#1228](https://github.com/open-mmlab/mmaction2/pull/1228), [#1237](https://github.com/open-mmlab/mmaction2/pull/1237), [#1236](https://github.com/open-mmlab/mmaction2/pull/1236)) +- Add tutorial for custom dataset training for skeleton-based action recognition ([#1234](https://github.com/open-mmlab/mmaction2/pull/1234)) + +**Bug and Typo Fixes** + +- Fix tutorial link ([#1219](https://github.com/open-mmlab/mmaction2/pull/1219)) +- Fix GYM links ([#1224](https://github.com/open-mmlab/mmaction2/pull/1224)) + +**ModelZoo** + +- Benchmark PoseC3D on UCF and HMDB ([#1223](https://github.com/open-mmlab/mmaction2/pull/1223)) +- Add ST-GCN + 3D skeleton model for NTU60-XSub ([#1236](https://github.com/open-mmlab/mmaction2/pull/1236)) + +### 0.19.0 (07/10/2021) + +**Highlights** + +- Support ST-GCN +- Refactor the inference API +- Add code spell check hook + +**New Features** + +- Support ST-GCN ([#1123](https://github.com/open-mmlab/mmaction2/pull/1123)) + +**Improvement** + +- Add label maps for every dataset ([#1127](https://github.com/open-mmlab/mmaction2/pull/1127)) +- Remove useless code MultiGroupCrop ([#1180](https://github.com/open-mmlab/mmaction2/pull/1180)) +- Refactor Inference API ([#1191](https://github.com/open-mmlab/mmaction2/pull/1191)) +- Add code spell check hook ([#1208](https://github.com/open-mmlab/mmaction2/pull/1208)) +- Use docker in CI ([#1159](https://github.com/open-mmlab/mmaction2/pull/1159)) + +**Documentations** + +- Update metafiles to new OpenMMLAB protocols ([#1134](https://github.com/open-mmlab/mmaction2/pull/1134)) +- Switch to new doc style ([#1160](https://github.com/open-mmlab/mmaction2/pull/1160)) +- Improve the ERROR message ([#1203](https://github.com/open-mmlab/mmaction2/pull/1203)) +- Fix invalid URL in getting_started ([#1169](https://github.com/open-mmlab/mmaction2/pull/1169)) + +**Bug and Typo Fixes** + +- Compatible with new MMClassification ([#1139](https://github.com/open-mmlab/mmaction2/pull/1139)) +- Add missing runtime dependencies ([#1144](https://github.com/open-mmlab/mmaction2/pull/1144)) +- Fix THUMOS tag proposals path ([#1156](https://github.com/open-mmlab/mmaction2/pull/1156)) +- Fix LoadHVULabel ([#1194](https://github.com/open-mmlab/mmaction2/pull/1194)) +- Switch the default value of `persistent_workers` to False ([#1202](https://github.com/open-mmlab/mmaction2/pull/1202)) +- Fix `_freeze_stages` for MobileNetV2 ([#1193](https://github.com/open-mmlab/mmaction2/pull/1193)) +- Fix resume when building rawframes ([#1150](https://github.com/open-mmlab/mmaction2/pull/1150)) +- Fix device bug for class weight ([#1188](https://github.com/open-mmlab/mmaction2/pull/1188)) +- Correct Arg names in extract_audio.py ([#1148](https://github.com/open-mmlab/mmaction2/pull/1148)) + +**ModelZoo** + +- Add TSM-MobileNetV2 ported from TSM ([#1163](https://github.com/open-mmlab/mmaction2/pull/1163)) +- Add ST-GCN for NTURGB+D-XSub-60 ([#1123](https://github.com/open-mmlab/mmaction2/pull/1123)) + +### 0.18.0 (02/09/2021) + +**Improvement** + +- Add CopyRight ([#1099](https://github.com/open-mmlab/mmaction2/pull/1099)) +- Support NTU Pose Extraction ([#1076](https://github.com/open-mmlab/mmaction2/pull/1076)) +- Support Caching in RawFrameDecode ([#1078](https://github.com/open-mmlab/mmaction2/pull/1078)) +- Add citations & Support python3.9 CI & Use fixed-version sphinx ([#1125](https://github.com/open-mmlab/mmaction2/pull/1125)) + +**Documentations** + +- Add Descriptions of PoseC3D dataset ([#1053](https://github.com/open-mmlab/mmaction2/pull/1053)) + +**Bug and Typo Fixes** + +- Fix SSV2 checkpoints ([#1101](https://github.com/open-mmlab/mmaction2/pull/1101)) +- Fix CSN normalization ([#1116](https://github.com/open-mmlab/mmaction2/pull/1116)) +- Fix typo ([#1121](https://github.com/open-mmlab/mmaction2/pull/1121)) +- Fix new_crop_quadruple bug ([#1108](https://github.com/open-mmlab/mmaction2/pull/1108)) + +### 0.17.0 (03/08/2021) + +**Highlights** + +- Support PyTorch 1.9 +- Support Pytorchvideo Transforms +- Support PreciseBN + +**New Features** + +- Support Pytorchvideo Transforms ([#1008](https://github.com/open-mmlab/mmaction2/pull/1008)) +- Support PreciseBN ([#1038](https://github.com/open-mmlab/mmaction2/pull/1038)) + +**Improvements** + +- Remove redundant augmentations in config files ([#996](https://github.com/open-mmlab/mmaction2/pull/996)) +- Make resource directory to hold common resource pictures ([#1011](https://github.com/open-mmlab/mmaction2/pull/1011)) +- Remove deprecated FrameSelector ([#1010](https://github.com/open-mmlab/mmaction2/pull/1010)) +- Support Concat Dataset ([#1000](https://github.com/open-mmlab/mmaction2/pull/1000)) +- Add `to-mp4` option to resize_videos.py ([#1021](https://github.com/open-mmlab/mmaction2/pull/1021)) +- Add option to keep tail frames ([#1050](https://github.com/open-mmlab/mmaction2/pull/1050)) +- Update MIM support ([#1061](https://github.com/open-mmlab/mmaction2/pull/1061)) +- Calculate Top-K accurate and inaccurate classes ([#1047](https://github.com/open-mmlab/mmaction2/pull/1047)) + +**Bug and Typo Fixes** + +- Fix bug in PoseC3D demo ([#1009](https://github.com/open-mmlab/mmaction2/pull/1009)) +- Fix some problems in resize_videos.py ([#1012](https://github.com/open-mmlab/mmaction2/pull/1012)) +- Support torch1.9 ([#1015](https://github.com/open-mmlab/mmaction2/pull/1015)) +- Remove redundant code in CI ([#1046](https://github.com/open-mmlab/mmaction2/pull/1046)) +- Fix bug about persistent_workers ([#1044](https://github.com/open-mmlab/mmaction2/pull/1044)) +- Support TimeSformer feature extraction ([#1035](https://github.com/open-mmlab/mmaction2/pull/1035)) +- Fix ColorJitter ([#1025](https://github.com/open-mmlab/mmaction2/pull/1025)) + +**ModelZoo** + +- Add TSM-R50 sthv1 models trained by PytorchVideo RandAugment and AugMix ([#1008](https://github.com/open-mmlab/mmaction2/pull/1008)) +- Update SlowOnly SthV1 checkpoints ([#1034](https://github.com/open-mmlab/mmaction2/pull/1034)) +- Add SlowOnly Kinetics400 checkpoints trained with Precise-BN ([#1038](https://github.com/open-mmlab/mmaction2/pull/1038)) +- Add CSN-R50 from scratch checkpoints ([#1045](https://github.com/open-mmlab/mmaction2/pull/1045)) +- TPN Kinetics-400 Checkpoints trained with the new ColorJitter ([#1025](https://github.com/open-mmlab/mmaction2/pull/1025)) + +**Documentation** + +- Add Chinese translation of feature_extraction.md ([#1020](https://github.com/open-mmlab/mmaction2/pull/1020)) +- Fix the code snippet in getting_started.md ([#1023](https://github.com/open-mmlab/mmaction2/pull/1023)) +- Fix TANet config table ([#1028](https://github.com/open-mmlab/mmaction2/pull/1028)) +- Add description to PoseC3D dataset ([#1053](https://github.com/open-mmlab/mmaction2/pull/1053)) + +### 0.16.0 (01/07/2021) + +**Highlights** + +- Support using backbone from pytorch-image-models(timm) +- Support PIMS Decoder +- Demo for skeleton-based action recognition +- Support Timesformer + +**New Features** + +- Support using backbones from pytorch-image-models(timm) for TSN ([#880](https://github.com/open-mmlab/mmaction2/pull/880)) +- Support torchvision transformations in preprocessing pipelines ([#972](https://github.com/open-mmlab/mmaction2/pull/972)) +- Demo for skeleton-based action recognition ([#972](https://github.com/open-mmlab/mmaction2/pull/972)) +- Support Timesformer ([#839](https://github.com/open-mmlab/mmaction2/pull/839)) + +**Improvements** + +- Add a tool to find invalid videos ([#907](https://github.com/open-mmlab/mmaction2/pull/907), [#950](https://github.com/open-mmlab/mmaction2/pull/950)) +- Add an option to specify spectrogram_type ([#909](https://github.com/open-mmlab/mmaction2/pull/909)) +- Add json output to video demo ([#906](https://github.com/open-mmlab/mmaction2/pull/906)) +- Add MIM related docs ([#918](https://github.com/open-mmlab/mmaction2/pull/918)) +- Rename lr to scheduler ([#916](https://github.com/open-mmlab/mmaction2/pull/916)) +- Support `--cfg-options` for demos ([#911](https://github.com/open-mmlab/mmaction2/pull/911)) +- Support number counting for flow-wise filename template ([#922](https://github.com/open-mmlab/mmaction2/pull/922)) +- Add Chinese tutorial ([#941](https://github.com/open-mmlab/mmaction2/pull/941)) +- Change ResNet3D default values ([#939](https://github.com/open-mmlab/mmaction2/pull/939)) +- Adjust script structure ([#935](https://github.com/open-mmlab/mmaction2/pull/935)) +- Add font color to args in long_video_demo ([#947](https://github.com/open-mmlab/mmaction2/pull/947)) +- Polish code style with Pylint ([#908](https://github.com/open-mmlab/mmaction2/pull/908)) +- Support PIMS Decoder ([#946](https://github.com/open-mmlab/mmaction2/pull/946)) +- Improve Metafiles ([#956](https://github.com/open-mmlab/mmaction2/pull/956), [#979](https://github.com/open-mmlab/mmaction2/pull/979), [#966](https://github.com/open-mmlab/mmaction2/pull/966)) +- Add links to download Kinetics400 validation ([#920](https://github.com/open-mmlab/mmaction2/pull/920)) +- Audit the usage of shutil.rmtree ([#943](https://github.com/open-mmlab/mmaction2/pull/943)) +- Polish localizer related codes([#913](https://github.com/open-mmlab/mmaction2/pull/913)) + +**Bug and Typo Fixes** + +- Fix spatiotemporal detection demo ([#899](https://github.com/open-mmlab/mmaction2/pull/899)) +- Fix docstring for 3D inflate ([#925](https://github.com/open-mmlab/mmaction2/pull/925)) +- Fix bug of writing text to video with TextClip ([#952](https://github.com/open-mmlab/mmaction2/pull/952)) +- Fix mmcv install in CI ([#977](https://github.com/open-mmlab/mmaction2/pull/977)) + +**ModelZoo** + +- Add TSN with Swin Transformer backbone as an example for using pytorch-image-models(timm) backbones ([#880](https://github.com/open-mmlab/mmaction2/pull/880)) +- Port CSN checkpoints from VMZ ([#945](https://github.com/open-mmlab/mmaction2/pull/945)) +- Release various checkpoints for UCF101, HMDB51 and Sthv1 ([#938](https://github.com/open-mmlab/mmaction2/pull/938)) +- Support Timesformer ([#839](https://github.com/open-mmlab/mmaction2/pull/839)) +- Update TSM modelzoo ([#981](https://github.com/open-mmlab/mmaction2/pull/981)) + +### 0.15.0 (31/05/2021) + +**Highlights** + +- Support PoseC3D +- Support ACRN +- Support MIM + +**New Features** + +- Support PoseC3D ([#786](https://github.com/open-mmlab/mmaction2/pull/786), [#890](https://github.com/open-mmlab/mmaction2/pull/890)) +- Support MIM ([#870](https://github.com/open-mmlab/mmaction2/pull/870)) +- Support ACRN and Focal Loss ([#891](https://github.com/open-mmlab/mmaction2/pull/891)) +- Support Jester dataset ([#864](https://github.com/open-mmlab/mmaction2/pull/864)) + +**Improvements** + +- Add `metric_options` for evaluation to docs ([#873](https://github.com/open-mmlab/mmaction2/pull/873)) +- Support creating a new label map based on custom classes for demos about spatio temporal demo ([#879](https://github.com/open-mmlab/mmaction2/pull/879)) +- Improve document about AVA dataset preparation ([#878](https://github.com/open-mmlab/mmaction2/pull/878)) +- Provide a script to extract clip-level feature ([#856](https://github.com/open-mmlab/mmaction2/pull/856)) + +**Bug and Typo Fixes** + +- Fix issues about resume ([#877](https://github.com/open-mmlab/mmaction2/pull/877), [#878](https://github.com/open-mmlab/mmaction2/pull/878)) +- Correct the key name of `eval_results` dictionary for metric 'mmit_mean_average_precision' ([#885](https://github.com/open-mmlab/mmaction2/pull/885)) + +**ModelZoo** + +- Support Jester dataset ([#864](https://github.com/open-mmlab/mmaction2/pull/864)) +- Support ACRN and Focal Loss ([#891](https://github.com/open-mmlab/mmaction2/pull/891)) + +### 0.14.0 (30/04/2021) + +**Highlights** + +- Support TRN +- Support Diving48 + +**New Features** + +- Support TRN ([#755](https://github.com/open-mmlab/mmaction2/pull/755)) +- Support Diving48 ([#835](https://github.com/open-mmlab/mmaction2/pull/835)) +- Support Webcam Demo for Spatio-temporal Action Detection Models ([#795](https://github.com/open-mmlab/mmaction2/pull/795)) + +**Improvements** + +- Add softmax option for pytorch2onnx tool ([#781](https://github.com/open-mmlab/mmaction2/pull/781)) +- Support TRN ([#755](https://github.com/open-mmlab/mmaction2/pull/755)) +- Test with onnx models and TensorRT engines ([#758](https://github.com/open-mmlab/mmaction2/pull/758)) +- Speed up AVA Testing ([#784](https://github.com/open-mmlab/mmaction2/pull/784)) +- Add `self.with_neck` attribute ([#796](https://github.com/open-mmlab/mmaction2/pull/796)) +- Update installation document ([#798](https://github.com/open-mmlab/mmaction2/pull/798)) +- Use a random master port ([#809](https://github.com/open-mmlab/mmaction2/pull/8098)) +- Update AVA processing data document ([#801](https://github.com/open-mmlab/mmaction2/pull/801)) +- Refactor spatio-temporal augmentation ([#782](https://github.com/open-mmlab/mmaction2/pull/782)) +- Add QR code in CN README ([#812](https://github.com/open-mmlab/mmaction2/pull/812)) +- Add Alternative way to download Kinetics ([#817](https://github.com/open-mmlab/mmaction2/pull/817), [#822](https://github.com/open-mmlab/mmaction2/pull/822)) +- Refactor Sampler ([#790](https://github.com/open-mmlab/mmaction2/pull/790)) +- Use EvalHook in MMCV with backward compatibility ([#793](https://github.com/open-mmlab/mmaction2/pull/793)) +- Use MMCV Model Registry ([#843](https://github.com/open-mmlab/mmaction2/pull/843)) + +**Bug and Typo Fixes** + +- Fix a bug in pytorch2onnx.py when `num_classes <= 4` ([#800](https://github.com/open-mmlab/mmaction2/pull/800), [#824](https://github.com/open-mmlab/mmaction2/pull/824)) +- Fix `demo_spatiotemporal_det.py` error ([#803](https://github.com/open-mmlab/mmaction2/pull/803), [#805](https://github.com/open-mmlab/mmaction2/pull/805)) +- Fix loading config bugs when resume ([#820](https://github.com/open-mmlab/mmaction2/pull/820)) +- Make HMDB51 annotation generation more robust ([#811](https://github.com/open-mmlab/mmaction2/pull/811)) + +**ModelZoo** + +- Update checkpoint for 256 height in something-V2 ([#789](https://github.com/open-mmlab/mmaction2/pull/789)) +- Support Diving48 ([#835](https://github.com/open-mmlab/mmaction2/pull/835)) + +### 0.13.0 (31/03/2021) + +**Highlights** + +- Support LFB +- Support using backbone from MMCls/TorchVision +- Add Chinese documentation + +**New Features** + +- Support LFB ([#553](https://github.com/open-mmlab/mmaction2/pull/553)) +- Support using backbones from MMCls for TSN ([#679](https://github.com/open-mmlab/mmaction2/pull/679)) +- Support using backbones from TorchVision for TSN ([#720](https://github.com/open-mmlab/mmaction2/pull/720)) +- Support Mixup and Cutmix for recognizers ([#681](https://github.com/open-mmlab/mmaction2/pull/681)) +- Support Chinese documentation ([#665](https://github.com/open-mmlab/mmaction2/pull/665), [#680](https://github.com/open-mmlab/mmaction2/pull/680), [#689](https://github.com/open-mmlab/mmaction2/pull/689), [#701](https://github.com/open-mmlab/mmaction2/pull/701), [#702](https://github.com/open-mmlab/mmaction2/pull/702), [#703](https://github.com/open-mmlab/mmaction2/pull/703), [#706](https://github.com/open-mmlab/mmaction2/pull/706), [#716](https://github.com/open-mmlab/mmaction2/pull/716), [#717](https://github.com/open-mmlab/mmaction2/pull/717), [#731](https://github.com/open-mmlab/mmaction2/pull/731), [#733](https://github.com/open-mmlab/mmaction2/pull/733), [#735](https://github.com/open-mmlab/mmaction2/pull/735), [#736](https://github.com/open-mmlab/mmaction2/pull/736), [#737](https://github.com/open-mmlab/mmaction2/pull/737), [#738](https://github.com/open-mmlab/mmaction2/pull/738), [#739](https://github.com/open-mmlab/mmaction2/pull/739), [#740](https://github.com/open-mmlab/mmaction2/pull/740), [#742](https://github.com/open-mmlab/mmaction2/pull/742), [#752](https://github.com/open-mmlab/mmaction2/pull/752), [#759](https://github.com/open-mmlab/mmaction2/pull/759), [#761](https://github.com/open-mmlab/mmaction2/pull/761), [#772](https://github.com/open-mmlab/mmaction2/pull/772), [#775](https://github.com/open-mmlab/mmaction2/pull/775)) + +**Improvements** + +- Add slowfast config/json/log/ckpt for training custom classes of AVA ([#678](https://github.com/open-mmlab/mmaction2/pull/678)) +- Set RandAugment as Imgaug default transforms ([#585](https://github.com/open-mmlab/mmaction2/pull/585)) +- Add `--test-last` & `--test-best` for `tools/train.py` to test checkpoints after training ([#608](https://github.com/open-mmlab/mmaction2/pull/608)) +- Add fcn_testing in TPN ([#684](https://github.com/open-mmlab/mmaction2/pull/684)) +- Remove redundant recall functions ([#741](https://github.com/open-mmlab/mmaction2/pull/741)) +- Recursively remove pretrained step for testing ([#695](https://github.com/open-mmlab/mmaction2/pull/695)) +- Improve demo by limiting inference fps ([#668](https://github.com/open-mmlab/mmaction2/pull/668)) + +**Bug and Typo Fixes** + +- Fix a bug about multi-class in VideoDataset ([#723](https://github.com/open-mmlab/mmaction2/pull/678)) +- Reverse key-value in anet filelist generation ([#686](https://github.com/open-mmlab/mmaction2/pull/686)) +- Fix flow norm cfg typo ([#693](https://github.com/open-mmlab/mmaction2/pull/693)) + +**ModelZoo** + +- Add LFB for AVA2.1 ([#553](https://github.com/open-mmlab/mmaction2/pull/553)) +- Add TSN with ResNeXt-101-32x4d backbone as an example for using MMCls backbones ([#679](https://github.com/open-mmlab/mmaction2/pull/679)) +- Add TSN with Densenet161 backbone as an example for using TorchVision backbones ([#720](https://github.com/open-mmlab/mmaction2/pull/720)) +- Add slowonly_nl_embedded_gaussian_r50_4x16x1_150e_kinetics400_rgb ([#690](https://github.com/open-mmlab/mmaction2/pull/690)) +- Add slowonly_nl_embedded_gaussian_r50_8x8x1_150e_kinetics400_rgb ([#704](https://github.com/open-mmlab/mmaction2/pull/704)) +- Add slowonly_nl_kinetics_pretrained_r50_4x16x1(8x8x1)\_20e_ava_rgb ([#730](https://github.com/open-mmlab/mmaction2/pull/730)) + +### 0.12.0 (28/02/2021) + +**Highlights** + +- Support TSM-MobileNetV2 +- Support TANet +- Support GPU Normalize + +**New Features** + +- Support TSM-MobileNetV2 ([#415](https://github.com/open-mmlab/mmaction2/pull/415)) +- Support flip with label mapping ([#591](https://github.com/open-mmlab/mmaction2/pull/591)) +- Add seed option for sampler ([#642](https://github.com/open-mmlab/mmaction2/pull/642)) +- Support GPU Normalize ([#586](https://github.com/open-mmlab/mmaction2/pull/586)) +- Support TANet ([#595](https://github.com/open-mmlab/mmaction2/pull/595)) + +**Improvements** + +- Training custom classes of ava dataset ([#555](https://github.com/open-mmlab/mmaction2/pull/555)) +- Add CN README in homepage ([#592](https://github.com/open-mmlab/mmaction2/pull/592), [#594](https://github.com/open-mmlab/mmaction2/pull/594)) +- Support soft label for CrossEntropyLoss ([#625](https://github.com/open-mmlab/mmaction2/pull/625)) +- Refactor config: Specify `train_cfg` and `test_cfg` in `model` ([#629](https://github.com/open-mmlab/mmaction2/pull/629)) +- Provide an alternative way to download older kinetics annotations ([#597](https://github.com/open-mmlab/mmaction2/pull/597)) +- Update FAQ for + - 1). data pipeline about video and frames ([#598](https://github.com/open-mmlab/mmaction2/pull/598)) + - 2). how to show results ([#598](https://github.com/open-mmlab/mmaction2/pull/598)) + - 3). batch size setting for batchnorm ([#657](https://github.com/open-mmlab/mmaction2/pull/657)) + - 4). how to fix stages of backbone when finetuning models ([#658](https://github.com/open-mmlab/mmaction2/pull/658)) +- Modify default value of `save_best` ([#600](https://github.com/open-mmlab/mmaction2/pull/600)) +- Use BibTex rather than latex in markdown ([#607](https://github.com/open-mmlab/mmaction2/pull/607)) +- Add warnings of uninstalling mmdet and supplementary documents ([#624](https://github.com/open-mmlab/mmaction2/pull/624)) +- Support soft label for CrossEntropyLoss ([#625](https://github.com/open-mmlab/mmaction2/pull/625)) + +**Bug and Typo Fixes** + +- Fix value of `pem_low_temporal_iou_threshold` in BSN ([#556](https://github.com/open-mmlab/mmaction2/pull/556)) +- Fix ActivityNet download script ([#601](https://github.com/open-mmlab/mmaction2/pull/601)) + +**ModelZoo** + +- Add TSM-MobileNetV2 for Kinetics400 ([#415](https://github.com/open-mmlab/mmaction2/pull/415)) +- Add deeper SlowFast models ([#605](https://github.com/open-mmlab/mmaction2/pull/605)) + +### 0.11.0 (31/01/2021) + +**Highlights** + +- Support imgaug +- Support spatial temporal demo +- Refactor EvalHook, config structure, unittest structure + +**New Features** + +- Support [imgaug](https://imgaug.readthedocs.io/en/latest/index.html) for augmentations in the data pipeline ([#492](https://github.com/open-mmlab/mmaction2/pull/492)) +- Support setting `max_testing_views` for extremely large models to save GPU memory used ([#511](https://github.com/open-mmlab/mmaction2/pull/511)) +- Add spatial temporal demo ([#547](https://github.com/open-mmlab/mmaction2/pull/547), [#566](https://github.com/open-mmlab/mmaction2/pull/566)) + +**Improvements** + +- Refactor EvalHook ([#395](https://github.com/open-mmlab/mmaction2/pull/395)) +- Refactor AVA hook ([#567](https://github.com/open-mmlab/mmaction2/pull/567)) +- Add repo citation ([#545](https://github.com/open-mmlab/mmaction2/pull/545)) +- Add dataset size of Kinetics400 ([#503](https://github.com/open-mmlab/mmaction2/pull/503)) +- Add lazy operation docs ([#504](https://github.com/open-mmlab/mmaction2/pull/504)) +- Add class_weight for CrossEntropyLoss and BCELossWithLogits ([#509](https://github.com/open-mmlab/mmaction2/pull/509)) +- add some explanation about the resampling in slowfast ([#502](https://github.com/open-mmlab/mmaction2/pull/502)) +- Modify paper title in README.md ([#512](https://github.com/open-mmlab/mmaction2/pull/512)) +- Add alternative ways to download Kinetics ([#521](https://github.com/open-mmlab/mmaction2/pull/521)) +- Add OpenMMLab projects link in README ([#530](https://github.com/open-mmlab/mmaction2/pull/530)) +- Change default preprocessing to shortedge to 256 ([#538](https://github.com/open-mmlab/mmaction2/pull/538)) +- Add config tag in dataset README ([#540](https://github.com/open-mmlab/mmaction2/pull/540)) +- Add solution for markdownlint installation issue ([#497](https://github.com/open-mmlab/mmaction2/pull/497)) +- Add dataset overview in readthedocs ([#548](https://github.com/open-mmlab/mmaction2/pull/548)) +- Modify the trigger mode of the warnings of missing mmdet ([#583](https://github.com/open-mmlab/mmaction2/pull/583)) +- Refactor config structure ([#488](https://github.com/open-mmlab/mmaction2/pull/488), [#572](https://github.com/open-mmlab/mmaction2/pull/572)) +- Refactor unittest structure ([#433](https://github.com/open-mmlab/mmaction2/pull/433)) + +**Bug and Typo Fixes** + +- Fix a bug about ava dataset validation ([#527](https://github.com/open-mmlab/mmaction2/pull/527)) +- Fix a bug about ResNet pretrain weight initialization ([#582](https://github.com/open-mmlab/mmaction2/pull/582)) +- Fix a bug in CI due to MMCV index ([#495](https://github.com/open-mmlab/mmaction2/pull/495)) +- Remove invalid links of MiT and MMiT ([#516](https://github.com/open-mmlab/mmaction2/pull/516)) +- Fix frame rate bug for AVA preparation ([#576](https://github.com/open-mmlab/mmaction2/pull/576)) + +**ModelZoo** + +### 0.10.0 (31/12/2020) + +**Highlights** + +- Support Spatio-Temporal Action Detection (AVA) +- Support precise BN + +**New Features** + +- Support precise BN ([#501](https://github.com/open-mmlab/mmaction2/pull/501/)) +- Support Spatio-Temporal Action Detection (AVA) ([#351](https://github.com/open-mmlab/mmaction2/pull/351)) +- Support to return feature maps in `inference_recognizer` ([#458](https://github.com/open-mmlab/mmaction2/pull/458)) + +**Improvements** + +- Add arg `stride` to long_video_demo.py, to make inference faster ([#468](https://github.com/open-mmlab/mmaction2/pull/468)) +- Support training and testing for Spatio-Temporal Action Detection ([#351](https://github.com/open-mmlab/mmaction2/pull/351)) +- Fix CI due to pip upgrade ([#454](https://github.com/open-mmlab/mmaction2/pull/454)) +- Add markdown lint in pre-commit hook ([#255](https://github.com/open-mmlab/mmaction2/pull/225)) +- Speed up confusion matrix calculation ([#465](https://github.com/open-mmlab/mmaction2/pull/465)) +- Use title case in modelzoo statistics ([#456](https://github.com/open-mmlab/mmaction2/pull/456)) +- Add FAQ documents for easy troubleshooting. ([#413](https://github.com/open-mmlab/mmaction2/pull/413), [#420](https://github.com/open-mmlab/mmaction2/pull/420), [#439](https://github.com/open-mmlab/mmaction2/pull/439)) +- Support Spatio-Temporal Action Detection with context ([#471](https://github.com/open-mmlab/mmaction2/pull/471)) +- Add class weight for CrossEntropyLoss and BCELossWithLogits ([#509](https://github.com/open-mmlab/mmaction2/pull/509)) +- Add Lazy OPs docs ([#504](https://github.com/open-mmlab/mmaction2/pull/504)) + +**Bug and Typo Fixes** + +- Fix typo in default argument of BaseHead ([#446](https://github.com/open-mmlab/mmaction2/pull/446)) +- Fix potential bug about `output_config` overwrite ([#463](https://github.com/open-mmlab/mmaction2/pull/463)) + +**ModelZoo** + +- Add SlowOnly, SlowFast for AVA2.1 ([#351](https://github.com/open-mmlab/mmaction2/pull/351)) + +### 0.9.0 (30/11/2020) + +**Highlights** + +- Support GradCAM utils for recognizers +- Support ResNet Audio model + +**New Features** + +- Automatically add modelzoo statistics to readthedocs ([#327](https://github.com/open-mmlab/mmaction2/pull/327)) +- Support GYM99 ([#331](https://github.com/open-mmlab/mmaction2/pull/331), [#336](https://github.com/open-mmlab/mmaction2/pull/336)) +- Add AudioOnly Pathway from AVSlowFast. ([#355](https://github.com/open-mmlab/mmaction2/pull/355)) +- Add GradCAM utils for recognizer ([#324](https://github.com/open-mmlab/mmaction2/pull/324)) +- Add print config script ([#345](https://github.com/open-mmlab/mmaction2/pull/345)) +- Add online motion vector decoder ([#291](https://github.com/open-mmlab/mmaction2/pull/291)) + +**Improvements** + +- Support PyTorch 1.7 in CI ([#312](https://github.com/open-mmlab/mmaction2/pull/312)) +- Support to predict different labels in a long video ([#274](https://github.com/open-mmlab/mmaction2/pull/274)) +- Update docs bout test crops ([#359](https://github.com/open-mmlab/mmaction2/pull/359)) +- Polish code format using pylint manually ([#338](https://github.com/open-mmlab/mmaction2/pull/338)) +- Update unittest coverage ([#358](https://github.com/open-mmlab/mmaction2/pull/358), [#322](https://github.com/open-mmlab/mmaction2/pull/322), [#325](https://github.com/open-mmlab/mmaction2/pull/325)) +- Add random seed for building filelists ([#323](https://github.com/open-mmlab/mmaction2/pull/323)) +- Update colab tutorial ([#367](https://github.com/open-mmlab/mmaction2/pull/367)) +- set default batch_size of evaluation and testing to 1 ([#250](https://github.com/open-mmlab/mmaction2/pull/250)) +- Rename the preparation docs to `README.md` ([#388](https://github.com/open-mmlab/mmaction2/pull/388)) +- Move docs about demo to `demo/README.md` ([#329](https://github.com/open-mmlab/mmaction2/pull/329)) +- Remove redundant code in `tools/test.py` ([#310](https://github.com/open-mmlab/mmaction2/pull/310)) +- Automatically calculate number of test clips for Recognizer2D ([#359](https://github.com/open-mmlab/mmaction2/pull/359)) + +**Bug and Typo Fixes** + +- Fix rename Kinetics classnames bug ([#384](https://github.com/open-mmlab/mmaction2/pull/384)) +- Fix a bug in BaseDataset when `data_prefix` is None ([#314](https://github.com/open-mmlab/mmaction2/pull/314)) +- Fix a bug about `tmp_folder` in `OpenCVInit` ([#357](https://github.com/open-mmlab/mmaction2/pull/357)) +- Fix `get_thread_id` when not using disk as backend ([#354](https://github.com/open-mmlab/mmaction2/pull/354), [#357](https://github.com/open-mmlab/mmaction2/pull/357)) +- Fix the bug of HVU object `num_classes` from 1679 to 1678 ([#307](https://github.com/open-mmlab/mmaction2/pull/307)) +- Fix typo in `export_model.md` ([#399](https://github.com/open-mmlab/mmaction2/pull/399)) +- Fix OmniSource training configs ([#321](https://github.com/open-mmlab/mmaction2/pull/321)) +- Fix Issue #306: Bug of SampleAVAFrames ([#317](https://github.com/open-mmlab/mmaction2/pull/317)) + +**ModelZoo** + +- Add SlowOnly model for GYM99, both RGB and Flow ([#336](https://github.com/open-mmlab/mmaction2/pull/336)) +- Add auto modelzoo statistics in readthedocs ([#327](https://github.com/open-mmlab/mmaction2/pull/327)) +- Add TSN for HMDB51 pretrained on Kinetics400, Moments in Time and ImageNet. ([#372](https://github.com/open-mmlab/mmaction2/pull/372)) + +### v0.8.0 (31/10/2020) + +**Highlights** + +- Support [OmniSource](https://arxiv.org/abs/2003.13042) +- Support C3D +- Support video recognition with audio modality +- Support HVU +- Support X3D + +**New Features** + +- Support AVA dataset preparation ([#266](https://github.com/open-mmlab/mmaction2/pull/266)) +- Support the training of video recognition dataset with multiple tag categories ([#235](https://github.com/open-mmlab/mmaction2/pull/235)) +- Support joint training with multiple training datasets of multiple formats, including images, untrimmed videos, etc. ([#242](https://github.com/open-mmlab/mmaction2/pull/242)) +- Support to specify a start epoch to conduct evaluation ([#216](https://github.com/open-mmlab/mmaction2/pull/216)) +- Implement X3D models, support testing with model weights converted from SlowFast ([#288](https://github.com/open-mmlab/mmaction2/pull/288)) +- Support specify a start epoch to conduct evaluation ([#216](https://github.com/open-mmlab/mmaction2/pull/216)) + +**Improvements** + +- Set default values of 'average_clips' in each config file so that there is no need to set it explicitly during testing in most cases ([#232](https://github.com/open-mmlab/mmaction2/pull/232)) +- Extend HVU datatools to generate individual file list for each tag category ([#258](https://github.com/open-mmlab/mmaction2/pull/258)) +- Support data preparation for Kinetics-600 and Kinetics-700 ([#254](https://github.com/open-mmlab/mmaction2/pull/254)) +- Use `metric_dict` to replace hardcoded arguments in `evaluate` function ([#286](https://github.com/open-mmlab/mmaction2/pull/286)) +- Add `cfg-options` in arguments to override some settings in the used config for convenience ([#212](https://github.com/open-mmlab/mmaction2/pull/212)) +- Rename the old evaluating protocol `mean_average_precision` as `mmit_mean_average_precision` since it is only used on MMIT and is not the `mAP` we usually talk about. Add `mean_average_precision`, which is the real `mAP` ([#235](https://github.com/open-mmlab/mmaction2/pull/235)) +- Add accurate setting (Three crop * 2 clip) and report corresponding performance for TSM model ([#241](https://github.com/open-mmlab/mmaction2/pull/241)) +- Add citations in each preparing_dataset.md in `tools/data/dataset` ([#289](https://github.com/open-mmlab/mmaction2/pull/289)) +- Update the performance of audio-visual fusion on Kinetics-400 ([#281](https://github.com/open-mmlab/mmaction2/pull/281)) +- Support data preparation of OmniSource web datasets, including GoogleImage, InsImage, InsVideo and KineticsRawVideo ([#294](https://github.com/open-mmlab/mmaction2/pull/294)) +- Use `metric_options` dict to provide metric args in `evaluate` ([#286](https://github.com/open-mmlab/mmaction2/pull/286)) + +**Bug Fixes** + +- Register `FrameSelector` in `PIPELINES` ([#268](https://github.com/open-mmlab/mmaction2/pull/268)) +- Fix the potential bug for default value in dataset_setting ([#245](https://github.com/open-mmlab/mmaction2/pull/245)) +- Fix multi-node dist test ([#292](https://github.com/open-mmlab/mmaction2/pull/292)) +- Fix the data preparation bug for `something-something` dataset ([#278](https://github.com/open-mmlab/mmaction2/pull/278)) +- Fix the invalid config url in slowonly README data benchmark ([#249](https://github.com/open-mmlab/mmaction2/pull/249)) +- Validate that the performance of models trained with videos have no significant difference comparing to the performance of models trained with rawframes ([#256](https://github.com/open-mmlab/mmaction2/pull/256)) +- Correct the `img_norm_cfg` used by TSN-3seg-R50 UCF-101 model, improve the Top-1 accuracy by 3% ([#273](https://github.com/open-mmlab/mmaction2/pull/273)) + +**ModelZoo** + +- Add Baselines for Kinetics-600 and Kinetics-700, including TSN-R50-8seg and SlowOnly-R50-8x8 ([#259](https://github.com/open-mmlab/mmaction2/pull/259)) +- Add OmniSource benchmark on MiniKineitcs ([#296](https://github.com/open-mmlab/mmaction2/pull/296)) +- Add Baselines for HVU, including TSN-R18-8seg on 6 tag categories of HVU ([#287](https://github.com/open-mmlab/mmaction2/pull/287)) +- Add X3D models ported from [SlowFast](https://github.com/facebookresearch/SlowFast/) ([#288](https://github.com/open-mmlab/mmaction2/pull/288)) + +### v0.7.0 (30/9/2020) + +**Highlights** + +- Support TPN +- Support JHMDB, UCF101-24, HVU dataset preparation +- support onnx model conversion + +**New Features** + +- Support the data pre-processing pipeline for the HVU Dataset ([#277](https://github.com/open-mmlab/mmaction2/pull/227/)) +- Support real-time action recognition from web camera ([#171](https://github.com/open-mmlab/mmaction2/pull/171)) +- Support onnx ([#160](https://github.com/open-mmlab/mmaction2/pull/160)) +- Support UCF101-24 preparation ([#219](https://github.com/open-mmlab/mmaction2/pull/219)) +- Support evaluating mAP for ActivityNet with [CUHK17_activitynet_pred](http://activity-net.org/challenges/2017/evaluation.html) ([#176](https://github.com/open-mmlab/mmaction2/pull/176)) +- Add the data pipeline for ActivityNet, including downloading videos, extracting RGB and Flow frames, finetuning TSN and extracting feature ([#190](https://github.com/open-mmlab/mmaction2/pull/190)) +- Support JHMDB preparation ([#220](https://github.com/open-mmlab/mmaction2/pull/220)) + +**ModelZoo** + +- Add finetuning setting for SlowOnly ([#173](https://github.com/open-mmlab/mmaction2/pull/173)) +- Add TSN and SlowOnly models trained with [OmniSource](https://arxiv.org/abs/2003.13042), which achieve 75.7% Top-1 with TSN-R50-3seg and 80.4% Top-1 with SlowOnly-R101-8x8 ([#215](https://github.com/open-mmlab/mmaction2/pull/215)) + +**Improvements** + +- Support demo with video url ([#165](https://github.com/open-mmlab/mmaction2/pull/165)) +- Support multi-batch when testing ([#184](https://github.com/open-mmlab/mmaction2/pull/184)) +- Add tutorial for adding a new learning rate updater ([#181](https://github.com/open-mmlab/mmaction2/pull/181)) +- Add config name in meta info ([#183](https://github.com/open-mmlab/mmaction2/pull/183)) +- Remove git hash in `__version__` ([#189](https://github.com/open-mmlab/mmaction2/pull/189)) +- Check mmcv version ([#189](https://github.com/open-mmlab/mmaction2/pull/189)) +- Update url with 'https://download.openmmlab.com' ([#208](https://github.com/open-mmlab/mmaction2/pull/208)) +- Update Docker file to support PyTorch 1.6 and update `install.md` ([#209](https://github.com/open-mmlab/mmaction2/pull/209)) +- Polish readsthedocs display ([#217](https://github.com/open-mmlab/mmaction2/pull/217), [#229](https://github.com/open-mmlab/mmaction2/pull/229)) + +**Bug Fixes** + +- Fix the bug when using OpenCV to extract only RGB frames with original shape ([#184](https://github.com/open-mmlab/mmaction2/pull/187)) +- Fix the bug of sthv2 `num_classes` from 339 to 174 ([#174](https://github.com/open-mmlab/mmaction2/pull/174), [#207](https://github.com/open-mmlab/mmaction2/pull/207)) + +### v0.6.0 (2/9/2020) + +**Highlights** + +- Support TIN, CSN, SSN, NonLocal +- Support FP16 training + +**New Features** + +- Support NonLocal module and provide ckpt in TSM and I3D ([#41](https://github.com/open-mmlab/mmaction2/pull/41)) +- Support SSN ([#33](https://github.com/open-mmlab/mmaction2/pull/33), [#37](https://github.com/open-mmlab/mmaction2/pull/37), [#52](https://github.com/open-mmlab/mmaction2/pull/52), [#55](https://github.com/open-mmlab/mmaction2/pull/55)) +- Support CSN ([#87](https://github.com/open-mmlab/mmaction2/pull/87)) +- Support TIN ([#53](https://github.com/open-mmlab/mmaction2/pull/53)) +- Support HMDB51 dataset preparation ([#60](https://github.com/open-mmlab/mmaction2/pull/60)) +- Support encoding videos from frames ([#84](https://github.com/open-mmlab/mmaction2/pull/84)) +- Support FP16 training ([#25](https://github.com/open-mmlab/mmaction2/pull/25)) +- Enhance demo by supporting rawframe inference ([#59](https://github.com/open-mmlab/mmaction2/pull/59)), output video/gif ([#72](https://github.com/open-mmlab/mmaction2/pull/72)) + +**ModelZoo** + +- Update Slowfast modelzoo ([#51](https://github.com/open-mmlab/mmaction2/pull/51)) +- Update TSN, TSM video checkpoints ([#50](https://github.com/open-mmlab/mmaction2/pull/50)) +- Add data benchmark for TSN ([#57](https://github.com/open-mmlab/mmaction2/pull/57)) +- Add data benchmark for SlowOnly ([#77](https://github.com/open-mmlab/mmaction2/pull/77)) +- Add BSN/BMN performance results with feature extracted by our codebase ([#99](https://github.com/open-mmlab/mmaction2/pull/99)) + +**Improvements** + +- Polish data preparation codes ([#70](https://github.com/open-mmlab/mmaction2/pull/70)) +- Improve data preparation scripts ([#58](https://github.com/open-mmlab/mmaction2/pull/58)) +- Improve unittest coverage and minor fix ([#62](https://github.com/open-mmlab/mmaction2/pull/62)) +- Support PyTorch 1.6 in CI ([#117](https://github.com/open-mmlab/mmaction2/pull/117)) +- Support `with_offset` for rawframe dataset ([#48](https://github.com/open-mmlab/mmaction2/pull/48)) +- Support json annotation files ([#119](https://github.com/open-mmlab/mmaction2/pull/119)) +- Support `multi-class` in TSMHead ([#104](https://github.com/open-mmlab/mmaction2/pull/104)) +- Support using `val_step()` to validate data for each `val` workflow ([#123](https://github.com/open-mmlab/mmaction2/pull/123)) +- Use `xxInit()` method to get `total_frames` and make `total_frames` a required key ([#90](https://github.com/open-mmlab/mmaction2/pull/90)) +- Add paper introduction in model readme ([#140](https://github.com/open-mmlab/mmaction2/pull/140)) +- Adjust the directory structure of `tools/` and rename some scripts files ([#142](https://github.com/open-mmlab/mmaction2/pull/142)) + +**Bug Fixes** + +- Fix configs for localization test ([#67](https://github.com/open-mmlab/mmaction2/pull/67)) +- Fix configs of SlowOnly by fixing lr to 8 gpus ([#136](https://github.com/open-mmlab/mmaction2/pull/136)) +- Fix the bug in analyze_log ([#54](https://github.com/open-mmlab/mmaction2/pull/54)) +- Fix the bug of generating HMDB51 class index file ([#69](https://github.com/open-mmlab/mmaction2/pull/69)) +- Fix the bug of using `load_checkpoint()` in ResNet ([#93](https://github.com/open-mmlab/mmaction2/pull/93)) +- Fix the bug of `--work-dir` when using slurm training script ([#110](https://github.com/open-mmlab/mmaction2/pull/110)) +- Correct the sthv1/sthv2 rawframes filelist generate command ([#71](https://github.com/open-mmlab/mmaction2/pull/71)) +- `CosineAnnealing` typo ([#47](https://github.com/open-mmlab/mmaction2/pull/47)) + +### v0.5.0 (9/7/2020) + +**Highlights** + +- MMAction2 is released + +**New Features** + +- Support various datasets: UCF101, Kinetics-400, Something-Something V1&V2, Moments in Time, + Multi-Moments in Time, THUMOS14 +- Support various action recognition methods: TSN, TSM, R(2+1)D, I3D, SlowOnly, SlowFast, Non-local +- Support various action localization methods: BSN, BMN +- Colab demo for action recognition diff --git a/openmmlab_test/mmaction2-0.24.1/docs/conf.py b/openmmlab_test/mmaction2-0.24.1/docs/conf.py new file mode 100644 index 00000000..049b1065 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/conf.py @@ -0,0 +1,136 @@ +# Copyright (c) OpenMMLab. All rights reserved. +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import subprocess +import sys + +import pytorch_sphinx_theme + +sys.path.insert(0, os.path.abspath('..')) + +# -- Project information ----------------------------------------------------- + +project = 'MMAction2' +copyright = '2020, OpenMMLab' +author = 'MMAction2 Authors' +version_file = '../mmaction/version.py' + + +def get_version(): + with open(version_file, 'r') as f: + exec(compile(f.read(), version_file, 'exec')) + return locals()['__version__'] + + +# The full version, including alpha/beta/rc tags +release = get_version() + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'sphinx.ext.viewcode', + 'sphinx_markdown_tables', 'sphinx_copybutton', 'myst_parser' +] + +# numpy and torch are required +autodoc_mock_imports = ['mmaction.version', 'PIL'] + +copybutton_prompt_text = r'>>> |\.\.\. ' +copybutton_prompt_is_regexp = True + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# -- Options for HTML output ------------------------------------------------- +source_suffix = {'.rst': 'restructuredtext', '.md': 'markdown'} + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'pytorch_sphinx_theme' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". + +html_theme_path = [pytorch_sphinx_theme.get_html_theme_path()] +html_theme_options = { + # 'logo_url': 'https://mmaction2.readthedocs.io/en/latest/', + 'menu': [ + { + 'name': + 'Tutorial', + 'url': + 'https://colab.research.google.com/github/' + 'open-mmlab/mmaction2/blob/master/demo/mmaction2_tutorial.ipynb' + }, + { + 'name': 'GitHub', + 'url': 'https://github.com/open-mmlab/mmaction2' + }, + { + 'name': + 'Upstream', + 'children': [ + { + 'name': 'MMCV', + 'url': 'https://github.com/open-mmlab/mmcv', + 'description': 'Foundational library for computer vision' + }, + { + 'name': + 'MMClassification', + 'url': + 'https://github.com/open-mmlab/mmclassification', + 'description': + 'Open source image classification toolbox based on PyTorch' + }, + { + 'name': 'MMDetection', + 'url': 'https://github.com/open-mmlab/mmdetection', + 'description': 'Object detection toolbox and benchmark' + }, + ] + }, + ], + # Specify the language of shared menu + 'menu_lang': + 'en' +} + +language = 'en' +master_doc = 'index' + +html_static_path = ['_static'] +html_css_files = ['css/readthedocs.css'] + +myst_enable_extensions = ['colon_fence'] +myst_heading_anchors = 3 + + +def builder_inited_handler(app): + subprocess.run(['./merge_docs.sh']) + subprocess.run(['./stat.py']) + + +def setup(app): + app.connect('builder-inited', builder_inited_handler) diff --git a/openmmlab_test/mmaction2-0.24.1/docs/data_preparation.md b/openmmlab_test/mmaction2-0.24.1/docs/data_preparation.md new file mode 100644 index 00000000..84788dcf --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/data_preparation.md @@ -0,0 +1,154 @@ +# Data Preparation + +We provide some tips for MMAction2 data preparation in this file. + + + +- [Notes on Video Data Format](#notes-on-video-data-format) +- [Getting Data](#getting-data) + - [Prepare videos](#prepare-videos) + - [Extract frames](#extract-frames) + - [Alternative to denseflow](#alternative-to-denseflow) + - [Generate file list](#generate-file-list) + - [Prepare audio](#prepare-audio) + + + +## Notes on Video Data Format + +MMAction2 supports two types of data format: raw frames and video. The former is widely used in previous projects such as [TSN](https://github.com/yjxiong/temporal-segment-networks). +This is fast when SSD is available but fails to scale to the fast-growing datasets. +(For example, the newest edition of [Kinetics](https://deepmind.com/research/open-source/open-source-datasets/kinetics/) has 650K videos and the total frames will take up several TBs.) +The latter saves much space but has to do the computation intensive video decoding at execution time. +To make video decoding faster, we support several efficient video loading libraries, such as [decord](https://github.com/zhreshold/decord), [PyAV](https://github.com/PyAV-Org/PyAV), etc. + +## Getting Data + +The following guide is helpful when you want to experiment with custom dataset. +Similar to the datasets stated above, it is recommended organizing in `$MMACTION2/data/$DATASET`. + +### Prepare videos + +Please refer to the official website and/or the official script to prepare the videos. +Note that the videos should be arranged in either + +(1). A two-level directory organized by `${CLASS_NAME}/${VIDEO_ID}`, which is recommended to be used for action recognition datasets (such as UCF101 and Kinetics) + +(2). A single-level directory, which is recommended to be used for action detection datasets or those with multiple annotations per video (such as THUMOS14). + +### Extract frames + +To extract both frames and optical flow, you can use the tool [denseflow](https://github.com/open-mmlab/denseflow) we wrote. +Since different frame extraction tools produce different number of frames, +it is beneficial to use the same tool to do both frame extraction and the flow computation, to avoid mismatching of frame counts. + +```shell +python build_rawframes.py ${SRC_FOLDER} ${OUT_FOLDER} [--task ${TASK}] [--level ${LEVEL}] \ + [--num-worker ${NUM_WORKER}] [--flow-type ${FLOW_TYPE}] [--out-format ${OUT_FORMAT}] \ + [--ext ${EXT}] [--new-width ${NEW_WIDTH}] [--new-height ${NEW_HEIGHT}] [--new-short ${NEW_SHORT}] \ + [--resume] [--use-opencv] [--mixed-ext] +``` + +- `SRC_FOLDER`: Folder of the original video. +- `OUT_FOLDER`: Root folder where the extracted frames and optical flow store. +- `TASK`: Extraction task indicating which kind of frames to extract. Allowed choices are `rgb`, `flow`, `both`. +- `LEVEL`: Directory level. 1 for the single-level directory or 2 for the two-level directory. +- `NUM_WORKER`: Number of workers to build rawframes. +- `FLOW_TYPE`: Flow type to extract, e.g., `None`, `tvl1`, `warp_tvl1`, `farn`, `brox`. +- `OUT_FORMAT`: Output format for extracted frames, e.g., `jpg`, `h5`, `png`. +- `EXT`: Video file extension, e.g., `avi`, `mp4`. +- `NEW_WIDTH`: Resized image width of output. +- `NEW_HEIGHT`: Resized image height of output. +- `NEW_SHORT`: Resized image short side length keeping ratio. +- `--resume`: Whether to resume optical flow extraction instead of overwriting. +- `--use-opencv`: Whether to use OpenCV to extract rgb frames. +- `--mixed-ext`: Indicate whether process video files with mixed extensions. + +The recommended practice is + +1. set `$OUT_FOLDER` to be a folder located in SSD. +2. symlink the link `$OUT_FOLDER` to `$MMACTION2/data/$DATASET/rawframes`. +3. set `new-short` instead of using `new-width` and `new-height`. + +```shell +ln -s ${YOUR_FOLDER} $MMACTION2/data/$DATASET/rawframes +``` + +#### Alternative to denseflow + +In case your device doesn't fulfill the installation requirement of [denseflow](https://github.com/open-mmlab/denseflow)(like Nvidia driver version), or you just want to see some quick demos about flow extraction, we provide a python script `tools/misc/flow_extraction.py` as an alternative to denseflow. You can use it for rgb frames and optical flow extraction from one or several videos. Note that the speed of the script is much slower than denseflow, since it runs optical flow algorithms on CPU. + +```shell +python tools/misc/flow_extraction.py --input ${INPUT} [--prefix ${PREFIX}] [--dest ${DEST}] [--rgb-tmpl ${RGB_TMPL}] \ + [--flow-tmpl ${FLOW_TMPL}] [--start-idx ${START_IDX}] [--method ${METHOD}] [--bound ${BOUND}] [--save-rgb] +``` + +- `INPUT`: Videos for frame extraction, can be single video or a video list, the video list should be a txt file and just consists of filenames without directories. +- `PREFIX`: The prefix of input videos, used when input is a video list. +- `DEST`: The destination to save extracted frames. +- `RGB_TMPL`: The template filename of rgb frames. +- `FLOW_TMPL`: The template filename of flow frames. +- `START_IDX`: The start index of extracted frames. +- `METHOD`: The method used to generate flow. +- `BOUND`: The maximum of optical flow. +- `SAVE_RGB`: Also save extracted rgb frames. + +### Generate file list + +We provide a convenient script to generate annotation file list. You can use the following command to generate file lists given extracted frames / downloaded videos. + +```shell +cd $MMACTION2 +python tools/data/build_file_list.py ${DATASET} ${SRC_FOLDER} [--rgb-prefix ${RGB_PREFIX}] \ + [--flow-x-prefix ${FLOW_X_PREFIX}] [--flow-y-prefix ${FLOW_Y_PREFIX}] [--num-split ${NUM_SPLIT}] \ + [--subset ${SUBSET}] [--level ${LEVEL}] [--format ${FORMAT}] [--out-root-path ${OUT_ROOT_PATH}] \ + [--seed ${SEED}] [--shuffle] +``` + +- `DATASET`: Dataset to be prepared, e.g., `ucf101`, `kinetics400`, `thumos14`, `sthv1`, `sthv2`, etc. +- `SRC_FOLDER`: Folder of the corresponding data format: + - "$MMACTION2/data/$DATASET/rawframes" if `--format rawframes`. + - "$MMACTION2/data/$DATASET/videos" if `--format videos`. +- `RGB_PREFIX`: Name prefix of rgb frames. +- `FLOW_X_PREFIX`: Name prefix of x flow frames. +- `FLOW_Y_PREFIX`: Name prefix of y flow frames. +- `NUM_SPLIT`: Number of split to file list. +- `SUBSET`: Subset to generate file list. Allowed choice are `train`, `val`, `test`. +- `LEVEL`: Directory level. 1 for the single-level directory or 2 for the two-level directory. +- `FORMAT`: Source data format to generate file list. Allowed choices are `rawframes`, `videos`. +- `OUT_ROOT_PATH`: Root path for output +- `SEED`: Random seed. +- `--shuffle`: Whether to shuffle the file list. + +Now, you can go to [getting_started.md](getting_started.md) to train and test the model. + +### Prepare audio + +We also provide a simple script for audio waveform extraction and mel-spectrogram generation. + +```shell +cd $MMACTION2 +python tools/data/extract_audio.py ${ROOT} ${DST_ROOT} [--ext ${EXT}] [--num-workers ${N_WORKERS}] \ + [--level ${LEVEL}] +``` + +- `ROOT`: The root directory of the videos. +- `DST_ROOT`: The destination root directory of the audios. +- `EXT`: Extension of the video files. e.g., `mp4`. +- `N_WORKERS`: Number of processes to be used. + +After extracting audios, you are free to decode and generate the spectrogram on-the-fly such as [this](/configs/recognition_audio/resnet/tsn_r50_64x1x1_100e_kinetics400_audio.py). As for the annotations, you can directly use those of the rawframes as long as you keep the relative position of audio files same as the rawframes directory. However, extracting spectrogram on-the-fly is slow and bad for prototype iteration. Therefore, we also provide a script (and many useful tools to play with) for you to generation spectrogram off-line. + +```shell +cd $MMACTION2 +python tools/data/build_audio_features.py ${AUDIO_HOME_PATH} ${SPECTROGRAM_SAVE_PATH} [--level ${LEVEL}] \ + [--ext $EXT] [--num-workers $N_WORKERS] [--part $PART] +``` + +- `AUDIO_HOME_PATH`: The root directory of the audio files. +- `SPECTROGRAM_SAVE_PATH`: The destination root directory of the audio features. +- `EXT`: Extension of the audio files. e.g., `m4a`. +- `N_WORKERS`: Number of processes to be used. +- `PART`: Determines how many parts to be splited and which part to run. e.g., `2/5` means splitting all files into 5-fold and executing the 2nd part. This is useful if you have several machines. + +The annotations for audio spectrogram features are identical to those of rawframes. You can simply make a copy of `dataset_[train/val]_list_rawframes.txt` and rename it as `dataset_[train/val]_list_audio_feature.txt` diff --git a/openmmlab_test/mmaction2-0.24.1/docs/faq.md b/openmmlab_test/mmaction2-0.24.1/docs/faq.md new file mode 100644 index 00000000..7ec9727a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/faq.md @@ -0,0 +1,132 @@ +# FAQ + +## Outline + +We list some common issues faced by many users and their corresponding solutions here. + +- [Installation](#installation) +- [Data](#data) +- [Training](#training) +- [Testing](#testing) +- [Deploying](#deploying) + +Feel free to enrich the list if you find any frequent issues and have ways to help others to solve them. +If the contents here do not cover your issue, please create an issue using the [provided templates](/.github/ISSUE_TEMPLATE/error-report.md) and make sure you fill in all required information in the template. + +## Installation + +- **"No module named 'mmcv.ops'"; "No module named 'mmcv.\_ext'"** + + 1. Uninstall existing mmcv in the environment using `pip uninstall mmcv` + 2. Install mmcv-full following the [installation instruction](https://mmcv.readthedocs.io/en/latest/#installation) + +- **"OSError: MoviePy Error: creation of None failed because of the following error"** + + Refer to [install.md](https://github.com/open-mmlab/mmaction2/blob/master/docs/install.md#requirements) + + 1. For Windows users, [ImageMagick](https://www.imagemagick.org/script/index.php) will not be automatically detected by MoviePy, there is a need to modify `moviepy/config_defaults.py` file by providing the path to the ImageMagick binary called `magick`, like `IMAGEMAGICK_BINARY = "C:\\Program Files\\ImageMagick_VERSION\\magick.exe"` + 2. For Linux users, there is a need to modify the `/etc/ImageMagick-6/policy.xml` file by commenting out `` to ``, if ImageMagick is not detected by moviepy. + +- **"Why I got the error message 'Please install XXCODEBASE to use XXX' even if I have already installed XXCODEBASE?"** + + You got that error message because our project failed to import a function or a class from XXCODEBASE. You can try to run the corresponding line to see what happens. One possible reason is, for some codebases in OpenMMLAB, you need to install mmcv-full before you install them. + +## Data + +- **FileNotFound like `No such file or directory: xxx/xxx/img_00300.jpg`** + + In our repo, we set `start_index=1` as default value for rawframe dataset, and `start_index=0` as default value for video dataset. + If users encounter FileNotFound error for the first or last frame of the data, there is a need to check the files begin with offset 0 or 1, + that is `xxx_00000.jpg` or `xxx_00001.jpg`, and then change the `start_index` value of data pipeline in configs. + +- **How should we preprocess the videos in the dataset? Resizing them to a fix size(all videos with the same height-width ratio) like `340x256`(1) or resizing them so that the short edges of all videos are of the same length (256px or 320px)** + + We have tried both preprocessing approaches and found (2) is a better solution in general, so we use (2) with short edge length 256px as the default preprocessing setting. We benchmarked these preprocessing approaches and you may find the results in [TSN Data Benchmark](https://github.com/open-mmlab/mmaction2/tree/master/configs/recognition/tsn) and [SlowOnly Data Benchmark](https://github.com/open-mmlab/mmaction2/tree/master/configs/recognition/tsn). + +- **Mismatched data pipeline items lead to errors like `KeyError: 'total_frames'`** + + We have both pipeline for processing videos and frames. + + **For videos**, We should decode them on the fly in the pipeline, so pairs like `DecordInit & DecordDecode`, `OpenCVInit & OpenCVDecode`, `PyAVInit & PyAVDecode` should be used for this case like [this example](https://github.com/open-mmlab/mmaction2/blob/023777cfd26bb175f85d78c455f6869673e0aa09/configs/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb.py#L47-L49). + + **For Frames**, the image has been decoded offline, so pipeline item `RawFrameDecode` should be used for this case like [this example](https://github.com/open-mmlab/mmaction2/blob/023777cfd26bb175f85d78c455f6869673e0aa09/configs/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb.py#L49). + + `KeyError: 'total_frames'` is caused by incorrectly using `RawFrameDecode` step for videos, since when the input is a video, it can not get the `total_frame` beforehand. + +## Training + +- **How to just use trained recognizer models for backbone pre-training?** + + Refer to [Use Pre-Trained Model](https://github.com/open-mmlab/mmaction2/blob/master/docs/tutorials/2_finetune.md#use-pre-trained-model), + in order to use the pre-trained model for the whole network, the new config adds the link of pre-trained models in the `load_from`. + + And to use backbone for pre-training, you can change `pretrained` value in the backbone dict of config files to the checkpoint path / url. + When training, the unexpected keys will be ignored. + +- **How to visualize the training accuracy/loss curves in real-time?** + + Use `TensorboardLoggerHook` in `log_config` like + + ```python + log_config=dict(interval=20, hooks=[dict(type='TensorboardLoggerHook')]) + ``` + + You can refer to [tutorials/1_config.md](tutorials/1_config.md), [tutorials/7_customize_runtime.md](tutorials/7_customize_runtime.md#log-config), and [this](https://github.com/open-mmlab/mmaction2/blob/master/configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py#L118). + +- **In batchnorm.py: Expected more than 1 value per channel when training** + + To use batchnorm, the batch_size should be larger than 1. If `drop_last` is set as False when building dataloaders, sometimes the last batch of an epoch will have `batch_size==1` (what a coincidence ...) and training will throw out this error. You can set `drop_last` as True to avoid this error: + + ```python + train_dataloader=dict(drop_last=True) + ``` + +- **How to fix stages of backbone when finetuning a model?** + + You can refer to [`def _freeze_stages()`](https://github.com/open-mmlab/mmaction2/blob/0149a0e8c1e0380955db61680c0006626fd008e9/mmaction/models/backbones/x3d.py#L458) and [`frozen_stages`](https://github.com/open-mmlab/mmaction2/blob/0149a0e8c1e0380955db61680c0006626fd008e9/mmaction/models/backbones/x3d.py#L183-L184), + reminding to set `find_unused_parameters = True` in config files for distributed training or testing. + + Actually, users can set `frozen_stages` to freeze stages in backbones except C3D model, since all backbones inheriting from `ResNet` and `ResNet3D` support the inner function `_freeze_stages()`. + +- **How to set memcached setting in config files?** + + In MMAction2, you can pass memcached kwargs to `class DecordInit` for video dataset or `RawFrameDecode` for rawframes dataset. + For more details, you can refer to [`class FileClient`](https://github.com/open-mmlab/mmcv/blob/master/mmcv/fileio/file_client.py) in MMCV for more details. + + Here is an example to use memcached for rawframes dataset: + + ```python + mc_cfg = dict(server_list_cfg='server_list_cfg', client_cfg='client_cfg', sys_path='sys_path') + + train_pipeline = [ + ... + dict(type='RawFrameDecode', io_backend='memcached', **mc_cfg), + ... + ] + ``` + +- **How to set `load_from` value in config files to finetune models?** + + In MMAction2, We set `load_from=None` as default in `configs/_base_/default_runtime.py` and owing to [inheritance design](/docs/tutorials/1_config.md), + users can directly change it by setting `load_from` in their configs. + +## Testing + +- **How to make predicted score normalized by softmax within \[0, 1\]?** + + change this in the config, make `model['test_cfg'] = dict(average_clips='prob')`. + +- **What if the model is too large and the GPU memory can not fit even only one testing sample?** + + By default, the 3d models are tested with 10clips x 3crops, which are 30 views in total. For extremely large models, the GPU memory can not fit even only one testing sample (cuz there are 30 views). To handle this, you can set `max_testing_views=n` in `model['test_cfg']` of the config file. If so, n views will be used as a batch during forwarding to save GPU memory used. + +- **How to show test results?** + + During testing, we can use the command `--out xxx.json/pkl/yaml` to output result files for checking. The testing output has exactly the same order as the test dataset. + Besides, we provide an analysis tool for evaluating a model using the output result files in [`tools/analysis/eval_metric.py`](/tools/analysis/eval_metric.py) + +## Deploying + +- **Why is the onnx model converted by mmaction2 throwing error when converting to other frameworks such as TensorRT?** + + For now, we can only make sure that models in mmaction2 are onnx-compatible. However, some operations in onnx may be unsupported by your target framework for deployment, e.g. TensorRT in [this issue](https://github.com/open-mmlab/mmaction2/issues/414). When such situation occurs, we suggest you raise an issue and ask the community to help as long as `pytorch2onnx.py` works well and is verified numerically. diff --git a/openmmlab_test/mmaction2-0.24.1/docs/feature_extraction.md b/openmmlab_test/mmaction2-0.24.1/docs/feature_extraction.md new file mode 100644 index 00000000..919fcc35 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/feature_extraction.md @@ -0,0 +1,70 @@ +# Feature Extraction + +We provide easy to use scripts for feature extraction. + +## Clip-level Feature Extraction + +Clip-level feature extraction extract deep feature from a video clip, which usually lasts several to tens of seconds. The extracted feature is an n-dim vector for each clip. When performing multi-view feature extraction, e.g. n clips x m crops, the extracted feature will be the average of the n * m views. + +Before applying clip-level feature extraction, you need to prepare a video list (which include all videos that you want to extract feature from). For example, the video list for videos in UCF101 will look like: + +``` +ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c01.avi +ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c02.avi +ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c03.avi +ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c04.avi +ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c05.avi +... +YoYo/v_YoYo_g25_c01.avi +YoYo/v_YoYo_g25_c02.avi +YoYo/v_YoYo_g25_c03.avi +YoYo/v_YoYo_g25_c04.avi +YoYo/v_YoYo_g25_c05.avi +``` + +Assume the root of UCF101 videos is `data/ucf101/videos` and the name of the video list is `ucf101.txt`, to extract clip-level feature of UCF101 videos with Kinetics-400 pretrained TSN, you can use the following script: + +```shell +python tools/misc/clip_feature_extraction.py \ +configs/recognition/tsn/tsn_r50_clip_feature_extraction_1x1x3_rgb.py \ +https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_320p_1x1x3_100e_kinetics400_rgb_20200702-cc665e2a.pth \ +--video-list ucf101.txt \ +--video-root data/ucf101/videos \ +--out ucf101_feature.pkl +``` + +and the extracted feature will be stored in `ucf101_feature.pkl` + +You can also use distributed clip-level feature extraction. Below is an example for a node with 8 gpus. + +```shell +bash tools/misc/dist_clip_feature_extraction.sh \ +configs/recognition/tsn/tsn_r50_clip_feature_extraction_1x1x3_rgb.py \ +https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_320p_1x1x3_100e_kinetics400_rgb_20200702-cc665e2a.pth \ +8 \ +--video-list ucf101.txt \ +--video-root data/ucf101/videos \ +--out ucf101_feature.pkl +``` + +To extract clip-level feature of UCF101 videos with Kinetics-400 pretrained SlowOnly, you can use the following script: + +```shell +python tools/misc/clip_feature_extraction.py \ +configs/recognition/slowonly/slowonly_r50_clip_feature_extraction_4x16x1_rgb.py \ +https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb_20201014-c9cdc656.pth \ +--video-list ucf101.txt \ +--video-root data/ucf101/videos \ +--out ucf101_feature.pkl +``` + +The two config files demonstrates what a minimal config file for feature extraction looks like. You can also use other existing config files for feature extraction, as long as they use videos rather than raw frames for training and testing: + +```shell +python tools/misc/clip_feature_extraction.py \ +configs/recognition/slowonly/slowonly_r50_video_4x16x1_256e_kinetics400_rgb.py \ +https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb_20201014-c9cdc656.pth \ +--video-list ucf101.txt \ +--video-root data/ucf101/videos \ +--out ucf101_feature.pkl +``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs/getting_started.md b/openmmlab_test/mmaction2-0.24.1/docs/getting_started.md new file mode 100644 index 00000000..9b492360 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/getting_started.md @@ -0,0 +1,468 @@ +# Getting Started + +This page provides basic tutorials about the usage of MMAction2. +For installation instructions, please see [install.md](install.md). + + + +- [Getting Started](#getting-started) + - [Datasets](#datasets) + - [Inference with Pre-Trained Models](#inference-with-pre-trained-models) + - [Test a dataset](#test-a-dataset) + - [High-level APIs for testing a video and rawframes](#high-level-apis-for-testing-a-video-and-rawframes) + - [Build a Model](#build-a-model) + - [Build a model with basic components](#build-a-model-with-basic-components) + - [Write a new model](#write-a-new-model) + - [Train a Model](#train-a-model) + - [Iteration pipeline](#iteration-pipeline) + - [Training setting](#training-setting) + - [Train with a single GPU](#train-with-a-single-gpu) + - [Train with multiple GPUs](#train-with-multiple-gpus) + - [Train with multiple machines](#train-with-multiple-machines) + - [Launch multiple jobs on a single machine](#launch-multiple-jobs-on-a-single-machine) + - [Tutorials](#tutorials) + + + +## Datasets + +It is recommended to symlink the dataset root to `$MMACTION2/data`. +If your folder structure is different, you may need to change the corresponding paths in config files. + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── kinetics400 +│ │ ├── rawframes_train +│ │ ├── rawframes_val +│ │ ├── kinetics_train_list.txt +│ │ ├── kinetics_val_list.txt +│ ├── ucf101 +│ │ ├── rawframes_train +│ │ ├── rawframes_val +│ │ ├── ucf101_train_list.txt +│ │ ├── ucf101_val_list.txt +│ ├── ... +``` + +For more information on data preparation, please see [data_preparation.md](data_preparation.md) + +For using custom datasets, please refer to [Tutorial 3: Adding New Dataset](tutorials/3_new_dataset.md) + +## Inference with Pre-Trained Models + +We provide testing scripts to evaluate a whole dataset (Kinetics-400, Something-Something V1&V2, (Multi-)Moments in Time, etc.), +and provide some high-level apis for easier integration to other projects. + +MMAction2 also supports testing with CPU. However, it will be **very slow** and should only be used for debugging on a device without GPU. +To test with CPU, one should first disable all GPUs (if exist) with `export CUDA_VISIBLE_DEVICES=-1`, and then call the testing scripts directly with `python tools/test.py {OTHER_ARGS}`. + +### Test a dataset + +- [x] single GPU +- [x] single node multiple GPUs +- [x] multiple node + +You can use the following commands to test a dataset. + +```shell +# single-gpu testing +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] \ + [--gpu-collect] [--tmpdir ${TMPDIR}] [--options ${OPTIONS}] [--average-clips ${AVG_TYPE}] \ + [--launcher ${JOB_LAUNCHER}] [--local_rank ${LOCAL_RANK}] [--onnx] [--tensorrt] + +# multi-gpu testing +./tools/dist_test.sh ${CONFIG_FILE} ${CHECKPOINT_FILE} ${GPU_NUM} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] \ + [--gpu-collect] [--tmpdir ${TMPDIR}] [--options ${OPTIONS}] [--average-clips ${AVG_TYPE}] \ + [--launcher ${JOB_LAUNCHER}] [--local_rank ${LOCAL_RANK}] +``` + +Optional arguments: + +- `RESULT_FILE`: Filename of the output results. If not specified, the results will not be saved to a file. +- `EVAL_METRICS`: Items to be evaluated on the results. Allowed values depend on the dataset, e.g., `top_k_accuracy`, `mean_class_accuracy` are available for all datasets in recognition, `mmit_mean_average_precision` for Multi-Moments in Time, `mean_average_precision` for Multi-Moments in Time and HVU single category. `AR@AN` for ActivityNet, etc. +- `--gpu-collect`: If specified, recognition results will be collected using gpu communication. Otherwise, it will save the results on different gpus to `TMPDIR` and collect them by the rank 0 worker. +- `TMPDIR`: Temporary directory used for collecting results from multiple workers, available when `--gpu-collect` is not specified. +- `OPTIONS`: Custom options used for evaluation. Allowed values depend on the arguments of the `evaluate` function in dataset. +- `AVG_TYPE`: Items to average the test clips. If set to `prob`, it will apply softmax before averaging the clip scores. Otherwise, it will directly average the clip scores. +- `JOB_LAUNCHER`: Items for distributed job initialization launcher. Allowed choices are `none`, `pytorch`, `slurm`, `mpi`. Especially, if set to none, it will test in a non-distributed mode. +- `LOCAL_RANK`: ID for local rank. If not specified, it will be set to 0. +- `--onnx`: If specified, recognition results will be generated by onnx model and `CHECKPOINT_FILE` should be onnx model file path. Onnx model files are generated by `/tools/deployment/pytorch2onnx.py`. For now, multi-gpu mode and dynamic input shape mode are not supported. Please note that the output tensors of dataset and the input tensors of onnx model should share the same shape. And it is recommended to remove all test-time augmentation methods in `test_pipeline`(`ThreeCrop`, `TenCrop`, `twice_sample`, etc.) +- `--tensorrt`: If specified, recognition results will be generated by TensorRT engine and `CHECKPOINT_FILE` should be TensorRT engine file path. TensorRT engines are generated by exported onnx models and TensorRT official conversion tools. For now, multi-gpu mode and dynamic input shape mode are not supported. Please note that the output tensors of dataset and the input tensors of TensorRT engine should share the same shape. And it is recommended to remove all test-time augmentation methods in `test_pipeline`(`ThreeCrop`, `TenCrop`, `twice_sample`, etc.) + +Examples: + +Assume that you have already downloaded the checkpoints to the directory `checkpoints/`. + +1. Test TSN on Kinetics-400 (without saving the test results) and evaluate the top-k accuracy and mean class accuracy. + + ```shell + python tools/test.py configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth \ + --eval top_k_accuracy mean_class_accuracy + ``` + +2. Test TSN on Something-Something V1 with 8 GPUS, and evaluate the top-k accuracy. + + ```shell + ./tools/dist_test.sh configs/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth \ + 8 --out results.pkl --eval top_k_accuracy + ``` + +3. Test TSN on Kinetics-400 in slurm environment and evaluate the top-k accuracy + + ```shell + python tools/test.py configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth \ + --launcher slurm --eval top_k_accuracy + ``` + +4. Test TSN on Something-Something V1 with onnx model and evaluate the top-k accuracy + + ```shell + python tools/test.py configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.onnx \ + --eval top_k_accuracy --onnx + ``` + +### High-level APIs for testing a video and rawframes + +Here is an example of building the model and testing a given video. + +```python +import torch + +from mmaction.apis import init_recognizer, inference_recognizer + +config_file = 'configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py' +# download the checkpoint from model zoo and put it in `checkpoints/` +checkpoint_file = 'checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth' + +# assign the desired device. +device = 'cuda:0' # or 'cpu' +device = torch.device(device) + + # build the model from a config file and a checkpoint file +model = init_recognizer(config_file, checkpoint_file, device=device) + +# test a single video and show the result: +video = 'demo/demo.mp4' +labels = 'tools/data/kinetics/label_map_k400.txt' +results = inference_recognizer(model, video) + +# show the results +labels = open('tools/data/kinetics/label_map_k400.txt').readlines() +labels = [x.strip() for x in labels] +results = [(labels[k[0]], k[1]) for k in results] + +print(f'The top-5 labels with corresponding scores are:') +for result in results: + print(f'{result[0]}: ', result[1]) +``` + +Here is an example of building the model and testing with a given rawframes directory. + +```python +import torch + +from mmaction.apis import init_recognizer, inference_recognizer + +config_file = 'configs/recognition/tsn/tsn_r50_inference_1x1x3_100e_kinetics400_rgb.py' +# download the checkpoint from model zoo and put it in `checkpoints/` +checkpoint_file = 'checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth' + +# assign the desired device. +device = 'cuda:0' # or 'cpu' +device = torch.device(device) + + # build the model from a config file and a checkpoint file +model = init_recognizer(config_file, checkpoint_file, device=device) + +# test rawframe directory of a single video and show the result: +video = 'SOME_DIR_PATH/' +labels = 'tools/data/kinetics/label_map_k400.txt' +results = inference_recognizer(model, video) + +# show the results +labels = open('tools/data/kinetics/label_map_k400.txt').readlines() +labels = [x.strip() for x in labels] +results = [(labels[k[0]], k[1]) for k in results] + +print(f'The top-5 labels with corresponding scores are:') +for result in results: + print(f'{result[0]}: ', result[1]) +``` + +Here is an example of building the model and testing with a given video url. + +```python +import torch + +from mmaction.apis import init_recognizer, inference_recognizer + +config_file = 'configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py' +# download the checkpoint from model zoo and put it in `checkpoints/` +checkpoint_file = 'checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth' + +# assign the desired device. +device = 'cuda:0' # or 'cpu' +device = torch.device(device) + + # build the model from a config file and a checkpoint file +model = init_recognizer(config_file, checkpoint_file, device=device) + +# test url of a single video and show the result: +video = 'https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4' +labels = 'tools/data/kinetics/label_map_k400.txt' +results = inference_recognizer(model, video) + +# show the results +labels = open('tools/data/kinetics/label_map_k400.txt').readlines() +labels = [x.strip() for x in labels] +results = [(labels[k[0]], k[1]) for k in results] + +print(f'The top-5 labels with corresponding scores are:') +for result in results: + print(f'{result[0]}: ', result[1]) +``` + +:::{note} +We define `data_prefix` in config files and set it None as default for our provided inference configs. +If the `data_prefix` is not None, the path for the video file (or rawframe directory) to get will be `data_prefix/video`. +Here, the `video` is the param in the demo scripts above. +This detail can be found in `rawframe_dataset.py` and `video_dataset.py`. For example, + +- When video (rawframes) path is `SOME_DIR_PATH/VIDEO.mp4` (`SOME_DIR_PATH/VIDEO_NAME/img_xxxxx.jpg`), and `data_prefix` is None in the config file, + the param `video` should be `SOME_DIR_PATH/VIDEO.mp4` (`SOME_DIR_PATH/VIDEO_NAME`). +- When video (rawframes) path is `SOME_DIR_PATH/VIDEO.mp4` (`SOME_DIR_PATH/VIDEO_NAME/img_xxxxx.jpg`), and `data_prefix` is `SOME_DIR_PATH` in the config file, + the param `video` should be `VIDEO.mp4` (`VIDEO_NAME`). +- When rawframes path is `VIDEO_NAME/img_xxxxx.jpg`, and `data_prefix` is None in the config file, the param `video` should be `VIDEO_NAME`. +- When passing a url instead of a local video file, you need to use OpenCV as the video decoding backend. + +::: + +A notebook demo can be found in [demo/demo.ipynb](/demo/demo.ipynb) + +## Build a Model + +### Build a model with basic components + +In MMAction2, model components are basically categorized as 4 types. + +- recognizer: the whole recognizer model pipeline, usually contains a backbone and cls_head. +- backbone: usually an FCN network to extract feature maps, e.g., ResNet, BNInception. +- cls_head: the component for classification task, usually contains an FC layer with some pooling layers. +- localizer: the model for localization task, currently available: BSN, BMN. + +Following some basic pipelines (e.g., `Recognizer2D`), the model structure +can be customized through config files with no pains. + +If we want to implement some new components, e.g., the temporal shift backbone structure as +in [TSM: Temporal Shift Module for Efficient Video Understanding](https://arxiv.org/abs/1811.08383), there are several things to do. + +1. create a new file in `mmaction/models/backbones/resnet_tsm.py`. + + ```python + from ..builder import BACKBONES + from .resnet import ResNet + + @BACKBONES.register_module() + class ResNetTSM(ResNet): + + def __init__(self, + depth, + num_segments=8, + is_shift=True, + shift_div=8, + shift_place='blockres', + temporal_pool=False, + **kwargs): + pass + + def forward(self, x): + # implementation is ignored + pass + ``` + +2. Import the module in `mmaction/models/backbones/__init__.py` + + ```python + from .resnet_tsm import ResNetTSM + ``` + +3. modify the config file from + + ```python + backbone=dict( + type='ResNet', + pretrained='torchvision://resnet50', + depth=50, + norm_eval=False) + ``` + + to + + ```python + backbone=dict( + type='ResNetTSM', + pretrained='torchvision://resnet50', + depth=50, + norm_eval=False, + shift_div=8) + ``` + +### Write a new model + +To write a new recognition pipeline, you need to inherit from `BaseRecognizer`, +which defines the following abstract methods. + +- `forward_train()`: forward method of the training mode. +- `forward_test()`: forward method of the testing mode. + +[Recognizer2D](/mmaction/models/recognizers/recognizer2d.py) and [Recognizer3D](/mmaction/models/recognizers/recognizer3d.py) +are good examples which show how to do that. + +## Train a Model + +### Iteration pipeline + +MMAction2 implements distributed training and non-distributed training, +which uses `MMDistributedDataParallel` and `MMDataParallel` respectively. + +We adopt distributed training for both single machine and multiple machines. +Supposing that the server has 8 GPUs, 8 processes will be started and each process runs on a single GPU. + +Each process keeps an isolated model, data loader, and optimizer. +Model parameters are only synchronized once at the beginning. +After a forward and backward pass, gradients will be allreduced among all GPUs, +and the optimizer will update model parameters. +Since the gradients are allreduced, the model parameter stays the same for all processes after the iteration. + +### Training setting + +All outputs (log files and checkpoints) will be saved to the working directory, +which is specified by `work_dir` in the config file. + +By default we evaluate the model on the validation set after each epoch, you can change the evaluation interval by modifying the interval argument in the training config + +```python +evaluation = dict(interval=5) # This evaluate the model per 5 epoch. +``` + +According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you need to set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu. + +MMAction2 also supports training with CPU. However, it will be **very slow** and should only be used for debugging on a device without GPU. +To train with CPU, one should first disable all GPUs (if exist) with `export CUDA_VISIBLE_DEVICES=-1`, and then call the training scripts directly with `python tools/train.py {OTHER_ARGS}`. + +### Train with a single GPU + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +If you want to specify the working directory in the command, you can add an argument `--work-dir ${YOUR_WORK_DIR}`. + +### Train with multiple GPUs + +```shell +./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments] +``` + +Optional arguments are: + +- `--validate` (**strongly recommended**): Perform evaluation at every k (default value is 5, which can be modified by changing the `interval` value in `evaluation` dict in each config file) epochs during the training. +- `--test-last`: Test the final checkpoint when training is over, save the prediction to `${WORK_DIR}/last_pred.pkl`. +- `--test-best`: Test the best checkpoint when training is over, save the prediction to `${WORK_DIR}/best_pred.pkl`. +- `--work-dir ${WORK_DIR}`: Override the working directory specified in the config file. +- `--resume-from ${CHECKPOINT_FILE}`: Resume from a previous checkpoint file. +- `--gpus ${GPU_NUM}`: Number of gpus to use, which is only applicable to non-distributed training. +- `--gpu-ids ${GPU_IDS}`: IDs of gpus to use, which is only applicable to non-distributed training. +- `--seed ${SEED}`: Seed id for random state in python, numpy and pytorch to generate random numbers. +- `--deterministic`: If specified, it will set deterministic options for CUDNN backend. +- `JOB_LAUNCHER`: Items for distributed job initialization launcher. Allowed choices are `none`, `pytorch`, `slurm`, `mpi`. Especially, if set to none, it will test in a non-distributed mode. +- `LOCAL_RANK`: ID for local rank. If not specified, it will be set to 0. + +Difference between `resume-from` and `load-from`: +`resume-from` loads both the model weights and optimizer status, and the epoch is also inherited from the specified checkpoint. It is usually used for resuming the training process that is interrupted accidentally. +`load-from` only loads the model weights and the training epoch starts from 0. It is usually used for finetuning. + +Here is an example of using 8 GPUs to load TSN checkpoint. + +```shell +./tools/dist_train.sh configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py 8 --resume-from work_dirs/tsn_r50_1x1x3_100e_kinetics400_rgb/latest.pth +``` + +### Train with multiple machines + +If you can run MMAction2 on a cluster managed with [slurm](https://slurm.schedmd.com/), you can use the script `slurm_train.sh`. (This script also supports single machine training.) + +```shell +[GPUS=${GPUS}] ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} [--work-dir ${WORK_DIR}] +``` + +Here is an example of using 16 GPUs to train TSN on the dev partition in a slurm cluster. (use `GPUS_PER_NODE=8` to specify a single slurm cluster node with 8 GPUs.) + +```shell +GPUS=16 ./tools/slurm_train.sh dev tsn_r50_k400 configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py --work-dir work_dirs/tsn_r50_1x1x3_100e_kinetics400_rgb +``` + +You can check [slurm_train.sh](/tools/slurm_train.sh) for full arguments and environment variables. + +If you have just multiple machines connected with ethernet, you can simply run the following commands: + +On the first machine: + +```shell +NNODES=2 NODE_RANK=0 PORT=$MASTER_PORT MASTER_ADDR=$MASTER_ADDR sh tools/dist_train.sh $CONFIG $GPUS +``` + +On the second machine: + +```shell +NNODES=2 NODE_RANK=1 PORT=$MASTER_PORT MASTER_ADDR=$MASTER_ADDR sh tools/dist_train.sh $CONFIG $GPUS +``` + +It can be extremely slow if you do not have high-speed networking like InfiniBand. + +### Launch multiple jobs on a single machine + +If you launch multiple jobs on a single machine, e.g., 2 jobs of 4-GPU training on a machine with 8 GPUs, +you need to specify different ports (29500 by default) for each job to avoid communication conflict. + +If you use `dist_train.sh` to launch training jobs, you can set the port in commands. + +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29500 ./tools/dist_train.sh ${CONFIG_FILE} 4 +CUDA_VISIBLE_DEVICES=4,5,6,7 PORT=29501 ./tools/dist_train.sh ${CONFIG_FILE} 4 +``` + +If you use launch training jobs with slurm, you need to modify `dist_params` in the config files (usually the 6th line from the bottom in config files) to set different communication ports. + +In `config1.py`, + +```python +dist_params = dict(backend='nccl', port=29500) +``` + +In `config2.py`, + +```python +dist_params = dict(backend='nccl', port=29501) +``` + +Then you can launch two jobs with `config1.py` ang `config2.py`. + +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 GPUS=4 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} config1.py [--work-dir ${WORK_DIR}] +CUDA_VISIBLE_DEVICES=4,5,6,7 GPUS=4 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} config2.py [--work-dir ${WORK_DIR}] +``` + +## Tutorials + +Currently, we provide some tutorials for users to [learn about configs](tutorials/1_config.md), [finetune model](tutorials/2_finetune.md), +[add new dataset](tutorials/3_new_dataset.md), [customize data pipelines](tutorials/4_data_pipeline.md), +[add new modules](tutorials/5_new_modules.md), [export a model to ONNX](tutorials/6_export_model.md) and [customize runtime settings](tutorials/7_customize_runtime.md). diff --git a/openmmlab_test/mmaction2-0.24.1/docs/index.rst b/openmmlab_test/mmaction2-0.24.1/docs/index.rst new file mode 100644 index 00000000..b64cb6ea --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/index.rst @@ -0,0 +1,75 @@ +Welcome to MMAction2's documentation! +===================================== + +You can switch between Chinese and English documents in the lower-left corner of the layout. + +您可以在页面左下角切换文档语言。 + +.. toctree:: + :maxdepth: 2 + + install.md + getting_started.md + demo.md + benchmark.md + +.. toctree:: + :maxdepth: 2 + :caption: Datasets + + datasets.md + data_preparation.md + supported_datasets.md + +.. toctree:: + :maxdepth: 2 + :caption: Model Zoo + + modelzoo.md + recognition_models.md + localization_models.md + detection_models.md + skeleton_models.md + +.. toctree:: + :maxdepth: 2 + :caption: Tutorials + + tutorials/1_config.md + tutorials/2_finetune.md + tutorials/3_new_dataset.md + tutorials/4_data_pipeline.md + tutorials/5_new_modules.md + tutorials/6_export_model.md + tutorials/7_customize_runtime.md + +.. toctree:: + :maxdepth: 2 + :caption: Useful Tools and Scripts + + useful_tools.md + +.. toctree:: + :maxdepth: 2 + :caption: Notes + + changelog.md + faq.md + +.. toctree:: + :caption: API Reference + + api.rst + +.. toctree:: + :caption: Switch Language + + switch_language.md + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`search` diff --git a/openmmlab_test/mmaction2-0.24.1/docs/install.md b/openmmlab_test/mmaction2-0.24.1/docs/install.md new file mode 100644 index 00000000..d1bde357 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/install.md @@ -0,0 +1,255 @@ +# Installation + +We provide some tips for MMAction2 installation in this file. + + + +- [Installation](#installation) + - [Requirements](#requirements) + - [Prepare environment](#prepare-environment) + - [Install MMAction2](#install-mmaction2) + - [Install with CPU only](#install-with-cpu-only) + - [Another option: Docker Image](#another-option-docker-image) + - [A from-scratch setup script](#a-from-scratch-setup-script) + - [Developing with multiple MMAction2 versions](#developing-with-multiple-mmaction2-versions) + - [Verification](#verification) + + + +## Requirements + +- Linux, Windows (We can successfully install mmaction2 on Windows and run inference, but we haven't tried training yet) +- Python 3.6+ +- PyTorch 1.3+ +- CUDA 9.2+ (If you build PyTorch from source, CUDA 9.0 is also compatible) +- GCC 5+ +- [mmcv](https://github.com/open-mmlab/mmcv) 1.1.1+ +- Numpy +- ffmpeg (4.2 is preferred) +- [decord](https://github.com/dmlc/decord) (optional, 0.4.1+): Install CPU version by `pip install decord==0.4.1` and install GPU version from source +- [PyAV](https://github.com/mikeboers/PyAV) (optional): `conda install av -c conda-forge -y` +- [PyTurboJPEG](https://github.com/lilohuang/PyTurboJPEG) (optional): `pip install PyTurboJPEG` +- [denseflow](https://github.com/open-mmlab/denseflow) (optional): See [here](https://github.com/innerlee/setup) for simple install scripts. +- [moviepy](https://zulko.github.io/moviepy/) (optional): `pip install moviepy`. See [here](https://zulko.github.io/moviepy/install.html) for official installation. **Note**(according to [this issue](https://github.com/Zulko/moviepy/issues/693)) that: + 1. For Windows users, [ImageMagick](https://www.imagemagick.org/script/index.php) will not be automatically detected by MoviePy, + there is a need to modify `moviepy/config_defaults.py` file by providing the path to the ImageMagick binary called `magick`, like `IMAGEMAGICK_BINARY = "C:\\Program Files\\ImageMagick_VERSION\\magick.exe"` + 2. For Linux users, there is a need to modify the `/etc/ImageMagick-6/policy.xml` file by commenting out + `` to ``, if [ImageMagick](https://www.imagemagick.org/script/index.php) is not detected by `moviepy`. +- [Pillow-SIMD](https://docs.fast.ai/performance.html#pillow-simd) (optional): Install it by the following scripts. + +```shell +conda uninstall -y --force pillow pil jpeg libtiff libjpeg-turbo +pip uninstall -y pillow pil jpeg libtiff libjpeg-turbo +conda install -yc conda-forge libjpeg-turbo +CFLAGS="${CFLAGS} -mavx2" pip install --upgrade --no-cache-dir --force-reinstall --no-binary :all: --compile pillow-simd +conda install -y jpeg libtiff +``` + +:::{note} +You need to run `pip uninstall mmcv` first if you have mmcv installed. +If mmcv and mmcv-full are both installed, there will be `ModuleNotFoundError`. +::: + +## Prepare environment + +a. Create a conda virtual environment and activate it. + +```shell +conda create -n open-mmlab python=3.7 -y +conda activate open-mmlab +``` + +b. Install PyTorch and torchvision following the [official instructions](https://pytorch.org/), e.g., + +```shell +conda install pytorch torchvision -c pytorch +``` + +:::{note} +Make sure that your compilation CUDA version and runtime CUDA version match. +You can check the supported CUDA version for precompiled packages on the [PyTorch website](https://pytorch.org/). + +`E.g.1` If you have CUDA 10.1 installed under `/usr/local/cuda` and would like to install PyTorch 1.5, +you need to install the prebuilt PyTorch with CUDA 10.1. + +```shell +conda install pytorch cudatoolkit=10.1 torchvision -c pytorch +``` + +`E.g.2` If you have CUDA 9.2 installed under `/usr/local/cuda` and would like to install PyTorch 1.3.1., +you need to install the prebuilt PyTorch with CUDA 9.2. + +```shell +conda install pytorch=1.3.1 cudatoolkit=9.2 torchvision=0.4.2 -c pytorch +``` + +If you build PyTorch from source instead of installing the prebuilt package, you can use more CUDA versions such as 9.0. +::: + +## Install MMAction2 + +We recommend you to install MMAction2 with [MIM](https://github.com/open-mmlab/mim). + +```shell +pip install git+https://github.com/open-mmlab/mim.git +mim install mmaction2 -f https://github.com/open-mmlab/mmaction2.git +``` + +MIM can automatically install OpenMMLab projects and their requirements. + +Or, you can install MMAction2 manually: + +a. Install mmcv-full, we recommend you to install the pre-built package as below. + +```shell +# pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html +pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.10.0/index.html +``` + +mmcv-full is only compiled on PyTorch 1.x.0 because the compatibility usually holds between 1.x.0 and 1.x.1. If your PyTorch version is 1.x.1, you can install mmcv-full compiled with PyTorch 1.x.0 and it usually works well. + +``` +# We can ignore the micro version of PyTorch +pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.10/index.html +``` + +See [here](https://github.com/open-mmlab/mmcv#installation) for different versions of MMCV compatible to different PyTorch and CUDA versions. + +Optionally you can choose to compile mmcv from source by the following command + +```shell +git clone https://github.com/open-mmlab/mmcv.git +cd mmcv +MMCV_WITH_OPS=1 pip install -e . # package mmcv-full, which contains cuda ops, will be installed after this step +# OR pip install -e . # package mmcv, which contains no cuda ops, will be installed after this step +cd .. +``` + +Or directly run + +```shell +pip install mmcv-full +# alternative: pip install mmcv +``` + +**Important:** You need to run `pip uninstall mmcv` first if you have mmcv installed. If mmcv and mmcv-full are both installed, there will be `ModuleNotFoundError`. + +b. Clone the MMAction2 repository. + +```shell +git clone https://github.com/open-mmlab/mmaction2.git +cd mmaction2 +``` + +c. Install build requirements and then install MMAction2. + +```shell +pip install -r requirements/build.txt +pip install -v -e . # or "python setup.py develop" +``` + +If you build MMAction2 on macOS, replace the last command with + +```shell +CC=clang CXX=clang++ CFLAGS='-stdlib=libc++' pip install -e . +``` + +d. Install mmdetection for spatial temporal detection tasks. + +This part is **optional** if you're not going to do spatial temporal detection. + +See [here](https://github.com/open-mmlab/mmdetection#installation) to install mmdetection. + +:::{note} + +1. The git commit id will be written to the version number with step b, e.g. 0.6.0+2e7045c. The version will also be saved in trained models. + It is recommended that you run step b each time you pull some updates from github. If C++/CUDA codes are modified, then this step is compulsory. + +2. Following the above instructions, MMAction2 is installed on `dev` mode, any local modifications made to the code will take effect without the need to reinstall it (unless you submit some commits and want to update the version number). + +3. If you would like to use `opencv-python-headless` instead of `opencv-python`, + you can install it before installing MMCV. + +4. If you would like to use `PyAV`, you can install it with `conda install av -c conda-forge -y`. + +5. Some dependencies are optional. Running `python setup.py develop` will only install the minimum runtime requirements. + To use optional dependencies like `decord`, either install them with `pip install -r requirements/optional.txt` + or specify desired extras when calling `pip` (e.g. `pip install -v -e .[optional]`, + valid keys for the `[optional]` field are `all`, `tests`, `build`, and `optional`) like `pip install -v -e .[tests,build]`. + +::: + +## Install with CPU only + +The code can be built for CPU only environment (where CUDA isn't available). + +In CPU mode you can run the demo/demo.py for example. + +## Another option: Docker Image + +We provide a [Dockerfile](/docker/Dockerfile) to build an image. + +```shell +# build an image with PyTorch 1.6.0, CUDA 10.1, CUDNN 7. +docker build -f ./docker/Dockerfile --rm -t mmaction2 . +``` + +**Important:** Make sure you've installed the [nvidia-container-toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker). + +Run it with command: + +```shell +docker run --gpus all --shm-size=8g -it -v {DATA_DIR}:/mmaction2/data mmaction2 +``` + +## A from-scratch setup script + +Here is a full script for setting up MMAction2 with conda and link the dataset path (supposing that your Kinetics-400 dataset path is $KINETICS400_ROOT). + +```shell +conda create -n open-mmlab python=3.7 -y +conda activate open-mmlab + +# install latest pytorch prebuilt with the default prebuilt CUDA version (usually the latest) +conda install -c pytorch pytorch torchvision -y + +# install the latest mmcv or mmcv-full, here we take mmcv as example +pip install mmcv + +# install mmaction2 +git clone https://github.com/open-mmlab/mmaction2.git +cd mmaction2 +pip install -r requirements/build.txt +python setup.py develop + +mkdir data +ln -s $KINETICS400_ROOT data +``` + +## Developing with multiple MMAction2 versions + +The train and test scripts already modify the `PYTHONPATH` to ensure the script use the MMAction2 in the current directory. + +To use the default MMAction2 installed in the environment rather than that you are working with, you can remove the following line in those scripts. + +```shell +PYTHONPATH="$(dirname $0)/..":$PYTHONPATH +``` + +## Verification + +To verify whether MMAction2 and the required environment are installed correctly, +we can run sample python codes to initialize a recognizer and inference a demo video: + +```python +import torch +from mmaction.apis import init_recognizer, inference_recognizer + +config_file = 'configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py' +device = 'cuda:0' # or 'cpu' +device = torch.device(device) + +model = init_recognizer(config_file, device=device) +# inference the demo video +inference_recognizer(model, 'demo/demo.mp4') +``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs/make.bat b/openmmlab_test/mmaction2-0.24.1/docs/make.bat new file mode 100644 index 00000000..922152e9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/openmmlab_test/mmaction2-0.24.1/docs/merge_docs.sh b/openmmlab_test/mmaction2-0.24.1/docs/merge_docs.sh new file mode 100644 index 00000000..b38366f6 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/merge_docs.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +sed -i '$a\\n' ../demo/README.md + +# gather models +cat ../configs/localization/*/README.md | sed "s/md#t/html#t/g" | sed "s/#/#&/" | sed '1i\# Action Localization Models' | sed 's/](\/docs\//](/g' | sed 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' | sed "s/getting_started.html##t/getting_started.html#t/g" > localization_models.md +cat ../configs/recognition/*/README.md | sed "s/md#t/html#t/g" | sed "s/#/#&/" | sed '1i\# Action Recognition Models' | sed 's/](\/docs\//](/g' | sed 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' | sed "s/getting_started.html##t/getting_started.html#t/g" > recognition_models.md +cat ../configs/recognition_audio/*/README.md | sed "s/md#t/html#t/g" | sed "s/#/#&/" | sed 's/](\/docs\//](/g' | sed 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' | sed "s/getting_started.html##t/getting_started.html#t/g" >> recognition_models.md +cat ../configs/detection/*/README.md | sed "s/md#t/html#t/g" | sed "s/#/#&/" | sed '1i\# Spatio Temporal Action Detection Models' | sed 's/](\/docs\//](/g' | sed 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' | sed "s/getting_started.html##t/getting_started.html#t/g" > detection_models.md +cat ../configs/skeleton/*/README.md | sed "s/md#t/html#t/g" | sed "s/#/#&/" | sed '1i\# Skeleton-based Action Recognition Models' | sed 's/](\/docs\//](/g' | sed 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' | sed "s/getting_started.html##t/getting_started.html#t/g" > skeleton_models.md + + +# demo +cat ../demo/README.md | sed "s/md#t/html#t/g" | sed 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' | sed "s/getting_started.html##t/getting_started.html#t/g" > demo.md + +# gather datasets +cat ../tools/data/*/README.md | sed 's/# Preparing/# /g' | sed 's/#/#&/' > prepare_data.md + +sed -i 's/(\/tools\/data\/activitynet\/README.md/(#activitynet/g' supported_datasets.md +sed -i 's/(\/tools\/data\/kinetics\/README.md/(#kinetics-400-600-700/g' supported_datasets.md +sed -i 's/(\/tools\/data\/mit\/README.md/(#moments-in-time/g' supported_datasets.md +sed -i 's/(\/tools\/data\/mmit\/README.md/(#multi-moments-in-time/g' supported_datasets.md +sed -i 's/(\/tools\/data\/sthv1\/README.md/(#something-something-v1/g' supported_datasets.md +sed -i 's/(\/tools\/data\/sthv2\/README.md/(#something-something-v2/g' supported_datasets.md +sed -i 's/(\/tools\/data\/thumos14\/README.md/(#thumos-14/g' supported_datasets.md +sed -i 's/(\/tools\/data\/ucf101\/README.md/(#ucf-101/g' supported_datasets.md +sed -i 's/(\/tools\/data\/ucf101_24\/README.md/(#ucf101-24/g' supported_datasets.md +sed -i 's/(\/tools\/data\/jhmdb\/README.md/(#jhmdb/g' supported_datasets.md +sed -i 's/(\/tools\/data\/hvu\/README.md/(#hvu/g' supported_datasets.md +sed -i 's/(\/tools\/data\/hmdb51\/README.md/(#hmdb51/g' supported_datasets.md +sed -i 's/(\/tools\/data\/jester\/README.md/(#jester/g' supported_datasets.md +sed -i 's/(\/tools\/data\/ava\/README.md/(#ava/g' supported_datasets.md +sed -i 's/(\/tools\/data\/gym\/README.md/(#gym/g' supported_datasets.md +sed -i 's/(\/tools\/data\/omnisource\/README.md/(#omnisource/g' supported_datasets.md +sed -i 's/(\/tools\/data\/diving48\/README.md/(#diving48/g' supported_datasets.md +sed -i 's/(\/tools\/data\/skeleton\/README.md/(#skeleton/g' supported_datasets.md + + +cat prepare_data.md >> supported_datasets.md +sed -i 's/](\/docs\//](/g' supported_datasets.md +sed -i 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' supported_datasets.md + +sed -i 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' benchmark.md +sed -i 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' getting_started.md +sed -i 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' install.md +sed -i 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' changelog.md +sed -i 's/](\/docs\//](/g' ./tutorials/*.md +sed -i 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' ./tutorials/*.md diff --git a/openmmlab_test/mmaction2-0.24.1/docs/projects.md b/openmmlab_test/mmaction2-0.24.1/docs/projects.md new file mode 100644 index 00000000..01a68643 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/projects.md @@ -0,0 +1,23 @@ +# Projects based on MMAction2 + +There are many research works and projects built on MMAction2. +We list some of them as examples of how to extend MMAction2 for your own projects. +As the page might not be completed, please feel free to create a PR to update this page. + +## Projects as an extension + +- [OTEAction2](https://github.com/openvinotoolkit/mmaction2): OpenVINO Training Extensions for Action Recognition. + +## Projects of papers + +There are also projects released with papers. +Some of the papers are published in top-tier conferences (CVPR, ICCV, and ECCV), the others are also highly influential. +To make this list also a reference for the community to develop and compare new video understanding algorithms, we list them following the time order of top-tier conferences. +Methods already supported and maintained by MMAction2 are not listed. + +- Evidential Deep Learning for Open Set Action Recognition, ICCV 2021 Oral. [\[paper\]](https://arxiv.org/abs/2107.10161)[\[github\]](https://github.com/Cogito2012/DEAR) +- Rethinking Self-supervised Correspondence Learning: A Video Frame-level Similarity Perspective, ICCV 2021 Oral. [\[paper\]](https://arxiv.org/abs/2103.17263)[\[github\]](https://github.com/xvjiarui/VFS) +- MGSampler: An Explainable Sampling Strategy for Video Action Recognition, ICCV 2021. [\[paper\]](https://arxiv.org/abs/2104.09952)[\[github\]](https://github.com/MCG-NJU/MGSampler) +- MultiSports: A Multi-Person Video Dataset of Spatio-Temporally Localized Sports Actions, ICCV 2021. [\[paper\]](https://arxiv.org/abs/2105.07404) +- Video Swin Transformer. [\[paper\]](https://arxiv.org/abs/2106.13230)[\[github\]](https://github.com/SwinTransformer/Video-Swin-Transformer) +- Long Short-Term Transformer for Online Action Detection. [\[paper\]](https://arxiv.org/abs/2107.03377) diff --git a/openmmlab_test/mmaction2-0.24.1/docs/stat.py b/openmmlab_test/mmaction2-0.24.1/docs/stat.py new file mode 100644 index 00000000..53e64004 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/stat.py @@ -0,0 +1,174 @@ +#!/usr/bin/env python +# Copyright (c) OpenMMLab. All rights reserved. +import functools as func +import glob +import re +from os.path import basename, splitext + +import numpy as np +import titlecase + + +def anchor(name): + return re.sub(r'-+', '-', re.sub(r'[^a-zA-Z0-9]', '-', + name.strip().lower())).strip('-') + + +# Count algorithms + +files = sorted(glob.glob('*_models.md')) +# files = sorted(glob.glob('docs/*_models.md')) + +stats = [] + +for f in files: + with open(f, 'r') as content_file: + content = content_file.read() + + # title + title = content.split('\n')[0].replace('#', '') + + # skip IMAGE and ABSTRACT tags + content = [ + x for x in content.split('\n') + if 'IMAGE' not in x and 'ABSTRACT' not in x + ] + content = '\n'.join(content) + + # count papers + papers = set( + (papertype, titlecase.titlecase(paper.lower().strip())) + for (papertype, paper) in re.findall( + r'\s*\n.*?\btitle\s*=\s*{(.*?)}', + content, re.DOTALL)) + # paper links + revcontent = '\n'.join(list(reversed(content.splitlines()))) + paperlinks = {} + for _, p in papers: + print(p) + q = p.replace('\\', '\\\\').replace('?', '\\?') + paperlinks[p] = ' '.join( + (f'[->]({splitext(basename(f))[0]}.html#{anchor(paperlink)})' + for paperlink in re.findall( + rf'\btitle\s*=\s*{{\s*{q}\s*}}.*?\n## (.*?)\s*[,;]?\s*\n', + revcontent, re.DOTALL | re.IGNORECASE))) + print(' ', paperlinks[p]) + paperlist = '\n'.join( + sorted(f' - [{t}] {x} ({paperlinks[x]})' for t, x in papers)) + # count configs + configs = set(x.lower().strip() + for x in re.findall(r'https.*configs/.*\.py', content)) + + # count ckpts + ckpts = set(x.lower().strip() + for x in re.findall(r'https://download.*\.pth', content) + if 'mmaction' in x) + + statsmsg = f""" +## [{title}]({f}) + +* Number of checkpoints: {len(ckpts)} +* Number of configs: {len(configs)} +* Number of papers: {len(papers)} +{paperlist} + + """ + + stats.append((papers, configs, ckpts, statsmsg)) + +allpapers = func.reduce(lambda a, b: a.union(b), [p for p, _, _, _ in stats]) +allconfigs = func.reduce(lambda a, b: a.union(b), [c for _, c, _, _ in stats]) +allckpts = func.reduce(lambda a, b: a.union(b), [c for _, _, c, _ in stats]) +msglist = '\n'.join(x for _, _, _, x in stats) + +papertypes, papercounts = np.unique([t for t, _ in allpapers], + return_counts=True) +countstr = '\n'.join( + [f' - {t}: {c}' for t, c in zip(papertypes, papercounts)]) + +modelzoo = f""" +# Overview + +* Number of checkpoints: {len(allckpts)} +* Number of configs: {len(allconfigs)} +* Number of papers: {len(allpapers)} +{countstr} + +For supported datasets, see [datasets overview](datasets.md). + +{msglist} +""" + +with open('modelzoo.md', 'w') as f: + f.write(modelzoo) + +# Count datasets + +files = ['supported_datasets.md'] +# files = sorted(glob.glob('docs/tasks/*.md')) + +datastats = [] + +for f in files: + with open(f, 'r') as content_file: + content = content_file.read() + + # title + title = content.split('\n')[0].replace('#', '') + + # count papers + papers = set( + (papertype, titlecase.titlecase(paper.lower().strip())) + for (papertype, paper) in re.findall( + r'\s*\n.*?\btitle\s*=\s*{(.*?)}', + content, re.DOTALL)) + # paper links + revcontent = '\n'.join(list(reversed(content.splitlines()))) + paperlinks = {} + for _, p in papers: + print(p) + q = p.replace('\\', '\\\\').replace('?', '\\?') + paperlinks[p] = ', '.join( + (f'[{p.strip()} ->]({splitext(basename(f))[0]}.html#{anchor(p)})' + for p in re.findall( + rf'\btitle\s*=\s*{{\s*{q}\s*}}.*?\n## (.*?)\s*[,;]?\s*\n', + revcontent, re.DOTALL | re.IGNORECASE))) + print(' ', paperlinks[p]) + paperlist = '\n'.join( + sorted(f' - [{t}] {x} ({paperlinks[x]})' for t, x in papers)) + + statsmsg = f""" +## [{title}]({f}) + +* Number of papers: {len(papers)} +{paperlist} + + """ + + datastats.append((papers, configs, ckpts, statsmsg)) + +alldatapapers = func.reduce(lambda a, b: a.union(b), + [p for p, _, _, _ in datastats]) + +# Summarize + +msglist = '\n'.join(x for _, _, _, x in stats) +datamsglist = '\n'.join(x for _, _, _, x in datastats) +papertypes, papercounts = np.unique([t for t, _ in alldatapapers], + return_counts=True) +countstr = '\n'.join( + [f' - {t}: {c}' for t, c in zip(papertypes, papercounts)]) + +modelzoo = f""" +# Overview + +* Number of papers: {len(alldatapapers)} +{countstr} + +For supported action algorithms, see [modelzoo overview](modelzoo.md). + +{datamsglist} +""" + +with open('datasets.md', 'w') as f: + f.write(modelzoo) diff --git a/openmmlab_test/mmaction2-0.24.1/docs/supported_datasets.md b/openmmlab_test/mmaction2-0.24.1/docs/supported_datasets.md new file mode 100644 index 00000000..8a4403df --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/supported_datasets.md @@ -0,0 +1,36 @@ +# Supported Datasets + +- Action Recognition + + - [UCF101](/tools/data/ucf101/README.md) \[ [Homepage](https://www.crcv.ucf.edu/research/data-sets/ucf101/) \]. + - [HMDB51](/tools/data/hmdb51/README.md) \[ [Homepage](https://serre-lab.clps.brown.edu/resource/hmdb-a-large-human-motion-database/) \]. + - [Kinetics-\[400/600/700\]](/tools/data/kinetics/README.md) \[ [Homepage](https://deepmind.com/research/open-source/kinetics) \] + - [Something-Something V1](/tools/data/sthv1/README.md) \[ [Homepage](https://20bn.com/datasets/something-something/v1) \] + - [Something-Something V2](/tools/data/sthv2/README.md) \[ [Homepage](https://20bn.com/datasets/something-something) \] + - [Moments in Time](/tools/data/mit/README.md) \[ [Homepage](http://moments.csail.mit.edu/) \] + - [Multi-Moments in Time](/tools/data/mmit/README.md) \[ [Homepage](http://moments.csail.mit.edu/challenge_iccv_2019.html) \] + - [HVU](/tools/data/hvu/README.md) \[ [Homepage](https://github.com/holistic-video-understanding/HVU-Dataset) \] + - [Jester](/tools/data/jester/README.md) \[ [Homepage](https://20bn.com/datasets/jester/v1) \] + - [GYM](/tools/data/gym/README.md) \[ [Homepage](https://sdolivia.github.io/FineGym/) \] + - [ActivityNet](/tools/data/activitynet/README.md) \[ [Homepage](http://activity-net.org/) \] + - [Diving48](/tools/data/diving48/README.md) \[ [Homepage](http://www.svcl.ucsd.edu/projects/resound/dataset.html) \] + - [OmniSource](/tools/data/omnisource/README.md) \[ [Homepage](https://kennymckormick.github.io/omnisource/) \] + +- Temporal Action Detection + + - [ActivityNet](/tools/data/activitynet/README.md) \[ [Homepage](http://activity-net.org/) \] + - [THUMOS14](/tools/data/thumos14/README.md) \[ [Homepage](https://www.crcv.ucf.edu/THUMOS14/download.html) \] + +- Spatial Temporal Action Detection + + - [AVA](/tools/data/ava/README.md) \[ [Homepage](https://research.google.com/ava/index.html) \] + - [UCF101-24](/tools/data/ucf101_24/README.md) \[ [Homepage](http://www.thumos.info/download.html) \] + - [JHMDB](/tools/data/jhmdb/README.md) \[ [Homepage](http://jhmdb.is.tue.mpg.de/) \] + +- Skeleton-based Action Recognition + + - [PoseC3D Skeleton Dataset](/tools/data/skeleton/README.md) \[ [Homepage](https://kennymckormick.github.io/posec3d/) \] + +The supported datasets are listed above. +We provide shell scripts for data preparation under the path `$MMACTION2/tools/data/`. +Below is the detailed tutorials of data deployment for each dataset. diff --git a/openmmlab_test/mmaction2-0.24.1/docs/switch_language.md b/openmmlab_test/mmaction2-0.24.1/docs/switch_language.md new file mode 100644 index 00000000..4bade223 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/switch_language.md @@ -0,0 +1,3 @@ +## English + +## 简体中文 diff --git a/openmmlab_test/mmaction2-0.24.1/docs/tutorials/1_config.md b/openmmlab_test/mmaction2-0.24.1/docs/tutorials/1_config.md new file mode 100644 index 00000000..617c7133 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/tutorials/1_config.md @@ -0,0 +1,757 @@ +# Tutorial 1: Learn about Configs + +We use python files as configs, incorporate modular and inheritance design into our config system, which is convenient to conduct various experiments. +You can find all the provided configs under `$MMAction2/configs`. If you wish to inspect the config file, +you may run `python tools/analysis/print_config.py /PATH/TO/CONFIG` to see the complete config. + + + +- [Modify config through script arguments](#modify-config-through-script-arguments) +- [Config File Structure](#config-file-structure) +- [Config File Naming Convention](#config-file-naming-convention) + - [Config System for Action localization](#config-system-for-action-localization) + - [Config System for Action Recognition](#config-system-for-action-recognition) + - [Config System for Spatio-Temporal Action Detection](#config-system-for-spatio-temporal-action-detection) +- [FAQ](#faq) + - [Use intermediate variables in configs](#use-intermediate-variables-in-configs) + + + +## Modify config through script arguments + +When submitting jobs using "tools/train.py" or "tools/test.py", you may specify `--cfg-options` to in-place modify the config. + +- Update config keys of dict. + + The config options can be specified following the order of the dict keys in the original config. + For example, `--cfg-options model.backbone.norm_eval=False` changes the all BN modules in model backbones to `train` mode. + +- Update keys inside a list of configs. + + Some config dicts are composed as a list in your config. For example, the training pipeline `data.train.pipeline` is normally a list + e.g. `[dict(type='SampleFrames'), ...]`. If you want to change `'SampleFrames'` to `'DenseSampleFrames'` in the pipeline, + you may specify `--cfg-options data.train.pipeline.0.type=DenseSampleFrames`. + +- Update values of list/tuples. + + If the value to be updated is a list or a tuple. For example, the config file normally sets `workflow=[('train', 1)]`. If you want to + change this key, you may specify `--cfg-options workflow="[(train,1),(val,1)]"`. Note that the quotation mark " is necessary to + support list/tuple data types, and that **NO** white space is allowed inside the quotation marks in the specified value. + +## Config File Structure + +There are 3 basic component types under `config/_base_`, model, schedule, default_runtime. +Many methods could be easily constructed with one of each like TSN, I3D, SlowOnly, etc. +The configs that are composed by components from `_base_` are called _primitive_. + +For all configs under the same folder, it is recommended to have only **one** _primitive_ config. All other configs should inherit from the _primitive_ config. In this way, the maximum of inheritance level is 3. + +For easy understanding, we recommend contributors to inherit from exiting methods. +For example, if some modification is made base on TSN, users may first inherit the basic TSN structure by specifying `_base_ = ../tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py`, then modify the necessary fields in the config files. + +If you are building an entirely new method that does not share the structure with any of the existing methods, you may create a folder under `configs/TASK`. + +Please refer to [mmcv](https://mmcv.readthedocs.io/en/latest/understand_mmcv/config.html) for detailed documentation. + +## Config File Naming Convention + +We follow the style below to name config files. Contributors are advised to follow the same style. + +``` +{model}_[model setting]_{backbone}_[misc]_{data setting}_[gpu x batch_per_gpu]_{schedule}_{dataset}_{modality} +``` + +`{xxx}` is required field and `[yyy]` is optional. + +- `{model}`: model type, e.g. `tsn`, `i3d`, etc. +- `[model setting]`: specific setting for some models. +- `{backbone}`: backbone type, e.g. `r50` (ResNet-50), etc. +- `[misc]`: miscellaneous setting/plugins of model, e.g. `dense`, `320p`, `video`, etc. +- `{data setting}`: frame sample setting in `{clip_len}x{frame_interval}x{num_clips}` format. +- `[gpu x batch_per_gpu]`: GPUs and samples per GPU. +- `{schedule}`: training schedule, e.g. `20e` means 20 epochs. +- `{dataset}`: dataset name, e.g. `kinetics400`, `mmit`, etc. +- `{modality}`: frame modality, e.g. `rgb`, `flow`, etc. + +### Config System for Action localization + +We incorporate modular design into our config system, +which is convenient to conduct various experiments. + +- An Example of BMN + + To help the users have a basic idea of a complete config structure and the modules in an action localization system, + we make brief comments on the config of BMN as the following. + For more detailed usage and alternative for per parameter in each module, please refer to the [API documentation](https://mmaction2.readthedocs.io/en/latest/api.html). + + ```python + # model settings + model = dict( # Config of the model + type='BMN', # Type of the localizer + temporal_dim=100, # Total frames selected for each video + boundary_ratio=0.5, # Ratio for determining video boundaries + num_samples=32, # Number of samples for each proposal + num_samples_per_bin=3, # Number of bin samples for each sample + feat_dim=400, # Dimension of feature + soft_nms_alpha=0.4, # Soft NMS alpha + soft_nms_low_threshold=0.5, # Soft NMS low threshold + soft_nms_high_threshold=0.9, # Soft NMS high threshold + post_process_top_k=100) # Top k proposals in post process + # model training and testing settings + train_cfg = None # Config of training hyperparameters for BMN + test_cfg = dict(average_clips='score') # Config for testing hyperparameters for BMN + + # dataset settings + dataset_type = 'ActivityNetDataset' # Type of dataset for training, validation and testing + data_root = 'data/activitynet_feature_cuhk/csv_mean_100/' # Root path to data for training + data_root_val = 'data/activitynet_feature_cuhk/csv_mean_100/' # Root path to data for validation and testing + ann_file_train = 'data/ActivityNet/anet_anno_train.json' # Path to the annotation file for training + ann_file_val = 'data/ActivityNet/anet_anno_val.json' # Path to the annotation file for validation + ann_file_test = 'data/ActivityNet/anet_anno_test.json' # Path to the annotation file for testing + + train_pipeline = [ # List of training pipeline steps + dict(type='LoadLocalizationFeature'), # Load localization feature pipeline + dict(type='GenerateLocalizationLabels'), # Generate localization labels pipeline + dict( # Config of Collect + type='Collect', # Collect pipeline that decides which keys in the data should be passed to the localizer + keys=['raw_feature', 'gt_bbox'], # Keys of input + meta_name='video_meta', # Meta name + meta_keys=['video_name']), # Meta keys of input + dict( # Config of ToTensor + type='ToTensor', # Convert other types to tensor type pipeline + keys=['raw_feature']), # Keys to be converted from image to tensor + dict( # Config of ToDataContainer + type='ToDataContainer', # Pipeline to convert the data to DataContainer + fields=[dict(key='gt_bbox', stack=False, cpu_only=True)]) # Required fields to be converted with keys and attributes + ] + val_pipeline = [ # List of validation pipeline steps + dict(type='LoadLocalizationFeature'), # Load localization feature pipeline + dict(type='GenerateLocalizationLabels'), # Generate localization labels pipeline + dict( # Config of Collect + type='Collect', # Collect pipeline that decides which keys in the data should be passed to the localizer + keys=['raw_feature', 'gt_bbox'], # Keys of input + meta_name='video_meta', # Meta name + meta_keys=[ + 'video_name', 'duration_second', 'duration_frame', 'annotations', + 'feature_frame' + ]), # Meta keys of input + dict( # Config of ToTensor + type='ToTensor', # Convert other types to tensor type pipeline + keys=['raw_feature']), # Keys to be converted from image to tensor + dict( # Config of ToDataContainer + type='ToDataContainer', # Pipeline to convert the data to DataContainer + fields=[dict(key='gt_bbox', stack=False, cpu_only=True)]) # Required fields to be converted with keys and attributes + ] + test_pipeline = [ # List of testing pipeline steps + dict(type='LoadLocalizationFeature'), # Load localization feature pipeline + dict( # Config of Collect + type='Collect', # Collect pipeline that decides which keys in the data should be passed to the localizer + keys=['raw_feature'], # Keys of input + meta_name='video_meta', # Meta name + meta_keys=[ + 'video_name', 'duration_second', 'duration_frame', 'annotations', + 'feature_frame' + ]), # Meta keys of input + dict( # Config of ToTensor + type='ToTensor', # Convert other types to tensor type pipeline + keys=['raw_feature']), # Keys to be converted from image to tensor + ] + data = dict( # Config of data + videos_per_gpu=8, # Batch size of each single GPU + workers_per_gpu=8, # Workers to pre-fetch data for each single GPU + train_dataloader=dict( # Additional config of train dataloader + drop_last=True), # Whether to drop out the last batch of data in training + val_dataloader=dict( # Additional config of validation dataloader + videos_per_gpu=1), # Batch size of each single GPU during evaluation + test_dataloader=dict( # Additional config of test dataloader + videos_per_gpu=2), # Batch size of each single GPU during testing + test=dict( # Testing dataset config + type=dataset_type, + ann_file=ann_file_test, + pipeline=test_pipeline, + data_prefix=data_root_val), + val=dict( # Validation dataset config + type=dataset_type, + ann_file=ann_file_val, + pipeline=val_pipeline, + data_prefix=data_root_val), + train=dict( # Training dataset config + type=dataset_type, + ann_file=ann_file_train, + pipeline=train_pipeline, + data_prefix=data_root)) + + # optimizer + optimizer = dict( + # Config used to build optimizer, support (1). All the optimizers in PyTorch + # whose arguments are also the same as those in PyTorch. (2). Custom optimizers + # which are built on `constructor`, referring to "tutorials/5_new_modules.md" + # for implementation. + type='Adam', # Type of optimizer, refer to https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/optimizer/default_constructor.py#L13 for more details + lr=0.001, # Learning rate, see detail usages of the parameters in the documentation of PyTorch + weight_decay=0.0001) # Weight decay of Adam + optimizer_config = dict( # Config used to build the optimizer hook + grad_clip=None) # Most of the methods do not use gradient clip + # learning policy + lr_config = dict( # Learning rate scheduler config used to register LrUpdater hook + policy='step', # Policy of scheduler, also support CosineAnnealing, Cyclic, etc. Refer to details of supported LrUpdater from https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py#L9 + step=7) # Steps to decay the learning rate + + total_epochs = 9 # Total epochs to train the model + checkpoint_config = dict( # Config to set the checkpoint hook, Refer to https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/checkpoint.py for implementation + interval=1) # Interval to save checkpoint + evaluation = dict( # Config of evaluation during training + interval=1, # Interval to perform evaluation + metrics=['AR@AN']) # Metrics to be performed + log_config = dict( # Config to register logger hook + interval=50, # Interval to print the log + hooks=[ # Hooks to be implemented during training + dict(type='TextLoggerHook'), # The logger used to record the training process + # dict(type='TensorboardLoggerHook'), # The Tensorboard logger is also supported + ]) + + # runtime settings + dist_params = dict(backend='nccl') # Parameters to setup distributed training, the port can also be set + log_level = 'INFO' # The level of logging + work_dir = './work_dirs/bmn_400x100_2x8_9e_activitynet_feature/' # Directory to save the model checkpoints and logs for the current experiments + load_from = None # load models as a pre-trained model from a given path. This will not resume training + resume_from = None # Resume checkpoints from a given path, the training will be resumed from the epoch when the checkpoint's is saved + workflow = [('train', 1)] # Workflow for runner. [('train', 1)] means there is only one workflow and the workflow named 'train' is executed once + output_config = dict( # Config of localization output + out=f'{work_dir}/results.json', # Path to output file + output_format='json') # File format of output file + ``` + +### Config System for Action Recognition + +We incorporate modular design into our config system, +which is convenient to conduct various experiments. + +- An Example of TSN + + To help the users have a basic idea of a complete config structure and the modules in an action recognition system, + we make brief comments on the config of TSN as the following. + For more detailed usage and alternative for per parameter in each module, please refer to the API documentation. + + ```python + # model settings + model = dict( # Config of the model + type='Recognizer2D', # Type of the recognizer + backbone=dict( # Dict for backbone + type='ResNet', # Name of the backbone + pretrained='torchvision://resnet50', # The url/site of the pretrained model + depth=50, # Depth of ResNet model + norm_eval=False), # Whether to set BN layers to eval mode when training + cls_head=dict( # Dict for classification head + type='TSNHead', # Name of classification head + num_classes=400, # Number of classes to be classified. + in_channels=2048, # The input channels of classification head. + spatial_type='avg', # Type of pooling in spatial dimension + consensus=dict(type='AvgConsensus', dim=1), # Config of consensus module + dropout_ratio=0.4, # Probability in dropout layer + init_std=0.01), # Std value for linear layer initiation + # model training and testing settings + train_cfg=None, # Config of training hyperparameters for TSN + test_cfg=dict(average_clips=None)) # Config for testing hyperparameters for TSN. + + # dataset settings + dataset_type = 'RawframeDataset' # Type of dataset for training, validation and testing + data_root = 'data/kinetics400/rawframes_train/' # Root path to data for training + data_root_val = 'data/kinetics400/rawframes_val/' # Root path to data for validation and testing + ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' # Path to the annotation file for training + ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' # Path to the annotation file for validation + ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' # Path to the annotation file for testing + img_norm_cfg = dict( # Config of image normalization used in data pipeline + mean=[123.675, 116.28, 103.53], # Mean values of different channels to normalize + std=[58.395, 57.12, 57.375], # Std values of different channels to normalize + to_bgr=False) # Whether to convert channels from RGB to BGR + + train_pipeline = [ # List of training pipeline steps + dict( # Config of SampleFrames + type='SampleFrames', # Sample frames pipeline, sampling frames from video + clip_len=1, # Frames of each sampled output clip + frame_interval=1, # Temporal interval of adjacent sampled frames + num_clips=3), # Number of clips to be sampled + dict( # Config of RawFrameDecode + type='RawFrameDecode'), # Load and decode Frames pipeline, picking raw frames with given indices + dict( # Config of Resize + type='Resize', # Resize pipeline + scale=(-1, 256)), # The scale to resize images + dict( # Config of MultiScaleCrop + type='MultiScaleCrop', # Multi scale crop pipeline, cropping images with a list of randomly selected scales + input_size=224, # Input size of the network + scales=(1, 0.875, 0.75, 0.66), # Scales of width and height to be selected + random_crop=False, # Whether to randomly sample cropping bbox + max_wh_scale_gap=1), # Maximum gap of w and h scale levels + dict( # Config of Resize + type='Resize', # Resize pipeline + scale=(224, 224), # The scale to resize images + keep_ratio=False), # Whether to resize with changing the aspect ratio + dict( # Config of Flip + type='Flip', # Flip Pipeline + flip_ratio=0.5), # Probability of implementing flip + dict( # Config of Normalize + type='Normalize', # Normalize pipeline + **img_norm_cfg), # Config of image normalization + dict( # Config of FormatShape + type='FormatShape', # Format shape pipeline, Format final image shape to the given input_format + input_format='NCHW'), # Final image shape format + dict( # Config of Collect + type='Collect', # Collect pipeline that decides which keys in the data should be passed to the recognizer + keys=['imgs', 'label'], # Keys of input + meta_keys=[]), # Meta keys of input + dict( # Config of ToTensor + type='ToTensor', # Convert other types to tensor type pipeline + keys=['imgs', 'label']) # Keys to be converted from image to tensor + ] + val_pipeline = [ # List of validation pipeline steps + dict( # Config of SampleFrames + type='SampleFrames', # Sample frames pipeline, sampling frames from video + clip_len=1, # Frames of each sampled output clip + frame_interval=1, # Temporal interval of adjacent sampled frames + num_clips=3, # Number of clips to be sampled + test_mode=True), # Whether to set test mode in sampling + dict( # Config of RawFrameDecode + type='RawFrameDecode'), # Load and decode Frames pipeline, picking raw frames with given indices + dict( # Config of Resize + type='Resize', # Resize pipeline + scale=(-1, 256)), # The scale to resize images + dict( # Config of CenterCrop + type='CenterCrop', # Center crop pipeline, cropping the center area from images + crop_size=224), # The size to crop images + dict( # Config of Flip + type='Flip', # Flip pipeline + flip_ratio=0), # Probability of implementing flip + dict( # Config of Normalize + type='Normalize', # Normalize pipeline + **img_norm_cfg), # Config of image normalization + dict( # Config of FormatShape + type='FormatShape', # Format shape pipeline, Format final image shape to the given input_format + input_format='NCHW'), # Final image shape format + dict( # Config of Collect + type='Collect', # Collect pipeline that decides which keys in the data should be passed to the recognizer + keys=['imgs', 'label'], # Keys of input + meta_keys=[]), # Meta keys of input + dict( # Config of ToTensor + type='ToTensor', # Convert other types to tensor type pipeline + keys=['imgs']) # Keys to be converted from image to tensor + ] + test_pipeline = [ # List of testing pipeline steps + dict( # Config of SampleFrames + type='SampleFrames', # Sample frames pipeline, sampling frames from video + clip_len=1, # Frames of each sampled output clip + frame_interval=1, # Temporal interval of adjacent sampled frames + num_clips=25, # Number of clips to be sampled + test_mode=True), # Whether to set test mode in sampling + dict( # Config of RawFrameDecode + type='RawFrameDecode'), # Load and decode Frames pipeline, picking raw frames with given indices + dict( # Config of Resize + type='Resize', # Resize pipeline + scale=(-1, 256)), # The scale to resize images + dict( # Config of TenCrop + type='TenCrop', # Ten crop pipeline, cropping ten area from images + crop_size=224), # The size to crop images + dict( # Config of Flip + type='Flip', # Flip pipeline + flip_ratio=0), # Probability of implementing flip + dict( # Config of Normalize + type='Normalize', # Normalize pipeline + **img_norm_cfg), # Config of image normalization + dict( # Config of FormatShape + type='FormatShape', # Format shape pipeline, Format final image shape to the given input_format + input_format='NCHW'), # Final image shape format + dict( # Config of Collect + type='Collect', # Collect pipeline that decides which keys in the data should be passed to the recognizer + keys=['imgs', 'label'], # Keys of input + meta_keys=[]), # Meta keys of input + dict( # Config of ToTensor + type='ToTensor', # Convert other types to tensor type pipeline + keys=['imgs']) # Keys to be converted from image to tensor + ] + data = dict( # Config of data + videos_per_gpu=32, # Batch size of each single GPU + workers_per_gpu=2, # Workers to pre-fetch data for each single GPU + train_dataloader=dict( # Additional config of train dataloader + drop_last=True), # Whether to drop out the last batch of data in training + val_dataloader=dict( # Additional config of validation dataloader + videos_per_gpu=1), # Batch size of each single GPU during evaluation + test_dataloader=dict( # Additional config of test dataloader + videos_per_gpu=2), # Batch size of each single GPU during testing + train=dict( # Training dataset config + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( # Validation dataset config + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( # Testing dataset config + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) + # optimizer + optimizer = dict( + # Config used to build optimizer, support (1). All the optimizers in PyTorch + # whose arguments are also the same as those in PyTorch. (2). Custom optimizers + # which are built on `constructor`, referring to "tutorials/5_new_modules.md" + # for implementation. + type='SGD', # Type of optimizer, refer to https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/optimizer/default_constructor.py#L13 for more details + lr=0.01, # Learning rate, see detail usages of the parameters in the documentation of PyTorch + momentum=0.9, # Momentum, + weight_decay=0.0001) # Weight decay of SGD + optimizer_config = dict( # Config used to build the optimizer hook + grad_clip=dict(max_norm=40, norm_type=2)) # Use gradient clip + # learning policy + lr_config = dict( # Learning rate scheduler config used to register LrUpdater hook + policy='step', # Policy of scheduler, also support CosineAnnealing, Cyclic, etc. Refer to details of supported LrUpdater from https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py#L9 + step=[40, 80]) # Steps to decay the learning rate + total_epochs = 100 # Total epochs to train the model + checkpoint_config = dict( # Config to set the checkpoint hook, Refer to https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/checkpoint.py for implementation + interval=5) # Interval to save checkpoint + evaluation = dict( # Config of evaluation during training + interval=5, # Interval to perform evaluation + metrics=['top_k_accuracy', 'mean_class_accuracy'], # Metrics to be performed + metric_options=dict(top_k_accuracy=dict(topk=(1, 3))), # Set top-k accuracy to 1 and 3 during validation + save_best='top_k_accuracy') # set `top_k_accuracy` as key indicator to save best checkpoint + eval_config = dict( + metric_options=dict(top_k_accuracy=dict(topk=(1, 3)))) # Set top-k accuracy to 1 and 3 during testing. You can also use `--eval top_k_accuracy` to assign evaluation metrics + log_config = dict( # Config to register logger hook + interval=20, # Interval to print the log + hooks=[ # Hooks to be implemented during training + dict(type='TextLoggerHook'), # The logger used to record the training process + # dict(type='TensorboardLoggerHook'), # The Tensorboard logger is also supported + ]) + + # runtime settings + dist_params = dict(backend='nccl') # Parameters to setup distributed training, the port can also be set + log_level = 'INFO' # The level of logging + work_dir = './work_dirs/tsn_r50_1x1x3_100e_kinetics400_rgb/' # Directory to save the model checkpoints and logs for the current experiments + load_from = None # load models as a pre-trained model from a given path. This will not resume training + resume_from = None # Resume checkpoints from a given path, the training will be resumed from the epoch when the checkpoint's is saved + workflow = [('train', 1)] # Workflow for runner. [('train', 1)] means there is only one workflow and the workflow named 'train' is executed once + + ``` + +### Config System for Spatio-Temporal Action Detection + +We incorporate modular design into our config system, which is convenient to conduct various experiments. + +- An Example of FastRCNN + + To help the users have a basic idea of a complete config structure and the modules in a spatio-temporal action detection system, + we make brief comments on the config of FastRCNN as the following. + For more detailed usage and alternative for per parameter in each module, please refer to the API documentation. + + ```python + # model setting + model = dict( # Config of the model + type='FastRCNN', # Type of the detector + backbone=dict( # Dict for backbone + type='ResNet3dSlowOnly', # Name of the backbone + depth=50, # Depth of ResNet model + pretrained=None, # The url/site of the pretrained model + pretrained2d=False, # If the pretrained model is 2D + lateral=False, # If the backbone is with lateral connections + num_stages=4, # Stages of ResNet model + conv1_kernel=(1, 7, 7), # Conv1 kernel size + conv1_stride_t=1, # Conv1 temporal stride + pool1_stride_t=1, # Pool1 temporal stride + spatial_strides=(1, 2, 2, 1)), # The spatial stride for each ResNet stage + roi_head=dict( # Dict for roi_head + type='AVARoIHead', # Name of the roi_head + bbox_roi_extractor=dict( # Dict for bbox_roi_extractor + type='SingleRoIExtractor3D', # Name of the bbox_roi_extractor + roi_layer_type='RoIAlign', # Type of the RoI op + output_size=8, # Output feature size of the RoI op + with_temporal_pool=True), # If temporal dim is pooled + bbox_head=dict( # Dict for bbox_head + type='BBoxHeadAVA', # Name of the bbox_head + in_channels=2048, # Number of channels of the input feature + num_classes=81, # Number of action classes + 1 + multilabel=True, # If the dataset is multilabel + dropout_ratio=0.5)), # The dropout ratio used + # model training and testing settings + train_cfg=dict( # Training config of FastRCNN + rcnn=dict( # Dict for rcnn training config + assigner=dict( # Dict for assigner + type='MaxIoUAssignerAVA', # Name of the assigner + pos_iou_thr=0.9, # IoU threshold for positive examples, > pos_iou_thr -> positive + neg_iou_thr=0.9, # IoU threshold for negative examples, < neg_iou_thr -> negative + min_pos_iou=0.9), # Minimum acceptable IoU for positive examples + sampler=dict( # Dict for sample + type='RandomSampler', # Name of the sampler + num=32, # Batch Size of the sampler + pos_fraction=1, # Positive bbox fraction of the sampler + neg_pos_ub=-1, # Upper bound of the ratio of num negative to num positive + add_gt_as_proposals=True), # Add gt bboxes as proposals + pos_weight=1.0, # Loss weight of positive examples + debug=False)), # Debug mode + test_cfg=dict( # Testing config of FastRCNN + rcnn=dict( # Dict for rcnn testing config + action_thr=0.002))) # The threshold of an action + + # dataset settings + dataset_type = 'AVADataset' # Type of dataset for training, validation and testing + data_root = 'data/ava/rawframes' # Root path to data + anno_root = 'data/ava/annotations' # Root path to annotations + + ann_file_train = f'{anno_root}/ava_train_v2.1.csv' # Path to the annotation file for training + ann_file_val = f'{anno_root}/ava_val_v2.1.csv' # Path to the annotation file for validation + + exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.1.csv' # Path to the exclude annotation file for training + exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.1.csv' # Path to the exclude annotation file for validation + + label_file = f'{anno_root}/ava_action_list_v2.1_for_activitynet_2018.pbtxt' # Path to the label file + + proposal_file_train = f'{anno_root}/ava_dense_proposals_train.FAIR.recall_93.9.pkl' # Path to the human detection proposals for training examples + proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' # Path to the human detection proposals for validation examples + + img_norm_cfg = dict( # Config of image normalization used in data pipeline + mean=[123.675, 116.28, 103.53], # Mean values of different channels to normalize + std=[58.395, 57.12, 57.375], # Std values of different channels to normalize + to_bgr=False) # Whether to convert channels from RGB to BGR + + train_pipeline = [ # List of training pipeline steps + dict( # Config of SampleFrames + type='AVASampleFrames', # Sample frames pipeline, sampling frames from video + clip_len=4, # Frames of each sampled output clip + frame_interval=16), # Temporal interval of adjacent sampled frames + dict( # Config of RawFrameDecode + type='RawFrameDecode'), # Load and decode Frames pipeline, picking raw frames with given indices + dict( # Config of RandomRescale + type='RandomRescale', # Randomly rescale the shortedge by a given range + scale_range=(256, 320)), # The shortedge size range of RandomRescale + dict( # Config of RandomCrop + type='RandomCrop', # Randomly crop a patch with the given size + size=256), # The size of the cropped patch + dict( # Config of Flip + type='Flip', # Flip Pipeline + flip_ratio=0.5), # Probability of implementing flip + dict( # Config of Normalize + type='Normalize', # Normalize pipeline + **img_norm_cfg), # Config of image normalization + dict( # Config of FormatShape + type='FormatShape', # Format shape pipeline, Format final image shape to the given input_format + input_format='NCTHW', # Final image shape format + collapse=True), # Collapse the dim N if N == 1 + dict( # Config of Rename + type='Rename', # Rename keys + mapping=dict(imgs='img')), # The old name to new name mapping + dict( # Config of ToTensor + type='ToTensor', # Convert other types to tensor type pipeline + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), # Keys to be converted from image to tensor + dict( # Config of ToDataContainer + type='ToDataContainer', # Convert other types to DataContainer type pipeline + fields=[ # Fields to convert to DataContainer + dict( # Dict of fields + key=['proposals', 'gt_bboxes', 'gt_labels'], # Keys to Convert to DataContainer + stack=False)]), # Whether to stack these tensor + dict( # Config of Collect + type='Collect', # Collect pipeline that decides which keys in the data should be passed to the detector + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], # Keys of input + meta_keys=['scores', 'entity_ids']), # Meta keys of input + ] + + val_pipeline = [ # List of validation pipeline steps + dict( # Config of SampleFrames + type='AVASampleFrames', # Sample frames pipeline, sampling frames from video + clip_len=4, # Frames of each sampled output clip + frame_interval=16) # Temporal interval of adjacent sampled frames + dict( # Config of RawFrameDecode + type='RawFrameDecode'), # Load and decode Frames pipeline, picking raw frames with given indices + dict( # Config of Resize + type='Resize', # Resize pipeline + scale=(-1, 256)), # The scale to resize images + dict( # Config of Normalize + type='Normalize', # Normalize pipeline + **img_norm_cfg), # Config of image normalization + dict( # Config of FormatShape + type='FormatShape', # Format shape pipeline, Format final image shape to the given input_format + input_format='NCTHW', # Final image shape format + collapse=True), # Collapse the dim N if N == 1 + dict( # Config of Rename + type='Rename', # Rename keys + mapping=dict(imgs='img')), # The old name to new name mapping + dict( # Config of ToTensor + type='ToTensor', # Convert other types to tensor type pipeline + keys=['img', 'proposals']), # Keys to be converted from image to tensor + dict( # Config of ToDataContainer + type='ToDataContainer', # Convert other types to DataContainer type pipeline + fields=[ # Fields to convert to DataContainer + dict( # Dict of fields + key=['proposals'], # Keys to Convert to DataContainer + stack=False)]), # Whether to stack these tensor + dict( # Config of Collect + type='Collect', # Collect pipeline that decides which keys in the data should be passed to the detector + keys=['img', 'proposals'], # Keys of input + meta_keys=['scores', 'entity_ids'], # Meta keys of input + nested=True) # Whether to wrap the data in a nested list + ] + + data = dict( # Config of data + videos_per_gpu=16, # Batch size of each single GPU + workers_per_gpu=2, # Workers to pre-fetch data for each single GPU + val_dataloader=dict( # Additional config of validation dataloader + videos_per_gpu=1), # Batch size of each single GPU during evaluation + train=dict( # Training dataset config + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( # Validation dataset config + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) + data['test'] = data['val'] # Set test_dataset as val_dataset + + # optimizer + optimizer = dict( + # Config used to build optimizer, support (1). All the optimizers in PyTorch + # whose arguments are also the same as those in PyTorch. (2). Custom optimizers + # which are built on `constructor`, referring to "tutorials/5_new_modules.md" + # for implementation. + type='SGD', # Type of optimizer, refer to https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/optimizer/default_constructor.py#L13 for more details + lr=0.2, # Learning rate, see detail usages of the parameters in the documentation of PyTorch (for 8gpu) + momentum=0.9, # Momentum, + weight_decay=0.00001) # Weight decay of SGD + + optimizer_config = dict( # Config used to build the optimizer hook + grad_clip=dict(max_norm=40, norm_type=2)) # Use gradient clip + + lr_config = dict( # Learning rate scheduler config used to register LrUpdater hook + policy='step', # Policy of scheduler, also support CosineAnnealing, Cyclic, etc. Refer to details of supported LrUpdater from https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py#L9 + step=[40, 80], # Steps to decay the learning rate + warmup='linear', # Warmup strategy + warmup_by_epoch=True, # Warmup_iters indicates iter num or epoch num + warmup_iters=5, # Number of iters or epochs for warmup + warmup_ratio=0.1) # The initial learning rate is warmup_ratio * lr + + total_epochs = 20 # Total epochs to train the model + checkpoint_config = dict( # Config to set the checkpoint hook, Refer to https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/checkpoint.py for implementation + interval=1) # Interval to save checkpoint + workflow = [('train', 1)] # Workflow for runner. [('train', 1)] means there is only one workflow and the workflow named 'train' is executed once + evaluation = dict( # Config of evaluation during training + interval=1, save_best='mAP@0.5IOU') # Interval to perform evaluation and the key for saving best checkpoint + log_config = dict( # Config to register logger hook + interval=20, # Interval to print the log + hooks=[ # Hooks to be implemented during training + dict(type='TextLoggerHook'), # The logger used to record the training process + ]) + + # runtime settings + dist_params = dict(backend='nccl') # Parameters to setup distributed training, the port can also be set + log_level = 'INFO' # The level of logging + work_dir = ('./work_dirs/ava/' # Directory to save the model checkpoints and logs for the current experiments + 'slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb') + load_from = ('https://download.openmmlab.com/mmaction/recognition/slowonly/' # load models as a pre-trained model from a given path. This will not resume training + 'slowonly_r50_4x16x1_256e_kinetics400_rgb/' + 'slowonly_r50_4x16x1_256e_kinetics400_rgb_20200704-a69556c6.pth') + resume_from = None # Resume checkpoints from a given path, the training will be resumed from the epoch when the checkpoint's is saved + ``` + +## FAQ + +### Use intermediate variables in configs + +Some intermediate variables are used in the config files, like `train_pipeline`/`val_pipeline`/`test_pipeline`, +`ann_file_train`/`ann_file_val`/`ann_file_test`, `img_norm_cfg` etc. + +For Example, we would like to first define `train_pipeline`/`val_pipeline`/`test_pipeline` and pass them into `data`. +Thus, `train_pipeline`/`val_pipeline`/`test_pipeline` are intermediate variable. + +we also define `ann_file_train`/`ann_file_val`/`ann_file_test` and `data_root`/`data_root_val` to provide data pipeline some +basic information. + +In addition, we use `img_norm_cfg` as intermediate variables to construct data augmentation components. + +```python +... +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.8), + random_crop=False, + max_wh_scale_gap=0), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] + +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) +``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs/tutorials/2_finetune.md b/openmmlab_test/mmaction2-0.24.1/docs/tutorials/2_finetune.md new file mode 100644 index 00000000..ea2c8304 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/tutorials/2_finetune.md @@ -0,0 +1,99 @@ +# Tutorial 2: Finetuning Models + +This tutorial provides instructions for users to use the pre-trained models +to finetune them on other datasets, so that better performance can be achieved. + + + +- [Outline](#outline) +- [Modify Head](#modify-head) +- [Modify Dataset](#modify-dataset) +- [Modify Training Schedule](#modify-training-schedule) +- [Use Pre-Trained Model](#use-pre-trained-model) + + + +## Outline + +There are two steps to finetune a model on a new dataset. + +1. Add support for the new dataset. See [Tutorial 3: Adding New Dataset](3_new_dataset.md). +2. Modify the configs. This will be discussed in this tutorial. + +For example, if the users want to finetune models pre-trained on Kinetics-400 Dataset to another dataset, say UCF101, +then four parts in the config (see [here](1_config.md)) needs attention. + +## Modify Head + +The `num_classes` in the `cls_head` need to be changed to the class number of the new dataset. +The weights of the pre-trained models are reused except for the final prediction layer. +So it is safe to change the class number. +In our case, UCF101 has 101 classes. +So we change it from 400 (class number of Kinetics-400) to 101. + +```python +model = dict( + type='Recognizer2D', + backbone=dict( + type='ResNet', + pretrained='torchvision://resnet50', + depth=50, + norm_eval=False), + cls_head=dict( + type='TSNHead', + num_classes=101, # change from 400 to 101 + in_channels=2048, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.4, + init_std=0.01), + train_cfg=None, + test_cfg=dict(average_clips=None)) +``` + +Note that the `pretrained='torchvision://resnet50'` setting is used for initializing backbone. +If you are training a new model from ImageNet-pretrained weights, this is for you. +However, this setting is not related to our task at hand. +What we need is `load_from`, which will be discussed later. + +## Modify Dataset + +MMAction2 supports UCF101, Kinetics-400, Moments in Time, Multi-Moments in Time, THUMOS14, +Something-Something V1&V2, ActivityNet Dataset. +The users may need to adapt one of the above dataset to fit for their special datasets. +In our case, UCF101 is already supported by various dataset types, like `RawframeDataset`, +so we change the config as follows. + +```python +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'data/ucf101/rawframes_train/' +data_root_val = 'data/ucf101/rawframes_val/' +ann_file_train = 'data/ucf101/ucf101_train_list.txt' +ann_file_val = 'data/ucf101/ucf101_val_list.txt' +ann_file_test = 'data/ucf101/ucf101_val_list.txt' +``` + +## Modify Training Schedule + +Finetuning usually requires smaller learning rate and less training epochs. + +```python +# optimizer +optimizer = dict(type='SGD', lr=0.005, momentum=0.9, weight_decay=0.0001) # change from 0.01 to 0.005 +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# learning policy +lr_config = dict(policy='step', step=[20, 40]) +total_epochs = 50 # change from 100 to 50 +checkpoint_config = dict(interval=5) +``` + +## Use Pre-Trained Model + +To use the pre-trained model for the whole network, the new config adds the link of pre-trained models in the `load_from`. +We set `load_from=None` as default in `configs/_base_/default_runtime.py` and owing to [inheritance design](/docs/tutorials/1_config.md), users can directly change it by setting `load_from` in their configs. + +```python +# use the pre-trained model for the whole TSN network +load_from = 'https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmaction/mmaction-v1/recognition/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth' # model path can be found in model zoo +``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs/tutorials/3_new_dataset.md b/openmmlab_test/mmaction2-0.24.1/docs/tutorials/3_new_dataset.md new file mode 100644 index 00000000..223117aa --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/tutorials/3_new_dataset.md @@ -0,0 +1,252 @@ +# Tutorial 3: Adding New Dataset + +In this tutorial, we will introduce some methods about how to customize your own dataset by reorganizing data and mixing dataset for the project. + + + +- [Customize Datasets by Reorganizing Data](#customize-datasets-by-reorganizing-data) + - [Reorganize datasets to existing format](#reorganize-datasets-to-existing-format) + - [An example of a custom dataset](#an-example-of-a-custom-dataset) +- [Customize Dataset by Mixing Dataset](#customize-dataset-by-mixing-dataset) + - [Repeat dataset](#repeat-dataset) + + + +## Customize Datasets by Reorganizing Data + +### Reorganize datasets to existing format + +The simplest way is to convert your dataset to existing dataset formats (RawframeDataset or VideoDataset). + +There are three kinds of annotation files. + +- rawframe annotation + + The annotation of a rawframe dataset is a text file with multiple lines, + and each line indicates `frame_directory` (relative path) of a video, + `total_frames` of a video and the `label` of a video, which are split by a whitespace. + + Here is an example. + + ``` + some/directory-1 163 1 + some/directory-2 122 1 + some/directory-3 258 2 + some/directory-4 234 2 + some/directory-5 295 3 + some/directory-6 121 3 + ``` + +- video annotation + + The annotation of a video dataset is a text file with multiple lines, + and each line indicates a sample video with the `filepath` (relative path) and `label`, + which are split by a whitespace. + + Here is an example. + + ``` + some/path/000.mp4 1 + some/path/001.mp4 1 + some/path/002.mp4 2 + some/path/003.mp4 2 + some/path/004.mp4 3 + some/path/005.mp4 3 + ``` + +- ActivityNet annotation + + The annotation of ActivityNet dataset is a json file. Each key is a video name + and the corresponding value is the meta data and annotation for the video. + + Here is an example. + + ``` + { + "video1": { + "duration_second": 211.53, + "duration_frame": 6337, + "annotations": [ + { + "segment": [ + 30.025882995319815, + 205.2318595943838 + ], + "label": "Rock climbing" + } + ], + "feature_frame": 6336, + "fps": 30.0, + "rfps": 29.9579255898 + }, + "video2": { + "duration_second": 26.75, + "duration_frame": 647, + "annotations": [ + { + "segment": [ + 2.578755070202808, + 24.914101404056165 + ], + "label": "Drinking beer" + } + ], + "feature_frame": 624, + "fps": 24.0, + "rfps": 24.1869158879 + } + } + ``` + +There are two ways to work with custom datasets. + +- online conversion + + You can write a new Dataset class inherited from [BaseDataset](/mmaction/datasets/base.py), and overwrite three methods + `load_annotations(self)`, `evaluate(self, results, metrics, logger)` and `dump_results(self, results, out)`, + like [RawframeDataset](/mmaction/datasets/rawframe_dataset.py), [VideoDataset](/mmaction/datasets/video_dataset.py) or [ActivityNetDataset](/mmaction/datasets/activitynet_dataset.py). + +- offline conversion + + You can convert the annotation format to the expected format above and save it to + a pickle or json file, then you can simply use `RawframeDataset`, `VideoDataset` or `ActivityNetDataset`. + +After the data pre-processing, the users need to further modify the config files to use the dataset. +Here is an example of using a custom dataset in rawframe format. + +In `configs/task/method/my_custom_config.py`: + +```python +... +# dataset settings +dataset_type = 'RawframeDataset' +data_root = 'path/to/your/root' +data_root_val = 'path/to/your/root_val' +ann_file_train = 'data/custom/custom_train_list.txt' +ann_file_val = 'data/custom/custom_val_list.txt' +ann_file_test = 'data/custom/custom_val_list.txt' +... +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + train=dict( + type=dataset_type, + ann_file=ann_file_train, + ...), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + ...), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + ...)) +... +``` + +We use this way to support Rawframe dataset. + +### An example of a custom dataset + +Assume the annotation is in a new format in text files, and the image file name is of template like `img_00005.jpg` +The video annotations are stored in text file `annotation.txt` as following + +``` +directory,total frames,class +D32_1gwq35E,299,66 +-G-5CJ0JkKY,249,254 +T4h1bvOd9DA,299,33 +4uZ27ivBl00,299,341 +0LfESFkfBSw,249,186 +-YIsNpBEx6c,299,169 +``` + +We can create a new dataset in `mmaction/datasets/my_dataset.py` to load the data. + +```python +import copy +import os.path as osp + +import mmcv + +from .base import BaseDataset +from .builder import DATASETS + + +@DATASETS.register_module() +class MyDataset(BaseDataset): + + def __init__(self, + ann_file, + pipeline, + data_prefix=None, + test_mode=False, + filename_tmpl='img_{:05}.jpg'): + super(MyDataset, self).__init__(ann_file, pipeline, test_mode) + + self.filename_tmpl = filename_tmpl + + def load_annotations(self): + video_infos = [] + with open(self.ann_file, 'r') as fin: + for line in fin: + if line.startswith("directory"): + continue + frame_dir, total_frames, label = line.split(',') + if self.data_prefix is not None: + frame_dir = osp.join(self.data_prefix, frame_dir) + video_infos.append( + dict( + frame_dir=frame_dir, + total_frames=int(total_frames), + label=int(label))) + return video_infos + + def prepare_train_frames(self, idx): + results = copy.deepcopy(self.video_infos[idx]) + results['filename_tmpl'] = self.filename_tmpl + return self.pipeline(results) + + def prepare_test_frames(self, idx): + results = copy.deepcopy(self.video_infos[idx]) + results['filename_tmpl'] = self.filename_tmpl + return self.pipeline(results) + + def evaluate(self, + results, + metrics='top_k_accuracy', + topk=(1, 5), + logger=None): + pass +``` + +Then in the config, to use `MyDataset` you can modify the config as the following + +```python +dataset_A_train = dict( + type='MyDataset', + ann_file=ann_file_train, + pipeline=train_pipeline +) +``` + +## Customize Dataset by Mixing Dataset + +MMAction2 also supports to mix dataset for training. Currently it supports to repeat dataset. + +### Repeat dataset + +We use `RepeatDataset` as wrapper to repeat the dataset. For example, suppose the original dataset as `Dataset_A`, +to repeat it, the config looks like the following + +```python +dataset_A_train = dict( + type='RepeatDataset', + times=N, + dataset=dict( # This is the original config of Dataset_A + type='Dataset_A', + ... + pipeline=train_pipeline + ) + ) +``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs/tutorials/4_data_pipeline.md b/openmmlab_test/mmaction2-0.24.1/docs/tutorials/4_data_pipeline.md new file mode 100644 index 00000000..97c5deb1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/tutorials/4_data_pipeline.md @@ -0,0 +1,262 @@ +# Tutorial 4: Customize Data Pipelines + +In this tutorial, we will introduce some methods about the design of data pipelines, and how to customize and extend your own data pipelines for the project. + + + +- [Tutorial 4: Customize Data Pipelines](#tutorial-4-customize-data-pipelines) + - [Design of Data Pipelines](#design-of-data-pipelines) + - [Data loading](#data-loading) + - [Pre-processing](#pre-processing) + - [Formatting](#formatting) + - [Extend and Use Custom Pipelines](#extend-and-use-custom-pipelines) + + + +## Design of Data Pipelines + +Following typical conventions, we use `Dataset` and `DataLoader` for data loading +with multiple workers. `Dataset` returns a dict of data items corresponding +the arguments of models' forward method. +Since the data in action recognition & localization may not be the same size (image size, gt bbox size, etc.), +The `DataContainer` in MMCV is used to help collect and distribute data of different sizes. +See [here](https://github.com/open-mmlab/mmcv/blob/master/mmcv/parallel/data_container.py) for more details. + +The data preparation pipeline and the dataset is decomposed. Usually a dataset +defines how to process the annotations and a data pipeline defines all the steps to prepare a data dict. +A pipeline consists of a sequence of operations. Each operation takes a dict as input and also output a dict for the next operation. + +We present a typical pipeline in the following figure. The blue blocks are pipeline operations. +With the pipeline going on, each operator can add new keys (marked as green) to the result dict or update the existing keys (marked as orange). +![pipeline figure](https://github.com/open-mmlab/mmaction2/raw/master/resources/data_pipeline.png) + +The operations are categorized into data loading, pre-processing and formatting. + +Here is a pipeline example for TSN. + +```python +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=3), + dict(type='RawFrameDecode', io_backend='disk'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=3, + test_mode=True), + dict(type='RawFrameDecode', io_backend='disk'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode', io_backend='disk'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +``` + +We have supported some lazy operators and encourage users to apply them. +Lazy ops record how the data should be processed, but it will postpone the processing on the raw data until the raw data forward `Fuse` stage. +Specifically, lazy ops avoid frequent reading and modification operation on the raw data, but process the raw data once in the final Fuse stage, thus accelerating data preprocessing. + +Here is a pipeline example applying lazy ops. + +```python +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode', decoding_backend='turbojpeg'), + # The following three lazy ops only process the bbox of frames without + # modifying the raw data. + dict(type='Resize', scale=(-1, 256), lazy=True), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.8), + random_crop=False, + max_wh_scale_gap=0, + lazy=True), + dict(type='Resize', scale=(224, 224), keep_ratio=False, lazy=True), + # Lazy operator `Flip` only record whether a frame should be fliped and the + # flip direction. + dict(type='Flip', flip_ratio=0.5, lazy=True), + # Processing the raw data once in Fuse stage. + dict(type='Fuse'), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +``` + +For each operation, we list the related dict fields that are added/updated/removed below, where `*` means the key may not be affected. + +### Data loading + +`SampleFrames` + +- add: frame_inds, clip_len, frame_interval, num_clips, \*total_frames + +`DenseSampleFrames` + +- add: frame_inds, clip_len, frame_interval, num_clips, \*total_frames + +`PyAVDecode` + +- add: imgs, original_shape +- update: \*frame_inds + +`DecordDecode` + +- add: imgs, original_shape +- update: \*frame_inds + +`OpenCVDecode` + +- add: imgs, original_shape +- update: \*frame_inds + +`RawFrameDecode` + +- add: imgs, original_shape +- update: \*frame_inds + +### Pre-processing + +`RandomCrop` + +- add: crop_bbox, img_shape +- update: imgs + +`RandomResizedCrop` + +- add: crop_bbox, img_shape +- update: imgs + +`MultiScaleCrop` + +- add: crop_bbox, img_shape, scales +- update: imgs + +`Resize` + +- add: img_shape, keep_ratio, scale_factor +- update: imgs + +`Flip` + +- add: flip, flip_direction +- update: imgs, label + +`Normalize` + +- add: img_norm_cfg +- update: imgs + +`CenterCrop` + +- add: crop_bbox, img_shape +- update: imgs + +`ThreeCrop` + +- add: crop_bbox, img_shape +- update: imgs + +`TenCrop` + +- add: crop_bbox, img_shape +- update: imgs + +### Formatting + +`ToTensor` + +- update: specified by `keys`. + +`ImageToTensor` + +- update: specified by `keys`. + +`Transpose` + +- update: specified by `keys`. + +`Collect` + +- add: img_metas (the keys of img_metas is specified by `meta_keys`) +- remove: all other keys except for those specified by `keys` + +It is **noteworthy** that the first key, commonly `imgs`, will be used as the main key to calculate the batch size. + +`FormatShape` + +- add: input_shape +- update: imgs + +## Extend and Use Custom Pipelines + +1. Write a new pipeline in any file, e.g., `my_pipeline.py`. It takes a dict as input and return a dict. + + ```python + from mmaction.datasets import PIPELINES + + @PIPELINES.register_module() + class MyTransform: + + def __call__(self, results): + results['key'] = value + return results + ``` + +2. Import the new class. + + ```python + from .my_pipeline import MyTransform + ``` + +3. Use it in config files. + + ```python + img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) + train_pipeline = [ + dict(type='DenseSampleFrames', clip_len=8, frame_interval=8, num_clips=1), + dict(type='RawFrameDecode', io_backend='disk'), + dict(type='MyTransform'), # use a custom pipeline + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) + ] + ``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs/tutorials/5_new_modules.md b/openmmlab_test/mmaction2-0.24.1/docs/tutorials/5_new_modules.md new file mode 100644 index 00000000..c683c7f9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/tutorials/5_new_modules.md @@ -0,0 +1,291 @@ +# Tutorial 5: Adding New Modules + +In this tutorial, we will introduce some methods about how to customize optimizer, develop new components and new a learning rate scheduler for this project. + + + +- [Customize Optimizer](#customize-optimizer) +- [Customize Optimizer Constructor](#customize-optimizer-constructor) +- [Develop New Components](#develop-new-components) + - [Add new backbones](#add-new-backbones) + - [Add new heads](#add-new-heads) + - [Add new loss](#add-new-loss) +- [Add new learning rate scheduler (updater)](#add-new-learning-rate-scheduler--updater-) + + + +## Customize Optimizer + +An example of customized optimizer is [CopyOfSGD](/mmaction/core/optimizer/copy_of_sgd.py) is defined in `mmaction/core/optimizer/copy_of_sgd.py`. +More generally, a customized optimizer could be defined as following. + +Assume you want to add an optimizer named as `MyOptimizer`, which has arguments `a`, `b` and `c`. +You need to first implement the new optimizer in a file, e.g., in `mmaction/core/optimizer/my_optimizer.py`: + +```python +from mmcv.runner import OPTIMIZERS +from torch.optim import Optimizer + +@OPTIMIZERS.register_module() +class MyOptimizer(Optimizer): + + def __init__(self, a, b, c): +``` + +Then add this module in `mmaction/core/optimizer/__init__.py`, thus the registry will find the new module and add it: + +```python +from .my_optimizer import MyOptimizer +``` + +Then you can use `MyOptimizer` in `optimizer` field of config files. +In the configs, the optimizers are defined by the field `optimizer` like the following: + +```python +optimizer = dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001) +``` + +To use your own optimizer, the field can be changed as + +```python +optimizer = dict(type='MyOptimizer', a=a_value, b=b_value, c=c_value) +``` + +We already support to use all the optimizers implemented by PyTorch, and the only modification is to change the `optimizer` field of config files. +For example, if you want to use `ADAM`, though the performance will drop a lot, the modification could be as the following. + +```python +optimizer = dict(type='Adam', lr=0.0003, weight_decay=0.0001) +``` + +The users can directly set arguments following the [API doc](https://pytorch.org/docs/stable/optim.html?highlight=optim#module-torch.optim) of PyTorch. + +## Customize Optimizer Constructor + +Some models may have some parameter-specific settings for optimization, e.g. weight decay for BatchNorm layers. +The users can do those fine-grained parameter tuning through customizing optimizer constructor. + +You can write a new optimizer constructor inherit from [DefaultOptimizerConstructor](https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/optimizer/default_constructor.py) +and overwrite the `add_params(self, params, module)` method. + +An example of customized optimizer constructor is [TSMOptimizerConstructor](/mmaction/core/optimizer/tsm_optimizer_constructor.py). +More generally, a customized optimizer constructor could be defined as following. + +In `mmaction/core/optimizer/my_optimizer_constructor.py`: + +```python +from mmcv.runner import OPTIMIZER_BUILDERS, DefaultOptimizerConstructor + +@OPTIMIZER_BUILDERS.register_module() +class MyOptimizerConstructor(DefaultOptimizerConstructor): + +``` + +In `mmaction/core/optimizer/__init__.py`: + +```python +from .my_optimizer_constructor import MyOptimizerConstructor +``` + +Then you can use `MyOptimizerConstructor` in `optimizer` field of config files. + +```python +# optimizer +optimizer = dict( + type='SGD', + constructor='MyOptimizerConstructor', + paramwise_cfg=dict(fc_lr5=True), + lr=0.02, + momentum=0.9, + weight_decay=0.0001) +``` + +## Develop New Components + +We basically categorize model components into 4 types. + +- recognizer: the whole recognizer model pipeline, usually contains a backbone and cls_head. +- backbone: usually an FCN network to extract feature maps, e.g., ResNet, BNInception. +- cls_head: the component for classification task, usually contains an FC layer with some pooling layers. +- localizer: the model for temporal localization task, currently available: BSN, BMN, SSN. + +### Add new backbones + +Here we show how to develop new components with an example of TSN. + +1. Create a new file `mmaction/models/backbones/resnet.py`. + + ```python + import torch.nn as nn + + from ..builder import BACKBONES + + @BACKBONES.register_module() + class ResNet(nn.Module): + + def __init__(self, arg1, arg2): + pass + + def forward(self, x): # should return a tuple + pass + + def init_weights(self, pretrained=None): + pass + ``` + +2. Import the module in `mmaction/models/backbones/__init__.py`. + + ```python + from .resnet import ResNet + ``` + +3. Use it in your config file. + + ```python + model = dict( + ... + backbone=dict( + type='ResNet', + arg1=xxx, + arg2=xxx), + ) + ``` + +### Add new heads + +Here we show how to develop a new head with the example of TSNHead as the following. + +1. Create a new file `mmaction/models/heads/tsn_head.py`. + + You can write a new classification head inheriting from [BaseHead](/mmaction/models/heads/base.py), + and overwrite `init_weights(self)` and `forward(self, x)` method. + + ```python + from ..builder import HEADS + from .base import BaseHead + + + @HEADS.register_module() + class TSNHead(BaseHead): + + def __init__(self, arg1, arg2): + pass + + def forward(self, x): + pass + + def init_weights(self): + pass + ``` + +2. Import the module in `mmaction/models/heads/__init__.py` + + ```python + from .tsn_head import TSNHead + ``` + +3. Use it in your config file + + ```python + model = dict( + ... + cls_head=dict( + type='TSNHead', + num_classes=400, + in_channels=2048, + arg1=xxx, + arg2=xxx), + ``` + +### Add new loss + +Assume you want to add a new loss as `MyLoss`. To add a new loss function, the users need implement it in `mmaction/models/losses/my_loss.py`. + +```python +import torch +import torch.nn as nn + +from ..builder import LOSSES + +def my_loss(pred, target): + assert pred.size() == target.size() and target.numel() > 0 + loss = torch.abs(pred - target) + return loss + + +@LOSSES.register_module() +class MyLoss(nn.Module): + + def forward(self, pred, target): + loss = my_loss(pred, target) + return loss +``` + +Then the users need to add it in the `mmaction/models/losses/__init__.py` + +```python +from .my_loss import MyLoss, my_loss +``` + +To use it, modify the `loss_xxx` field. Since MyLoss is for regression, we can use it for the bbox loss `loss_bbox`. + +```python +loss_bbox=dict(type='MyLoss')) +``` + +## Add new learning rate scheduler (updater) + +The default manner of constructing a lr updater(namely, 'scheduler' by pytorch convention), is to modify the config such as: + +```python +... +lr_config = dict(policy='step', step=[20, 40]) +... +``` + +In the api for [`train.py`](/mmaction/apis/train.py), it will register the learning rate updater hook based on the config at: + +```python +... + runner.register_training_hooks( + cfg.lr_config, + optimizer_config, + cfg.checkpoint_config, + cfg.log_config, + cfg.get('momentum_config', None)) +... +``` + +So far, the supported updaters can be find in [mmcv](https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py), but if you want to customize a new learning rate updater, you may follow the steps below: + +1. First, write your own LrUpdaterHook in `$MMAction2/mmaction/core/scheduler`. The snippet followed is an example of customized lr updater that uses learning rate based on a specific learning rate ratio: `lrs`, by which the learning rate decreases at each `steps`: + +```python +@HOOKS.register_module() +# Register it here +class RelativeStepLrUpdaterHook(LrUpdaterHook): + # You should inheritate it from mmcv.LrUpdaterHook + def __init__(self, steps, lrs, **kwargs): + super().__init__(**kwargs) + assert len(steps) == (len(lrs)) + self.steps = steps + self.lrs = lrs + + def get_lr(self, runner, base_lr): + # Only this function is required to override + # This function is called before each training epoch, return the specific learning rate here. + progress = runner.epoch if self.by_epoch else runner.iter + for i in range(len(self.steps)): + if progress < self.steps[i]: + return self.lrs[i] +``` + +2. Modify your config: + +In your config file, swap the original `lr_config` by: + +```python +lr_config = dict(policy='RelativeStep', steps=[20, 40, 60], lrs=[0.1, 0.01, 0.001]) +``` + +More examples can be found in [mmcv](https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py). diff --git a/openmmlab_test/mmaction2-0.24.1/docs/tutorials/6_export_model.md b/openmmlab_test/mmaction2-0.24.1/docs/tutorials/6_export_model.md new file mode 100644 index 00000000..d445ab12 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/tutorials/6_export_model.md @@ -0,0 +1,74 @@ +# Tutorial 6: Exporting a model to ONNX + +Open Neural Network Exchange [(ONNX)](https://onnx.ai/) is an open ecosystem that empowers AI developers to choose the right tools as their project evolves. + + + +- [Supported Models](#supported-models) +- [Usage](#usage) + - [Prerequisite](#prerequisite) + - [Recognizers](#recognizers) + - [Localizers](#localizers) + + + +## Supported Models + +So far, our codebase supports onnx exporting from pytorch models trained with MMAction2. The supported models are: + +- I3D +- TSN +- TIN +- TSM +- R(2+1)D +- SLOWFAST +- SLOWONLY +- BMN +- BSN(tem, pem) + +## Usage + +For simple exporting, you can use the [script](/tools/deployment/pytorch2onnx.py) here. Note that the package `onnx` and `onnxruntime` are required for verification after exporting. + +### Prerequisite + +First, install onnx. + +```shell +pip install onnx onnxruntime +``` + +We provide a python script to export the pytorch model trained by MMAction2 to ONNX. + +```shell +python tools/deployment/pytorch2onnx.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--shape ${SHAPE}] \ + [--verify] [--show] [--output-file ${OUTPUT_FILE}] [--is-localizer] [--opset-version ${VERSION}] +``` + +Optional arguments: + +- `--shape`: The shape of input tensor to the model. For 2D recognizer(e.g. TSN), the input should be `$batch $clip $channel $height $width`(e.g. `1 1 3 224 224`); For 3D recognizer(e.g. I3D), the input should be `$batch $clip $channel $time $height $width`(e.g. `1 1 3 32 224 224`); For localizer such as BSN, the input for each module is different, please check the `forward` function for it. If not specified, it will be set to `1 1 3 224 224`. +- `--verify`: Determines whether to verify the exported model, runnably and numerically. If not specified, it will be set to `False`. +- `--show`: Determines whether to print the architecture of the exported model. If not specified, it will be set to `False`. +- `--output-file`: The output onnx model name. If not specified, it will be set to `tmp.onnx`. +- `--is-localizer`: Determines whether the model to be exported is a localizer. If not specified, it will be set to `False`. +- `--opset-version`: Determines the operation set version of onnx, we recommend you to use a higher version such as 11 for compatibility. If not specified, it will be set to `11`. +- `--softmax`: Determines whether to add a softmax layer at the end of recognizers. If not specified, it will be set to `False`. For now, localizers are not supported. + +### Recognizers + +For recognizers, please run: + +```shell +python tools/deployment/pytorch2onnx.py $CONFIG_PATH $CHECKPOINT_PATH --shape $SHAPE --verify +``` + +### Localizers + +For localizers, please run: + +```shell +python tools/deployment/pytorch2onnx.py $CONFIG_PATH $CHECKPOINT_PATH --is-localizer --shape $SHAPE --verify +``` + +Please fire an issue if you discover any checkpoints that are not perfectly exported or suffer some loss in accuracy. diff --git a/openmmlab_test/mmaction2-0.24.1/docs/tutorials/7_customize_runtime.md b/openmmlab_test/mmaction2-0.24.1/docs/tutorials/7_customize_runtime.md new file mode 100644 index 00000000..e0f2834d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/tutorials/7_customize_runtime.md @@ -0,0 +1,350 @@ +# Tutorial 7: Customize Runtime Settings + +In this tutorial, we will introduce some methods about how to customize optimization methods, training schedules, workflow and hooks when running your own settings for the project. + + + +- [Customize Optimization Methods](#customize-optimization-methods) + - [Customize optimizer supported by PyTorch](#customize-optimizer-supported-by-pytorch) + - [Customize self-implemented optimizer](#customize-self-implemented-optimizer) + - [1. Define a new optimizer](#1-define-a-new-optimizer) + - [2. Add the optimizer to registry](#2-add-the-optimizer-to-registry) + - [3. Specify the optimizer in the config file](#3-specify-the-optimizer-in-the-config-file) + - [Customize optimizer constructor](#customize-optimizer-constructor) + - [Additional settings](#additional-settings) +- [Customize Training Schedules](#customize-training-schedules) +- [Customize Workflow](#customize-workflow) +- [Customize Hooks](#customize-hooks) + - [Customize self-implemented hooks](#customize-self-implemented-hooks) + - [1. Implement a new hook](#1-implement-a-new-hook) + - [2. Register the new hook](#2-register-the-new-hook) + - [3. Modify the config](#3-modify-the-config) + - [Use hooks implemented in MMCV](#use-hooks-implemented-in-mmcv) + - [Modify default runtime hooks](#modify-default-runtime-hooks) + - [Checkpoint config](#checkpoint-config) + - [Log config](#log-config) + - [Evaluation config](#evaluation-config) + + + +## Customize Optimization Methods + +### Customize optimizer supported by PyTorch + +We already support to use all the optimizers implemented by PyTorch, and the only modification is to change the `optimizer` field of config files. +For example, if you want to use `Adam`, the modification could be as the following. + +```python +optimizer = dict(type='Adam', lr=0.0003, weight_decay=0.0001) +``` + +To modify the learning rate of the model, the users only need to modify the `lr` in the config of optimizer. +The users can directly set arguments following the [API doc](https://pytorch.org/docs/stable/optim.html?highlight=optim#module-torch.optim) of PyTorch. + +For example, if you want to use `Adam` with the setting like `torch.optim.Adam(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0, amsgrad=False)` in PyTorch, +the modification could be set as the following. + +```python +optimizer = dict(type='Adam', lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0, amsgrad=False) +``` + +### Customize self-implemented optimizer + +#### 1. Define a new optimizer + +A customized optimizer could be defined as following. + +Assume you want to add an optimizer named `MyOptimizer`, which has arguments `a`, `b`, and `c`. +You need to create a new directory named `mmaction/core/optimizer`. +And then implement the new optimizer in a file, e.g., in `mmaction/core/optimizer/my_optimizer.py`: + +```python +from mmcv.runner import OPTIMIZERS +from torch.optim import Optimizer + + +@OPTIMIZERS.register_module() +class MyOptimizer(Optimizer): + + def __init__(self, a, b, c): + +``` + +#### 2. Add the optimizer to registry + +To find the above module defined above, this module should be imported into the main namespace at first. There are two ways to achieve it. + +- Modify `mmaction/core/optimizer/__init__.py` to import it. + + The newly defined module should be imported in `mmaction/core/optimizer/__init__.py` so that the registry will + find the new module and add it: + +```python +from .my_optimizer import MyOptimizer +``` + +- Use `custom_imports` in the config to manually import it + +```python +custom_imports = dict(imports=['mmaction.core.optimizer.my_optimizer'], allow_failed_imports=False) +``` + +The module `mmaction.core.optimizer.my_optimizer` will be imported at the beginning of the program and the class `MyOptimizer` is then automatically registered. +Note that only the package containing the class `MyOptimizer` should be imported. `mmaction.core.optimizer.my_optimizer.MyOptimizer` **cannot** be imported directly. + +#### 3. Specify the optimizer in the config file + +Then you can use `MyOptimizer` in `optimizer` field of config files. +In the configs, the optimizers are defined by the field `optimizer` like the following: + +```python +optimizer = dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001) +``` + +To use your own optimizer, the field can be changed to + +```python +optimizer = dict(type='MyOptimizer', a=a_value, b=b_value, c=c_value) +``` + +### Customize optimizer constructor + +Some models may have some parameter-specific settings for optimization, e.g. weight decay for BatchNorm layers. +The users can do those fine-grained parameter tuning through customizing optimizer constructor. + +```python +from mmcv.runner.optimizer import OPTIMIZER_BUILDERS + + +@OPTIMIZER_BUILDERS.register_module() +class MyOptimizerConstructor: + + def __init__(self, optimizer_cfg, paramwise_cfg=None): + pass + + def __call__(self, model): + + return my_optimizer +``` + +The default optimizer constructor is implemented [here](https://github.com/open-mmlab/mmcv/blob/9ecd6b0d5ff9d2172c49a182eaa669e9f27bb8e7/mmcv/runner/optimizer/default_constructor.py#L11), +which could also serve as a template for new optimizer constructor. + +### Additional settings + +Tricks not implemented by the optimizer should be implemented through optimizer constructor (e.g., set parameter-wise learning rates) or hooks. +We list some common settings that could stabilize the training or accelerate the training. Feel free to create PR, issue for more settings. + +- __Use gradient clip to stabilize training__: + Some models need gradient clip to clip the gradients to stabilize the training process. An example is as below: + + ```python + optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2)) + ``` + +- __Use momentum schedule to accelerate model convergence__: + We support momentum scheduler to modify model's momentum according to learning rate, which could make the model converge in a faster way. + Momentum scheduler is usually used with LR scheduler, for example, the following config is used in 3D detection to accelerate convergence. + For more details, please refer to the implementation of [CyclicLrUpdater](https://github.com/open-mmlab/mmcv/blob/f48241a65aebfe07db122e9db320c31b685dc674/mmcv/runner/hooks/lr_updater.py#L327) + and [CyclicMomentumUpdater](https://github.com/open-mmlab/mmcv/blob/f48241a65aebfe07db122e9db320c31b685dc674/mmcv/runner/hooks/momentum_updater.py#L130). + + ```python + lr_config = dict( + policy='cyclic', + target_ratio=(10, 1e-4), + cyclic_times=1, + step_ratio_up=0.4, + ) + momentum_config = dict( + policy='cyclic', + target_ratio=(0.85 / 0.95, 1), + cyclic_times=1, + step_ratio_up=0.4, + ) + ``` + +## Customize Training Schedules + +we use step learning rate with default value in config files, this calls [`StepLRHook`](https://github.com/open-mmlab/mmcv/blob/f48241a65aebfe07db122e9db320c31b685dc674/mmcv/runner/hooks/lr_updater.py#L153) in MMCV. +We support many other learning rate schedule [here](https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py), such as `CosineAnnealing` and `Poly` schedule. Here are some examples + +- Poly schedule: + + ```python + lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False) + ``` + +- ConsineAnnealing schedule: + + ```python + lr_config = dict( + policy='CosineAnnealing', + warmup='linear', + warmup_iters=1000, + warmup_ratio=1.0 / 10, + min_lr_ratio=1e-5) + ``` + +## Customize Workflow + +By default, we recommend users to use `EvalHook` to do evaluation after training epoch, but they can still use `val` workflow as an alternative. + +Workflow is a list of (phase, epochs) to specify the running order and epochs. By default it is set to be + +```python +workflow = [('train', 1)] +``` + +which means running 1 epoch for training. +Sometimes user may want to check some metrics (e.g. loss, accuracy) about the model on the validate set. +In such case, we can set the workflow as + +```python +[('train', 1), ('val', 1)] +``` + +so that 1 epoch for training and 1 epoch for validation will be run iteratively. + +:::{note} + +1. The parameters of model will not be updated during val epoch. +2. Keyword `total_epochs` in the config only controls the number of training epochs and will not affect the validation workflow. +3. Workflows `[('train', 1), ('val', 1)]` and `[('train', 1)]` will not change the behavior of `EvalHook` because `EvalHook` is called by `after_train_epoch` and validation workflow only affect hooks that are called through `after_val_epoch`. + Therefore, the only difference between `[('train', 1), ('val', 1)]` and `[('train', 1)]` is that the runner will calculate losses on validation set after each training epoch. + +::: + +## Customize Hooks + +### Customize self-implemented hooks + +#### 1. Implement a new hook + +Here we give an example of creating a new hook in MMAction2 and using it in training. + +```python +from mmcv.runner import HOOKS, Hook + + +@HOOKS.register_module() +class MyHook(Hook): + + def __init__(self, a, b): + pass + + def before_run(self, runner): + pass + + def after_run(self, runner): + pass + + def before_epoch(self, runner): + pass + + def after_epoch(self, runner): + pass + + def before_iter(self, runner): + pass + + def after_iter(self, runner): + pass +``` + +Depending on the functionality of the hook, the users need to specify what the hook will do at each stage of the training in `before_run`, `after_run`, `before_epoch`, `after_epoch`, `before_iter`, and `after_iter`. + +#### 2. Register the new hook + +Then we need to make `MyHook` imported. Assuming the file is in `mmaction/core/utils/my_hook.py` there are two ways to do that: + +- Modify `mmaction/core/utils/__init__.py` to import it. + + The newly defined module should be imported in `mmaction/core/utils/__init__.py` so that the registry will + find the new module and add it: + +```python +from .my_hook import MyHook +``` + +- Use `custom_imports` in the config to manually import it + +```python +custom_imports = dict(imports=['mmaction.core.utils.my_hook'], allow_failed_imports=False) +``` + +#### 3. Modify the config + +```python +custom_hooks = [ + dict(type='MyHook', a=a_value, b=b_value) +] +``` + +You can also set the priority of the hook by adding key `priority` to `'NORMAL'` or `'HIGHEST'` as below + +```python +custom_hooks = [ + dict(type='MyHook', a=a_value, b=b_value, priority='NORMAL') +] +``` + +By default the hook's priority is set as `NORMAL` during registration. + +### Use hooks implemented in MMCV + +If the hook is already implemented in MMCV, you can directly modify the config to use the hook as below + +```python +mmcv_hooks = [ + dict(type='MMCVHook', a=a_value, b=b_value, priority='NORMAL') +] +``` + +### Modify default runtime hooks + +There are some common hooks that are not registered through `custom_hooks` but has been registered by default when importing MMCV, they are + +- log_config +- checkpoint_config +- evaluation +- lr_config +- optimizer_config +- momentum_config + +In those hooks, only the logger hook has the `VERY_LOW` priority, others' priority are `NORMAL`. +The above-mentioned tutorials already cover how to modify `optimizer_config`, `momentum_config`, and `lr_config`. +Here we reveals how what we can do with `log_config`, `checkpoint_config`, and `evaluation`. + +#### Checkpoint config + +The MMCV runner will use `checkpoint_config` to initialize [`CheckpointHook`](https://github.com/open-mmlab/mmcv/blob/9ecd6b0d5ff9d2172c49a182eaa669e9f27bb8e7/mmcv/runner/hooks/checkpoint.py#L9). + +```python +checkpoint_config = dict(interval=1) +``` + +The users could set `max_keep_ckpts` to only save only small number of checkpoints or decide whether to store state dict of optimizer by `save_optimizer`. +More details of the arguments are [here](https://mmcv.readthedocs.io/en/latest/api.html#mmcv.runner.CheckpointHook) + +#### Log config + +The `log_config` wraps multiple logger hooks and enables to set intervals. Now MMCV supports `WandbLoggerHook`, `MlflowLoggerHook`, and `TensorboardLoggerHook`. +The detail usages can be found in the [doc](https://mmcv.readthedocs.io/en/latest/api.html#mmcv.runner.LoggerHook). + +```python +log_config = dict( + interval=50, + hooks=[ + dict(type='TextLoggerHook'), + dict(type='TensorboardLoggerHook') + ]) +``` + +#### Evaluation config + +The config of `evaluation` will be used to initialize the [`EvalHook`](https://github.com/open-mmlab/mmaction2/blob/master/mmaction/core/evaluation/eval_hooks.py#L12). +Except the key `interval`, other arguments such as `metrics` will be passed to the `dataset.evaluate()` + +```python +evaluation = dict(interval=1, metrics='bbox') +``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs/useful_tools.md b/openmmlab_test/mmaction2-0.24.1/docs/useful_tools.md new file mode 100644 index 00000000..08606102 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs/useful_tools.md @@ -0,0 +1,230 @@ +Apart from training/testing scripts, We provide lots of useful tools under the `tools/` directory. + +## Useful Tools Link + + + +- [Useful Tools Link](#useful-tools-link) +- [Log Analysis](#log-analysis) +- [Model Complexity](#model-complexity) +- [Model Conversion](#model-conversion) + - [MMAction2 model to ONNX (experimental)](#mmaction2-model-to-onnx-experimental) + - [Prepare a model for publishing](#prepare-a-model-for-publishing) +- [Model Serving](#model-serving) + - [1. Convert model from MMAction2 to TorchServe](#1-convert-model-from-mmaction2-to-torchserve) + - [2. Build `mmaction-serve` docker image](#2-build-mmaction-serve-docker-image) + - [3. Launch `mmaction-serve`](#3-launch-mmaction-serve) + - [4. Test deployment](#4-test-deployment) +- [Miscellaneous](#miscellaneous) + - [Evaluating a metric](#evaluating-a-metric) + - [Print the entire config](#print-the-entire-config) + - [Check videos](#check-videos) + + + +## Log Analysis + +`tools/analysis/analyze_logs.py` plots loss/top-k acc curves given a training log file. Run `pip install seaborn` first to install the dependency. + +![acc_curve_image](https://github.com/open-mmlab/mmaction2/raw/master/resources/acc_curve.png) + +```shell +python tools/analysis/analyze_logs.py plot_curve ${JSON_LOGS} [--keys ${KEYS}] [--title ${TITLE}] [--legend ${LEGEND}] [--backend ${BACKEND}] [--style ${STYLE}] [--out ${OUT_FILE}] +``` + +Examples: + +- Plot the classification loss of some run. + + ```shell + python tools/analysis/analyze_logs.py plot_curve log.json --keys loss_cls --legend loss_cls + ``` + +- Plot the top-1 acc and top-5 acc of some run, and save the figure to a pdf. + + ```shell + python tools/analysis/analyze_logs.py plot_curve log.json --keys top1_acc top5_acc --out results.pdf + ``` + +- Compare the top-1 acc of two runs in the same figure. + + ```shell + python tools/analysis/analyze_logs.py plot_curve log1.json log2.json --keys top1_acc --legend run1 run2 + ``` + + You can also compute the average training speed. + + ```shell + python tools/analysis/analyze_logs.py cal_train_time ${JSON_LOGS} [--include-outliers] + ``` + +- Compute the average training speed for a config file. + + ```shell + python tools/analysis/analyze_logs.py cal_train_time work_dirs/some_exp/20200422_153324.log.json + ``` + + The output is expected to be like the following. + + ```text + -----Analyze train time of work_dirs/some_exp/20200422_153324.log.json----- + slowest epoch 60, average time is 0.9736 + fastest epoch 18, average time is 0.9001 + time std over epochs is 0.0177 + average iter time: 0.9330 s/iter + ``` + +## Model Complexity + +`/tools/analysis/get_flops.py` is a script adapted from [flops-counter.pytorch](https://github.com/sovrasov/flops-counter.pytorch) to compute the FLOPs and params of a given model. + +```shell +python tools/analysis/get_flops.py ${CONFIG_FILE} [--shape ${INPUT_SHAPE}] +``` + +We will get the result like this + +```text +============================== +Input shape: (1, 3, 32, 340, 256) +Flops: 37.1 GMac +Params: 28.04 M +============================== +``` + +:::{note} +This tool is still experimental and we do not guarantee that the number is absolutely correct. +You may use the result for simple comparisons, but double check it before you adopt it in technical reports or papers. + +(1) FLOPs are related to the input shape while parameters are not. The default input shape is (1, 3, 340, 256) for 2D recognizer, (1, 3, 32, 340, 256) for 3D recognizer. +(2) Some operators are not counted into FLOPs like GN and custom operators. Refer to [`mmcv.cnn.get_model_complexity_info()`](https://github.com/open-mmlab/mmcv/blob/master/mmcv/cnn/utils/flops_counter.py) for details. +::: + +## Model Conversion + +### MMAction2 model to ONNX (experimental) + +`/tools/deployment/pytorch2onnx.py` is a script to convert model to [ONNX](https://github.com/onnx/onnx) format. +It also supports comparing the output results between Pytorch and ONNX model for verification. +Run `pip install onnx onnxruntime` first to install the dependency. +Please note that a softmax layer could be added for recognizers by `--softmax` option, in order to get predictions in range `[0, 1]`. + +- For recognizers, please run: + + ```shell + python tools/deployment/pytorch2onnx.py $CONFIG_PATH $CHECKPOINT_PATH --shape $SHAPE --verify + ``` + +- For localizers, please run: + + ```shell + python tools/deployment/pytorch2onnx.py $CONFIG_PATH $CHECKPOINT_PATH --is-localizer --shape $SHAPE --verify + ``` + +### Prepare a model for publishing + +`tools/deployment/publish_model.py` helps users to prepare their model for publishing. + +Before you upload a model to AWS, you may want to: + +(1) convert model weights to CPU tensors. +(2) delete the optimizer states. +(3) compute the hash of the checkpoint file and append the hash id to the filename. + +```shell +python tools/deployment/publish_model.py ${INPUT_FILENAME} ${OUTPUT_FILENAME} +``` + +E.g., + +```shell +python tools/deployment/publish_model.py work_dirs/tsn_r50_1x1x3_100e_kinetics400_rgb/latest.pth tsn_r50_1x1x3_100e_kinetics400_rgb.pth +``` + +The final output filename will be `tsn_r50_1x1x3_100e_kinetics400_rgb-{hash id}.pth`. + +## Model Serving + +In order to serve an `MMAction2` model with [`TorchServe`](https://pytorch.org/serve/), you can follow the steps: + +### 1. Convert model from MMAction2 to TorchServe + +```shell +python tools/deployment/mmaction2torchserve.py ${CONFIG_FILE} ${CHECKPOINT_FILE} \ +--output_folder ${MODEL_STORE} \ +--model-name ${MODEL_NAME} \ +--label-file ${LABLE_FILE} + +``` + +### 2. Build `mmaction-serve` docker image + +```shell +DOCKER_BUILDKIT=1 docker build -t mmaction-serve:latest docker/serve/ +``` + +### 3. Launch `mmaction-serve` + +Check the official docs for [running TorchServe with docker](https://github.com/pytorch/serve/blob/master/docker/README.md#running-torchserve-in-a-production-docker-environment). + +Example: + +```shell +docker run --rm \ +--cpus 8 \ +--gpus device=0 \ +-p8080:8080 -p8081:8081 -p8082:8082 \ +--mount type=bind,source=$MODEL_STORE,target=/home/model-server/model-store \ +mmaction-serve:latest +``` + +**Note**: ${MODEL_STORE} needs to be an absolute path. +[Read the docs](https://github.com/pytorch/serve/blob/072f5d088cce9bb64b2a18af065886c9b01b317b/docs/rest_api.md) about the Inference (8080), Management (8081) and Metrics (8082) APis + +### 4. Test deployment + +```shell +# Assume you are under the directory `mmaction2` +curl http://127.0.0.1:8080/predictions/${MODEL_NAME} -T demo/demo.mp4 +``` + +You should obtain a response similar to: + +```json +{ + "arm wrestling": 1.0, + "rock scissors paper": 4.962051880497143e-10, + "shaking hands": 3.9761663406245873e-10, + "massaging feet": 1.1924419784925533e-10, + "stretching leg": 1.0601879096849842e-10 +} +``` + +## Miscellaneous + +### Evaluating a metric + +`tools/analysis/eval_metric.py` evaluates certain metrics of the results saved in a file according to a config file. + +The saved result file is created on `tools/test.py` by setting the arguments `--out ${RESULT_FILE}` to indicate the result file, +which stores the final output of the whole model. + +```shell +python tools/analysis/eval_metric.py ${CONFIG_FILE} ${RESULT_FILE} [--eval ${EVAL_METRICS}] [--cfg-options ${CFG_OPTIONS}] [--eval-options ${EVAL_OPTIONS}] +``` + +### Print the entire config + +`tools/analysis/print_config.py` prints the whole config verbatim, expanding all its imports. + +```shell +python tools/print_config.py ${CONFIG} [-h] [--options ${OPTIONS [OPTIONS...]}] +``` + +### Check videos + +`tools/analysis/check_videos.py` uses specified video encoder to iterate all samples that are specified by the input configuration file, looks for invalid videos (corrupted or missing), and saves the corresponding file path to the output file. Please note that after deleting invalid videos, users need to regenerate the video file list. + +```shell +python tools/analysis/check_videos.py ${CONFIG} [-h] [--options OPTIONS [OPTIONS ...]] [--cfg-options CFG_OPTIONS [CFG_OPTIONS ...]] [--output-file OUTPUT_FILE] [--split SPLIT] [--decoder DECODER] [--num-processes NUM_PROCESSES] [--remove-corrupted-videos] +``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/Makefile b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/Makefile new file mode 100644 index 00000000..d4bb2cbb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/README.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/README.md new file mode 100644 index 00000000..94dfbcae --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/README.md @@ -0,0 +1 @@ +../README_zh-CN.md diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/api.rst b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/api.rst new file mode 100644 index 00000000..ecc9b810 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/api.rst @@ -0,0 +1,101 @@ +mmaction.apis +------------- +.. automodule:: mmaction.apis + :members: + +mmaction.core +------------- + +optimizer +^^^^^^^^^ +.. automodule:: mmaction.core.optimizer + :members: + +evaluation +^^^^^^^^^^ +.. automodule:: mmaction.core.evaluation + :members: + +scheduler +^^ +.. automodule:: mmaction.core.scheduler + :members: + +mmaction.localization +--------------------- + +localization +^^^^^^^^^^^^ +.. automodule:: mmaction.localization + :members: + +mmaction.models +--------------- + +models +^^^^^^ +.. automodule:: mmaction.models + :members: + +recognizers +^^^^^^^^^^^ +.. automodule:: mmaction.models.recognizers + :members: + +localizers +^^^^^^^^^^ +.. automodule:: mmaction.models.localizers + :members: + +common +^^^^^^ +.. automodule:: mmaction.models.common + :members: + +backbones +^^^^^^^^^ +.. automodule:: mmaction.models.backbones + :members: + +heads +^^^^^ +.. automodule:: mmaction.models.heads + :members: + +necks +^^^^^ +.. automodule:: mmaction.models.necks + :members: + +losses +^^^^^^ +.. automodule:: mmaction.models.losses + :members: + +mmaction.datasets +----------------- + +datasets +^^^^^^^^ +.. automodule:: mmaction.datasets + :members: + +pipelines +^^^^^^^^^ +.. automodule:: mmaction.datasets.pipelines + :members: + +samplers +^^^^^^^^ +.. automodule:: mmaction.datasets.samplers + :members: + +mmaction.utils +-------------- +.. automodule:: mmaction.utils + :members: + +mmaction.localization +--------------------- +.. automodule:: mmaction.localization + :members: diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/benchmark.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/benchmark.md new file mode 100644 index 00000000..a737f948 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/benchmark.md @@ -0,0 +1,157 @@ +# 基准测试 + +这里将 MMAction2 与其他流行的代码框架和官方开源代码的速度性能进行对比 + +## 配置 + +### 硬件环境 + +- 8 NVIDIA Tesla V100 (32G) GPUs +- Intel(R) Xeon(R) Gold 6146 CPU @ 3.20GHz + +### 软件环境 + +- Python 3.7 +- PyTorch 1.4 +- CUDA 10.1 +- CUDNN 7.6.03 +- NCCL 2.4.08 + +### 评测指标 + +这里测量的时间是一轮训练迭代的平均时间,包括数据处理和模型训练。 +训练速度以 s/iter 为单位,其值越低越好。注意,这里跳过了前 50 个迭代时间,因为它们可能包含设备的预热时间。 + +### 比较规则 + +这里以一轮训练迭代时间为基准,使用了相同的数据和模型设置对 MMAction2 和其他的视频理解工具箱进行比较。参与评测的其他代码库包括 + +- MMAction: commit id [7f3490d](https://github.com/open-mmlab/mmaction/tree/7f3490d3db6a67fe7b87bfef238b757403b670e3)(1/5/2020) +- Temporal-Shift-Module: commit id [8d53d6f](https://github.com/mit-han-lab/temporal-shift-module/tree/8d53d6fda40bea2f1b37a6095279c4b454d672bd)(5/5/2020) +- PySlowFast: commit id [8299c98](https://github.com/facebookresearch/SlowFast/tree/8299c9862f83a067fa7114ce98120ae1568a83ec)(7/7/2020) +- BSN(boundary sensitive network): commit id [f13707f](https://github.com/wzmsltw/BSN-boundary-sensitive-network/tree/f13707fbc362486e93178c39f9c4d398afe2cb2f)(12/12/2018) +- BMN(boundary matching network): commit id [45d0514](https://github.com/JJBOY/BMN-Boundary-Matching-Network/tree/45d05146822b85ca672b65f3d030509583d0135a)(17/10/2019) + +为了公平比较,这里基于相同的硬件环境和数据进行对比实验。 +使用的视频帧数据集是通过 [数据准备工具](/tools/data/kinetics/README.md) 生成的, +使用的视频数据集是通过 [该脚本](/tools/data/resize_videos.py) 生成的,以快速解码为特点的,"短边 256,密集关键帧编码“的视频数据集。 +正如以下表格所示,在对比正常的短边 256 视频时,可以观察到速度上的显著提升,尤其是在采样特别稀疏的情况下,如 [TSN](/configs/recognition/tsn/tsn_r50_video_320p_1x1x3_100e_kinetics400_rgb.py)。 + +## 主要结果 + +### 行为识别器 + +| 模型 | 输入 | IO 后端 | 批大小 x GPU 数量 | MMAction2 (s/iter) | GPU 显存占用 (GB) | MMAction (s/iter) | GPU 显存占用 (GB) | Temporal-Shift-Module (s/iter) | GPU 显存占用 (GB) | PySlowFast (s/iter) | GPU 显存占用 (GB) | +| :------------------------------------------------------------------------------------------ | :----------------------: | :-------: | :---------------: | :-------------------------------------------------------------------------------------------------------------------------: | :---------------: | :------------------------------------------------------------------------------------------------------------------: | :---------------: | :-------------------------------------------------------------------------------------------------------------------------------: | :---------------: | :--------------------------------------------------------------------------------------------------------------------: | :---------------: | +| [TSN](/configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py) | 256p rawframes | Memcached | 32x8 | **[0.32](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/tsn_256p_rawframes_memcahed_32x8.zip)** | 8.1 | [0.38](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction/tsn_256p_rawframes_memcached_32x8.zip) | 8.1 | [0.42](https://download.openmmlab.com/mmaction/benchmark/recognition/temporal_shift_module/tsn_256p_rawframes_memcached_32x8.zip) | 10.5 | x | x | +| [TSN](/configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py) | 256p videos | Disk | 32x8 | **[1.42](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/tsn_256p_videos_disk_32x8.zip)** | 8.1 | x | x | x | x | TODO | TODO | +| [TSN](/configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py) | 256p dense-encoded video | Disk | 32x8 | **[0.61](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/tsn_256p_fast_videos_disk_32x8.zip)** | 8.1 | x | x | x | x | TODO | TODO | +| [I3D heavy](/configs/recognition/i3d/i3d_r50_video_heavy_8x8x1_100e_kinetics400_rgb.py) | 256p videos | Disk | 8x8 | **[0.34](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/i3d_heavy_256p_videos_disk_8x8.zip)** | 4.6 | x | x | x | x | [0.44](https://download.openmmlab.com/mmaction/benchmark/recognition/pyslowfast/pysf_i3d_r50_8x8_video.log) | 4.6 | +| [I3D heavy](/configs/recognition/i3d/i3d_r50_video_heavy_8x8x1_100e_kinetics400_rgb.py) | 256p dense-encoded video | Disk | 8x8 | **[0.35](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/i3d_heavy_256p_fast_videos_disk_8x8.zip)** | 4.6 | x | x | x | x | [0.36](https://download.openmmlab.com/mmaction/benchmark/recognition/pyslowfast/pysf_i3d_r50_8x8_fast_video.log) | 4.6 | +| [I3D](/configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py) | 256p rawframes | Memcached | 8x8 | **[0.43](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/i3d_256p_rawframes_memcahed_8x8.zip)** | 5.0 | [0.56](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction/i3d_256p_rawframes_memcached_8x8.zip) | 5.0 | x | x | x | x | +| [TSM](/configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py) | 256p rawframes | Memcached | 8x8 | **[0.31](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/tsm_256p_rawframes_memcahed_8x8.zip)** | 6.9 | x | x | [0.41](https://download.openmmlab.com/mmaction/benchmark/recognition/temporal_shift_module/tsm_256p_rawframes_memcached_8x8.zip) | 9.1 | x | x | +| [Slowonly](/configs/recognition/slowonly/slowonly_r50_video_4x16x1_256e_kinetics400_rgb.py) | 256p videos | Disk | 8x8 | **[0.32](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/slowonly_256p_videos_disk_8x8.zip)** | 3.1 | TODO | TODO | x | x | [0.34](https://download.openmmlab.com/mmaction/benchmark/recognition/pyslowfast/pysf_slowonly_r50_4x16_video.log) | 3.4 | +| [Slowonly](/configs/recognition/slowonly/slowonly_r50_video_4x16x1_256e_kinetics400_rgb.py) | 256p dense-encoded video | Disk | 8x8 | **[0.25](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/slowonly_256p_fast_videos_disk_8x8.zip)** | 3.1 | TODO | TODO | x | x | [0.28](https://download.openmmlab.com/mmaction/benchmark/recognition/pyslowfast/pysf_slowonly_r50_4x16_fast_video.log) | 3.4 | +| [Slowfast](/configs/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb.py) | 256p videos | Disk | 8x8 | **[0.69](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/slowfast_256p_videos_disk_8x8.zip)** | 6.1 | x | x | x | x | [1.04](https://download.openmmlab.com/mmaction/benchmark/recognition/pyslowfast/pysf_slowfast_r50_4x16_video.log) | 7.0 | +| [Slowfast](/configs/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb.py) | 256p dense-encoded video | Disk | 8x8 | **[0.68](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/slowfast_256p_fast_videos_disk_8x8.zip)** | 6.1 | x | x | x | x | [0.96](https://download.openmmlab.com/mmaction/benchmark/recognition/pyslowfast/pysf_slowfast_r50_4x16_fast_video.log) | 7.0 | +| [R(2+1)D](/configs/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb.py) | 256p videos | Disk | 8x8 | **[0.45](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/r2plus1d_256p_videos_disk_8x8.zip)** | 5.1 | x | x | x | x | x | x | +| [R(2+1)D](/configs/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb.py) | 256p dense-encoded video | Disk | 8x8 | **[0.44](https://download.openmmlab.com/mmaction/benchmark/recognition/mmaction2/r2plus1d_256p_fast_videos_disk_8x8.zip)** | 5.1 | x | x | x | x | x | x | + +### 时序动作检测器 + +| Model | MMAction2 (s/iter) | BSN(boundary sensitive network) (s/iter) | BMN(boundary matching network) (s/iter) | +| :------------------------------------------------------------------------------------------------------------------ | :-----------------------: | :--------------------------------------: | :-------------------------------------: | +| BSN ([TEM + PEM + PGM](/configs/localization/bsn)) | **0.074(TEM)+0.040(PEM)** | 0.101(TEM)+0.040(PEM) | x | +| BMN ([bmn_400x100_2x8_9e_activitynet_feature](/configs/localization/bmn/bmn_400x100_2x8_9e_activitynet_feature.py)) | **3.27** | x | 3.30 | + +## 比较细节 + +### TSN + +- **MMAction2** + +```shell +# 处理视频帧 +bash tools/slurm_train.sh ${PARTATION_NAME} benchmark_tsn configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py --work-dir work_dirs/benchmark_tsn_rawframes + +# 处理视频 +bash tools/slurm_train.sh ${PARTATION_NAME} benchmark_tsn configs/recognition/tsn/tsn_r50_video_1x1x3_100e_kinetics400_rgb.py --work-dir work_dirs/benchmark_tsn_video +``` + +- **MMAction** + +```shell +python -u tools/train_recognizer.py configs/TSN/tsn_kinetics400_2d_rgb_r50_seg3_f1s1.py +``` + +- **Temporal-Shift-Module** + +```shell +python main.py kinetics RGB --arch resnet50 --num_segments 3 --gd 20 --lr 0.02 --wd 1e-4 --lr_steps 20 40 --epochs 1 --batch-size 256 -j 32 --dropout 0.5 --consensus_type=avg --eval-freq=10 --npb --print-freq 1 +``` + +### I3D + +- **MMAction2** + +```shell +# 处理视频帧 +bash tools/slurm_train.sh ${PARTATION_NAME} benchmark_i3d configs/recognition/i3d/i3d_r50_32x2x1_100e_kinetics400_rgb.py --work-dir work_dirs/benchmark_i3d_rawframes + +# 处理视频 +bash tools/slurm_train.sh ${PARTATION_NAME} benchmark_i3d configs/recognition/i3d/i3d_r50_video_heavy_8x8x1_100e_kinetics400_rgb.py --work-dir work_dirs/benchmark_i3d_video +``` + +- **MMAction** + +```shell +python -u tools/train_recognizer.py configs/I3D_RGB/i3d_kinetics400_3d_rgb_r50_c3d_inflate3x1x1_seg1_f32s2.py +``` + +- **PySlowFast** + +```shell +python tools/run_net.py --cfg configs/Kinetics/I3D_8x8_R50.yaml DATA.PATH_TO_DATA_DIR ${DATA_ROOT} NUM_GPUS 8 TRAIN.BATCH_SIZE 64 TRAIN.AUTO_RESUME False LOG_PERIOD 1 SOLVER.MAX_EPOCH 1 > pysf_i3d_r50_8x8_video.log +``` + +可以通过编写一个简单的脚本对日志文件的 'time_diff' 域进行解析,以复现对应的结果。 + +### SlowFast + +- **MMAction2** + +```shell +bash tools/slurm_train.sh ${PARTATION_NAME} benchmark_slowfast configs/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb.py --work-dir work_dirs/benchmark_slowfast_video +``` + +- **MMAction** + +```shell +python tools/run_net.py --cfg configs/Kinetics/SLOWFAST_4x16_R50.yaml DATA.PATH_TO_DATA_DIR ${DATA_ROOT} NUM_GPUS 8 TRAIN.BATCH_SIZE 64 TRAIN.AUTO_RESUME False LOG_PERIOD 1 SOLVER.MAX_EPOCH 1 > pysf_slowfast_r50_4x16_video.log +``` + +可以通过编写一个简单的脚本对日志文件的 'time_diff' 域进行解析,以复现对应的结果。 + +### SlowOnly + +- **MMAction2** + +```shell +bash tools/slurm_train.sh ${PARTATION_NAME} benchmark_slowonly configs/recognition/slowonly/slowonly_r50_video_4x16x1_256e_kinetics400_rgb.py --work-dir work_dirs/benchmark_slowonly_video +``` + +- **PySlowFast** + +```shell +python tools/run_net.py --cfg configs/Kinetics/SLOW_4x16_R50.yaml DATA.PATH_TO_DATA_DIR ${DATA_ROOT} NUM_GPUS 8 TRAIN.BATCH_SIZE 64 TRAIN.AUTO_RESUME False LOG_PERIOD 1 SOLVER.MAX_EPOCH 1 > pysf_slowonly_r50_4x16_video.log +``` + +可以通过编写一个简单的脚本对日志文件的 'time_diff' 域进行解析,以复现对应的结果。 + +### R2plus1D + +- **MMAction2** + +```shell +bash tools/slurm_train.sh ${PARTATION_NAME} benchmark_r2plus1d configs/recognition/r2plus1d/r2plus1d_r34_video_8x8x1_180e_kinetics400_rgb.py --work-dir work_dirs/benchmark_r2plus1d_video +``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/conf.py b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/conf.py new file mode 100644 index 00000000..9ee1b826 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/conf.py @@ -0,0 +1,132 @@ +# Copyright (c) OpenMMLab. All rights reserved. +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import subprocess +import sys + +import pytorch_sphinx_theme + +sys.path.insert(0, os.path.abspath('..')) + +# -- Project information ----------------------------------------------------- + +project = 'MMAction2' +copyright = '2020, OpenMMLab' +author = 'MMAction2 Authors' +version_file = '../mmaction/version.py' + + +def get_version(): + with open(version_file, 'r') as f: + exec(compile(f.read(), version_file, 'exec')) + return locals()['__version__'] + + +# The full version, including alpha/beta/rc tags +release = get_version() + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'sphinx.ext.viewcode', + 'sphinx_markdown_tables', 'sphinx_copybutton', 'myst_parser' +] + +# numpy and torch are required +autodoc_mock_imports = ['mmaction.version', 'PIL'] + +copybutton_prompt_text = r'>>> |\.\.\. ' +copybutton_prompt_is_regexp = True + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# -- Options for HTML output ------------------------------------------------- +source_suffix = {'.rst': 'restructuredtext', '.md': 'markdown'} + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'pytorch_sphinx_theme' +html_theme_path = [pytorch_sphinx_theme.get_html_theme_path()] +html_theme_options = { + # 'logo_url': 'https://mmocr.readthedocs.io/en/latest/', + 'menu': [ + { + 'name': + '教程', + 'url': + 'https://colab.research.google.com/github/' + 'open-mmlab/mmaction2/blob/master/demo/' + 'mmaction2_tutorial_zh-CN.ipynb' + }, + { + 'name': 'GitHub', + 'url': 'https://github.com/open-mmlab/mmaction2' + }, + { + 'name': + '上游代码库', + 'children': [ + { + 'name': 'MMCV', + 'url': 'https://github.com/open-mmlab/mmcv', + 'description': '计算机视觉基础库' + }, + { + 'name': 'MMClassification', + 'url': 'https://github.com/open-mmlab/mmclassification', + 'description': '图像分类代码库' + }, + { + 'name': 'MMDetection', + 'url': 'https://github.com/open-mmlab/mmdetection', + 'description': '物体检测代码库' + }, + ] + }, + ], + # Specify the language of shared menu + 'menu_lang': + 'cn' +} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] +html_css_files = ['css/readthedocs.css'] + +myst_enable_extensions = ['colon_fence'] +myst_heading_anchors = 3 + +language = 'zh_CN' +master_doc = 'index' + + +def builder_inited_handler(app): + subprocess.run(['./merge_docs.sh']) + subprocess.run(['./stat.py']) + + +def setup(app): + app.connect('builder-inited', builder_inited_handler) diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/data_preparation.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/data_preparation.md new file mode 100644 index 00000000..bd43422b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/data_preparation.md @@ -0,0 +1,155 @@ +# 准备数据 + +本文为 MMAction2 的数据准备提供一些指南。 + + + +- [视频格式数据的一些注意事项](#%E8%A7%86%E9%A2%91%E6%A0%BC%E5%BC%8F%E6%95%B0%E6%8D%AE%E7%9A%84%E4%B8%80%E4%BA%9B%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9) +- [获取数据](#%E8%8E%B7%E5%8F%96%E6%95%B0%E6%8D%AE) + - [准备视频](#%E5%87%86%E5%A4%87%E8%A7%86%E9%A2%91) + - [提取帧](#%E6%8F%90%E5%8F%96%E5%B8%A7) + - [denseflow 的替代项](#denseflow-%E7%9A%84%E6%9B%BF%E4%BB%A3%E9%A1%B9) + - [生成文件列表](#%E7%94%9F%E6%88%90%E6%96%87%E4%BB%B6%E5%88%97%E8%A1%A8) + - [准备音频](#%E5%87%86%E5%A4%87%E9%9F%B3%E9%A2%91) + + + +## 视频格式数据的一些注意事项 + +MMAction2 支持两种数据类型:原始帧和视频。前者在过去的项目中经常出现,如 TSN。 +如果能把原始帧存储在固态硬盘上,处理帧格式的数据是非常快的,但对于大规模的数据集来说,原始帧需要占据大量的磁盘空间。 +(举例来说,最新版本的 [Kinetics](https://deepmind.com/research/open-source/open-source-datasets/kinetics/) 有 650K 个视频,其所有原始帧需要占据几个 TB 的磁盘空间。) +视频格式的数据能够节省很多空间,但在运行模型时,必须进行视频解码,算力开销很大。 +为了加速视频解码,MMAction2 支持了若干种高效的视频加载库,如 [decord](https://github.com/zhreshold/decord), [PyAV](https://github.com/PyAV-Org/PyAV) 等。 + +## 获取数据 + +本文介绍如何构建自定义数据集。 +与上述数据集相似,推荐用户把数据放在 `$MMACTION2/data/$DATASET` 中。 + +### 准备视频 + +请参照官网或官方脚本准备视频。 +注意,应该按照下面两种方法之一来组织视频数据文件夹结构: + +(1) 形如 `${CLASS_NAME}/${VIDEO_ID}` 的两级文件目录结构,这种结构推荐在动作识别数据集中使用(如 UCF101 和 Kinetics) + +(2) 单级文件目录结构,这种结构推荐在动作检测数据集或者多标签数据集中使用(如 THUMOS14) + +### 提取帧 + +若想同时提取帧和光流,可以使用 OpenMMLab 准备的 [denseflow](https://github.com/open-mmlab/denseflow) 工具。 +因为不同的帧提取工具可能产生不同数量的帧,建议使用同一工具来提取 RGB 帧和光流,以避免它们的数量不同。 + +```shell +python build_rawframes.py ${SRC_FOLDER} ${OUT_FOLDER} [--task ${TASK}] [--level ${LEVEL}] \ + [--num-worker ${NUM_WORKER}] [--flow-type ${FLOW_TYPE}] [--out-format ${OUT_FORMAT}] \ + [--ext ${EXT}] [--new-width ${NEW_WIDTH}] [--new-height ${NEW_HEIGHT}] [--new-short ${NEW_SHORT}] \ + [--resume] [--use-opencv] [--mixed-ext] +``` + +- `SRC_FOLDER`: 视频源文件夹 +- `OUT_FOLDER`: 存储提取出的帧和光流的根文件夹 +- `TASK`: 提取任务,说明提取帧,光流,还是都提取,选项为 `rgb`, `flow`, `both` +- `LEVEL`: 目录层级。1 指单级文件目录,2 指两级文件目录 +- `NUM_WORKER`: 提取原始帧的线程数 +- `FLOW_TYPE`: 提取的光流类型,如 `None`, `tvl1`, `warp_tvl1`, `farn`, `brox` +- `OUT_FORMAT`: 提取帧的输出文件类型,如 `jpg`, `h5`, `png` +- `EXT`: 视频文件后缀名,如 `avi`, `mp4` +- `NEW_WIDTH`: 调整尺寸后,输出图像的宽 +- `NEW_HEIGHT`: 调整尺寸后,输出图像的高 +- `NEW_SHORT`: 等比例缩放图片后,输出图像的短边长 +- `--resume`: 是否接续之前的光流提取任务,还是覆盖之前的输出结果重新提取 +- `--use-opencv`: 是否使用 OpenCV 提取 RGB 帧 +- `--mixed-ext`: 说明是否处理不同文件类型的视频文件 + +根据实际经验,推荐设置为: + +1. 将 `$OUT_FOLDER` 设置为固态硬盘上的文件夹。 +2. 软连接 `$OUT_FOLDER` 到 `$MMACTION2/data/$DATASET/rawframes` +3. 使用 `new-short` 而不是 `new-width` 和 `new-height` 来调整图像尺寸 + +```shell +ln -s ${YOUR_FOLDER} $MMACTION2/data/$DATASET/rawframes +``` + +#### denseflow 的替代项 + +如果用户因依赖要求(如 Nvidia 显卡驱动版本),无法安装 [denseflow](https://github.com/open-mmlab/denseflow), +或者只需要一些关于光流提取的快速演示,可用 Python 脚本 `tools/misc/flow_extraction.py` 替代 denseflow。 +这个脚本可用于一个或多个视频提取 RGB 帧和光流。注意,由于该脚本时在 CPU 上运行光流算法,其速度比 denseflow 慢很多。 + +```shell +python tools/misc/flow_extraction.py --input ${INPUT} [--prefix ${PREFIX}] [--dest ${DEST}] [--rgb-tmpl ${RGB_TMPL}] \ + [--flow-tmpl ${FLOW_TMPL}] [--start-idx ${START_IDX}] [--method ${METHOD}] [--bound ${BOUND}] [--save-rgb] +``` + +- `INPUT`: 用于提取帧的视频,可以是单个视频或一个视频列表,视频列表应该是一个 txt 文件,并且只包含视频文件名,不包含目录 +- `PREFIX`: 输入视频的前缀,当输入是一个视频列表时使用 +- `DEST`: 保存提取出的帧的位置 +- `RGB_TMPL`: RGB 帧的文件名格式 +- `FLOW_TMPL`: 光流的文件名格式 +- `START_IDX`: 提取帧的开始索引 +- `METHOD`: 用于生成光流的方法 +- `BOUND`: 光流的最大值 +- `SAVE_RGB`: 同时保存提取的 RGB 帧 + +### 生成文件列表 + +MMAction2 提供了便利的脚本用于生成文件列表。在完成视频下载(或更进一步完成视频抽帧)后,用户可以使用如下的脚本生成文件列表。 + +```shell +cd $MMACTION2 +python tools/data/build_file_list.py ${DATASET} ${SRC_FOLDER} [--rgb-prefix ${RGB_PREFIX}] \ + [--flow-x-prefix ${FLOW_X_PREFIX}] [--flow-y-prefix ${FLOW_Y_PREFIX}] [--num-split ${NUM_SPLIT}] \ + [--subset ${SUBSET}] [--level ${LEVEL}] [--format ${FORMAT}] [--out-root-path ${OUT_ROOT_PATH}] \ + [--seed ${SEED}] [--shuffle] +``` + +- `DATASET`: 所要准备的数据集,例如:`ucf101` , `kinetics400` , `thumos14` , `sthv1` , `sthv2` 等。 +- `SRC_FOLDER`: 存放对应格式的数据的目录: + - 如目录为 "$MMACTION2/data/$DATASET/rawframes",则需设置 `--format rawframes`。 + - 如目录为 "$MMACTION2/data/$DATASET/videos",则需设置 `--format videos`。 +- `RGB_PREFIX`: RGB 帧的文件前缀。 +- `FLOW_X_PREFIX`: 光流 x 分量帧的文件前缀。 +- `FLOW_Y_PREFIX`: 光流 y 分量帧的文件前缀。 +- `NUM_SPLIT`: 数据集总共的划分个数。 +- `SUBSET`: 需要生成文件列表的子集名称。可选项为 `train`, `val`, `test`。 +- `LEVEL`: 目录级别数量,1 表示一级目录(数据集中所有视频或帧文件夹位于同一目录), 2 表示二级目录(数据集中所有视频或帧文件夹按类别存放于各子目录)。 +- `FORMAT`: 需要生成文件列表的源数据格式。可选项为 `rawframes`, `videos`。 +- `OUT_ROOT_PATH`: 生成文件的根目录。 +- `SEED`: 随机种子。 +- `--shuffle`: 是否打乱生成的文件列表。 + +至此为止,用户可参考 [基础教程](getting_started.md) 来进行模型的训练及测试。 + +### 准备音频 + +MMAction2 还提供如下脚本来提取音频的波形并生成梅尔频谱。 + +```shell +cd $MMACTION2 +python tools/data/extract_audio.py ${ROOT} ${DST_ROOT} [--ext ${EXT}] [--num-workers ${N_WORKERS}] \ + [--level ${LEVEL}] +``` + +- `ROOT`: 视频的根目录。 +- `DST_ROOT`: 存放生成音频的根目录。 +- `EXT`: 视频的后缀名,如 `mp4`。 +- `N_WORKERS`: 使用的进程数量。 + +成功提取出音频后,用户可参照 [配置文件](/configs/recognition_audio/resnet/tsn_r50_64x1x1_100e_kinetics400_audio.py) 在线解码并生成梅尔频谱。如果音频文件的目录结构与帧文件夹一致,用户可以直接使用帧数据所用的标注文件作为音频数据的标注文件。在线解码的缺陷在于速度较慢,因此,MMAction2 也提供如下脚本用于离线地生成梅尔频谱。 + +```shell +cd $MMACTION2 +python tools/data/build_audio_features.py ${AUDIO_HOME_PATH} ${SPECTROGRAM_SAVE_PATH} [--level ${LEVEL}] \ + [--ext $EXT] [--num-workers $N_WORKERS] [--part $PART] +``` + +- `AUDIO_HOME_PATH`: 音频文件的根目录。 +- `SPECTROGRAM_SAVE_PATH`: 存放生成音频特征的根目录。 +- `EXT`: 音频的后缀名,如 `m4a`。 +- `N_WORKERS`: 使用的进程数量。 +- `PART`: 将完整的解码任务分为几部分并执行其中一份。如 `2/5` 表示将所有待解码数据分成 5 份,并对其中的第 2 份进行解码。这一选项在用户有多台机器时发挥作用。 + +梅尔频谱特征所对应的标注文件与帧文件夹一致,用户可以直接复制 `dataset_[train/val]_list_rawframes.txt` 并将其重命名为 `dataset_[train/val]_list_audio_feature.txt`。 diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/demo.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/demo.md new file mode 100644 index 00000000..c5d12538 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/demo.md @@ -0,0 +1,630 @@ +# Demo 示例 + +## 目录 + +- [Demo 示例](#demo-%E7%A4%BA%E4%BE%8B) + - [目录](#%E7%9B%AE%E5%BD%95) + - [预测视频的动作标签](#%E9%A2%84%E6%B5%8B%E8%A7%86%E9%A2%91%E7%9A%84%E5%8A%A8%E4%BD%9C%E6%A0%87%E7%AD%BE) + - [预测视频的时空检测结果](#%E9%A2%84%E6%B5%8B%E8%A7%86%E9%A2%91%E7%9A%84%E6%97%B6%E7%A9%BA%E6%A3%80%E6%B5%8B%E7%BB%93%E6%9E%9C) + - [可视化输入视频的 GradCAM](#%E5%8F%AF%E8%A7%86%E5%8C%96%E8%BE%93%E5%85%A5%E8%A7%86%E9%A2%91%E7%9A%84-gradcam) + - [使用网络摄像头的实时动作识别](#%E4%BD%BF%E7%94%A8%E7%BD%91%E7%BB%9C%E6%91%84%E5%83%8F%E5%A4%B4%E7%9A%84%E5%AE%9E%E6%97%B6%E5%8A%A8%E4%BD%9C%E8%AF%86%E5%88%AB) + - [滑动窗口预测长视频中不同动作类别](#%E6%BB%91%E5%8A%A8%E7%AA%97%E5%8F%A3%E9%A2%84%E6%B5%8B%E9%95%BF%E8%A7%86%E9%A2%91%E4%B8%AD%E4%B8%8D%E5%90%8C%E5%8A%A8%E4%BD%9C%E7%B1%BB%E5%88%AB) + - [基于网络摄像头的实时时空动作检测](#%E5%9F%BA%E4%BA%8E%E7%BD%91%E7%BB%9C%E6%91%84%E5%83%8F%E5%A4%B4%E7%9A%84%E5%AE%9E%E6%97%B6%E6%97%B6%E7%A9%BA%E5%8A%A8%E4%BD%9C%E6%A3%80%E6%B5%8B) + - [基于人体姿态预测动作标签](#%E5%9F%BA%E4%BA%8E%E4%BA%BA%E4%BD%93%E5%A7%BF%E6%80%81%E9%A2%84%E6%B5%8B%E5%8A%A8%E4%BD%9C%E6%A0%87%E7%AD%BE) + - [视频结构化预测](#%E8%A7%86%E9%A2%91%E7%BB%93%E6%9E%84%E5%8C%96%E9%A2%84%E6%B5%8B) + - [基于音频的动作识别](#%E5%9F%BA%E4%BA%8E%E9%9F%B3%E9%A2%91%E7%9A%84%E5%8A%A8%E4%BD%9C%E8%AF%86%E5%88%AB) + +## 预测视频的动作标签 + +MMAction2 提供如下脚本以预测视频的动作标签。为得到 \[0, 1\] 间的动作分值,请确保在配置文件中设定 `model['test_cfg'] = dict(average_clips='prob')`。 + +```shell +python demo/demo.py ${CONFIG_FILE} ${CHECKPOINT_FILE} ${VIDEO_FILE} {LABEL_FILE} [--use-frames] \ + [--device ${DEVICE_TYPE}] [--fps {FPS}] [--font-scale {FONT_SCALE}] [--font-color {FONT_COLOR}] \ + [--target-resolution ${TARGET_RESOLUTION}] [--resize-algorithm {RESIZE_ALGORITHM}] [--out-filename {OUT_FILE}] +``` + +可选参数: + +- `--use-frames`: 如指定,代表使用帧目录作为输入;否则代表使用视频作为输入。 +- `DEVICE_TYPE`: 指定脚本运行设备,支持 cuda 设备(如 `cuda:0`)或 cpu(`cpu`)。默认为 `cuda:0`。 +- `FPS`: 使用帧目录作为输入时,代表输入的帧率。默认为 30。 +- `FONT_SCALE`: 输出视频上的字体缩放比例。默认为 0.5。 +- `FONT_COLOR`: 输出视频上的字体颜色,默认为白色( `white`)。 +- `TARGET_RESOLUTION`: 输出视频的分辨率,如未指定,使用输入视频的分辨率。 +- `RESIZE_ALGORITHM`: 缩放视频时使用的插值方法,默认为 `bicubic`。 +- `OUT_FILE`: 输出视频的路径,如未指定,则不会生成输出视频。 + +示例: + +以下示例假设用户的当前目录为 `$MMACTION2`,并已经将所需的模型权重文件下载至目录 `checkpoints/` 下,用户也可以使用所提供的 URL 来直接加载模型权重,文件将会被默认下载至 `$HOME/.cache/torch/checkpoints`。 + +1. 在 cuda 设备上,使用 TSN 模型进行视频识别: + + ```shell + # demo.mp4 及 label_map_k400.txt 均来自 Kinetics-400 数据集 + python demo/demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + demo/demo.mp4 tools/data/kinetics/label_map_k400.txt + ``` + +2. 在 cuda 设备上,使用 TSN 模型进行视频识别,并利用 URL 加载模型权重文件: + + ```shell + # demo.mp4 及 label_map_k400.txt 均来自 Kinetics-400 数据集 + python demo/demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + demo/demo.mp4 tools/data/kinetics/label_map_k400.txt + ``` + +3. 在 CPU 上,使用 TSN 模型进行视频识别,输入为视频抽好的帧: + + ```shell + python demo/demo.py configs/recognition/tsn/tsn_r50_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + PATH_TO_FRAMES/ LABEL_FILE --use-frames --device cpu + ``` + +4. 使用 TSN 模型进行视频识别,输出 MP4 格式的识别结果: + + ```shell + # demo.mp4 及 label_map_k400.txt 均来自 Kinetics-400 数据集 + python demo/demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + demo/demo.mp4 tools/data/kinetics/label_map_k400.txt --out-filename demo/demo_out.mp4 + ``` + +5. 使用 TSN 模型进行视频识别,输入为视频抽好的帧,将识别结果存为 GIF 格式: + + ```shell + python demo/demo.py configs/recognition/tsn/tsn_r50_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + PATH_TO_FRAMES/ LABEL_FILE --use-frames --out-filename demo/demo_out.gif + ``` + +6. 使用 TSN 模型进行视频识别,输出 MP4 格式的识别结果,并指定输出视频分辨率及缩放视频时使用的插值方法: + + ```shell + # demo.mp4 及 label_map_k400.txt 均来自 Kinetics-400 数据集 + python demo/demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + demo/demo.mp4 tools/data/kinetics/label_map_k400.txt --target-resolution 340 256 --resize-algorithm bilinear \ + --out-filename demo/demo_out.mp4 + ``` + + ```shell + # demo.mp4 及 label_map_k400.txt 均来自 Kinetics-400 数据集 + # 若 TARGET_RESOLUTION 的任一维度被设置为 -1,视频帧缩放时将保持长宽比 + # 如设定 --target-resolution 为 170 -1,原先长宽为 (340, 256) 的视频帧将被缩放至 (170, 128) + python demo/demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + demo/demo.mp4 tools/data/kinetics/label_map_k400.txt --target-resolution 170 -1 --resize-algorithm bilinear \ + --out-filename demo/demo_out.mp4 + ``` + +7. 使用 TSN 模型进行视频识别,输出 MP4 格式的识别结果,指定输出视频中使用红色文字,字体大小为 10 像素: + + ```shell + # demo.mp4 及 label_map_k400.txt 均来自 Kinetics-400 数据集 + python demo/demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + demo/demo.mp4 tools/data/kinetics/label_map_k400.txt --font-size 10 --font-color red \ + --out-filename demo/demo_out.mp4 + ``` + +8. 使用 TSN 模型进行视频识别,输入为视频抽好的帧,将识别结果存为 MP4 格式,帧率设置为 24fps: + + ```shell + python demo/demo.py configs/recognition/tsn/tsn_r50_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + PATH_TO_FRAMES/ LABEL_FILE --use-frames --fps 24 --out-filename demo/demo_out.gif + ``` + +## 预测视频的时空检测结果 + +MMAction2 提供如下脚本以预测视频的时空检测结果。 + +```shell +python demo/demo_spatiotemporal_det.py --video ${VIDEO_FILE} \ + [--config ${SPATIOTEMPORAL_ACTION_DETECTION_CONFIG_FILE}] \ + [--checkpoint ${SPATIOTEMPORAL_ACTION_DETECTION_CHECKPOINT}] \ + [--det-config ${HUMAN_DETECTION_CONFIG_FILE}] \ + [--det-checkpoint ${HUMAN_DETECTION_CHECKPOINT}] \ + [--det-score-thr ${HUMAN_DETECTION_SCORE_THRESHOLD}] \ + [--action-score-thr ${ACTION_DETECTION_SCORE_THRESHOLD}] \ + [--label-map ${LABEL_MAP}] \ + [--device ${DEVICE}] \ + [--out-filename ${OUTPUT_FILENAME}] \ + [--predict-stepsize ${PREDICT_STEPSIZE}] \ + [--output-stepsize ${OUTPUT_STEPSIZE}] \ + [--output-fps ${OUTPUT_FPS}] +``` + +可选参数: + +- `SPATIOTEMPORAL_ACTION_DETECTION_CONFIG_FILE`: 时空检测配置文件路径。 +- `SPATIOTEMPORAL_ACTION_DETECTION_CHECKPOINT`: 时空检测模型权重文件路径。 +- `HUMAN_DETECTION_CONFIG_FILE`: 人体检测配置文件路径。 +- `HUMAN_DETECTION_CHECKPOINT`: 人体检测模型权重文件路径。 +- `HUMAN_DETECTION_SCORE_THRE`: 人体检测分数阈值,默认为 0.9。 +- `ACTION_DETECTION_SCORE_THRESHOLD`: 动作检测分数阈值,默认为 0.5。 +- `LABEL_MAP`: 所使用的标签映射文件,默认为 `tools/data/ava/label_map.txt`。 +- `DEVICE`: 指定脚本运行设备,支持 cuda 设备(如 `cuda:0`)或 cpu(`cpu`)。默认为 `cuda:0`。 +- `OUTPUT_FILENAME`: 输出视频的路径,默认为 `demo/stdet_demo.mp4`。 +- `PREDICT_STEPSIZE`: 每 N 帧进行一次预测(以节约计算资源),默认值为 8。 +- `OUTPUT_STEPSIZE`: 对于输入视频的每 N 帧,输出 1 帧至输出视频中, 默认值为 4,注意需满足 `PREDICT_STEPSIZE % OUTPUT_STEPSIZE == 0`。 +- `OUTPUT_FPS`: 输出视频的帧率,默认值为 6。 + +示例: + +以下示例假设用户的当前目录为 `$MMACTION2`,并已经将所需的模型权重文件下载至目录 `checkpoints/` 下,用户也可以使用所提供的 URL 来直接加载模型权重,文件将会被默认下载至 `$HOME/.cache/torch/checkpoints`。 + +1. 使用 Faster RCNN 作为人体检测器,SlowOnly-8x8-R101 作为动作检测器。每 8 帧进行一次预测,原视频中每 4 帧输出 1 帧至输出视频中,设置输出视频的帧率为 6。 + +```shell +python demo/demo_spatiotemporal_det.py --video demo/demo.mp4 \ + --config configs/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py \ + --checkpoint https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201217-16378594.pth \ + --det-config demo/faster_rcnn_r50_fpn_2x_coco.py \ + --det-checkpoint http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth \ + --det-score-thr 0.9 \ + --action-score-thr 0.5 \ + --label-map tools/data/ava/label_map.txt \ + --predict-stepsize 8 \ + --output-stepsize 4 \ + --output-fps 6 +``` + +## 可视化输入视频的 GradCAM + +MMAction2 提供如下脚本以可视化输入视频的 GradCAM。 + +```shell +python demo/demo_gradcam.py ${CONFIG_FILE} ${CHECKPOINT_FILE} ${VIDEO_FILE} [--use-frames] \ + [--device ${DEVICE_TYPE}] [--target-layer-name ${TARGET_LAYER_NAME}] [--fps {FPS}] \ + [--target-resolution ${TARGET_RESOLUTION}] [--resize-algorithm {RESIZE_ALGORITHM}] [--out-filename {OUT_FILE}] +``` + +可选参数: + +- `--use-frames`: 如指定,代表使用帧目录作为输入;否则代表使用视频作为输入。 +- `DEVICE_TYPE`: 指定脚本运行设备,支持 cuda 设备(如 `cuda:0`)或 cpu(`cpu`)。默认为 `cuda:0`。 +- `TARGET_LAYER_NAME`: 需要生成 GradCAM 可视化的网络层名称。 +- `FPS`: 使用帧目录作为输入时,代表输入的帧率。默认为 30。 +- `TARGET_RESOLUTION`: 输出视频的分辨率,如未指定,使用输入视频的分辨率。 +- `RESIZE_ALGORITHM`: 缩放视频时使用的插值方法,默认为 `bilinear`。 +- `OUT_FILE`: 输出视频的路径,如未指定,则不会生成输出视频。 + +示例: + +以下示例假设用户的当前目录为 `$MMACTION2`,并已经将所需的模型权重文件下载至目录 `checkpoints/` 下,用户也可以使用所提供的 URL 来直接加载模型权重,文件将会被默认下载至 `$HOME/.cache/torch/checkpoints`。 + +1. 对于 I3D 模型进行 GradCAM 的可视化,使用视频作为输入,并输出一帧率为 10 的 GIF 文件: + + ```shell + python demo/demo_gradcam.py configs/recognition/i3d/i3d_r50_video_inference_32x2x1_100e_kinetics400_rgb.py \ + checkpoints/i3d_r50_video_32x2x1_100e_kinetics400_rgb_20200826-e31c6f52.pth demo/demo.mp4 \ + --target-layer-name backbone/layer4/1/relu --fps 10 \ + --out-filename demo/demo_gradcam.gif + ``` + +2. 对于 I3D 模型进行 GradCAM 的可视化,使用视频作为输入,并输出一 GIF 文件,此示例利用 URL 加载模型权重文件: + + ```shell + python demo/demo_gradcam.py configs/recognition/tsm/tsm_r50_video_inference_1x1x8_100e_kinetics400_rgb.py \ + https://download.openmmlab.com/mmaction/recognition/tsm/tsm_r50_video_1x1x8_100e_kinetics400_rgb/tsm_r50_video_1x1x8_100e_kinetics400_rgb_20200702-a77f4328.pth \ + demo/demo.mp4 --target-layer-name backbone/layer4/1/relu --out-filename demo/demo_gradcam_tsm.gif + ``` + +## 使用网络摄像头的实时动作识别 + +MMAction2 提供如下脚本来进行使用网络摄像头的实时动作识别。为得到 \[0, 1\] 间的动作分值,请确保在配置文件中设定 `model['test_cfg'] = dict(average_clips='prob')` 。 + +```shell +python demo/webcam_demo.py ${CONFIG_FILE} ${CHECKPOINT_FILE} ${LABEL_FILE} \ + [--device ${DEVICE_TYPE}] [--camera-id ${CAMERA_ID}] [--threshold ${THRESHOLD}] \ + [--average-size ${AVERAGE_SIZE}] [--drawing-fps ${DRAWING_FPS}] [--inference-fps ${INFERENCE_FPS}] +``` + +可选参数: + +- `DEVICE_TYPE`: 指定脚本运行设备,支持 cuda 设备(如 `cuda:0`)或 cpu(`cpu`)。默认为 `cuda:0`。 +- `CAMERA_ID`: 摄像头设备的 ID,默认为 0。 +- `THRESHOLD`: 动作识别的分数阈值,只有分数大于阈值的动作类型会被显示,默认为 0。 +- `AVERAGE_SIZE`: 使用最近 N 个片段的平均结果作为预测,默认为 1。 +- `DRAWING_FPS`: 可视化结果时的最高帧率,默认为 20。 +- `INFERENCE_FPS`: 进行推理时的最高帧率,默认为 4。 + +**注**: 若用户的硬件配置足够,可增大可视化帧率和推理帧率以带来更好体验。 + +示例: + +以下示例假设用户的当前目录为 `$MMACTION2`,并已经将所需的模型权重文件下载至目录 `checkpoints/` 下,用户也可以使用所提供的 URL 来直接加载模型权重,文件将会被默认下载至 `$HOME/.cache/torch/checkpoints`。 + +1. 使用 TSN 模型进行利用网络摄像头的实时动作识别,平均最近 5 个片段结果作为预测,输出大于阈值 0.2 的动作类别: + +```shell + python demo/webcam_demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth tools/data/kinetics/label_map_k400.txt --average-size 5 \ + --threshold 0.2 --device cpu +``` + +2. 使用 TSN 模型在 CPU 上进行利用网络摄像头的实时动作识别,平均最近 5 个片段结果作为预测,输出大于阈值 0.2 的动作类别,此示例利用 URL 加载模型权重文件: + +```shell + python demo/webcam_demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + tools/data/kinetics/label_map_k400.txt --average-size 5 --threshold 0.2 --device cpu +``` + +3. 使用 I3D 模型在 GPU 上进行利用网络摄像头的实时动作识别,平均最近 5 个片段结果作为预测,输出大于阈值 0.2 的动作类别: + +```shell + python demo/webcam_demo.py configs/recognition/i3d/i3d_r50_video_inference_32x2x1_100e_kinetics400_rgb.py \ + checkpoints/i3d_r50_32x2x1_100e_kinetics400_rgb_20200614-c25ef9a4.pth tools/data/kinetics/label_map_k400.txt \ + --average-size 5 --threshold 0.2 +``` + +**注:** 考虑到用户所使用的推理设备具有性能差异,可进行如下改动在用户设备上取得更好效果: + +1). 更改配置文件中的 `test_pipeline` 下 `SampleFrames` 步骤 (特别是 `clip_len` 与 `num_clips`)。 +2). 更改配置文件中的 `test_pipeline` 下的裁剪方式类型(可选项含:`TenCrop`, `ThreeCrop`, `CenterCrop`)。 +3). 调低 `AVERAGE_SIZE` 以加快推理。 + +## 滑动窗口预测长视频中不同动作类别 + +MMAction2 提供如下脚本来预测长视频中的不同动作类别。为得到 \[0, 1\] 间的动作分值,请确保在配置文件中设定 `model['test_cfg'] = dict(average_clips='prob')` 。 + +```shell +python demo/long_video_demo.py ${CONFIG_FILE} ${CHECKPOINT_FILE} ${VIDEO_FILE} ${LABEL_FILE} \ + ${OUT_FILE} [--input-step ${INPUT_STEP}] [--device ${DEVICE_TYPE}] [--threshold ${THRESHOLD}] +``` + +可选参数: + +- `OUT_FILE`: 输出视频的路径。 +- `INPUT_STEP`: 在视频中的每 N 帧中选取一帧作为输入,默认为 1。 +- `DEVICE_TYPE`: 指定脚本运行设备,支持 cuda 设备(如 `cuda:0`)或 cpu(`cpu`)。默认为 `cuda:0`。 +- `THRESHOLD`: 动作识别的分数阈值,只有分数大于阈值的动作类型会被显示,默认为 0.01。 +- `STRIDE`: 默认情况下,脚本为每帧给出单独预测,较为耗时。可以设定 `STRIDE` 参数进行加速,此时脚本将会为每 `STRIDE x sample_length` 帧做一次预测(`sample_length` 指模型采帧时的时间窗大小,等于 `clip_len x frame_interval`)。例如,若 sample_length 为 64 帧且 `STRIDE` 设定为 0.5,模型将每 32 帧做一次预测。若 `STRIDE` 设为 0,模型将为每帧做一次预测。`STRIDE` 的理想取值为 (0, 1\] 间,若大于 1,脚本亦可正常执行。`STRIDE` 默认值为 0。 + +示例: + +以下示例假设用户的当前目录为 `$MMACTION2`,并已经将所需的模型权重文件下载至目录 `checkpoints/` 下,用户也可以使用所提供的 URL 来直接加载模型权重,文件将会被默认下载至 `$HOME/.cache/torch/checkpoints`。 + +1. 利用 TSN 模型在 CPU 上预测长视频中的不同动作类别,设置 `INPUT_STEP` 为 3(即每 3 帧随机选取 1 帧作为输入),输出分值大于 0.2 的动作类别: + +```shell + python demo/long_video_demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth PATH_TO_LONG_VIDEO tools/data/kinetics/label_map_k400.txt PATH_TO_SAVED_VIDEO \ + --input-step 3 --device cpu --threshold 0.2 +``` + +2. 利用 TSN 模型在 CPU 上预测长视频中的不同动作类别,设置 `INPUT_STEP` 为 3,输出分值大于 0.2 的动作类别,此示例利用 URL 加载模型权重文件: + +```shell + python demo/long_video_demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + PATH_TO_LONG_VIDEO tools/data/kinetics/label_map_k400.txt PATH_TO_SAVED_VIDEO --input-step 3 --device cpu --threshold 0.2 +``` + +3. 利用 TSN 模型在 CPU 上预测网络长视频(利用 URL 读取)中的不同动作类别,设置 `INPUT_STEP` 为 3,输出分值大于 0.2 的动作类别,此示例利用 URL 加载模型权重文件: + +```shell + python demo/long_video_demo.py configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4 \ + tools/data/kinetics/label_map_k400.txt PATH_TO_SAVED_VIDEO --input-step 3 --device cpu --threshold 0.2 +``` + +4. 利用 I3D 模型在 GPU 上预测长视频中的不同动作类别,设置 `INPUT_STEP` 为 3,动作识别的分数阈值为 0.01: + + ```shell + python demo/long_video_demo.py configs/recognition/i3d/i3d_r50_video_inference_32x2x1_100e_kinetics400_rgb.py \ + checkpoints/i3d_r50_256p_32x2x1_100e_kinetics400_rgb_20200801-7d9f44de.pth PATH_TO_LONG_VIDEO tools/data/kinetics/label_map_k400.txt PATH_TO_SAVED_VIDEO \ + ``` + +## 基于网络摄像头的实时时空动作检测 + +MMAction2 提供本脚本实现基于网络摄像头的实时时空动作检测。 + +```shell +python demo/webcam_demo_spatiotemporal_det.py \ + [--config ${SPATIOTEMPORAL_ACTION_DETECTION_CONFIG_FILE}] \ + [--checkpoint ${SPATIOTEMPORAL_ACTION_DETECTION_CHECKPOINT}] \ + [--action-score-thr ${ACTION_DETECTION_SCORE_THRESHOLD}] \ + [--det-config ${HUMAN_DETECTION_CONFIG_FILE}] \ + [--det-checkpoint ${HUMAN_DETECTION_CHECKPOINT}] \ + [--det-score-thr ${HUMAN_DETECTION_SCORE_THRESHOLD}] \ + [--input-video] ${INPUT_VIDEO} \ + [--label-map ${LABEL_MAP}] \ + [--device ${DEVICE}] \ + [--output-fps ${OUTPUT_FPS}] \ + [--out-filename ${OUTPUT_FILENAME}] \ + [--show] \ + [--display-height] ${DISPLAY_HEIGHT} \ + [--display-width] ${DISPLAY_WIDTH} \ + [--predict-stepsize ${PREDICT_STEPSIZE}] \ + [--clip-vis-length] ${CLIP_VIS_LENGTH} +``` + +可选参数: + +- `SPATIOTEMPORAL_ACTION_DETECTION_CONFIG_FILE`: 时空检测配置文件路径。 +- `SPATIOTEMPORAL_ACTION_DETECTION_CHECKPOINT`: 时空检测模型权重文件路径。 +- `ACTION_DETECTION_SCORE_THRESHOLD`: 动作检测分数阈值,默认为 0.4。 +- `HUMAN_DETECTION_CONFIG_FILE`: 人体检测配置文件路径。 +- `HUMAN_DETECTION_CHECKPOINT`: 人体检测模型权重文件路径。 +- `HUMAN_DETECTION_SCORE_THRE`: 人体检测分数阈值,默认为 0.9。 +- `INPUT_VIDEO`: 网络摄像头编号或本地视频文件路径,默认为 `0`。 +- `LABEL_MAP`: 所使用的标签映射文件,默认为 `tools/data/ava/label_map.txt`。 +- `DEVICE`: 指定脚本运行设备,支持 cuda 设备(如 `cuda:0`)或 cpu(`cpu`),默认为 `cuda:0`。 +- `OUTPUT_FPS`: 输出视频的帧率,默认为 15。 +- `OUTPUT_FILENAME`: 输出视频的路径,默认为 `None`。 +- `--show`: 是否通过 `cv2.imshow` 展示预测结果。 +- `DISPLAY_HEIGHT`: 输出结果图像高度,默认为 0。 +- `DISPLAY_WIDTH`: 输出结果图像宽度,默认为 0。若 `DISPLAY_HEIGHT <= 0 and DISPLAY_WIDTH <= 0`,则表示输出图像形状与输入视频形状相同。 +- `PREDICT_STEPSIZE`: 每 N 帧进行一次预测(以控制计算资源),默认为 8。 +- `CLIP_VIS_LENGTH`: 预测结果可视化持续帧数,即每次预测结果将可视化到 `CLIP_VIS_LENGTH` 帧中,默认为 8。 + +小技巧: + +- 如何设置 `--output-fps` 的数值? + + - `--output-fps` 建议设置为视频读取线程的帧率。 + - 视频读取线程帧率已通过日志输出,格式为 `DEBUG:__main__:Read Thread: {duration} ms, {fps} fps`。 + +- 如何设置 `--predict-stepsize` 的数值? + + - 该参数选择与模型选型有关。 + - 模型输入构建时间(视频读取线程)应大于等于模型推理时间(主线程)。 + - 模型输入构建时间与模型推理时间均已通过日志输出。 + - `--predict-stepsize` 数值越大,模型输入构建时间越长。 + - 可降低 `--predict-stepsize` 数值增加模型推理频率,从而充分利用计算资源。 + +示例: + +以下示例假设用户的当前目录为 $MMACTION2,并已经将所需的模型权重文件下载至目录 checkpoints/ 下,用户也可以使用所提供的 URL 来直接加载模型权重,文件将会被默认下载至 $HOME/.cache/torch/checkpoints。 + +1. 使用 Faster RCNN 作为人体检测器,SlowOnly-8x8-R101 作为动作检测器,每 8 帧进行一次预测,设置输出视频的帧率为 20,并通过 `cv2.imshow` 展示预测结果。 + +```shell +python demo/webcam_demo_spatiotemporal_det.py \ + --input-video 0 \ + --config configs/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py \ + --checkpoint https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201217-16378594.pth \ + --det-config demo/faster_rcnn_r50_fpn_2x_coco.py \ + --det-checkpoint http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth \ + --det-score-thr 0.9 \ + --action-score-thr 0.5 \ + --label-map tools/data/ava/label_map.txt \ + --predict-stepsize 40 \ + --output-fps 20 \ + --show +``` + +## 基于人体姿态预测动作标签 + +MMAction2 提供本脚本实现基于人体姿态的动作标签预测。 + +```shell +python demo/demo_skeleton.py ${VIDEO_FILE} ${OUT_FILENAME} \ + [--config ${SKELETON_BASED_ACTION_RECOGNITION_CONFIG_FILE}] \ + [--checkpoint ${SKELETON_BASED_ACTION_RECOGNITION_CHECKPOINT}] \ + [--det-config ${HUMAN_DETECTION_CONFIG_FILE}] \ + [--det-checkpoint ${HUMAN_DETECTION_CHECKPOINT}] \ + [--det-score-thr ${HUMAN_DETECTION_SCORE_THRESHOLD}] \ + [--pose-config ${HUMAN_POSE_ESTIMATION_CONFIG_FILE}] \ + [--pose-checkpoint ${HUMAN_POSE_ESTIMATION_CHECKPOINT}] \ + [--label-map ${LABEL_MAP}] \ + [--device ${DEVICE}] \ + [--short-side] ${SHORT_SIDE} +``` + +可选参数: + +- `SKELETON_BASED_ACTION_RECOGNITION_CONFIG_FILE`: 基于人体姿态的动作识别模型配置文件路径。 +- `SKELETON_BASED_ACTION_RECOGNITION_CHECKPOINT`: 基于人体姿态的动作识别模型权重文件路径。 +- `HUMAN_DETECTION_CONFIG_FILE`: 人体检测配置文件路径。 +- `HUMAN_DETECTION_CHECKPOINT`: 人体检测模型权重文件路径。 +- `HUMAN_DETECTION_SCORE_THRE`: 人体检测分数阈值,默认为 0.9。 +- `HUMAN_POSE_ESTIMATION_CONFIG_FILE`: 人体姿态估计模型配置文件路径 (需在 COCO-keypoint 数据集上训练)。 +- `HUMAN_POSE_ESTIMATION_CHECKPOINT`: 人体姿态估计模型权重文件路径 (需在 COCO-keypoint 数据集上训练). +- `LABEL_MAP`: 所使用的标签映射文件,默认为 `tools/data/skeleton/label_map_ntu120.txt`。 +- `DEVICE`: 指定脚本运行设备,支持 cuda 设备(如 `cuda:0`)或 cpu(`cpu`),默认为 `cuda:0`。 +- `SHORT_SIDE`: 视频抽帧时使用的短边长度,默认为 480。 + +示例: + +以下示例假设用户的当前目录为 $MMACTION2。 + +1. 使用 Faster RCNN 作为人体检测器,HRNetw32 作为人体姿态估计模型,PoseC3D-NTURGB+D-120-Xsub-keypoint 作为基于人体姿态的动作识别模型。 + +```shell +python demo/demo_skeleton.py demo/ntu_sample.avi demo/skeleton_demo.mp4 \ + --config configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint.py \ + --checkpoint https://download.openmmlab.com/mmaction/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint/slowonly_r50_u48_240e_ntu120_xsub_keypoint-6736b03f.pth \ + --det-config demo/faster_rcnn_r50_fpn_2x_coco.py \ + --det-checkpoint http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth \ + --det-score-thr 0.9 \ + --pose-config demo/hrnet_w32_coco_256x192.py \ + --pose-checkpoint https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w32_coco_256x192-c78dce93_20200708.pth \ + --label-map tools/data/skeleton/label_map_ntu120.txt +``` + +2. 使用 Faster RCNN 作为人体检测器,HRNetw32 作为人体姿态估计模型,STGCN-NTURGB+D-60-Xsub-keypoint 作为基于人体姿态的动作识别模型。 + +```shell +python demo/demo_skeleton.py demo/ntu_sample.avi demo/skeleton_demo.mp4 \ + --config configs/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint.py \ + --checkpoint https://download.openmmlab.com/mmaction/skeleton/stgcn/stgcn_80e_ntu60_xsub_keypoint/stgcn_80e_ntu60_xsub_keypoint-e7bb9653.pth \ + --det-config demo/faster_rcnn_r50_fpn_2x_coco.py \ + --det-checkpoint http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth \ + --det-score-thr 0.9 \ + --pose-config demo/hrnet_w32_coco_256x192.py \ + --pose-checkpoint https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w32_coco_256x192-c78dce93_20200708.pth \ + --label-map tools/data/skeleton/label_map_ntu120.txt +``` + +## 视频结构化预测 + +MMAction2 提供本脚本实现基于人体姿态和RGB的视频结构化预测。 + +```shell +python demo/demo_video_structuralize.py + [--rgb-stdet-config ${RGB_BASED_SPATIO_TEMPORAL_ACTION_DETECTION_CONFIG_FILE}] \ + [--rgb-stdet-checkpoint ${RGB_BASED_SPATIO_TEMPORAL_ACTION_DETECTION_CHECKPOINT}] \ + [--skeleton-stdet-checkpoint ${SKELETON_BASED_SPATIO_TEMPORAL_ACTION_DETECTION_CHECKPOINT}] \ + [--det-config ${HUMAN_DETECTION_CONFIG_FILE}] \ + [--det-checkpoint ${HUMAN_DETECTION_CHECKPOINT}] \ + [--pose-config ${HUMAN_POSE_ESTIMATION_CONFIG_FILE}] \ + [--pose-checkpoint ${HUMAN_POSE_ESTIMATION_CHECKPOINT}] \ + [--skeleton-config ${SKELETON_BASED_ACTION_RECOGNITION_CONFIG_FILE}] \ + [--skeleton-checkpoint ${SKELETON_BASED_ACTION_RECOGNITION_CHECKPOINT}] \ + [--rgb-config ${RGB_BASED_ACTION_RECOGNITION_CONFIG_FILE}] \ + [--rgb-checkpoint ${RGB_BASED_ACTION_RECOGNITION_CHECKPOINT}] \ + [--use-skeleton-stdet ${USE_SKELETON_BASED_SPATIO_TEMPORAL_DETECTION_METHOD}] \ + [--use-skeleton-recog ${USE_SKELETON_BASED_ACTION_RECOGNITION_METHOD}] \ + [--det-score-thr ${HUMAN_DETECTION_SCORE_THRE}] \ + [--action-score-thr ${ACTION_DETECTION_SCORE_THRE}] \ + [--video ${VIDEO_FILE}] \ + [--label-map-stdet ${LABEL_MAP_FOR_SPATIO_TEMPORAL_ACTION_DETECTION}] \ + [--device ${DEVICE}] \ + [--out-filename ${OUTPUT_FILENAME}] \ + [--predict-stepsize ${PREDICT_STEPSIZE}] \ + [--output-stepsize ${OUTPU_STEPSIZE}] \ + [--output-fps ${OUTPUT_FPS}] \ + [--cfg-options] +``` + +可选参数: + +- `RGB_BASED_SPATIO_TEMPORAL_ACTION_DETECTION_CONFIG_FILE`: 基于 RGB 的时空检测配置文件路径。 +- `RGB_BASED_SPATIO_TEMPORAL_ACTION_DETECTION_CHECKPOINT`: 基于 RGB 的时空检测模型权重文件路径。 +- `SKELETON_BASED_SPATIO_TEMPORAL_ACTION_DETECTION_CHECKPOINT`: 基于人体姿态的时空检测模型权重文件路径。 +- `HUMAN_DETECTION_CONFIG_FILE`: 人体检测配置文件路径。 +- `HUMAN_DETECTION_CHECKPOINT`: The human detection checkpoint URL. +- `HUMAN_POSE_ESTIMATION_CONFIG_FILE`: 人体姿态估计模型配置文件路径 (需在 COCO-keypoint 数据集上训练)。 +- `HUMAN_POSE_ESTIMATION_CHECKPOINT`: 人体姿态估计模型权重文件路径 (需在 COCO-keypoint 数据集上训练)。 +- `SKELETON_BASED_ACTION_RECOGNITION_CONFIG_FILE`: 基于人体姿态的动作识别模型配置文件路径。 +- `SKELETON_BASED_ACTION_RECOGNITION_CHECKPOINT`: 基于人体姿态的动作识别模型权重文件路径。 +- `RGB_BASED_ACTION_RECOGNITION_CONFIG_FILE`: 基于 RGB 的行为识别配置文件路径。 +- `RGB_BASED_ACTION_RECOGNITION_CHECKPOINT`: 基于 RGB 的行为识别模型权重文件路径。 +- `USE_SKELETON_BASED_SPATIO_TEMPORAL_DETECTION_METHOD`: 使用基于人体姿态的时空检测方法。 +- `USE_SKELETON_BASED_ACTION_RECOGNITION_METHOD`: 使用基于人体姿态的行为识别方法。 +- `HUMAN_DETECTION_SCORE_THRE`: 人体检测分数阈值,默认为 0.9。 +- `ACTION_DETECTION_SCORE_THRE`: 动作检测分数阈值,默认为 0.5。 +- `LABEL_MAP_FOR_SPATIO_TEMPORAL_ACTION_DETECTION`: 时空动作检测所使用的标签映射文件,默认为: `tools/data/ava/label_map.txt`。 +- `LABEL_MAP`: 行为识别所使用的标签映射文件, 默认为: `tools/data/kinetics/label_map_k400.txt`。 +- `DEVICE`: 指定脚本运行设备,支持 cuda 设备(如 `cuda:0`)或 cpu(`cpu`),默认为 `cuda:0`。 +- `OUTPUT_FILENAME`: 输出视频的路径,默认为 `demo/test_stdet_recognition_output.mp4`。 +- `PREDICT_STEPSIZE`: 每 N 帧进行一次预测(以节约计算资源),默认值为 8。 +- `OUTPUT_STEPSIZE`: 对于输入视频的每 N 帧,输出 1 帧至输出视频中, 默认值为 1,注意需满足 `PREDICT_STEPSIZE % OUTPUT_STEPSIZE == 0`。 +- `OUTPUT_FPS`: 输出视频的帧率,默认为 24。 + +示例: + +以下示例假设用户的当前目录为 $MMACTION2。 + +1. 使用 Faster RCNN 作为人体检测器,HRNetw32 作为人体姿态估计模型,PoseC3D 作为基于人体姿态的动作识别模型和时空动作检测器。每 8 帧进行一次预测,原视频中每 1 帧输出 1 帧至输出视频中,设置输出视频的帧率为 24。 + +```shell +python demo/demo_video_structuralize.py + --skeleton-stdet-checkpoint https://download.openmmlab.com/mmaction/skeleton/posec3d/posec3d_ava.pth \ + --det-config demo/faster_rcnn_r50_fpn_2x_coco.py \ + --det-checkpoint http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth \ + --pose-config demo/hrnet_w32_coco_256x192.py + --pose-checkpoint https://download.openmmlab.com/mmpose/top_down/hrnet/ + hrnet_w32_coco_256x192-c78dce93_20200708.pth \ + --skeleton-config configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint.py \ + --skeleton-checkpoint https://download.openmmlab.com/mmaction/skeleton/posec3d/ + posec3d_k400.pth \ + --use-skeleton-stdet \ + --use-skeleton-recog \ + --label-map-stdet tools/data/ava/label_map.txt \ + --label-map tools/data/kinetics/label_map_k400.txt +``` + +2. 使用 Faster RCNN 作为人体检测器,TSN-R50-1x1x3 作为动作识别模型, SlowOnly-8x8-R101 作为时空动检测器。每 8 帧进行一次预测,原视频中每 1 帧输出 1 帧至输出视频中,设置输出视频的帧率为 24。 + +```shell +python demo/demo_video_structuralize.py + --rgb-stdet-config configs/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py \ + --rgb-stdet-checkpoint https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201217-16378594.pth \ + --det-config demo/faster_rcnn_r50_fpn_2x_coco.py \ + --det-checkpoint http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth \ + --rgb-config configs/recognition/tsn/ + tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + --rgb-checkpoint https://download.openmmlab.com/mmaction/recognition/ + tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/ + tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + --label-map-stdet tools/data/ava/label_map.txt \ + --label-map tools/data/kinetics/label_map_k400.txt +``` + +3. 使用 Faster RCNN 作为人体检测器,HRNetw32 作为人体姿态估计模型,PoseC3D 作为基于人体姿态的动作识别模型, SlowOnly-8x8-R101 作为时空动作检测器。每 8 帧进行一次预测,原视频中每 1 帧输出 1 帧至输出视频中,设置输出视频的帧率为 24。 + +```shell +python demo/demo_video_structuralize.py + --rgb-stdet-config configs/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb.py \ + --rgb-stdet-checkpoint https://download.openmmlab.com/mmaction/detection/ava/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb/slowonly_omnisource_pretrained_r101_8x8x1_20e_ava_rgb_20201217-16378594.pth \ + --det-config demo/faster_rcnn_r50_fpn_2x_coco.py \ + --det-checkpoint http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth \ + --pose-config demo/hrnet_w32_coco_256x192.py + --pose-checkpoint https://download.openmmlab.com/mmpose/top_down/hrnet/ + hrnet_w32_coco_256x192-c78dce93_20200708.pth \ + --skeleton-config configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint.py \ + --skeleton-checkpoint https://download.openmmlab.com/mmaction/skeleton/posec3d/ + posec3d_k400.pth \ + --use-skeleton-recog \ + --label-map-stdet tools/data/ava/label_map.txt \ + --label-map tools/data/kinetics/label_map_k400.txt +``` + +4. 使用 Faster RCNN 作为人体检测器,HRNetw32 作为人体姿态估计模型,TSN-R50-1x1x3 作为动作识别模型, PoseC3D 作为基于人体姿态的时空动作检测器。每 8 帧进行一次预测,原视频中每 1 帧输出 1 帧至输出视频中,设置输出视频的帧率为 24。 + +```shell +python demo/demo_video_structuralize.py + --skeleton-stdet-checkpoint https://download.openmmlab.com/mmaction/skeleton/posec3d/posec3d_ava.pth \ + --det-config demo/faster_rcnn_r50_fpn_2x_coco.py \ + --det-checkpoint http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_2x_coco/faster_rcnn_r50_fpn_2x_coco_bbox_mAP-0.384_20200504_210434-a5d8aa15.pth \ + --pose-config demo/hrnet_w32_coco_256x192.py + --pose-checkpoint https://download.openmmlab.com/mmpose/top_down/hrnet/ + hrnet_w32_coco_256x192-c78dce93_20200708.pth \ + --skeleton-config configs/skeleton/posec3d/slowonly_r50_u48_240e_ntu120_xsub_keypoint.py \ + --rgb-config configs/recognition/tsn/ + tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py \ + --rgb-checkpoint https://download.openmmlab.com/mmaction/recognition/ + tsn/tsn_r50_1x1x3_100e_kinetics400_rgb/ + tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth \ + --use-skeleton-stdet \ + --label-map-stdet tools/data/ava/label_map.txt \ + --label-map tools/data/kinetics/label_map_k400.txt +``` + +## 基于音频的动作识别 + +本脚本可用于进行基于音频特征的动作识别。 + +脚本 `extract_audio.py` 可被用于从视频中提取音频,脚本 `build_audio_features.py` 可被用于基于音频文件提取音频特征。 + +```shell +python demo/demo_audio.py ${CONFIG_FILE} ${CHECKPOINT_FILE} ${AUDIO_FILE} {LABEL_FILE} [--device ${DEVICE}] +``` + +可选参数: + +- `DEVICE`: 指定脚本运行设备,支持 cuda 设备(如 `cuda:0`)或 cpu(`cpu`),默认为 `cuda:0`。 + +示例: + +以下示例假设用户的当前目录为 $MMACTION2。 + +1. 在 GPU 上,使用 TSN 模型进行基于音频特征的动作识别。 + + ```shell + python demo/demo_audio.py \ + configs/recognition_audio/resnet/tsn_r18_64x1x1_100e_kinetics400_audio_feature.py \ + https://download.openmmlab.com/mmaction/recognition/audio_recognition/tsn_r18_64x1x1_100e_kinetics400_audio_feature/tsn_r18_64x1x1_100e_kinetics400_audio_feature_20201012-bf34df6c.pth \ + audio_feature.npy label_map_k400.txt + ``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/faq.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/faq.md new file mode 100644 index 00000000..4c46302e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/faq.md @@ -0,0 +1,112 @@ +# 常见问题解答 + +本文这里列出了用户们遇到的一些常见问题,及相应的解决方案。 +如果您发现了任何社区中经常出现的问题,也有了相应的解决方案,欢迎充实本文档来帮助他人。 +如果本文档不包括您的问题,欢迎使用提供的 [模板](/.github/ISSUE_TEMPLATE/error-report.md) 创建问题,还请确保您在模板中填写了所有必需的信息。 + +## 安装 + +- **"No module named 'mmcv.ops'"; "No module named 'mmcv.\_ext'"** + + 1. 使用 `pip uninstall mmcv` 卸载环境中已安装的 `mmcv`。 + 2. 遵循 [MMCV 安装文档](https://mmcv.readthedocs.io/en/latest/#installation) 来安装 `mmcv-full`。 + +- **"OSError: MoviePy Error: creation of None failed because of the following error"** + + 参照 [MMAction2 安装文档](https://github.com/open-mmlab/mmaction2/blob/master/docs_zh_CN/install.md#%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96%E5%8C%85) + + 1. 对于 Windows 用户,[ImageMagick](https://www.imagemagick.org/script/index.php) 不再被 MoviePy 自动检测, + 需要获取名为 `magick` 的 ImageMagick 二进制包的路径,来修改 `moviepy/config_defaults.py` 文件中的 `IMAGEMAGICK_BINARY`,如 `IMAGEMAGICK_BINARY = "C:\\Program Files\\ImageMagick_VERSION\\magick.exe"` + 2. 对于 Linux 用户,如果 ImageMagick 没有被 moviepy 检测,需要注释掉 `/etc/ImageMagick-6/policy.xml` 文件中的 ``,即改为 ``。 + +- **"Please install XXCODEBASE to use XXX"** + + 如得到报错消息 "Please install XXCODEBASE to use XXX",代表 MMAction2 无法从 XXCODEBASE 中 import XXX。用户可以执行对应 import 语句定位原因。 + 一个可能的原因是,对于部分 OpenMMLAB 中的代码库,需先安装 mmcv-full 后再进行安装。 + +## 数据 + +- **FileNotFound 如 `No such file or directory: xxx/xxx/img_00300.jpg`** + + 在 MMAction2 中,对于帧数据集,`start_index` 的默认值为 1,而对于视频数据集, `start_index` 的默认值为 0。 + 如果 FileNotFound 错误发生于视频的第一帧或最后一帧,则需根据视频首帧(即 `xxx_00000.jpg` 或 `xxx_00001.jpg`)的偏移量,修改配置文件中数据处理流水线的 `start_index` 值。 + +- **如何处理数据集中传入视频的尺寸?是把所有视频调整为固定尺寸,如 “340x256”,还是把所有视频的短边调整成相同的长度(256像素或320像素)?** + + 从基准测试来看,总体来说,后者(把所有视频的短边调整成相同的长度)效果更好,所以“调整尺寸为短边256像素”被设置为默认的数据处理方式。用户可以在 [TSN 数据基准测试](https://github.com/open-mmlab/mmaction2/tree/master/configs/recognition/tsn) 和 [SlowOnly 数据基准测试](https://github.com/open-mmlab/mmaction2/tree/master/configs/recognition/tsn) 中查看相关的基准测试结果。 + +- **输入数据格式(视频或帧)与数据流水线不匹配,导致异常,如 `KeyError: 'total_frames'`** + + 对于视频和帧,我们都有相应的流水线来处理。 + + **对于视频**,应该在处理时首先对其进行解码。可选的解码方式,有 `DecordInit & DecordDecode`, `OpenCVInit & OpenCVDecode`, `PyAVInit & PyAVDecode` 等等。可以参照 [这个例子](https://github.com/open-mmlab/mmaction2/blob/023777cfd26bb175f85d78c455f6869673e0aa09/configs/recognition/slowfast/slowfast_r50_video_4x16x1_256e_kinetics400_rgb.py#L47-L49)。 + + **对于帧**,已经事先在本地对其解码,所以使用 `RawFrameDecode` 对帧处理即可。可以参照 [这个例子](https://github.com/open-mmlab/mmaction2/blob/023777cfd26bb175f85d78c455f6869673e0aa09/configs/recognition/slowfast/slowfast_r50_8x8x1_256e_kinetics400_rgb.py#L49)。 + + `KeyError: 'total_frames'` 是因为错误地使用了 `RawFrameDecode` 来处理视频。当输入是视频的时候,程序是无法事先得到 `total_frame` 的。 + +## 训练 + +- **如何使用训练过的识别器作为主干网络的预训练模型?** + + 参照 [使用预训练模型](https://github.com/open-mmlab/mmaction2/blob/master/docs_zh_CN/tutorials/2_finetune.md#%E4%BD%BF%E7%94%A8%E9%A2%84%E8%AE%AD%E7%BB%83%E6%A8%A1%E5%9E%8B), + 如果想对整个网络使用预训练模型,可以在配置文件中,将 `load_from` 设置为预训练模型的链接。 + + 如果只想对主干网络使用预训练模型,可以在配置文件中,将主干网络 `backbone` 中的 `pretrained` 设置为预训练模型的地址或链接。 + 在训练时,预训练模型中无法与主干网络对应的参数会被忽略。 + +- **如何实时绘制训练集和验证集的准确率/损失函数曲线图?** + + 使用 `log_config` 中的 `TensorboardLoggerHook`,如: + + ```python + log_config=dict( + interval=20, + hooks=[ + dict(type='TensorboardLoggerHook') + ] + ) + ``` + + 可以参照 [教程1:如何编写配置文件](tutorials/1_config.md),[教程7:如何自定义模型运行参数](tutorials/7_customize_runtime.md#log-config),和 [这个例子](https://github.com/open-mmlab/mmaction2/blob/master/configs/recognition/tsm/tsm_r50_1x1x8_50e_kinetics400_rgb.py#L118) 了解更多相关内容。 + +- **在 batchnorm.py 中抛出错误: Expected more than 1 value per channel when training** + + BatchNorm 层要求批大小(batch size)大于 1。构建数据集时, 若 `drop_last` 被设为 `False`,有时每个轮次的最后一个批次的批大小可能为 1,进而在训练时抛出错误,可以设置 `drop_last=True` 来避免该错误,如: + + ```python + train_dataloader=dict(drop_last=True) + ``` + +- **微调模型参数时,如何冻结主干网络中的部分参数?** + + 可以参照 [`def _freeze_stages()`](https://github.com/open-mmlab/mmaction2/blob/0149a0e8c1e0380955db61680c0006626fd008e9/mmaction/models/backbones/x3d.py#L458) 和 [`frozen_stages`](https://github.com/open-mmlab/mmaction2/blob/0149a0e8c1e0380955db61680c0006626fd008e9/mmaction/models/backbones/x3d.py#L183-L184)。在分布式训练和测试时,还须设置 `find_unused_parameters = True`。 + + 实际上,除了少数模型,如 C3D 等,用户都能通过设置 `frozen_stages` 来冻结模型参数,因为大多数主干网络继承自 `ResNet` 和 `ResNet3D`,而这两个模型都支持 `_freeze_stages()` 方法。 + +- **如何在配置文件中设置 `load_from` 参数以进行模型微调?** + + MMAction2 在 `configs/_base_/default_runtime.py` 文件中将 `load_from=None` 设为默认。由于配置文件的可继承性,用户可直接在下游配置文件中设置 `load_from` 的值来进行更改。 + +## 测试 + +- **如何将预测分值用 softmax 归一化到 \[0, 1\] 区间内?** + + 可以通过设置 `model['test_cfg'] = dict(average_clips='prob')` 来实现。 + +- **如果模型太大,连一个测试样例都没法放进显存,怎么办?** + + 默认情况下,3D 模型是以 `10 clips x 3 crops` 的设置进行测试的,也即采样 10 个帧片段,每帧裁剪出 3 个图像块,总计有 30 个视图。 + 对于特别大的模型,GPU 显存可能连一个视频都放不下。对于这种情况,您可以在配置文件的 `model['test_cfg']` 中设置 `max_testing_views=n`。 + 如此设置,在模型推理过程中,一个批只会使用 n 个视图,以节省显存。 + +- **如何保存测试结果?** + + 测试时,用户可在运行指令中设置可选项 `--out xxx.json/pkl/yaml` 来输出结果文件,以供后续检查。输出的测试结果顺序和测试集顺序保持一致。 + 除此之外,MMAction2 也在 [`tools/analysis/eval_metric.py`](/tools/analysis/eval_metric.py) 中提供了分析工具,用于结果文件的模型评估。 + +## 部署 + +- **为什么由 MMAction2 转换的 ONNX 模型在转换到其他框架(如 TensorRT)时会抛出错误?** + + 目前只能确保 MMAction2 中的模型与 ONNX 兼容。但是,ONNX 中的某些算子可能不受其他框架支持,例如 [这个问题](https://github.com/open-mmlab/mmaction2/issues/414) 中的 TensorRT。当这种情况发生时,如果 `pytorch2onnx.py` 没有出现问题,转换过去的 ONNX 模型也通过了数值检验,可以提 issue 让社区提供帮助。 diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/feature_extraction.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/feature_extraction.md new file mode 100644 index 00000000..62b76066 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/feature_extraction.md @@ -0,0 +1,70 @@ +# 特征提取 + +MMAction2 为特征提取提供了便捷使用的脚本。 + +## 片段级特征提取 + +片段级特征提取是从长度一般为几秒到几十秒不等的剪辑片段中提取深度特征。从每个片段中提取的特征是一个 n 维向量。当进行多视图特征提取时,例如 n 个片段 × m 种裁剪,提取的特征将会是 n\*m 个视图的平均值。 + +在应用片段级特征提取之前,用户需要准备一个视频列表包含所有想要进行特征提取的视频。例如,由 UCF101 中视频组成的视频列表如下: + +``` +ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c01.avi +ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c02.avi +ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c03.avi +ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c04.avi +ApplyEyeMakeup/v_ApplyEyeMakeup_g01_c05.avi +... +YoYo/v_YoYo_g25_c01.avi +YoYo/v_YoYo_g25_c02.avi +YoYo/v_YoYo_g25_c03.avi +YoYo/v_YoYo_g25_c04.avi +YoYo/v_YoYo_g25_c05.avi +``` + +假设 UCF101 中的视频所在目录为 `data/ucf101/videos`,视频列表的文件名为 `ucf101.txt`,使用 TSN(Kinetics-400 预训练)从 UCF101 中提取片段级特征,用户可以使用脚本如下: + +```shell +python tools/misc/clip_feature_extraction.py \ +configs/recognition/tsn/tsn_r50_clip_feature_extraction_1x1x3_rgb.py \ +https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_320p_1x1x3_100e_kinetics400_rgb_20200702-cc665e2a.pth \ +--video-list ucf101.txt \ +--video-root data/ucf101/videos \ +--out ucf101_feature.pkl +``` + +被提取的特征存储于 `ucf101_feature.pkl`。 + +用户也可以使用分布式片段级特征提取。以下是使用拥有 8 gpus 的计算节点的示例。 + +```shell +bash tools/misc/dist_clip_feature_extraction.sh \ +configs/recognition/tsn/tsn_r50_clip_feature_extraction_1x1x3_rgb.py \ +https://download.openmmlab.com/mmaction/recognition/tsn/tsn_r50_320p_1x1x3_100e_kinetics400_rgb/tsn_r50_320p_1x1x3_100e_kinetics400_rgb_20200702-cc665e2a.pth \ +8 \ +--video-list ucf101.txt \ +--video-root data/ucf101/videos \ +--out ucf101_feature.pkl +``` + +使用 SlowOnly(Kinetics-400 预训练)从 UCF101 中提取片段级特征,用户可以使用脚本如下: + +```shell +python tools/misc/clip_feature_extraction.py \ +configs/recognition/slowonly/slowonly_r50_clip_feature_extraction_4x16x1_rgb.py \ +https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb_20201014-c9cdc656.pth \ +--video-list ucf101.txt \ +--video-root data/ucf101/videos \ +--out ucf101_feature.pkl +``` + +这两个配置文件展示了用于特征提取的最小配置。用户也可以使用其他存在的配置文件进行特征提取,只要注意使用视频数据进行训练和测试,而不是原始帧数据。 + +```shell +python tools/misc/clip_feature_extraction.py \ +configs/recognition/slowonly/slowonly_r50_video_4x16x1_256e_kinetics400_rgb.py \ +https://download.openmmlab.com/mmaction/recognition/slowonly/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb/slowonly_r50_video_320p_4x16x1_256e_kinetics400_rgb_20201014-c9cdc656.pth \ +--video-list ucf101.txt \ +--video-root data/ucf101/videos \ +--out ucf101_feature.pkl +``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/getting_started.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/getting_started.md new file mode 100644 index 00000000..b1672f13 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/getting_started.md @@ -0,0 +1,457 @@ +# 基础教程 + +本文档提供 MMAction2 相关用法的基本教程。对于安装说明,请参阅 [安装指南](install.md)。 + + + +- [基础教程](#%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B) + - [数据集](#%E6%95%B0%E6%8D%AE%E9%9B%86) + - [使用预训练模型进行推理](#%E4%BD%BF%E7%94%A8%E9%A2%84%E8%AE%AD%E7%BB%83%E6%A8%A1%E5%9E%8B%E8%BF%9B%E8%A1%8C%E6%8E%A8%E7%90%86) + - [测试某个数据集](#%E6%B5%8B%E8%AF%95%E6%9F%90%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86) + - [使用高级 API 对视频和帧文件夹进行测试](#%E4%BD%BF%E7%94%A8%E9%AB%98%E7%BA%A7-api-%E5%AF%B9%E8%A7%86%E9%A2%91%E5%92%8C%E5%B8%A7%E6%96%87%E4%BB%B6%E5%A4%B9%E8%BF%9B%E8%A1%8C%E6%B5%8B%E8%AF%95) + - [如何建立模型](#%E5%A6%82%E4%BD%95%E5%BB%BA%E7%AB%8B%E6%A8%A1%E5%9E%8B) + - [使用基本组件建立模型](#%E4%BD%BF%E7%94%A8%E5%9F%BA%E6%9C%AC%E7%BB%84%E4%BB%B6%E5%BB%BA%E7%AB%8B%E6%A8%A1%E5%9E%8B) + - [构建新模型](#%E6%9E%84%E5%BB%BA%E6%96%B0%E6%A8%A1%E5%9E%8B) + - [如何训练模型](#%E5%A6%82%E4%BD%95%E8%AE%AD%E7%BB%83%E6%A8%A1%E5%9E%8B) + - [推理流水线](#%E6%8E%A8%E7%90%86%E6%B5%81%E6%B0%B4%E7%BA%BF) + - [训练配置](#%E8%AE%AD%E7%BB%83%E9%85%8D%E7%BD%AE) + - [使用单个 GPU 进行训练](#%E4%BD%BF%E7%94%A8%E5%8D%95%E4%B8%AA-gpu-%E8%BF%9B%E8%A1%8C%E8%AE%AD%E7%BB%83) + - [使用多个 GPU 进行训练](#%E4%BD%BF%E7%94%A8%E5%A4%9A%E4%B8%AA-gpu-%E8%BF%9B%E8%A1%8C%E8%AE%AD%E7%BB%83) + - [使用多台机器进行训练](#%E4%BD%BF%E7%94%A8%E5%A4%9A%E5%8F%B0%E6%9C%BA%E5%99%A8%E8%BF%9B%E8%A1%8C%E8%AE%AD%E7%BB%83) + - [使用单台机器启动多个任务](#%E4%BD%BF%E7%94%A8%E5%8D%95%E5%8F%B0%E6%9C%BA%E5%99%A8%E5%90%AF%E5%8A%A8%E5%A4%9A%E4%B8%AA%E4%BB%BB%E5%8A%A1) + - [详细教程](#%E8%AF%A6%E7%BB%86%E6%95%99%E7%A8%8B) + + + +## 数据集 + +MMAction2 建议用户将数据集根目录链接到 `$MMACTION2/data` 下。 +如果用户的文件夹结构与默认结构不同,则需要在配置文件中进行对应路径的修改。 + +``` +mmaction2 +├── mmaction +├── tools +├── configs +├── data +│ ├── kinetics400 +│ │ ├── rawframes_train +│ │ ├── rawframes_val +│ │ ├── kinetics_train_list.txt +│ │ ├── kinetics_val_list.txt +│ ├── ucf101 +│ │ ├── rawframes_train +│ │ ├── rawframes_val +│ │ ├── ucf101_train_list.txt +│ │ ├── ucf101_val_list.txt +│ ├── ... +``` + +请参阅 [数据集准备](data_preparation.md) 获取数据集准备的相关信息。 + +对于用户自定义数据集的准备,请参阅 [教程 3:如何增加新数据集](tutorials/3_new_dataset.md) + +## 使用预训练模型进行推理 + +MMAction2 提供了一些脚本用于测试数据集(如 Kinetics-400,Something-Something V1&V2,(Multi-)Moments in Time,等), +并提供了一些高级 API,以便更好地兼容其他项目。 + +MMAction2 支持仅使用 CPU 进行测试。然而,这样做的速度**非常慢**,用户应仅使用其作为无 GPU 机器上的 debug 手段。 +如需使用 CPU 进行测试,用户需要首先使用命令 `export CUDA_VISIBLE_DEVICES=-1` 禁用机器上的 GPU (如有),然后使用命令 `python tools/test.py {OTHER_ARGS}` 直接调用测试脚本。 + +### 测试某个数据集 + +- [x] 支持单 GPU +- [x] 支持单节点,多 GPU +- [x] 支持多节点 + +用户可使用以下命令进行数据集测试 + +```shell +# 单 GPU 测试 +python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] \ + [--gpu-collect] [--tmpdir ${TMPDIR}] [--options ${OPTIONS}] [--average-clips ${AVG_TYPE}] \ + [--launcher ${JOB_LAUNCHER}] [--local_rank ${LOCAL_RANK}] [--onnx] [--tensorrt] + +# 多 GPU 测试 +./tools/dist_test.sh ${CONFIG_FILE} ${CHECKPOINT_FILE} ${GPU_NUM} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] \ + [--gpu-collect] [--tmpdir ${TMPDIR}] [--options ${OPTIONS}] [--average-clips ${AVG_TYPE}] \ + [--launcher ${JOB_LAUNCHER}] [--local_rank ${LOCAL_RANK}] +``` + +可选参数: + +- `RESULT_FILE`:输出结果文件名。如果没有被指定,则不会保存测试结果。 +- `EVAL_METRICS`:测试指标。其可选值与对应数据集相关,如 `top_k_accuracy`,`mean_class_accuracy` 适用于所有动作识别数据集,`mmit_mean_average_precision` 适用于 Multi-Moments in Time 数据集,`mean_average_precision` 适用于 Multi-Moments in Time 和单类 HVU 数据集,`AR@AN` 适用于 ActivityNet 数据集等。 +- `--gpu-collect`:如果被指定,动作识别结果将会通过 GPU 通信进行收集。否则,它将被存储到不同 GPU 上的 `TMPDIR` 文件夹中,并在 rank 0 的进程中被收集。 +- `TMPDIR`:用于存储不同进程收集的结果文件的临时文件夹。该变量仅当 `--gpu-collect` 没有被指定时有效。 +- `OPTIONS`:用于验证过程的自定义选项。其可选值与对应数据集的 `evaluate` 函数变量有关。 +- `AVG_TYPE`:用于平均测试片段结果的选项。如果被设置为 `prob`,则会在平均测试片段结果之前施加 softmax 函数。否则,会直接进行平均。 +- `JOB_LAUNCHER`:分布式任务初始化启动器选项。可选值有 `none`,`pytorch`,`slurm`,`mpi`。特别地,如果被设置为 `none`, 则会以非分布式模式进行测试。 +- `LOCAL_RANK`:本地 rank 的 ID。如果没有被指定,则会被设置为 0。 +- `--onnx`: 如果指定,将通过 onnx 模型推理获取预测结果,输入参数 `CHECKPOINT_FILE` 应为 onnx 模型文件。Onnx 模型文件由 `/tools/deployment/pytorch2onnx.py` 脚本导出。目前,不支持多 GPU 测试以及动态张量形状(Dynamic shape)。请注意,数据集输出与模型输入张量的形状应保持一致。同时,不建议使用测试时数据增强,如 `ThreeCrop`,`TenCrop`,`twice_sample` 等。 +- `--tensorrt`: 如果指定,将通过 TensorRT 模型推理获取预测结果,输入参数 `CHECKPOINT_FILE` 应为 TensorRT 模型文件。TensorRT 模型文件由导出的 onnx 模型以及 TensorRT 官方模型转换工具生成。目前,不支持多 GPU 测试以及动态张量形状(Dynamic shape)。请注意,数据集输出与模型输入张量的形状应保持一致。同时,不建议使用测试时数据增强,如 `ThreeCrop`,`TenCrop`,`twice_sample` 等。 + +例子: + +假定用户将下载的模型权重文件放置在 `checkpoints/` 目录下。 + +1. 在 Kinetics-400 数据集下测试 TSN (不存储测试结果为文件),并验证 `top-k accuracy` 和 `mean class accuracy` 指标 + + ```shell + python tools/test.py configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth \ + --eval top_k_accuracy mean_class_accuracy + ``` + +2. 使用 8 块 GPU 在 Something-Something V1 下测试 TSN,并验证 `top-k accuracy` 指标 + + ```shell + ./tools/dist_test.sh configs/recognition/tsn/tsn_r50_1x1x8_50e_sthv1_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth \ + 8 --out results.pkl --eval top_k_accuracy + ``` + +3. 在 slurm 分布式环境中测试 TSN 在 Kinetics-400 数据集下的 `top-k accuracy` 指标 + + ```shell + python tools/test.py configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.pth \ + --launcher slurm --eval top_k_accuracy + ``` + +4. 在 Something-Something V1 下测试 onnx 格式的 TSN 模型,并验证 `top-k accuracy` 指标 + + ```shell + python tools/test.py configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py \ + checkpoints/SOME_CHECKPOINT.onnx \ + --eval top_k_accuracy --onnx + ``` + +### 使用高级 API 对视频和帧文件夹进行测试 + +这里举例说明如何构建模型并测试给定视频 + +```python +import torch + +from mmaction.apis import init_recognizer, inference_recognizer + +config_file = 'configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py' +# 从模型库中下载检测点,并把它放到 `checkpoints/` 文件夹下 +checkpoint_file = 'checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth' + +# 指定设备 +device = 'cuda:0' # or 'cpu' +device = torch.device(device) + + # 根据配置文件和检查点来建立模型 +model = init_recognizer(config_file, checkpoint_file, device=device) + +# 测试单个视频并显示其结果 +video = 'demo/demo.mp4' +labels = 'tools/data/kinetics/label_map_k400.txt' +results = inference_recognizer(model, video) + +# 显示结果 +labels = open('tools/data/kinetics/label_map_k400.txt').readlines() +labels = [x.strip() for x in labels] +results = [(labels[k[0]], k[1]) for k in results] + +print(f'The top-5 labels with corresponding scores are:') +for result in results: + print(f'{result[0]}: ', result[1]) +``` + +这里举例说明如何构建模型并测试给定帧文件夹 + +```python +import torch + +from mmaction.apis import init_recognizer, inference_recognizer + +config_file = 'configs/recognition/tsn/tsn_r50_inference_1x1x3_100e_kinetics400_rgb.py' +# 从模型库中下载检测点,并把它放到 `checkpoints/` 文件夹下 +checkpoint_file = 'checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth' + +# 指定设备 +device = 'cuda:0' # or 'cpu' +device = torch.device(device) + + # 根据配置文件和检查点来建立模型 +model = init_recognizer(config_file, checkpoint_file, device=device) + +# 测试单个视频的帧文件夹并显示其结果 +video = 'SOME_DIR_PATH/' +labels = 'tools/data/kinetics/label_map_k400.txt' +results = inference_recognizer(model, video) + +# 显示结果 +labels = open('tools/data/kinetics/label_map_k400.txt').readlines() +labels = [x.strip() for x in labels] +results = [(labels[k[0]], k[1]) for k in results] + +print(f'The top-5 labels with corresponding scores are:') +for result in results: + print(f'{result[0]}: ', result[1]) +``` + +这里举例说明如何构建模型并通过 url 测试给定视频 + +```python +import torch + +from mmaction.apis import init_recognizer, inference_recognizer + +config_file = 'configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py' +# 从模型库中下载检测点,并把它放到 `checkpoints/` 文件夹下 +checkpoint_file = 'checkpoints/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth' + +# 指定设备 +device = 'cuda:0' # or 'cpu' +device = torch.device(device) + + # 根据配置文件和检查点来建立模型 +model = init_recognizer(config_file, checkpoint_file, device=device) + +# 测试单个视频的 url 并显示其结果 +video = 'https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4' +labels = 'tools/data/kinetics/label_map_k400.txt' +results = inference_recognizer(model, video) + +# 显示结果 +labels = open('tools/data/kinetics/label_map_k400.txt').readlines() +labels = [x.strip() for x in labels] +results = [(labels[k[0]], k[1]) for k in results] + +print(f'The top-5 labels with corresponding scores are:') +for result in results: + print(f'{result[0]}: ', result[1]) +``` + +**注意**:MMAction2 在默认提供的推理配置文件(inference configs)中定义 `data_prefix` 变量,并将其设置为 None 作为默认值。 +如果 `data_prefix` 不为 None,则要获取的视频文件(或帧文件夹)的路径将为 `data_prefix/video`。 +在这里,`video` 是上述脚本中的同名变量。可以在 `rawframe_dataset.py` 文件和 `video_dataset.py` 文件中找到此详细信息。例如, + +- 当视频(帧文件夹)路径为 `SOME_DIR_PATH/VIDEO.mp4`(`SOME_DIR_PATH/VIDEO_NAME/img_xxxxx.jpg`),并且配置文件中的 `data_prefix` 为 None,则 `video` 变量应为 `SOME_DIR_PATH/VIDEO.mp4`(`SOME_DIR_PATH/VIDEO_NAME`)。 +- 当视频(帧文件夹)路径为 `SOME_DIR_PATH/VIDEO.mp4`(`SOME_DIR_PATH/VIDEO_NAME/img_xxxxx.jpg`),并且配置文件中的 `data_prefix` 为 `SOME_DIR_PATH`,则 `video` 变量应为 `VIDEO.mp4`(`VIDEO_NAME`)。 +- 当帧文件夹路径为 `VIDEO_NAME/img_xxxxx.jpg`,并且配置文件中的 `data_prefix` 为 None,则 `video` 变量应为 `VIDEO_NAME`。 +- 当传递参数为视频 url 而非本地路径,则需使用 OpenCV 作为视频解码后端。 + +在 [demo/demo.ipynb](/demo/demo.ipynb) 中有提供相应的 notebook 演示文件。 + +## 如何建立模型 + +### 使用基本组件建立模型 + +MMAction2 将模型组件分为 4 种基础模型: + +- 识别器(recognizer):整个识别器模型管道,通常包含一个主干网络(backbone)和分类头(cls_head)。 +- 主干网络(backbone):通常为一个用于提取特征的 FCN 网络,例如 ResNet,BNInception。 +- 分类头(cls_head):用于分类任务的组件,通常包括一个带有池化层的 FC 层。 +- 时序检测器(localizer):用于时序检测的模型,目前有的检测器包含 BSN,BMN,SSN。 + +用户可参照给出的配置文件里的基础模型搭建流水线(如 `Recognizer2D`) + +如果想创建一些新的组件,如 [TSM: Temporal Shift Module for Efficient Video Understanding](https://arxiv.org/abs/1811.08383) 中的 temporal shift backbone 结构,则需: + +1. 创建 `mmaction/models/backbones/resnet_tsm.py` 文件 + + ```python + from ..builder import BACKBONES + from .resnet import ResNet + + @BACKBONES.register_module() + class ResNetTSM(ResNet): + + def __init__(self, + depth, + num_segments=8, + is_shift=True, + shift_div=8, + shift_place='blockres', + temporal_pool=False, + **kwargs): + pass + + def forward(self, x): + # implementation is ignored + pass + ``` + +2. 从 `mmaction/models/backbones/__init__.py` 中导入模型 + + ```python + from .resnet_tsm import ResNetTSM + ``` + +3. 修改模型文件 + + ```python + backbone=dict( + type='ResNet', + pretrained='torchvision://resnet50', + depth=50, + norm_eval=False) + ``` + + 修改为 + + ```python + backbone=dict( + type='ResNetTSM', + pretrained='torchvision://resnet50', + depth=50, + norm_eval=False, + shift_div=8) + ``` + +### 构建新模型 + +要编写一个新的动作识别器流水线,用户需要继承 `BaseRecognizer`,其定义了如下抽象方法 + +- `forward_train()`: 训练模式下的前向方法 +- `forward_test()`: 测试模式下的前向方法 + +具体可参照 [Recognizer2D](/mmaction/models/recognizers/recognizer2d.py) 和 [Recognizer3D](/mmaction/models/recognizers/recognizer3d.py) + +## 如何训练模型 + +### 推理流水线 + +MMAction2 使用 `MMDistributedDataParallel` 进行分布式训练,使用 `MMDataParallel` 进行非分布式训练。 + +对于单机多卡与多台机器的情况,MMAction2 使用分布式训练。假设服务器有 8 块 GPU,则会启动 8 个进程,并且每台 GPU 对应一个进程。 + +每个进程拥有一个独立的模型,以及对应的数据加载器和优化器。 +模型参数同步只发生于最开始。之后,每经过一次前向与后向计算,所有 GPU 中梯度都执行一次 allreduce 操作,而后优化器将更新模型参数。 +由于梯度执行了 allreduce 操作,因此不同 GPU 中模型参数将保持一致。 + +### 训练配置 + +所有的输出(日志文件和模型权重文件)会被将保存到工作目录下。工作目录通过配置文件中的参数 `work_dir` 指定。 + +默认情况下,MMAction2 在每个周期后会在验证集上评估模型,可以通过在训练配置中修改 `interval` 参数来更改评估间隔 + +```python +evaluation = dict(interval=5) # 每 5 个周期进行一次模型评估 +``` + +根据 [Linear Scaling Rule](https://arxiv.org/abs/1706.02677),当 GPU 数量或每个 GPU 上的视频批大小改变时,用户可根据批大小按比例地调整学习率,如,当 4 GPUs x 2 video/gpu 时,lr=0.01;当 16 GPUs x 4 video/gpu 时,lr=0.08。 + +MMAction2 支持仅使用 CPU 进行训练。然而,这样做的速度**非常慢**,用户应仅使用其作为无 GPU 机器上的 debug 手段。 +如需使用 CPU 进行训练,用户需要首先使用命令 `export CUDA_VISIBLE_DEVICES=-1` 禁用机器上的 GPU (如有),然后使用命令 `python tools/train.py {OTHER_ARGS}` 直接调用训练脚本。 + +### 使用单个 GPU 进行训练 + +```shell +python tools/train.py ${CONFIG_FILE} [optional arguments] +``` + +如果用户想在命令中指定工作目录,则需要增加参数 `--work-dir ${YOUR_WORK_DIR}` + +### 使用多个 GPU 进行训练 + +```shell +./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments] +``` + +可选参数为: + +- `--validate` (**强烈建议**):在训练期间每 k 个周期进行一次验证(默认值为 5,可通过修改每个配置文件中的 `evaluation` 字典变量的 `interval` 值进行改变)。 +- `--test-last`:在训练结束后使用最后一个检查点的参数进行测试,将测试结果存储在 `${WORK_DIR}/last_pred.pkl` 中。 +- `--test-best`:在训练结束后使用效果最好的检查点的参数进行测试,将测试结果存储在 `${WORK_DIR}/best_pred.pkl` 中。 +- `--work-dir ${WORK_DIR}`:覆盖配置文件中指定的工作目录。 +- `--resume-from ${CHECKPOINT_FILE}`:从以前的模型权重文件恢复训练。 +- `--gpus ${GPU_NUM}`:使用的 GPU 数量,仅适用于非分布式训练。 +- `--gpu-ids ${GPU_IDS}`:使用的 GPU ID,仅适用于非分布式训练。 +- `--seed ${SEED}`:设置 python,numpy 和 pytorch 里的种子 ID,已用于生成随机数。 +- `--deterministic`:如果被指定,程序将设置 CUDNN 后端的确定化选项。 +- `JOB_LAUNCHER`:分布式任务初始化启动器选项。可选值有 `none`,`pytorch`,`slurm`,`mpi`。特别地,如果被设置为 `none`, 则会以非分布式模式进行测试。 +- `LOCAL_RANK`:本地 rank 的 ID。如果没有被指定,则会被设置为 0。 + +`resume-from` 和 `load-from` 的不同点: +`resume-from` 加载模型参数和优化器状态,并且保留检查点所在的周期数,常被用于恢复意外被中断的训练。 +`load-from` 只加载模型参数,但周期数从 0 开始计数,常被用于微调模型。 + +这里提供一个使用 8 块 GPU 加载 TSN 模型权重文件的例子。 + +```shell +./tools/dist_train.sh configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py 8 --resume-from work_dirs/tsn_r50_1x1x3_100e_kinetics400_rgb/latest.pth +``` + +### 使用多台机器进行训练 + +如果用户在 [slurm](https://slurm.schedmd.com/) 集群上运行 MMAction2,可使用 `slurm_train.sh` 脚本。(该脚本也支持单台机器上进行训练) + +```shell +[GPUS=${GPUS}] ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} [--work-dir ${WORK_DIR}] +``` + +这里给出一个在 slurm 集群上的 dev 分区使用 16 块 GPU 训练 TSN 的例子。(使用 `GPUS_PER_NODE=8` 参数来指定一个有 8 块 GPUS 的 slurm 集群节点) + +```shell +GPUS=16 ./tools/slurm_train.sh dev tsn_r50_k400 configs/recognition/tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py --work-dir work_dirs/tsn_r50_1x1x3_100e_kinetics400_rgb +``` + +用户可以查看 [slurm_train.sh](/tools/slurm_train.sh) 文件来检查完整的参数和环境变量。 + +如果您想使用由 ethernet 连接起来的多台机器, 您可以使用以下命令: + +在第一台机器上: + +```shell +NNODES=2 NODE_RANK=0 PORT=$MASTER_PORT MASTER_ADDR=$MASTER_ADDR sh tools/dist_train.sh $CONFIG $GPUS +``` + +在第二台机器上: + +```shell +NNODES=2 NODE_RANK=1 PORT=$MASTER_PORT MASTER_ADDR=$MASTER_ADDR sh tools/dist_train.sh $CONFIG $GPUS +``` + +但是,如果您不使用高速网路连接这几台机器的话,训练将会非常慢。 + +### 使用单台机器启动多个任务 + +如果用使用单台机器启动多个任务,如在有 8 块 GPU 的单台机器上启动 2 个需要 4 块 GPU 的训练任务,则需要为每个任务指定不同端口,以避免通信冲突。 + +如果用户使用 `dist_train.sh` 脚本启动训练任务,则可以通过以下命令指定端口 + +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29500 ./tools/dist_train.sh ${CONFIG_FILE} 4 +CUDA_VISIBLE_DEVICES=4,5,6,7 PORT=29501 ./tools/dist_train.sh ${CONFIG_FILE} 4 +``` + +如果用户在 slurm 集群下启动多个训练任务,则需要修改配置文件(通常是配置文件的倒数第 6 行)中的 `dist_params` 变量,以设置不同的通信端口。 + +在 `config1.py` 中, + +```python +dist_params = dict(backend='nccl', port=29500) +``` + +在 `config2.py` 中, + +```python +dist_params = dict(backend='nccl', port=29501) +``` + +之后便可启动两个任务,分别对应 `config1.py` 和 `config2.py`。 + +```shell +CUDA_VISIBLE_DEVICES=0,1,2,3 GPUS=4 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} config1.py [--work-dir ${WORK_DIR}] +CUDA_VISIBLE_DEVICES=4,5,6,7 GPUS=4 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} config2.py [--work-dir ${WORK_DIR}] +``` + +## 详细教程 + +目前, MMAction2 提供以下几种更详细的教程: + +- [如何编写配置文件](tutorials/1_config.md) +- [如何微调模型](tutorials/2_finetune.md) +- [如何增加新数据集](tutorials/3_new_dataset.md) +- [如何设计数据处理流程](tutorials/4_data_pipeline.md) +- [如何增加新模块](tutorials/5_new_modules.md) +- [如何导出模型为 onnx 格式](tutorials/6_export_model.md) +- [如何自定义模型运行参数](tutorials/7_customize_runtime.md) diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/index.rst b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/index.rst new file mode 100644 index 00000000..4c4351e5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/index.rst @@ -0,0 +1,74 @@ +欢迎来到 MMAction2 的中文文档! +===================================== + +您可以在页面左下角切换中英文文档。 + +You can change the documentation language at the lower-left corner of the page. + +.. toctree:: + :maxdepth: 2 + + install.md + getting_started.md + demo.md + benchmark.md + +.. toctree:: + :maxdepth: 2 + :caption: 数据集 + + datasets.md + data_preparation.md + supported_datasets.md + +.. toctree:: + :maxdepth: 2 + :caption: 模型库 + + modelzoo.md + recognition_models.md + localization_models.md + detection_models.md + skeleton_models.md + +.. toctree:: + :maxdepth: 2 + :caption: 教程 + + tutorials/1_config.md + tutorials/2_finetune.md + tutorials/3_new_dataset.md + tutorials/4_data_pipeline.md + tutorials/5_new_modules.md + tutorials/6_export_model.md + tutorials/7_customize_runtime.md + +.. toctree:: + :maxdepth: 2 + :caption: 实用工具和脚本 + + useful_tools.md + +.. toctree:: + :maxdepth: 2 + :caption: 记录 + + changelog.md + faq.md + +.. toctree:: + :caption: API 参考文档 + + api.rst + +.. toctree:: + :caption: 语言切换 + + switch_language.md + + +索引和表格 +================== + +* :ref:`genindex` +* :ref:`search` diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/install.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/install.md new file mode 100644 index 00000000..14ee70e1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/install.md @@ -0,0 +1,244 @@ +# 安装 + +本文档提供了安装 MMAction2 的相关步骤。 + + + +- [安装](#%E5%AE%89%E8%A3%85) + - [安装依赖包](#%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96%E5%8C%85) + - [准备环境](#%E5%87%86%E5%A4%87%E7%8E%AF%E5%A2%83) + - [MMAction2 的安装步骤](#mmaction2-%E7%9A%84%E5%AE%89%E8%A3%85%E6%AD%A5%E9%AA%A4) + - [CPU 环境下的安装步骤](#cpu-%E7%8E%AF%E5%A2%83%E4%B8%8B%E7%9A%84%E5%AE%89%E8%A3%85%E6%AD%A5%E9%AA%A4) + - [利用 Docker 镜像安装 MMAction2](#%E5%88%A9%E7%94%A8-docker-%E9%95%9C%E5%83%8F%E5%AE%89%E8%A3%85-mmaction2) + - [源码安装 MMAction2](#%E6%BA%90%E7%A0%81%E5%AE%89%E8%A3%85-mmaction2) + - [在多个 MMAction2 版本下进行开发](#%E5%9C%A8%E5%A4%9A%E4%B8%AA-mmaction2-%E7%89%88%E6%9C%AC%E4%B8%8B%E8%BF%9B%E8%A1%8C%E5%BC%80%E5%8F%91) + - [安装验证](#%E5%AE%89%E8%A3%85%E9%AA%8C%E8%AF%81) + + + +## 安装依赖包 + +- Linux (Windows 系统暂未有官方支持) +- Python 3.6+ +- PyTorch 1.3+ +- CUDA 9.2+ (如果要从源码对 PyTorch 进行编译, CUDA 9.0 版本同样可以兼容) +- GCC 5+ +- [mmcv](https://github.com/open-mmlab/mmcv) 1.1.1+ +- Numpy +- ffmpeg (4.2 版本最佳) +- [decord](https://github.com/dmlc/decord) (可选项, 0.4.1+):使用 `pip install decord==0.4.1` 命令安装其 CPU 版本,GPU 版本需从源码进行编译。 +- [PyAV](https://github.com/mikeboers/PyAV) (可选项):`conda install av -c conda-forge -y`。 +- [PyTurboJPEG](https://github.com/lilohuang/PyTurboJPEG) (可选项):`pip install PyTurboJPEG`。 +- [denseflow](https://github.com/open-mmlab/denseflow) (可选项):可参考 [这里](https://github.com/innerlee/setup) 获取简便安装步骤。 +- [moviepy](https://zulko.github.io/moviepy/) (可选项):`pip install moviepy`. 官方安装步骤可参考 [这里](https://zulko.github.io/moviepy/install.html)。**特别地**,如果安装过程碰到 [这个问题](https://github.com/Zulko/moviepy/issues/693),可参考: + 1. 对于 Windows 用户, [ImageMagick](https://www.imagemagick.org/script/index.php) 将不会被 MoviePy 自动检测到,用户需要对 `moviepy/config_defaults.py` 文件进行修改,以提供 ImageMagick 的二进制文件(即,`magick`)的路径,如 `IMAGEMAGICK_BINARY = "C:\\Program Files\\ImageMagick_VERSION\\magick.exe"` + 2. 对于 Linux 用户, 如果 [ImageMagick](https://www.imagemagick.org/script/index.php) 没有被 `moviepy` 检测到,用于需要对 `/etc/ImageMagick-6/policy.xml` 文件进行修改,把文件中的 `` 代码行修改为 ``。 +- [Pillow-SIMD](https://docs.fast.ai/performance.html#pillow-simd) (可选项):可使用如下脚本进行安装: + +```shell +conda uninstall -y --force pillow pil jpeg libtiff libjpeg-turbo +pip uninstall -y pillow pil jpeg libtiff libjpeg-turbo +conda install -yc conda-forge libjpeg-turbo +CFLAGS="${CFLAGS} -mavx2" pip install --upgrade --no-cache-dir --force-reinstall --no-binary :all: --compile pillow-simd +conda install -y jpeg libtiff +``` + +**注意**:用户需要首先运行 `pip uninstall mmcv` 命令,以确保 mmcv 被成功安装。 +如果 mmcv 和 mmcv-full 同时被安装, 会报 `ModuleNotFoundError` 的错误。 + +## 准备环境 + +a. 创建并激活 conda 虚拟环境,如: + +```shell +conda create -n open-mmlab python=3.7 -y +conda activate open-mmlab +``` + +b. 根据 [官方文档](https://pytorch.org/) 进行 PyTorch 和 torchvision 的安装,如: + +```shell +conda install pytorch torchvision -c pytorch +``` + +**注**:确保 CUDA 的编译版本和 CUDA 的运行版本相匹配。 +用户可以参照 [PyTorch 官网](https://pytorch.org/) 对预编译包所支持的 CUDA 版本进行核对。 + +`例 1`:如果用户的 `/usr/local/cuda` 文件夹下已安装 CUDA 10.1 版本,并且想要安装 PyTorch 1.5 版本, +则需要安装 CUDA 10.1 下预编译的 PyTorch。 + +```shell +conda install pytorch cudatoolkit=10.1 torchvision -c pytorch +``` + +`例 2`:如果用户的 `/usr/local/cuda` 文件夹下已安装 CUDA 9.2 版本,并且想要安装 PyTorch 1.3.1 版本, +则需要安装 CUDA 9.2 下预编译的 PyTorch。 + +```shell +conda install pytorch=1.3.1 cudatoolkit=9.2 torchvision=0.4.2 -c pytorch +``` + +如果 PyTorch 是由源码进行编译安装(而非直接下载预编译好的安装包),则可以使用更多的 CUDA 版本(如 9.0 版本)。 + +## MMAction2 的安装步骤 + +这里推荐用户使用 [MIM](https://github.com/open-mmlab/mim) 安装 MMAction2。 + +```shell +pip install git+https://github.com/open-mmlab/mim.git +mim install mmaction2 -f https://github.com/open-mmlab/mmaction2.git +``` + +MIM 可以自动安装 OpenMMLab 项目及其依赖。 + +或者,用户也可以通过以下步骤手动安装 MMAction2。 + +a. 安装 mmcv-full,我们推荐您安装以下预构建包: + +```shell +# pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html +pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.10.0/index.html +``` + +PyTorch 在 1.x.0 和 1.x.1 之间通常是兼容的,故 mmcv-full 只提供 1.x.0 的编译包。如果你的 PyTorch 版本是 1.x.1,你可以放心地安装在 1.x.0 版本编译的 mmcv-full。 + +``` +# 我们可以忽略 PyTorch 的小版本号 +pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.10/index.html +``` + +可查阅 [这里](https://github.com/open-mmlab/mmcv#installation) 以参考不同版本的 MMCV 所兼容的 PyTorch 和 CUDA 版本。 + +另外,用户也可以通过使用以下命令从源码进行编译: + +```shell +git clone https://github.com/open-mmlab/mmcv.git +cd mmcv +MMCV_WITH_OPS=1 pip install -e . # mmcv-full 包含一些 cuda 算子,执行该步骤会安装 mmcv-full(而非 mmcv) +# 或者使用 pip install -e . # 这个命令安装的 mmcv 将不包含 cuda ops,通常适配 CPU(无 GPU)环境 +cd .. +``` + +或者直接运行脚本: + +```shell +pip install mmcv-full +``` + +**注意**:如果 mmcv 已经被安装,用户需要使用 `pip uninstall mmcv` 命令进行卸载。如果 mmcv 和 mmcv-full 同时被安装, 会报 `ModuleNotFoundError` 的错误。 + +b. 克隆 MMAction2 库。 + +```shell +git clone https://github.com/open-mmlab/mmaction2.git +cd mmaction2 +``` + +c. 安装依赖包和 MMAction2。 + +```shell +pip install -r requirements/build.txt +pip install -v -e . # or "python setup.py develop" +``` + +如果是在 macOS 环境安装 MMAction2,则需使用如下命令: + +```shell +CC=clang CXX=clang++ CFLAGS='-stdlib=libc++' pip install -e . +``` + +d. 安装 mmdetection 以支持时空检测任务。 + +如果用户不想做时空检测相关任务,这部分步骤可以选择跳过。 + +可参考 [这里](https://github.com/open-mmlab/mmdetection#installation) 进行 mmdetection 的安装。 + +注意: + +1. 在步骤 b 中,git commit 的 id 将会被写到版本号中,如 0.6.0+2e7045c。这个版本号也会被保存到训练好的模型中。 + 这里推荐用户每次在步骤 b 中对本地代码和 github 上的源码进行同步。如果 C++/CUDA 代码被修改,就必须进行这一步骤。 + +2. 根据上述步骤,MMAction2 就会以 `dev` 模式被安装,任何本地的代码修改都会立刻生效,不需要再重新安装一遍(除非用户提交了 commits,并且想更新版本号)。 + +3. 如果用户想使用 `opencv-python-headless` 而不是 `opencv-python`,可再安装 MMCV 前安装 `opencv-python-headless`。 + +4. 如果用户想使用 `PyAV`,可以通过 `conda install av -c conda-forge -y` 进行安装。 + +5. 一些依赖包是可选的。运行 `python setup.py develop` 将只会安装运行代码所需的最小要求依赖包。 + 要想使用一些可选的依赖包,如 `decord`,用户需要通过 `pip install -r requirements/optional.txt` 进行安装, + 或者通过调用 `pip`(如 `pip install -v -e .[optional]`,这里的 `[optional]` 可替换为 `all`,`tests`,`build` 或 `optional`) 指定安装对应的依赖包,如 `pip install -v -e .[tests,build]`。 + +## CPU 环境下的安装步骤 + +MMAction2 可以在只有 CPU 的环境下安装(即无法使用 GPU 的环境)。 + +在 CPU 模式下,用户可以运行 `demo/demo.py` 的代码。 + +## 利用 Docker 镜像安装 MMAction2 + +MMAction2 提供一个 [Dockerfile](/docker/Dockerfile) 用户创建 docker 镜像。 + +```shell +# 创建拥有 PyTorch 1.6.0, CUDA 10.1, CUDNN 7 配置的 docker 镜像. +docker build -f ./docker/Dockerfile --rm -t mmaction2 . +``` + +**注意**:用户需要确保已经安装了 [nvidia-container-toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker)。 + +运行以下命令: + +```shell +docker run --gpus all --shm-size=8g -it -v {DATA_DIR}:/mmaction2/data mmaction2 +``` + +## 源码安装 MMAction2 + +这里提供了 conda 下安装 MMAction2 并链接数据集路径的完整脚本(假设 Kinetics-400 数据的路径在 $KINETICS400_ROOT)。 + +```shell +conda create -n open-mmlab python=3.7 -y +conda activate open-mmlab + +# 安装最新的,使用默认版本的 CUDA 版本(一般为最新版本)预编译的 PyTorch 包 +conda install -c pytorch pytorch torchvision -y + +# 安装最新版本的 mmcv 或 mmcv-full,这里以 mmcv 为例 +pip install mmcv + +# 安装 mmaction2 +git clone https://github.com/open-mmlab/mmaction2.git +cd mmaction2 +pip install -r requirements/build.txt +python setup.py develop + +mkdir data +ln -s $KINETICS400_ROOT data +``` + +## 在多个 MMAction2 版本下进行开发 + +MMAction2 的训练和测试脚本已经修改了 `PYTHONPATH` 变量,以确保其能够运行当前目录下的 MMAction2。 + +如果想要运行环境下默认的 MMAction2,用户需要在训练和测试脚本中去除这一行: + +```shell +PYTHONPATH="$(dirname $0)/..":$PYTHONPATH +``` + +## 安装验证 + +为了验证 MMAction2 和所需的依赖包是否已经安装成功, +用户可以运行以下的 python 代码,以测试其是否能成功地初始化动作识别器,并进行演示视频的推理: + +```python +import torch +from mmaction.apis import init_recognizer, inference_recognizer + +config_file = 'configs/recognition/tsn/tsn_r50_video_inference_1x1x3_100e_kinetics400_rgb.py' +device = 'cuda:0' # 或 'cpu' +device = torch.device(device) + +model = init_recognizer(config_file, device=device) +# 进行演示视频的推理 +inference_recognizer(model, 'demo/demo.mp4') +``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/make.bat b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/make.bat new file mode 100644 index 00000000..922152e9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/merge_docs.sh b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/merge_docs.sh new file mode 100644 index 00000000..1265731a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/merge_docs.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +# gather models +cat ../configs/localization/*/README_zh-CN.md | sed "s/md#测/html#测/g" | sed "s/md#训/html#训/g" | sed "s/#/#&/" | sed '1i\# 时序动作检测模型' | sed 's/](\/docs_zh_CN\//](/g' | sed 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' | sed "s/getting_started.html##/getting_started.html#/g" > localization_models.md +cat ../configs/recognition/*/README_zh-CN.md | sed "s/md#测/html#t测/g" | sed "s/md#训/html#训/g" | sed "s/#/#&/" | sed '1i\# 动作识别模型' | sed 's/](\/docs_zh_CN\//](/g' | sed 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g'| sed "s/getting_started.html##/getting_started.html#/g" > recognition_models.md +cat ../configs/recognition_audio/*/README_zh-CN.md | sed "s/md#测/html#测/g" | sed "s/md#训/html#训/g" | sed "s/#/#&/" | sed 's/](\/docs_zh_CN\//](/g' | sed 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g'| sed "s/getting_started.html##/getting_started.html#/g" >> recognition_models.md +cat ../configs/detection/*/README_zh-CN.md | sed "s/md#测/html#测/g" | sed "s/md#训/html#训/g" | sed "s/#/#&/" | sed '1i\# 时空动作检测模型' | sed 's/](\/docs_zh_CN\//](/g' | sed 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g'| sed "s/getting_started.html##/getting_started.html#/g" > detection_models.md +cat ../configs/skeleton/*/README_zh-CN.md | sed "s/md#测/html#测/g" | sed "s/md#训/html#训/g" | sed "s/#/#&/" | sed '1i\# 骨骼动作识别模型' | sed 's/](\/docs_zh_CN\//](/g' | sed 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g'| sed "s/getting_started.html##/getting_started.html#/g" > skeleton_models.md + +# gather datasets +cat ../tools/data/*/README_zh-CN.md | sed 's/# 准备/# /g' | sed 's/#/#&/' > prepare_data.md + +sed -i 's/(\/tools\/data\/activitynet\/README_zh-CN.md/(#activitynet/g' supported_datasets.md +sed -i 's/(\/tools\/data\/kinetics\/README_zh-CN.md/(#kinetics-400-600-700/g' supported_datasets.md +sed -i 's/(\/tools\/data\/mit\/README_zh-CN.md/(#moments-in-time/g' supported_datasets.md +sed -i 's/(\/tools\/data\/mmit\/README_zh-CN.md/(#multi-moments-in-time/g' supported_datasets.md +sed -i 's/(\/tools\/data\/sthv1\/README_zh-CN.md/(#something-something-v1/g' supported_datasets.md +sed -i 's/(\/tools\/data\/sthv2\/README_zh-CN.md/(#something-something-v2/g' supported_datasets.md +sed -i 's/(\/tools\/data\/thumos14\/README_zh-CN.md/(#thumos-14/g' supported_datasets.md +sed -i 's/(\/tools\/data\/ucf101\/README_zh-CN.md/(#ucf-101/g' supported_datasets.md +sed -i 's/(\/tools\/data\/ucf101_24\/README_zh-CN.md/(#ucf101-24/g' supported_datasets.md +sed -i 's/(\/tools\/data\/jhmdb\/README_zh-CN.md/(#jhmdb/g' supported_datasets.md +sed -i 's/(\/tools\/data\/hvu\/README_zh-CN.md/(#hvu/g' supported_datasets.md +sed -i 's/(\/tools\/data\/hmdb51\/README_zh-CN.md/(#hmdb51/g' supported_datasets.md +sed -i 's/(\/tools\/data\/jester\/README_zh-CN.md/(#jester/g' supported_datasets.md +sed -i 's/(\/tools\/data\/ava\/README_zh-CN.md/(#ava/g' supported_datasets.md +sed -i 's/(\/tools\/data\/gym\/README_zh-CN.md/(#gym/g' supported_datasets.md +sed -i 's/(\/tools\/data\/omnisource\/README_zh-CN.md/(#omnisource/g' supported_datasets.md +sed -i 's/(\/tools\/data\/diving48\/README_zh-CN.md/(#diving48/g' supported_datasets.md +sed -i 's/(\/tools\/data\/skeleton\/README_zh-CN.md/(#skeleton/g' supported_datasets.md + +cat prepare_data.md >> supported_datasets.md +sed -i 's/](\/docs_zh_CN\//](/g' supported_datasets.md +sed -i 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' supported_datasets.md + +sed -i "s/md###t/html#t/g" demo.md +sed -i 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' demo.md +sed -i 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' benchmark.md +sed -i 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' getting_started.md +sed -i 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' install.md +sed -i 's/](\/docs_zh_CN\//](/g' ./tutorials/*.md +sed -i 's=](/=](https://github.com/open-mmlab/mmaction2/tree/master/=g' ./tutorials/*.md diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/stat.py b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/stat.py new file mode 100644 index 00000000..fe7590af --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/stat.py @@ -0,0 +1,173 @@ +#!/usr/bin/env python +# Copyright (c) OpenMMLab. All rights reserved. +import functools as func +import glob +import re +from os.path import basename, splitext + +import numpy as np +import titlecase + + +def anchor(name): + return re.sub(r'-+', '-', re.sub(r'[^a-zA-Z0-9]', '-', + name.strip().lower())).strip('-') + + +# Count algorithms + +files = sorted(glob.glob('*_models.md')) + +stats = [] + +for f in files: + with open(f, 'r') as content_file: + content = content_file.read() + + # title + title = content.split('\n')[0].replace('#', '') + + # skip IMAGE and ABSTRACT tags + content = [ + x for x in content.split('\n') + if 'IMAGE' not in x and 'ABSTRACT' not in x + ] + content = '\n'.join(content) + + # count papers + papers = set( + (papertype, titlecase.titlecase(paper.lower().strip())) + for (papertype, paper) in re.findall( + r'\s*\n.*?\btitle\s*=\s*{(.*?)}', + content, re.DOTALL)) + # paper links + revcontent = '\n'.join(list(reversed(content.splitlines()))) + paperlinks = {} + for _, p in papers: + print(p) + q = p.replace('\\', '\\\\').replace('?', '\\?') + paperlinks[p] = ' '.join( + (f'[->]({splitext(basename(f))[0]}.html#{anchor(paperlink)})' + for paperlink in re.findall( + rf'\btitle\s*=\s*{{\s*{q}\s*}}.*?\n## (.*?)\s*[,;]?\s*\n', + revcontent, re.DOTALL | re.IGNORECASE))) + print(' ', paperlinks[p]) + paperlist = '\n'.join( + sorted(f' - [{t}] {x} ({paperlinks[x]})' for t, x in papers)) + # count configs + configs = set(x.lower().strip() + for x in re.findall(r'https.*configs/.*\.py', content)) + + # count ckpts + ckpts = set(x.lower().strip() + for x in re.findall(r'https://download.*\.pth', content) + if 'mmaction' in x) + + statsmsg = f""" +## [{title}]({f}) + +* 模型权重文件数量: {len(ckpts)} +* 配置文件数量: {len(configs)} +* 论文数量: {len(papers)} +{paperlist} + + """ + + stats.append((papers, configs, ckpts, statsmsg)) + +allpapers = func.reduce(lambda a, b: a.union(b), [p for p, _, _, _ in stats]) +allconfigs = func.reduce(lambda a, b: a.union(b), [c for _, c, _, _ in stats]) +allckpts = func.reduce(lambda a, b: a.union(b), [c for _, _, c, _ in stats]) +msglist = '\n'.join(x for _, _, _, x in stats) + +papertypes, papercounts = np.unique([t for t, _ in allpapers], + return_counts=True) +countstr = '\n'.join( + [f' - {t}: {c}' for t, c in zip(papertypes, papercounts)]) + +modelzoo = f""" +# 总览 + +* 模型权重文件数量: {len(allckpts)} +* 配置文件数量: {len(allconfigs)} +* 论文数量: {len(allpapers)} +{countstr} + +有关受支持的数据集,可参见 [数据集总览](datasets.md)。 + +{msglist} +""" + +with open('modelzoo.md', 'w') as f: + f.write(modelzoo) + +# Count datasets + +files = ['supported_datasets.md'] + +datastats = [] + +for f in files: + with open(f, 'r') as content_file: + content = content_file.read() + + # title + title = content.split('\n')[0].replace('#', '') + + # count papers + papers = set( + (papertype, titlecase.titlecase(paper.lower().strip())) + for (papertype, paper) in re.findall( + r'\s*\n.*?\btitle\s*=\s*{(.*?)}', + content, re.DOTALL)) + # paper links + revcontent = '\n'.join(list(reversed(content.splitlines()))) + paperlinks = {} + for _, p in papers: + print(p) + q = p.replace('\\', '\\\\').replace('?', '\\?') + paperlinks[p] = ', '.join( + (f'[{p.strip()} ->]({splitext(basename(f))[0]}.html#{anchor(p)})' + for p in re.findall( + rf'\btitle\s*=\s*{{\s*{q}\s*}}.*?\n## (.*?)\s*[,;]?\s*\n', + revcontent, re.DOTALL | re.IGNORECASE))) + print(' ', paperlinks[p]) + paperlist = '\n'.join( + sorted(f' - [{t}] {x} ({paperlinks[x]})' for t, x in papers)) + + statsmsg = f""" +## [{title}]({f}) + +* 论文数量: {len(papers)} +{paperlist} + + """ + + datastats.append((papers, configs, ckpts, statsmsg)) + +alldatapapers = func.reduce(lambda a, b: a.union(b), + [p for p, _, _, _ in datastats]) + +# Summarize + +msglist = '\n'.join(x for _, _, _, x in stats) +datamsglist = '\n'.join(x for _, _, _, x in datastats) +papertypes, papercounts = np.unique([t for t, _ in alldatapapers], + return_counts=True) +countstr = '\n'.join( + [f' - {t}: {c}' for t, c in zip(papertypes, papercounts)]) + +modelzoo = f""" +# 总览 + +* 论文数量: {len(alldatapapers)} +{countstr} + + +有关受支持的视频理解算法,可参见 [模型总览](modelzoo.md)。 + +{datamsglist} +""" + +with open('datasets.md', 'w') as f: + f.write(modelzoo) diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/supported_datasets.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/supported_datasets.md new file mode 100644 index 00000000..7cafa129 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/supported_datasets.md @@ -0,0 +1,34 @@ +# 支持的数据集 + +- 支持的动作识别数据集: + + - [UCF101](/tools/data/ucf101/README_zh-CN.md) \[ [主页](https://www.crcv.ucf.edu/research/data-sets/ucf101/) \]. + - [HMDB51](/tools/data/hmdb51/README_zh-CN.md) \[ [主页](https://serre-lab.clps.brown.edu/resource/hmdb-a-large-human-motion-database/) \]. + - [Kinetics-\[400/600/700\]](/tools/data/kinetics/README_zh-CN.md) \[ [主页](https://deepmind.com/research/open-source/kinetics) \] + - [Something-Something V1](/tools/data/sthv1/README_zh-CN.md) \[ [主页](https://20bn.com/datasets/something-something/v1) \] + - [Something-Something V2](/tools/data/sthv2/README_zh-CN.md) \[ [主页](https://20bn.com/datasets/something-something) \] + - [Moments in Time](/tools/data/mit/README_zh-CN.md) \[ [主页](http://moments.csail.mit.edu/) \] + - [Multi-Moments in Time](/tools/data/mmit/README_zh-CN.md) \[ [主页](http://moments.csail.mit.edu/challenge_iccv_2019.html) \] + - [HVU](/tools/data/hvu/README_zh-CN.md) \[ [主页](https://github.com/holistic-video-understanding/HVU-Dataset) \] + - [Jester](/tools/data/jester/README_zh-CN.md) \[ [主页](https://20bn.com/datasets/jester/v1) \] + - [GYM](/tools/data/gym/README_zh-CN.md) \[ [主页](https://sdolivia.github.io/FineGym/) \] + - [ActivityNet](/tools/data/activitynet/README_zh-CN.md) \[ [主页](http://activity-net.org/) \] + +- 支持的时序动作检测数据集: + + - [ActivityNet](/tools/data/activitynet/README_zh-CN.md) \[ [主页](http://activity-net.org/) \] + - [THUMOS14](/tools/data/thumos14/README_zh-CN.md) \[ [主页](https://www.crcv.ucf.edu/THUMOS14/download.html) \] + +- 支持的时空动作检测数据集: + + - [AVA](/tools/data/ava/README_zh-CN.md) \[ [主页](https://research.google.com/ava/index.html) \] + - [UCF101-24](/tools/data/ucf101_24/README_zh-CN.md) \[ [主页](http://www.thumos.info/download.html) \] + - [JHMDB](/tools/data/jhmdb/README_zh-CN.md) \[ [主页](http://jhmdb.is.tue.mpg.de/) \] + +- 基于人体骨架的动作识别数据集: + + - [PoseC3D Skeleton Dataset](/tools/data/skeleton/README.md) \[ [主页](https://kennymckormick.github.io/posec3d/) \] + +MMAction2 目前支持的数据集如上所列。 +MMAction2 在 `$MMACTION2/tools/data/` 路径下提供数据集准备脚本。 +每个数据集的详细准备教程也在 [Readthedocs](https://mmaction2.readthedocs.io/zh_CN/latest/supported_datasets.html) 中给出。 diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/switch_language.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/switch_language.md new file mode 100644 index 00000000..4bade223 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/switch_language.md @@ -0,0 +1,3 @@ +## English + +## 简体中文 diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/1_config.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/1_config.md new file mode 100644 index 00000000..7c2f04ab --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/1_config.md @@ -0,0 +1,748 @@ +# 教程 1:如何编写配置文件 + +MMAction2 使用 python 文件作为配置文件。其配置文件系统的设计将模块化与继承整合进来,方便用户进行各种实验。 +MMAction2 提供的所有配置文件都放置在 `$MMAction2/configs` 文件夹下,用户可以通过运行命令 +`python tools/analysis/print_config.py /PATH/TO/CONFIG` 来查看完整的配置信息,从而方便检查所对应的配置文件。 + + + +- [通过命令行参数修改配置信息](#%E9%80%9A%E8%BF%87%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0%E4%BF%AE%E6%94%B9%E9%85%8D%E7%BD%AE%E4%BF%A1%E6%81%AF) +- [配置文件结构](#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E7%BB%93%E6%9E%84) +- [配置文件命名规则](#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%91%BD%E5%90%8D%E8%A7%84%E5%88%99) + - [时序动作检测的配置文件系统](#%E6%97%B6%E5%BA%8F%E5%8A%A8%E4%BD%9C%E6%A3%80%E6%B5%8B%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F) + - [动作识别的配置文件系统](#%E5%8A%A8%E4%BD%9C%E8%AF%86%E5%88%AB%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F) + - [时空动作检测的配置文件系统](#%E6%97%B6%E7%A9%BA%E5%8A%A8%E4%BD%9C%E6%A3%80%E6%B5%8B%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F) +- [常见问题](#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98) + - [配置文件中的中间变量](#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E4%B8%AD%E9%97%B4%E5%8F%98%E9%87%8F) + + + +## 通过命令行参数修改配置信息 + +当用户使用脚本 "tools/train.py" 或者 "tools/test.py" 提交任务时,可以通过指定 `--cfg-options` 参数来直接修改所使用的配置文件内容。 + +- 更新配置文件内的字典 + + 用户可以按照原始配置中的字典键顺序来指定配置文件的设置。 + 例如,`--cfg-options model.backbone.norm_eval=False` 会改变 `train` 模式下模型主干网络 backbone 中所有的 BN 模块。 + +- 更新配置文件内列表的键 + + 配置文件中,存在一些由字典组成的列表。例如,训练数据前处理流水线 data.train.pipeline 就是 python 列表。 + 如,`[dict(type='SampleFrames'), ...]`。如果用户想更改其中的 `'SampleFrames'` 为 `'DenseSampleFrames'`, + 可以指定 `--cfg-options data.train.pipeline.0.type=DenseSampleFrames`。 + +- 更新列表/元组的值。 + + 当配置文件中需要更新的是一个列表或者元组,例如,配置文件通常会设置 `workflow=[('train', 1)]`,用户如果想更改, + 需要指定 `--cfg-options workflow="[(train,1),(val,1)]"`。注意这里的引号 " 对于列表/元组数据类型的修改是必要的, + 并且 **不允许** 引号内所指定的值的书写存在空格。 + +## 配置文件结构 + +在 `config/_base_` 文件夹下存在 3 种基本组件类型: 模型(model), 训练策略(schedule), 运行时的默认设置(default_runtime)。 +许多方法都可以方便地通过组合这些组件进行实现,如 TSN,I3D,SlowOnly 等。 +其中,通过 `_base_` 下组件来构建的配置被称为 _原始配置_(_primitive_)。 + +对于在同一文件夹下的所有配置文件,MMAction2 推荐只存在 **一个** 对应的 _原始配置_ 文件。 +所有其他的配置文件都应该继承 _原始配置_ 文件,这样就能保证配置文件的最大继承深度为 3。 + +为了方便理解,MMAction2 推荐用户继承现有方法的配置文件。 +例如,如需修改 TSN 的配置文件,用户应先通过 `_base_ = '../tsn/tsn_r50_1x1x3_100e_kinetics400_rgb.py'` 继承 TSN 配置文件的基本结构, +并修改其中必要的内容以完成继承。 + +如果用户想实现一个独立于任何一个现有的方法结构的新方法,则需要像 `configs/recognition`, `configs/detection` 等一样,在 `configs/TASK` 中建立新的文件夹。 + +更多详细内容,请参考 [mmcv](https://mmcv.readthedocs.io/en/latest/understand_mmcv/config.html)。 + +## 配置文件命名规则 + +MMAction2 按照以下风格进行配置文件命名,代码库的贡献者需要遵循相同的命名规则。 + +``` +{model}_[model setting]_{backbone}_[misc]_{data setting}_[gpu x batch_per_gpu]_{schedule}_{dataset}_{modality} +``` + +其中,`{xxx}` 表示必要的命名域,`[yyy]` 表示可选的命名域。 + +- `{model}`:模型类型,如 `tsn`,`i3d` 等。 +- `[model setting]`:一些模型上的特殊设置。 +- `{backbone}`:主干网络类型,如 `r50`(ResNet-50)等。 +- `[misc]`:模型的额外设置或插件,如 `dense`,`320p`,`video`等。 +- `{data setting}`:采帧数据格式,形如 `{clip_len}x{frame_interval}x{num_clips}`。 +- `[gpu x batch_per_gpu]`:GPU 数量以及每个 GPU 上的采样。 +- `{schedule}`:训练策略设置,如 `20e` 表示 20 个周期(epoch)。 +- `{dataset}`:数据集名,如 `kinetics400`,`mmit`等。 +- `{modality}`:帧的模态,如 `rgb`, `flow`等。 + +### 时序动作检测的配置文件系统 + +MMAction2 将模块化设计整合到配置文件系统中,以便于执行各种不同的实验。 + +- 以 BMN 为例 + + 为了帮助用户理解 MMAction2 的配置文件结构,以及时序动作检测系统中的一些模块,这里以 BMN 为例,给出其配置文件的注释。 + 对于每个模块的详细用法以及对应参数的选择,请参照 [API 文档](https://mmaction2.readthedocs.io/en/latest/api.html)。 + + ```python + # 模型设置 + model = dict( # 模型的配置 + type='BMN', # 时序动作检测器的类型 + temporal_dim=100, # 每个视频中所选择的帧数量 + boundary_ratio=0.5, # 视频边界的决策几率 + num_samples=32, # 每个候选的采样数 + num_samples_per_bin=3, # 每个样本的直方图采样数 + feat_dim=400, # 特征维度 + soft_nms_alpha=0.4, # soft-NMS 的 alpha 值 + soft_nms_low_threshold=0.5, # soft-NMS 的下界 + soft_nms_high_threshold=0.9, # soft-NMS 的上界 + post_process_top_k=100) # 后处理得到的最好的 K 个 proposal + # 模型训练和测试的设置 + train_cfg = None # 训练 BMN 的超参配置 + test_cfg = dict(average_clips='score') # 测试 BMN 的超参配置 + + # 数据集设置 + dataset_type = 'ActivityNetDataset' # 训练,验证,测试的数据集类型 + data_root = 'data/activitynet_feature_cuhk/csv_mean_100/' # 训练集的根目录 + data_root_val = 'data/activitynet_feature_cuhk/csv_mean_100/' # 验证集和测试集的根目录 + ann_file_train = 'data/ActivityNet/anet_anno_train.json' # 训练集的标注文件 + ann_file_val = 'data/ActivityNet/anet_anno_val.json' # 验证集的标注文件 + ann_file_test = 'data/ActivityNet/anet_anno_test.json' # 测试集的标注文件 + + train_pipeline = [ # 训练数据前处理流水线步骤组成的列表 + dict(type='LoadLocalizationFeature'), # 加载时序动作检测特征 + dict(type='GenerateLocalizationLabels'), # 生成时序动作检测标签 + dict( # Collect 类的配置 + type='Collect', # Collect 类决定哪些键会被传递到时序检测器中 + keys=['raw_feature', 'gt_bbox'], # 输入的键 + meta_name='video_meta', # 元名称 + meta_keys=['video_name']), # 输入的元键 + dict( # ToTensor 类的配置 + type='ToTensor', # ToTensor 类将其他类型转化为 Tensor 类型 + keys=['raw_feature']), # 将被从其他类型转化为 Tensor 类型的特征 + dict( # ToDataContainer 类的配置 + type='ToDataContainer', # 将一些信息转入到 ToDataContainer 中 + fields=[dict(key='gt_bbox', stack=False, cpu_only=True)]) # 携带额外键和属性的信息域 + ] + val_pipeline = [ # 验证数据前处理流水线步骤组成的列表 + dict(type='LoadLocalizationFeature'), # 加载时序动作检测特征 + dict(type='GenerateLocalizationLabels'), # 生成时序动作检测标签 + dict( # Collect 类的配置 + type='Collect', # Collect 类决定哪些键会被传递到时序检测器中 + keys=['raw_feature', 'gt_bbox'], # 输入的键 + meta_name='video_meta', # 元名称 + meta_keys=[ + 'video_name', 'duration_second', 'duration_frame', 'annotations', + 'feature_frame' + ]), # 输入的元键 + dict( # ToTensor 类的配置 + type='ToTensor', # ToTensor 类将其他类型转化为 Tensor 类型 + keys=['raw_feature']), # 将被从其他类型转化为 Tensor 类型的特征 + dict( # ToDataContainer 类的配置 + type='ToDataContainer', # 将一些信息转入到 ToDataContainer 中 + fields=[dict(key='gt_bbox', stack=False, cpu_only=True)]) # 携带额外键和属性的信息域 + ] + test_pipeline = [ # 测试数据前处理流水线步骤组成的列表 + dict(type='LoadLocalizationFeature'), # 加载时序动作检测特征 + dict( # Collect 类的配置 + type='Collect', # Collect 类决定哪些键会被传递到时序检测器中 + keys=['raw_feature'], # 输入的键 + meta_name='video_meta', # 元名称 + meta_keys=[ + 'video_name', 'duration_second', 'duration_frame', 'annotations', + 'feature_frame' + ]), # 输入的元键 + dict( # ToTensor 类的配置 + type='ToTensor', # ToTensor 类将其他类型转化为 Tensor 类型 + keys=['raw_feature']), # 将被从其他类型转化为 Tensor 类型的特征 + ] + data = dict( # 数据的配置 + videos_per_gpu=8, # 单个 GPU 的批大小 + workers_per_gpu=8, # 单个 GPU 的 dataloader 的进程 + train_dataloader=dict( # 训练过程 dataloader 的额外设置 + drop_last=True), # 在训练过程中是否丢弃最后一个批次 + val_dataloader=dict( # 验证过程 dataloader 的额外设置 + videos_per_gpu=1), # 单个 GPU 的批大小 + test_dataloader=dict( # 测试过程 dataloader 的额外设置 + videos_per_gpu=2), # 单个 GPU 的批大小 + test=dict( # 测试数据集的设置 + type=dataset_type, + ann_file=ann_file_test, + pipeline=test_pipeline, + data_prefix=data_root_val), + val=dict( # 验证数据集的设置 + type=dataset_type, + ann_file=ann_file_val, + pipeline=val_pipeline, + data_prefix=data_root_val), + train=dict( # 训练数据集的设置 + type=dataset_type, + ann_file=ann_file_train, + pipeline=train_pipeline, + data_prefix=data_root)) + + # 优化器设置 + optimizer = dict( + # 构建优化器的设置,支持: + # (1) 所有 PyTorch 原生的优化器,这些优化器的参数和 PyTorch 对应的一致; + # (2) 自定义的优化器,这些优化器在 `constructor` 的基础上构建。 + # 更多细节可参考 "tutorials/5_new_modules.md" 部分 + type='Adam', # 优化器类型, 参考 https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/optimizer/default_constructor.py#L13 for more details + lr=0.001, # 学习率, 参数的细节使用可参考 PyTorch 的对应文档 + weight_decay=0.0001) # Adam 优化器的权重衰减 + optimizer_config = dict( # 用于构建优化器钩子的设置 + grad_clip=None) # 大部分的方法不使用梯度裁剪 + # 学习策略设置 + lr_config = dict( # 用于注册学习率调整钩子的设置 + policy='step', # 调整器策略, 支持 CosineAnnealing,Cyclic等方法。更多细节可参考 https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py#L9 + step=7) # 学习率衰减步长 + + total_epochs = 9 # 训练模型的总周期数 + checkpoint_config = dict( # 模型权重文件钩子设置,更多细节可参考 https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/checkpoint.py + interval=1) # 模型权重文件保存间隔 + evaluation = dict( # 训练期间做验证的设置 + interval=1, # 执行验证的间隔 + metrics=['AR@AN']) # 验证方法 + log_config = dict( # 注册日志钩子的设置 + interval=50, # 打印日志间隔 + hooks=[ # 训练期间执行的钩子 + dict(type='TextLoggerHook'), # 记录训练过程信息的日志 + # dict(type='TensorboardLoggerHook'), # 同时支持 Tensorboard 日志 + ]) + + # 运行设置 + dist_params = dict(backend='nccl') # 建立分布式训练的设置(端口号,多 GPU 通信框架等) + log_level = 'INFO' # 日志等级 + work_dir = './work_dirs/bmn_400x100_2x8_9e_activitynet_feature/' # 记录当前实验日志和模型权重文件的文件夹 + load_from = None # 从给定路径加载模型作为预训练模型. 这个选项不会用于断点恢复训练 + resume_from = None # 加载给定路径的模型权重文件作为断点续连的模型, 训练将从该时间点保存的周期点继续进行 + workflow = [('train', 1)] # runner 的执行流. [('train', 1)] 代表只有一个执行流,并且这个名为 train 的执行流只执行一次 + output_config = dict( # 时序检测器输出设置 + out=f'{work_dir}/results.json', # 输出文件路径 + output_format='json') # 输出文件格式 + ``` + +### 动作识别的配置文件系统 + +MMAction2 将模块化设计整合到配置文件系统中,以便执行各类不同实验。 + +- 以 TSN 为例 + + 为了帮助用户理解 MMAction2 的配置文件结构,以及动作识别系统中的一些模块,这里以 TSN 为例,给出其配置文件的注释。 + 对于每个模块的详细用法以及对应参数的选择,请参照 [API 文档](https://mmaction2.readthedocs.io/en/latest/api.html)。 + + ```python + # 模型设置 + model = dict( # 模型的配置 + type='Recognizer2D', # 动作识别器的类型 + backbone=dict( # Backbone 字典设置 + type='ResNet', # Backbone 名 + pretrained='torchvision://resnet50', # 预训练模型的 url 或文件位置 + depth=50, # ResNet 模型深度 + norm_eval=False), # 训练时是否设置 BN 层为验证模式 + cls_head=dict( # 分类器字典设置 + type='TSNHead', # 分类器名 + num_classes=400, # 分类类别数量 + in_channels=2048, # 分类器里输入通道数 + spatial_type='avg', # 空间维度的池化种类 + consensus=dict(type='AvgConsensus', dim=1), # consensus 模块设置 + dropout_ratio=0.4, # dropout 层概率 + init_std=0.01), # 线性层初始化 std 值 + # 模型训练和测试的设置 + train_cfg=None, # 训练 TSN 的超参配置 + test_cfg=dict(average_clips=None)) # 测试 TSN 的超参配置 + + # 数据集设置 + dataset_type = 'RawframeDataset' # 训练,验证,测试的数据集类型 + data_root = 'data/kinetics400/rawframes_train/' # 训练集的根目录 + data_root_val = 'data/kinetics400/rawframes_val/' # 验证集,测试集的根目录 + ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' # 训练集的标注文件 + ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' # 验证集的标注文件 + ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' # 测试集的标注文件 + img_norm_cfg = dict( # 图像正则化参数设置 + mean=[123.675, 116.28, 103.53], # 图像正则化平均值 + std=[58.395, 57.12, 57.375], # 图像正则化方差 + to_bgr=False) # 是否将通道数从 RGB 转为 BGR + + train_pipeline = [ # 训练数据前处理流水线步骤组成的列表 + dict( # SampleFrames 类的配置 + type='SampleFrames', # 选定采样哪些视频帧 + clip_len=1, # 每个输出视频片段的帧 + frame_interval=1, # 所采相邻帧的时序间隔 + num_clips=3), # 所采帧片段的数量 + dict( # RawFrameDecode 类的配置 + type='RawFrameDecode'), # 给定帧序列,加载对应帧,解码对应帧 + dict( # Resize 类的配置 + type='Resize', # 调整图片尺寸 + scale=(-1, 256)), # 调整比例 + dict( # MultiScaleCrop 类的配置 + type='MultiScaleCrop', # 多尺寸裁剪,随机从一系列给定尺寸中选择一个比例尺寸进行裁剪 + input_size=224, # 网络输入 + scales=(1, 0.875, 0.75, 0.66), # 长宽比例选择范围 + random_crop=False, # 是否进行随机裁剪 + max_wh_scale_gap=1), # 长宽最大比例间隔 + dict( # Resize 类的配置 + type='Resize', # 调整图片尺寸 + scale=(224, 224), # 调整比例 + keep_ratio=False), # 是否保持长宽比 + dict( # Flip 类的配置 + type='Flip', # 图片翻转 + flip_ratio=0.5), # 执行翻转几率 + dict( # Normalize 类的配置 + type='Normalize', # 图片正则化 + **img_norm_cfg), # 图片正则化参数 + dict( # FormatShape 类的配置 + type='FormatShape', # 将图片格式转变为给定的输入格式 + input_format='NCHW'), # 最终的图片组成格式 + dict( # Collect 类的配置 + type='Collect', # Collect 类决定哪些键会被传递到行为识别器中 + keys=['imgs', 'label'], # 输入的键 + meta_keys=[]), # 输入的元键 + dict( # ToTensor 类的配置 + type='ToTensor', # ToTensor 类将其他类型转化为 Tensor 类型 + keys=['imgs', 'label']) # 将被从其他类型转化为 Tensor 类型的特征 + ] + val_pipeline = [ # 验证数据前处理流水线步骤组成的列表 + dict( # SampleFrames 类的配置 + type='SampleFrames', # 选定采样哪些视频帧 + clip_len=1, # 每个输出视频片段的帧 + frame_interval=1, # 所采相邻帧的时序间隔 + num_clips=3, # 所采帧片段的数量 + test_mode=True), # 是否设置为测试模式采帧 + dict( # RawFrameDecode 类的配置 + type='RawFrameDecode'), # 给定帧序列,加载对应帧,解码对应帧 + dict( # Resize 类的配置 + type='Resize', # 调整图片尺寸 + scale=(-1, 256)), # 调整比例 + dict( # CenterCrop 类的配置 + type='CenterCrop', # 中心裁剪 + crop_size=224), # 裁剪部分的尺寸 + dict( # Flip 类的配置 + type='Flip', # 图片翻转 + flip_ratio=0), # 翻转几率 + dict( # Normalize 类的配置 + type='Normalize', # 图片正则化 + **img_norm_cfg), # 图片正则化参数 + dict( # FormatShape 类的配置 + type='FormatShape', # 将图片格式转变为给定的输入格式 + input_format='NCHW'), # 最终的图片组成格式 + dict( # Collect 类的配置 + type='Collect', # Collect 类决定哪些键会被传递到行为识别器中 + keys=['imgs', 'label'], # 输入的键 + meta_keys=[]), # 输入的元键 + dict( # ToTensor 类的配置 + type='ToTensor', # ToTensor 类将其他类型转化为 Tensor 类型 + keys=['imgs']) # 将被从其他类型转化为 Tensor 类型的特征 + ] + test_pipeline = [ # 测试数据前处理流水线步骤组成的列表 + dict( # SampleFrames 类的配置 + type='SampleFrames', # 选定采样哪些视频帧 + clip_len=1, # 每个输出视频片段的帧 + frame_interval=1, # 所采相邻帧的时序间隔 + num_clips=25, # 所采帧片段的数量 + test_mode=True), # 是否设置为测试模式采帧 + dict( # RawFrameDecode 类的配置 + type='RawFrameDecode'), # 给定帧序列,加载对应帧,解码对应帧 + dict( # Resize 类的配置 + type='Resize', # 调整图片尺寸 + scale=(-1, 256)), # 调整比例 + dict( # TenCrop 类的配置 + type='TenCrop', # 裁剪 10 个区域 + crop_size=224), # 裁剪部分的尺寸 + dict( # Flip 类的配置 + type='Flip', # 图片翻转 + flip_ratio=0), # 执行翻转几率 + dict( # Normalize 类的配置 + type='Normalize', # 图片正则化 + **img_norm_cfg), # 图片正则化参数 + dict( # FormatShape 类的配置 + type='FormatShape', # 将图片格式转变为给定的输入格式 + input_format='NCHW'), # 最终的图片组成格式 + dict( # Collect 类的配置 + type='Collect', # Collect 类决定哪些键会被传递到行为识别器中 + keys=['imgs', 'label'], # 输入的键 + meta_keys=[]), # 输入的元键 + dict( # ToTensor 类的配置 + type='ToTensor', # ToTensor 类将其他类型转化为 Tensor 类型 + keys=['imgs']) # 将被从其他类型转化为 Tensor 类型的特征 + ] + data = dict( # 数据的配置 + videos_per_gpu=32, # 单个 GPU 的批大小 + workers_per_gpu=2, # 单个 GPU 的 dataloader 的进程 + train_dataloader=dict( # 训练过程 dataloader 的额外设置 + drop_last=True), # 在训练过程中是否丢弃最后一个批次 + val_dataloader=dict( # 验证过程 dataloader 的额外设置 + videos_per_gpu=1), # 单个 GPU 的批大小 + test_dataloader=dict( # 测试过程 dataloader 的额外设置 + videos_per_gpu=2), # 单个 GPU 的批大小 + train=dict( # 训练数据集的设置 + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( # 验证数据集的设置 + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( # 测试数据集的设置 + type=dataset_type, + ann_file=ann_file_test, + data_prefix=data_root_val, + pipeline=test_pipeline)) + # 优化器设置 + optimizer = dict( + # 构建优化器的设置,支持: + # (1) 所有 PyTorch 原生的优化器,这些优化器的参数和 PyTorch 对应的一致; + # (2) 自定义的优化器,这些优化器在 `constructor` 的基础上构建。 + # 更多细节可参考 "tutorials/5_new_modules.md" 部分 + type='SGD', # 优化器类型, 参考 https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/optimizer/default_constructor.py#L13 + lr=0.01, # 学习率, 参数的细节使用可参考 PyTorch 的对应文档 + momentum=0.9, # 动量大小 + weight_decay=0.0001) # SGD 优化器权重衰减 + optimizer_config = dict( # 用于构建优化器钩子的设置 + grad_clip=dict(max_norm=40, norm_type=2)) # 使用梯度裁剪 + # 学习策略设置 + lr_config = dict( # 用于注册学习率调整钩子的设置 + policy='step', # 调整器策略, 支持 CosineAnnealing,Cyclic等方法。更多细节可参考 https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py#L9 + step=[40, 80]) # 学习率衰减步长 + total_epochs = 100 # 训练模型的总周期数 + checkpoint_config = dict( # 模型权重钩子设置,更多细节可参考 https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/checkpoint.py + interval=5) # 模型权重文件保存间隔 + evaluation = dict( # 训练期间做验证的设置 + interval=5, # 执行验证的间隔 + metrics=['top_k_accuracy', 'mean_class_accuracy'], # 验证方法 + save_best='top_k_accuracy') # 设置 `top_k_accuracy` 作为指示器,用于存储最好的模型权重文件 + log_config = dict( # 注册日志钩子的设置 + interval=20, # 打印日志间隔 + hooks=[ # 训练期间执行的钩子 + dict(type='TextLoggerHook'), # 记录训练过程信息的日志 + # dict(type='TensorboardLoggerHook'), # 同时支持 Tensorboard 日志 + ]) + + # 运行设置 + dist_params = dict(backend='nccl') # 建立分布式训练的设置,其中端口号也可以设置 + log_level = 'INFO' # 日志等级 + work_dir = './work_dirs/tsn_r50_1x1x3_100e_kinetics400_rgb/' # 记录当前实验日志和模型权重文件的文件夹 + load_from = None # 从给定路径加载模型作为预训练模型. 这个选项不会用于断点恢复训练 + resume_from = None # 加载给定路径的模型权重文件作为断点续连的模型, 训练将从该时间点保存的周期点继续进行 + workflow = [('train', 1)] # runner 的执行流. [('train', 1)] 代表只有一个执行流,并且这个名为 train 的执行流只执行一次 + + ``` + +### 时空动作检测的配置文件系统 + +MMAction2 将模块化设计整合到配置文件系统中,以便于执行各种不同的实验。 + +- 以 FastRCNN 为例 + + 为了帮助用户理解 MMAction2 的完整配置文件结构,以及时空检测系统中的一些模块,这里以 FastRCNN 为例,给出其配置文件的注释。 + 对于每个模块的详细用法以及对应参数的选择,请参照 [API 文档](https://mmaction2.readthedocs.io/en/latest/api.html)。 + + ```python + # 模型设置 + model = dict( # 模型的配置 + type='FastRCNN', # 时空检测器类型 + backbone=dict( # Backbone 字典设置 + type='ResNet3dSlowOnly', # Backbone 名 + depth=50, # ResNet 模型深度 + pretrained=None, # 预训练模型的 url 或文件位置 + pretrained2d=False, # 预训练模型是否为 2D 模型 + lateral=False, # backbone 是否有侧连接 + num_stages=4, # ResNet 模型阶数 + conv1_kernel=(1, 7, 7), # Conv1 卷积核尺寸 + conv1_stride_t=1, # Conv1 时序步长 + pool1_stride_t=1, # Pool1 时序步长 + spatial_strides=(1, 2, 2, 1)), # 每个 ResNet 阶的空间步长 + roi_head=dict( # roi_head 字典设置 + type='AVARoIHead', # roi_head 名 + bbox_roi_extractor=dict( # bbox_roi_extractor 字典设置 + type='SingleRoIExtractor3D', # bbox_roi_extractor 名 + roi_layer_type='RoIAlign', # RoI op 类型 + output_size=8, # RoI op 输出特征尺寸 + with_temporal_pool=True), # 时序维度是否要经过池化 + bbox_head=dict( # bbox_head 字典设置 + type='BBoxHeadAVA', # bbox_head 名 + in_channels=2048, # 输入特征通道数 + num_classes=81, # 动作类别数 + 1(背景) + multilabel=True, # 数据集是否多标签 + dropout_ratio=0.5)), # dropout 比率 + # 模型训练和测试的设置 + train_cfg=dict( # 训练 FastRCNN 的超参配置 + rcnn=dict( # rcnn 训练字典设置 + assigner=dict( # assigner 字典设置 + type='MaxIoUAssignerAVA', # assigner 名 + pos_iou_thr=0.9, # 正样本 IoU 阈值, > pos_iou_thr -> positive + neg_iou_thr=0.9, # 负样本 IoU 阈值, < neg_iou_thr -> negative + min_pos_iou=0.9), # 正样本最小可接受 IoU + sampler=dict( # sample 字典设置 + type='RandomSampler', # sampler 名 + num=32, # sampler 批大小 + pos_fraction=1, # sampler 正样本边界框比率 + neg_pos_ub=-1, # 负样本数转正样本数的比率上界 + add_gt_as_proposals=True), # 是否添加 ground truth 为候选 + pos_weight=1.0, # 正样本 loss 权重 + debug=False)), # 是否为 debug 模式 + test_cfg=dict( # 测试 FastRCNN 的超参设置 + rcnn=dict( # rcnn 测试字典设置 + action_thr=0.002))) # 某行为的阈值 + + # 数据集设置 + dataset_type = 'AVADataset' # 训练,验证,测试的数据集类型 + data_root = 'data/ava/rawframes' # 训练集的根目录 + anno_root = 'data/ava/annotations' # 标注文件目录 + + ann_file_train = f'{anno_root}/ava_train_v2.1.csv' # 训练集的标注文件 + ann_file_val = f'{anno_root}/ava_val_v2.1.csv' # 验证集的标注文件 + + exclude_file_train = f'{anno_root}/ava_train_excluded_timestamps_v2.1.csv' # 训练除外数据集文件路径 + exclude_file_val = f'{anno_root}/ava_val_excluded_timestamps_v2.1.csv' # 验证除外数据集文件路径 + + label_file = f'{anno_root}/ava_action_list_v2.1_for_activitynet_2018.pbtxt' # 标签文件路径 + + proposal_file_train = f'{anno_root}/ava_dense_proposals_train.FAIR.recall_93.9.pkl' # 训练样本检测候选框的文件路径 + proposal_file_val = f'{anno_root}/ava_dense_proposals_val.FAIR.recall_93.9.pkl' # 验证样本检测候选框的文件路径 + + img_norm_cfg = dict( # 图像正则化参数设置 + mean=[123.675, 116.28, 103.53], # 图像正则化平均值 + std=[58.395, 57.12, 57.375], # 图像正则化方差 + to_bgr=False) # 是否将通道数从 RGB 转为 BGR + + train_pipeline = [ # 训练数据前处理流水线步骤组成的列表 + dict( # SampleFrames 类的配置 + type='AVASampleFrames', # 选定采样哪些视频帧 + clip_len=4, # 每个输出视频片段的帧 + frame_interval=16), # 所采相邻帧的时序间隔 + dict( # RawFrameDecode 类的配置 + type='RawFrameDecode'), # 给定帧序列,加载对应帧,解码对应帧 + dict( # RandomRescale 类的配置 + type='RandomRescale', # 给定一个范围,进行随机短边缩放 + scale_range=(256, 320)), # RandomRescale 的短边缩放范围 + dict( # RandomCrop 类的配置 + type='RandomCrop', # 给定一个尺寸进行随机裁剪 + size=256), # 裁剪尺寸 + dict( # Flip 类的配置 + type='Flip', # 图片翻转 + flip_ratio=0.5), # 执行翻转几率 + dict( # Normalize 类的配置 + type='Normalize', # 图片正则化 + **img_norm_cfg), # 图片正则化参数 + dict( # FormatShape 类的配置 + type='FormatShape', # 将图片格式转变为给定的输入格式 + input_format='NCTHW', # 最终的图片组成格式 + collapse=True), # 去掉 N 梯度当 N == 1 + dict( # Rename 类的配置 + type='Rename', # 重命名 key 名 + mapping=dict(imgs='img')), # 改名映射字典 + dict( # ToTensor 类的配置 + type='ToTensor', # ToTensor 类将其他类型转化为 Tensor 类型 + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels']), # 将被从其他类型转化为 Tensor 类型的特征 + dict( # ToDataContainer 类的配置 + type='ToDataContainer', # 将一些信息转入到 ToDataContainer 中 + fields=[ # 转化为 Datacontainer 的域 + dict( # 域字典 + key=['proposals', 'gt_bboxes', 'gt_labels'], # 将转化为 DataContainer 的键 + stack=False)]), # 是否要堆列这些 tensor + dict( # Collect 类的配置 + type='Collect', # Collect 类决定哪些键会被传递到时空检测器中 + keys=['img', 'proposals', 'gt_bboxes', 'gt_labels'], # 输入的键 + meta_keys=['scores', 'entity_ids']), # 输入的元键 + ] + + val_pipeline = [ # 验证数据前处理流水线步骤组成的列表 + dict( # SampleFrames 类的配置 + type='AVASampleFrames', # 选定采样哪些视频帧 + clip_len=4, # 每个输出视频片段的帧 + frame_interval=16), # 所采相邻帧的时序间隔 + dict( # RawFrameDecode 类的配置 + type='RawFrameDecode'), # 给定帧序列,加载对应帧,解码对应帧 + dict( # Resize 类的配置 + type='Resize', # 调整图片尺寸 + scale=(-1, 256)), # 调整比例 + dict( # Normalize 类的配置 + type='Normalize', # 图片正则化 + **img_norm_cfg), # 图片正则化参数 + dict( # FormatShape 类的配置 + type='FormatShape', # 将图片格式转变为给定的输入格式 + input_format='NCTHW', # 最终的图片组成格式 + collapse=True), # 去掉 N 梯度当 N == 1 + dict( # Rename 类的配置 + type='Rename', # 重命名 key 名 + mapping=dict(imgs='img')), # 改名映射字典 + dict( # ToTensor 类的配置 + type='ToTensor', # ToTensor 类将其他类型转化为 Tensor 类型 + keys=['img', 'proposals']), # 将被从其他类型转化为 Tensor 类型的特征 + dict( # ToDataContainer 类的配置 + type='ToDataContainer', # 将一些信息转入到 ToDataContainer 中 + fields=[ # 转化为 Datacontainer 的域 + dict( # 域字典 + key=['proposals'], # 将转化为 DataContainer 的键 + stack=False)]), # 是否要堆列这些 tensor + dict( # Collect 类的配置 + type='Collect', # Collect 类决定哪些键会被传递到时空检测器中 + keys=['img', 'proposals'], # 输入的键 + meta_keys=['scores', 'entity_ids'], # 输入的元键 + nested=True) # 是否将数据包装为嵌套列表 + ] + + data = dict( # 数据的配置 + videos_per_gpu=16, # 单个 GPU 的批大小 + workers_per_gpu=2, # 单个 GPU 的 dataloader 的进程 + val_dataloader=dict( # 验证过程 dataloader 的额外设置 + videos_per_gpu=1), # 单个 GPU 的批大小 + train=dict( # 训练数据集的设置 + type=dataset_type, + ann_file=ann_file_train, + exclude_file=exclude_file_train, + pipeline=train_pipeline, + label_file=label_file, + proposal_file=proposal_file_train, + person_det_score_thr=0.9, + data_prefix=data_root), + val=dict( # 验证数据集的设置 + type=dataset_type, + ann_file=ann_file_val, + exclude_file=exclude_file_val, + pipeline=val_pipeline, + label_file=label_file, + proposal_file=proposal_file_val, + person_det_score_thr=0.9, + data_prefix=data_root)) + data['test'] = data['val'] # 将验证数据集设置复制到测试数据集设置 + + # 优化器设置 + optimizer = dict( + # 构建优化器的设置,支持: + # (1) 所有 PyTorch 原生的优化器,这些优化器的参数和 PyTorch 对应的一致; + # (2) 自定义的优化器,这些优化器在 `constructor` 的基础上构建。 + # 更多细节可参考 "tutorials/5_new_modules.md" 部分 + type='SGD', # 优化器类型, 参考 https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/optimizer/default_constructor.py#L13 + lr=0.2, # 学习率, 参数的细节使用可参考 PyTorch 的对应文档 + momentum=0.9, # 动量大小 + weight_decay=0.00001) # SGD 优化器权重衰减 + + optimizer_config = dict( # 用于构建优化器钩子的设置 + grad_clip=dict(max_norm=40, norm_type=2)) # 使用梯度裁剪 + + lr_config = dict( # 用于注册学习率调整钩子的设置 + policy='step', # 调整器策略, 支持 CosineAnnealing,Cyclic等方法。更多细节可参考 https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py#L9 + step=[40, 80], # 学习率衰减步长 + warmup='linear', # Warmup 策略 + warmup_by_epoch=True, # Warmup 单位为 epoch 还是 iteration + warmup_iters=5, # warmup 数 + warmup_ratio=0.1) # 初始学习率为 warmup_ratio * lr + + total_epochs = 20 # 训练模型的总周期数 + checkpoint_config = dict( # 模型权重文件钩子设置,更多细节可参考 https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/checkpoint.py + interval=1) # 模型权重文件保存间隔 + workflow = [('train', 1)] # runner 的执行流. [('train', 1)] 代表只有一个执行流,并且这个名为 train 的执行流只执行一次 + evaluation = dict( # 训练期间做验证的设置 + interval=1, save_best='mAP@0.5IOU') # 执行验证的间隔,以及设置 `mAP@0.5IOU` 作为指示器,用于存储最好的模型权重文件 + log_config = dict( # 注册日志钩子的设置 + interval=20, # 打印日志间隔 + hooks=[ # 训练期间执行的钩子 + dict(type='TextLoggerHook'), # 记录训练过程信息的日志 + ]) + + # 运行设置 + dist_params = dict(backend='nccl') # 建立分布式训练的设置,其中端口号也可以设置 + log_level = 'INFO' # 日志等级 + work_dir = ('./work_dirs/ava/' # 记录当前实验日志和模型权重文件的文件夹 + 'slowonly_kinetics_pretrained_r50_4x16x1_20e_ava_rgb') + load_from = ('https://download.openmmlab.com/mmaction/recognition/slowonly/' # 从给定路径加载模型作为预训练模型. 这个选项不会用于断点恢复训练 + 'slowonly_r50_4x16x1_256e_kinetics400_rgb/' + 'slowonly_r50_4x16x1_256e_kinetics400_rgb_20200704-a69556c6.pth') + resume_from = None # 加载给定路径的模型权重文件作为断点续连的模型, 训练将从该时间点保存的周期点继续进行 + ``` + +## 常见问题 + +### 配置文件中的中间变量 + +配置文件中会用到一些中间变量,如 `train_pipeline`/`val_pipeline`/`test_pipeline`, `ann_file_train`/`ann_file_val`/`ann_file_test`, `img_norm_cfg` 等。 + +例如,首先定义中间变量 `train_pipeline`/`val_pipeline`/`test_pipeline`,再将上述变量传递到 `data`。因此,`train_pipeline`/`val_pipeline`/`test_pipeline` 为中间变量 + +这里也定义了 `ann_file_train`/`ann_file_val`/`ann_file_test` 和 `data_root`/`data_root_val` 为数据处理流程提供一些基本信息。 + +此外,使用 `img_norm_cfg` 作为中间变量,构建一些数组增强组件。 + +```python +... +dataset_type = 'RawframeDataset' +data_root = 'data/kinetics400/rawframes_train' +data_root_val = 'data/kinetics400/rawframes_val' +ann_file_train = 'data/kinetics400/kinetics400_train_list_rawframes.txt' +ann_file_val = 'data/kinetics400/kinetics400_val_list_rawframes.txt' +ann_file_test = 'data/kinetics400/kinetics400_val_list_rawframes.txt' + +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) + +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.8), + random_crop=False, + max_wh_scale_gap=0), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=1, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=32, + frame_interval=2, + num_clips=10, + test_mode=True), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict(type='ThreeCrop', crop_size=256), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] + +data = dict( + videos_per_gpu=8, + workers_per_gpu=2, + train=dict( + type=dataset_type, + ann_file=ann_file_train, + data_prefix=data_root, + pipeline=train_pipeline), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=val_pipeline), + test=dict( + type=dataset_type, + ann_file=ann_file_val, + data_prefix=data_root_val, + pipeline=test_pipeline)) +``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/2_finetune.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/2_finetune.md new file mode 100644 index 00000000..dc3f19db --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/2_finetune.md @@ -0,0 +1,93 @@ +# 教程 2:如何微调模型 + +本教程介绍如何使用预训练模型在其他数据集上进行微调。 + + + +- [概要](#%E6%A6%82%E8%A6%81) +- [修改 Head](#%E4%BF%AE%E6%94%B9-Head) +- [修改数据集](#%E4%BF%AE%E6%94%B9%E6%95%B0%E6%8D%AE%E9%9B%86) +- [修改训练策略](#%E4%BF%AE%E6%94%B9%E8%AE%AD%E7%BB%83%E7%AD%96%E7%95%A5) +- [使用预训练模型](#%E4%BD%BF%E7%94%A8%E9%A2%84%E8%AE%AD%E7%BB%83%E6%A8%A1%E5%9E%8B) + + + +## 概要 + +对新数据集上的模型进行微调需要进行两个步骤: + +1. 增加对新数据集的支持。详情请见 [教程 3:如何增加新数据集](3_new_dataset.md) +2. 修改配置文件。这部分将在本教程中做具体讨论。 + +例如,如果用户想要微调 Kinetics-400 数据集的预训练模型到另一个数据集上,如 UCF101,则需要注意 [配置文件](1_config.md) 中 Head、数据集、训练策略、预训练模型四个部分,下面分别介绍。 + +## 修改 Head + +`cls_head` 中的 `num_classes` 参数需改为新数据集中的类别数。 +预训练模型中,除了最后一层外的权重都会被重新利用,因此这个改动是安全的。 +例如,UCF101 拥有 101 类行为,因此需要把 400 (Kinetics-400 的类别数) 改为 101。 + +```python +model = dict( + type='Recognizer2D', + backbone=dict( + type='ResNet', + pretrained='torchvision://resnet50', + depth=50, + norm_eval=False), + cls_head=dict( + type='TSNHead', + num_classes=101, # 从 400 改为 101 + in_channels=2048, + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.4, + init_std=0.01), + train_cfg=None, + test_cfg=dict(average_clips=None)) +``` + +其中, `pretrained='torchvision://resnet50'` 表示通过 ImageNet 预训练权重初始化 backbone。 +然而,模型微调时的预训练权重一般通过 `load_from`(而不是 `pretrained`)指定。 + +## 修改数据集 + +MMAction2 支持 UCF101, Kinetics-400, Moments in Time, Multi-Moments in Time, THUMOS14, +Something-Something V1&V2, ActivityNet 等数据集。 +用户可将自建数据集转换已有数据集格式。 +对动作识别任务来讲,MMAction2 提供了 `RawframeDataset` 和 `VideoDataset` 等通用的数据集读取类,数据集格式相对简单。 +以 `UCF101` 和 `RawframeDataset` 为例, + +```python +# 数据集设置 +dataset_type = 'RawframeDataset' +data_root = 'data/ucf101/rawframes_train/' +data_root_val = 'data/ucf101/rawframes_val/' +ann_file_train = 'data/ucf101/ucf101_train_list.txt' +ann_file_val = 'data/ucf101/ucf101_val_list.txt' +ann_file_test = 'data/ucf101/ucf101_val_list.txt' +``` + +## 修改训练策略 + +通常情况下,设置较小的学习率,微调模型少量训练批次,即可取得较好效果。 + +```python +# 优化器 +optimizer = dict(type='SGD', lr=0.005, momentum=0.9, weight_decay=0.0001) # 从 0.01 改为 0.005 +optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2)) +# 学习策略 +lr_config = dict(policy='step', step=[20, 40]) # step 与 total_epoch 相适应 +total_epochs = 50 # 从 100 改为 50 +checkpoint_config = dict(interval=5) +``` + +## 使用预训练模型 + +若要将预训练模型用于整个网络(主干网络设置中的 `pretrained`,仅会在主干网络模型上加载预训练参数),可通过 `load_from` 指定模型文件路径或模型链接,实现预训练权重导入。 +MMAction2 在 `configs/_base_/default_runtime.py` 文件中将 `load_from=None` 设为默认。由于配置文件的可继承性,用户可直接在下游配置文件中设置 `load_from` 的值来进行更改。 + +```python +# 将预训练模型用于整个 TSN 网络 +load_from = 'https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmaction/mmaction-v1/recognition/tsn_r50_1x1x3_100e_kinetics400_rgb/tsn_r50_1x1x3_100e_kinetics400_rgb_20200614-e508be42.pth' # 模型路径可以在 model zoo 中找到 +``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/3_new_dataset.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/3_new_dataset.md new file mode 100644 index 00000000..9b2368c1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/3_new_dataset.md @@ -0,0 +1,245 @@ +# 教程 3:如何增加新数据集 + +在本教程中,我们将介绍一些有关如何按已支持的数据格式进行数据组织,和组合已有数据集来自定义数据集的方法。 + + + +- [通过重组数据来自定义数据集](#%E9%80%9A%E8%BF%87%E9%87%8D%E7%BB%84%E6%95%B0%E6%8D%AE%E6%9D%A5%E8%87%AA%E5%AE%9A%E4%B9%89%E6%95%B0%E6%8D%AE%E9%9B%86) + - [将数据集重新组织为现有格式](#%E5%B0%86%E6%95%B0%E6%8D%AE%E9%9B%86%E9%87%8D%E6%96%B0%E7%BB%84%E7%BB%87%E4%B8%BA%E7%8E%B0%E6%9C%89%E6%A0%BC%E5%BC%8F) + - [自定义数据集的示例](#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%95%B0%E6%8D%AE%E9%9B%86%E7%9A%84%E7%A4%BA%E4%BE%8B) +- [通过组合已有数据集来自定义数据集](#%E9%80%9A%E8%BF%87%E7%BB%84%E5%90%88%E5%B7%B2%E6%9C%89%E6%95%B0%E6%8D%AE%E9%9B%86%E6%9D%A5%E8%87%AA%E5%AE%9A%E4%B9%89%E6%95%B0%E6%8D%AE%E9%9B%86) + - [重复数据集](#%E9%87%8D%E5%A4%8D%E6%95%B0%E6%8D%AE%E9%9B%86) + + + +## 通过重组数据来自定义数据集 + +### 将数据集重新组织为现有格式 + +最简单的方法是将数据集转换为现有的数据集格式(RawframeDataset 或 VideoDataset)。 + +有三种标注文件: + +- 帧标注(rawframe annotation) + + 帧数据集(rawframe dataset)标注文件由多行文本组成,每行代表一个样本,每个样本分为三个部分,分别是 `帧(相对)文件夹`(rawframe directory of relative path), + `总帧数`(total frames)以及 `标签`(label),通过空格进行划分 + + 示例如下: + + ``` + some/directory-1 163 1 + some/directory-2 122 1 + some/directory-3 258 2 + some/directory-4 234 2 + some/directory-5 295 3 + some/directory-6 121 3 + ``` + +- 视频标注(video annotation) + + 视频数据集(video dataset)标注文件由多行文本组成,每行代表一个样本,每个样本分为两个部分,分别是 `文件(相对)路径`(filepath of relative path) + 和 `标签`(label),通过空格进行划分 + + 示例如下: + + ``` + some/path/000.mp4 1 + some/path/001.mp4 1 + some/path/002.mp4 2 + some/path/003.mp4 2 + some/path/004.mp4 3 + some/path/005.mp4 3 + ``` + +- ActivityNet 标注 + + ActivityNet 数据集的标注文件是一个 json 文件。每个键是一个视频名,其对应的值是这个视频的元数据和注释。 + + 示例如下: + + ``` + { + "video1": { + "duration_second": 211.53, + "duration_frame": 6337, + "annotations": [ + { + "segment": [ + 30.025882995319815, + 205.2318595943838 + ], + "label": "Rock climbing" + } + ], + "feature_frame": 6336, + "fps": 30.0, + "rfps": 29.9579255898 + }, + "video2": { + "duration_second": 26.75, + "duration_frame": 647, + "annotations": [ + { + "segment": [ + 2.578755070202808, + 24.914101404056165 + ], + "label": "Drinking beer" + } + ], + "feature_frame": 624, + "fps": 24.0, + "rfps": 24.1869158879 + } + } + ``` + +有两种使用自定义数据集的方法: + +- 在线转换 + + 用户可以通过继承 [BaseDataset](/mmaction/datasets/base.py) 基类编写一个新的数据集类,并重写三个抽象类方法: + `load_annotations(self)`,`evaluate(self, results, metrics, logger)` 和 `dump_results(self, results, out)`, + 如 [RawframeDataset](/mmaction/datasets/rawframe_dataset.py),[VideoDataset](/mmaction/datasets/video_dataset.py) 或 [ActivityNetDataset](/mmaction/datasets/activitynet_dataset.py)。 + +- 本地转换 + + 用户可以转换标注文件格式为上述期望的格式,并将其存储为 pickle 或 json 文件,然后便可以应用于 `RawframeDataset`,`VideoDataset` 或 `ActivityNetDataset` 中。 + +数据预处理后,用户需要进一步修改配置文件以使用数据集。 这里展示了以帧形式使用自定义数据集的例子: + +在 `configs/task/method/my_custom_config.py` 下: + +```python +... +# 数据集设定 +dataset_type = 'RawframeDataset' +data_root = 'path/to/your/root' +data_root_val = 'path/to/your/root_val' +ann_file_train = 'data/custom/custom_train_list.txt' +ann_file_val = 'data/custom/custom_val_list.txt' +ann_file_test = 'data/custom/custom_val_list.txt' +... +data = dict( + videos_per_gpu=32, + workers_per_gpu=2, + train=dict( + type=dataset_type, + ann_file=ann_file_train, + ...), + val=dict( + type=dataset_type, + ann_file=ann_file_val, + ...), + test=dict( + type=dataset_type, + ann_file=ann_file_test, + ...)) +... +``` + +### 自定义数据集的示例 + +假设注释在文本文件中以新格式显示,并且图像文件名具有类似 “img_00005.jpg” 的模板。 +那么视频注释将以以下形式存储在文本文件 `annotation.txt` 中。 + +``` +#文件夹,总帧数,类别 +D32_1gwq35E,299,66 +-G-5CJ0JkKY,249,254 +T4h1bvOd9DA,299,33 +4uZ27ivBl00,299,341 +0LfESFkfBSw,249,186 +-YIsNpBEx6c,299,169 +``` + +在 `mmaction/datasets/my_dataset.py` 中创建新数据集加载数据 + +```python +import copy +import os.path as osp + +import mmcv + +from .base import BaseDataset +from .builder import DATASETS + + +@DATASETS.register_module() +class MyDataset(BaseDataset): + + def __init__(self, + ann_file, + pipeline, + data_prefix=None, + test_mode=False, + filename_tmpl='img_{:05}.jpg'): + super(MyDataset, self).__init__(ann_file, pipeline, test_mode) + + self.filename_tmpl = filename_tmpl + + def load_annotations(self): + video_infos = [] + with open(self.ann_file, 'r') as fin: + for line in fin: + if line.startswith("directory"): + continue + frame_dir, total_frames, label = line.split(',') + if self.data_prefix is not None: + frame_dir = osp.join(self.data_prefix, frame_dir) + video_infos.append( + dict( + frame_dir=frame_dir, + total_frames=int(total_frames), + label=int(label))) + return video_infos + + def prepare_train_frames(self, idx): + results = copy.deepcopy(self.video_infos[idx]) + results['filename_tmpl'] = self.filename_tmpl + return self.pipeline(results) + + def prepare_test_frames(self, idx): + results = copy.deepcopy(self.video_infos[idx]) + results['filename_tmpl'] = self.filename_tmpl + return self.pipeline(results) + + def evaluate(self, + results, + metrics='top_k_accuracy', + topk=(1, 5), + logger=None): + pass +``` + +然后在配置文件中,用户可通过如下修改来使用 `MyDataset`: + +```python +dataset_A_train = dict( + type='MyDataset', + ann_file=ann_file_train, + pipeline=train_pipeline +) +``` + +## 通过组合已有数据集来自定义数据集 + +MMAction2 还支持组合已有数据集以进行训练。 目前,它支持重复数据集(repeat dataset)。 + +### 重复数据集 + +MMAction2 使用 “RepeatDataset” 作为包装器来重复数据集。例如,假设原始数据集为 “Dataset_A”, +为了重复此数据集,可设置配置如下: + +```python +dataset_A_train = dict( + type='RepeatDataset', + times=N, + dataset=dict( # 这是 Dataset_A 的原始配置 + type='Dataset_A', + ... + pipeline=train_pipeline + ) + ) +``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/4_data_pipeline.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/4_data_pipeline.md new file mode 100644 index 00000000..8f52ff5a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/4_data_pipeline.md @@ -0,0 +1,257 @@ +# 教程 4:如何设计数据处理流程 + +在本教程中,我们将介绍一些有关数据前处理流水线设计的方法,以及如何为项目自定义和扩展自己的数据流水线。 + + + +- [教程 4:如何设计数据处理流程](#%E6%95%99%E7%A8%8B-4%E5%A6%82%E4%BD%95%E8%AE%BE%E8%AE%A1%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86%E6%B5%81%E7%A8%8B) + - [数据前处理流水线设计](#%E6%95%B0%E6%8D%AE%E5%89%8D%E5%A4%84%E7%90%86%E6%B5%81%E6%B0%B4%E7%BA%BF%E8%AE%BE%E8%AE%A1) + - [数据加载](#%E6%95%B0%E6%8D%AE%E5%8A%A0%E8%BD%BD) + - [数据预处理](#%E6%95%B0%E6%8D%AE%E9%A2%84%E5%A4%84%E7%90%86) + - [数据格式化](#%E6%95%B0%E6%8D%AE%E6%A0%BC%E5%BC%8F%E5%8C%96) + - [扩展和使用自定义流水线](#%E6%89%A9%E5%B1%95%E5%92%8C%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E6%B5%81%E6%B0%B4%E7%BA%BF) + + + +## 数据前处理流水线设计 + +按照惯例,MMAction2 使用 `Dataset` 和 `DataLoader` 实现多进程数据加载。 `Dataset` 返回一个字典,作为模型的输入。 +由于动作识别和时序动作检测的数据大小不一定相同(图片大小,边界框大小等),MMAction2 使用 MMCV 中的 `DataContainer` 收集和分配不同大小的数据, +详情可见 [这里](https://github.com/open-mmlab/mmcv/blob/master/mmcv/parallel/data_container.py)。 + +“数据前处理流水线” 和 “数据集构建” 是相互解耦的。通常,“数据集构建” 定义如何处理标注文件,“数据前处理流水线” 定义数据加载、预处理、格式化等功能(后文将详细介绍)。 +数据前处理流水线由一系列相互解耦的操作组成。每个操作都输入一个字典(dict),新增/更新/删除相关字段,最终输出该字典,作为下一个操作的输入。 + +我们在下图中展示了一个典型的流水线。 蓝色块是流水线操作。 +随着流水线的深入,每个操作都可以向结果字典添加新键(标记为绿色)或更新现有键(标记为橙色)。 + +![流水线](https://github.com/open-mmlab/mmaction2/raw/master/resources/data_pipeline.png) + +这些操作分为数据加载,数据预处理和数据格式化。 + +这里以 TSN 的数据前处理流水线为例: + +```python +img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_bgr=False) +train_pipeline = [ + dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=3), + dict(type='RawFrameDecode', io_backend='disk'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +val_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=3, + test_mode=True), + dict(type='RawFrameDecode', io_backend='disk'), + dict(type='Resize', scale=(-1, 256)), + dict(type='CenterCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +test_pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=25, + test_mode=True), + dict(type='RawFrameDecode', io_backend='disk'), + dict(type='Resize', scale=(-1, 256)), + dict(type='TenCrop', crop_size=224), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs']) +] +``` + +MMAction2 也支持一些 lazy 操作符。 +Lazy 操作记录如何处理数据,但是它会推迟对原始数据的处理,直到进入 Fuse 阶段。 +具体而言,lazy 操作符避免了对原始数据的频繁读取和修改操作,只在最后的 Fuse 阶段中对原始数据进行了一次处理,从而加快了数据预处理速度,因此,推荐用户使用本功能。 + +这是使用 lazy 运算符的数据前处理流水线的例子: + +```python +train_pipeline = [ + dict(type='SampleFrames', clip_len=32, frame_interval=2, num_clips=1), + dict(type='RawFrameDecode', decoding_backend='turbojpeg'), + # 以下三个 lazy 操作符仅处理帧的 bbox 而不修改原始数据。 + dict(type='Resize', scale=(-1, 256), lazy=True), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.8), + random_crop=False, + max_wh_scale_gap=0, + lazy=True), + dict(type='Resize', scale=(224, 224), keep_ratio=False, lazy=True), + # lazy 操作符 “Flip” 仅记录是否应该翻转框架和翻转方向。 + dict(type='Flip', flip_ratio=0.5, lazy=True), + # 在 Fuse 阶段处理一次原始数据 + dict(type='Fuse'), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) +] +``` + +本节将所有操作分为数据加载、数据预处理、数据格式化三类,列出每个操作 新增/更新/删除 的相关字典字段,其中 `*` 代表所对应的键值不一定会被影响。 + +### 数据加载 + +`SampleFrames` + +- 新增: frame_inds, clip_len, frame_interval, num_clips, \*total_frames + +`DenseSampleFrames` + +- 新增: frame_inds, clip_len, frame_interval, num_clips, \*total_frames + +`PyAVDecode` + +- 新增: imgs, original_shape +- 更新: \*frame_inds + +`DecordDecode` + +- 新增: imgs, original_shape +- 更新: \*frame_inds + +`OpenCVDecode` + +- 新增: imgs, original_shape +- 更新: \*frame_inds + +`RawFrameDecode` + +- 新增: imgs, original_shape +- 更新: \*frame_inds + +### 数据预处理 + +`RandomCrop` + +- 新增: crop_bbox, img_shape +- 更新: imgs + +`RandomResizedCrop` + +- 新增: crop_bbox, img_shape +- 更新: imgs + +`MultiScaleCrop` + +- 新增: crop_bbox, img_shape, scales +- 更新: imgs + +`Resize` + +- 新增: img_shape, keep_ratio, scale_factor +- 更新: imgs + +`Flip` + +- 新增: flip, flip_direction +- 更新: imgs, label + +`Normalize` + +- 新增: img_norm_cfg +- 更新: imgs + +`CenterCrop` + +- 新增: crop_bbox, img_shape +- 更新: imgs + +`ThreeCrop` + +- 新增: crop_bbox, img_shape +- 更新: imgs + +`TenCrop` + +- 新增: crop_bbox, img_shape +- 更新: imgs + +### 数据格式化 + +`ToTensor` + +- 更新: specified by `keys`. + +`ImageToTensor` + +- 更新: specified by `keys`. + +`Transpose` + +- 更新: specified by `keys`. + +`Collect` + +- 新增: img_metas (所有需要的图像元数据,会被在此阶段整合进 `meta_keys` 键值中) +- 删除: 所有没有被整合进 `keys` 的键值 + +**值得注意的是**,第一个键,通常是 `imgs`,会作为主键用来计算批大小。 + +`FormatShape` + +- 新增: input_shape +- 更新: imgs + +## 扩展和使用自定义流水线 + +1. 在任何文件写入一个新的处理流水线,如 `my_pipeline.py`。它以一个字典作为输入并返回一个字典 + + ```python + from mmaction.datasets import PIPELINES + + @PIPELINES.register_module() + class MyTransform: + + def __call__(self, results): + results['key'] = value + return results + ``` + +2. 导入新类 + + ```python + from .my_pipeline import MyTransform + ``` + +3. 在配置文件使用它 + + ```python + img_norm_cfg = dict( + mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) + train_pipeline = [ + dict(type='DenseSampleFrames', clip_len=8, frame_interval=8, num_clips=1), + dict(type='RawFrameDecode', io_backend='disk'), + dict(type='MyTransform'), # 使用自定义流水线操作 + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCTHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) + ] + ``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/5_new_modules.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/5_new_modules.md new file mode 100644 index 00000000..7c381af8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/5_new_modules.md @@ -0,0 +1,279 @@ +# 教程 5:如何添加新模块 + +在本教程中,我们将介绍一些有关如何为该项目定制优化器,开发新组件,以及添加新的学习率调整器(更新器)的方法。 + + + +- [自定义优化器](#%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BC%98%E5%8C%96%E5%99%A8) +- [自定义优化器构造器](#%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BC%98%E5%8C%96%E5%99%A8%E6%9E%84%E9%80%A0%E5%99%A8) +- [开发新组件](#%E5%BC%80%E5%8F%91%E6%96%B0%E7%BB%84%E4%BB%B6) + - [添加新的 backbones](#%E6%B7%BB%E5%8A%A0%E6%96%B0-backbones) + - [添加新的 heads](#%E6%B7%BB%E5%8A%A0%E6%96%B0-heads) + - [添加新的 loss function](#%E6%B7%BB%E5%8A%A0%E6%96%B0-loss-function) +- [添加新的学习率调节器(更新器)](#%E6%B7%BB%E5%8A%A0%E6%96%B0%E7%9A%84%E5%AD%A6%E4%B9%A0%E7%8E%87%E8%B0%83%E8%8A%82%E5%99%A8%EF%BC%88%E6%9B%B4%E6%96%B0%E5%99%A8%EF%BC%89) + + + +## 自定义优化器 + +[CopyOfSGD](/mmaction/core/optimizer/copy_of_sgd.py) 是自定义优化器的一个例子,写在 `mmaction/core/optimizer/copy_of_sgd.py` 文件中。 +更一般地,可以根据如下方法自定义优化器。 + +假设添加的优化器名为 `MyOptimizer`,它有 `a`,`b` 和 `c` 三个参数。 +用户需要首先实现一个新的优化器文件,如 `mmaction/core/optimizer/my_optimizer.py`: + +```python +from mmcv.runner import OPTIMIZERS +from torch.optim import Optimizer + +@OPTIMIZERS.register_module() +class MyOptimizer(Optimizer): + + def __init__(self, a, b, c): +``` + +然后添加这个模块到 `mmaction/core/optimizer/__init__.py` 中,从而让注册器可以找到这个新的模块并添加它: + +```python +from .my_optimizer import MyOptimizer +``` + +之后,用户便可以在配置文件的 `optimizer` 字段中使用 `MyOptimizer`。 +在配置中,优化器由 `optimizer` 字段所定义,如下所示: + +```python +optimizer = dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001) +``` + +用户可以直接根据 [PyTorch API 文档](https://pytorch.org/docs/stable/optim.html?highlight=optim#module-torch.optim) 对参数进行直接设置。 + +## 自定义优化器构造器 + +某些模型可能对不同层的参数有特定的优化设置,例如 BatchNorm 层的梯度衰减。 +用户可以通过自定义优化器构造函数来进行那些细粒度的参数调整。 + +用户可以编写一个基于 [DefaultOptimizerConstructor](https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/optimizer/default_constructor.py) 的新的优化器构造器, +并且重写 `add_params(self, params, module)` 方法。 + +一个自定义优化器构造器的例子是 [TSMOptimizerConstructor](/mmaction/core/optimizer/tsm_optimizer_constructor.py)。 +更具体地,可以如下定义定制的优化器构造器。 + +在 `mmaction/core/optimizer/my_optimizer_constructor.py`: + +```python +from mmcv.runner import OPTIMIZER_BUILDERS, DefaultOptimizerConstructor + +@OPTIMIZER_BUILDERS.register_module() +class MyOptimizerConstructor(DefaultOptimizerConstructor): + +``` + +在 `mmaction/core/optimizer/__init__.py`: + +```python +from .my_optimizer_constructor import MyOptimizerConstructor +``` + +之后便可在配置文件的 `optimizer` 域中使用 `MyOptimizerConstructor`。 + +```python +# 优化器 +optimizer = dict( + type='SGD', + constructor='MyOptimizerConstructor', + paramwise_cfg=dict(fc_lr5=True), + lr=0.02, + momentum=0.9, + weight_decay=0.0001) +``` + +## 开发新组件 + +MMAction2 将模型组件分为 4 种基础模型: + +- 识别器(recognizer):整个识别器模型流水线,通常包含一个主干网络(backbone)和分类头(cls_head)。 +- 主干网络(backbone):通常为一个用于提取特征的 FCN 网络,例如 ResNet,BNInception。 +- 分类头(cls_head):用于分类任务的组件,通常包括一个带有池化层的 FC 层。 +- 时序检测器(localizer):用于时序检测的模型,目前有的检测器包含 BSN,BMN,SSN。 + +### 添加新的 backbones + +这里以 TSN 为例,说明如何开发新的组件。 + +1. 创建新文件 `mmaction/models/backbones/resnet.py` + + ```python + import torch.nn as nn + + from ..builder import BACKBONES + + @BACKBONES.register_module() + class ResNet(nn.Module): + + def __init__(self, arg1, arg2): + pass + + def forward(self, x): # 应该返回一个元组 + pass + + def init_weights(self, pretrained=None): + pass + ``` + +2. 在 `mmaction/models/backbones/__init__.py` 中导入模型 + + ```python + from .resnet import ResNet + ``` + +3. 在配置文件中使用它 + + ```python + model = dict( + ... + backbone=dict( + type='ResNet', + arg1=xxx, + arg2=xxx), + ) + ``` + +### 添加新的 heads + +这里以 TSNHead 为例,说明如何开发新的 head + +1. 创建新文件 `mmaction/models/heads/tsn_head.py` + + 可以通过继承 [BaseHead](/mmaction/models/heads/base.py) 编写一个新的分类头, + 并重写 `init_weights(self)` 和 `forward(self, x)` 方法 + + ```python + from ..builder import HEADS + from .base import BaseHead + + + @HEADS.register_module() + class TSNHead(BaseHead): + + def __init__(self, arg1, arg2): + pass + + def forward(self, x): + pass + + def init_weights(self): + pass + ``` + +2. 在 `mmaction/models/heads/__init__.py` 中导入模型 + + ```python + from .tsn_head import TSNHead + ``` + +3. 在配置文件中使用它 + + ```python + model = dict( + ... + cls_head=dict( + type='TSNHead', + num_classes=400, + in_channels=2048, + arg1=xxx, + arg2=xxx), + ``` + +### 添加新的 loss function + +假设用户想添加新的 loss 为 `MyLoss`。为了添加一个新的损失函数,需要在 `mmaction/models/losses/my_loss.py` 下进行实现。 + +```python +import torch +import torch.nn as nn + +from ..builder import LOSSES + +def my_loss(pred, target): + assert pred.size() == target.size() and target.numel() > 0 + loss = torch.abs(pred - target) + return loss + + +@LOSSES.register_module() +class MyLoss(nn.Module): + + def forward(self, pred, target): + loss = my_loss(pred, target) + return loss +``` + +之后,用户需要把它添加进 `mmaction/models/losses/__init__.py` + +```python +from .my_loss import MyLoss, my_loss +``` + +为了使用它,需要修改 `loss_xxx` 域。由于 MyLoss 用户识别任务,可以把它作为边界框损失 `loss_bbox` + +```python +loss_bbox=dict(type='MyLoss')) +``` + +### 添加新的学习率调节器(更新器) + +构造学习率更新器(即 PyTorch 中的 "scheduler")的默认方法是修改配置,例如: + +```python +... +lr_config = dict(policy='step', step=[20, 40]) +... +``` + +在 [`train.py`](/mmaction/apis/train.py) 的 api 中,它会在以下位置注册用于学习率更新的钩子: + +```python +... + runner.register_training_hooks( + cfg.lr_config, + optimizer_config, + cfg.checkpoint_config, + cfg.log_config, + cfg.get('momentum_config', None)) +... +``` + +到目前位置,所有支持的更新器可参考 [mmcv](https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py), +但如果用户想自定义学习率更新器,则需要遵循以下步骤: + +1. 首先,在 `$MMAction2/mmaction/core/scheduler` 编写自定义的学习率更新钩子(LrUpdaterHook)。以下片段是自定义学习率更新器的例子,它使用基于特定比率的学习率 `lrs`,并在每个 `steps` 处进行学习率衰减。以下代码段是自定义学习率更新器的例子: + +```python +# 在此注册 +@HOOKS.register_module() +class RelativeStepLrUpdaterHook(LrUpdaterHook): + # 该类应当继承于 mmcv.LrUpdaterHook + def __init__(self, steps, lrs, **kwargs): + super().__init__(**kwargs) + assert len(steps) == (len(lrs)) + self.steps = steps + self.lrs = lrs + + def get_lr(self, runner, base_lr): + # 仅需要重写该函数 + # 该函数在每个训练周期之前被调用, 并返回特定的学习率. + progress = runner.epoch if self.by_epoch else runner.iter + for i in range(len(self.steps)): + if progress < self.steps[i]: + return self.lrs[i] +``` + +2. 修改配置 + +在配置文件下替换原先的 `lr_config` 变量 + +```python +lr_config = dict(policy='RelativeStep', steps=[20, 40, 60], lrs=[0.1, 0.01, 0.001]) +``` + +更多例子可参考 [mmcv](https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py) diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/6_export_model.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/6_export_model.md new file mode 100644 index 00000000..01b861d0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/6_export_model.md @@ -0,0 +1,75 @@ +# 教程 6:如何导出模型为 onnx 格式 + +开放式神经网络交换格式(Open Neural Network Exchange,即 [ONNX](https://onnx.ai/))是一个开放的生态系统,使 AI 开发人员能够随着项目的发展选择正确的工具。 + + + +- [支持的模型](#%E6%94%AF%E6%8C%81%E7%9A%84%E6%A8%A1%E5%9E%8B) +- [如何使用](#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8) + - [准备工作](#%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C) + - [行为识别器](#%E8%A1%8C%E4%B8%BA%E8%AF%86%E5%88%AB%E5%99%A8) + - [时序动作检测器](#%E6%97%B6%E5%BA%8F%E5%8A%A8%E4%BD%9C%E6%A3%80%E6%B5%8B%E5%99%A8) + + + +## 支持的模型 + +到目前为止,MMAction2 支持将训练的 pytorch 模型中进行 onnx 导出。支持的模型有: + +- I3D +- TSN +- TIN +- TSM +- R(2+1)D +- SLOWFAST +- SLOWONLY +- BMN +- BSN(tem, pem) + +## 如何使用 + +对于简单的模型导出,用户可以使用这里的 [脚本](/tools/deployment/pytorch2onnx.py)。 +注意,需要安装 `onnx` 和 `onnxruntime` 包以进行导出后的验证。 + +### 准备工作 + +首先,安装 onnx + +```shell +pip install onnx onnxruntime +``` + +MMAction2 提供了一个 python 脚本,用于将 MMAction2 训练的 pytorch 模型导出到 ONNX。 + +```shell +python tools/deployment/pytorch2onnx.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--shape ${SHAPE}] \ + [--verify] [--show] [--output-file ${OUTPUT_FILE}] [--is-localizer] [--opset-version ${VERSION}] +``` + +可选参数: + +- `--shape`: 模型输入张量的形状。对于 2D 模型(如 TSN),输入形状应当为 `$batch $clip $channel $height $width` (例如,`1 1 3 224 224`);对于 3D 模型(如 I3D),输入形状应当为 `$batch $clip $channel $time $height $width` (如,`1 1 3 32 224 224`);对于时序检测器如 BSN,每个模块的数据都不相同,请查看对应的 `forward` 函数。如果没有被指定,它将被置为 `1 1 3 224 224`。 +- `--verify`: 决定是否对导出模型进行验证,验证项包括是否可运行,数值是否正确等。如果没有被指定,它将被置为 `False`。 +- `--show`: 决定是否打印导出模型的结构。如果没有被指定,它将被置为 `False`。 +- `--output-file`: 导出的 onnx 模型名。如果没有被指定,它将被置为 `tmp.onnx`。 +- `--is-localizer`:决定导出的模型是否为时序检测器。如果没有被指定,它将被置为 `False`。 +- `--opset-version`:决定 onnx 的执行版本,MMAction2 推荐用户使用高版本(例如 11 版本)的 onnx 以确保稳定性。如果没有被指定,它将被置为 `11`。 +- `--softmax`: 是否在行为识别器末尾添加 Softmax。如果没有指定,将被置为 `False`。目前仅支持行为识别器,不支持时序动作检测器。 + +### 行为识别器 + +对于行为识别器,可运行: + +```shell +python tools/deployment/pytorch2onnx.py $CONFIG_PATH $CHECKPOINT_PATH --shape $SHAPE --verify +``` + +### 时序动作检测器 + +对于时序动作检测器,可运行: + +```shell +python tools/deployment/pytorch2onnx.py $CONFIG_PATH $CHECKPOINT_PATH --is-localizer --shape $SHAPE --verify +``` + +如果发现提供的模型权重文件没有被成功导出,或者存在精度损失,可以在本 repo 下提出问题(issue)。 diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/7_customize_runtime.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/7_customize_runtime.md new file mode 100644 index 00000000..76507a50 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/tutorials/7_customize_runtime.md @@ -0,0 +1,347 @@ +# 教程 7:如何自定义模型运行参数 + +在本教程中,我们将介绍如何在运行自定义模型时,进行自定义参数优化方法,学习率调整策略,工作流和钩子的方法。 + + + +- [定制优化方法](#%E5%AE%9A%E5%88%B6%E4%BC%98%E5%8C%96%E6%96%B9%E6%B3%95) + - [使用 PyTorch 内置的优化器](#%E4%BD%BF%E7%94%A8-PyTorch-%E5%86%85%E7%BD%AE%E7%9A%84%E4%BC%98%E5%8C%96%E5%99%A8) + - [定制用户自定义的优化器](#%E5%AE%9A%E5%88%B6%E7%94%A8%E6%88%B7%E8%87%AA%E5%AE%9A%E4%B9%89%E7%9A%84%E4%BC%98%E5%8C%96%E5%99%A8) + - [1. 定义一个新的优化器](#1-%E5%AE%9A%E4%B9%89%E4%B8%80%E4%B8%AA%E6%96%B0%E7%9A%84%E4%BC%98%E5%8C%96%E5%99%A8) + - [2. 注册优化器](#2-%E6%B3%A8%E5%86%8C%E4%BC%98%E5%8C%96%E5%99%A8) + - [3. 在配置文件中指定优化器](#3-%E5%9C%A8%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E4%B8%AD%E6%8C%87%E5%AE%9A%E4%BC%98%E5%8C%96%E5%99%A8) + - [定制优化器构造器](#%E5%AE%9A%E5%88%B6%E4%BC%98%E5%8C%96%E5%99%A8%E6%9E%84%E9%80%A0%E5%99%A8) + - [额外设定](#%E9%A2%9D%E5%A4%96%E8%AE%BE%E5%AE%9A) +- [定制学习率调整策略](#%E5%AE%9A%E5%88%B6%E5%AD%A6%E4%B9%A0%E7%8E%87%E8%B0%83%E6%95%B4%E7%AD%96%E7%95%A5) +- [定制工作流](#%E5%AE%9A%E5%88%B6%E5%B7%A5%E4%BD%9C%E6%B5%81) +- [定制钩子](#%E5%AE%9A%E5%88%B6%E9%92%A9%E5%AD%90) + - [定制用户自定义钩子](#%E5%AE%9A%E5%88%B6%E7%94%A8%E6%88%B7%E8%87%AA%E5%AE%9A%E4%B9%89%E9%92%A9%E5%AD%90) + - [1. 创建一个新钩子](#1-%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E6%96%B0%E9%92%A9%E5%AD%90) + - [2. 注册新钩子](#2-%E6%B3%A8%E5%86%8C%E6%96%B0%E9%92%A9%E5%AD%90) + - [3. 修改配置](#3-%E4%BF%AE%E6%94%B9%E9%85%8D%E7%BD%AE) + - [使用 MMCV 内置钩子](#%E4%BD%BF%E7%94%A8-MMCV-%E5%86%85%E7%BD%AE%E9%92%A9%E5%AD%90) + - [修改默认运行的钩子](#%E4%BF%AE%E6%94%B9%E9%BB%98%E8%AE%A4%E8%BF%90%E8%A1%8C%E7%9A%84%E9%92%A9%E5%AD%90) + - [模型权重文件配置](#%E6%A8%A1%E5%9E%8B%E6%9D%83%E9%87%8D%E6%96%87%E4%BB%B6%E9%85%8D%E7%BD%AE) + - [日志配置](#%E6%97%A5%E5%BF%97%E9%85%8D%E7%BD%AE) + - [验证配置](#%E9%AA%8C%E8%AF%81%E9%85%8D%E7%BD%AE) + + + +## 定制优化方法 + +### 使用 PyTorch 内置的优化器 + +MMAction2 支持 PyTorch 实现的所有优化器,仅需在配置文件中,指定 “optimizer” 字段 +例如,如果要使用 “Adam”,则修改如下。 + +```python +optimizer = dict(type='Adam', lr=0.0003, weight_decay=0.0001) +``` + +要修改模型的学习率,用户只需要在优化程序的配置中修改 “lr” 即可。 +用户可根据 [PyTorch API 文档](https://pytorch.org/docs/stable/optim.html?highlight=optim#module-torch.optim) 进行参数设置 + +例如,如果想使用 `Adam` 并设置参数为 `torch.optim.Adam(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0, amsgrad=False)`, +则需要进行如下修改 + +```python +optimizer = dict(type='Adam', lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0, amsgrad=False) +``` + +### 定制用户自定义的优化器 + +#### 1. 定义一个新的优化器 + +一个自定义的优化器可根据如下规则进行定制 + +假设用户想添加一个名为 `MyOptimzer` 的优化器,其拥有参数 `a`, `b` 和 `c`, +可以创建一个名为 `mmaction/core/optimizer` 的文件夹,并在目录下的文件进行构建,如 `mmaction/core/optimizer/my_optimizer.py`: + +```python +from mmcv.runner import OPTIMIZERS +from torch.optim import Optimizer + + +@OPTIMIZERS.register_module() +class MyOptimizer(Optimizer): + + def __init__(self, a, b, c): + +``` + +#### 2. 注册优化器 + +要找到上面定义的上述模块,首先应将此模块导入到主命名空间中。有两种方法可以实现它。 + +- 修改 `mmaction/core/optimizer/__init__.py` 来进行调用 + + 新定义的模块应导入到 `mmaction/core/optimizer/__init__.py` 中,以便注册器能找到新模块并将其添加: + +```python +from .my_optimizer import MyOptimizer +``` + +- 在配置中使用 `custom_imports` 手动导入 + +```python +custom_imports = dict(imports=['mmaction.core.optimizer.my_optimizer'], allow_failed_imports=False) +``` + +`mmaction.core.optimizer.my_optimizer` 模块将会在程序开始阶段被导入,`MyOptimizer` 类会随之自动被注册。 +注意,只有包含 `MyOptmizer` 类的包会被导入。`mmaction.core.optimizer.my_optimizer.MyOptimizer` **不会** 被直接导入。 + +#### 3. 在配置文件中指定优化器 + +之后,用户便可在配置文件的 `optimizer` 域中使用 `MyOptimizer`。 +在配置中,优化器由 “optimizer” 字段定义,如下所示: + +```python +optimizer = dict(type='SGD', lr=0.02, momentum=0.9, weight_decay=0.0001) +``` + +要使用自定义的优化器,可以将该字段更改为 + +```python +optimizer = dict(type='MyOptimizer', a=a_value, b=b_value, c=c_value) +``` + +### 定制优化器构造器 + +某些模型可能具有一些特定于参数的设置以进行优化,例如 BatchNorm 层的权重衰减。 +用户可以通过自定义优化器构造函数来进行那些细粒度的参数调整。 + +```python +from mmcv.runner.optimizer import OPTIMIZER_BUILDERS + + +@OPTIMIZER_BUILDERS.register_module() +class MyOptimizerConstructor: + + def __init__(self, optimizer_cfg, paramwise_cfg=None): + pass + + def __call__(self, model): + + return my_optimizer +``` + +默认的优化器构造器被创建于[此](https://github.com/open-mmlab/mmcv/blob/9ecd6b0d5ff9d2172c49a182eaa669e9f27bb8e7/mmcv/runner/optimizer/default_constructor.py#L11), +可被视为新优化器构造器的模板。 + +### 额外设定 + +优化器没有实现的优化技巧(trick)可通过优化器构造函数(例如,设置按参数的学习率)或钩子来实现。 +下面列出了一些可以稳定训练或加快训练速度的常用设置。用户亦可通过为 MMAction2 创建 PR,发布更多设置。 + +- __使用梯度裁剪来稳定训练__ + 一些模型需要使用梯度裁剪来剪辑渐变以稳定训练过程。 一个例子如下: + + ```python + optimizer_config = dict(grad_clip=dict(max_norm=35, norm_type=2)) + ``` + +- __使用动量调整来加速模型收敛__ + MMAction2 支持动量调整器根据学习率修改模型的动量,从而使模型收敛更快。 + 动量调整程序通常与学习率调整器一起使用,例如,以下配置用于3D检测以加速收敛。 + 更多细节可参考 [CyclicLrUpdater](https://github.com/open-mmlab/mmcv/blob/f48241a65aebfe07db122e9db320c31b685dc674/mmcv/runner/hooks/lr_updater.py#L327) + 和 [CyclicMomentumUpdater](https://github.com/open-mmlab/mmcv/blob/f48241a65aebfe07db122e9db320c31b685dc674/mmcv/runner/hooks/momentum_updater.py#L130)。 + + ```python + lr_config = dict( + policy='cyclic', + target_ratio=(10, 1e-4), + cyclic_times=1, + step_ratio_up=0.4, + ) + momentum_config = dict( + policy='cyclic', + target_ratio=(0.85 / 0.95, 1), + cyclic_times=1, + step_ratio_up=0.4, + ) + ``` + +## 定制学习率调整策略 + +在配置文件中使用默认值的逐步学习率调整,它调用 MMCV 中的 [`StepLRHook`](https://github.com/open-mmlab/mmcv/blob/f48241a65aebfe07db122e9db320c31b685dc674/mmcv/runner/hooks/lr_updater.py#L153)。 +此外,也支持其他学习率调整方法,如 `CosineAnnealing` 和 `Poly`。 详情可见 [这里](https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/lr_updater.py) + +- Poly: + + ```python + lr_config = dict(policy='poly', power=0.9, min_lr=1e-4, by_epoch=False) + ``` + +- ConsineAnnealing: + + ```python + lr_config = dict( + policy='CosineAnnealing', + warmup='linear', + warmup_iters=1000, + warmup_ratio=1.0 / 10, + min_lr_ratio=1e-5) + ``` + +## 定制工作流 + +默认情况下,MMAction2 推荐用户在训练周期中使用 “EvalHook” 进行模型验证,也可以选择 “val” 工作流模型进行模型验证。 + +工作流是一个形如 (工作流名, 周期数) 的列表,用于指定运行顺序和周期。其默认设置为: + +```python +workflow = [('train', 1)] +``` + +其代表要进行一轮周期的训练。 +有时,用户可能希望检查有关验证集中模型的某些指标(例如,损失,准确性)。 +在这种情况下,可以将工作流程设置为 + +```python +[('train', 1), ('val', 1)] +``` + +从而将迭代运行1个训练时间和1个验证时间。 + +**值得注意的是**: + +1. 在验证周期时不会更新模型参数。 +2. 配置文件内的关键词 `total_epochs` 控制训练时期数,并且不会影响验证工作流程。 +3. 工作流 `[('train', 1), ('val', 1)]` 和 `[('train', 1)]` 不会改变 `EvalHook` 的行为。 + 因为 `EvalHook` 由 `after_train_epoch` 调用,而验证工作流只会影响 `after_val_epoch` 调用的钩子。 + 因此,`[('train', 1), ('val', 1)]` 和 `[('train', 1)]` 的区别在于,runner 在完成每一轮训练后,会计算验证集上的损失。 + +## 定制钩子 + +### 定制用户自定义钩子 + +#### 1. 创建一个新钩子 + +这里举一个在 MMAction2 中创建一个新钩子,并在训练中使用它的示例: + +```python +from mmcv.runner import HOOKS, Hook + + +@HOOKS.register_module() +class MyHook(Hook): + + def __init__(self, a, b): + pass + + def before_run(self, runner): + pass + + def after_run(self, runner): + pass + + def before_epoch(self, runner): + pass + + def after_epoch(self, runner): + pass + + def before_iter(self, runner): + pass + + def after_iter(self, runner): + pass +``` + +根据钩子的功能,用户需要指定钩子在训练的每个阶段将要执行的操作,比如 `before_run`,`after_run`,`before_epoch`,`after_epoch`,`before_iter` 和 `after_iter`。 + +#### 2. 注册新钩子 + +之后,需要导入 `MyHook`。假设该文件在 `mmaction/core/utils/my_hook.py`,有两种办法导入它: + +- 修改 `mmaction/core/utils/__init__.py` 进行导入 + + 新定义的模块应导入到 `mmaction/core/utils/__init__py` 中,以便注册表能找到并添加新模块: + +```python +from .my_hook import MyHook +``` + +- 使用配置文件中的 `custom_imports` 变量手动导入 + +```python +custom_imports = dict(imports=['mmaction.core.utils.my_hook'], allow_failed_imports=False) +``` + +#### 3. 修改配置 + +```python +custom_hooks = [ + dict(type='MyHook', a=a_value, b=b_value) +] +``` + +还可通过 `priority` 参数(可选参数值包括 `'NORMAL'` 或 `'HIGHEST'`)设置钩子优先级,如下所示: + +```python +custom_hooks = [ + dict(type='MyHook', a=a_value, b=b_value, priority='NORMAL') +] +``` + +默认情况下,在注册过程中,钩子的优先级设置为 “NORMAL”。 + +### 使用 MMCV 内置钩子 + +如果该钩子已在 MMCV 中实现,则可以直接修改配置以使用该钩子,如下所示 + +```python +mmcv_hooks = [ + dict(type='MMCVHook', a=a_value, b=b_value, priority='NORMAL') +] +``` + +### 修改默认运行的钩子 + +有一些常见的钩子未通过 `custom_hooks` 注册,但在导入 MMCV 时已默认注册,它们是: + +- log_config +- checkpoint_config +- evaluation +- lr_config +- optimizer_config +- momentum_config + +在这些钩子中,只有 log_config 具有 “VERY_LOW” 优先级,其他钩子具有 “NORMAL” 优先级。 +上述教程已经介绍了如何修改 “optimizer_config”,“momentum_config” 和 “lr_config”。 +下面介绍如何使用 log_config,checkpoint_config,以及 evaluation 能做什么。 + +#### 模型权重文件配置 + +MMCV 的 runner 使用 `checkpoint_config` 来初始化 [`CheckpointHook`](https://github.com/open-mmlab/mmcv/blob/9ecd6b0d5ff9d2172c49a182eaa669e9f27bb8e7/mmcv/runner/hooks/checkpoint.py#L9)。 + +```python +checkpoint_config = dict(interval=1) +``` + +用户可以设置 “max_keep_ckpts” 来仅保存少量模型权重文件,或者通过 “save_optimizer” 决定是否存储优化器的状态字典。 +更多细节可参考 [这里](https://mmcv.readthedocs.io/en/latest/api.html#mmcv.runner.CheckpointHook)。 + +#### 日志配置 + +`log_config` 包装了多个记录器钩子,并可以设置间隔。 +目前,MMCV 支持 `WandbLoggerHook`,`MlflowLoggerHook` 和 `TensorboardLoggerHook`。 +更多细节可参考[这里](https://mmcv.readthedocs.io/en/latest/api.html#mmcv.runner.LoggerHook)。 + +```python +log_config = dict( + interval=50, + hooks=[ + dict(type='TextLoggerHook'), + dict(type='TensorboardLoggerHook') + ]) +``` + +#### 验证配置 + +评估的配置将用于初始化 [`EvalHook`](https://github.com/open-mmlab/mmaction2/blob/master/mmaction/core/evaluation/eval_hooks.py#L12)。 +除了键 `interval` 外,其他参数,如 “metrics” 也将传递给 `dataset.evaluate()`。 + +```python +evaluation = dict(interval=1, metrics='bbox') +``` diff --git a/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/useful_tools.md b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/useful_tools.md new file mode 100644 index 00000000..a0969a2b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/docs_zh_CN/useful_tools.md @@ -0,0 +1,161 @@ +除了训练/测试脚本外,MMAction2 还在 `tools/` 目录下提供了许多有用的工具。 + +## 目录 + + + +- [日志分析](#%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90) +- [模型复杂度分析](#%E6%A8%A1%E5%9E%8B%E5%A4%8D%E6%9D%82%E5%BA%A6%E5%88%86%E6%9E%90) +- [模型转换](#%E6%A8%A1%E5%9E%8B%E8%BD%AC%E6%8D%A2) + - [导出 MMAction2 模型为 ONNX 格式(实验特性)](#%E5%AF%BC%E5%87%BA-MMAction2-%E6%A8%A1%E5%9E%8B%E4%B8%BA-ONNX-%E6%A0%BC%E5%BC%8F%EF%BC%88%E5%AE%9E%E9%AA%8C%E7%89%B9%E6%80%A7%EF%BC%89) + - [发布模型](#%E5%8F%91%E5%B8%83%E6%A8%A1%E5%9E%8B) +- [其他脚本](#%E5%85%B6%E4%BB%96%E8%84%9A%E6%9C%AC) + - [指标评价](#%E6%8C%87%E6%A0%87%E8%AF%84%E4%BB%B7) + - [打印完整配置](#%E6%89%93%E5%8D%B0%E5%AE%8C%E6%95%B4%E9%85%8D%E7%BD%AE) + + + +## 日志分析 + +输入变量指定一个训练日志文件,可通过 `tools/analysis/analyze_logs.py` 脚本绘制 loss/top-k 曲线。本功能依赖于 `seaborn`,使用前请先通过 `pip install seaborn` 安装依赖包。 + +![准确度曲线图](https://github.com/open-mmlab/mmaction2/raw/master/resources/acc_curve.png) + +```shell +python tools/analysis/analyze_logs.py plot_curve ${JSON_LOGS} [--keys ${KEYS}] [--title ${TITLE}] [--legend ${LEGEND}] [--backend ${BACKEND}] [--style ${STYLE}] [--out ${OUT_FILE}] +``` + +例如: + +- 绘制某日志文件对应的分类损失曲线图。 + + ```shell + python tools/analysis/analyze_logs.py plot_curve log.json --keys loss_cls --legend loss_cls + ``` + +- 绘制某日志文件对应的 top-1 和 top-5 准确率曲线图,并将曲线图导出为 PDF 文件。 + + ```shell + python tools/analysis/analyze_logs.py plot_curve log.json --keys top1_acc top5_acc --out results.pdf + ``` + +- 在同一图像内绘制两份日志文件对应的 top-1 准确率曲线图。 + + ```shell + python tools/analysis/analyze_logs.py plot_curve log1.json log2.json --keys top1_acc --legend run1 run2 + ``` + + 用户还可以通过本工具计算平均训练速度。 + + ```shell + python tools/analysis/analyze_logs.py cal_train_time ${JSON_LOGS} [--include-outliers] + ``` + +- 计算某日志文件对应的平均训练速度。 + + ```shell + python tools/analysis/analyze_logs.py cal_train_time work_dirs/some_exp/20200422_153324.log.json + ``` + + 预计输出结果如下所示: + + ```text + -----Analyze train time of work_dirs/some_exp/20200422_153324.log.json----- + slowest epoch 60, average time is 0.9736 + fastest epoch 18, average time is 0.9001 + time std over epochs is 0.0177 + average iter time: 0.9330 s/iter + ``` + +## 模型复杂度分析 + +`/tools/analysis/get_flops.py` 是根据 [flops-counter.pytorch](https://github.com/sovrasov/flops-counter.pytorch) 库改编的脚本,用于计算输入变量指定模型的 FLOPs 和参数量。 + +```shell +python tools/analysis/get_flops.py ${CONFIG_FILE} [--shape ${INPUT_SHAPE}] +``` + +预计输出结果如下所示: + +```text +============================== +Input shape: (1, 3, 32, 340, 256) +Flops: 37.1 GMac +Params: 28.04 M +============================== +``` + +**注意**:该工具仍处于试验阶段,不保证该数字绝对正确。 +用户可以将结果用于简单比较,但若要在技术报告或论文中采用该结果,请仔细检查。 + +(1) FLOPs 与输入变量形状有关,但是模型的参数量与输入变量形状无关。2D 行为识别器的默认形状为 (1, 3, 340, 256),3D 行为识别器的默认形状为 (1, 3, 32, 340, 256)。 +(2) 部分算子不参与 FLOPs 以及参数量的计算,如 GN 和一些自定义算子。更多详细信息请参考 [`mmcv.cnn.get_model_complexity_info()`](https://github.com/open-mmlab/mmcv/blob/master/mmcv/cnn/utils/flops_counter.py) + +## 模型转换 + +### 导出 MMAction2 模型为 ONNX 格式(实验特性) + +`/tools/deployment/pytorch2onnx.py` 脚本用于将模型转换为 [ONNX](https://github.com/onnx/onnx) 格式。 +同时,该脚本支持比较 PyTorch 模型和 ONNX 模型的输出结果,验证输出结果是否相同。 +本功能依赖于 `onnx` 以及 `onnxruntime`,使用前请先通过 `pip install onnx onnxruntime` 安装依赖包。 +请注意,可通过 `--softmax` 选项在行为识别器末尾添加 Softmax 层,从而获取 `[0, 1]` 范围内的预测结果。 + +- 对于行为识别模型,请运行: + + ```shell + python tools/deployment/pytorch2onnx.py $CONFIG_PATH $CHECKPOINT_PATH --shape $SHAPE --verify + ``` + +- 对于时序动作检测模型,请运行: + + ```shell + python tools/deployment/pytorch2onnx.py $CONFIG_PATH $CHECKPOINT_PATH --is-localizer --shape $SHAPE --verify + ``` + +### 发布模型 + +`tools/deployment/publish_model.py` 脚本用于进行模型发布前的准备工作,主要包括: + +(1) 将模型的权重张量转化为 CPU 张量。 +(2) 删除优化器状态信息。 +(3) 计算模型权重文件的哈希值,并将哈希值添加到文件名后。 + +```shell +python tools/deployment/publish_model.py ${INPUT_FILENAME} ${OUTPUT_FILENAME} +``` + +例如, + +```shell +python tools/deployment/publish_model.py work_dirs/tsn_r50_1x1x3_100e_kinetics400_rgb/latest.pth tsn_r50_1x1x3_100e_kinetics400_rgb.pth +``` + +最终,输出文件名为 `tsn_r50_1x1x3_100e_kinetics400_rgb-{hash id}.pth`。 + +## 其他脚本 + +### 指标评价 + +`tools/analysis/eval_metric.py` 脚本通过输入变量指定配置文件,以及对应的结果存储文件,计算某一评价指标。 + +结果存储文件通过 `tools/test.py` 脚本(通过参数 `--out ${RESULT_FILE}` 指定)生成,保存了指定模型在指定数据集中的预测结果。 + +```shell +python tools/analysis/eval_metric.py ${CONFIG_FILE} ${RESULT_FILE} [--eval ${EVAL_METRICS}] [--cfg-options ${CFG_OPTIONS}] [--eval-options ${EVAL_OPTIONS}] +``` + +### 打印完整配置 + +`tools/analysis/print_config.py` 脚本会解析所有输入变量,并打印完整配置信息。 + +```shell +python tools/print_config.py ${CONFIG} [-h] [--options ${OPTIONS [OPTIONS...]}] +``` + +### 检查视频 + +`tools/analysis/check_videos.py` 脚本利用指定视频编码器,遍历指定配置文件视频数据集中所有样本,寻找无效视频文件(文件破损或者文件不存在),并将无效文件路径保存到输出文件中。请注意,删除无效视频文件后,需要重新生成视频文件列表。 + +```shell +python tools/analysis/check_videos.py ${CONFIG} [-h] [--options OPTIONS [OPTIONS ...]] [--cfg-options CFG_OPTIONS [CFG_OPTIONS ...]] [--output-file OUTPUT_FILE] [--split SPLIT] [--decoder DECODER] [--num-processes NUM_PROCESSES] [--remove-corrupted-videos] +``` diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/__init__.py new file mode 100644 index 00000000..27fd1f3e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/__init__.py @@ -0,0 +1,16 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import mmcv +from mmcv import digit_version + +from .version import __version__ + +mmcv_minimum_version = '1.3.6' +mmcv_maximum_version = '1.7.0' +mmcv_version = digit_version(mmcv.__version__) + +assert (digit_version(mmcv_minimum_version) <= mmcv_version + <= digit_version(mmcv_maximum_version)), \ + f'MMCV=={mmcv.__version__} is used but incompatible. ' \ + f'Please install mmcv>={mmcv_minimum_version}, <={mmcv_maximum_version}.' + +__all__ = ['__version__'] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/apis/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/apis/__init__.py new file mode 100644 index 00000000..15961080 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/apis/__init__.py @@ -0,0 +1,9 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .inference import inference_recognizer, init_recognizer +from .test import multi_gpu_test, single_gpu_test +from .train import init_random_seed, train_model + +__all__ = [ + 'train_model', 'init_recognizer', 'inference_recognizer', 'multi_gpu_test', + 'single_gpu_test', 'init_random_seed' +] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/apis/inference.py b/openmmlab_test/mmaction2-0.24.1/mmaction/apis/inference.py new file mode 100644 index 00000000..f303d20e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/apis/inference.py @@ -0,0 +1,192 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os +import os.path as osp +import re +import warnings +from operator import itemgetter + +import mmcv +import numpy as np +import torch +from mmcv.parallel import collate, scatter +from mmcv.runner import load_checkpoint + +from mmaction.core import OutputHook +from mmaction.datasets.pipelines import Compose +from mmaction.models import build_recognizer + + +def init_recognizer(config, checkpoint=None, device='cuda:0', **kwargs): + """Initialize a recognizer from config file. + + Args: + config (str | :obj:`mmcv.Config`): Config file path or the config + object. + checkpoint (str | None, optional): Checkpoint path/url. If set to None, + the model will not load any weights. Default: None. + device (str | :obj:`torch.device`): The desired device of returned + tensor. Default: 'cuda:0'. + + Returns: + nn.Module: The constructed recognizer. + """ + if 'use_frames' in kwargs: + warnings.warn('The argument `use_frames` is deprecated PR #1191. ' + 'Now you can use models trained with frames or videos ' + 'arbitrarily. ') + + if isinstance(config, str): + config = mmcv.Config.fromfile(config) + elif not isinstance(config, mmcv.Config): + raise TypeError('config must be a filename or Config object, ' + f'but got {type(config)}') + + # pretrained model is unnecessary since we directly load checkpoint later + config.model.backbone.pretrained = None + model = build_recognizer(config.model, test_cfg=config.get('test_cfg')) + + if checkpoint is not None: + load_checkpoint(model, checkpoint, map_location='cpu') + model.cfg = config + model.to(device) + model.eval() + return model + + +def inference_recognizer(model, video, outputs=None, as_tensor=True, **kwargs): + """Inference a video with the recognizer. + + Args: + model (nn.Module): The loaded recognizer. + video (str | dict | ndarray): The video file path / url or the + rawframes directory path / results dictionary (the input of + pipeline) / a 4D array T x H x W x 3 (The input video). + outputs (list(str) | tuple(str) | str | None) : Names of layers whose + outputs need to be returned, default: None. + as_tensor (bool): Same as that in ``OutputHook``. Default: True. + + Returns: + dict[tuple(str, float)]: Top-5 recognition result dict. + dict[torch.tensor | np.ndarray]: + Output feature maps from layers specified in `outputs`. + """ + if 'use_frames' in kwargs: + warnings.warn('The argument `use_frames` is deprecated PR #1191. ' + 'Now you can use models trained with frames or videos ' + 'arbitrarily. ') + if 'label_path' in kwargs: + warnings.warn('The argument `use_frames` is deprecated PR #1191. ' + 'Now the label file is not needed in ' + 'inference_recognizer. ') + + input_flag = None + if isinstance(video, dict): + input_flag = 'dict' + elif isinstance(video, np.ndarray): + assert len(video.shape) == 4, 'The shape should be T x H x W x C' + input_flag = 'array' + elif isinstance(video, str) and video.startswith('http'): + input_flag = 'video' + elif isinstance(video, str) and osp.exists(video): + if osp.isfile(video): + if video.endswith('.npy'): + input_flag = 'audio' + else: + input_flag = 'video' + if osp.isdir(video): + input_flag = 'rawframes' + else: + raise RuntimeError('The type of argument video is not supported: ' + f'{type(video)}') + + if isinstance(outputs, str): + outputs = (outputs, ) + assert outputs is None or isinstance(outputs, (tuple, list)) + + cfg = model.cfg + device = next(model.parameters()).device # model device + # build the data pipeline + test_pipeline = cfg.data.test.pipeline + # Alter data pipelines & prepare inputs + if input_flag == 'dict': + data = video + if input_flag == 'array': + modality_map = {2: 'Flow', 3: 'RGB'} + modality = modality_map.get(video.shape[-1]) + data = dict( + total_frames=video.shape[0], + label=-1, + start_index=0, + array=video, + modality=modality) + for i in range(len(test_pipeline)): + if 'Decode' in test_pipeline[i]['type']: + test_pipeline[i] = dict(type='ArrayDecode') + test_pipeline = [x for x in test_pipeline if 'Init' not in x['type']] + if input_flag == 'video': + data = dict(filename=video, label=-1, start_index=0, modality='RGB') + if 'Init' not in test_pipeline[0]['type']: + test_pipeline = [dict(type='OpenCVInit')] + test_pipeline + else: + test_pipeline[0] = dict(type='OpenCVInit') + for i in range(len(test_pipeline)): + if 'Decode' in test_pipeline[i]['type']: + test_pipeline[i] = dict(type='OpenCVDecode') + if input_flag == 'rawframes': + filename_tmpl = cfg.data.test.get('filename_tmpl', 'img_{:05}.jpg') + modality = cfg.data.test.get('modality', 'RGB') + start_index = cfg.data.test.get('start_index', 1) + + # count the number of frames that match the format of `filename_tmpl` + # RGB pattern example: img_{:05}.jpg -> ^img_\d+.jpg$ + # Flow patteren example: {}_{:05d}.jpg -> ^x_\d+.jpg$ + pattern = f'^{filename_tmpl}$' + if modality == 'Flow': + pattern = pattern.replace('{}', 'x') + pattern = pattern.replace( + pattern[pattern.find('{'):pattern.find('}') + 1], '\\d+') + total_frames = len( + list( + filter(lambda x: re.match(pattern, x) is not None, + os.listdir(video)))) + data = dict( + frame_dir=video, + total_frames=total_frames, + label=-1, + start_index=start_index, + filename_tmpl=filename_tmpl, + modality=modality) + if 'Init' in test_pipeline[0]['type']: + test_pipeline = test_pipeline[1:] + for i in range(len(test_pipeline)): + if 'Decode' in test_pipeline[i]['type']: + test_pipeline[i] = dict(type='RawFrameDecode') + if input_flag == 'audio': + data = dict( + audio_path=video, + total_frames=len(np.load(video)), + start_index=cfg.data.test.get('start_index', 1), + label=-1) + + test_pipeline = Compose(test_pipeline) + data = test_pipeline(data) + data = collate([data], samples_per_gpu=1) + + if next(model.parameters()).is_cuda: + # scatter to specified GPU + data = scatter(data, [device])[0] + + # forward the model + with OutputHook(model, outputs=outputs, as_tensor=as_tensor) as h: + with torch.no_grad(): + scores = model(return_loss=False, **data)[0] + returned_features = h.layer_outputs if outputs else None + + num_classes = scores.shape[-1] + score_tuples = tuple(zip(range(num_classes), scores)) + score_sorted = sorted(score_tuples, key=itemgetter(1), reverse=True) + + top5_label = score_sorted[:5] + if outputs: + return top5_label, returned_features + return top5_label diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/apis/test.py b/openmmlab_test/mmaction2-0.24.1/mmaction/apis/test.py new file mode 100644 index 00000000..742b0e4f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/apis/test.py @@ -0,0 +1,206 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp +import pickle +import shutil +import tempfile +# TODO import test functions from mmcv and delete them from mmaction2 +import warnings + +import mmcv +import torch +import torch.distributed as dist +from mmcv.runner import get_dist_info + +try: + from mmcv.engine import (collect_results_cpu, collect_results_gpu, + multi_gpu_test, single_gpu_test) + from_mmcv = True +except (ImportError, ModuleNotFoundError): + warnings.warn( + 'DeprecationWarning: single_gpu_test, multi_gpu_test, ' + 'collect_results_cpu, collect_results_gpu from mmaction2 will be ' + 'deprecated. Please install mmcv through master branch.') + from_mmcv = False + +if not from_mmcv: + + def single_gpu_test(model, data_loader): # noqa: F811 + """Test model with a single gpu. + + This method tests model with a single gpu and + displays test progress bar. + + Args: + model (nn.Module): Model to be tested. + data_loader (nn.Dataloader): Pytorch data loader. + + Returns: + list: The prediction results. + """ + model.eval() + results = [] + dataset = data_loader.dataset + prog_bar = mmcv.ProgressBar(len(dataset)) + for data in data_loader: + with torch.no_grad(): + result = model(return_loss=False, **data) + results.extend(result) + + # use the first key as main key to calculate the batch size + batch_size = len(next(iter(data.values()))) + for _ in range(batch_size): + prog_bar.update() + return results + + def multi_gpu_test( # noqa: F811 + model, data_loader, tmpdir=None, gpu_collect=True): + """Test model with multiple gpus. + + This method tests model with multiple gpus and collects the results + under two different modes: gpu and cpu modes. By setting + 'gpu_collect=True' it encodes results to gpu tensors and use gpu + communication for results collection. On cpu mode it saves the results + on different gpus to 'tmpdir' and collects them by the rank 0 worker. + + Args: + model (nn.Module): Model to be tested. + data_loader (nn.Dataloader): Pytorch data loader. + tmpdir (str): Path of directory to save the temporary results from + different gpus under cpu mode. Default: None + gpu_collect (bool): Option to use either gpu or cpu to collect + results. Default: True + + Returns: + list: The prediction results. + """ + model.eval() + results = [] + dataset = data_loader.dataset + rank, world_size = get_dist_info() + if rank == 0: + prog_bar = mmcv.ProgressBar(len(dataset)) + for data in data_loader: + with torch.no_grad(): + result = model(return_loss=False, **data) + results.extend(result) + + if rank == 0: + # use the first key as main key to calculate the batch size + batch_size = len(next(iter(data.values()))) + for _ in range(batch_size * world_size): + prog_bar.update() + + # collect results from all ranks + if gpu_collect: + results = collect_results_gpu(results, len(dataset)) + else: + results = collect_results_cpu(results, len(dataset), tmpdir) + return results + + def collect_results_cpu(result_part, size, tmpdir=None): # noqa: F811 + """Collect results in cpu mode. + + It saves the results on different gpus to 'tmpdir' and collects + them by the rank 0 worker. + + Args: + result_part (list): Results to be collected + size (int): Result size. + tmpdir (str): Path of directory to save the temporary results from + different gpus under cpu mode. Default: None + + Returns: + list: Ordered results. + """ + rank, world_size = get_dist_info() + # create a tmp dir if it is not specified + if tmpdir is None: + MAX_LEN = 512 + # 32 is whitespace + dir_tensor = torch.full((MAX_LEN, ), + 32, + dtype=torch.uint8, + device='cuda') + if rank == 0: + mmcv.mkdir_or_exist('.dist_test') + tmpdir = tempfile.mkdtemp(dir='.dist_test') + tmpdir = torch.tensor( + bytearray(tmpdir.encode()), + dtype=torch.uint8, + device='cuda') + dir_tensor[:len(tmpdir)] = tmpdir + dist.broadcast(dir_tensor, 0) + tmpdir = dir_tensor.cpu().numpy().tobytes().decode().rstrip() + else: + tmpdir = osp.join(tmpdir, '.dist_test') + mmcv.mkdir_or_exist(tmpdir) + # synchronizes all processes to make sure tmpdir exist + dist.barrier() + # dump the part result to the dir + mmcv.dump(result_part, osp.join(tmpdir, f'part_{rank}.pkl')) + # synchronizes all processes for loading pickle file + dist.barrier() + # collect all parts + if rank != 0: + return None + # load results of all parts from tmp dir + part_list = [] + for i in range(world_size): + part_file = osp.join(tmpdir, f'part_{i}.pkl') + part_list.append(mmcv.load(part_file)) + # sort the results + ordered_results = [] + for res in zip(*part_list): + ordered_results.extend(list(res)) + # the dataloader may pad some samples + ordered_results = ordered_results[:size] + # remove tmp dir + shutil.rmtree(tmpdir) + return ordered_results + + def collect_results_gpu(result_part, size): # noqa: F811 + """Collect results in gpu mode. + + It encodes results to gpu tensors and use gpu communication for results + collection. + + Args: + result_part (list): Results to be collected + size (int): Result size. + + Returns: + list: Ordered results. + """ + rank, world_size = get_dist_info() + # dump result part to tensor with pickle + part_tensor = torch.tensor( + bytearray(pickle.dumps(result_part)), + dtype=torch.uint8, + device='cuda') + # gather all result part tensor shape + shape_tensor = torch.tensor(part_tensor.shape, device='cuda') + shape_list = [shape_tensor.clone() for _ in range(world_size)] + dist.all_gather(shape_list, shape_tensor) + # padding result part tensor to max length + shape_max = torch.tensor(shape_list).max() + part_send = torch.zeros(shape_max, dtype=torch.uint8, device='cuda') + part_send[:shape_tensor[0]] = part_tensor + part_recv_list = [ + part_tensor.new_zeros(shape_max) for _ in range(world_size) + ] + # gather all result part + dist.all_gather(part_recv_list, part_send) + + if rank == 0: + part_list = [] + for recv, shape in zip(part_recv_list, shape_list): + part_list.append( + pickle.loads(recv[:shape[0]].cpu().numpy().tobytes())) + # sort the results + ordered_results = [] + for res in zip(*part_list): + ordered_results.extend(list(res)) + # the dataloader may pad some samples + ordered_results = ordered_results[:size] + return ordered_results + return None diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/apis/train.py b/openmmlab_test/mmaction2-0.24.1/mmaction/apis/train.py new file mode 100644 index 00000000..b0c7e06a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/apis/train.py @@ -0,0 +1,304 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy as cp +import os +import os.path as osp +import time + +import numpy as np +import torch +import torch.distributed as dist +from mmcv.runner import (DistSamplerSeedHook, EpochBasedRunner, OptimizerHook, + build_optimizer, get_dist_info) +from mmcv.runner.hooks import Fp16OptimizerHook + +from ..core import (DistEvalHook, EvalHook, OmniSourceDistSamplerSeedHook, + OmniSourceRunner) +from ..datasets import build_dataloader, build_dataset +from ..utils import (PreciseBNHook, build_ddp, build_dp, default_device, + get_root_logger) +from .test import multi_gpu_test + + +def init_random_seed(seed=None, device=default_device, distributed=True): + """Initialize random seed. + + If the seed is not set, the seed will be automatically randomized, + and then broadcast to all processes to prevent some potential bugs. + Args: + seed (int, Optional): The seed. Default to None. + device (str): The device where the seed will be put on. + Default to 'cuda'. + distributed (bool): Whether to use distributed training. + Default: True. + Returns: + int: Seed to be used. + """ + if seed is not None: + return seed + + # Make sure all ranks share the same random seed to prevent + # some potential bugs. Please refer to + # https://github.com/open-mmlab/mmdetection/issues/6339 + rank, world_size = get_dist_info() + seed = np.random.randint(2**31) + + if world_size == 1: + return seed + + if rank == 0: + random_num = torch.tensor(seed, dtype=torch.int32, device=device) + else: + random_num = torch.tensor(0, dtype=torch.int32, device=device) + + if distributed: + dist.broadcast(random_num, src=0) + return random_num.item() + + +def train_model(model, + dataset, + cfg, + distributed=False, + validate=False, + test=dict(test_best=False, test_last=False), + timestamp=None, + meta=None): + """Train model entry function. + + Args: + model (nn.Module): The model to be trained. + dataset (:obj:`Dataset`): Train dataset. + cfg (dict): The config dict for training. + distributed (bool): Whether to use distributed training. + Default: False. + validate (bool): Whether to do evaluation. Default: False. + test (dict): The testing option, with two keys: test_last & test_best. + The value is True or False, indicating whether to test the + corresponding checkpoint. + Default: dict(test_best=False, test_last=False). + timestamp (str | None): Local time for runner. Default: None. + meta (dict | None): Meta dict to record some important information. + Default: None + """ + logger = get_root_logger(log_level=cfg.log_level) + + # prepare data loaders + dataset = dataset if isinstance(dataset, (list, tuple)) else [dataset] + + dataloader_setting = dict( + videos_per_gpu=cfg.data.get('videos_per_gpu', 1), + workers_per_gpu=cfg.data.get('workers_per_gpu', 1), + persistent_workers=cfg.data.get('persistent_workers', False), + num_gpus=len(cfg.gpu_ids), + dist=distributed, + seed=cfg.seed) + dataloader_setting = dict(dataloader_setting, + **cfg.data.get('train_dataloader', {})) + + if cfg.omnisource: + # The option can override videos_per_gpu + train_ratio = cfg.data.get('train_ratio', [1] * len(dataset)) + omni_videos_per_gpu = cfg.data.get('omni_videos_per_gpu', None) + if omni_videos_per_gpu is None: + dataloader_settings = [dataloader_setting] * len(dataset) + else: + dataloader_settings = [] + for videos_per_gpu in omni_videos_per_gpu: + this_setting = cp.deepcopy(dataloader_setting) + this_setting['videos_per_gpu'] = videos_per_gpu + dataloader_settings.append(this_setting) + data_loaders = [ + build_dataloader(ds, **setting) + for ds, setting in zip(dataset, dataloader_settings) + ] + + else: + data_loaders = [ + build_dataloader(ds, **dataloader_setting) for ds in dataset + ] + + # put model on gpus + if distributed: + find_unused_parameters = cfg.get('find_unused_parameters', False) + # Sets the `find_unused_parameters` parameter in + # torch.nn.parallel.DistributedDataParallel + + model = build_ddp( + model, + default_device, + default_args=dict( + device_ids=[int(os.environ['LOCAL_RANK'])], + broadcast_buffers=False, + find_unused_parameters=find_unused_parameters)) + else: + model = build_dp( + model, default_device, default_args=dict(device_ids=cfg.gpu_ids)) + + # build runner + optimizer = build_optimizer(model, cfg.optimizer) + + Runner = OmniSourceRunner if cfg.omnisource else EpochBasedRunner + runner = Runner( + model, + optimizer=optimizer, + work_dir=cfg.work_dir, + logger=logger, + meta=meta) + # an ugly workaround to make .log and .log.json filenames the same + runner.timestamp = timestamp + + # fp16 setting + fp16_cfg = cfg.get('fp16', None) + if fp16_cfg is not None: + optimizer_config = Fp16OptimizerHook( + **cfg.optimizer_config, **fp16_cfg, distributed=distributed) + elif distributed and 'type' not in cfg.optimizer_config: + optimizer_config = OptimizerHook(**cfg.optimizer_config) + else: + optimizer_config = cfg.optimizer_config + + # register hooks + runner.register_training_hooks( + cfg.lr_config, + optimizer_config, + cfg.checkpoint_config, + cfg.log_config, + cfg.get('momentum_config', None), + custom_hooks_config=cfg.get('custom_hooks', None)) + + # multigrid setting + multigrid_cfg = cfg.get('multigrid', None) + if multigrid_cfg is not None: + from mmaction.utils.multigrid import LongShortCycleHook + multigrid_scheduler = LongShortCycleHook(cfg) + runner.register_hook(multigrid_scheduler) + logger.info('Finish register multigrid hook') + + # subbn3d aggregation is HIGH, as it should be done before + # saving and evaluation + from mmaction.utils.multigrid import SubBatchNorm3dAggregationHook + subbn3d_aggre_hook = SubBatchNorm3dAggregationHook() + runner.register_hook(subbn3d_aggre_hook, priority='VERY_HIGH') + logger.info('Finish register subbn3daggre hook') + + # precise bn setting + if cfg.get('precise_bn', False): + precise_bn_dataset = build_dataset(cfg.data.train) + dataloader_setting = dict( + videos_per_gpu=cfg.data.get('videos_per_gpu', 1), + workers_per_gpu=1, # save memory and time + persistent_workers=cfg.data.get('persistent_workers', False), + num_gpus=len(cfg.gpu_ids), + dist=distributed, + seed=cfg.seed) + data_loader_precise_bn = build_dataloader(precise_bn_dataset, + **dataloader_setting) + precise_bn_hook = PreciseBNHook(data_loader_precise_bn, + **cfg.get('precise_bn')) + runner.register_hook(precise_bn_hook, priority='HIGHEST') + logger.info('Finish register precisebn hook') + + if distributed: + if cfg.omnisource: + runner.register_hook(OmniSourceDistSamplerSeedHook()) + else: + runner.register_hook(DistSamplerSeedHook()) + + if validate: + eval_cfg = cfg.get('evaluation', {}) + val_dataset = build_dataset(cfg.data.val, dict(test_mode=True)) + dataloader_setting = dict( + videos_per_gpu=cfg.data.get('videos_per_gpu', 1), + workers_per_gpu=cfg.data.get('workers_per_gpu', 1), + persistent_workers=cfg.data.get('persistent_workers', False), + # cfg.gpus will be ignored if distributed + num_gpus=len(cfg.gpu_ids), + dist=distributed, + shuffle=False) + dataloader_setting = dict(dataloader_setting, + **cfg.data.get('val_dataloader', {})) + val_dataloader = build_dataloader(val_dataset, **dataloader_setting) + eval_hook = DistEvalHook(val_dataloader, **eval_cfg) if distributed \ + else EvalHook(val_dataloader, **eval_cfg) + runner.register_hook(eval_hook, priority='LOW') + + if cfg.resume_from: + runner.resume(cfg.resume_from) + elif cfg.load_from: + runner.load_checkpoint(cfg.load_from) + runner_kwargs = dict() + if cfg.omnisource: + runner_kwargs = dict(train_ratio=train_ratio) + runner.run(data_loaders, cfg.workflow, cfg.total_epochs, **runner_kwargs) + + if distributed: + dist.barrier() + time.sleep(5) + + if test['test_last'] or test['test_best']: + best_ckpt_path = None + if test['test_best']: + ckpt_paths = [x for x in os.listdir(cfg.work_dir) if 'best' in x] + ckpt_paths = [x for x in ckpt_paths if x.endswith('.pth')] + if len(ckpt_paths) == 0: + runner.logger.info('Warning: test_best set, but no ckpt found') + test['test_best'] = False + if not test['test_last']: + return + elif len(ckpt_paths) > 1: + epoch_ids = [ + int(x.split('epoch_')[-1][:-4]) for x in ckpt_paths + ] + best_ckpt_path = ckpt_paths[np.argmax(epoch_ids)] + else: + best_ckpt_path = ckpt_paths[0] + if best_ckpt_path: + best_ckpt_path = osp.join(cfg.work_dir, best_ckpt_path) + + test_dataset = build_dataset(cfg.data.test, dict(test_mode=True)) + gpu_collect = cfg.get('evaluation', {}).get('gpu_collect', False) + tmpdir = cfg.get('evaluation', {}).get('tmpdir', + osp.join(cfg.work_dir, 'tmp')) + dataloader_setting = dict( + videos_per_gpu=cfg.data.get('videos_per_gpu', 1), + workers_per_gpu=cfg.data.get('workers_per_gpu', 1), + persistent_workers=cfg.data.get('persistent_workers', False), + num_gpus=len(cfg.gpu_ids), + dist=distributed, + shuffle=False) + dataloader_setting = dict(dataloader_setting, + **cfg.data.get('test_dataloader', {})) + + test_dataloader = build_dataloader(test_dataset, **dataloader_setting) + + names, ckpts = [], [] + + if test['test_last']: + names.append('last') + ckpts.append(None) + if test['test_best'] and best_ckpt_path is not None: + names.append('best') + ckpts.append(best_ckpt_path) + + for name, ckpt in zip(names, ckpts): + if ckpt is not None: + runner.load_checkpoint(ckpt) + + outputs = multi_gpu_test(runner.model, test_dataloader, tmpdir, + gpu_collect) + rank, _ = get_dist_info() + if rank == 0: + out = osp.join(cfg.work_dir, f'{name}_pred.pkl') + test_dataset.dump_results(outputs, out) + + eval_cfg = cfg.get('evaluation', {}) + for key in [ + 'interval', 'tmpdir', 'start', 'gpu_collect', + 'save_best', 'rule', 'by_epoch', 'broadcast_bn_buffers' + ]: + eval_cfg.pop(key, None) + + eval_res = test_dataset.evaluate(outputs, **eval_cfg) + runner.logger.info(f'Testing results of the {name} checkpoint') + for metric_name, val in eval_res.items(): + runner.logger.info(f'{metric_name}: {val:.04f}') diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/__init__.py new file mode 100644 index 00000000..92c53bf8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/__init__.py @@ -0,0 +1,9 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .bbox import * # noqa: F401, F403 +from .dist_utils import * # noqa: F401, F403 +from .evaluation import * # noqa: F401, F403 +from .hooks import * # noqa: F401, F403 +from .lr import * # noqa: F401, F403 +from .optimizer import * # noqa: F401, F403 +from .runner import * # noqa: F401, F403 +from .scheduler import * # noqa: F401, F403 diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/__init__.py new file mode 100644 index 00000000..27d8fe05 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .assigners import MaxIoUAssignerAVA +from .bbox_target import bbox_target +from .transforms import bbox2result + +__all__ = ['MaxIoUAssignerAVA', 'bbox_target', 'bbox2result'] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/assigners/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/assigners/__init__.py new file mode 100644 index 00000000..0e911241 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/assigners/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .max_iou_assigner_ava import MaxIoUAssignerAVA + +__all__ = ['MaxIoUAssignerAVA'] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/assigners/max_iou_assigner_ava.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/assigners/max_iou_assigner_ava.py new file mode 100644 index 00000000..3f5439bb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/assigners/max_iou_assigner_ava.py @@ -0,0 +1,142 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch + +try: + from mmdet.core.bbox import AssignResult, MaxIoUAssigner + from mmdet.core.bbox.builder import BBOX_ASSIGNERS + mmdet_imported = True +except (ImportError, ModuleNotFoundError): + mmdet_imported = False + +if mmdet_imported: + + @BBOX_ASSIGNERS.register_module() + class MaxIoUAssignerAVA(MaxIoUAssigner): + """Assign a corresponding gt bbox or background to each bbox. + + Each proposals will be assigned with `-1`, `0`, or a positive integer + indicating the ground truth index. + + - -1: don't care + - 0: negative sample, no assigned gt + - positive integer: positive sample, index (1-based) of assigned gt + + Args: + pos_iou_thr (float): IoU threshold for positive bboxes. + neg_iou_thr (float | tuple): IoU threshold for negative bboxes. + min_pos_iou (float): Minimum iou for a bbox to be considered as a + positive bbox. Positive samples can have smaller IoU than + pos_iou_thr due to the 4th step (assign max IoU sample to each + gt). Default: 0. + gt_max_assign_all (bool): Whether to assign all bboxes with the + same highest overlap with some gt to that gt. Default: True. + """ + + # The function is overridden, to handle the case that gt_label is not + # int + def assign_wrt_overlaps(self, overlaps, gt_labels=None): + """Assign w.r.t. the overlaps of bboxes with gts. + + Args: + overlaps (Tensor): Overlaps between k gt_bboxes and n bboxes, + shape(k, n). + gt_labels (Tensor, optional): Labels of k gt_bboxes, shape + (k, ). + + Returns: + :obj:`AssignResult`: The assign result. + """ + num_gts, num_bboxes = overlaps.size(0), overlaps.size(1) + + # 1. assign -1 by default + assigned_gt_inds = overlaps.new_full((num_bboxes, ), + -1, + dtype=torch.long) + + if num_gts == 0 or num_bboxes == 0: + # No ground truth or boxes, return empty assignment + max_overlaps = overlaps.new_zeros((num_bboxes, )) + if num_gts == 0: + # No truth, assign everything to background + assigned_gt_inds[:] = 0 + if gt_labels is None: + assigned_labels = None + else: + assigned_labels = overlaps.new_full((num_bboxes, ), + -1, + dtype=torch.long) + return AssignResult( + num_gts, + assigned_gt_inds, + max_overlaps, + labels=assigned_labels) + + # for each anchor, which gt best overlaps with it + # for each anchor, the max iou of all gts + max_overlaps, argmax_overlaps = overlaps.max(dim=0) + # for each gt, which anchor best overlaps with it + # for each gt, the max iou of all proposals + gt_max_overlaps, gt_argmax_overlaps = overlaps.max(dim=1) + + # 2. assign negative: below + # the negative inds are set to be 0 + if isinstance(self.neg_iou_thr, float): + assigned_gt_inds[(max_overlaps >= 0) + & (max_overlaps < self.neg_iou_thr)] = 0 + elif isinstance(self.neg_iou_thr, tuple): + assert len(self.neg_iou_thr) == 2 + assigned_gt_inds[(max_overlaps >= self.neg_iou_thr[0]) + & (max_overlaps < self.neg_iou_thr[1])] = 0 + + # 3. assign positive: above positive IoU threshold + pos_inds = max_overlaps >= self.pos_iou_thr + assigned_gt_inds[pos_inds] = argmax_overlaps[pos_inds] + 1 + + if self.match_low_quality: + # Low-quality matching will overwrite the assigned_gt_inds + # assigned in Step 3. Thus, the assigned gt might not be the + # best one for prediction. + # For example, if bbox A has 0.9 and 0.8 iou with GT bbox + # 1 & 2, bbox 1 will be assigned as the best target for bbox A + # in step 3. However, if GT bbox 2's gt_argmax_overlaps = A, + # bbox A's assigned_gt_inds will be overwritten to be bbox B. + # This might be the reason that it is not used in ROI Heads. + for i in range(num_gts): + if gt_max_overlaps[i] >= self.min_pos_iou: + if self.gt_max_assign_all: + max_iou_inds = overlaps[i, :] == gt_max_overlaps[i] + assigned_gt_inds[max_iou_inds] = i + 1 + else: + assigned_gt_inds[gt_argmax_overlaps[i]] = i + 1 + + if gt_labels is not None: + # consider multi-class case (AVA) + assert len(gt_labels[0]) > 1 + assigned_labels = assigned_gt_inds.new_zeros( + (num_bboxes, len(gt_labels[0])), dtype=torch.float32) + + # If not assigned, labels will be all 0 + pos_inds = torch.nonzero( + assigned_gt_inds > 0, as_tuple=False).squeeze() + if pos_inds.numel() > 0: + assigned_labels[pos_inds] = gt_labels[ + assigned_gt_inds[pos_inds] - 1] + else: + assigned_labels = None + + return AssignResult( + num_gts, + assigned_gt_inds, + max_overlaps, + labels=assigned_labels) + +else: + # define an empty class, so that can be imported + class MaxIoUAssignerAVA: + + def __init__(self, *args, **kwargs): + raise ImportError( + 'Failed to import `AssignResult`, `MaxIoUAssigner` from ' + '`mmdet.core.bbox` or failed to import `BBOX_ASSIGNERS` from ' + '`mmdet.core.bbox.builder`. The class `MaxIoUAssignerAVA` is ' + 'invalid. ') diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/bbox_target.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/bbox_target.py new file mode 100644 index 00000000..2d9f099e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/bbox_target.py @@ -0,0 +1,42 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn.functional as F + + +def bbox_target(pos_bboxes_list, neg_bboxes_list, gt_labels, cfg): + """Generate classification targets for bboxes. + + Args: + pos_bboxes_list (list[Tensor]): Positive bboxes list. + neg_bboxes_list (list[Tensor]): Negative bboxes list. + gt_labels (list[Tensor]): Groundtruth classification label list. + cfg (Config): RCNN config. + + Returns: + (Tensor, Tensor): Label and label_weight for bboxes. + """ + labels, label_weights = [], [] + pos_weight = 1.0 if cfg.pos_weight <= 0 else cfg.pos_weight + + assert len(pos_bboxes_list) == len(neg_bboxes_list) == len(gt_labels) + length = len(pos_bboxes_list) + + for i in range(length): + pos_bboxes = pos_bboxes_list[i] + neg_bboxes = neg_bboxes_list[i] + gt_label = gt_labels[i] + + num_pos = pos_bboxes.size(0) + num_neg = neg_bboxes.size(0) + num_samples = num_pos + num_neg + label = F.pad(gt_label, (0, 0, 0, num_neg)) + label_weight = pos_bboxes.new_zeros(num_samples) + label_weight[:num_pos] = pos_weight + label_weight[-num_neg:] = 1. + + labels.append(label) + label_weights.append(label_weight) + + labels = torch.cat(labels, 0) + label_weights = torch.cat(label_weights, 0) + return labels, label_weights diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/transforms.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/transforms.py new file mode 100644 index 00000000..4defb181 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/bbox/transforms.py @@ -0,0 +1,57 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np + + +def bbox2result(bboxes, labels, num_classes, thr=0.01): + """Convert detection results to a list of numpy arrays. + + This identifies single-label classification (as opposed to multi-label) + through the thr parameter which is set to a negative value. + + Currently, the way to set this is to set + `test_cfg.rcnn.action_thr=-1.0` + ToDo: The ideal way would be for this to be automatically set when the + model cfg uses multilabel=False, however this could be a breaking change + and is left as a future exercise. + NB - this should not interfere with the evaluation in any case. + + Args: + bboxes (Tensor): shape (n, 4) + labels (Tensor): shape (n, #num_classes) + num_classes (int): class number, including background class + thr (float): The score threshold used when converting predictions to + detection results. If a single negative value, uses single-label + classification + Returns: + list(ndarray): bbox results of each class + """ + if bboxes.shape[0] == 0: + return list(np.zeros((num_classes - 1, 0, 5), dtype=np.float32)) + + bboxes = bboxes.cpu().numpy() + scores = labels.cpu().numpy() # rename for clarification + + # Although we can handle single-label classification, we still want scores + assert scores.shape[-1] > 1 + + # Robustly check for multi/single-label: + if not hasattr(thr, '__len__'): + multilabel = thr >= 0 + thr = (thr, ) * num_classes + else: + multilabel = True + + # Check Shape + assert scores.shape[1] == num_classes + assert len(thr) == num_classes + + result = [] + for i in range(num_classes - 1): + if multilabel: + where = (scores[:, i + 1] > thr[i + 1]) + else: + where = (scores[:, 1:].argmax(axis=1) == i) + result.append( + np.concatenate((bboxes[where, :4], scores[where, i + 1:i + 2]), + axis=1)) + return result diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/dist_utils.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/dist_utils.py new file mode 100644 index 00000000..cae452d9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/dist_utils.py @@ -0,0 +1,43 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +import torch +import torch.distributed as dist +from mmcv.runner import get_dist_info + +from ..utils import default_device + + +def sync_random_seed(seed=None, device=default_device): + """Make sure different ranks share the same seed. All workers must call + this function, otherwise it will deadlock. This method is generally used in + `DistributedSampler`, because the seed should be identical across all + processes in the distributed group. + + In distributed sampling, different ranks should sample non-overlapped + data in the dataset. Therefore, this function is used to make sure that + each rank shuffles the data indices in the same order based + on the same seed. Then different ranks could use different indices + to select non-overlapped data from the same data list. + + Args: + seed (int, Optional): The seed. Default to None. + device (str): The device where the seed will be put on. + Default to 'cuda'. + Returns: + int: Seed to be used. + """ + if seed is None: + seed = np.random.randint(2**31) + assert isinstance(seed, int) + + rank, world_size = get_dist_info() + + if world_size == 1: + return seed + + if rank == 0: + random_num = torch.tensor(seed, dtype=torch.int32, device=device) + else: + random_num = torch.tensor(0, dtype=torch.int32, device=device) + dist.broadcast(random_num, src=0) + return random_num.item() diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/__init__.py new file mode 100644 index 00000000..354d525c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/__init__.py @@ -0,0 +1,18 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .accuracy import (average_precision_at_temporal_iou, + average_recall_at_avg_proposals, confusion_matrix, + get_weighted_score, interpolated_precision_recall, + mean_average_precision, mean_class_accuracy, + mmit_mean_average_precision, pairwise_temporal_iou, + softmax, top_k_accuracy, top_k_classes) +from .eval_detection import ActivityNetLocalization +from .eval_hooks import DistEvalHook, EvalHook + +__all__ = [ + 'DistEvalHook', 'EvalHook', 'top_k_accuracy', 'mean_class_accuracy', + 'confusion_matrix', 'mean_average_precision', 'get_weighted_score', + 'average_recall_at_avg_proposals', 'pairwise_temporal_iou', + 'average_precision_at_temporal_iou', 'ActivityNetLocalization', 'softmax', + 'interpolated_precision_recall', 'mmit_mean_average_precision', + 'top_k_classes' +] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/accuracy.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/accuracy.py new file mode 100644 index 00000000..08cb4b49 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/accuracy.py @@ -0,0 +1,568 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np + + +def confusion_matrix(y_pred, y_real, normalize=None): + """Compute confusion matrix. + + Args: + y_pred (list[int] | np.ndarray[int]): Prediction labels. + y_real (list[int] | np.ndarray[int]): Ground truth labels. + normalize (str | None): Normalizes confusion matrix over the true + (rows), predicted (columns) conditions or all the population. + If None, confusion matrix will not be normalized. Options are + "true", "pred", "all", None. Default: None. + + Returns: + np.ndarray: Confusion matrix. + """ + if normalize not in ['true', 'pred', 'all', None]: + raise ValueError("normalize must be one of {'true', 'pred', " + "'all', None}") + + if isinstance(y_pred, list): + y_pred = np.array(y_pred) + if y_pred.dtype == np.int32: + y_pred = y_pred.astype(np.int64) + if not isinstance(y_pred, np.ndarray): + raise TypeError( + f'y_pred must be list or np.ndarray, but got {type(y_pred)}') + if not y_pred.dtype == np.int64: + raise TypeError( + f'y_pred dtype must be np.int64, but got {y_pred.dtype}') + + if isinstance(y_real, list): + y_real = np.array(y_real) + if y_real.dtype == np.int32: + y_real = y_real.astype(np.int64) + if not isinstance(y_real, np.ndarray): + raise TypeError( + f'y_real must be list or np.ndarray, but got {type(y_real)}') + if not y_real.dtype == np.int64: + raise TypeError( + f'y_real dtype must be np.int64, but got {y_real.dtype}') + + label_set = np.unique(np.concatenate((y_pred, y_real))) + num_labels = len(label_set) + max_label = label_set[-1] + label_map = np.zeros(max_label + 1, dtype=np.int64) + for i, label in enumerate(label_set): + label_map[label] = i + + y_pred_mapped = label_map[y_pred] + y_real_mapped = label_map[y_real] + + confusion_mat = np.bincount( + num_labels * y_real_mapped + y_pred_mapped, + minlength=num_labels**2).reshape(num_labels, num_labels) + + with np.errstate(all='ignore'): + if normalize == 'true': + confusion_mat = ( + confusion_mat / confusion_mat.sum(axis=1, keepdims=True)) + elif normalize == 'pred': + confusion_mat = ( + confusion_mat / confusion_mat.sum(axis=0, keepdims=True)) + elif normalize == 'all': + confusion_mat = (confusion_mat / confusion_mat.sum()) + confusion_mat = np.nan_to_num(confusion_mat) + + return confusion_mat + + +def mean_class_accuracy(scores, labels): + """Calculate mean class accuracy. + + Args: + scores (list[np.ndarray]): Prediction scores for each class. + labels (list[int]): Ground truth labels. + + Returns: + np.ndarray: Mean class accuracy. + """ + pred = np.argmax(scores, axis=1) + cf_mat = confusion_matrix(pred, labels).astype(float) + + cls_cnt = cf_mat.sum(axis=1) + cls_hit = np.diag(cf_mat) + + mean_class_acc = np.mean( + [hit / cnt if cnt else 0.0 for cnt, hit in zip(cls_cnt, cls_hit)]) + + return mean_class_acc + + +def top_k_classes(scores, labels, k=10, mode='accurate'): + """Calculate the most K accurate (inaccurate) classes. + + Given the prediction scores, ground truth label and top-k value, + compute the top K accurate (inaccurate) classes. + + Args: + scores (list[np.ndarray]): Prediction scores for each class. + labels (list[int] | np.ndarray): Ground truth labels. + k (int): Top-k values. Default: 10. + mode (str): Comparison mode for Top-k. Options are 'accurate' + and 'inaccurate'. Default: 'accurate'. + + Return: + list: List of sorted (from high accuracy to low accuracy for + 'accurate' mode, and from low accuracy to high accuracy for + inaccurate mode) top K classes in format of (label_id, + acc_ratio). + """ + assert mode in ['accurate', 'inaccurate'] + pred = np.argmax(scores, axis=1) + cf_mat = confusion_matrix(pred, labels).astype(float) + + cls_cnt = cf_mat.sum(axis=1) + cls_hit = np.diag(cf_mat) + hit_ratio = np.array( + [hit / cnt if cnt else 0.0 for cnt, hit in zip(cls_cnt, cls_hit)]) + + if mode == 'accurate': + max_index = np.argsort(hit_ratio)[-k:][::-1] + max_value = hit_ratio[max_index] + results = list(zip(max_index, max_value)) + else: + min_index = np.argsort(hit_ratio)[:k] + min_value = hit_ratio[min_index] + results = list(zip(min_index, min_value)) + return results + + +def top_k_accuracy(scores, labels, topk=(1, )): + """Calculate top k accuracy score. + + Args: + scores (list[np.ndarray]): Prediction scores for each class. + labels (list[int]): Ground truth labels. + topk (tuple[int]): K value for top_k_accuracy. Default: (1, ). + + Returns: + list[float]: Top k accuracy score for each k. + """ + res = [] + labels = np.array(labels)[:, np.newaxis] + for k in topk: + max_k_preds = np.argsort(scores, axis=1)[:, -k:][:, ::-1] + match_array = np.logical_or.reduce(max_k_preds == labels, axis=1) + topk_acc_score = match_array.sum() / match_array.shape[0] + res.append(topk_acc_score) + + return res + + +def mmit_mean_average_precision(scores, labels): + """Mean average precision for multi-label recognition. Used for reporting + MMIT style mAP on Multi-Moments in Times. The difference is that this + method calculates average-precision for each sample and averages them among + samples. + + Args: + scores (list[np.ndarray]): Prediction scores of different classes for + each sample. + labels (list[np.ndarray]): Ground truth many-hot vector for each + sample. + + Returns: + np.float: The MMIT style mean average precision. + """ + results = [] + for score, label in zip(scores, labels): + precision, recall, _ = binary_precision_recall_curve(score, label) + ap = -np.sum(np.diff(recall) * np.array(precision)[:-1]) + results.append(ap) + return np.mean(results) + + +def mean_average_precision(scores, labels): + """Mean average precision for multi-label recognition. + + Args: + scores (list[np.ndarray]): Prediction scores of different classes for + each sample. + labels (list[np.ndarray]): Ground truth many-hot vector for each + sample. + + Returns: + np.float: The mean average precision. + """ + results = [] + scores = np.stack(scores).T + labels = np.stack(labels).T + + for score, label in zip(scores, labels): + precision, recall, _ = binary_precision_recall_curve(score, label) + ap = -np.sum(np.diff(recall) * np.array(precision)[:-1]) + results.append(ap) + results = [x for x in results if not np.isnan(x)] + if results == []: + return np.nan + return np.mean(results) + + +def binary_precision_recall_curve(y_score, y_true): + """Calculate the binary precision recall curve at step thresholds. + + Args: + y_score (np.ndarray): Prediction scores for each class. + Shape should be (num_classes, ). + y_true (np.ndarray): Ground truth many-hot vector. + Shape should be (num_classes, ). + + Returns: + precision (np.ndarray): The precision of different thresholds. + recall (np.ndarray): The recall of different thresholds. + thresholds (np.ndarray): Different thresholds at which precision and + recall are tested. + """ + assert isinstance(y_score, np.ndarray) + assert isinstance(y_true, np.ndarray) + assert y_score.shape == y_true.shape + + # make y_true a boolean vector + y_true = (y_true == 1) + # sort scores and corresponding truth values + desc_score_indices = np.argsort(y_score, kind='mergesort')[::-1] + y_score = y_score[desc_score_indices] + y_true = y_true[desc_score_indices] + # There may be ties in values, therefore find the `distinct_value_inds` + distinct_value_inds = np.where(np.diff(y_score))[0] + threshold_inds = np.r_[distinct_value_inds, y_true.size - 1] + # accumulate the true positives with decreasing threshold + tps = np.cumsum(y_true)[threshold_inds] + fps = 1 + threshold_inds - tps + thresholds = y_score[threshold_inds] + + precision = tps / (tps + fps) + precision[np.isnan(precision)] = 0 + recall = tps / tps[-1] + # stop when full recall attained + # and reverse the outputs so recall is decreasing + last_ind = tps.searchsorted(tps[-1]) + sl = slice(last_ind, None, -1) + + return np.r_[precision[sl], 1], np.r_[recall[sl], 0], thresholds[sl] + + +def pairwise_temporal_iou(candidate_segments, + target_segments, + calculate_overlap_self=False): + """Compute intersection over union between segments. + + Args: + candidate_segments (np.ndarray): 1-dim/2-dim array in format + ``[init, end]/[m x 2:=[init, end]]``. + target_segments (np.ndarray): 2-dim array in format + ``[n x 2:=[init, end]]``. + calculate_overlap_self (bool): Whether to calculate overlap_self + (union / candidate_length) or not. Default: False. + + Returns: + t_iou (np.ndarray): 1-dim array [n] / + 2-dim array [n x m] with IoU ratio. + t_overlap_self (np.ndarray, optional): 1-dim array [n] / + 2-dim array [n x m] with overlap_self, returns when + calculate_overlap_self is True. + """ + candidate_segments_ndim = candidate_segments.ndim + if target_segments.ndim != 2 or candidate_segments_ndim not in [1, 2]: + raise ValueError('Dimension of arguments is incorrect') + + if candidate_segments_ndim == 1: + candidate_segments = candidate_segments[np.newaxis, :] + + n, m = target_segments.shape[0], candidate_segments.shape[0] + t_iou = np.empty((n, m), dtype=np.float32) + if calculate_overlap_self: + t_overlap_self = np.empty((n, m), dtype=np.float32) + + for i in range(m): + candidate_segment = candidate_segments[i, :] + tt1 = np.maximum(candidate_segment[0], target_segments[:, 0]) + tt2 = np.minimum(candidate_segment[1], target_segments[:, 1]) + # Intersection including Non-negative overlap score. + segments_intersection = (tt2 - tt1).clip(0) + # Segment union. + segments_union = ((target_segments[:, 1] - target_segments[:, 0]) + + (candidate_segment[1] - candidate_segment[0]) - + segments_intersection) + # Compute overlap as the ratio of the intersection + # over union of two segments. + t_iou[:, i] = (segments_intersection.astype(float) / segments_union) + if calculate_overlap_self: + candidate_length = candidate_segment[1] - candidate_segment[0] + t_overlap_self[:, i] = ( + segments_intersection.astype(float) / candidate_length) + + if candidate_segments_ndim == 1: + t_iou = np.squeeze(t_iou, axis=1) + if calculate_overlap_self: + if candidate_segments_ndim == 1: + t_overlap_self = np.squeeze(t_overlap_self, axis=1) + return t_iou, t_overlap_self + + return t_iou + + +def average_recall_at_avg_proposals(ground_truth, + proposals, + total_num_proposals, + max_avg_proposals=None, + temporal_iou_thresholds=np.linspace( + 0.5, 0.95, 10)): + """Computes the average recall given an average number (percentile) of + proposals per video. + + Args: + ground_truth (dict): Dict containing the ground truth instances. + proposals (dict): Dict containing the proposal instances. + total_num_proposals (int): Total number of proposals in the + proposal dict. + max_avg_proposals (int | None): Max number of proposals for one video. + Default: None. + temporal_iou_thresholds (np.ndarray): 1D array with temporal_iou + thresholds. Default: ``np.linspace(0.5, 0.95, 10)``. + + Returns: + tuple([np.ndarray, np.ndarray, np.ndarray, float]): + (recall, average_recall, proposals_per_video, auc) + In recall, ``recall[i,j]`` is recall at i-th temporal_iou threshold + at the j-th average number (percentile) of average number of + proposals per video. The average_recall is recall averaged + over a list of temporal_iou threshold (1D array). This is + equivalent to ``recall.mean(axis=0)``. The ``proposals_per_video`` + is the average number of proposals per video. The auc is the area + under ``AR@AN`` curve. + """ + + total_num_videos = len(ground_truth) + + if not max_avg_proposals: + max_avg_proposals = float(total_num_proposals) / total_num_videos + + ratio = (max_avg_proposals * float(total_num_videos) / total_num_proposals) + + # For each video, compute temporal_iou scores among the retrieved proposals + score_list = [] + total_num_retrieved_proposals = 0 + for video_id in ground_truth: + # Get proposals for this video. + proposals_video_id = proposals[video_id] + this_video_proposals = proposals_video_id[:, :2] + # Sort proposals by score. + sort_idx = proposals_video_id[:, 2].argsort()[::-1] + this_video_proposals = this_video_proposals[sort_idx, :].astype( + np.float32) + + # Get ground-truth instances associated to this video. + ground_truth_video_id = ground_truth[video_id] + this_video_ground_truth = ground_truth_video_id[:, :2].astype( + np.float32) + if this_video_proposals.shape[0] == 0: + n = this_video_ground_truth.shape[0] + score_list.append(np.zeros((n, 1))) + continue + + if this_video_proposals.ndim != 2: + this_video_proposals = np.expand_dims(this_video_proposals, axis=0) + if this_video_ground_truth.ndim != 2: + this_video_ground_truth = np.expand_dims( + this_video_ground_truth, axis=0) + + num_retrieved_proposals = np.minimum( + int(this_video_proposals.shape[0] * ratio), + this_video_proposals.shape[0]) + total_num_retrieved_proposals += num_retrieved_proposals + this_video_proposals = this_video_proposals[: + num_retrieved_proposals, :] + + # Compute temporal_iou scores. + t_iou = pairwise_temporal_iou(this_video_proposals, + this_video_ground_truth) + score_list.append(t_iou) + + # Given that the length of the videos is really varied, we + # compute the number of proposals in terms of a ratio of the total + # proposals retrieved, i.e. average recall at a percentage of proposals + # retrieved per video. + + # Computes average recall. + pcn_list = np.arange(1, 101) / 100.0 * ( + max_avg_proposals * float(total_num_videos) / + total_num_retrieved_proposals) + matches = np.empty((total_num_videos, pcn_list.shape[0])) + positives = np.empty(total_num_videos) + recall = np.empty((temporal_iou_thresholds.shape[0], pcn_list.shape[0])) + # Iterates over each temporal_iou threshold. + for ridx, temporal_iou in enumerate(temporal_iou_thresholds): + # Inspect positives retrieved per video at different + # number of proposals (percentage of the total retrieved). + for i, score in enumerate(score_list): + # Total positives per video. + positives[i] = score.shape[0] + # Find proposals that satisfies minimum temporal_iou threshold. + true_positives_temporal_iou = score >= temporal_iou + # Get number of proposals as a percentage of total retrieved. + pcn_proposals = np.minimum( + (score.shape[1] * pcn_list).astype(np.int), score.shape[1]) + + for j, num_retrieved_proposals in enumerate(pcn_proposals): + # Compute the number of matches + # for each percentage of the proposals + matches[i, j] = np.count_nonzero( + (true_positives_temporal_iou[:, :num_retrieved_proposals] + ).sum(axis=1)) + + # Computes recall given the set of matches per video. + recall[ridx, :] = matches.sum(axis=0) / positives.sum() + + # Recall is averaged. + avg_recall = recall.mean(axis=0) + + # Get the average number of proposals per video. + proposals_per_video = pcn_list * ( + float(total_num_retrieved_proposals) / total_num_videos) + # Get AUC + area_under_curve = np.trapz(avg_recall, proposals_per_video) + auc = 100. * float(area_under_curve) / proposals_per_video[-1] + return recall, avg_recall, proposals_per_video, auc + + +def get_weighted_score(score_list, coeff_list): + """Get weighted score with given scores and coefficients. + + Given n predictions by different classifier: [score_1, score_2, ..., + score_n] (score_list) and their coefficients: [coeff_1, coeff_2, ..., + coeff_n] (coeff_list), return weighted score: weighted_score = + score_1 * coeff_1 + score_2 * coeff_2 + ... + score_n * coeff_n + + Args: + score_list (list[list[np.ndarray]]): List of list of scores, with shape + n(number of predictions) X num_samples X num_classes + coeff_list (list[float]): List of coefficients, with shape n. + + Returns: + list[np.ndarray]: List of weighted scores. + """ + assert len(score_list) == len(coeff_list) + num_samples = len(score_list[0]) + for i in range(1, len(score_list)): + assert len(score_list[i]) == num_samples + + scores = np.array(score_list) # (num_coeff, num_samples, num_classes) + coeff = np.array(coeff_list) # (num_coeff, ) + weighted_scores = list(np.dot(scores.T, coeff).T) + return weighted_scores + + +def softmax(x, dim=1): + """Compute softmax values for each sets of scores in x.""" + e_x = np.exp(x - np.max(x, axis=dim, keepdims=True)) + return e_x / e_x.sum(axis=dim, keepdims=True) + + +def interpolated_precision_recall(precision, recall): + """Interpolated AP - VOCdevkit from VOC 2011. + + Args: + precision (np.ndarray): The precision of different thresholds. + recall (np.ndarray): The recall of different thresholds. + + Returns: + float: Average precision score. + """ + mprecision = np.hstack([[0], precision, [0]]) + mrecall = np.hstack([[0], recall, [1]]) + for i in range(len(mprecision) - 1)[::-1]: + mprecision[i] = max(mprecision[i], mprecision[i + 1]) + idx = np.where(mrecall[1::] != mrecall[0:-1])[0] + 1 + ap = np.sum((mrecall[idx] - mrecall[idx - 1]) * mprecision[idx]) + return ap + + +def average_precision_at_temporal_iou(ground_truth, + prediction, + temporal_iou_thresholds=(np.linspace( + 0.5, 0.95, 10))): + """Compute average precision (in detection task) between ground truth and + predicted data frames. If multiple predictions match the same predicted + segment, only the one with highest score is matched as true positive. This + code is greatly inspired by Pascal VOC devkit. + + Args: + ground_truth (dict): Dict containing the ground truth instances. + Key: 'video_id' + Value (np.ndarray): 1D array of 't-start' and 't-end'. + prediction (np.ndarray): 2D array containing the information of + proposal instances, including 'video_id', 'class_id', 't-start', + 't-end' and 'score'. + temporal_iou_thresholds (np.ndarray): 1D array with temporal_iou + thresholds. Default: ``np.linspace(0.5, 0.95, 10)``. + + Returns: + np.ndarray: 1D array of average precision score. + """ + ap = np.zeros(len(temporal_iou_thresholds), dtype=np.float32) + if len(prediction) < 1: + return ap + + num_gts = 0. + lock_gt = dict() + for key in ground_truth: + lock_gt[key] = np.ones( + (len(temporal_iou_thresholds), len(ground_truth[key]))) * -1 + num_gts += len(ground_truth[key]) + + # Sort predictions by decreasing score order. + prediction = np.array(prediction) + scores = prediction[:, 4].astype(float) + sort_idx = np.argsort(scores)[::-1] + prediction = prediction[sort_idx] + + # Initialize true positive and false positive vectors. + tp = np.zeros((len(temporal_iou_thresholds), len(prediction)), + dtype=np.int32) + fp = np.zeros((len(temporal_iou_thresholds), len(prediction)), + dtype=np.int32) + + # Assigning true positive to truly grount truth instances. + for idx, this_pred in enumerate(prediction): + + # Check if there is at least one ground truth in the video. + if this_pred[0] in ground_truth: + this_gt = np.array(ground_truth[this_pred[0]], dtype=float) + else: + fp[:, idx] = 1 + continue + + t_iou = pairwise_temporal_iou(this_pred[2:4].astype(float), this_gt) + # We would like to retrieve the predictions with highest t_iou score. + t_iou_sorted_idx = t_iou.argsort()[::-1] + for t_idx, t_iou_threshold in enumerate(temporal_iou_thresholds): + for jdx in t_iou_sorted_idx: + if t_iou[jdx] < t_iou_threshold: + fp[t_idx, idx] = 1 + break + if lock_gt[this_pred[0]][t_idx, jdx] >= 0: + continue + # Assign as true positive after the filters above. + tp[t_idx, idx] = 1 + lock_gt[this_pred[0]][t_idx, jdx] = idx + break + + if fp[t_idx, idx] == 0 and tp[t_idx, idx] == 0: + fp[t_idx, idx] = 1 + + tp_cumsum = np.cumsum(tp, axis=1).astype(np.float32) + fp_cumsum = np.cumsum(fp, axis=1).astype(np.float32) + recall_cumsum = tp_cumsum / num_gts + + precision_cumsum = tp_cumsum / (tp_cumsum + fp_cumsum) + + for t_idx in range(len(temporal_iou_thresholds)): + ap[t_idx] = interpolated_precision_recall(precision_cumsum[t_idx, :], + recall_cumsum[t_idx, :]) + + return ap diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/README.md b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/README.md new file mode 100644 index 00000000..7414d0fb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/README.md @@ -0,0 +1,2 @@ +The code under this folder is from the official [ActivityNet repo](https://github.com/activitynet/ActivityNet). +Some unused codes are removed to minimize the length of codes added. diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/__init__.py new file mode 100644 index 00000000..ef101fec --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/__init__.py @@ -0,0 +1 @@ +# Copyright (c) OpenMMLab. All rights reserved. diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/metrics.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/metrics.py new file mode 100644 index 00000000..4d566acc --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/metrics.py @@ -0,0 +1,142 @@ +# Copyright 2017 The TensorFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================= +"""Functions for computing metrics like precision, recall, CorLoc and etc.""" + +import numpy as np + + +def compute_precision_recall(scores, labels, num_gt): + """Compute precision and recall. + + Args: + scores: A float numpy array representing detection score + labels: A boolean numpy array representing true/false positive labels + num_gt: Number of ground truth instances + + Raises: + ValueError: if the input is not of the correct format + + Returns: + precision: Fraction of positive instances over detected ones. This + value is None if no ground truth labels are present. + recall: Fraction of detected positive instance over all positive + instances. This value is None if no ground truth labels are + present. + """ + if (not isinstance(labels, np.ndarray) or labels.dtype != np.bool + or len(labels.shape) != 1): + raise ValueError('labels must be single dimension bool numpy array') + + if not isinstance(scores, np.ndarray) or len(scores.shape) != 1: + raise ValueError('scores must be single dimension numpy array') + + if num_gt < np.sum(labels): + raise ValueError( + 'Number of true positives must be smaller than num_gt.') + + if len(scores) != len(labels): + raise ValueError('scores and labels must be of the same size.') + + if num_gt == 0: + return None, None + + sorted_indices = np.argsort(scores) + sorted_indices = sorted_indices[::-1] + labels = labels.astype(int) + true_positive_labels = labels[sorted_indices] + false_positive_labels = 1 - true_positive_labels + cum_true_positives = np.cumsum(true_positive_labels) + cum_false_positives = np.cumsum(false_positive_labels) + precision = cum_true_positives.astype(float) / ( + cum_true_positives + cum_false_positives) + recall = cum_true_positives.astype(float) / num_gt + return precision, recall + + +def compute_average_precision(precision, recall): + """Compute Average Precision according to the definition in VOCdevkit. + + Precision is modified to ensure that it does not decrease as recall + decrease. + + Args: + precision: A float [N, 1] numpy array of precisions + recall: A float [N, 1] numpy array of recalls + + Raises: + ValueError: if the input is not of the correct format + + Returns: + average_precison: The area under the precision recall curve. NaN if + precision and recall are None. + """ + if precision is None: + if recall is not None: + raise ValueError('If precision is None, recall must also be None') + return np.NAN + + if not isinstance(precision, np.ndarray) or not isinstance( + recall, np.ndarray): + raise ValueError('precision and recall must be numpy array') + if precision.dtype != np.float or recall.dtype != np.float: + raise ValueError('input must be float numpy array.') + if len(precision) != len(recall): + raise ValueError('precision and recall must be of the same size.') + if not precision.size: + return 0.0 + if np.amin(precision) < 0 or np.amax(precision) > 1: + raise ValueError('Precision must be in the range of [0, 1].') + if np.amin(recall) < 0 or np.amax(recall) > 1: + raise ValueError('recall must be in the range of [0, 1].') + if not all(recall[i] <= recall[i + 1] for i in range(len(recall) - 1)): + raise ValueError('recall must be a non-decreasing array') + + recall = np.concatenate([[0], recall, [1]]) + precision = np.concatenate([[0], precision, [0]]) + + # Preprocess precision to be a non-decreasing array + for i in range(len(precision) - 2, -1, -1): + precision[i] = np.maximum(precision[i], precision[i + 1]) + + indices = np.where(recall[1:] != recall[:-1])[0] + 1 + average_precision = np.sum( + (recall[indices] - recall[indices - 1]) * precision[indices]) + return average_precision + + +def compute_cor_loc(num_gt_imgs_per_class, + num_images_correctly_detected_per_class): + """Compute CorLoc according to the definition in the following paper. + + https://www.robots.ox.ac.uk/~vgg/rg/papers/deselaers-eccv10.pdf + + Returns nans if there are no ground truth images for a class. + + Args: + num_gt_imgs_per_class: 1D array, representing number of images + containing at least one object instance of a particular class + num_images_correctly_detected_per_class: 1D array, representing number + of images that are correctly detected at least one object instance + of a particular class + + Returns: + corloc_per_class: A float numpy array represents the corloc score of + each class + """ + # Divide by zero expected for classes with no gt examples. + with np.errstate(divide='ignore', invalid='ignore'): + return np.where( + num_gt_imgs_per_class == 0, np.nan, + num_images_correctly_detected_per_class / num_gt_imgs_per_class) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/np_box_list.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/np_box_list.py new file mode 100644 index 00000000..255bebe3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/np_box_list.py @@ -0,0 +1,139 @@ +# Copyright 2017 The TensorFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================= +"""Numpy BoxList classes and functions.""" + +import numpy as np + + +class BoxList: + """Box collection. + + BoxList represents a list of bounding boxes as numpy array, where each + bounding box is represented as a row of 4 numbers, + [y_min, x_min, y_max, x_max]. It is assumed that all bounding boxes within + a given list correspond to a single image. + + Optionally, users can add additional related fields (such as + objectness/classification scores). + """ + + def __init__(self, data): + """Constructs box collection. + + Args: + data: a numpy array of shape [N, 4] representing box coordinates + + Raises: + ValueError: if bbox data is not a numpy array + ValueError: if invalid dimensions for bbox data + """ + if not isinstance(data, np.ndarray): + raise ValueError('data must be a numpy array.') + if len(data.shape) != 2 or data.shape[1] != 4: + raise ValueError('Invalid dimensions for box data.') + if data.dtype != np.float32 and data.dtype != np.float64: + raise ValueError( + 'Invalid data type for box data: float is required.') + if not self._is_valid_boxes(data): + raise ValueError('Invalid box data. data must be a numpy array of ' + 'N*[y_min, x_min, y_max, x_max]') + self.data = {'boxes': data} + + def num_boxes(self): + """Return number of boxes held in collections.""" + return self.data['boxes'].shape[0] + + def get_extra_fields(self): + """Return all non-box fields.""" + return [k for k in self.data if k != 'boxes'] + + def has_field(self, field): + return field in self.data + + def add_field(self, field, field_data): + """Add data to a specified field. + + Args: + field: a string parameter used to specify a related field to be + accessed. + field_data: a numpy array of [N, ...] representing the data + associated with the field. + Raises: + ValueError: if the field is already exist or the dimension of the + field data does not matches the number of boxes. + """ + if self.has_field(field): + raise ValueError('Field ' + field + 'already exists') + if len(field_data.shape) < 1 or field_data.shape[0] != self.num_boxes( + ): + raise ValueError('Invalid dimensions for field data') + self.data[field] = field_data + + def get(self): + """Convenience function for accesssing box coordinates. + + Returns: + a numpy array of shape [N, 4] representing box corners + """ + return self.get_field('boxes') + + def get_field(self, field): + """Accesses data associated with the specified field in the box + collection. + + Args: + field: a string parameter used to specify a related field to be + accessed. + + Returns: + a numpy 1-d array representing data of an associated field + + Raises: + ValueError: if invalid field + """ + if not self.has_field(field): + raise ValueError(f'field {field} does not exist') + return self.data[field] + + def get_coordinates(self): + """Get corner coordinates of boxes. + + Returns: + a list of 4 1-d numpy arrays [y_min, x_min, y_max, x_max] + """ + box_coordinates = self.get() + y_min = box_coordinates[:, 0] + x_min = box_coordinates[:, 1] + y_max = box_coordinates[:, 2] + x_max = box_coordinates[:, 3] + return [y_min, x_min, y_max, x_max] + + @staticmethod + def _is_valid_boxes(data): + """Check whether data fulfills the format of N*[ymin, xmin, ymax, + xmin]. + + Args: + data: a numpy array of shape [N, 4] representing box coordinates + + Returns: + a boolean indicating whether all ymax of boxes are equal or greater + than ymin, and all xmax of boxes are equal or greater than xmin. + """ + if len(data) != 0: + for v in data: + if v[0] > v[2] or v[1] > v[3]: + return False + return True diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/np_box_ops.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/np_box_ops.py new file mode 100644 index 00000000..94e7d300 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/np_box_ops.py @@ -0,0 +1,98 @@ +# Copyright 2017 The TensorFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"""Operations for [N, 4] numpy arrays representing bounding boxes. + +Example box operations that are supported: + * Areas: compute bounding box areas + * IOU: pairwise intersection-over-union scores +""" + +import numpy as np + + +def area(boxes): + """Computes area of boxes. + + Args: + boxes: Numpy array with shape [N, 4] holding N boxes + + Returns: + a numpy array with shape [N*1] representing box areas + """ + return (boxes[:, 2] - boxes[:, 0]) * (boxes[:, 3] - boxes[:, 1]) + + +def intersection(boxes1, boxes2): + """Compute pairwise intersection areas between boxes. + + Args: + boxes1: a numpy array with shape [N, 4] holding N boxes + boxes2: a numpy array with shape [M, 4] holding M boxes + + Returns: + a numpy array with shape [N*M] representing pairwise intersection area + """ + [y_min1, x_min1, y_max1, x_max1] = np.split(boxes1, 4, axis=1) + [y_min2, x_min2, y_max2, x_max2] = np.split(boxes2, 4, axis=1) + + all_pairs_min_ymax = np.minimum(y_max1, np.transpose(y_max2)) + all_pairs_max_ymin = np.maximum(y_min1, np.transpose(y_min2)) + intersect_heights = np.maximum( + np.zeros(all_pairs_max_ymin.shape), + all_pairs_min_ymax - all_pairs_max_ymin) + all_pairs_min_xmax = np.minimum(x_max1, np.transpose(x_max2)) + all_pairs_max_xmin = np.maximum(x_min1, np.transpose(x_min2)) + intersect_widths = np.maximum( + np.zeros(all_pairs_max_xmin.shape), + all_pairs_min_xmax - all_pairs_max_xmin) + return intersect_heights * intersect_widths + + +def iou(boxes1, boxes2): + """Computes pairwise intersection-over-union between box collections. + + Args: + boxes1: a numpy array with shape [N, 4] holding N boxes. + boxes2: a numpy array with shape [M, 4] holding N boxes. + + Returns: + a numpy array with shape [N, M] representing pairwise iou scores. + """ + intersect = intersection(boxes1, boxes2) + area1 = area(boxes1) + area2 = area(boxes2) + union = ( + np.expand_dims(area1, axis=1) + np.expand_dims(area2, axis=0) - + intersect) + return intersect / union + + +def ioa(boxes1, boxes2): + """Computes pairwise intersection-over-area between box collections. + + Intersection-over-area (ioa) between two boxes box1 and box2 is defined as + their intersection area over box2's area. Note that ioa is not symmetric, + that is, IOA(box1, box2) != IOA(box2, box1). + + Args: + boxes1: a numpy array with shape [N, 4] holding N boxes. + boxes2: a numpy array with shape [M, 4] holding N boxes. + + Returns: + a numpy array with shape [N, M] representing pairwise ioa scores. + """ + intersect = intersection(boxes1, boxes2) + areas = np.expand_dims(area(boxes2), axis=0) + return intersect / areas diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/object_detection_evaluation.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/object_detection_evaluation.py new file mode 100644 index 00000000..18865214 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/object_detection_evaluation.py @@ -0,0 +1,574 @@ +# Copyright 2017 The TensorFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================= +"""object_detection_evaluation module. + +ObjectDetectionEvaluation is a class which manages ground truth information of +a object detection dataset, and computes frequently used detection metrics such +as Precision, Recall, CorLoc of the provided detection results. +It supports the following operations: +1) Add ground truth information of images sequentially. +2) Add detection result of images sequentially. +3) Evaluate detection metrics on already inserted detection results. +4) Write evaluation result into a pickle file for future processing or + visualization. + +Note: This module operates on numpy boxes and box lists. +""" + +import collections +import logging +import warnings +from abc import ABCMeta, abstractmethod +from collections import defaultdict + +import numpy as np + +from . import metrics, per_image_evaluation, standard_fields + + +class DetectionEvaluator: + """Interface for object detection evaluation classes. + + Example usage of the Evaluator: + ------------------------------ + evaluator = DetectionEvaluator(categories) + + # Detections and groundtruth for image 1. + evaluator.add_single_groundtruth_image_info(...) + evaluator.add_single_detected_image_info(...) + + # Detections and groundtruth for image 2. + evaluator.add_single_groundtruth_image_info(...) + evaluator.add_single_detected_image_info(...) + + metrics_dict = evaluator.evaluate() + """ + + __metaclass__ = ABCMeta + + def __init__(self, categories): + """Constructor. + + Args: + categories: A list of dicts, each of which has the following keys - + 'id': (required) an integer id uniquely identifying this + category. + 'name': (required) string representing category name e.g., + 'cat', 'dog'. + """ + self._categories = categories + + @abstractmethod + def add_single_ground_truth_image_info(self, image_id, groundtruth_dict): + """Adds groundtruth for a single image to be used for evaluation. + + Args: + image_id: A unique string/integer identifier for the image. + groundtruth_dict: A dictionary of groundtruth numpy arrays required + for evaluations. + """ + + @abstractmethod + def add_single_detected_image_info(self, image_id, detections_dict): + """Adds detections for a single image to be used for evaluation. + + Args: + image_id: A unique string/integer identifier for the image. + detections_dict: A dictionary of detection numpy arrays required + for evaluation. + """ + + @abstractmethod + def evaluate(self): + """Evaluates detections and returns a dictionary of metrics.""" + + @abstractmethod + def clear(self): + """Clears the state to prepare for a fresh evaluation.""" + + +class ObjectDetectionEvaluator(DetectionEvaluator): + """A class to evaluate detections.""" + + def __init__(self, + categories, + matching_iou_threshold=0.5, + evaluate_corlocs=False, + metric_prefix=None, + use_weighted_mean_ap=False, + evaluate_masks=False): + """Constructor. + + Args: + categories: A list of dicts, each of which has the following keys - + 'id': (required) an integer id uniquely identifying this + category. + 'name': (required) string representing category name e.g., + 'cat', 'dog'. + matching_iou_threshold: IOU threshold to use for matching + groundtruth boxes to detection boxes. + evaluate_corlocs: (optional) boolean which determines if corloc + scores are to be returned or not. + metric_prefix: (optional) string prefix for metric name; if None, + no prefix is used. + use_weighted_mean_ap: (optional) boolean which determines if the + mean average precision is computed directly from the scores and + tp_fp_labels of all classes. + evaluate_masks: If False, evaluation will be performed based on + boxes. If True, mask evaluation will be performed instead. + + Raises: + ValueError: If the category ids are not 1-indexed. + """ + super(ObjectDetectionEvaluator, self).__init__(categories) + self._num_classes = max([cat['id'] for cat in categories]) + if min(cat['id'] for cat in categories) < 1: + raise ValueError('Classes should be 1-indexed.') + self._matching_iou_threshold = matching_iou_threshold + self._use_weighted_mean_ap = use_weighted_mean_ap + self._label_id_offset = 1 + self._evaluate_masks = evaluate_masks + self._evaluation = ObjectDetectionEvaluation( + num_groundtruth_classes=self._num_classes, + matching_iou_threshold=self._matching_iou_threshold, + use_weighted_mean_ap=self._use_weighted_mean_ap, + label_id_offset=self._label_id_offset, + ) + self._image_ids = set([]) + self._evaluate_corlocs = evaluate_corlocs + self._metric_prefix = (metric_prefix + '_') if metric_prefix else '' + + def add_single_ground_truth_image_info(self, image_id, groundtruth_dict): + """Adds groundtruth for a single image to be used for evaluation. + + Args: + image_id: A unique string/integer identifier for the image. + groundtruth_dict: A dictionary containing - + standard_fields.InputDataFields.groundtruth_boxes: float32 + numpy array of shape [num_boxes, 4] containing `num_boxes` + groundtruth boxes of the format [ymin, xmin, ymax, xmax] in + absolute image coordinates. + standard_fields.InputDataFields.groundtruth_classes: integer + numpy array of shape [num_boxes] containing 1-indexed + groundtruth classes for the boxes. + standard_fields.InputDataFields.groundtruth_instance_masks: + Optional numpy array of shape [num_boxes, height, width] + with values in {0, 1}. + + Raises: + ValueError: On adding groundtruth for an image more than once. Will + also raise error if instance masks are not in groundtruth + dictionary. + """ + if image_id in self._image_ids: + raise ValueError( + 'Image with id {} already added.'.format(image_id)) + + groundtruth_classes = ( + groundtruth_dict[ + standard_fields.InputDataFields.groundtruth_classes] - + self._label_id_offset) + + groundtruth_masks = None + if self._evaluate_masks: + if (standard_fields.InputDataFields.groundtruth_instance_masks + not in groundtruth_dict): + raise ValueError( + 'Instance masks not in groundtruth dictionary.') + groundtruth_masks = groundtruth_dict[ + standard_fields.InputDataFields.groundtruth_instance_masks] + self._evaluation.add_single_ground_truth_image_info( + image_key=image_id, + groundtruth_boxes=groundtruth_dict[ + standard_fields.InputDataFields.groundtruth_boxes], + groundtruth_class_labels=groundtruth_classes, + groundtruth_masks=groundtruth_masks, + ) + self._image_ids.update([image_id]) + + def add_single_detected_image_info(self, image_id, detections_dict): + """Adds detections for a single image to be used for evaluation. + + Args: + image_id: A unique string/integer identifier for the image. + detections_dict: A dictionary containing - + standard_fields.DetectionResultFields.detection_boxes: float32 + numpy array of shape [num_boxes, 4] containing `num_boxes` + detection boxes of the format [ymin, xmin, ymax, xmax] in + absolute image coordinates. + standard_fields.DetectionResultFields.detection_scores: float32 + numpy array of shape [num_boxes] containing detection + scores for the boxes. + standard_fields.DetectionResultFields.detection_classes: + integer numpy array of shape [num_boxes] containing + 1-indexed detection classes for the boxes. + standard_fields.DetectionResultFields.detection_masks: uint8 + numpy array of shape [num_boxes, height, width] containing + `num_boxes` masks of values ranging between 0 and 1. + + Raises: + ValueError: If detection masks are not in detections dictionary. + """ + detection_classes = ( + detections_dict[ + standard_fields.DetectionResultFields.detection_classes] - + self._label_id_offset) + detection_masks = None + if self._evaluate_masks: + if (standard_fields.DetectionResultFields.detection_masks + not in detections_dict): + raise ValueError( + 'Detection masks not in detections dictionary.') + detection_masks = detections_dict[ + standard_fields.DetectionResultFields.detection_masks] + self._evaluation.add_single_detected_image_info( + image_key=image_id, + detected_boxes=detections_dict[ + standard_fields.DetectionResultFields.detection_boxes], + detected_scores=detections_dict[ + standard_fields.DetectionResultFields.detection_scores], + detected_class_labels=detection_classes, + detected_masks=detection_masks, + ) + + @staticmethod + def create_category_index(categories): + """Creates dictionary of COCO compatible categories keyed by category + id. + + Args: + categories: a list of dicts, each of which has the following keys: + 'id': (required) an integer id uniquely identifying this + category. + 'name': (required) string representing category name + e.g., 'cat', 'dog', 'pizza'. + + Returns: + category_index: a dict containing the same entries as categories, + but keyed by the 'id' field of each category. + """ + category_index = {} + for cat in categories: + category_index[cat['id']] = cat + return category_index + + def evaluate(self): + """Compute evaluation result. + + Returns: + A dictionary of metrics with the following fields - + + 1. summary_metrics: + 'Precision/mAP@IOU': mean average + precision at the specified IOU threshold + + 2. per_category_ap: category specific results with keys of the form + 'PerformanceByCategory/mAP@IOU/category' + """ + (per_class_ap, mean_ap, _, _, per_class_corloc, + mean_corloc) = self._evaluation.evaluate() + + metric = f'mAP@{self._matching_iou_threshold}IOU' + pascal_metrics = {self._metric_prefix + metric: mean_ap} + if self._evaluate_corlocs: + pascal_metrics[self._metric_prefix + + 'Precision/meanCorLoc@{}IOU'.format( + self._matching_iou_threshold)] = mean_corloc + category_index = self.create_category_index(self._categories) + for idx in range(per_class_ap.size): + if idx + self._label_id_offset in category_index: + display_name = ( + self._metric_prefix + + 'PerformanceByCategory/AP@{}IOU/{}'.format( + self._matching_iou_threshold, + category_index[idx + self._label_id_offset]['name'], + )) + pascal_metrics[display_name] = per_class_ap[idx] + + # Optionally add CorLoc metrics.classes + if self._evaluate_corlocs: + display_name = ( + self._metric_prefix + + 'PerformanceByCategory/CorLoc@{}IOU/{}'.format( + self._matching_iou_threshold, + category_index[idx + + self._label_id_offset]['name'], + )) + pascal_metrics[display_name] = per_class_corloc[idx] + + return pascal_metrics + + def clear(self): + """Clears the state to prepare for a fresh evaluation.""" + self._evaluation = ObjectDetectionEvaluation( + num_groundtruth_classes=self._num_classes, + matching_iou_threshold=self._matching_iou_threshold, + use_weighted_mean_ap=self._use_weighted_mean_ap, + label_id_offset=self._label_id_offset, + ) + self._image_ids.clear() + + +class PascalDetectionEvaluator(ObjectDetectionEvaluator): + """A class to evaluate detections using PASCAL metrics.""" + + def __init__(self, categories, matching_iou_threshold=0.5): + super(PascalDetectionEvaluator, self).__init__( + categories, + matching_iou_threshold=matching_iou_threshold, + evaluate_corlocs=False, + use_weighted_mean_ap=False, + ) + + +ObjectDetectionEvalMetrics = collections.namedtuple( + 'ObjectDetectionEvalMetrics', + [ + 'average_precisions', + 'mean_ap', + 'precisions', + 'recalls', + 'corlocs', + 'mean_corloc', + ], +) + + +class ObjectDetectionEvaluation: + """Internal implementation of Pascal object detection metrics.""" + + def __init__(self, + num_groundtruth_classes, + matching_iou_threshold=0.5, + nms_iou_threshold=1.0, + nms_max_output_boxes=10000, + use_weighted_mean_ap=False, + label_id_offset=0): + if num_groundtruth_classes < 1: + raise ValueError( + 'Need at least 1 groundtruth class for evaluation.') + + self.per_image_eval = per_image_evaluation.PerImageEvaluation( + num_groundtruth_classes=num_groundtruth_classes, + matching_iou_threshold=matching_iou_threshold, + ) + self.num_class = num_groundtruth_classes + self.use_weighted_mean_ap = use_weighted_mean_ap + self.label_id_offset = label_id_offset + + self.groundtruth_boxes = {} + self.groundtruth_class_labels = {} + self.groundtruth_masks = {} + self.num_gt_instances_per_class = np.zeros(self.num_class, dtype=int) + self.num_gt_imgs_per_class = np.zeros(self.num_class, dtype=int) + + self._initialize_detections() + + def _initialize_detections(self): + self.detection_keys = set() + self.scores_per_class = [[] for _ in range(self.num_class)] + self.tp_fp_labels_per_class = [[] for _ in range(self.num_class)] + self.num_images_correctly_detected_per_class = np.zeros(self.num_class) + self.average_precision_per_class = np.empty( + self.num_class, dtype=float) + self.average_precision_per_class.fill(np.nan) + self.precisions_per_class = [] + self.recalls_per_class = [] + self.corloc_per_class = np.ones(self.num_class, dtype=float) + + def clear_detections(self): + self._initialize_detections() + + def add_single_ground_truth_image_info(self, + image_key, + groundtruth_boxes, + groundtruth_class_labels, + groundtruth_masks=None): + """Adds groundtruth for a single image to be used for evaluation. + + Args: + image_key: A unique string/integer identifier for the image. + groundtruth_boxes: float32 numpy array of shape [num_boxes, 4] + containing `num_boxes` groundtruth boxes of the format + [ymin, xmin, ymax, xmax] in absolute image coordinates. + groundtruth_class_labels: integer numpy array of shape [num_boxes] + containing 0-indexed groundtruth classes for the boxes. + groundtruth_masks: uint8 numpy array of shape + [num_boxes, height, width] containing `num_boxes` groundtruth + masks. The mask values range from 0 to 1. + """ + if image_key in self.groundtruth_boxes: + warnings.warn(('image %s has already been added to the ground ' + 'truth database.'), image_key) + return + + self.groundtruth_boxes[image_key] = groundtruth_boxes + self.groundtruth_class_labels[image_key] = groundtruth_class_labels + self.groundtruth_masks[image_key] = groundtruth_masks + + self._update_ground_truth_statistics(groundtruth_class_labels) + + def add_single_detected_image_info(self, + image_key, + detected_boxes, + detected_scores, + detected_class_labels, + detected_masks=None): + """Adds detections for a single image to be used for evaluation. + + Args: + image_key: A unique string/integer identifier for the image. + detected_boxes: float32 numpy array of shape [num_boxes, 4] + containing `num_boxes` detection boxes of the format + [ymin, xmin, ymax, xmax] in absolute image coordinates. + detected_scores: float32 numpy array of shape [num_boxes] + containing detection scores for the boxes. + detected_class_labels: integer numpy array of shape [num_boxes] + containing 0-indexed detection classes for the boxes. + detected_masks: np.uint8 numpy array of shape + [num_boxes, height, width] containing `num_boxes` detection + masks with values ranging between 0 and 1. + + Raises: + ValueError: if the number of boxes, scores and class labels differ + in length. + """ + if len(detected_boxes) != len(detected_scores) or len( + detected_boxes) != len(detected_class_labels): + raise ValueError( + 'detected_boxes, detected_scores and ' + 'detected_class_labels should all have same lengths. Got' + '[%d, %d, %d]' % len(detected_boxes), + len(detected_scores), + len(detected_class_labels), + ) + + if image_key in self.detection_keys: + warnings.warn(('image %s has already been added to the ground ' + 'truth database.'), image_key) + return + + self.detection_keys.add(image_key) + if image_key in self.groundtruth_boxes: + groundtruth_boxes = self.groundtruth_boxes[image_key] + groundtruth_class_labels = self.groundtruth_class_labels[image_key] + # Masks are popped instead of look up. The reason is that we do not + # want to keep all masks in memory which can cause memory overflow. + groundtruth_masks = self.groundtruth_masks.pop(image_key) + else: + groundtruth_boxes = np.empty(shape=[0, 4], dtype=float) + groundtruth_class_labels = np.array([], dtype=int) + if detected_masks is None: + groundtruth_masks = None + else: + groundtruth_masks = np.empty(shape=[0, 1, 1], dtype=float) + ( + scores, + tp_fp_labels, + ) = self.per_image_eval.compute_object_detection_metrics( + detected_boxes=detected_boxes, + detected_scores=detected_scores, + detected_class_labels=detected_class_labels, + groundtruth_boxes=groundtruth_boxes, + groundtruth_class_labels=groundtruth_class_labels, + detected_masks=detected_masks, + groundtruth_masks=groundtruth_masks, + ) + + for i in range(self.num_class): + if scores[i].shape[0] > 0: + self.scores_per_class[i].append(scores[i]) + self.tp_fp_labels_per_class[i].append(tp_fp_labels[i]) + + def _update_ground_truth_statistics(self, groundtruth_class_labels): + """Update grouth truth statitistics. + + Args: + groundtruth_class_labels: An integer numpy array of length M, + representing M class labels of object instances in ground truth + """ + count = defaultdict(lambda: 0) + for label in groundtruth_class_labels: + count[label] += 1 + for k in count: + self.num_gt_instances_per_class[k] += count[k] + self.num_gt_imgs_per_class[k] += 1 + + def evaluate(self): + """Compute evaluation result. + + Returns: + A named tuple with the following fields - + average_precision: float numpy array of average precision for + each class. + mean_ap: mean average precision of all classes, float scalar + precisions: List of precisions, each precision is a float numpy + array + recalls: List of recalls, each recall is a float numpy array + corloc: numpy float array + mean_corloc: Mean CorLoc score for each class, float scalar + """ + if (self.num_gt_instances_per_class == 0).any(): + logging.info( + 'The following classes have no ground truth examples: %s', + np.squeeze(np.argwhere(self.num_gt_instances_per_class == 0)) + + self.label_id_offset) + + if self.use_weighted_mean_ap: + all_scores = np.array([], dtype=float) + all_tp_fp_labels = np.array([], dtype=bool) + + for class_index in range(self.num_class): + if self.num_gt_instances_per_class[class_index] == 0: + continue + if not self.scores_per_class[class_index]: + scores = np.array([], dtype=float) + tp_fp_labels = np.array([], dtype=bool) + else: + scores = np.concatenate(self.scores_per_class[class_index]) + tp_fp_labels = np.concatenate( + self.tp_fp_labels_per_class[class_index]) + if self.use_weighted_mean_ap: + all_scores = np.append(all_scores, scores) + all_tp_fp_labels = np.append(all_tp_fp_labels, tp_fp_labels) + precision, recall = metrics.compute_precision_recall( + scores, tp_fp_labels, + self.num_gt_instances_per_class[class_index]) + self.precisions_per_class.append(precision) + self.recalls_per_class.append(recall) + average_precision = metrics.compute_average_precision( + precision, recall) + self.average_precision_per_class[class_index] = average_precision + + self.corloc_per_class = metrics.compute_cor_loc( + self.num_gt_imgs_per_class, + self.num_images_correctly_detected_per_class) + + if self.use_weighted_mean_ap: + num_gt_instances = np.sum(self.num_gt_instances_per_class) + precision, recall = metrics.compute_precision_recall( + all_scores, all_tp_fp_labels, num_gt_instances) + mean_ap = metrics.compute_average_precision(precision, recall) + else: + mean_ap = np.nanmean(self.average_precision_per_class) + mean_corloc = np.nanmean(self.corloc_per_class) + return ObjectDetectionEvalMetrics( + self.average_precision_per_class, + mean_ap, + self.precisions_per_class, + self.recalls_per_class, + self.corloc_per_class, + mean_corloc, + ) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/per_image_evaluation.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/per_image_evaluation.py new file mode 100644 index 00000000..9a6e0d9e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/per_image_evaluation.py @@ -0,0 +1,358 @@ +# Copyright 2017 The TensorFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================= +"""Evaluate Object Detection result on a single image. + +Annotate each detected result as true positives or false positive according to +a predefined IOU ratio. Non Maximum Suppression is used by default. Multi class +detection is supported by default. Based on the settings, per image evaluation +is either performed on boxes or on object masks. +""" + +import numpy as np + +from . import np_box_list, np_box_ops + + +class PerImageEvaluation: + """Evaluate detection result of a single image.""" + + def __init__(self, num_groundtruth_classes, matching_iou_threshold=0.5): + """Initialized PerImageEvaluation by evaluation parameters. + + Args: + num_groundtruth_classes: Number of ground truth object classes + matching_iou_threshold: A ratio of area intersection to union, + which is the threshold to consider whether a detection is true + positive or not + """ + self.matching_iou_threshold = matching_iou_threshold + self.num_groundtruth_classes = num_groundtruth_classes + + def compute_object_detection_metrics(self, + detected_boxes, + detected_scores, + detected_class_labels, + groundtruth_boxes, + groundtruth_class_labels, + detected_masks=None, + groundtruth_masks=None): + """Evaluates detections as being tp, fp or ignored from a single image. + + The evaluation is done in two stages: + 1. All detections are matched to non group-of boxes. + + Args: + detected_boxes: A float numpy array of shape [N, 4], representing N + regions of detected object regions. + Each row is of the format [y_min, x_min, y_max, x_max] + detected_scores: A float numpy array of shape [N, 1], representing + the confidence scores of the detected N object instances. + detected_class_labels: A integer numpy array of shape [N, 1], + repreneting the class labels of the detected N object + instances. + groundtruth_boxes: A float numpy array of shape [M, 4], + representing M regions of object instances in ground truth + groundtruth_class_labels: An integer numpy array of shape [M, 1], + representing M class labels of object instances in ground truth + detected_masks: (optional) A uint8 numpy array of shape + [N, height, width]. If not None, the metrics will be computed + based on masks. + groundtruth_masks: (optional) A uint8 numpy array of shape + [M, height, width]. + + Returns: + scores: A list of C float numpy arrays. Each numpy array is of + shape [K, 1], representing K scores detected with object class + label c + tp_fp_labels: A list of C boolean numpy arrays. Each numpy array + is of shape [K, 1], representing K True/False positive label of + object instances detected with class label c + """ + ( + detected_boxes, + detected_scores, + detected_class_labels, + detected_masks, + ) = self._remove_invalid_boxes( + detected_boxes, + detected_scores, + detected_class_labels, + detected_masks, + ) + scores, tp_fp_labels = self._compute_tp_fp( + detected_boxes=detected_boxes, + detected_scores=detected_scores, + detected_class_labels=detected_class_labels, + groundtruth_boxes=groundtruth_boxes, + groundtruth_class_labels=groundtruth_class_labels, + detected_masks=detected_masks, + groundtruth_masks=groundtruth_masks, + ) + + return scores, tp_fp_labels + + def _compute_tp_fp(self, + detected_boxes, + detected_scores, + detected_class_labels, + groundtruth_boxes, + groundtruth_class_labels, + detected_masks=None, + groundtruth_masks=None): + """Labels true/false positives of detections of an image across all + classes. + + Args: + detected_boxes: A float numpy array of shape [N, 4], representing N + regions of detected object regions. + Each row is of the format [y_min, x_min, y_max, x_max] + detected_scores: A float numpy array of shape [N, 1], representing + the confidence scores of the detected N object instances. + detected_class_labels: A integer numpy array of shape [N, 1], + repreneting the class labels of the detected N object + instances. + groundtruth_boxes: A float numpy array of shape [M, 4], + representing M regions of object instances in ground truth + groundtruth_class_labels: An integer numpy array of shape [M, 1], + representing M class labels of object instances in ground truth + detected_masks: (optional) A np.uint8 numpy array of shape + [N, height, width]. If not None, the scores will be computed + based on masks. + groundtruth_masks: (optional) A np.uint8 numpy array of shape + [M, height, width]. + + Returns: + result_scores: A list of float numpy arrays. Each numpy array is of + shape [K, 1], representing K scores detected with object class + label c + result_tp_fp_labels: A list of boolean numpy array. Each numpy + array is of shape [K, 1], representing K True/False positive + label of object instances detected with class label c + + Raises: + ValueError: If detected masks is not None but groundtruth masks are + None, or the other way around. + """ + if detected_masks is not None and groundtruth_masks is None: + raise ValueError( + 'Detected masks is available but groundtruth masks is not.') + if detected_masks is None and groundtruth_masks is not None: + raise ValueError( + 'Groundtruth masks is available but detected masks is not.') + + result_scores = [] + result_tp_fp_labels = [] + for i in range(self.num_groundtruth_classes): + (gt_boxes_at_ith_class, gt_masks_at_ith_class, + detected_boxes_at_ith_class, detected_scores_at_ith_class, + detected_masks_at_ith_class) = self._get_ith_class_arrays( + detected_boxes, detected_scores, detected_masks, + detected_class_labels, groundtruth_boxes, groundtruth_masks, + groundtruth_class_labels, i) + scores, tp_fp_labels = self._compute_tp_fp_for_single_class( + detected_boxes=detected_boxes_at_ith_class, + detected_scores=detected_scores_at_ith_class, + groundtruth_boxes=gt_boxes_at_ith_class, + detected_masks=detected_masks_at_ith_class, + groundtruth_masks=gt_masks_at_ith_class, + ) + result_scores.append(scores) + result_tp_fp_labels.append(tp_fp_labels) + return result_scores, result_tp_fp_labels + + @staticmethod + def _get_overlaps_and_scores_box_mode(detected_boxes, detected_scores, + groundtruth_boxes): + """Computes overlaps and scores between detected and groudntruth boxes. + + Args: + detected_boxes: A numpy array of shape [N, 4] representing detected + box coordinates + detected_scores: A 1-d numpy array of length N representing + classification score + groundtruth_boxes: A numpy array of shape [M, 4] representing + ground truth box coordinates + + Returns: + iou: A float numpy array of size [num_detected_boxes, + num_gt_boxes]. If gt_non_group_of_boxlist.num_boxes() == 0 it + will be None. + ioa: A float numpy array of size [num_detected_boxes, + num_gt_boxes]. If gt_group_of_boxlist.num_boxes() == 0 it will + be None. + scores: The score of the detected boxlist. + num_boxes: Number of non-maximum suppressed detected boxes. + """ + detected_boxlist = np_box_list.BoxList(detected_boxes) + detected_boxlist.add_field('scores', detected_scores) + gt_non_group_of_boxlist = np_box_list.BoxList(groundtruth_boxes) + + iou = np_box_ops.iou(detected_boxlist.get(), + gt_non_group_of_boxlist.get()) + scores = detected_boxlist.get_field('scores') + num_boxes = detected_boxlist.num_boxes() + return iou, None, scores, num_boxes + + def _compute_tp_fp_for_single_class(self, + detected_boxes, + detected_scores, + groundtruth_boxes, + detected_masks=None, + groundtruth_masks=None): + """Labels boxes detected with the same class from the same image as + tp/fp. + + Args: + detected_boxes: A numpy array of shape [N, 4] representing detected + box coordinates + detected_scores: A 1-d numpy array of length N representing + classification score + groundtruth_boxes: A numpy array of shape [M, 4] representing + groundtruth box coordinates + detected_masks: (optional) A uint8 numpy array of shape + [N, height, width]. If not None, the scores will be computed + based on masks. + groundtruth_masks: (optional) A uint8 numpy array of shape + [M, height, width]. + + Returns: + Two arrays of the same size, containing all boxes that were + evaluated as being true positives or false positives. + + scores: A numpy array representing the detection scores. + tp_fp_labels: a boolean numpy array indicating whether a detection + is a true positive. + """ + if detected_boxes.size == 0: + return np.array([], dtype=float), np.array([], dtype=bool) + + (iou, _, scores, + num_detected_boxes) = self._get_overlaps_and_scores_box_mode( + detected_boxes=detected_boxes, + detected_scores=detected_scores, + groundtruth_boxes=groundtruth_boxes) + + if groundtruth_boxes.size == 0: + return scores, np.zeros(num_detected_boxes, dtype=bool) + + tp_fp_labels = np.zeros(num_detected_boxes, dtype=bool) + + # The evaluation is done in two stages: + # 1. All detections are matched to non group-of boxes. + # 2. Detections that are determined as false positives are matched + # against group-of boxes and ignored if matched. + + # Tp-fp evaluation for non-group of boxes (if any). + if iou.shape[1] > 0: + max_overlap_gt_ids = np.argmax(iou, axis=1) + is_gt_box_detected = np.zeros(iou.shape[1], dtype=bool) + for i in range(num_detected_boxes): + gt_id = max_overlap_gt_ids[i] + if iou[i, gt_id] >= self.matching_iou_threshold: + if not is_gt_box_detected[gt_id]: + tp_fp_labels[i] = True + is_gt_box_detected[gt_id] = True + + return scores, tp_fp_labels + + @staticmethod + def _get_ith_class_arrays(detected_boxes, detected_scores, detected_masks, + detected_class_labels, groundtruth_boxes, + groundtruth_masks, groundtruth_class_labels, + class_index): + """Returns numpy arrays belonging to class with index `class_index`. + + Args: + detected_boxes: A numpy array containing detected boxes. + detected_scores: A numpy array containing detected scores. + detected_masks: A numpy array containing detected masks. + detected_class_labels: A numpy array containing detected class + labels. + groundtruth_boxes: A numpy array containing groundtruth boxes. + groundtruth_masks: A numpy array containing groundtruth masks. + groundtruth_class_labels: A numpy array containing groundtruth + class labels. + class_index: An integer index. + + Returns: + gt_boxes_at_ith_class: A numpy array containing groundtruth boxes + labeled as ith class. + gt_masks_at_ith_class: A numpy array containing groundtruth masks + labeled as ith class. + detected_boxes_at_ith_class: A numpy array containing detected + boxes corresponding to the ith class. + detected_scores_at_ith_class: A numpy array containing detected + scores corresponding to the ith class. + detected_masks_at_ith_class: A numpy array containing detected + masks corresponding to the ith class. + """ + selected_groundtruth = groundtruth_class_labels == class_index + gt_boxes_at_ith_class = groundtruth_boxes[selected_groundtruth] + if groundtruth_masks is not None: + gt_masks_at_ith_class = groundtruth_masks[selected_groundtruth] + else: + gt_masks_at_ith_class = None + selected_detections = detected_class_labels == class_index + detected_boxes_at_ith_class = detected_boxes[selected_detections] + detected_scores_at_ith_class = detected_scores[selected_detections] + if detected_masks is not None: + detected_masks_at_ith_class = detected_masks[selected_detections] + else: + detected_masks_at_ith_class = None + return (gt_boxes_at_ith_class, gt_masks_at_ith_class, + detected_boxes_at_ith_class, detected_scores_at_ith_class, + detected_masks_at_ith_class) + + @staticmethod + def _remove_invalid_boxes(detected_boxes, + detected_scores, + detected_class_labels, + detected_masks=None): + """Removes entries with invalid boxes. + + A box is invalid if either its xmax is smaller than its xmin, or its + ymax is smaller than its ymin. + + Args: + detected_boxes: A float numpy array of size [num_boxes, 4] + containing box coordinates in [ymin, xmin, ymax, xmax] format. + detected_scores: A float numpy array of size [num_boxes]. + detected_class_labels: A int32 numpy array of size [num_boxes]. + detected_masks: A uint8 numpy array of size + [num_boxes, height, width]. + + Returns: + valid_detected_boxes: A float numpy array of size + [num_valid_boxes, 4] containing box coordinates in + [ymin, xmin, ymax, xmax] format. + valid_detected_scores: A float numpy array of size + [num_valid_boxes]. + valid_detected_class_labels: A int32 numpy array of size + [num_valid_boxes]. + valid_detected_masks: A uint8 numpy array of size + [num_valid_boxes, height, width]. + """ + valid_indices = np.logical_and( + detected_boxes[:, 0] < detected_boxes[:, 2], + detected_boxes[:, 1] < detected_boxes[:, 3]) + detected_boxes = detected_boxes[valid_indices] + detected_scores = detected_scores[valid_indices] + detected_class_labels = detected_class_labels[valid_indices] + if detected_masks is not None: + detected_masks = detected_masks[valid_indices] + return [ + detected_boxes, detected_scores, detected_class_labels, + detected_masks + ] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/standard_fields.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/standard_fields.py new file mode 100644 index 00000000..8edf46d0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_evaluation/standard_fields.py @@ -0,0 +1,115 @@ +# Copyright 2017 The TensorFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================= +"""Contains classes specifying naming conventions used for object detection. + +Specifies: + InputDataFields: standard fields used by reader/preprocessor/batcher. + DetectionResultFields: standard fields returned by object detector. +""" + + +class InputDataFields: + """Names for the input tensors. + + Holds the standard data field names to use for identifying input tensors. + This should be used by the decoder to identify keys for the returned + tensor_dict containing input tensors. And it should be used by the model to + identify the tensors it needs. + + Attributes: + image: image. + original_image: image in the original input size. + key: unique key corresponding to image. + source_id: source of the original image. + filename: original filename of the dataset (without common path). + groundtruth_image_classes: image-level class labels. + groundtruth_boxes: coordinates of the ground truth boxes in the image. + groundtruth_classes: box-level class labels. + groundtruth_label_types: box-level label types (e.g. explicit + negative). + groundtruth_is_crowd: [DEPRECATED, use groundtruth_group_of instead] + is the groundtruth a single object or a crowd. + groundtruth_area: area of a groundtruth segment. + groundtruth_difficult: is a `difficult` object + groundtruth_group_of: is a `group_of` objects, e.g. multiple objects of + the same class, forming a connected group, where instances are + heavily occluding each other. + proposal_boxes: coordinates of object proposal boxes. + proposal_objectness: objectness score of each proposal. + groundtruth_instance_masks: ground truth instance masks. + groundtruth_instance_boundaries: ground truth instance boundaries. + groundtruth_instance_classes: instance mask-level class labels. + groundtruth_keypoints: ground truth keypoints. + groundtruth_keypoint_visibilities: ground truth keypoint visibilities. + groundtruth_label_scores: groundtruth label scores. + groundtruth_weights: groundtruth weight factor for bounding boxes. + num_groundtruth_boxes: number of groundtruth boxes. + true_image_shapes: true shapes of images in the resized images, as + resized images can be padded with zeros. + """ + + image = 'image' + original_image = 'original_image' + key = 'key' + source_id = 'source_id' + filename = 'filename' + groundtruth_image_classes = 'groundtruth_image_classes' + groundtruth_boxes = 'groundtruth_boxes' + groundtruth_classes = 'groundtruth_classes' + groundtruth_label_types = 'groundtruth_label_types' + groundtruth_is_crowd = 'groundtruth_is_crowd' + groundtruth_area = 'groundtruth_area' + groundtruth_difficult = 'groundtruth_difficult' + groundtruth_group_of = 'groundtruth_group_of' + proposal_boxes = 'proposal_boxes' + proposal_objectness = 'proposal_objectness' + groundtruth_instance_masks = 'groundtruth_instance_masks' + groundtruth_instance_boundaries = 'groundtruth_instance_boundaries' + groundtruth_instance_classes = 'groundtruth_instance_classes' + groundtruth_keypoints = 'groundtruth_keypoints' + groundtruth_keypoint_visibilities = 'groundtruth_keypoint_visibilities' + groundtruth_label_scores = 'groundtruth_label_scores' + groundtruth_weights = 'groundtruth_weights' + num_groundtruth_boxes = 'num_groundtruth_boxes' + true_image_shape = 'true_image_shape' + + +class DetectionResultFields: + """Naming conventions for storing the output of the detector. + + Attributes: + source_id: source of the original image. + key: unique key corresponding to image. + detection_boxes: coordinates of the detection boxes in the image. + detection_scores: detection scores for the detection boxes in the + image. + detection_classes: detection-level class labels. + detection_masks: contains a segmentation mask for each detection box. + detection_boundaries: contains an object boundary for each detection + box. + detection_keypoints: contains detection keypoints for each detection + box. + num_detections: number of detections in the batch. + """ + + source_id = 'source_id' + key = 'key' + detection_boxes = 'detection_boxes' + detection_scores = 'detection_scores' + detection_classes = 'detection_classes' + detection_masks = 'detection_masks' + detection_boundaries = 'detection_boundaries' + detection_keypoints = 'detection_keypoints' + num_detections = 'num_detections' diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_utils.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_utils.py new file mode 100644 index 00000000..ab11669b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/ava_utils.py @@ -0,0 +1,240 @@ +# Copyright (c) OpenMMLab. All rights reserved. +# This piece of code is directly adapted from ActivityNet official repo +# https://github.com/activitynet/ActivityNet/blob/master/ +# Evaluation/get_ava_performance.py. Some unused codes are removed. +import csv +import logging +import time +from collections import defaultdict + +import numpy as np + +from .ava_evaluation import object_detection_evaluation as det_eval +from .ava_evaluation import standard_fields + + +def det2csv(dataset, results, custom_classes): + csv_results = [] + for idx in range(len(dataset)): + video_id = dataset.video_infos[idx]['video_id'] + timestamp = dataset.video_infos[idx]['timestamp'] + result = results[idx] + for label, _ in enumerate(result): + for bbox in result[label]: + bbox_ = tuple(bbox.tolist()) + if custom_classes is not None: + actual_label = custom_classes[label + 1] + else: + actual_label = label + 1 + csv_results.append(( + video_id, + timestamp, + ) + bbox_[:4] + (actual_label, ) + bbox_[4:]) + return csv_results + + +# results is organized by class +def results2csv(dataset, results, out_file, custom_classes=None): + if isinstance(results[0], list): + csv_results = det2csv(dataset, results, custom_classes) + + # save space for float + def to_str(item): + if isinstance(item, float): + return f'{item:.3f}' + return str(item) + + with open(out_file, 'w') as f: + for csv_result in csv_results: + f.write(','.join(map(to_str, csv_result))) + f.write('\n') + + +def print_time(message, start): + print('==> %g seconds to %s' % (time.time() - start, message), flush=True) + + +def make_image_key(video_id, timestamp): + """Returns a unique identifier for a video id & timestamp.""" + return f'{video_id},{int(timestamp):04d}' + + +def read_csv(csv_file, class_whitelist=None): + """Loads boxes and class labels from a CSV file in the AVA format. + + CSV file format described at https://research.google.com/ava/download.html. + + Args: + csv_file: A file object. + class_whitelist: If provided, boxes corresponding to (integer) class + labels not in this set are skipped. + + Returns: + boxes: A dictionary mapping each unique image key (string) to a list of + boxes, given as coordinates [y1, x1, y2, x2]. + labels: A dictionary mapping each unique image key (string) to a list + of integer class labels, matching the corresponding box in `boxes`. + scores: A dictionary mapping each unique image key (string) to a list + of score values labels, matching the corresponding label in `labels`. + If scores are not provided in the csv, then they will default to 1.0. + """ + start = time.time() + entries = defaultdict(list) + boxes = defaultdict(list) + labels = defaultdict(list) + scores = defaultdict(list) + reader = csv.reader(csv_file) + for row in reader: + assert len(row) in [7, 8], 'Wrong number of columns: ' + row + image_key = make_image_key(row[0], row[1]) + x1, y1, x2, y2 = [float(n) for n in row[2:6]] + action_id = int(row[6]) + if class_whitelist and action_id not in class_whitelist: + continue + + score = 1.0 + if len(row) == 8: + score = float(row[7]) + + entries[image_key].append((score, action_id, y1, x1, y2, x2)) + + for image_key in entries: + # Evaluation API assumes boxes with descending scores + entry = sorted(entries[image_key], key=lambda tup: -tup[0]) + boxes[image_key] = [x[2:] for x in entry] + labels[image_key] = [x[1] for x in entry] + scores[image_key] = [x[0] for x in entry] + + print_time('read file ' + csv_file.name, start) + return boxes, labels, scores + + +def read_exclusions(exclusions_file): + """Reads a CSV file of excluded timestamps. + + Args: + exclusions_file: A file object containing a csv of video-id,timestamp. + + Returns: + A set of strings containing excluded image keys, e.g. + "aaaaaaaaaaa,0904", + or an empty set if exclusions file is None. + """ + excluded = set() + if exclusions_file: + reader = csv.reader(exclusions_file) + for row in reader: + assert len(row) == 2, f'Expected only 2 columns, got: {row}' + excluded.add(make_image_key(row[0], row[1])) + return excluded + + +def read_labelmap(labelmap_file): + """Reads a labelmap without the dependency on protocol buffers. + + Args: + labelmap_file: A file object containing a label map protocol buffer. + + Returns: + labelmap: The label map in the form used by the + object_detection_evaluation + module - a list of {"id": integer, "name": classname } dicts. + class_ids: A set containing all of the valid class id integers. + """ + labelmap = [] + class_ids = set() + name = '' + class_id = '' + for line in labelmap_file: + if line.startswith(' name:'): + name = line.split('"')[1] + elif line.startswith(' id:') or line.startswith(' label_id:'): + class_id = int(line.strip().split(' ')[-1]) + labelmap.append({'id': class_id, 'name': name}) + class_ids.add(class_id) + return labelmap, class_ids + + +# Seems there is at most 100 detections for each image +def ava_eval(result_file, + result_type, + label_file, + ann_file, + exclude_file, + verbose=True, + custom_classes=None): + + assert result_type in ['mAP'] + + start = time.time() + categories, class_whitelist = read_labelmap(open(label_file)) + if custom_classes is not None: + custom_classes = custom_classes[1:] + assert set(custom_classes).issubset(set(class_whitelist)) + class_whitelist = custom_classes + categories = [cat for cat in categories if cat['id'] in custom_classes] + + # loading gt, do not need gt score + gt_boxes, gt_labels, _ = read_csv(open(ann_file), class_whitelist) + if verbose: + print_time('Reading detection results', start) + + if exclude_file is not None: + excluded_keys = read_exclusions(open(exclude_file)) + else: + excluded_keys = list() + + start = time.time() + boxes, labels, scores = read_csv(open(result_file), class_whitelist) + if verbose: + print_time('Reading detection results', start) + + # Evaluation for mAP + pascal_evaluator = det_eval.PascalDetectionEvaluator(categories) + + start = time.time() + for image_key in gt_boxes: + if verbose and image_key in excluded_keys: + logging.info( + 'Found excluded timestamp in detections: %s.' + 'It will be ignored.', image_key) + continue + pascal_evaluator.add_single_ground_truth_image_info( + image_key, { + standard_fields.InputDataFields.groundtruth_boxes: + np.array(gt_boxes[image_key], dtype=float), + standard_fields.InputDataFields.groundtruth_classes: + np.array(gt_labels[image_key], dtype=int) + }) + if verbose: + print_time('Convert groundtruth', start) + + start = time.time() + for image_key in boxes: + if verbose and image_key in excluded_keys: + logging.info( + 'Found excluded timestamp in detections: %s.' + 'It will be ignored.', image_key) + continue + pascal_evaluator.add_single_detected_image_info( + image_key, { + standard_fields.DetectionResultFields.detection_boxes: + np.array(boxes[image_key], dtype=float), + standard_fields.DetectionResultFields.detection_classes: + np.array(labels[image_key], dtype=int), + standard_fields.DetectionResultFields.detection_scores: + np.array(scores[image_key], dtype=float) + }) + if verbose: + print_time('convert detections', start) + + start = time.time() + metrics = pascal_evaluator.evaluate() + if verbose: + print_time('run_evaluator', start) + for display_name in metrics: + print(f'{display_name}=\t{metrics[display_name]}') + return { + display_name: metrics[display_name] + for display_name in metrics if 'ByCategory' not in display_name + } diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/eval_detection.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/eval_detection.py new file mode 100644 index 00000000..604ba4fb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/eval_detection.py @@ -0,0 +1,234 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import json + +import numpy as np +from mmcv.utils import print_log + +from ...utils import get_root_logger +from .accuracy import interpolated_precision_recall, pairwise_temporal_iou + + +class ActivityNetLocalization: + """Class to evaluate detection results on ActivityNet. + + Args: + ground_truth_filename (str | None): The filename of groundtruth. + Default: None. + prediction_filename (str | None): The filename of action detection + results. Default: None. + tiou_thresholds (np.ndarray): The thresholds of temporal iou to + evaluate. Default: ``np.linspace(0.5, 0.95, 10)``. + verbose (bool): Whether to print verbose logs. Default: False. + """ + + def __init__(self, + ground_truth_filename=None, + prediction_filename=None, + tiou_thresholds=np.linspace(0.5, 0.95, 10), + verbose=False): + if not ground_truth_filename: + raise IOError('Please input a valid ground truth file.') + if not prediction_filename: + raise IOError('Please input a valid prediction file.') + self.ground_truth_filename = ground_truth_filename + self.prediction_filename = prediction_filename + self.tiou_thresholds = tiou_thresholds + self.verbose = verbose + self.ap = None + self.logger = get_root_logger() + # Import ground truth and predictions. + self.ground_truth, self.activity_index = self._import_ground_truth( + ground_truth_filename) + self.prediction = self._import_prediction(prediction_filename) + + if self.verbose: + log_msg = ( + '[INIT] Loaded ground_truth from ' + f'{self.ground_truth_filename}, prediction from ' + f'{self.prediction_filename}.\n' + f'Number of ground truth instances: {len(self.ground_truth)}\n' + f'Number of predictions: {len(self.prediction)}\n' + f'Fixed threshold for tiou score: {self.tiou_thresholds}') + print_log(log_msg, logger=self.logger) + + @staticmethod + def _import_ground_truth(ground_truth_filename): + """Read ground truth file and return the ground truth instances and the + activity classes. + + Args: + ground_truth_filename (str): Full path to the ground truth json + file. + + Returns: + tuple[list, dict]: (ground_truth, activity_index). + ground_truth contains the ground truth instances, which is in a + dict format. + activity_index contains classes index. + """ + with open(ground_truth_filename, 'r') as f: + data = json.load(f) + # Checking format + activity_index, class_idx = {}, 0 + ground_truth = [] + for video_id, video_info in data.items(): + for anno in video_info['annotations']: + if anno['label'] not in activity_index: + activity_index[anno['label']] = class_idx + class_idx += 1 + # old video_anno + ground_truth_item = {} + ground_truth_item['video-id'] = video_id[2:] + ground_truth_item['t-start'] = float(anno['segment'][0]) + ground_truth_item['t-end'] = float(anno['segment'][1]) + ground_truth_item['label'] = activity_index[anno['label']] + ground_truth.append(ground_truth_item) + + return ground_truth, activity_index + + def _import_prediction(self, prediction_filename): + """Read prediction file and return the prediction instances. + + Args: + prediction_filename (str): Full path to the prediction json file. + + Returns: + List: List containing the prediction instances (dictionaries). + """ + with open(prediction_filename, 'r') as f: + data = json.load(f) + # Read predictions. + prediction = [] + for video_id, video_info in data['results'].items(): + for result in video_info: + prediction_item = dict() + prediction_item['video-id'] = video_id + prediction_item['label'] = self.activity_index[result['label']] + prediction_item['t-start'] = float(result['segment'][0]) + prediction_item['t-end'] = float(result['segment'][1]) + prediction_item['score'] = result['score'] + prediction.append(prediction_item) + + return prediction + + def wrapper_compute_average_precision(self): + """Computes average precision for each class.""" + ap = np.zeros((len(self.tiou_thresholds), len(self.activity_index))) + + # Adaptation to query faster + ground_truth_by_label = [] + prediction_by_label = [] + for i in range(len(self.activity_index)): + ground_truth_by_label.append([]) + prediction_by_label.append([]) + for gt in self.ground_truth: + ground_truth_by_label[gt['label']].append(gt) + for pred in self.prediction: + prediction_by_label[pred['label']].append(pred) + + for i in range(len(self.activity_index)): + ap_result = compute_average_precision_detection( + ground_truth_by_label[i], prediction_by_label[i], + self.tiou_thresholds) + ap[:, i] = ap_result + + return ap + + def evaluate(self): + """Evaluates a prediction file. + + For the detection task we measure the interpolated mean average + precision to measure the performance of a method. + """ + self.ap = self.wrapper_compute_average_precision() + + self.mAP = self.ap.mean(axis=1) + self.average_mAP = self.mAP.mean() + + return self.mAP, self.average_mAP + + +def compute_average_precision_detection(ground_truth, + prediction, + tiou_thresholds=np.linspace( + 0.5, 0.95, 10)): + """Compute average precision (detection task) between ground truth and + predictions data frames. If multiple predictions occurs for the same + predicted segment, only the one with highest score is matches as true + positive. This code is greatly inspired by Pascal VOC devkit. + + Args: + ground_truth (list[dict]): List containing the ground truth instances + (dictionaries). Required keys are 'video-id', 't-start' and + 't-end'. + prediction (list[dict]): List containing the prediction instances + (dictionaries). Required keys are: 'video-id', 't-start', 't-end' + and 'score'. + tiou_thresholds (np.ndarray): A 1darray indicates the temporal + intersection over union threshold, which is optional. + Default: ``np.linspace(0.5, 0.95, 10)``. + + Returns: + Float: ap, Average precision score. + """ + num_thresholds = len(tiou_thresholds) + num_gts = len(ground_truth) + num_preds = len(prediction) + ap = np.zeros(num_thresholds) + if len(prediction) == 0: + return ap + + num_positive = float(num_gts) + lock_gt = np.ones((num_thresholds, num_gts)) * -1 + # Sort predictions by decreasing score order. + prediction.sort(key=lambda x: -x['score']) + # Initialize true positive and false positive vectors. + tp = np.zeros((num_thresholds, num_preds)) + fp = np.zeros((num_thresholds, num_preds)) + + # Adaptation to query faster + ground_truth_by_videoid = {} + for i, item in enumerate(ground_truth): + item['index'] = i + ground_truth_by_videoid.setdefault(item['video-id'], []).append(item) + + # Assigning true positive to truly grount truth instances. + for idx, pred in enumerate(prediction): + if pred['video-id'] in ground_truth_by_videoid: + gts = ground_truth_by_videoid[pred['video-id']] + else: + fp[:, idx] = 1 + continue + + tiou_arr = pairwise_temporal_iou( + np.array([pred['t-start'], pred['t-end']]), + np.array([np.array([gt['t-start'], gt['t-end']]) for gt in gts])) + tiou_arr = tiou_arr.reshape(-1) + # We would like to retrieve the predictions with highest tiou score. + tiou_sorted_idx = tiou_arr.argsort()[::-1] + for t_idx, tiou_threshold in enumerate(tiou_thresholds): + for j_idx in tiou_sorted_idx: + if tiou_arr[j_idx] < tiou_threshold: + fp[t_idx, idx] = 1 + break + if lock_gt[t_idx, gts[j_idx]['index']] >= 0: + continue + # Assign as true positive after the filters above. + tp[t_idx, idx] = 1 + lock_gt[t_idx, gts[j_idx]['index']] = idx + break + + if fp[t_idx, idx] == 0 and tp[t_idx, idx] == 0: + fp[t_idx, idx] = 1 + + tp_cumsum = np.cumsum(tp, axis=1).astype(np.float) + fp_cumsum = np.cumsum(fp, axis=1).astype(np.float) + recall_cumsum = tp_cumsum / num_positive + + precision_cumsum = tp_cumsum / (tp_cumsum + fp_cumsum) + + for t_idx in range(len(tiou_thresholds)): + ap[t_idx] = interpolated_precision_recall(precision_cumsum[t_idx, :], + recall_cumsum[t_idx, :]) + + return ap diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/eval_hooks.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/eval_hooks.py new file mode 100644 index 00000000..e125c3d2 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/evaluation/eval_hooks.py @@ -0,0 +1,391 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os +import os.path as osp +import warnings +from math import inf + +import torch.distributed as dist +from torch.nn.modules.batchnorm import _BatchNorm +from torch.utils.data import DataLoader + +try: + from mmcv.runner import DistEvalHook as BasicDistEvalHook + from mmcv.runner import EvalHook as BasicEvalHook + + from_mmcv = True + + class EvalHook(BasicEvalHook): + greater_keys = [ + 'acc', 'top', 'AR@', 'auc', 'precision', 'mAP@', 'Recall@' + ] + less_keys = ['loss'] + + def __init__(self, *args, save_best='auto', **kwargs): + super().__init__(*args, save_best=save_best, **kwargs) + + class DistEvalHook(BasicDistEvalHook): + greater_keys = [ + 'acc', 'top', 'AR@', 'auc', 'precision', 'mAP@', 'Recall@' + ] + less_keys = ['loss'] + + def __init__(self, *args, save_best='auto', **kwargs): + super().__init__(*args, save_best=save_best, **kwargs) + +except (ImportError, ModuleNotFoundError): + warnings.warn('DeprecationWarning: EvalHook and DistEvalHook in mmaction2 ' + 'will be deprecated, please install mmcv through master ' + 'branch.') + from_mmcv = False + +if not from_mmcv: + + from mmcv.runner import Hook + + class EvalHook(Hook): # noqa: F811 + """Non-Distributed evaluation hook. + + Notes: + If new arguments are added for EvalHook, tools/test.py, + tools/eval_metric.py may be effected. + + This hook will regularly perform evaluation in a given interval when + performing in non-distributed environment. + + Args: + dataloader (DataLoader): A PyTorch dataloader. + start (int | None, optional): Evaluation starting epoch. It enables + evaluation before the training starts if ``start`` <= the + resuming epoch. If None, whether to evaluate is merely decided + by ``interval``. Default: None. + interval (int): Evaluation interval. Default: 1. + by_epoch (bool): Determine perform evaluation by epoch or by + iteration. If set to True, it will perform by epoch. + Otherwise, by iteration. default: True. + save_best (str | None, optional): If a metric is specified, it + would measure the best checkpoint during evaluation. The + information about best checkpoint would be save in best.json. + Options are the evaluation metrics to the test dataset. e.g., + ``top1_acc``, ``top5_acc``, ``mean_class_accuracy``, + ``mean_average_precision``, ``mmit_mean_average_precision`` + for action recognition dataset (RawframeDataset and + VideoDataset). ``AR@AN``, ``auc`` for action localization + dataset. (ActivityNetDataset). ``mAP@0.5IOU`` for + spatio-temporal action detection dataset (AVADataset). + If ``save_best`` is ``auto``, the first key of the returned + ``OrderedDict`` result will be used. Default: 'auto'. + rule (str | None, optional): Comparison rule for best score. + If set to None, it will infer a reasonable rule. Keys such as + 'acc', 'top' .etc will be inferred by 'greater' rule. Keys + contain 'loss' will be inferred by 'less' rule. Options are + 'greater', 'less', None. Default: None. + **eval_kwargs: Evaluation arguments fed into the evaluate function + of the dataset. + """ + + rule_map = {'greater': lambda x, y: x > y, 'less': lambda x, y: x < y} + init_value_map = {'greater': -inf, 'less': inf} + greater_keys = [ + 'acc', 'top', 'AR@', 'auc', 'precision', 'mAP@', 'Recall@' + ] + less_keys = ['loss'] + + def __init__(self, + dataloader, + start=None, + interval=1, + by_epoch=True, + save_best='auto', + rule=None, + **eval_kwargs): + + if 'key_indicator' in eval_kwargs: + raise RuntimeError( + '"key_indicator" is deprecated, ' + 'you need to use "save_best" instead. ' + 'See https://github.com/open-mmlab/mmaction2/pull/395 ' + 'for more info') + + if not isinstance(dataloader, DataLoader): + raise TypeError(f'dataloader must be a pytorch DataLoader, ' + f'but got {type(dataloader)}') + + if interval <= 0: + raise ValueError( + f'interval must be positive, but got {interval}') + + assert isinstance(by_epoch, bool) + + if start is not None and start < 0: + warnings.warn( + f'The evaluation start epoch {start} is smaller than 0, ' + f'use 0 instead', UserWarning) + start = 0 + self.dataloader = dataloader + self.interval = interval + self.start = start + self.by_epoch = by_epoch + + assert isinstance(save_best, str) or save_best is None + self.save_best = save_best + self.eval_kwargs = eval_kwargs + self.initial_flag = True + + if self.save_best is not None: + self.best_ckpt_path = None + self._init_rule(rule, self.save_best) + + def _init_rule(self, rule, key_indicator): + """Initialize rule, key_indicator, comparison_func, and best score. + + Args: + rule (str | None): Comparison rule for best score. + key_indicator (str | None): Key indicator to determine the + comparison rule. + """ + if rule not in self.rule_map and rule is not None: + raise KeyError(f'rule must be greater, less or None, ' + f'but got {rule}.') + + if rule is None: + if key_indicator != 'auto': + if any(key in key_indicator for key in self.greater_keys): + rule = 'greater' + elif any(key in key_indicator for key in self.less_keys): + rule = 'less' + else: + raise ValueError( + f'Cannot infer the rule for key ' + f'{key_indicator}, thus a specific rule ' + f'must be specified.') + self.rule = rule + self.key_indicator = key_indicator + if self.rule is not None: + self.compare_func = self.rule_map[self.rule] + + def before_run(self, runner): + if self.save_best is not None: + if runner.meta is None: + warnings.warn('runner.meta is None. Creating a empty one.') + runner.meta = dict() + runner.meta.setdefault('hook_msgs', dict()) + + def before_train_iter(self, runner): + """Evaluate the model only at the start of training by + iteration.""" + if self.by_epoch: + return + if not self.initial_flag: + return + if self.start is not None and runner.iter >= self.start: + self.after_train_iter(runner) + self.initial_flag = False + + def before_train_epoch(self, runner): + """Evaluate the model only at the start of training by epoch.""" + if not self.by_epoch: + return + if not self.initial_flag: + return + if self.start is not None and runner.epoch >= self.start: + self.after_train_epoch(runner) + self.initial_flag = False + + def after_train_iter(self, runner): + """Called after every training iter to evaluate the results.""" + if not self.by_epoch: + self._do_evaluate(runner) + + def after_train_epoch(self, runner): + """Called after every training epoch to evaluate the results.""" + if self.by_epoch: + self._do_evaluate(runner) + + def _do_evaluate(self, runner): + """perform evaluation and save ckpt.""" + if not self.evaluation_flag(runner): + return + + from mmaction.apis import single_gpu_test + results = single_gpu_test(runner.model, self.dataloader) + key_score = self.evaluate(runner, results) + if self.save_best: + self._save_ckpt(runner, key_score) + + def evaluation_flag(self, runner): + """Judge whether to perform_evaluation. + + Returns: + bool: The flag indicating whether to perform evaluation. + """ + if self.by_epoch: + current = runner.epoch + check_time = self.every_n_epochs + else: + current = runner.iter + check_time = self.every_n_iters + + if self.start is None: + if not check_time(runner, self.interval): + # No evaluation during the interval. + return False + elif (current + 1) < self.start: + # No evaluation if start is larger than the current time. + return False + else: + # Evaluation only at epochs/iters 3, 5, 7... + # if start==3 and interval==2 + if (current + 1 - self.start) % self.interval: + return False + return True + + def _save_ckpt(self, runner, key_score): + if self.by_epoch: + current = f'epoch_{runner.epoch + 1}' + cur_type, cur_time = 'epoch', runner.epoch + 1 + else: + current = f'iter_{runner.iter + 1}' + cur_type, cur_time = 'iter', runner.iter + 1 + + best_score = runner.meta['hook_msgs'].get( + 'best_score', self.init_value_map[self.rule]) + if self.compare_func(key_score, best_score): + best_score = key_score + runner.meta['hook_msgs']['best_score'] = best_score + + if self.best_ckpt_path and osp.isfile(self.best_ckpt_path): + os.remove(self.best_ckpt_path) + + best_ckpt_name = f'best_{self.key_indicator}_{current}.pth' + runner.save_checkpoint( + runner.work_dir, best_ckpt_name, create_symlink=False) + self.best_ckpt_path = osp.join(runner.work_dir, best_ckpt_name) + + runner.meta['hook_msgs']['best_ckpt'] = self.best_ckpt_path + runner.logger.info( + f'Now best checkpoint is saved as {best_ckpt_name}.') + runner.logger.info( + f'Best {self.key_indicator} is {best_score:0.4f} ' + f'at {cur_time} {cur_type}.') + + def evaluate(self, runner, results): + """Evaluate the results. + + Args: + runner (:obj:`mmcv.Runner`): The underlined training runner. + results (list): Output results. + """ + eval_res = self.dataloader.dataset.evaluate( + results, logger=runner.logger, **self.eval_kwargs) + for name, val in eval_res.items(): + runner.log_buffer.output[name] = val + runner.log_buffer.ready = True + if self.save_best is not None: + if self.key_indicator == 'auto': + # infer from eval_results + self._init_rule(self.rule, list(eval_res.keys())[0]) + return eval_res[self.key_indicator] + + return None + + class DistEvalHook(EvalHook): # noqa: F811 + """Distributed evaluation hook. + + This hook will regularly perform evaluation in a given interval when + performing in distributed environment. + + Args: + dataloader (DataLoader): A PyTorch dataloader. + start (int | None, optional): Evaluation starting epoch. It enables + evaluation before the training starts if ``start`` <= the + resuming epoch. If None, whether to evaluate is merely decided + by ``interval``. Default: None. + interval (int): Evaluation interval. Default: 1. + by_epoch (bool): Determine perform evaluation by epoch or by + iteration. If set to True, it will perform by epoch. Otherwise, + by iteration. default: True. + save_best (str | None, optional): If a metric is specified, it + would measure the best checkpoint during evaluation. The + information about best checkpoint would be save in best.json. + Options are the evaluation metrics to the test dataset. e.g., + ``top1_acc``, ``top5_acc``, ``mean_class_accuracy``, + ``mean_average_precision``, ``mmit_mean_average_precision`` + for action recognition dataset (RawframeDataset and + VideoDataset). ``AR@AN``, ``auc`` for action localization + dataset (ActivityNetDataset). ``mAP@0.5IOU`` for + spatio-temporal action detection dataset (AVADataset). + If ``save_best`` is ``auto``, the first key of the returned + ``OrderedDict`` result will be used. Default: 'auto'. + rule (str | None, optional): Comparison rule for best score. If + set to None, it will infer a reasonable rule. Keys such as + 'acc', 'top' .etc will be inferred by 'greater' rule. Keys + contain 'loss' will be inferred by 'less' rule. Options are + 'greater', 'less', None. Default: None. + tmpdir (str | None): Temporary directory to save the results of all + processes. Default: None. + gpu_collect (bool): Whether to use gpu or cpu to collect results. + Default: False. + broadcast_bn_buffer (bool): Whether to broadcast the + buffer(running_mean and running_var) of rank 0 to other rank + before evaluation. Default: True. + **eval_kwargs: Evaluation arguments fed into the evaluate function + of the dataset. + """ + + def __init__(self, + dataloader, + start=None, + interval=1, + by_epoch=True, + save_best='auto', + rule=None, + broadcast_bn_buffer=True, + tmpdir=None, + gpu_collect=False, + **eval_kwargs): + super().__init__( + dataloader, + start=start, + interval=interval, + by_epoch=by_epoch, + save_best=save_best, + rule=rule, + **eval_kwargs) + self.broadcast_bn_buffer = broadcast_bn_buffer + self.tmpdir = tmpdir + self.gpu_collect = gpu_collect + + def _do_evaluate(self, runner): + """perform evaluation and save ckpt.""" + # Synchronization of BatchNorm's buffer (running_mean + # and running_var) is not supported in the DDP of pytorch, + # which may cause the inconsistent performance of models in + # different ranks, so we broadcast BatchNorm's buffers + # of rank 0 to other ranks to avoid this. + if self.broadcast_bn_buffer: + model = runner.model + for _, module in model.named_modules(): + if isinstance(module, + _BatchNorm) and module.track_running_stats: + dist.broadcast(module.running_var, 0) + dist.broadcast(module.running_mean, 0) + + if not self.evaluation_flag(runner): + return + + from mmaction.apis import multi_gpu_test + tmpdir = self.tmpdir + if tmpdir is None: + tmpdir = osp.join(runner.work_dir, '.eval_hook') + + results = multi_gpu_test( + runner.model, + self.dataloader, + tmpdir=tmpdir, + gpu_collect=self.gpu_collect) + if runner.rank == 0: + print('\n') + key_score = self.evaluate(runner, results) + + if self.save_best: + self._save_ckpt(runner, key_score) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/hooks/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/hooks/__init__.py new file mode 100644 index 00000000..42ce6c6c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/hooks/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .output import OutputHook + +__all__ = ['OutputHook'] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/hooks/output.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/hooks/output.py new file mode 100644 index 00000000..fb30beba --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/hooks/output.py @@ -0,0 +1,68 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import functools +import warnings + +import torch + + +class OutputHook: + """Output feature map of some layers. + + Args: + module (nn.Module): The whole module to get layers. + outputs (tuple[str] | list[str]): Layer name to output. Default: None. + as_tensor (bool): Determine to return a tensor or a numpy array. + Default: False. + """ + + def __init__(self, module, outputs=None, as_tensor=False): + self.outputs = outputs + self.as_tensor = as_tensor + self.layer_outputs = {} + self.handles = [] + self.register(module) + + def register(self, module): + + def hook_wrapper(name): + + def hook(model, input, output): + if not isinstance(output, torch.Tensor): + warnings.warn(f'Directly return the output from {name}, ' + f'since it is not a tensor') + self.layer_outputs[name] = output + elif self.as_tensor: + self.layer_outputs[name] = output + else: + self.layer_outputs[name] = output.detach().cpu().numpy() + + return hook + + if isinstance(self.outputs, (list, tuple)): + for name in self.outputs: + try: + layer = rgetattr(module, name) + h = layer.register_forward_hook(hook_wrapper(name)) + except AttributeError: + raise AttributeError(f'Module {name} not found') + self.handles.append(h) + + def remove(self): + for h in self.handles: + h.remove() + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + self.remove() + + +# using wonder's beautiful simplification: +# https://stackoverflow.com/questions/31174295/getattr-and-setattr-on-nested-objects +def rgetattr(obj, attr, *args): + + def _getattr(obj, attr): + return getattr(obj, attr, *args) + + return functools.reduce(_getattr, [obj] + attr.split('.')) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/lr/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/lr/__init__.py new file mode 100644 index 00000000..056c2933 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/lr/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .multigridlr import RelativeStepLrUpdaterHook + +__all__ = ['RelativeStepLrUpdaterHook'] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/lr/multigridlr.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/lr/multigridlr.py new file mode 100644 index 00000000..1a98b68d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/lr/multigridlr.py @@ -0,0 +1,41 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from mmcv.runner.hooks.hook import HOOKS +from mmcv.runner.hooks.lr_updater import LrUpdaterHook + + +@HOOKS.register_module() +class RelativeStepLrUpdaterHook(LrUpdaterHook): + """RelativeStepLrUpdaterHook. + Args: + runner (:obj:`mmcv.Runner`): The runner instance used. + steps (list[int]): The list of epochs at which decrease + the learning rate. + **kwargs (dict): Same as that of mmcv. + """ + + def __init__(self, + runner, + steps, + lrs, + warmup_epochs=34, + warmuplr_start=0.01, + **kwargs): + super().__init__(**kwargs) + assert len(steps) == (len(lrs)) + self.steps = steps + self.lrs = lrs + self.warmup_epochs = warmup_epochs + self.warmuplr_start = warmuplr_start + self.warmuplr_end = self.lrs[0] + super().before_run(runner) + + def get_lr(self, runner, base_lr): + """Similar to that of mmcv.""" + progress = runner.epoch if self.by_epoch else runner.iter + if progress <= self.warmup_epochs: + alpha = (self.warmuplr_end - + self.warmuplr_start) / self.warmup_epochs + return progress * alpha + self.warmuplr_start + for i in range(len(self.steps)): + if progress < self.steps[i]: + return self.lrs[i] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/optimizer/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/optimizer/__init__.py new file mode 100644 index 00000000..9b96eb66 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/optimizer/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .copy_of_sgd import CopyOfSGD +from .tsm_optimizer_constructor import TSMOptimizerConstructor + +__all__ = ['CopyOfSGD', 'TSMOptimizerConstructor'] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/optimizer/copy_of_sgd.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/optimizer/copy_of_sgd.py new file mode 100644 index 00000000..daec4851 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/optimizer/copy_of_sgd.py @@ -0,0 +1,12 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from mmcv.runner import OPTIMIZERS +from torch.optim import SGD + + +@OPTIMIZERS.register_module() +class CopyOfSGD(SGD): + """A clone of torch.optim.SGD. + + A customized optimizer could be defined like CopyOfSGD. You may derive from + built-in optimizers in torch.optim, or directly implement a new optimizer. + """ diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/optimizer/tsm_optimizer_constructor.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/optimizer/tsm_optimizer_constructor.py new file mode 100644 index 00000000..340e37bc --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/optimizer/tsm_optimizer_constructor.py @@ -0,0 +1,110 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +from mmcv.runner import OPTIMIZER_BUILDERS, DefaultOptimizerConstructor +from mmcv.utils import SyncBatchNorm, _BatchNorm, _ConvNd + + +@OPTIMIZER_BUILDERS.register_module() +class TSMOptimizerConstructor(DefaultOptimizerConstructor): + """Optimizer constructor in TSM model. + + This constructor builds optimizer in different ways from the default one. + + 1. Parameters of the first conv layer have default lr and weight decay. + 2. Parameters of BN layers have default lr and zero weight decay. + 3. If the field "fc_lr5" in paramwise_cfg is set to True, the parameters + of the last fc layer in cls_head have 5x lr multiplier and 10x weight + decay multiplier. + 4. Weights of other layers have default lr and weight decay, and biases + have a 2x lr multiplier and zero weight decay. + """ + + def add_params(self, params, model): + """Add parameters and their corresponding lr and wd to the params. + + Args: + params (list): The list to be modified, containing all parameter + groups and their corresponding lr and wd configurations. + model (nn.Module): The model to be trained with the optimizer. + """ + # use fc_lr5 to determine whether to specify higher multi-factor + # for fc layer weights and bias. + fc_lr5 = self.paramwise_cfg['fc_lr5'] + first_conv_weight = [] + first_conv_bias = [] + normal_weight = [] + normal_bias = [] + lr5_weight = [] + lr10_bias = [] + bn = [] + + conv_cnt = 0 + + for m in model.modules(): + if isinstance(m, _ConvNd): + m_params = list(m.parameters()) + conv_cnt += 1 + if conv_cnt == 1: + first_conv_weight.append(m_params[0]) + if len(m_params) == 2: + first_conv_bias.append(m_params[1]) + else: + normal_weight.append(m_params[0]) + if len(m_params) == 2: + normal_bias.append(m_params[1]) + elif isinstance(m, torch.nn.Linear): + m_params = list(m.parameters()) + normal_weight.append(m_params[0]) + if len(m_params) == 2: + normal_bias.append(m_params[1]) + elif isinstance(m, + (_BatchNorm, SyncBatchNorm, torch.nn.GroupNorm)): + for param in list(m.parameters()): + if param.requires_grad: + bn.append(param) + elif len(m._modules) == 0: + if len(list(m.parameters())) > 0: + raise ValueError(f'New atomic module type: {type(m)}. ' + 'Need to give it a learning policy') + + # pop the cls_head fc layer params + last_fc_weight = normal_weight.pop() + last_fc_bias = normal_bias.pop() + if fc_lr5: + lr5_weight.append(last_fc_weight) + lr10_bias.append(last_fc_bias) + else: + normal_weight.append(last_fc_weight) + normal_bias.append(last_fc_bias) + + params.append({ + 'params': first_conv_weight, + 'lr': self.base_lr, + 'weight_decay': self.base_wd + }) + params.append({ + 'params': first_conv_bias, + 'lr': self.base_lr * 2, + 'weight_decay': 0 + }) + params.append({ + 'params': normal_weight, + 'lr': self.base_lr, + 'weight_decay': self.base_wd + }) + params.append({ + 'params': normal_bias, + 'lr': self.base_lr * 2, + 'weight_decay': 0 + }) + params.append({'params': bn, 'lr': self.base_lr, 'weight_decay': 0}) + params.append({ + 'params': lr5_weight, + 'lr': self.base_lr * 5, + 'weight_decay': self.base_wd + }) + params.append({ + 'params': lr10_bias, + 'lr': self.base_lr * 10, + 'weight_decay': 0 + }) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/runner/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/runner/__init__.py new file mode 100644 index 00000000..c870e1da --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/runner/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .omnisource_runner import OmniSourceDistSamplerSeedHook, OmniSourceRunner + +__all__ = ['OmniSourceRunner', 'OmniSourceDistSamplerSeedHook'] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/runner/omnisource_runner.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/runner/omnisource_runner.py new file mode 100644 index 00000000..0209d5d0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/runner/omnisource_runner.py @@ -0,0 +1,162 @@ +# Copyright (c) Open-MMLab. All rights reserved. +import time +import warnings + +import mmcv +from mmcv.runner import EpochBasedRunner, Hook +from mmcv.runner.utils import get_host_info + + +def cycle(iterable): + iterator = iter(iterable) + while True: + try: + yield next(iterator) + except StopIteration: + iterator = iter(iterable) + + +class OmniSourceDistSamplerSeedHook(Hook): + + def before_epoch(self, runner): + for data_loader in runner.data_loaders: + if hasattr(data_loader.sampler, 'set_epoch'): + # in case the data loader uses `SequentialSampler` in Pytorch + data_loader.sampler.set_epoch(runner.epoch) + elif hasattr(data_loader.batch_sampler.sampler, 'set_epoch'): + # batch sampler in pytorch wraps the sampler as its attributes. + data_loader.batch_sampler.sampler.set_epoch(runner.epoch) + + +class OmniSourceRunner(EpochBasedRunner): + """OmniSource Epoch-based Runner. + + This runner train models epoch by epoch, the epoch length is defined by the + dataloader[0], which is the main dataloader. + """ + + def run_iter(self, data_batch, train_mode, source, **kwargs): + if self.batch_processor is not None: + outputs = self.batch_processor( + self.model, data_batch, train_mode=train_mode, **kwargs) + elif train_mode: + outputs = self.model.train_step(data_batch, self.optimizer, + **kwargs) + else: + outputs = self.model.val_step(data_batch, self.optimizer, **kwargs) + if not isinstance(outputs, dict): + raise TypeError('"batch_processor()" or "model.train_step()"' + 'and "model.val_step()" must return a dict') + # Since we have multiple sources, we add a suffix to log_var names, + # so that we can differentiate them. + if 'log_vars' in outputs: + log_vars = outputs['log_vars'] + log_vars = {k + source: v for k, v in log_vars.items()} + self.log_buffer.update(log_vars, outputs['num_samples']) + + self.outputs = outputs + + def train(self, data_loaders, **kwargs): + self.model.train() + self.mode = 'train' + self.data_loaders = data_loaders + self.main_loader = self.data_loaders[0] + # Add aliasing + self.data_loader = self.main_loader + self.aux_loaders = self.data_loaders[1:] + self.aux_iters = [cycle(loader) for loader in self.aux_loaders] + + auxiliary_iter_times = [1] * len(self.aux_loaders) + use_aux_per_niter = 1 + if 'train_ratio' in kwargs: + train_ratio = kwargs.pop('train_ratio') + use_aux_per_niter = train_ratio[0] + auxiliary_iter_times = train_ratio[1:] + + self._max_iters = self._max_epochs * len(self.main_loader) + + self.call_hook('before_train_epoch') + time.sleep(2) # Prevent possible deadlock during epoch transition + + for i, data_batch in enumerate(self.main_loader): + self._inner_iter = i + self.call_hook('before_train_iter') + self.run_iter(data_batch, train_mode=True, source='') + self.call_hook('after_train_iter') + + if self._iter % use_aux_per_niter != 0: + self._iter += 1 + continue + + for idx, n_times in enumerate(auxiliary_iter_times): + for _ in range(n_times): + data_batch = next(self.aux_iters[idx]) + self.call_hook('before_train_iter') + self.run_iter( + data_batch, train_mode=True, source=f'/aux{idx}') + self.call_hook('after_train_iter') + self._iter += 1 + + self.call_hook('after_train_epoch') + self._epoch += 1 + + # Now that we use validate hook, not implement this func to save efforts. + def val(self, data_loader, **kwargs): + raise NotImplementedError + + def run(self, data_loaders, workflow, max_epochs=None, **kwargs): + """Start running. + + Args: + data_loaders (list[:obj:`DataLoader`]): Dataloaders for training. + `data_loaders[0]` is the main data_loader, which contains + target datasets and determines the epoch length. + `data_loaders[1:]` are auxiliary data loaders, which contain + auxiliary web datasets. + workflow (list[tuple]): A list of (phase, epochs) to specify the + running order and epochs. E.g, [('train', 2)] means running 2 + epochs for training iteratively. Note that val epoch is not + supported for this runner for simplicity. + max_epochs (int | None): The max epochs that training lasts, + deprecated now. Default: None. + """ + assert isinstance(data_loaders, list) + assert mmcv.is_list_of(workflow, tuple) + assert len(workflow) == 1 and workflow[0][0] == 'train' + if max_epochs is not None: + warnings.warn( + 'setting max_epochs in run is deprecated, ' + 'please set max_epochs in runner_config', DeprecationWarning) + self._max_epochs = max_epochs + + assert self._max_epochs is not None, ( + 'max_epochs must be specified during instantiation') + + mode, epochs = workflow[0] + self._max_iters = self._max_epochs * len(data_loaders[0]) + + work_dir = self.work_dir if self.work_dir is not None else 'NONE' + self.logger.info('Start running, host: %s, work_dir: %s', + get_host_info(), work_dir) + self.logger.info('workflow: %s, max: %d epochs', workflow, + self._max_epochs) + self.call_hook('before_run') + + while self.epoch < self._max_epochs: + if isinstance(mode, str): # self.train() + if not hasattr(self, mode): + raise ValueError( + f'runner has no method named "{mode}" to run an ' + 'epoch') + epoch_runner = getattr(self, mode) + else: + raise TypeError( + f'mode in workflow must be a str, but got {mode}') + + for _ in range(epochs): + if mode == 'train' and self.epoch >= self._max_epochs: + break + epoch_runner(data_loaders, **kwargs) + + time.sleep(1) # wait for some hooks like loggers to finish + self.call_hook('after_run') diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/scheduler/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/scheduler/__init__.py new file mode 100644 index 00000000..55757c43 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/scheduler/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .lr_updater import TINLrUpdaterHook + +__all__ = ['TINLrUpdaterHook'] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/core/scheduler/lr_updater.py b/openmmlab_test/mmaction2-0.24.1/mmaction/core/scheduler/lr_updater.py new file mode 100644 index 00000000..a36f2bb7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/core/scheduler/lr_updater.py @@ -0,0 +1,40 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from mmcv.runner import HOOKS, LrUpdaterHook +from mmcv.runner.hooks.lr_updater import annealing_cos + + +@HOOKS.register_module() +class TINLrUpdaterHook(LrUpdaterHook): + + def __init__(self, min_lr, **kwargs): + self.min_lr = min_lr + super().__init__(**kwargs) + + def get_warmup_lr(self, cur_iters): + if self.warmup == 'linear': + # 'linear' warmup is rewritten according to TIN repo: + # https://github.com/deepcs233/TIN/blob/master/main.py#L409-L412 + k = (cur_iters / self.warmup_iters) * ( + 1 - self.warmup_ratio) + self.warmup_ratio + warmup_lr = [_lr * k for _lr in self.regular_lr] + elif self.warmup == 'constant': + warmup_lr = [_lr * self.warmup_ratio for _lr in self.regular_lr] + elif self.warmup == 'exp': + k = self.warmup_ratio**(1 - cur_iters / self.warmup_iters) + warmup_lr = [_lr * k for _lr in self.regular_lr] + return warmup_lr + + def get_lr(self, runner, base_lr): + if self.by_epoch: + progress = runner.epoch + max_progress = runner.max_epochs + else: + progress = runner.iter + max_progress = runner.max_iters + + target_lr = self.min_lr + if self.warmup is not None: + progress = progress - self.warmup_iters + max_progress = max_progress - self.warmup_iters + factor = progress / max_progress + return annealing_cos(base_lr, target_lr, factor) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/__init__.py new file mode 100644 index 00000000..2c2bc896 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/__init__.py @@ -0,0 +1,28 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .activitynet_dataset import ActivityNetDataset +from .audio_dataset import AudioDataset +from .audio_feature_dataset import AudioFeatureDataset +from .audio_visual_dataset import AudioVisualDataset +from .ava_dataset import AVADataset +from .base import BaseDataset +from .blending_utils import (BaseMiniBatchBlending, CutmixBlending, + MixupBlending) +from .builder import (BLENDINGS, DATASETS, PIPELINES, build_dataloader, + build_dataset) +from .dataset_wrappers import ConcatDataset, RepeatDataset +from .hvu_dataset import HVUDataset +from .image_dataset import ImageDataset +from .pose_dataset import PoseDataset +from .rawframe_dataset import RawframeDataset +from .rawvideo_dataset import RawVideoDataset +from .ssn_dataset import SSNDataset +from .video_dataset import VideoDataset + +__all__ = [ + 'VideoDataset', 'build_dataloader', 'build_dataset', 'RepeatDataset', + 'RawframeDataset', 'BaseDataset', 'ActivityNetDataset', 'SSNDataset', + 'HVUDataset', 'AudioDataset', 'AudioFeatureDataset', 'ImageDataset', + 'RawVideoDataset', 'AVADataset', 'AudioVisualDataset', + 'BaseMiniBatchBlending', 'CutmixBlending', 'MixupBlending', 'DATASETS', + 'PIPELINES', 'BLENDINGS', 'PoseDataset', 'ConcatDataset' +] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/activitynet_dataset.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/activitynet_dataset.py new file mode 100644 index 00000000..811d059c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/activitynet_dataset.py @@ -0,0 +1,270 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy +import os +import os.path as osp +import warnings +from collections import OrderedDict + +import mmcv +import numpy as np + +from ..core import average_recall_at_avg_proposals +from .base import BaseDataset +from .builder import DATASETS + + +@DATASETS.register_module() +class ActivityNetDataset(BaseDataset): + """ActivityNet dataset for temporal action localization. + + The dataset loads raw features and apply specified transforms to return a + dict containing the frame tensors and other information. + + The ann_file is a json file with multiple objects, and each object has a + key of the name of a video, and value of total frames of the video, total + seconds of the video, annotations of a video, feature frames (frames + covered by features) of the video, fps and rfps. Example of a + annotation file: + + .. code-block:: JSON + + { + "v_--1DO2V4K74": { + "duration_second": 211.53, + "duration_frame": 6337, + "annotations": [ + { + "segment": [ + 30.025882995319815, + 205.2318595943838 + ], + "label": "Rock climbing" + } + ], + "feature_frame": 6336, + "fps": 30.0, + "rfps": 29.9579255898 + }, + "v_--6bJUbfpnQ": { + "duration_second": 26.75, + "duration_frame": 647, + "annotations": [ + { + "segment": [ + 2.578755070202808, + 24.914101404056165 + ], + "label": "Drinking beer" + } + ], + "feature_frame": 624, + "fps": 24.0, + "rfps": 24.1869158879 + }, + ... + } + + + Args: + ann_file (str): Path to the annotation file. + pipeline (list[dict | callable]): A sequence of data transforms. + data_prefix (str | None): Path to a directory where videos are held. + Default: None. + test_mode (bool): Store True when building test or validation dataset. + Default: False. + """ + + def __init__(self, ann_file, pipeline, data_prefix=None, test_mode=False): + super().__init__(ann_file, pipeline, data_prefix, test_mode) + + def load_annotations(self): + """Load the annotation according to ann_file into video_infos.""" + video_infos = [] + anno_database = mmcv.load(self.ann_file) + for video_name in anno_database: + video_info = anno_database[video_name] + video_info['video_name'] = video_name + video_infos.append(video_info) + return video_infos + + def prepare_test_frames(self, idx): + """Prepare the frames for testing given the index.""" + results = copy.deepcopy(self.video_infos[idx]) + results['data_prefix'] = self.data_prefix + return self.pipeline(results) + + def prepare_train_frames(self, idx): + """Prepare the frames for training given the index.""" + results = copy.deepcopy(self.video_infos[idx]) + results['data_prefix'] = self.data_prefix + return self.pipeline(results) + + def __len__(self): + """Get the size of the dataset.""" + return len(self.video_infos) + + def _import_ground_truth(self): + """Read ground truth data from video_infos.""" + ground_truth = {} + for video_info in self.video_infos: + video_id = video_info['video_name'][2:] + this_video_ground_truths = [] + for ann in video_info['annotations']: + t_start, t_end = ann['segment'] + label = ann['label'] + this_video_ground_truths.append([t_start, t_end, label]) + ground_truth[video_id] = np.array(this_video_ground_truths) + return ground_truth + + @staticmethod + def proposals2json(results, show_progress=False): + """Convert all proposals to a final dict(json) format. + + Args: + results (list[dict]): All proposals. + show_progress (bool): Whether to show the progress bar. + Defaults: False. + + Returns: + dict: The final result dict. E.g. + + .. code-block:: Python + + dict(video-1=[dict(segment=[1.1,2.0]. score=0.9), + dict(segment=[50.1, 129.3], score=0.6)]) + """ + result_dict = {} + print('Convert proposals to json format') + if show_progress: + prog_bar = mmcv.ProgressBar(len(results)) + for result in results: + video_name = result['video_name'] + result_dict[video_name[2:]] = result['proposal_list'] + if show_progress: + prog_bar.update() + return result_dict + + @staticmethod + def _import_proposals(results): + """Read predictions from results.""" + proposals = {} + num_proposals = 0 + for result in results: + video_id = result['video_name'][2:] + this_video_proposals = [] + for proposal in result['proposal_list']: + t_start, t_end = proposal['segment'] + score = proposal['score'] + this_video_proposals.append([t_start, t_end, score]) + num_proposals += 1 + proposals[video_id] = np.array(this_video_proposals) + return proposals, num_proposals + + def dump_results(self, results, out, output_format, version='VERSION 1.3'): + """Dump data to json/csv files.""" + if output_format == 'json': + result_dict = self.proposals2json(results) + output_dict = { + 'version': version, + 'results': result_dict, + 'external_data': {} + } + mmcv.dump(output_dict, out) + elif output_format == 'csv': + # TODO: add csv handler to mmcv and use mmcv.dump + os.makedirs(out, exist_ok=True) + header = 'action,start,end,tmin,tmax' + for result in results: + video_name, outputs = result + output_path = osp.join(out, video_name + '.csv') + np.savetxt( + output_path, + outputs, + header=header, + delimiter=',', + comments='') + else: + raise ValueError( + f'The output format {output_format} is not supported.') + + def evaluate( + self, + results, + metrics='AR@AN', + metric_options={ + 'AR@AN': + dict( + max_avg_proposals=100, + temporal_iou_thresholds=np.linspace(0.5, 0.95, 10)) + }, + logger=None, + **deprecated_kwargs): + """Evaluation in feature dataset. + + Args: + results (list[dict]): Output results. + metrics (str | sequence[str]): Metrics to be performed. + Defaults: 'AR@AN'. + metric_options (dict): Dict for metric options. Options are + ``max_avg_proposals``, ``temporal_iou_thresholds`` for + ``AR@AN``. + default: ``{'AR@AN': dict(max_avg_proposals=100, + temporal_iou_thresholds=np.linspace(0.5, 0.95, 10))}``. + logger (logging.Logger | None): Training logger. Defaults: None. + deprecated_kwargs (dict): Used for containing deprecated arguments. + See 'https://github.com/open-mmlab/mmaction2/pull/286'. + + Returns: + dict: Evaluation results for evaluation metrics. + """ + # Protect ``metric_options`` since it uses mutable value as default + metric_options = copy.deepcopy(metric_options) + + if deprecated_kwargs != {}: + warnings.warn( + 'Option arguments for metrics has been changed to ' + "`metric_options`, See 'https://github.com/open-mmlab/mmaction2/pull/286' " # noqa: E501 + 'for more details') + metric_options['AR@AN'] = dict(metric_options['AR@AN'], + **deprecated_kwargs) + + if not isinstance(results, list): + raise TypeError(f'results must be a list, but got {type(results)}') + assert len(results) == len(self), ( + f'The length of results is not equal to the dataset len: ' + f'{len(results)} != {len(self)}') + + metrics = metrics if isinstance(metrics, (list, tuple)) else [metrics] + allowed_metrics = ['AR@AN'] + for metric in metrics: + if metric not in allowed_metrics: + raise KeyError(f'metric {metric} is not supported') + + eval_results = OrderedDict() + ground_truth = self._import_ground_truth() + proposal, num_proposals = self._import_proposals(results) + + for metric in metrics: + if metric == 'AR@AN': + temporal_iou_thresholds = metric_options.setdefault( + 'AR@AN', {}).setdefault('temporal_iou_thresholds', + np.linspace(0.5, 0.95, 10)) + max_avg_proposals = metric_options.setdefault( + 'AR@AN', {}).setdefault('max_avg_proposals', 100) + if isinstance(temporal_iou_thresholds, list): + temporal_iou_thresholds = np.array(temporal_iou_thresholds) + + recall, _, _, auc = ( + average_recall_at_avg_proposals( + ground_truth, + proposal, + num_proposals, + max_avg_proposals=max_avg_proposals, + temporal_iou_thresholds=temporal_iou_thresholds)) + eval_results['auc'] = auc + eval_results['AR@1'] = np.mean(recall[:, 0]) + eval_results['AR@5'] = np.mean(recall[:, 4]) + eval_results['AR@10'] = np.mean(recall[:, 9]) + eval_results['AR@100'] = np.mean(recall[:, 99]) + + return eval_results diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/audio_dataset.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/audio_dataset.py new file mode 100644 index 00000000..df19b180 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/audio_dataset.py @@ -0,0 +1,70 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +import torch + +from .base import BaseDataset +from .builder import DATASETS + + +@DATASETS.register_module() +class AudioDataset(BaseDataset): + """Audio dataset for video recognition. Extracts the audio feature on-the- + fly. Annotation file can be that of the rawframe dataset, or: + + .. code-block:: txt + + some/directory-1.wav 163 1 + some/directory-2.wav 122 1 + some/directory-3.wav 258 2 + some/directory-4.wav 234 2 + some/directory-5.wav 295 3 + some/directory-6.wav 121 3 + + Args: + ann_file (str): Path to the annotation file. + pipeline (list[dict | callable]): A sequence of data transforms. + suffix (str): The suffix of the audio file. Default: '.wav'. + kwargs (dict): Other keyword args for `BaseDataset`. + """ + + def __init__(self, ann_file, pipeline, suffix='.wav', **kwargs): + self.suffix = suffix + super().__init__(ann_file, pipeline, modality='Audio', **kwargs) + + def load_annotations(self): + """Load annotation file to get video information.""" + if self.ann_file.endswith('.json'): + return self.load_json_annotations() + video_infos = [] + with open(self.ann_file, 'r') as fin: + for line in fin: + line_split = line.strip().split() + video_info = {} + idx = 0 + filename = line_split[idx] + if self.data_prefix is not None: + if not filename.endswith(self.suffix): + filename = osp.join(self.data_prefix, + filename + self.suffix) + else: + filename = osp.join(self.data_prefix, filename) + video_info['audio_path'] = filename + idx += 1 + # idx for total_frames + video_info['total_frames'] = int(line_split[idx]) + idx += 1 + # idx for label[s] + label = [int(x) for x in line_split[idx:]] + assert label, f'missing label in line: {line}' + if self.multi_class: + assert self.num_classes is not None + onehot = torch.zeros(self.num_classes) + onehot[label] = 1.0 + video_info['label'] = onehot + else: + assert len(label) == 1 + video_info['label'] = label[0] + video_infos.append(video_info) + + return video_infos diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/audio_feature_dataset.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/audio_feature_dataset.py new file mode 100644 index 00000000..eaa54642 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/audio_feature_dataset.py @@ -0,0 +1,71 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +import torch + +from .base import BaseDataset +from .builder import DATASETS + + +@DATASETS.register_module() +class AudioFeatureDataset(BaseDataset): + """Audio feature dataset for video recognition. Reads the features + extracted off-line. Annotation file can be that of the rawframe dataset, + or: + + .. code-block:: txt + + some/directory-1.npy 163 1 + some/directory-2.npy 122 1 + some/directory-3.npy 258 2 + some/directory-4.npy 234 2 + some/directory-5.npy 295 3 + some/directory-6.npy 121 3 + + Args: + ann_file (str): Path to the annotation file. + pipeline (list[dict | callable]): A sequence of data transforms. + suffix (str): The suffix of the audio feature file. Default: '.npy'. + kwargs (dict): Other keyword args for `BaseDataset`. + """ + + def __init__(self, ann_file, pipeline, suffix='.npy', **kwargs): + self.suffix = suffix + super().__init__(ann_file, pipeline, modality='Audio', **kwargs) + + def load_annotations(self): + """Load annotation file to get video information.""" + if self.ann_file.endswith('.json'): + return self.load_json_annotations() + video_infos = [] + with open(self.ann_file, 'r') as fin: + for line in fin: + line_split = line.strip().split() + video_info = {} + idx = 0 + filename = line_split[idx] + if self.data_prefix is not None: + if not filename.endswith(self.suffix): + filename = osp.join(self.data_prefix, + filename) + self.suffix + else: + filename = osp.join(self.data_prefix, filename) + video_info['audio_path'] = filename + idx += 1 + # idx for total_frames + video_info['total_frames'] = int(line_split[idx]) + idx += 1 + # idx for label[s] + label = [int(x) for x in line_split[idx:]] + assert label, f'missing label in line: {line}' + if self.multi_class: + assert self.num_classes is not None + onehot = torch.zeros(self.num_classes) + onehot[label] = 1.0 + video_info['label'] = onehot + else: + assert len(label) == 1 + video_info['label'] = label[0] + video_infos.append(video_info) + + return video_infos diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/audio_visual_dataset.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/audio_visual_dataset.py new file mode 100644 index 00000000..15a31240 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/audio_visual_dataset.py @@ -0,0 +1,77 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +from .builder import DATASETS +from .rawframe_dataset import RawframeDataset + + +@DATASETS.register_module() +class AudioVisualDataset(RawframeDataset): + """Dataset that reads both audio and visual data, supporting both rawframes + and videos. The annotation file is same as that of the rawframe dataset, + such as: + + .. code-block:: txt + + some/directory-1 163 1 + some/directory-2 122 1 + some/directory-3 258 2 + some/directory-4 234 2 + some/directory-5 295 3 + some/directory-6 121 3 + + Args: + ann_file (str): Path to the annotation file. + pipeline (list[dict | callable]): A sequence of data transforms. + audio_prefix (str): Directory of the audio files. + kwargs (dict): Other keyword args for `RawframeDataset`. `video_prefix` + is also allowed if pipeline is designed for videos. + """ + + def __init__(self, ann_file, pipeline, audio_prefix, **kwargs): + self.audio_prefix = audio_prefix + self.video_prefix = kwargs.pop('video_prefix', None) + self.data_prefix = kwargs.get('data_prefix', None) + super().__init__(ann_file, pipeline, **kwargs) + + def load_annotations(self): + video_infos = [] + with open(self.ann_file, 'r') as fin: + for line in fin: + line_split = line.strip().split() + video_info = {} + idx = 0 + # idx for frame_dir + frame_dir = line_split[idx] + if self.audio_prefix is not None: + audio_path = osp.join(self.audio_prefix, + frame_dir + '.npy') + video_info['audio_path'] = audio_path + if self.video_prefix: + video_path = osp.join(self.video_prefix, + frame_dir + '.mp4') + video_info['filename'] = video_path + if self.data_prefix is not None: + frame_dir = osp.join(self.data_prefix, frame_dir) + video_info['frame_dir'] = frame_dir + idx += 1 + if self.with_offset: + # idx for offset and total_frames + video_info['offset'] = int(line_split[idx]) + video_info['total_frames'] = int(line_split[idx + 1]) + idx += 2 + else: + # idx for total_frames + video_info['total_frames'] = int(line_split[idx]) + idx += 1 + # idx for label[s] + label = [int(x) for x in line_split[idx:]] + assert len(label) != 0, f'missing label in line: {line}' + if self.multi_class: + assert self.num_classes is not None + video_info['label'] = label + else: + assert len(label) == 1 + video_info['label'] = label[0] + video_infos.append(video_info) + return video_infos diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/ava_dataset.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/ava_dataset.py new file mode 100644 index 00000000..ec64a20c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/ava_dataset.py @@ -0,0 +1,393 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy +import os +import os.path as osp +from collections import defaultdict +from datetime import datetime + +import mmcv +import numpy as np +from mmcv.utils import print_log + +from ..core.evaluation.ava_utils import ava_eval, read_labelmap, results2csv +from ..utils import get_root_logger +from .base import BaseDataset +from .builder import DATASETS + + +@DATASETS.register_module() +class AVADataset(BaseDataset): + """AVA dataset for spatial temporal detection. + + Based on official AVA annotation files, the dataset loads raw frames, + bounding boxes, proposals and applies specified transformations to return + a dict containing the frame tensors and other information. + + This datasets can load information from the following files: + + .. code-block:: txt + + ann_file -> ava_{train, val}_{v2.1, v2.2}.csv + exclude_file -> ava_{train, val}_excluded_timestamps_{v2.1, v2.2}.csv + label_file -> ava_action_list_{v2.1, v2.2}.pbtxt / + ava_action_list_{v2.1, v2.2}_for_activitynet_2019.pbtxt + proposal_file -> ava_dense_proposals_{train, val}.FAIR.recall_93.9.pkl + + Particularly, the proposal_file is a pickle file which contains + ``img_key`` (in format of ``{video_id},{timestamp}``). Example of a pickle + file: + + .. code-block:: JSON + + { + ... + '0f39OWEqJ24,0902': + array([[0.011 , 0.157 , 0.655 , 0.983 , 0.998163]]), + '0f39OWEqJ24,0912': + array([[0.054 , 0.088 , 0.91 , 0.998 , 0.068273], + [0.016 , 0.161 , 0.519 , 0.974 , 0.984025], + [0.493 , 0.283 , 0.981 , 0.984 , 0.983621]]), + ... + } + + Args: + ann_file (str): Path to the annotation file like + ``ava_{train, val}_{v2.1, v2.2}.csv``. + exclude_file (str): Path to the excluded timestamp file like + ``ava_{train, val}_excluded_timestamps_{v2.1, v2.2}.csv``. + pipeline (list[dict | callable]): A sequence of data transforms. + label_file (str): Path to the label file like + ``ava_action_list_{v2.1, v2.2}.pbtxt`` or + ``ava_action_list_{v2.1, v2.2}_for_activitynet_2019.pbtxt``. + Default: None. + filename_tmpl (str): Template for each filename. + Default: 'img_{:05}.jpg'. + start_index (int): Specify a start index for frames in consideration of + different filename format. However, when taking videos as input, + it should be set to 0, since frames loaded from videos count + from 0. Default: 0. + proposal_file (str): Path to the proposal file like + ``ava_dense_proposals_{train, val}.FAIR.recall_93.9.pkl``. + Default: None. + person_det_score_thr (float): The threshold of person detection scores, + bboxes with scores above the threshold will be used. Default: 0.9. + Note that 0 <= person_det_score_thr <= 1. If no proposal has + detection score larger than the threshold, the one with the largest + detection score will be used. + num_classes (int): The number of classes of the dataset. Default: 81. + (AVA has 80 action classes, another 1-dim is added for potential + usage) + custom_classes (list[int]): A subset of class ids from origin dataset. + Please note that 0 should NOT be selected, and ``num_classes`` + should be equal to ``len(custom_classes) + 1`` + data_prefix (str): Path to a directory where videos are held. + Default: None. + test_mode (bool): Store True when building test or validation dataset. + Default: False. + modality (str): Modality of data. Support 'RGB', 'Flow'. + Default: 'RGB'. + num_max_proposals (int): Max proposals number to store. Default: 1000. + timestamp_start (int): The start point of included timestamps. The + default value is referred from the official website. Default: 902. + timestamp_end (int): The end point of included timestamps. The + default value is referred from the official website. Default: 1798. + fps (int): Overrides the default FPS for the dataset. Default: 30. + """ + + def __init__(self, + ann_file, + exclude_file, + pipeline, + label_file=None, + filename_tmpl='img_{:05}.jpg', + start_index=0, + proposal_file=None, + person_det_score_thr=0.9, + num_classes=81, + custom_classes=None, + data_prefix=None, + test_mode=False, + modality='RGB', + num_max_proposals=1000, + timestamp_start=900, + timestamp_end=1800, + fps=30): + # since it inherits from `BaseDataset`, some arguments + # should be assigned before performing `load_annotations()` + self._FPS = fps # Keep this as standard + self.custom_classes = custom_classes + if custom_classes is not None: + assert num_classes == len(custom_classes) + 1 + assert 0 not in custom_classes + _, class_whitelist = read_labelmap(open(label_file)) + assert set(custom_classes).issubset(class_whitelist) + + self.custom_classes = tuple([0] + custom_classes) + self.exclude_file = exclude_file + self.label_file = label_file + self.proposal_file = proposal_file + assert 0 <= person_det_score_thr <= 1, ( + 'The value of ' + 'person_det_score_thr should in [0, 1]. ') + self.person_det_score_thr = person_det_score_thr + self.num_classes = num_classes + self.filename_tmpl = filename_tmpl + self.num_max_proposals = num_max_proposals + self.timestamp_start = timestamp_start + self.timestamp_end = timestamp_end + self.logger = get_root_logger() + super().__init__( + ann_file, + pipeline, + data_prefix, + test_mode, + start_index=start_index, + modality=modality, + num_classes=num_classes) + + if self.proposal_file is not None: + self.proposals = mmcv.load(self.proposal_file) + else: + self.proposals = None + + if not test_mode: + valid_indexes = self.filter_exclude_file() + self.logger.info( + f'{len(valid_indexes)} out of {len(self.video_infos)} ' + f'frames are valid.') + self.video_infos = [self.video_infos[i] for i in valid_indexes] + + def parse_img_record(self, img_records): + """Merge image records of the same entity at the same time. + + Args: + img_records (list[dict]): List of img_records (lines in AVA + annotations). + + Returns: + tuple(list): A tuple consists of lists of bboxes, action labels and + entity_ids + """ + bboxes, labels, entity_ids = [], [], [] + while len(img_records) > 0: + img_record = img_records[0] + num_img_records = len(img_records) + + selected_records = [ + x for x in img_records + if np.array_equal(x['entity_box'], img_record['entity_box']) + ] + + num_selected_records = len(selected_records) + img_records = [ + x for x in img_records if + not np.array_equal(x['entity_box'], img_record['entity_box']) + ] + + assert len(img_records) + num_selected_records == num_img_records + + bboxes.append(img_record['entity_box']) + valid_labels = np.array([ + selected_record['label'] + for selected_record in selected_records + ]) + + # The format can be directly used by BCELossWithLogits + label = np.zeros(self.num_classes, dtype=np.float32) + label[valid_labels] = 1. + + labels.append(label) + entity_ids.append(img_record['entity_id']) + + bboxes = np.stack(bboxes) + labels = np.stack(labels) + entity_ids = np.stack(entity_ids) + return bboxes, labels, entity_ids + + def filter_exclude_file(self): + """Filter out records in the exclude_file.""" + valid_indexes = [] + if self.exclude_file is None: + valid_indexes = list(range(len(self.video_infos))) + else: + exclude_video_infos = [ + x.strip().split(',') for x in open(self.exclude_file) + ] + for i, video_info in enumerate(self.video_infos): + valid_indexes.append(i) + for video_id, timestamp in exclude_video_infos: + if (video_info['video_id'] == video_id + and video_info['timestamp'] == int(timestamp)): + valid_indexes.pop() + break + return valid_indexes + + def load_annotations(self): + """Load AVA annotations.""" + video_infos = [] + records_dict_by_img = defaultdict(list) + with open(self.ann_file, 'r') as fin: + for line in fin: + line_split = line.strip().split(',') + + label = int(line_split[6]) + if self.custom_classes is not None: + if label not in self.custom_classes: + continue + label = self.custom_classes.index(label) + + video_id = line_split[0] + timestamp = int(line_split[1]) + img_key = f'{video_id},{timestamp:04d}' + + entity_box = np.array(list(map(float, line_split[2:6]))) + entity_id = int(line_split[7]) + shot_info = (0, (self.timestamp_end - self.timestamp_start) * + self._FPS) + + video_info = dict( + video_id=video_id, + timestamp=timestamp, + entity_box=entity_box, + label=label, + entity_id=entity_id, + shot_info=shot_info) + records_dict_by_img[img_key].append(video_info) + + for img_key in records_dict_by_img: + video_id, timestamp = img_key.split(',') + bboxes, labels, entity_ids = self.parse_img_record( + records_dict_by_img[img_key]) + ann = dict( + gt_bboxes=bboxes, gt_labels=labels, entity_ids=entity_ids) + frame_dir = video_id + if self.data_prefix is not None: + frame_dir = osp.join(self.data_prefix, frame_dir) + video_info = dict( + frame_dir=frame_dir, + video_id=video_id, + timestamp=int(timestamp), + img_key=img_key, + shot_info=shot_info, + fps=self._FPS, + ann=ann) + video_infos.append(video_info) + + return video_infos + + def prepare_train_frames(self, idx): + """Prepare the frames for training given the index.""" + results = copy.deepcopy(self.video_infos[idx]) + img_key = results['img_key'] + + results['filename_tmpl'] = self.filename_tmpl + results['modality'] = self.modality + results['start_index'] = self.start_index + results['timestamp_start'] = self.timestamp_start + results['timestamp_end'] = self.timestamp_end + + if self.proposals is not None: + if img_key not in self.proposals: + results['proposals'] = np.array([[0, 0, 1, 1]]) + results['scores'] = np.array([1]) + else: + proposals = self.proposals[img_key] + assert proposals.shape[-1] in [4, 5] + if proposals.shape[-1] == 5: + thr = min(self.person_det_score_thr, max(proposals[:, 4])) + positive_inds = (proposals[:, 4] >= thr) + proposals = proposals[positive_inds] + proposals = proposals[:self.num_max_proposals] + results['proposals'] = proposals[:, :4] + results['scores'] = proposals[:, 4] + else: + proposals = proposals[:self.num_max_proposals] + results['proposals'] = proposals + + ann = results.pop('ann') + results['gt_bboxes'] = ann['gt_bboxes'] + results['gt_labels'] = ann['gt_labels'] + results['entity_ids'] = ann['entity_ids'] + + return self.pipeline(results) + + def prepare_test_frames(self, idx): + """Prepare the frames for testing given the index.""" + results = copy.deepcopy(self.video_infos[idx]) + img_key = results['img_key'] + + results['filename_tmpl'] = self.filename_tmpl + results['modality'] = self.modality + results['start_index'] = self.start_index + results['timestamp_start'] = self.timestamp_start + results['timestamp_end'] = self.timestamp_end + + if self.proposals is not None: + if img_key not in self.proposals: + results['proposals'] = np.array([[0, 0, 1, 1]]) + results['scores'] = np.array([1]) + else: + proposals = self.proposals[img_key] + assert proposals.shape[-1] in [4, 5] + if proposals.shape[-1] == 5: + thr = min(self.person_det_score_thr, max(proposals[:, 4])) + positive_inds = (proposals[:, 4] >= thr) + proposals = proposals[positive_inds] + proposals = proposals[:self.num_max_proposals] + results['proposals'] = proposals[:, :4] + results['scores'] = proposals[:, 4] + else: + proposals = proposals[:self.num_max_proposals] + results['proposals'] = proposals + + ann = results.pop('ann') + # Follow the mmdet variable naming style. + results['gt_bboxes'] = ann['gt_bboxes'] + results['gt_labels'] = ann['gt_labels'] + results['entity_ids'] = ann['entity_ids'] + + return self.pipeline(results) + + def dump_results(self, results, out): + """Dump predictions into a csv file.""" + assert out.endswith('csv') + results2csv(self, results, out, self.custom_classes) + + def evaluate(self, + results, + metrics=('mAP', ), + metric_options=None, + logger=None): + """Evaluate the prediction results and report mAP.""" + assert len(metrics) == 1 and metrics[0] == 'mAP', ( + 'For evaluation on AVADataset, you need to use metrics "mAP" ' + 'See https://github.com/open-mmlab/mmaction2/pull/567 ' + 'for more info.') + time_now = datetime.now().strftime('%Y%m%d_%H%M%S') + temp_file = f'AVA_{time_now}_result.csv' + results2csv(self, results, temp_file, self.custom_classes) + + ret = {} + for metric in metrics: + msg = f'Evaluating {metric} ...' + if logger is None: + msg = '\n' + msg + print_log(msg, logger=logger) + + eval_result = ava_eval( + temp_file, + metric, + self.label_file, + self.ann_file, + self.exclude_file, + custom_classes=self.custom_classes) + log_msg = [] + for k, v in eval_result.items(): + log_msg.append(f'\n{k}\t{v: .4f}') + log_msg = ''.join(log_msg) + print_log(log_msg, logger=logger) + ret.update(eval_result) + + os.remove(temp_file) + + return ret diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/base.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/base.py new file mode 100644 index 00000000..8d2589ca --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/base.py @@ -0,0 +1,289 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy +import os.path as osp +import warnings +from abc import ABCMeta, abstractmethod +from collections import OrderedDict, defaultdict + +import mmcv +import numpy as np +import torch +from mmcv.utils import print_log +from torch.utils.data import Dataset + +from ..core import (mean_average_precision, mean_class_accuracy, + mmit_mean_average_precision, top_k_accuracy) +from .pipelines import Compose + + +class BaseDataset(Dataset, metaclass=ABCMeta): + """Base class for datasets. + + All datasets to process video should subclass it. + All subclasses should overwrite: + + - Methods:`load_annotations`, supporting to load information from an + annotation file. + - Methods:`prepare_train_frames`, providing train data. + - Methods:`prepare_test_frames`, providing test data. + + Args: + ann_file (str): Path to the annotation file. + pipeline (list[dict | callable]): A sequence of data transforms. + data_prefix (str | None): Path to a directory where videos are held. + Default: None. + test_mode (bool): Store True when building test or validation dataset. + Default: False. + multi_class (bool): Determines whether the dataset is a multi-class + dataset. Default: False. + num_classes (int | None): Number of classes of the dataset, used in + multi-class datasets. Default: None. + start_index (int): Specify a start index for frames in consideration of + different filename format. However, when taking videos as input, + it should be set to 0, since frames loaded from videos count + from 0. Default: 1. + modality (str): Modality of data. Support 'RGB', 'Flow', 'Audio'. + Default: 'RGB'. + sample_by_class (bool): Sampling by class, should be set `True` when + performing inter-class data balancing. Only compatible with + `multi_class == False`. Only applies for training. Default: False. + power (float): We support sampling data with the probability + proportional to the power of its label frequency (freq ^ power) + when sampling data. `power == 1` indicates uniformly sampling all + data; `power == 0` indicates uniformly sampling all classes. + Default: 0. + dynamic_length (bool): If the dataset length is dynamic (used by + ClassSpecificDistributedSampler). Default: False. + """ + + def __init__(self, + ann_file, + pipeline, + data_prefix=None, + test_mode=False, + multi_class=False, + num_classes=None, + start_index=1, + modality='RGB', + sample_by_class=False, + power=0, + dynamic_length=False): + super().__init__() + + self.ann_file = ann_file + self.data_prefix = osp.realpath( + data_prefix) if data_prefix is not None and osp.isdir( + data_prefix) else data_prefix + self.test_mode = test_mode + self.multi_class = multi_class + self.num_classes = num_classes + self.start_index = start_index + self.modality = modality + self.sample_by_class = sample_by_class + self.power = power + self.dynamic_length = dynamic_length + + assert not (self.multi_class and self.sample_by_class) + + self.pipeline = Compose(pipeline) + self.video_infos = self.load_annotations() + if self.sample_by_class: + self.video_infos_by_class = self.parse_by_class() + + class_prob = [] + for _, samples in self.video_infos_by_class.items(): + class_prob.append(len(samples) / len(self.video_infos)) + class_prob = [x**self.power for x in class_prob] + + summ = sum(class_prob) + class_prob = [x / summ for x in class_prob] + + self.class_prob = dict(zip(self.video_infos_by_class, class_prob)) + + @abstractmethod + def load_annotations(self): + """Load the annotation according to ann_file into video_infos.""" + + # json annotations already looks like video_infos, so for each dataset, + # this func should be the same + def load_json_annotations(self): + """Load json annotation file to get video information.""" + video_infos = mmcv.load(self.ann_file) + num_videos = len(video_infos) + path_key = 'frame_dir' if 'frame_dir' in video_infos[0] else 'filename' + for i in range(num_videos): + path_value = video_infos[i][path_key] + if self.data_prefix is not None: + path_value = osp.join(self.data_prefix, path_value) + video_infos[i][path_key] = path_value + if self.multi_class: + assert self.num_classes is not None + else: + assert len(video_infos[i]['label']) == 1 + video_infos[i]['label'] = video_infos[i]['label'][0] + return video_infos + + def parse_by_class(self): + video_infos_by_class = defaultdict(list) + for item in self.video_infos: + label = item['label'] + video_infos_by_class[label].append(item) + return video_infos_by_class + + @staticmethod + def label2array(num, label): + arr = np.zeros(num, dtype=np.float32) + arr[label] = 1. + return arr + + def evaluate(self, + results, + metrics='top_k_accuracy', + metric_options=dict(top_k_accuracy=dict(topk=(1, 5))), + logger=None, + **deprecated_kwargs): + """Perform evaluation for common datasets. + + Args: + results (list): Output results. + metrics (str | sequence[str]): Metrics to be performed. + Defaults: 'top_k_accuracy'. + metric_options (dict): Dict for metric options. Options are + ``topk`` for ``top_k_accuracy``. + Default: ``dict(top_k_accuracy=dict(topk=(1, 5)))``. + logger (logging.Logger | None): Logger for recording. + Default: None. + deprecated_kwargs (dict): Used for containing deprecated arguments. + See 'https://github.com/open-mmlab/mmaction2/pull/286'. + + Returns: + dict: Evaluation results dict. + """ + # Protect ``metric_options`` since it uses mutable value as default + metric_options = copy.deepcopy(metric_options) + + if deprecated_kwargs != {}: + warnings.warn( + 'Option arguments for metrics has been changed to ' + "`metric_options`, See 'https://github.com/open-mmlab/mmaction2/pull/286' " # noqa: E501 + 'for more details') + metric_options['top_k_accuracy'] = dict( + metric_options['top_k_accuracy'], **deprecated_kwargs) + + if not isinstance(results, list): + raise TypeError(f'results must be a list, but got {type(results)}') + assert len(results) == len(self), ( + f'The length of results is not equal to the dataset len: ' + f'{len(results)} != {len(self)}') + + metrics = metrics if isinstance(metrics, (list, tuple)) else [metrics] + allowed_metrics = [ + 'top_k_accuracy', 'mean_class_accuracy', 'mean_average_precision', + 'mmit_mean_average_precision' + ] + + for metric in metrics: + if metric not in allowed_metrics: + raise KeyError(f'metric {metric} is not supported') + + eval_results = OrderedDict() + gt_labels = [ann['label'] for ann in self.video_infos] + + for metric in metrics: + msg = f'Evaluating {metric} ...' + if logger is None: + msg = '\n' + msg + print_log(msg, logger=logger) + + if metric == 'top_k_accuracy': + topk = metric_options.setdefault('top_k_accuracy', + {}).setdefault( + 'topk', (1, 5)) + if not isinstance(topk, (int, tuple)): + raise TypeError('topk must be int or tuple of int, ' + f'but got {type(topk)}') + if isinstance(topk, int): + topk = (topk, ) + + top_k_acc = top_k_accuracy(results, gt_labels, topk) + log_msg = [] + for k, acc in zip(topk, top_k_acc): + eval_results[f'top{k}_acc'] = acc + log_msg.append(f'\ntop{k}_acc\t{acc:.4f}') + log_msg = ''.join(log_msg) + print_log(log_msg, logger=logger) + continue + + if metric == 'mean_class_accuracy': + mean_acc = mean_class_accuracy(results, gt_labels) + eval_results['mean_class_accuracy'] = mean_acc + log_msg = f'\nmean_acc\t{mean_acc:.4f}' + print_log(log_msg, logger=logger) + continue + + if metric in [ + 'mean_average_precision', 'mmit_mean_average_precision' + ]: + gt_labels_arrays = [ + self.label2array(self.num_classes, label) + for label in gt_labels + ] + if metric == 'mean_average_precision': + mAP = mean_average_precision(results, gt_labels_arrays) + eval_results['mean_average_precision'] = mAP + log_msg = f'\nmean_average_precision\t{mAP:.4f}' + elif metric == 'mmit_mean_average_precision': + mAP = mmit_mean_average_precision(results, + gt_labels_arrays) + eval_results['mmit_mean_average_precision'] = mAP + log_msg = f'\nmmit_mean_average_precision\t{mAP:.4f}' + print_log(log_msg, logger=logger) + continue + + return eval_results + + @staticmethod + def dump_results(results, out): + """Dump data to json/yaml/pickle strings or files.""" + return mmcv.dump(results, out) + + def prepare_train_frames(self, idx): + """Prepare the frames for training given the index.""" + results = copy.deepcopy(self.video_infos[idx]) + results['modality'] = self.modality + results['start_index'] = self.start_index + + # prepare tensor in getitem + # If HVU, type(results['label']) is dict + if self.multi_class and isinstance(results['label'], list): + onehot = torch.zeros(self.num_classes) + onehot[results['label']] = 1. + results['label'] = onehot + + return self.pipeline(results) + + def prepare_test_frames(self, idx): + """Prepare the frames for testing given the index.""" + results = copy.deepcopy(self.video_infos[idx]) + results['modality'] = self.modality + results['start_index'] = self.start_index + + # prepare tensor in getitem + # If HVU, type(results['label']) is dict + if self.multi_class and isinstance(results['label'], list): + onehot = torch.zeros(self.num_classes) + onehot[results['label']] = 1. + results['label'] = onehot + + return self.pipeline(results) + + def __len__(self): + """Get the size of the dataset.""" + return len(self.video_infos) + + def __getitem__(self, idx): + """Get the sample for either training or testing given index.""" + if self.test_mode: + return self.prepare_test_frames(idx) + + return self.prepare_train_frames(idx) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/blending_utils.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/blending_utils.py new file mode 100644 index 00000000..bd8ded36 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/blending_utils.py @@ -0,0 +1,143 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from abc import ABCMeta, abstractmethod + +import torch +import torch.nn.functional as F +from torch.distributions.beta import Beta + +from .builder import BLENDINGS + +__all__ = ['BaseMiniBatchBlending', 'MixupBlending', 'CutmixBlending'] + + +class BaseMiniBatchBlending(metaclass=ABCMeta): + """Base class for Image Aliasing.""" + + def __init__(self, num_classes): + self.num_classes = num_classes + + @abstractmethod + def do_blending(self, imgs, label, **kwargs): + pass + + def __call__(self, imgs, label, **kwargs): + """Blending data in a mini-batch. + + Images are float tensors with the shape of (B, N, C, H, W) for 2D + recognizers or (B, N, C, T, H, W) for 3D recognizers. + + Besides, labels are converted from hard labels to soft labels. + Hard labels are integer tensors with the shape of (B, 1) and all of the + elements are in the range [0, num_classes - 1]. + Soft labels (probablity distribution over classes) are float tensors + with the shape of (B, 1, num_classes) and all of the elements are in + the range [0, 1]. + + Args: + imgs (torch.Tensor): Model input images, float tensor with the + shape of (B, N, C, H, W) or (B, N, C, T, H, W). + label (torch.Tensor): Hard labels, integer tensor with the shape + of (B, 1) and all elements are in range [0, num_classes). + kwargs (dict, optional): Other keyword argument to be used to + blending imgs and labels in a mini-batch. + + Returns: + mixed_imgs (torch.Tensor): Blending images, float tensor with the + same shape of the input imgs. + mixed_label (torch.Tensor): Blended soft labels, float tensor with + the shape of (B, 1, num_classes) and all elements are in range + [0, 1]. + """ + one_hot_label = F.one_hot(label, num_classes=self.num_classes) + + mixed_imgs, mixed_label = self.do_blending(imgs, one_hot_label, + **kwargs) + + return mixed_imgs, mixed_label + + +@BLENDINGS.register_module() +class MixupBlending(BaseMiniBatchBlending): + """Implementing Mixup in a mini-batch. + + This module is proposed in `mixup: Beyond Empirical Risk Minimization + `_. + Code Reference https://github.com/open-mmlab/mmclassification/blob/master/mmcls/models/utils/mixup.py # noqa + + Args: + num_classes (int): The number of classes. + alpha (float): Parameters for Beta distribution. + """ + + def __init__(self, num_classes, alpha=.2): + super().__init__(num_classes=num_classes) + self.beta = Beta(alpha, alpha) + + def do_blending(self, imgs, label, **kwargs): + """Blending images with mixup.""" + assert len(kwargs) == 0, f'unexpected kwargs for mixup {kwargs}' + + lam = self.beta.sample() + batch_size = imgs.size(0) + rand_index = torch.randperm(batch_size) + + mixed_imgs = lam * imgs + (1 - lam) * imgs[rand_index, :] + mixed_label = lam * label + (1 - lam) * label[rand_index, :] + + return mixed_imgs, mixed_label + + +@BLENDINGS.register_module() +class CutmixBlending(BaseMiniBatchBlending): + """Implementing Cutmix in a mini-batch. + + This module is proposed in `CutMix: Regularization Strategy to Train Strong + Classifiers with Localizable Features `_. + Code Reference https://github.com/clovaai/CutMix-PyTorch + + Args: + num_classes (int): The number of classes. + alpha (float): Parameters for Beta distribution. + """ + + def __init__(self, num_classes, alpha=.2): + super().__init__(num_classes=num_classes) + self.beta = Beta(alpha, alpha) + + @staticmethod + def rand_bbox(img_size, lam): + """Generate a random boudning box.""" + w = img_size[-1] + h = img_size[-2] + cut_rat = torch.sqrt(1. - lam) + cut_w = torch.tensor(int(w * cut_rat)) + cut_h = torch.tensor(int(h * cut_rat)) + + # uniform + cx = torch.randint(w, (1, ))[0] + cy = torch.randint(h, (1, ))[0] + + bbx1 = torch.clamp(cx - cut_w // 2, 0, w) + bby1 = torch.clamp(cy - cut_h // 2, 0, h) + bbx2 = torch.clamp(cx + cut_w // 2, 0, w) + bby2 = torch.clamp(cy + cut_h // 2, 0, h) + + return bbx1, bby1, bbx2, bby2 + + def do_blending(self, imgs, label, **kwargs): + """Blending images with cutmix.""" + assert len(kwargs) == 0, f'unexpected kwargs for cutmix {kwargs}' + + batch_size = imgs.size(0) + rand_index = torch.randperm(batch_size) + lam = self.beta.sample() + + bbx1, bby1, bbx2, bby2 = self.rand_bbox(imgs.size(), lam) + imgs[:, ..., bby1:bby2, bbx1:bbx2] = imgs[rand_index, ..., bby1:bby2, + bbx1:bbx2] + lam = 1 - (1.0 * (bbx2 - bbx1) * (bby2 - bby1) / + (imgs.size()[-1] * imgs.size()[-2])) + + label = lam * label + (1 - lam) * label[rand_index, :] + + return imgs, label diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/builder.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/builder.py new file mode 100644 index 00000000..8a516af5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/builder.py @@ -0,0 +1,168 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import platform +import random +from functools import partial + +import numpy as np +import torch +from mmcv.parallel import collate +from mmcv.runner import get_dist_info +from mmcv.utils import Registry, build_from_cfg, digit_version +from torch.utils.data import DataLoader + +from ..utils.multigrid import ShortCycleSampler +from .samplers import ClassSpecificDistributedSampler, DistributedSampler + +if platform.system() != 'Windows': + # https://github.com/pytorch/pytorch/issues/973 + import resource + rlimit = resource.getrlimit(resource.RLIMIT_NOFILE) + hard_limit = rlimit[1] + soft_limit = min(4096, hard_limit) + resource.setrlimit(resource.RLIMIT_NOFILE, (soft_limit, hard_limit)) + +DATASETS = Registry('dataset') +PIPELINES = Registry('pipeline') +BLENDINGS = Registry('blending') + + +def build_dataset(cfg, default_args=None): + """Build a dataset from config dict. + + Args: + cfg (dict): Config dict. It should at least contain the key "type". + default_args (dict | None, optional): Default initialization arguments. + Default: None. + + Returns: + Dataset: The constructed dataset. + """ + dataset = build_from_cfg(cfg, DATASETS, default_args) + return dataset + + +def build_dataloader(dataset, + videos_per_gpu, + workers_per_gpu, + num_gpus=1, + dist=True, + shuffle=True, + seed=None, + drop_last=False, + pin_memory=True, + persistent_workers=False, + **kwargs): + """Build PyTorch DataLoader. + + In distributed training, each GPU/process has a dataloader. + In non-distributed training, there is only one dataloader for all GPUs. + + Args: + dataset (:obj:`Dataset`): A PyTorch dataset. + videos_per_gpu (int): Number of videos on each GPU, i.e., + batch size of each GPU. + workers_per_gpu (int): How many subprocesses to use for data + loading for each GPU. + num_gpus (int): Number of GPUs. Only used in non-distributed + training. Default: 1. + dist (bool): Distributed training/test or not. Default: True. + shuffle (bool): Whether to shuffle the data at every epoch. + Default: True. + seed (int | None): Seed to be used. Default: None. + drop_last (bool): Whether to drop the last incomplete batch in epoch. + Default: False + pin_memory (bool): Whether to use pin_memory in DataLoader. + Default: True + persistent_workers (bool): If True, the data loader will not shutdown + the worker processes after a dataset has been consumed once. + This allows to maintain the workers Dataset instances alive. + The argument also has effect in PyTorch>=1.8.0. + Default: False + kwargs (dict, optional): Any keyword argument to be used to initialize + DataLoader. + + Returns: + DataLoader: A PyTorch dataloader. + """ + rank, world_size = get_dist_info() + sample_by_class = getattr(dataset, 'sample_by_class', False) + + short_cycle = kwargs.pop('short_cycle', False) + multigrid_cfg = kwargs.pop('multigrid_cfg', None) + crop_size = kwargs.pop('crop_size', 224) + + if dist: + if sample_by_class: + dynamic_length = getattr(dataset, 'dynamic_length', True) + sampler = ClassSpecificDistributedSampler( + dataset, + world_size, + rank, + dynamic_length=dynamic_length, + shuffle=shuffle, + seed=seed) + else: + sampler = DistributedSampler( + dataset, world_size, rank, shuffle=shuffle, seed=seed) + shuffle = False + batch_size = videos_per_gpu + num_workers = workers_per_gpu + + if short_cycle: + batch_sampler = ShortCycleSampler(sampler, batch_size, + multigrid_cfg, crop_size) + init_fn = partial( + worker_init_fn, num_workers=num_workers, rank=rank, + seed=seed) if seed is not None else None + + if digit_version(torch.__version__) >= digit_version('1.8.0'): + kwargs['persistent_workers'] = persistent_workers + + data_loader = DataLoader( + dataset, + batch_sampler=batch_sampler, + num_workers=num_workers, + pin_memory=pin_memory, + worker_init_fn=init_fn, + **kwargs) + return data_loader + + else: + if short_cycle: + raise NotImplementedError( + 'Short cycle using non-dist is not supported') + + sampler = None + batch_size = num_gpus * videos_per_gpu + num_workers = num_gpus * workers_per_gpu + + init_fn = partial( + worker_init_fn, num_workers=num_workers, rank=rank, + seed=seed) if seed is not None else None + + if digit_version(torch.__version__) >= digit_version('1.8.0'): + kwargs['persistent_workers'] = persistent_workers + + data_loader = DataLoader( + dataset, + batch_size=batch_size, + sampler=sampler, + num_workers=num_workers, + collate_fn=partial(collate, samples_per_gpu=videos_per_gpu), + pin_memory=pin_memory, + shuffle=shuffle, + worker_init_fn=init_fn, + drop_last=drop_last, + **kwargs) + + return data_loader + + +def worker_init_fn(worker_id, num_workers, rank, seed): + """Init the random seed for various workers.""" + # The seed of each worker equals to + # num_worker * rank + worker_id + user_seed + worker_seed = num_workers * rank + worker_id + seed + np.random.seed(worker_seed) + random.seed(worker_seed) + torch.manual_seed(worker_seed) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/dataset_wrappers.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/dataset_wrappers.py new file mode 100644 index 00000000..7868e407 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/dataset_wrappers.py @@ -0,0 +1,71 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np + +from .builder import DATASETS, build_dataset + + +@DATASETS.register_module() +class RepeatDataset: + """A wrapper of repeated dataset. + + The length of repeated dataset will be ``times`` larger than the original + dataset. This is useful when the data loading time is long but the dataset + is small. Using RepeatDataset can reduce the data loading time between + epochs. + + Args: + dataset (dict): The config of the dataset to be repeated. + times (int): Repeat times. + test_mode (bool): Store True when building test or validation dataset. + Default: False. + """ + + def __init__(self, dataset, times, test_mode=False): + dataset['test_mode'] = test_mode + self.dataset = build_dataset(dataset) + self.times = times + + self._ori_len = len(self.dataset) + + def __getitem__(self, idx): + """Get data.""" + return self.dataset[idx % self._ori_len] + + def __len__(self): + """Length after repetition.""" + return self.times * self._ori_len + + +@DATASETS.register_module() +class ConcatDataset: + """A wrapper of concatenated dataset. + + The length of concatenated dataset will be the sum of lengths of all + datasets. This is useful when you want to train a model with multiple data + sources. + + Args: + datasets (list[dict]): The configs of the datasets. + test_mode (bool): Store True when building test or validation dataset. + Default: False. + """ + + def __init__(self, datasets, test_mode=False): + + for item in datasets: + item['test_mode'] = test_mode + + datasets = [build_dataset(cfg) for cfg in datasets] + self.datasets = datasets + self.lens = [len(x) for x in self.datasets] + self.cumsum = np.cumsum(self.lens) + + def __getitem__(self, idx): + """Get data.""" + dataset_idx = np.searchsorted(self.cumsum, idx, side='right') + item_idx = idx if dataset_idx == 0 else idx - self.cumsum[dataset_idx] + return self.datasets[dataset_idx][item_idx] + + def __len__(self): + """Length after repetition.""" + return sum(self.lens) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/hvu_dataset.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/hvu_dataset.py new file mode 100644 index 00000000..7049944a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/hvu_dataset.py @@ -0,0 +1,192 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy +import os.path as osp +from collections import OrderedDict + +import mmcv +import numpy as np +from mmcv.utils import print_log + +from ..core import mean_average_precision +from .base import BaseDataset +from .builder import DATASETS + + +@DATASETS.register_module() +class HVUDataset(BaseDataset): + """HVU dataset, which supports the recognition tags of multiple categories. + Accept both video annotation files or rawframe annotation files. + + The dataset loads videos or raw frames and applies specified transforms to + return a dict containing the frame tensors and other information. + + The ann_file is a json file with multiple dictionaries, and each dictionary + indicates a sample video with the filename and tags, the tags are organized + as different categories. Example of a video dictionary: + + .. code-block:: txt + + { + 'filename': 'gD_G1b0wV5I_001015_001035.mp4', + 'label': { + 'concept': [250, 131, 42, 51, 57, 155, 122], + 'object': [1570, 508], + 'event': [16], + 'action': [180], + 'scene': [206] + } + } + + Example of a rawframe dictionary: + + .. code-block:: txt + + { + 'frame_dir': 'gD_G1b0wV5I_001015_001035', + 'total_frames': 61 + 'label': { + 'concept': [250, 131, 42, 51, 57, 155, 122], + 'object': [1570, 508], + 'event': [16], + 'action': [180], + 'scene': [206] + } + } + + + Args: + ann_file (str): Path to the annotation file, should be a json file. + pipeline (list[dict | callable]): A sequence of data transforms. + tag_categories (list[str]): List of category names of tags. + tag_category_nums (list[int]): List of number of tags in each category. + filename_tmpl (str | None): Template for each filename. If set to None, + video dataset is used. Default: None. + **kwargs: Keyword arguments for ``BaseDataset``. + """ + + def __init__(self, + ann_file, + pipeline, + tag_categories, + tag_category_nums, + filename_tmpl=None, + **kwargs): + assert len(tag_categories) == len(tag_category_nums) + self.tag_categories = tag_categories + self.tag_category_nums = tag_category_nums + self.filename_tmpl = filename_tmpl + self.num_categories = len(self.tag_categories) + self.num_tags = sum(self.tag_category_nums) + self.category2num = dict(zip(tag_categories, tag_category_nums)) + self.start_idx = [0] + for i in range(self.num_categories - 1): + self.start_idx.append(self.start_idx[-1] + + self.tag_category_nums[i]) + self.category2startidx = dict(zip(tag_categories, self.start_idx)) + self.start_index = kwargs.pop('start_index', 0) + self.dataset_type = None + super().__init__( + ann_file, pipeline, start_index=self.start_index, **kwargs) + + def load_annotations(self): + """Load annotation file to get video information.""" + assert self.ann_file.endswith('.json') + return self.load_json_annotations() + + def load_json_annotations(self): + video_infos = mmcv.load(self.ann_file) + num_videos = len(video_infos) + + video_info0 = video_infos[0] + assert ('filename' in video_info0) != ('frame_dir' in video_info0) + path_key = 'filename' if 'filename' in video_info0 else 'frame_dir' + self.dataset_type = 'video' if path_key == 'filename' else 'rawframe' + if self.dataset_type == 'rawframe': + assert self.filename_tmpl is not None + + for i in range(num_videos): + path_value = video_infos[i][path_key] + if self.data_prefix is not None: + path_value = osp.join(self.data_prefix, path_value) + video_infos[i][path_key] = path_value + + # We will convert label to torch tensors in the pipeline + video_infos[i]['categories'] = self.tag_categories + video_infos[i]['category_nums'] = self.tag_category_nums + if self.dataset_type == 'rawframe': + video_infos[i]['filename_tmpl'] = self.filename_tmpl + video_infos[i]['start_index'] = self.start_index + video_infos[i]['modality'] = self.modality + + return video_infos + + @staticmethod + def label2array(num, label): + arr = np.zeros(num, dtype=np.float32) + arr[label] = 1. + return arr + + def evaluate(self, + results, + metrics='mean_average_precision', + metric_options=None, + logger=None): + """Evaluation in HVU Video Dataset. We only support evaluating mAP for + each tag categories. Since some tag categories are missing for some + videos, we can not evaluate mAP for all tags. + + Args: + results (list): Output results. + metrics (str | sequence[str]): Metrics to be performed. + Defaults: 'mean_average_precision'. + metric_options (dict | None): Dict for metric options. + Default: None. + logger (logging.Logger | None): Logger for recording. + Default: None. + + Returns: + dict: Evaluation results dict. + """ + # Protect ``metric_options`` since it uses mutable value as default + metric_options = copy.deepcopy(metric_options) + + if not isinstance(results, list): + raise TypeError(f'results must be a list, but got {type(results)}') + assert len(results) == len(self), ( + f'The length of results is not equal to the dataset len: ' + f'{len(results)} != {len(self)}') + + metrics = metrics if isinstance(metrics, (list, tuple)) else [metrics] + + # There should be only one metric in the metrics list: + # 'mean_average_precision' + assert len(metrics) == 1 + metric = metrics[0] + assert metric == 'mean_average_precision' + + gt_labels = [ann['label'] for ann in self.video_infos] + + eval_results = OrderedDict() + + for category in self.tag_categories: + + start_idx = self.category2startidx[category] + num = self.category2num[category] + preds = [ + result[start_idx:start_idx + num] + for video_idx, result in enumerate(results) + if category in gt_labels[video_idx] + ] + gts = [ + gt_label[category] for gt_label in gt_labels + if category in gt_label + ] + + gts = [self.label2array(num, item) for item in gts] + + mAP = mean_average_precision(preds, gts) + eval_results[f'{category}_mAP'] = mAP + log_msg = f'\n{category}_mAP\t{mAP:.4f}' + print_log(log_msg, logger=logger) + + return eval_results diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/image_dataset.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/image_dataset.py new file mode 100644 index 00000000..6d84b35f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/image_dataset.py @@ -0,0 +1,46 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .builder import DATASETS +from .video_dataset import VideoDataset + + +@DATASETS.register_module() +class ImageDataset(VideoDataset): + """Image dataset for action recognition, used in the Project OmniSource. + + The dataset loads image list and apply specified transforms to return a + dict containing the image tensors and other information. For the + ImageDataset + + The ann_file is a text file with multiple lines, and each line indicates + the image path and the image label, which are split with a whitespace. + Example of a annotation file: + + .. code-block:: txt + + path/to/image1.jpg 1 + path/to/image2.jpg 1 + path/to/image3.jpg 2 + path/to/image4.jpg 2 + path/to/image5.jpg 3 + path/to/image6.jpg 3 + + Example of a multi-class annotation file: + + .. code-block:: txt + + path/to/image1.jpg 1 3 5 + path/to/image2.jpg 1 2 + path/to/image3.jpg 2 + path/to/image4.jpg 2 4 6 8 + path/to/image5.jpg 3 + path/to/image6.jpg 3 + + Args: + ann_file (str): Path to the annotation file. + pipeline (list[dict | callable]): A sequence of data transforms. + **kwargs: Keyword arguments for ``BaseDataset``. + """ + + def __init__(self, ann_file, pipeline, **kwargs): + super().__init__(ann_file, pipeline, start_index=None, **kwargs) + # use `start_index=None` to indicate it is for `ImageDataset` diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/__init__.py new file mode 100644 index 00000000..1905bf98 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/__init__.py @@ -0,0 +1,41 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .augmentations import (AudioAmplify, CenterCrop, ColorJitter, Flip, Fuse, + Imgaug, MelSpectrogram, MultiScaleCrop, Normalize, + PytorchVideoTrans, RandomCrop, RandomRescale, + RandomResizedCrop, Resize, TenCrop, ThreeCrop, + TorchvisionTrans) +from .compose import Compose +from .formatting import (Collect, FormatAudioShape, FormatGCNInput, + FormatShape, ImageToTensor, JointToBone, Rename, + ToDataContainer, ToTensor, Transpose) +from .loading import (ArrayDecode, AudioDecode, AudioDecodeInit, + AudioFeatureSelector, BuildPseudoClip, DecordDecode, + DecordInit, DenseSampleFrames, + GenerateLocalizationLabels, ImageDecode, + LoadAudioFeature, LoadHVULabel, LoadLocalizationFeature, + LoadProposals, OpenCVDecode, OpenCVInit, PIMSDecode, + PIMSInit, PyAVDecode, PyAVDecodeMotionVector, PyAVInit, + RawFrameDecode, SampleAVAFrames, SampleFrames, + SampleProposalFrames, UntrimmedSampleFrames) +from .pose_loading import (GeneratePoseTarget, LoadKineticsPose, + PaddingWithLoop, PoseDecode, PoseNormalize, + UniformSampleFrames) + +__all__ = [ + 'SampleFrames', 'PyAVDecode', 'DecordDecode', 'DenseSampleFrames', + 'OpenCVDecode', 'MultiScaleCrop', 'RandomResizedCrop', 'RandomCrop', + 'Resize', 'Flip', 'Fuse', 'Normalize', 'ThreeCrop', 'CenterCrop', + 'TenCrop', 'ImageToTensor', 'Transpose', 'Collect', 'FormatShape', + 'Compose', 'ToTensor', 'ToDataContainer', 'GenerateLocalizationLabels', + 'LoadLocalizationFeature', 'LoadProposals', 'DecordInit', 'OpenCVInit', + 'PyAVInit', 'SampleProposalFrames', 'UntrimmedSampleFrames', + 'RawFrameDecode', 'DecordInit', 'OpenCVInit', 'PyAVInit', + 'SampleProposalFrames', 'ColorJitter', 'LoadHVULabel', 'SampleAVAFrames', + 'AudioAmplify', 'MelSpectrogram', 'AudioDecode', 'FormatAudioShape', + 'LoadAudioFeature', 'AudioFeatureSelector', 'AudioDecodeInit', + 'ImageDecode', 'BuildPseudoClip', 'RandomRescale', + 'PyAVDecodeMotionVector', 'Rename', 'Imgaug', 'UniformSampleFrames', + 'PoseDecode', 'LoadKineticsPose', 'GeneratePoseTarget', 'PIMSInit', + 'PIMSDecode', 'TorchvisionTrans', 'PytorchVideoTrans', 'PoseNormalize', + 'FormatGCNInput', 'PaddingWithLoop', 'ArrayDecode', 'JointToBone' +] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/augmentations.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/augmentations.py new file mode 100644 index 00000000..9bd5d266 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/augmentations.py @@ -0,0 +1,1905 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import random +import warnings +from collections.abc import Sequence + +import cv2 +import mmcv +import numpy as np +from mmcv.utils import digit_version +from torch.nn.modules.utils import _pair + +from ..builder import PIPELINES +from .formatting import to_tensor + + +def _combine_quadruple(a, b): + return (a[0] + a[2] * b[0], a[1] + a[3] * b[1], a[2] * b[2], a[3] * b[3]) + + +def _flip_quadruple(a): + return (1 - a[0] - a[2], a[1], a[2], a[3]) + + +def _init_lazy_if_proper(results, lazy): + """Initialize lazy operation properly. + + Make sure that a lazy operation is properly initialized, + and avoid a non-lazy operation accidentally getting mixed in. + + Required keys in results are "imgs" if "img_shape" not in results, + otherwise, Required keys in results are "img_shape", add or modified keys + are "img_shape", "lazy". + Add or modified keys in "lazy" are "original_shape", "crop_bbox", "flip", + "flip_direction", "interpolation". + + Args: + results (dict): A dict stores data pipeline result. + lazy (bool): Determine whether to apply lazy operation. Default: False. + """ + + if 'img_shape' not in results: + results['img_shape'] = results['imgs'][0].shape[:2] + if lazy: + if 'lazy' not in results: + img_h, img_w = results['img_shape'] + lazyop = dict() + lazyop['original_shape'] = results['img_shape'] + lazyop['crop_bbox'] = np.array([0, 0, img_w, img_h], + dtype=np.float32) + lazyop['flip'] = False + lazyop['flip_direction'] = None + lazyop['interpolation'] = None + results['lazy'] = lazyop + else: + assert 'lazy' not in results, 'Use Fuse after lazy operations' + + +@PIPELINES.register_module() +class TorchvisionTrans: + """Torchvision Augmentations, under torchvision.transforms. + + Args: + type (str): The name of the torchvision transformation. + """ + + def __init__(self, type, **kwargs): + try: + import torchvision + import torchvision.transforms as tv_trans + except ImportError: + raise RuntimeError('Install torchvision to use TorchvisionTrans') + if digit_version(torchvision.__version__) < digit_version('0.8.0'): + raise RuntimeError('The version of torchvision should be at least ' + '0.8.0') + + trans = getattr(tv_trans, type, None) + assert trans, f'Transform {type} not in torchvision' + self.trans = trans(**kwargs) + + def __call__(self, results): + assert 'imgs' in results + + imgs = [x.transpose(2, 0, 1) for x in results['imgs']] + imgs = to_tensor(np.stack(imgs)) + + imgs = self.trans(imgs).data.numpy() + imgs[imgs > 255] = 255 + imgs[imgs < 0] = 0 + imgs = imgs.astype(np.uint8) + imgs = [x.transpose(1, 2, 0) for x in imgs] + results['imgs'] = imgs + return results + + +@PIPELINES.register_module() +class PytorchVideoTrans: + """PytorchVideoTrans Augmentations, under pytorchvideo.transforms. + + Args: + type (str): The name of the pytorchvideo transformation. + """ + + def __init__(self, type, **kwargs): + try: + import pytorchvideo.transforms as ptv_trans + import torch + except ImportError: + raise RuntimeError('Install pytorchvideo to use PytorchVideoTrans') + if digit_version(torch.__version__) < digit_version('1.8.0'): + raise RuntimeError( + 'The version of PyTorch should be at least 1.8.0') + + trans = getattr(ptv_trans, type, None) + assert trans, f'Transform {type} not in pytorchvideo' + + supported_pytorchvideo_trans = ('AugMix', 'RandAugment', + 'RandomResizedCrop', 'ShortSideScale', + 'RandomShortSideScale') + assert type in supported_pytorchvideo_trans,\ + f'PytorchVideo Transform {type} is not supported in MMAction2' + + self.trans = trans(**kwargs) + self.type = type + + def __call__(self, results): + assert 'imgs' in results + + assert 'gt_bboxes' not in results,\ + f'PytorchVideo {self.type} doesn\'t support bboxes yet.' + assert 'proposals' not in results,\ + f'PytorchVideo {self.type} doesn\'t support bboxes yet.' + + if self.type in ('AugMix', 'RandAugment'): + # list[ndarray(h, w, 3)] -> torch.tensor(t, c, h, w) + imgs = [x.transpose(2, 0, 1) for x in results['imgs']] + imgs = to_tensor(np.stack(imgs)) + else: + # list[ndarray(h, w, 3)] -> torch.tensor(c, t, h, w) + # uint8 -> float32 + imgs = to_tensor((np.stack(results['imgs']).transpose(3, 0, 1, 2) / + 255.).astype(np.float32)) + + imgs = self.trans(imgs).data.numpy() + + if self.type in ('AugMix', 'RandAugment'): + imgs[imgs > 255] = 255 + imgs[imgs < 0] = 0 + imgs = imgs.astype(np.uint8) + + # torch.tensor(t, c, h, w) -> list[ndarray(h, w, 3)] + imgs = [x.transpose(1, 2, 0) for x in imgs] + else: + # float32 -> uint8 + imgs = imgs * 255 + imgs[imgs > 255] = 255 + imgs[imgs < 0] = 0 + imgs = imgs.astype(np.uint8) + + # torch.tensor(c, t, h, w) -> list[ndarray(h, w, 3)] + imgs = [x for x in imgs.transpose(1, 2, 3, 0)] + + results['imgs'] = imgs + + return results + + +@PIPELINES.register_module() +class PoseCompact: + """Convert the coordinates of keypoints to make it more compact. + Specifically, it first find a tight bounding box that surrounds all joints + in each frame, then we expand the tight box by a given padding ratio. For + example, if 'padding == 0.25', then the expanded box has unchanged center, + and 1.25x width and height. + + Required keys in results are "img_shape", "keypoint", add or modified keys + are "img_shape", "keypoint", "crop_quadruple". + + Args: + padding (float): The padding size. Default: 0.25. + threshold (int): The threshold for the tight bounding box. If the width + or height of the tight bounding box is smaller than the threshold, + we do not perform the compact operation. Default: 10. + hw_ratio (float | tuple[float] | None): The hw_ratio of the expanded + box. Float indicates the specific ratio and tuple indicates a + ratio range. If set as None, it means there is no requirement on + hw_ratio. Default: None. + allow_imgpad (bool): Whether to allow expanding the box outside the + image to meet the hw_ratio requirement. Default: True. + + Returns: + type: Description of returned object. + """ + + def __init__(self, + padding=0.25, + threshold=10, + hw_ratio=None, + allow_imgpad=True): + + self.padding = padding + self.threshold = threshold + if hw_ratio is not None: + hw_ratio = _pair(hw_ratio) + + self.hw_ratio = hw_ratio + + self.allow_imgpad = allow_imgpad + assert self.padding >= 0 + + def __call__(self, results): + img_shape = results['img_shape'] + h, w = img_shape + kp = results['keypoint'] + + # Make NaN zero + kp[np.isnan(kp)] = 0. + kp_x = kp[..., 0] + kp_y = kp[..., 1] + + min_x = np.min(kp_x[kp_x != 0], initial=np.Inf) + min_y = np.min(kp_y[kp_y != 0], initial=np.Inf) + max_x = np.max(kp_x[kp_x != 0], initial=-np.Inf) + max_y = np.max(kp_y[kp_y != 0], initial=-np.Inf) + + # The compact area is too small + if max_x - min_x < self.threshold or max_y - min_y < self.threshold: + return results + + center = ((max_x + min_x) / 2, (max_y + min_y) / 2) + half_width = (max_x - min_x) / 2 * (1 + self.padding) + half_height = (max_y - min_y) / 2 * (1 + self.padding) + + if self.hw_ratio is not None: + half_height = max(self.hw_ratio[0] * half_width, half_height) + half_width = max(1 / self.hw_ratio[1] * half_height, half_width) + + min_x, max_x = center[0] - half_width, center[0] + half_width + min_y, max_y = center[1] - half_height, center[1] + half_height + + # hot update + if not self.allow_imgpad: + min_x, min_y = int(max(0, min_x)), int(max(0, min_y)) + max_x, max_y = int(min(w, max_x)), int(min(h, max_y)) + else: + min_x, min_y = int(min_x), int(min_y) + max_x, max_y = int(max_x), int(max_y) + + kp_x[kp_x != 0] -= min_x + kp_y[kp_y != 0] -= min_y + + new_shape = (max_y - min_y, max_x - min_x) + results['img_shape'] = new_shape + + # the order is x, y, w, h (in [0, 1]), a tuple + crop_quadruple = results.get('crop_quadruple', (0., 0., 1., 1.)) + new_crop_quadruple = (min_x / w, min_y / h, (max_x - min_x) / w, + (max_y - min_y) / h) + crop_quadruple = _combine_quadruple(crop_quadruple, new_crop_quadruple) + results['crop_quadruple'] = crop_quadruple + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(padding={self.padding}, ' + f'threshold={self.threshold}, ' + f'hw_ratio={self.hw_ratio}, ' + f'allow_imgpad={self.allow_imgpad})') + return repr_str + + +@PIPELINES.register_module() +class Imgaug: + """Imgaug augmentation. + + Adds custom transformations from imgaug library. + Please visit `https://imgaug.readthedocs.io/en/latest/index.html` + to get more information. Two demo configs could be found in tsn and i3d + config folder. + + It's better to use uint8 images as inputs since imgaug works best with + numpy dtype uint8 and isn't well tested with other dtypes. It should be + noted that not all of the augmenters have the same input and output dtype, + which may cause unexpected results. + + Required keys are "imgs", "img_shape"(if "gt_bboxes" is not None) and + "modality", added or modified keys are "imgs", "img_shape", "gt_bboxes" + and "proposals". + + It is worth mentioning that `Imgaug` will NOT create custom keys like + "interpolation", "crop_bbox", "flip_direction", etc. So when using + `Imgaug` along with other mmaction2 pipelines, we should pay more attention + to required keys. + + Two steps to use `Imgaug` pipeline: + 1. Create initialization parameter `transforms`. There are three ways + to create `transforms`. + 1) string: only support `default` for now. + e.g. `transforms='default'` + 2) list[dict]: create a list of augmenters by a list of dicts, each + dict corresponds to one augmenter. Every dict MUST contain a key + named `type`. `type` should be a string(iaa.Augmenter's name) or + an iaa.Augmenter subclass. + e.g. `transforms=[dict(type='Rotate', rotate=(-20, 20))]` + e.g. `transforms=[dict(type=iaa.Rotate, rotate=(-20, 20))]` + 3) iaa.Augmenter: create an imgaug.Augmenter object. + e.g. `transforms=iaa.Rotate(rotate=(-20, 20))` + 2. Add `Imgaug` in dataset pipeline. It is recommended to insert imgaug + pipeline before `Normalize`. A demo pipeline is listed as follows. + ``` + pipeline = [ + dict( + type='SampleFrames', + clip_len=1, + frame_interval=1, + num_clips=16, + ), + dict(type='RawFrameDecode'), + dict(type='Resize', scale=(-1, 256)), + dict( + type='MultiScaleCrop', + input_size=224, + scales=(1, 0.875, 0.75, 0.66), + random_crop=False, + max_wh_scale_gap=1, + num_fixed_crops=13), + dict(type='Resize', scale=(224, 224), keep_ratio=False), + dict(type='Flip', flip_ratio=0.5), + dict(type='Imgaug', transforms='default'), + # dict(type='Imgaug', transforms=[ + # dict(type='Rotate', rotate=(-20, 20)) + # ]), + dict(type='Normalize', **img_norm_cfg), + dict(type='FormatShape', input_format='NCHW'), + dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]), + dict(type='ToTensor', keys=['imgs', 'label']) + ] + ``` + + Args: + transforms (str | list[dict] | :obj:`iaa.Augmenter`): Three different + ways to create imgaug augmenter. + """ + + def __init__(self, transforms): + import imgaug.augmenters as iaa + + if transforms == 'default': + self.transforms = self.default_transforms() + elif isinstance(transforms, list): + assert all(isinstance(trans, dict) for trans in transforms) + self.transforms = transforms + elif isinstance(transforms, iaa.Augmenter): + self.aug = self.transforms = transforms + else: + raise ValueError('transforms must be `default` or a list of dicts' + ' or iaa.Augmenter object') + + if not isinstance(transforms, iaa.Augmenter): + self.aug = iaa.Sequential( + [self.imgaug_builder(t) for t in self.transforms]) + + @staticmethod + def default_transforms(): + """Default transforms for imgaug. + + Implement RandAugment by imgaug. + Please visit `https://arxiv.org/abs/1909.13719` for more information. + + Augmenters and hyper parameters are borrowed from the following repo: + https://github.com/tensorflow/tpu/blob/master/models/official/efficientnet/autoaugment.py # noqa + + Miss one augmenter ``SolarizeAdd`` since imgaug doesn't support this. + + Returns: + dict: The constructed RandAugment transforms. + """ + # RandAugment hyper params + num_augmenters = 2 + cur_magnitude, max_magnitude = 9, 10 + cur_level = 1.0 * cur_magnitude / max_magnitude + + return [ + dict( + type='SomeOf', + n=num_augmenters, + children=[ + dict( + type='ShearX', + shear=17.19 * cur_level * random.choice([-1, 1])), + dict( + type='ShearY', + shear=17.19 * cur_level * random.choice([-1, 1])), + dict( + type='TranslateX', + percent=.2 * cur_level * random.choice([-1, 1])), + dict( + type='TranslateY', + percent=.2 * cur_level * random.choice([-1, 1])), + dict( + type='Rotate', + rotate=30 * cur_level * random.choice([-1, 1])), + dict(type='Posterize', nb_bits=max(1, int(4 * cur_level))), + dict(type='Solarize', threshold=256 * cur_level), + dict(type='EnhanceColor', factor=1.8 * cur_level + .1), + dict(type='EnhanceContrast', factor=1.8 * cur_level + .1), + dict( + type='EnhanceBrightness', factor=1.8 * cur_level + .1), + dict(type='EnhanceSharpness', factor=1.8 * cur_level + .1), + dict(type='Autocontrast', cutoff=0), + dict(type='Equalize'), + dict(type='Invert', p=1.), + dict( + type='Cutout', + nb_iterations=1, + size=0.2 * cur_level, + squared=True) + ]) + ] + + def imgaug_builder(self, cfg): + """Import a module from imgaug. + + It follows the logic of :func:`build_from_cfg`. Use a dict object to + create an iaa.Augmenter object. + + Args: + cfg (dict): Config dict. It should at least contain the key "type". + + Returns: + obj:`iaa.Augmenter`: The constructed imgaug augmenter. + """ + import imgaug.augmenters as iaa + + assert isinstance(cfg, dict) and 'type' in cfg + args = cfg.copy() + + obj_type = args.pop('type') + if mmcv.is_str(obj_type): + obj_cls = getattr(iaa, obj_type) if hasattr(iaa, obj_type) \ + else getattr(iaa.pillike, obj_type) + elif issubclass(obj_type, iaa.Augmenter): + obj_cls = obj_type + else: + raise TypeError( + f'type must be a str or valid type, but got {type(obj_type)}') + + if 'children' in args: + args['children'] = [ + self.imgaug_builder(child) for child in args['children'] + ] + + return obj_cls(**args) + + def __repr__(self): + repr_str = self.__class__.__name__ + f'(transforms={self.aug})' + return repr_str + + def __call__(self, results): + assert results['modality'] == 'RGB', 'Imgaug only support RGB images.' + in_type = results['imgs'][0].dtype.type + + cur_aug = self.aug.to_deterministic() + + results['imgs'] = [ + cur_aug.augment_image(frame) for frame in results['imgs'] + ] + img_h, img_w, _ = results['imgs'][0].shape + + out_type = results['imgs'][0].dtype.type + assert in_type == out_type, \ + ('Imgaug input dtype and output dtype are not the same. ', + f'Convert from {in_type} to {out_type}') + + if 'gt_bboxes' in results: + from imgaug.augmentables import bbs + bbox_list = [ + bbs.BoundingBox( + x1=bbox[0], y1=bbox[1], x2=bbox[2], y2=bbox[3]) + for bbox in results['gt_bboxes'] + ] + bboxes = bbs.BoundingBoxesOnImage( + bbox_list, shape=results['img_shape']) + bbox_aug, *_ = cur_aug.augment_bounding_boxes([bboxes]) + results['gt_bboxes'] = [[ + max(bbox.x1, 0), + max(bbox.y1, 0), + min(bbox.x2, img_w), + min(bbox.y2, img_h) + ] for bbox in bbox_aug.items] + if 'proposals' in results: + bbox_list = [ + bbs.BoundingBox( + x1=bbox[0], y1=bbox[1], x2=bbox[2], y2=bbox[3]) + for bbox in results['proposals'] + ] + bboxes = bbs.BoundingBoxesOnImage( + bbox_list, shape=results['img_shape']) + bbox_aug, *_ = cur_aug.augment_bounding_boxes([bboxes]) + results['proposals'] = [[ + max(bbox.x1, 0), + max(bbox.y1, 0), + min(bbox.x2, img_w), + min(bbox.y2, img_h) + ] for bbox in bbox_aug.items] + + results['img_shape'] = (img_h, img_w) + + return results + + +@PIPELINES.register_module() +class Fuse: + """Fuse lazy operations. + + Fusion order: + crop -> resize -> flip + + Required keys are "imgs", "img_shape" and "lazy", added or modified keys + are "imgs", "lazy". + Required keys in "lazy" are "crop_bbox", "interpolation", "flip_direction". + """ + + def __call__(self, results): + if 'lazy' not in results: + raise ValueError('No lazy operation detected') + lazyop = results['lazy'] + imgs = results['imgs'] + + # crop + left, top, right, bottom = lazyop['crop_bbox'].round().astype(int) + imgs = [img[top:bottom, left:right] for img in imgs] + + # resize + img_h, img_w = results['img_shape'] + if lazyop['interpolation'] is None: + interpolation = 'bilinear' + else: + interpolation = lazyop['interpolation'] + imgs = [ + mmcv.imresize(img, (img_w, img_h), interpolation=interpolation) + for img in imgs + ] + + # flip + if lazyop['flip']: + for img in imgs: + mmcv.imflip_(img, lazyop['flip_direction']) + + results['imgs'] = imgs + del results['lazy'] + + return results + + +@PIPELINES.register_module() +class RandomCrop: + """Vanilla square random crop that specifics the output size. + + Required keys in results are "img_shape", "keypoint" (optional), "imgs" + (optional), added or modified keys are "keypoint", "imgs", "lazy"; Required + keys in "lazy" are "flip", "crop_bbox", added or modified key is + "crop_bbox". + + Args: + size (int): The output size of the images. + lazy (bool): Determine whether to apply lazy operation. Default: False. + """ + + def __init__(self, size, lazy=False): + if not isinstance(size, int): + raise TypeError(f'Size must be an int, but got {type(size)}') + self.size = size + self.lazy = lazy + + @staticmethod + def _crop_kps(kps, crop_bbox): + return kps - crop_bbox[:2] + + @staticmethod + def _crop_imgs(imgs, crop_bbox): + x1, y1, x2, y2 = crop_bbox + return [img[y1:y2, x1:x2] for img in imgs] + + @staticmethod + def _box_crop(box, crop_bbox): + """Crop the bounding boxes according to the crop_bbox. + + Args: + box (np.ndarray): The bounding boxes. + crop_bbox(np.ndarray): The bbox used to crop the original image. + """ + + x1, y1, x2, y2 = crop_bbox + img_w, img_h = x2 - x1, y2 - y1 + + box_ = box.copy() + box_[..., 0::2] = np.clip(box[..., 0::2] - x1, 0, img_w - 1) + box_[..., 1::2] = np.clip(box[..., 1::2] - y1, 0, img_h - 1) + return box_ + + def _all_box_crop(self, results, crop_bbox): + """Crop the gt_bboxes and proposals in results according to crop_bbox. + + Args: + results (dict): All information about the sample, which contain + 'gt_bboxes' and 'proposals' (optional). + crop_bbox(np.ndarray): The bbox used to crop the original image. + """ + results['gt_bboxes'] = self._box_crop(results['gt_bboxes'], crop_bbox) + if 'proposals' in results and results['proposals'] is not None: + assert results['proposals'].shape[1] == 4 + results['proposals'] = self._box_crop(results['proposals'], + crop_bbox) + return results + + def __call__(self, results): + """Performs the RandomCrop augmentation. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + _init_lazy_if_proper(results, self.lazy) + if 'keypoint' in results: + assert not self.lazy, ('Keypoint Augmentations are not compatible ' + 'with lazy == True') + + img_h, img_w = results['img_shape'] + assert self.size <= img_h and self.size <= img_w + + y_offset = 0 + x_offset = 0 + if img_h > self.size: + y_offset = int(np.random.randint(0, img_h - self.size)) + if img_w > self.size: + x_offset = int(np.random.randint(0, img_w - self.size)) + + if 'crop_quadruple' not in results: + results['crop_quadruple'] = np.array( + [0, 0, 1, 1], # x, y, w, h + dtype=np.float32) + + x_ratio, y_ratio = x_offset / img_w, y_offset / img_h + w_ratio, h_ratio = self.size / img_w, self.size / img_h + + old_crop_quadruple = results['crop_quadruple'] + old_x_ratio, old_y_ratio = old_crop_quadruple[0], old_crop_quadruple[1] + old_w_ratio, old_h_ratio = old_crop_quadruple[2], old_crop_quadruple[3] + new_crop_quadruple = [ + old_x_ratio + x_ratio * old_w_ratio, + old_y_ratio + y_ratio * old_h_ratio, w_ratio * old_w_ratio, + h_ratio * old_h_ratio + ] + results['crop_quadruple'] = np.array( + new_crop_quadruple, dtype=np.float32) + + new_h, new_w = self.size, self.size + + crop_bbox = np.array( + [x_offset, y_offset, x_offset + new_w, y_offset + new_h]) + results['crop_bbox'] = crop_bbox + + results['img_shape'] = (new_h, new_w) + + if not self.lazy: + if 'keypoint' in results: + results['keypoint'] = self._crop_kps(results['keypoint'], + crop_bbox) + if 'imgs' in results: + results['imgs'] = self._crop_imgs(results['imgs'], crop_bbox) + else: + lazyop = results['lazy'] + if lazyop['flip']: + raise NotImplementedError('Put Flip at last for now') + + # record crop_bbox in lazyop dict to ensure only crop once in Fuse + lazy_left, lazy_top, lazy_right, lazy_bottom = lazyop['crop_bbox'] + left = x_offset * (lazy_right - lazy_left) / img_w + right = (x_offset + new_w) * (lazy_right - lazy_left) / img_w + top = y_offset * (lazy_bottom - lazy_top) / img_h + bottom = (y_offset + new_h) * (lazy_bottom - lazy_top) / img_h + lazyop['crop_bbox'] = np.array([(lazy_left + left), + (lazy_top + top), + (lazy_left + right), + (lazy_top + bottom)], + dtype=np.float32) + + # Process entity boxes + if 'gt_bboxes' in results: + assert not self.lazy + results = self._all_box_crop(results, results['crop_bbox']) + + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(size={self.size}, ' + f'lazy={self.lazy})') + return repr_str + + +@PIPELINES.register_module() +class RandomResizedCrop(RandomCrop): + """Random crop that specifics the area and height-weight ratio range. + + Required keys in results are "img_shape", "crop_bbox", "imgs" (optional), + "keypoint" (optional), added or modified keys are "imgs", "keypoint", + "crop_bbox" and "lazy"; Required keys in "lazy" are "flip", "crop_bbox", + added or modified key is "crop_bbox". + + Args: + area_range (Tuple[float]): The candidate area scales range of + output cropped images. Default: (0.08, 1.0). + aspect_ratio_range (Tuple[float]): The candidate aspect ratio range of + output cropped images. Default: (3 / 4, 4 / 3). + lazy (bool): Determine whether to apply lazy operation. Default: False. + """ + + def __init__(self, + area_range=(0.08, 1.0), + aspect_ratio_range=(3 / 4, 4 / 3), + lazy=False): + self.area_range = area_range + self.aspect_ratio_range = aspect_ratio_range + self.lazy = lazy + if not mmcv.is_tuple_of(self.area_range, float): + raise TypeError(f'Area_range must be a tuple of float, ' + f'but got {type(area_range)}') + if not mmcv.is_tuple_of(self.aspect_ratio_range, float): + raise TypeError(f'Aspect_ratio_range must be a tuple of float, ' + f'but got {type(aspect_ratio_range)}') + + @staticmethod + def get_crop_bbox(img_shape, + area_range, + aspect_ratio_range, + max_attempts=10): + """Get a crop bbox given the area range and aspect ratio range. + + Args: + img_shape (Tuple[int]): Image shape + area_range (Tuple[float]): The candidate area scales range of + output cropped images. Default: (0.08, 1.0). + aspect_ratio_range (Tuple[float]): The candidate aspect + ratio range of output cropped images. Default: (3 / 4, 4 / 3). + max_attempts (int): The maximum of attempts. Default: 10. + max_attempts (int): Max attempts times to generate random candidate + bounding box. If it doesn't qualified one, the center bounding + box will be used. + Returns: + (list[int]) A random crop bbox within the area range and aspect + ratio range. + """ + assert 0 < area_range[0] <= area_range[1] <= 1 + assert 0 < aspect_ratio_range[0] <= aspect_ratio_range[1] + + img_h, img_w = img_shape + area = img_h * img_w + + min_ar, max_ar = aspect_ratio_range + aspect_ratios = np.exp( + np.random.uniform( + np.log(min_ar), np.log(max_ar), size=max_attempts)) + target_areas = np.random.uniform(*area_range, size=max_attempts) * area + candidate_crop_w = np.round(np.sqrt(target_areas * + aspect_ratios)).astype(np.int32) + candidate_crop_h = np.round(np.sqrt(target_areas / + aspect_ratios)).astype(np.int32) + + for i in range(max_attempts): + crop_w = candidate_crop_w[i] + crop_h = candidate_crop_h[i] + if crop_h <= img_h and crop_w <= img_w: + x_offset = random.randint(0, img_w - crop_w) + y_offset = random.randint(0, img_h - crop_h) + return x_offset, y_offset, x_offset + crop_w, y_offset + crop_h + + # Fallback + crop_size = min(img_h, img_w) + x_offset = (img_w - crop_size) // 2 + y_offset = (img_h - crop_size) // 2 + return x_offset, y_offset, x_offset + crop_size, y_offset + crop_size + + def __call__(self, results): + """Performs the RandomResizeCrop augmentation. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + _init_lazy_if_proper(results, self.lazy) + if 'keypoint' in results: + assert not self.lazy, ('Keypoint Augmentations are not compatible ' + 'with lazy == True') + + img_h, img_w = results['img_shape'] + + left, top, right, bottom = self.get_crop_bbox( + (img_h, img_w), self.area_range, self.aspect_ratio_range) + new_h, new_w = bottom - top, right - left + + if 'crop_quadruple' not in results: + results['crop_quadruple'] = np.array( + [0, 0, 1, 1], # x, y, w, h + dtype=np.float32) + + x_ratio, y_ratio = left / img_w, top / img_h + w_ratio, h_ratio = new_w / img_w, new_h / img_h + + old_crop_quadruple = results['crop_quadruple'] + old_x_ratio, old_y_ratio = old_crop_quadruple[0], old_crop_quadruple[1] + old_w_ratio, old_h_ratio = old_crop_quadruple[2], old_crop_quadruple[3] + new_crop_quadruple = [ + old_x_ratio + x_ratio * old_w_ratio, + old_y_ratio + y_ratio * old_h_ratio, w_ratio * old_w_ratio, + h_ratio * old_h_ratio + ] + results['crop_quadruple'] = np.array( + new_crop_quadruple, dtype=np.float32) + + crop_bbox = np.array([left, top, right, bottom]) + results['crop_bbox'] = crop_bbox + results['img_shape'] = (new_h, new_w) + + if not self.lazy: + if 'keypoint' in results: + results['keypoint'] = self._crop_kps(results['keypoint'], + crop_bbox) + if 'imgs' in results: + results['imgs'] = self._crop_imgs(results['imgs'], crop_bbox) + else: + lazyop = results['lazy'] + if lazyop['flip']: + raise NotImplementedError('Put Flip at last for now') + + # record crop_bbox in lazyop dict to ensure only crop once in Fuse + lazy_left, lazy_top, lazy_right, lazy_bottom = lazyop['crop_bbox'] + left = left * (lazy_right - lazy_left) / img_w + right = right * (lazy_right - lazy_left) / img_w + top = top * (lazy_bottom - lazy_top) / img_h + bottom = bottom * (lazy_bottom - lazy_top) / img_h + lazyop['crop_bbox'] = np.array([(lazy_left + left), + (lazy_top + top), + (lazy_left + right), + (lazy_top + bottom)], + dtype=np.float32) + + if 'gt_bboxes' in results: + assert not self.lazy + results = self._all_box_crop(results, results['crop_bbox']) + + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'area_range={self.area_range}, ' + f'aspect_ratio_range={self.aspect_ratio_range}, ' + f'lazy={self.lazy})') + return repr_str + + +@PIPELINES.register_module() +class MultiScaleCrop(RandomCrop): + """Crop images with a list of randomly selected scales. + + Randomly select the w and h scales from a list of scales. Scale of 1 means + the base size, which is the minimal of image width and height. The scale + level of w and h is controlled to be smaller than a certain value to + prevent too large or small aspect ratio. + + Required keys are "img_shape", "imgs" (optional), "keypoint" (optional), + added or modified keys are "imgs", "crop_bbox", "img_shape", "lazy" and + "scales". Required keys in "lazy" are "crop_bbox", added or modified key is + "crop_bbox". + + Args: + input_size (int | tuple[int]): (w, h) of network input. + scales (tuple[float]): width and height scales to be selected. + max_wh_scale_gap (int): Maximum gap of w and h scale levels. + Default: 1. + random_crop (bool): If set to True, the cropping bbox will be randomly + sampled, otherwise it will be sampler from fixed regions. + Default: False. + num_fixed_crops (int): If set to 5, the cropping bbox will keep 5 + basic fixed regions: "upper left", "upper right", "lower left", + "lower right", "center". If set to 13, the cropping bbox will + append another 8 fix regions: "center left", "center right", + "lower center", "upper center", "upper left quarter", + "upper right quarter", "lower left quarter", "lower right quarter". + Default: 5. + lazy (bool): Determine whether to apply lazy operation. Default: False. + """ + + def __init__(self, + input_size, + scales=(1, ), + max_wh_scale_gap=1, + random_crop=False, + num_fixed_crops=5, + lazy=False): + self.input_size = _pair(input_size) + if not mmcv.is_tuple_of(self.input_size, int): + raise TypeError(f'Input_size must be int or tuple of int, ' + f'but got {type(input_size)}') + + if not isinstance(scales, tuple): + raise TypeError(f'Scales must be tuple, but got {type(scales)}') + + if num_fixed_crops not in [5, 13]: + raise ValueError(f'Num_fix_crops must be in {[5, 13]}, ' + f'but got {num_fixed_crops}') + + self.scales = scales + self.max_wh_scale_gap = max_wh_scale_gap + self.random_crop = random_crop + self.num_fixed_crops = num_fixed_crops + self.lazy = lazy + + def __call__(self, results): + """Performs the MultiScaleCrop augmentation. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + _init_lazy_if_proper(results, self.lazy) + if 'keypoint' in results: + assert not self.lazy, ('Keypoint Augmentations are not compatible ' + 'with lazy == True') + + img_h, img_w = results['img_shape'] + base_size = min(img_h, img_w) + crop_sizes = [int(base_size * s) for s in self.scales] + + candidate_sizes = [] + for i, h in enumerate(crop_sizes): + for j, w in enumerate(crop_sizes): + if abs(i - j) <= self.max_wh_scale_gap: + candidate_sizes.append([w, h]) + + crop_size = random.choice(candidate_sizes) + for i in range(2): + if abs(crop_size[i] - self.input_size[i]) < 3: + crop_size[i] = self.input_size[i] + + crop_w, crop_h = crop_size + + if self.random_crop: + x_offset = random.randint(0, img_w - crop_w) + y_offset = random.randint(0, img_h - crop_h) + else: + w_step = (img_w - crop_w) // 4 + h_step = (img_h - crop_h) // 4 + candidate_offsets = [ + (0, 0), # upper left + (4 * w_step, 0), # upper right + (0, 4 * h_step), # lower left + (4 * w_step, 4 * h_step), # lower right + (2 * w_step, 2 * h_step), # center + ] + if self.num_fixed_crops == 13: + extra_candidate_offsets = [ + (0, 2 * h_step), # center left + (4 * w_step, 2 * h_step), # center right + (2 * w_step, 4 * h_step), # lower center + (2 * w_step, 0 * h_step), # upper center + (1 * w_step, 1 * h_step), # upper left quarter + (3 * w_step, 1 * h_step), # upper right quarter + (1 * w_step, 3 * h_step), # lower left quarter + (3 * w_step, 3 * h_step) # lower right quarter + ] + candidate_offsets.extend(extra_candidate_offsets) + x_offset, y_offset = random.choice(candidate_offsets) + + new_h, new_w = crop_h, crop_w + + crop_bbox = np.array( + [x_offset, y_offset, x_offset + new_w, y_offset + new_h]) + results['crop_bbox'] = crop_bbox + results['img_shape'] = (new_h, new_w) + results['scales'] = self.scales + + if 'crop_quadruple' not in results: + results['crop_quadruple'] = np.array( + [0, 0, 1, 1], # x, y, w, h + dtype=np.float32) + + x_ratio, y_ratio = x_offset / img_w, y_offset / img_h + w_ratio, h_ratio = new_w / img_w, new_h / img_h + + old_crop_quadruple = results['crop_quadruple'] + old_x_ratio, old_y_ratio = old_crop_quadruple[0], old_crop_quadruple[1] + old_w_ratio, old_h_ratio = old_crop_quadruple[2], old_crop_quadruple[3] + new_crop_quadruple = [ + old_x_ratio + x_ratio * old_w_ratio, + old_y_ratio + y_ratio * old_h_ratio, w_ratio * old_w_ratio, + h_ratio * old_h_ratio + ] + results['crop_quadruple'] = np.array( + new_crop_quadruple, dtype=np.float32) + + if not self.lazy: + if 'keypoint' in results: + results['keypoint'] = self._crop_kps(results['keypoint'], + crop_bbox) + if 'imgs' in results: + results['imgs'] = self._crop_imgs(results['imgs'], crop_bbox) + else: + lazyop = results['lazy'] + if lazyop['flip']: + raise NotImplementedError('Put Flip at last for now') + + # record crop_bbox in lazyop dict to ensure only crop once in Fuse + lazy_left, lazy_top, lazy_right, lazy_bottom = lazyop['crop_bbox'] + left = x_offset * (lazy_right - lazy_left) / img_w + right = (x_offset + new_w) * (lazy_right - lazy_left) / img_w + top = y_offset * (lazy_bottom - lazy_top) / img_h + bottom = (y_offset + new_h) * (lazy_bottom - lazy_top) / img_h + lazyop['crop_bbox'] = np.array([(lazy_left + left), + (lazy_top + top), + (lazy_left + right), + (lazy_top + bottom)], + dtype=np.float32) + + if 'gt_bboxes' in results: + assert not self.lazy + results = self._all_box_crop(results, results['crop_bbox']) + + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'input_size={self.input_size}, scales={self.scales}, ' + f'max_wh_scale_gap={self.max_wh_scale_gap}, ' + f'random_crop={self.random_crop}, ' + f'num_fixed_crops={self.num_fixed_crops}, ' + f'lazy={self.lazy})') + return repr_str + + +@PIPELINES.register_module() +class Resize: + """Resize images to a specific size. + + Required keys are "img_shape", "modality", "imgs" (optional), "keypoint" + (optional), added or modified keys are "imgs", "img_shape", "keep_ratio", + "scale_factor", "lazy", "resize_size". Required keys in "lazy" is None, + added or modified key is "interpolation". + + Args: + scale (float | Tuple[int]): If keep_ratio is True, it serves as scaling + factor or maximum size: + If it is a float number, the image will be rescaled by this + factor, else if it is a tuple of 2 integers, the image will + be rescaled as large as possible within the scale. + Otherwise, it serves as (w, h) of output size. + keep_ratio (bool): If set to True, Images will be resized without + changing the aspect ratio. Otherwise, it will resize images to a + given size. Default: True. + interpolation (str): Algorithm used for interpolation: + "nearest" | "bilinear". Default: "bilinear". + lazy (bool): Determine whether to apply lazy operation. Default: False. + """ + + def __init__(self, + scale, + keep_ratio=True, + interpolation='bilinear', + lazy=False): + if isinstance(scale, float): + if scale <= 0: + raise ValueError(f'Invalid scale {scale}, must be positive.') + elif isinstance(scale, tuple): + max_long_edge = max(scale) + max_short_edge = min(scale) + if max_short_edge == -1: + # assign np.inf to long edge for rescaling short edge later. + scale = (np.inf, max_long_edge) + else: + raise TypeError( + f'Scale must be float or tuple of int, but got {type(scale)}') + self.scale = scale + self.keep_ratio = keep_ratio + self.interpolation = interpolation + self.lazy = lazy + + def _resize_imgs(self, imgs, new_w, new_h): + return [ + mmcv.imresize( + img, (new_w, new_h), interpolation=self.interpolation) + for img in imgs + ] + + @staticmethod + def _resize_kps(kps, scale_factor): + return kps * scale_factor + + @staticmethod + def _box_resize(box, scale_factor): + """Rescale the bounding boxes according to the scale_factor. + + Args: + box (np.ndarray): The bounding boxes. + scale_factor (np.ndarray): The scale factor used for rescaling. + """ + assert len(scale_factor) == 2 + scale_factor = np.concatenate([scale_factor, scale_factor]) + return box * scale_factor + + def __call__(self, results): + """Performs the Resize augmentation. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + + _init_lazy_if_proper(results, self.lazy) + if 'keypoint' in results: + assert not self.lazy, ('Keypoint Augmentations are not compatible ' + 'with lazy == True') + + if 'scale_factor' not in results: + results['scale_factor'] = np.array([1, 1], dtype=np.float32) + img_h, img_w = results['img_shape'] + + if self.keep_ratio: + new_w, new_h = mmcv.rescale_size((img_w, img_h), self.scale) + else: + new_w, new_h = self.scale + + self.scale_factor = np.array([new_w / img_w, new_h / img_h], + dtype=np.float32) + + results['img_shape'] = (new_h, new_w) + results['keep_ratio'] = self.keep_ratio + results['scale_factor'] = results['scale_factor'] * self.scale_factor + + if not self.lazy: + if 'imgs' in results: + results['imgs'] = self._resize_imgs(results['imgs'], new_w, + new_h) + if 'keypoint' in results: + results['keypoint'] = self._resize_kps(results['keypoint'], + self.scale_factor) + else: + lazyop = results['lazy'] + if lazyop['flip']: + raise NotImplementedError('Put Flip at last for now') + lazyop['interpolation'] = self.interpolation + + if 'gt_bboxes' in results: + assert not self.lazy + results['gt_bboxes'] = self._box_resize(results['gt_bboxes'], + self.scale_factor) + if 'proposals' in results and results['proposals'] is not None: + assert results['proposals'].shape[1] == 4 + results['proposals'] = self._box_resize( + results['proposals'], self.scale_factor) + + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'scale={self.scale}, keep_ratio={self.keep_ratio}, ' + f'interpolation={self.interpolation}, ' + f'lazy={self.lazy})') + return repr_str + + +@PIPELINES.register_module() +class RandomRescale: + """Randomly resize images so that the short_edge is resized to a specific + size in a given range. The scale ratio is unchanged after resizing. + + Required keys are "imgs", "img_shape", "modality", added or modified + keys are "imgs", "img_shape", "keep_ratio", "scale_factor", "resize_size", + "short_edge". + + Args: + scale_range (tuple[int]): The range of short edge length. A closed + interval. + interpolation (str): Algorithm used for interpolation: + "nearest" | "bilinear". Default: "bilinear". + """ + + def __init__(self, scale_range, interpolation='bilinear'): + self.scale_range = scale_range + # make sure scale_range is legal, first make sure the type is OK + assert mmcv.is_tuple_of(scale_range, int) + assert len(scale_range) == 2 + assert scale_range[0] < scale_range[1] + assert np.all([x > 0 for x in scale_range]) + + self.keep_ratio = True + self.interpolation = interpolation + + def __call__(self, results): + """Performs the Resize augmentation. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + short_edge = np.random.randint(self.scale_range[0], + self.scale_range[1] + 1) + resize = Resize((-1, short_edge), + keep_ratio=True, + interpolation=self.interpolation, + lazy=False) + results = resize(results) + + results['short_edge'] = short_edge + return results + + def __repr__(self): + scale_range = self.scale_range + repr_str = (f'{self.__class__.__name__}(' + f'scale_range=({scale_range[0]}, {scale_range[1]}), ' + f'interpolation={self.interpolation})') + return repr_str + + +@PIPELINES.register_module() +class Flip: + """Flip the input images with a probability. + + Reverse the order of elements in the given imgs with a specific direction. + The shape of the imgs is preserved, but the elements are reordered. + + Required keys are "img_shape", "modality", "imgs" (optional), "keypoint" + (optional), added or modified keys are "imgs", "keypoint", "lazy" and + "flip_direction". Required keys in "lazy" is None, added or modified key + are "flip" and "flip_direction". The Flip augmentation should be placed + after any cropping / reshaping augmentations, to make sure crop_quadruple + is calculated properly. + + Args: + flip_ratio (float): Probability of implementing flip. Default: 0.5. + direction (str): Flip imgs horizontally or vertically. Options are + "horizontal" | "vertical". Default: "horizontal". + flip_label_map (Dict[int, int] | None): Transform the label of the + flipped image with the specific label. Default: None. + left_kp (list[int]): Indexes of left keypoints, used to flip keypoints. + Default: None. + right_kp (list[ind]): Indexes of right keypoints, used to flip + keypoints. Default: None. + lazy (bool): Determine whether to apply lazy operation. Default: False. + """ + _directions = ['horizontal', 'vertical'] + + def __init__(self, + flip_ratio=0.5, + direction='horizontal', + flip_label_map=None, + left_kp=None, + right_kp=None, + lazy=False): + if direction not in self._directions: + raise ValueError(f'Direction {direction} is not supported. ' + f'Currently support ones are {self._directions}') + self.flip_ratio = flip_ratio + self.direction = direction + self.flip_label_map = flip_label_map + self.left_kp = left_kp + self.right_kp = right_kp + self.lazy = lazy + + def _flip_imgs(self, imgs, modality): + _ = [mmcv.imflip_(img, self.direction) for img in imgs] + lt = len(imgs) + if modality == 'Flow': + # The 1st frame of each 2 frames is flow-x + for i in range(0, lt, 2): + imgs[i] = mmcv.iminvert(imgs[i]) + return imgs + + def _flip_kps(self, kps, kpscores, img_width): + kp_x = kps[..., 0] + kp_x[kp_x != 0] = img_width - kp_x[kp_x != 0] + new_order = list(range(kps.shape[2])) + if self.left_kp is not None and self.right_kp is not None: + for left, right in zip(self.left_kp, self.right_kp): + new_order[left] = right + new_order[right] = left + kps = kps[:, :, new_order] + if kpscores is not None: + kpscores = kpscores[:, :, new_order] + return kps, kpscores + + @staticmethod + def _box_flip(box, img_width): + """Flip the bounding boxes given the width of the image. + + Args: + box (np.ndarray): The bounding boxes. + img_width (int): The img width. + """ + box_ = box.copy() + box_[..., 0::4] = img_width - box[..., 2::4] + box_[..., 2::4] = img_width - box[..., 0::4] + return box_ + + def __call__(self, results): + """Performs the Flip augmentation. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + _init_lazy_if_proper(results, self.lazy) + if 'keypoint' in results: + assert not self.lazy, ('Keypoint Augmentations are not compatible ' + 'with lazy == True') + assert self.direction == 'horizontal', ( + 'Only horizontal flips are' + 'supported for human keypoints') + + modality = results['modality'] + if modality == 'Flow': + assert self.direction == 'horizontal' + + flip = np.random.rand() < self.flip_ratio + + results['flip'] = flip + results['flip_direction'] = self.direction + img_width = results['img_shape'][1] + + if self.flip_label_map is not None and flip: + results['label'] = self.flip_label_map.get(results['label'], + results['label']) + + if not self.lazy: + if flip: + if 'imgs' in results: + results['imgs'] = self._flip_imgs(results['imgs'], + modality) + if 'keypoint' in results: + kp = results['keypoint'] + kpscore = results.get('keypoint_score', None) + kp, kpscore = self._flip_kps(kp, kpscore, img_width) + results['keypoint'] = kp + if 'keypoint_score' in results: + results['keypoint_score'] = kpscore + else: + lazyop = results['lazy'] + if lazyop['flip']: + raise NotImplementedError('Use one Flip please') + lazyop['flip'] = flip + lazyop['flip_direction'] = self.direction + + if 'gt_bboxes' in results and flip: + assert not self.lazy and self.direction == 'horizontal' + width = results['img_shape'][1] + results['gt_bboxes'] = self._box_flip(results['gt_bboxes'], width) + if 'proposals' in results and results['proposals'] is not None: + assert results['proposals'].shape[1] == 4 + results['proposals'] = self._box_flip(results['proposals'], + width) + + return results + + def __repr__(self): + repr_str = ( + f'{self.__class__.__name__}(' + f'flip_ratio={self.flip_ratio}, direction={self.direction}, ' + f'flip_label_map={self.flip_label_map}, lazy={self.lazy})') + return repr_str + + +@PIPELINES.register_module() +class Normalize: + """Normalize images with the given mean and std value. + + Required keys are "imgs", "img_shape", "modality", added or modified + keys are "imgs" and "img_norm_cfg". If modality is 'Flow', additional + keys "scale_factor" is required + + Args: + mean (Sequence[float]): Mean values of different channels. + std (Sequence[float]): Std values of different channels. + to_bgr (bool): Whether to convert channels from RGB to BGR. + Default: False. + adjust_magnitude (bool): Indicate whether to adjust the flow magnitude + on 'scale_factor' when modality is 'Flow'. Default: False. + """ + + def __init__(self, mean, std, to_bgr=False, adjust_magnitude=False): + if not isinstance(mean, Sequence): + raise TypeError( + f'Mean must be list, tuple or np.ndarray, but got {type(mean)}' + ) + + if not isinstance(std, Sequence): + raise TypeError( + f'Std must be list, tuple or np.ndarray, but got {type(std)}') + + self.mean = np.array(mean, dtype=np.float32) + self.std = np.array(std, dtype=np.float32) + self.to_bgr = to_bgr + self.adjust_magnitude = adjust_magnitude + + def __call__(self, results): + modality = results['modality'] + + if modality == 'RGB': + n = len(results['imgs']) + h, w, c = results['imgs'][0].shape + imgs = np.empty((n, h, w, c), dtype=np.float32) + for i, img in enumerate(results['imgs']): + imgs[i] = img + + for img in imgs: + mmcv.imnormalize_(img, self.mean, self.std, self.to_bgr) + + results['imgs'] = imgs + results['img_norm_cfg'] = dict( + mean=self.mean, std=self.std, to_bgr=self.to_bgr) + return results + if modality == 'Flow': + num_imgs = len(results['imgs']) + assert num_imgs % 2 == 0 + assert self.mean.shape[0] == 2 + assert self.std.shape[0] == 2 + n = num_imgs // 2 + h, w = results['imgs'][0].shape + x_flow = np.empty((n, h, w), dtype=np.float32) + y_flow = np.empty((n, h, w), dtype=np.float32) + for i in range(n): + x_flow[i] = results['imgs'][2 * i] + y_flow[i] = results['imgs'][2 * i + 1] + x_flow = (x_flow - self.mean[0]) / self.std[0] + y_flow = (y_flow - self.mean[1]) / self.std[1] + if self.adjust_magnitude: + x_flow = x_flow * results['scale_factor'][0] + y_flow = y_flow * results['scale_factor'][1] + imgs = np.stack([x_flow, y_flow], axis=-1) + results['imgs'] = imgs + args = dict( + mean=self.mean, + std=self.std, + to_bgr=self.to_bgr, + adjust_magnitude=self.adjust_magnitude) + results['img_norm_cfg'] = args + return results + raise NotImplementedError + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'mean={self.mean}, ' + f'std={self.std}, ' + f'to_bgr={self.to_bgr}, ' + f'adjust_magnitude={self.adjust_magnitude})') + return repr_str + + +@PIPELINES.register_module() +class ColorJitter: + """Perform ColorJitter to each img. + + Required keys are "imgs", added or modified keys are "imgs". + + Args: + brightness (float | tuple[float]): The jitter range for brightness, if + set as a float, the range will be (1 - brightness, 1 + brightness). + Default: 0.5. + contrast (float | tuple[float]): The jitter range for contrast, if set + as a float, the range will be (1 - contrast, 1 + contrast). + Default: 0.5. + saturation (float | tuple[float]): The jitter range for saturation, if + set as a float, the range will be (1 - saturation, 1 + saturation). + Default: 0.5. + hue (float | tuple[float]): The jitter range for hue, if set as a + float, the range will be (-hue, hue). Default: 0.1. + """ + + @staticmethod + def check_input(val, max, base): + if isinstance(val, tuple): + assert base - max <= val[0] <= val[1] <= base + max + return val + assert val <= max + return (base - val, base + val) + + @staticmethod + def rgb_to_grayscale(img): + return 0.2989 * img[..., 0] + 0.587 * img[..., 1] + 0.114 * img[..., 2] + + @staticmethod + def adjust_contrast(img, factor): + val = np.mean(ColorJitter.rgb_to_grayscale(img)) + return factor * img + (1 - factor) * val + + @staticmethod + def adjust_saturation(img, factor): + gray = np.stack([ColorJitter.rgb_to_grayscale(img)] * 3, axis=-1) + return factor * img + (1 - factor) * gray + + @staticmethod + def adjust_hue(img, factor): + img = np.clip(img, 0, 255).astype(np.uint8) + hsv = cv2.cvtColor(img, cv2.COLOR_RGB2HSV) + offset = int(factor * 255) + hsv[..., 0] = (hsv[..., 0] + offset) % 180 + img = cv2.cvtColor(hsv, cv2.COLOR_HSV2RGB) + return img.astype(np.float32) + + def __init__(self, brightness=0.5, contrast=0.5, saturation=0.5, hue=0.1): + self.brightness = self.check_input(brightness, 1, 1) + self.contrast = self.check_input(contrast, 1, 1) + self.saturation = self.check_input(saturation, 1, 1) + self.hue = self.check_input(hue, 0.5, 0) + self.fn_idx = np.random.permutation(4) + + def __call__(self, results): + imgs = results['imgs'] + num_clips, clip_len = 1, len(imgs) + + new_imgs = [] + for i in range(num_clips): + b = np.random.uniform( + low=self.brightness[0], high=self.brightness[1]) + c = np.random.uniform(low=self.contrast[0], high=self.contrast[1]) + s = np.random.uniform( + low=self.saturation[0], high=self.saturation[1]) + h = np.random.uniform(low=self.hue[0], high=self.hue[1]) + start, end = i * clip_len, (i + 1) * clip_len + + for img in imgs[start:end]: + img = img.astype(np.float32) + for fn_id in self.fn_idx: + if fn_id == 0 and b != 1: + img *= b + if fn_id == 1 and c != 1: + img = self.adjust_contrast(img, c) + if fn_id == 2 and s != 1: + img = self.adjust_saturation(img, s) + if fn_id == 3 and h != 0: + img = self.adjust_hue(img, h) + img = np.clip(img, 0, 255).astype(np.uint8) + new_imgs.append(img) + results['imgs'] = new_imgs + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'brightness={self.brightness}, ' + f'contrast={self.contrast}, ' + f'saturation={self.saturation}, ' + f'hue={self.hue})') + return repr_str + + +@PIPELINES.register_module() +class CenterCrop(RandomCrop): + """Crop the center area from images. + + Required keys are "img_shape", "imgs" (optional), "keypoint" (optional), + added or modified keys are "imgs", "keypoint", "crop_bbox", "lazy" and + "img_shape". Required keys in "lazy" is "crop_bbox", added or modified key + is "crop_bbox". + + Args: + crop_size (int | tuple[int]): (w, h) of crop size. + lazy (bool): Determine whether to apply lazy operation. Default: False. + """ + + def __init__(self, crop_size, lazy=False): + self.crop_size = _pair(crop_size) + self.lazy = lazy + if not mmcv.is_tuple_of(self.crop_size, int): + raise TypeError(f'Crop_size must be int or tuple of int, ' + f'but got {type(crop_size)}') + + def __call__(self, results): + """Performs the CenterCrop augmentation. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + _init_lazy_if_proper(results, self.lazy) + if 'keypoint' in results: + assert not self.lazy, ('Keypoint Augmentations are not compatible ' + 'with lazy == True') + + img_h, img_w = results['img_shape'] + crop_w, crop_h = self.crop_size + + left = (img_w - crop_w) // 2 + top = (img_h - crop_h) // 2 + right = left + crop_w + bottom = top + crop_h + new_h, new_w = bottom - top, right - left + + crop_bbox = np.array([left, top, right, bottom]) + results['crop_bbox'] = crop_bbox + results['img_shape'] = (new_h, new_w) + + if 'crop_quadruple' not in results: + results['crop_quadruple'] = np.array( + [0, 0, 1, 1], # x, y, w, h + dtype=np.float32) + + x_ratio, y_ratio = left / img_w, top / img_h + w_ratio, h_ratio = new_w / img_w, new_h / img_h + + old_crop_quadruple = results['crop_quadruple'] + old_x_ratio, old_y_ratio = old_crop_quadruple[0], old_crop_quadruple[1] + old_w_ratio, old_h_ratio = old_crop_quadruple[2], old_crop_quadruple[3] + new_crop_quadruple = [ + old_x_ratio + x_ratio * old_w_ratio, + old_y_ratio + y_ratio * old_h_ratio, w_ratio * old_w_ratio, + h_ratio * old_h_ratio + ] + results['crop_quadruple'] = np.array( + new_crop_quadruple, dtype=np.float32) + + if not self.lazy: + if 'keypoint' in results: + results['keypoint'] = self._crop_kps(results['keypoint'], + crop_bbox) + if 'imgs' in results: + results['imgs'] = self._crop_imgs(results['imgs'], crop_bbox) + else: + lazyop = results['lazy'] + if lazyop['flip']: + raise NotImplementedError('Put Flip at last for now') + + # record crop_bbox in lazyop dict to ensure only crop once in Fuse + lazy_left, lazy_top, lazy_right, lazy_bottom = lazyop['crop_bbox'] + left = left * (lazy_right - lazy_left) / img_w + right = right * (lazy_right - lazy_left) / img_w + top = top * (lazy_bottom - lazy_top) / img_h + bottom = bottom * (lazy_bottom - lazy_top) / img_h + lazyop['crop_bbox'] = np.array([(lazy_left + left), + (lazy_top + top), + (lazy_left + right), + (lazy_top + bottom)], + dtype=np.float32) + + if 'gt_bboxes' in results: + assert not self.lazy + results = self._all_box_crop(results, results['crop_bbox']) + + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(crop_size={self.crop_size}, ' + f'lazy={self.lazy})') + return repr_str + + +@PIPELINES.register_module() +class ThreeCrop: + """Crop images into three crops. + + Crop the images equally into three crops with equal intervals along the + shorter side. + Required keys are "imgs", "img_shape", added or modified keys are "imgs", + "crop_bbox" and "img_shape". + + Args: + crop_size(int | tuple[int]): (w, h) of crop size. + """ + + def __init__(self, crop_size): + self.crop_size = _pair(crop_size) + if not mmcv.is_tuple_of(self.crop_size, int): + raise TypeError(f'Crop_size must be int or tuple of int, ' + f'but got {type(crop_size)}') + + def __call__(self, results): + """Performs the ThreeCrop augmentation. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + _init_lazy_if_proper(results, False) + if 'gt_bboxes' in results or 'proposals' in results: + warnings.warn('ThreeCrop cannot process bounding boxes') + + imgs = results['imgs'] + img_h, img_w = results['imgs'][0].shape[:2] + crop_w, crop_h = self.crop_size + assert crop_h == img_h or crop_w == img_w + + if crop_h == img_h: + w_step = (img_w - crop_w) // 2 + offsets = [ + (0, 0), # left + (2 * w_step, 0), # right + (w_step, 0), # middle + ] + elif crop_w == img_w: + h_step = (img_h - crop_h) // 2 + offsets = [ + (0, 0), # top + (0, 2 * h_step), # down + (0, h_step), # middle + ] + + cropped = [] + crop_bboxes = [] + for x_offset, y_offset in offsets: + bbox = [x_offset, y_offset, x_offset + crop_w, y_offset + crop_h] + crop = [ + img[y_offset:y_offset + crop_h, x_offset:x_offset + crop_w] + for img in imgs + ] + cropped.extend(crop) + crop_bboxes.extend([bbox for _ in range(len(imgs))]) + + crop_bboxes = np.array(crop_bboxes) + results['imgs'] = cropped + results['crop_bbox'] = crop_bboxes + results['img_shape'] = results['imgs'][0].shape[:2] + + return results + + def __repr__(self): + repr_str = f'{self.__class__.__name__}(crop_size={self.crop_size})' + return repr_str + + +@PIPELINES.register_module() +class TenCrop: + """Crop the images into 10 crops (corner + center + flip). + + Crop the four corners and the center part of the image with the same + given crop_size, and flip it horizontally. + Required keys are "imgs", "img_shape", added or modified keys are "imgs", + "crop_bbox" and "img_shape". + + Args: + crop_size(int | tuple[int]): (w, h) of crop size. + """ + + def __init__(self, crop_size): + self.crop_size = _pair(crop_size) + if not mmcv.is_tuple_of(self.crop_size, int): + raise TypeError(f'Crop_size must be int or tuple of int, ' + f'but got {type(crop_size)}') + + def __call__(self, results): + """Performs the TenCrop augmentation. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + _init_lazy_if_proper(results, False) + + if 'gt_bboxes' in results or 'proposals' in results: + warnings.warn('TenCrop cannot process bounding boxes') + + imgs = results['imgs'] + + img_h, img_w = results['imgs'][0].shape[:2] + crop_w, crop_h = self.crop_size + + w_step = (img_w - crop_w) // 4 + h_step = (img_h - crop_h) // 4 + + offsets = [ + (0, 0), # upper left + (4 * w_step, 0), # upper right + (0, 4 * h_step), # lower left + (4 * w_step, 4 * h_step), # lower right + (2 * w_step, 2 * h_step), # center + ] + + img_crops = list() + crop_bboxes = list() + for x_offset, y_offsets in offsets: + crop = [ + img[y_offsets:y_offsets + crop_h, x_offset:x_offset + crop_w] + for img in imgs + ] + flip_crop = [np.flip(c, axis=1).copy() for c in crop] + bbox = [x_offset, y_offsets, x_offset + crop_w, y_offsets + crop_h] + img_crops.extend(crop) + img_crops.extend(flip_crop) + crop_bboxes.extend([bbox for _ in range(len(imgs) * 2)]) + + crop_bboxes = np.array(crop_bboxes) + results['imgs'] = img_crops + results['crop_bbox'] = crop_bboxes + results['img_shape'] = results['imgs'][0].shape[:2] + + return results + + def __repr__(self): + repr_str = f'{self.__class__.__name__}(crop_size={self.crop_size})' + return repr_str + + +@PIPELINES.register_module() +class AudioAmplify: + """Amplify the waveform. + + Required keys are "audios", added or modified keys are "audios", + "amplify_ratio". + + Args: + ratio (float): The ratio used to amplify the audio waveform. + """ + + def __init__(self, ratio): + if isinstance(ratio, float): + self.ratio = ratio + else: + raise TypeError('Amplification ratio should be float.') + + def __call__(self, results): + """Perform the audio amplification. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + + assert 'audios' in results + results['audios'] *= self.ratio + results['amplify_ratio'] = self.ratio + + return results + + def __repr__(self): + repr_str = f'{self.__class__.__name__}(ratio={self.ratio})' + return repr_str + + +@PIPELINES.register_module() +class MelSpectrogram: + """MelSpectrogram. Transfer an audio wave into a melspectogram figure. + + Required keys are "audios", "sample_rate", "num_clips", added or modified + keys are "audios". + + Args: + window_size (int): The window size in millisecond. Default: 32. + step_size (int): The step size in millisecond. Default: 16. + n_mels (int): Number of mels. Default: 80. + fixed_length (int): The sample length of melspectrogram maybe not + exactly as wished due to different fps, fix the length for batch + collation by truncating or padding. Default: 128. + """ + + def __init__(self, + window_size=32, + step_size=16, + n_mels=80, + fixed_length=128): + if all( + isinstance(x, int) + for x in [window_size, step_size, n_mels, fixed_length]): + self.window_size = window_size + self.step_size = step_size + self.n_mels = n_mels + self.fixed_length = fixed_length + else: + raise TypeError('All arguments should be int.') + + def __call__(self, results): + """Perform MelSpectrogram transformation. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + try: + import librosa + except ImportError: + raise ImportError('Install librosa first.') + signals = results['audios'] + sample_rate = results['sample_rate'] + n_fft = int(round(sample_rate * self.window_size / 1000)) + hop_length = int(round(sample_rate * self.step_size / 1000)) + melspectrograms = list() + for clip_idx in range(results['num_clips']): + clip_signal = signals[clip_idx] + mel = librosa.feature.melspectrogram( + y=clip_signal, + sr=sample_rate, + n_fft=n_fft, + hop_length=hop_length, + n_mels=self.n_mels) + if mel.shape[0] >= self.fixed_length: + mel = mel[:self.fixed_length, :] + else: + mel = np.pad( + mel, ((0, mel.shape[-1] - self.fixed_length), (0, 0)), + mode='edge') + melspectrograms.append(mel) + + results['audios'] = np.array(melspectrograms) + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}' + f'(window_size={self.window_size}), ' + f'step_size={self.step_size}, ' + f'n_mels={self.n_mels}, ' + f'fixed_length={self.fixed_length})') + return repr_str diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/compose.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/compose.py new file mode 100644 index 00000000..61fc5c56 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/compose.py @@ -0,0 +1,61 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from collections.abc import Sequence + +from mmcv.utils import build_from_cfg + +from ..builder import PIPELINES +from .augmentations import PytorchVideoTrans, TorchvisionTrans + + +@PIPELINES.register_module() +class Compose: + """Compose a data pipeline with a sequence of transforms. + + Args: + transforms (list[dict | callable]): + Either config dicts of transforms or transform objects. + """ + + def __init__(self, transforms): + assert isinstance(transforms, Sequence) + self.transforms = [] + for transform in transforms: + if isinstance(transform, dict): + if transform['type'].startswith('torchvision.'): + trans_type = transform.pop('type')[12:] + transform = TorchvisionTrans(trans_type, **transform) + elif transform['type'].startswith('pytorchvideo.'): + trans_type = transform.pop('type')[13:] + transform = PytorchVideoTrans(trans_type, **transform) + else: + transform = build_from_cfg(transform, PIPELINES) + self.transforms.append(transform) + elif callable(transform): + self.transforms.append(transform) + else: + raise TypeError(f'transform must be callable or a dict, ' + f'but got {type(transform)}') + + def __call__(self, data): + """Call function to apply transforms sequentially. + + Args: + data (dict): A result dict contains the data to transform. + + Returns: + dict: Transformed data. + """ + + for t in self.transforms: + data = t(data) + if data is None: + return None + return data + + def __repr__(self): + format_string = self.__class__.__name__ + '(' + for t in self.transforms: + format_string += '\n' + format_string += ' {0}'.format(t) + format_string += '\n)' + return format_string diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/formatting.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/formatting.py new file mode 100644 index 00000000..4b1fbc3f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/formatting.py @@ -0,0 +1,490 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from collections.abc import Sequence + +import mmcv +import numpy as np +import torch +from mmcv.parallel import DataContainer as DC + +from ..builder import PIPELINES + + +def to_tensor(data): + """Convert objects of various python types to :obj:`torch.Tensor`. + + Supported types are: :class:`numpy.ndarray`, :class:`torch.Tensor`, + :class:`Sequence`, :class:`int` and :class:`float`. + """ + if isinstance(data, torch.Tensor): + return data + if isinstance(data, np.ndarray): + return torch.from_numpy(data) + if isinstance(data, Sequence) and not mmcv.is_str(data): + return torch.tensor(data) + if isinstance(data, int): + return torch.LongTensor([data]) + if isinstance(data, float): + return torch.FloatTensor([data]) + raise TypeError(f'type {type(data)} cannot be converted to tensor.') + + +@PIPELINES.register_module() +class ToTensor: + """Convert some values in results dict to `torch.Tensor` type in data + loader pipeline. + + Args: + keys (Sequence[str]): Required keys to be converted. + """ + + def __init__(self, keys): + self.keys = keys + + def __call__(self, results): + """Performs the ToTensor formatting. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + for key in self.keys: + results[key] = to_tensor(results[key]) + return results + + def __repr__(self): + return f'{self.__class__.__name__}(keys={self.keys})' + + +@PIPELINES.register_module() +class Rename: + """Rename the key in results. + + Args: + mapping (dict): The keys in results that need to be renamed. The key of + the dict is the original name, while the value is the new name. If + the original name not found in results, do nothing. + Default: dict(). + """ + + def __init__(self, mapping): + self.mapping = mapping + + def __call__(self, results): + for key, value in self.mapping.items(): + if key in results: + assert isinstance(key, str) and isinstance(value, str) + assert value not in results, ('the new name already exists in ' + 'results') + results[value] = results[key] + results.pop(key) + return results + + +@PIPELINES.register_module() +class ToDataContainer: + """Convert the data to DataContainer. + + Args: + fields (Sequence[dict]): Required fields to be converted + with keys and attributes. E.g. + fields=(dict(key='gt_bbox', stack=False),). + Note that key can also be a list of keys, if so, every tensor in + the list will be converted to DataContainer. + """ + + def __init__(self, fields): + self.fields = fields + + def __call__(self, results): + """Performs the ToDataContainer formatting. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + for field in self.fields: + _field = field.copy() + key = _field.pop('key') + if isinstance(key, list): + for item in key: + results[item] = DC(results[item], **_field) + else: + results[key] = DC(results[key], **_field) + return results + + def __repr__(self): + return self.__class__.__name__ + f'(fields={self.fields})' + + +@PIPELINES.register_module() +class ImageToTensor: + """Convert image type to `torch.Tensor` type. + + Args: + keys (Sequence[str]): Required keys to be converted. + """ + + def __init__(self, keys): + self.keys = keys + + def __call__(self, results): + """Performs the ImageToTensor formatting. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + for key in self.keys: + results[key] = to_tensor(results[key].transpose(2, 0, 1)) + return results + + def __repr__(self): + return f'{self.__class__.__name__}(keys={self.keys})' + + +@PIPELINES.register_module() +class Transpose: + """Transpose image channels to a given order. + + Args: + keys (Sequence[str]): Required keys to be converted. + order (Sequence[int]): Image channel order. + """ + + def __init__(self, keys, order): + self.keys = keys + self.order = order + + def __call__(self, results): + """Performs the Transpose formatting. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + for key in self.keys: + results[key] = results[key].transpose(self.order) + return results + + def __repr__(self): + return (f'{self.__class__.__name__}(' + f'keys={self.keys}, order={self.order})') + + +@PIPELINES.register_module() +class Collect: + """Collect data from the loader relevant to the specific task. + + This keeps the items in ``keys`` as it is, and collect items in + ``meta_keys`` into a meta item called ``meta_name``.This is usually + the last stage of the data loader pipeline. + For example, when keys='imgs', meta_keys=('filename', 'label', + 'original_shape'), meta_name='img_metas', the results will be a dict with + keys 'imgs' and 'img_metas', where 'img_metas' is a DataContainer of + another dict with keys 'filename', 'label', 'original_shape'. + + Args: + keys (Sequence[str]): Required keys to be collected. + meta_name (str): The name of the key that contains meta information. + This key is always populated. Default: "img_metas". + meta_keys (Sequence[str]): Keys that are collected under meta_name. + The contents of the ``meta_name`` dictionary depends on + ``meta_keys``. + By default this includes: + + - "filename": path to the image file + - "label": label of the image file + - "original_shape": original shape of the image as a tuple + (h, w, c) + - "img_shape": shape of the image input to the network as a tuple + (h, w, c). Note that images may be zero padded on the + bottom/right, if the batch tensor is larger than this shape. + - "pad_shape": image shape after padding + - "flip_direction": a str in ("horiziontal", "vertival") to + indicate if the image is fliped horizontally or vertically. + - "img_norm_cfg": a dict of normalization information: + - mean - per channel mean subtraction + - std - per channel std divisor + - to_rgb - bool indicating if bgr was converted to rgb + nested (bool): If set as True, will apply data[x] = [data[x]] to all + items in data. The arg is added for compatibility. Default: False. + """ + + def __init__(self, + keys, + meta_keys=('filename', 'label', 'original_shape', 'img_shape', + 'pad_shape', 'flip_direction', 'img_norm_cfg'), + meta_name='img_metas', + nested=False): + self.keys = keys + self.meta_keys = meta_keys + self.meta_name = meta_name + self.nested = nested + + def __call__(self, results): + """Performs the Collect formatting. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + data = {} + for key in self.keys: + data[key] = results[key] + + if len(self.meta_keys) != 0: + meta = {} + for key in self.meta_keys: + meta[key] = results[key] + data[self.meta_name] = DC(meta, cpu_only=True) + if self.nested: + for k in data: + data[k] = [data[k]] + + return data + + def __repr__(self): + return (f'{self.__class__.__name__}(' + f'keys={self.keys}, meta_keys={self.meta_keys}, ' + f'nested={self.nested})') + + +@PIPELINES.register_module() +class FormatShape: + """Format final imgs shape to the given input_format. + + Required keys are "imgs", "num_clips" and "clip_len", added or modified + keys are "imgs" and "input_shape". + + Args: + input_format (str): Define the final imgs format. + collapse (bool): To collpase input_format N... to ... (NCTHW to CTHW, + etc.) if N is 1. Should be set as True when training and testing + detectors. Default: False. + """ + + def __init__(self, input_format, collapse=False): + self.input_format = input_format + self.collapse = collapse + if self.input_format not in ['NCTHW', 'NCHW', 'NCHW_Flow', 'NPTCHW']: + raise ValueError( + f'The input format {self.input_format} is invalid.') + + def __call__(self, results): + """Performs the FormatShape formatting. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + if not isinstance(results['imgs'], np.ndarray): + results['imgs'] = np.array(results['imgs']) + imgs = results['imgs'] + # [M x H x W x C] + # M = 1 * N_crops * N_clips * L + if self.collapse: + assert results['num_clips'] == 1 + + if self.input_format == 'NCTHW': + num_clips = results['num_clips'] + clip_len = results['clip_len'] + + imgs = imgs.reshape((-1, num_clips, clip_len) + imgs.shape[1:]) + # N_crops x N_clips x L x H x W x C + imgs = np.transpose(imgs, (0, 1, 5, 2, 3, 4)) + # N_crops x N_clips x C x L x H x W + imgs = imgs.reshape((-1, ) + imgs.shape[2:]) + # M' x C x L x H x W + # M' = N_crops x N_clips + elif self.input_format == 'NCHW': + imgs = np.transpose(imgs, (0, 3, 1, 2)) + # M x C x H x W + elif self.input_format == 'NCHW_Flow': + num_clips = results['num_clips'] + clip_len = results['clip_len'] + imgs = imgs.reshape((-1, num_clips, clip_len) + imgs.shape[1:]) + # N_crops x N_clips x L x H x W x C + imgs = np.transpose(imgs, (0, 1, 2, 5, 3, 4)) + # N_crops x N_clips x L x C x H x W + imgs = imgs.reshape((-1, imgs.shape[2] * imgs.shape[3]) + + imgs.shape[4:]) + # M' x C' x H x W + # M' = N_crops x N_clips + # C' = L x C + elif self.input_format == 'NPTCHW': + num_proposals = results['num_proposals'] + num_clips = results['num_clips'] + clip_len = results['clip_len'] + imgs = imgs.reshape((num_proposals, num_clips * clip_len) + + imgs.shape[1:]) + # P x M x H x W x C + # M = N_clips x L + imgs = np.transpose(imgs, (0, 1, 4, 2, 3)) + # P x M x C x H x W + + if self.collapse: + assert imgs.shape[0] == 1 + imgs = imgs.squeeze(0) + + results['imgs'] = imgs + results['input_shape'] = imgs.shape + return results + + def __repr__(self): + repr_str = self.__class__.__name__ + repr_str += f"(input_format='{self.input_format}')" + return repr_str + + +@PIPELINES.register_module() +class FormatAudioShape: + """Format final audio shape to the given input_format. + + Required keys are "imgs", "num_clips" and "clip_len", added or modified + keys are "imgs" and "input_shape". + + Args: + input_format (str): Define the final imgs format. + """ + + def __init__(self, input_format): + self.input_format = input_format + if self.input_format not in ['NCTF']: + raise ValueError( + f'The input format {self.input_format} is invalid.') + + def __call__(self, results): + """Performs the FormatShape formatting. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + audios = results['audios'] + # clip x sample x freq -> clip x channel x sample x freq + clip, sample, freq = audios.shape + audios = audios.reshape(clip, 1, sample, freq) + results['audios'] = audios + results['input_shape'] = audios.shape + return results + + def __repr__(self): + repr_str = self.__class__.__name__ + repr_str += f"(input_format='{self.input_format}')" + return repr_str + + +@PIPELINES.register_module() +class JointToBone: + """Convert the joint information to bone information. + + Required keys are "keypoint" , + added or modified keys are "keypoint". + + Args: + dataset (str): Define the type of dataset: 'nturgb+d', 'openpose-18', + 'coco'. Default: 'nturgb+d'. + """ + + def __init__(self, dataset='nturgb+d'): + self.dataset = dataset + if self.dataset not in ['nturgb+d', 'openpose-18', 'coco']: + raise ValueError( + f'The dataset type {self.dataset} is not supported') + if self.dataset == 'nturgb+d': + self.pairs = [(0, 1), (1, 20), (2, 20), (3, 2), (4, 20), (5, 4), + (6, 5), (7, 6), (8, 20), (9, 8), (10, 9), (11, 10), + (12, 0), (13, 12), (14, 13), (15, 14), (16, 0), + (17, 16), (18, 17), (19, 18), (21, 22), (20, 20), + (22, 7), (23, 24), (24, 11)] + elif self.dataset == 'openpose-18': + self.pairs = ((0, 0), (1, 0), (2, 1), (3, 2), (4, 3), (5, 1), + (6, 5), (7, 6), (8, 2), (9, 8), (10, 9), (11, 5), + (12, 11), (13, 12), (14, 0), (15, 0), (16, 14), (17, + 15)) + elif self.dataset == 'coco': + self.pairs = ((0, 0), (1, 0), (2, 0), (3, 1), (4, 2), (5, 0), + (6, 0), (7, 5), (8, 6), (9, 7), (10, 8), (11, 0), + (12, 0), (13, 11), (14, 12), (15, 13), (16, 14)) + + def __call__(self, results): + """Performs the Bone formatting. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + keypoint = results['keypoint'] + M, T, V, C = keypoint.shape + bone = np.zeros((M, T, V, C), dtype=np.float32) + + assert C in [2, 3] + for v1, v2 in self.pairs: + bone[..., v1, :] = keypoint[..., v1, :] - keypoint[..., v2, :] + if C == 3 and self.dataset in ['openpose-18', 'coco']: + score = (keypoint[..., v1, 2] + keypoint[..., v2, 2]) / 2 + bone[..., v1, 2] = score + + results['keypoint'] = bone + return results + + def __repr__(self): + repr_str = self.__class__.__name__ + repr_str += f"(dataset_type='{self.dataset}')" + return repr_str + + +@PIPELINES.register_module() +class FormatGCNInput: + """Format final skeleton shape to the given input_format. + + Required keys are "keypoint" and "keypoint_score"(optional), + added or modified keys are "keypoint" and "input_shape". + + Args: + input_format (str): Define the final skeleton format. + """ + + def __init__(self, input_format, num_person=2): + self.input_format = input_format + if self.input_format not in ['NCTVM']: + raise ValueError( + f'The input format {self.input_format} is invalid.') + self.num_person = num_person + + def __call__(self, results): + """Performs the FormatShape formatting. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + keypoint = results['keypoint'] + + if 'keypoint_score' in results: + keypoint_confidence = results['keypoint_score'] + keypoint_confidence = np.expand_dims(keypoint_confidence, -1) + keypoint_3d = np.concatenate((keypoint, keypoint_confidence), + axis=-1) + else: + keypoint_3d = keypoint + + keypoint_3d = np.transpose(keypoint_3d, + (3, 1, 2, 0)) # M T V C -> C T V M + + if keypoint_3d.shape[-1] < self.num_person: + pad_dim = self.num_person - keypoint_3d.shape[-1] + pad = np.zeros( + keypoint_3d.shape[:-1] + (pad_dim, ), dtype=keypoint_3d.dtype) + keypoint_3d = np.concatenate((keypoint_3d, pad), axis=-1) + elif keypoint_3d.shape[-1] > self.num_person: + keypoint_3d = keypoint_3d[:, :, :, :self.num_person] + + results['keypoint'] = keypoint_3d + results['input_shape'] = keypoint_3d.shape + return results + + def __repr__(self): + repr_str = self.__class__.__name__ + repr_str += f"(input_format='{self.input_format}')" + return repr_str diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/loading.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/loading.py new file mode 100644 index 00000000..5d7832c9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/loading.py @@ -0,0 +1,1850 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy as cp +import io +import os +import os.path as osp +import shutil +import warnings + +import mmcv +import numpy as np +import torch +from mmcv.fileio import FileClient +from torch.nn.modules.utils import _pair + +from ...utils import get_random_string, get_shm_dir, get_thread_id +from ..builder import PIPELINES + + +@PIPELINES.register_module() +class LoadHVULabel: + """Convert the HVU label from dictionaries to torch tensors. + + Required keys are "label", "categories", "category_nums", added or modified + keys are "label", "mask" and "category_mask". + """ + + def __init__(self, **kwargs): + self.hvu_initialized = False + self.kwargs = kwargs + + def init_hvu_info(self, categories, category_nums): + assert len(categories) == len(category_nums) + self.categories = categories + self.category_nums = category_nums + self.num_categories = len(self.categories) + self.num_tags = sum(self.category_nums) + self.category2num = dict(zip(categories, category_nums)) + self.start_idx = [0] + for i in range(self.num_categories - 1): + self.start_idx.append(self.start_idx[-1] + self.category_nums[i]) + self.category2startidx = dict(zip(categories, self.start_idx)) + self.hvu_initialized = True + + def __call__(self, results): + """Convert the label dictionary to 3 tensors: "label", "mask" and + "category_mask". + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + + if not self.hvu_initialized: + self.init_hvu_info(results['categories'], results['category_nums']) + + onehot = torch.zeros(self.num_tags) + onehot_mask = torch.zeros(self.num_tags) + category_mask = torch.zeros(self.num_categories) + + for category, tags in results['label'].items(): + # skip if not training on this category + if category not in self.categories: + continue + category_mask[self.categories.index(category)] = 1. + start_idx = self.category2startidx[category] + category_num = self.category2num[category] + tags = [idx + start_idx for idx in tags] + onehot[tags] = 1. + onehot_mask[start_idx:category_num + start_idx] = 1. + + results['label'] = onehot + results['mask'] = onehot_mask + results['category_mask'] = category_mask + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'hvu_initialized={self.hvu_initialized})') + return repr_str + + +@PIPELINES.register_module() +class SampleFrames: + """Sample frames from the video. + + Required keys are "total_frames", "start_index" , added or modified keys + are "frame_inds", "frame_interval" and "num_clips". + + Args: + clip_len (int): Frames of each sampled output clip. + frame_interval (int): Temporal interval of adjacent sampled frames. + Default: 1. + num_clips (int): Number of clips to be sampled. Default: 1. + temporal_jitter (bool): Whether to apply temporal jittering. + Default: False. + twice_sample (bool): Whether to use twice sample when testing. + If set to True, it will sample frames with and without fixed shift, + which is commonly used for testing in TSM model. Default: False. + out_of_bound_opt (str): The way to deal with out of bounds frame + indexes. Available options are 'loop', 'repeat_last'. + Default: 'loop'. + test_mode (bool): Store True when building test or validation dataset. + Default: False. + start_index (None): This argument is deprecated and moved to dataset + class (``BaseDataset``, ``VideoDataset``, ``RawframeDataset``, + etc), see this: https://github.com/open-mmlab/mmaction2/pull/89. + keep_tail_frames (bool): Whether to keep tail frames when sampling. + Default: False. + """ + + def __init__(self, + clip_len, + frame_interval=1, + num_clips=1, + temporal_jitter=False, + twice_sample=False, + out_of_bound_opt='loop', + test_mode=False, + start_index=None, + keep_tail_frames=False): + + self.clip_len = clip_len + self.frame_interval = frame_interval + self.num_clips = num_clips + self.temporal_jitter = temporal_jitter + self.twice_sample = twice_sample + self.out_of_bound_opt = out_of_bound_opt + self.test_mode = test_mode + self.keep_tail_frames = keep_tail_frames + assert self.out_of_bound_opt in ['loop', 'repeat_last'] + + if start_index is not None: + warnings.warn('No longer support "start_index" in "SampleFrames", ' + 'it should be set in dataset class, see this pr: ' + 'https://github.com/open-mmlab/mmaction2/pull/89') + + def _get_train_clips(self, num_frames): + """Get clip offsets in train mode. + + It will calculate the average interval for selected frames, + and randomly shift them within offsets between [0, avg_interval]. + If the total number of frames is smaller than clips num or origin + frames length, it will return all zero indices. + + Args: + num_frames (int): Total number of frame in the video. + + Returns: + np.ndarray: Sampled frame indices in train mode. + """ + ori_clip_len = self.clip_len * self.frame_interval + + if self.keep_tail_frames: + avg_interval = (num_frames - ori_clip_len + 1) / float( + self.num_clips) + if num_frames > ori_clip_len - 1: + base_offsets = np.arange(self.num_clips) * avg_interval + clip_offsets = (base_offsets + np.random.uniform( + 0, avg_interval, self.num_clips)).astype(np.int) + else: + clip_offsets = np.zeros((self.num_clips, ), dtype=np.int) + else: + avg_interval = (num_frames - ori_clip_len + 1) // self.num_clips + + if avg_interval > 0: + base_offsets = np.arange(self.num_clips) * avg_interval + clip_offsets = base_offsets + np.random.randint( + avg_interval, size=self.num_clips) + elif num_frames > max(self.num_clips, ori_clip_len): + clip_offsets = np.sort( + np.random.randint( + num_frames - ori_clip_len + 1, size=self.num_clips)) + elif avg_interval == 0: + ratio = (num_frames - ori_clip_len + 1.0) / self.num_clips + clip_offsets = np.around(np.arange(self.num_clips) * ratio) + else: + clip_offsets = np.zeros((self.num_clips, ), dtype=np.int) + + return clip_offsets + + def _get_test_clips(self, num_frames): + """Get clip offsets in test mode. + + Calculate the average interval for selected frames, and shift them + fixedly by avg_interval/2. If set twice_sample True, it will sample + frames together without fixed shift. If the total number of frames is + not enough, it will return all zero indices. + + Args: + num_frames (int): Total number of frame in the video. + + Returns: + np.ndarray: Sampled frame indices in test mode. + """ + ori_clip_len = self.clip_len * self.frame_interval + avg_interval = (num_frames - ori_clip_len + 1) / float(self.num_clips) + if num_frames > ori_clip_len - 1: + base_offsets = np.arange(self.num_clips) * avg_interval + clip_offsets = (base_offsets + avg_interval / 2.0).astype(np.int) + if self.twice_sample: + clip_offsets = np.concatenate([clip_offsets, base_offsets]) + else: + clip_offsets = np.zeros((self.num_clips, ), dtype=np.int) + return clip_offsets + + def _sample_clips(self, num_frames): + """Choose clip offsets for the video in a given mode. + + Args: + num_frames (int): Total number of frame in the video. + + Returns: + np.ndarray: Sampled frame indices. + """ + if self.test_mode: + clip_offsets = self._get_test_clips(num_frames) + else: + clip_offsets = self._get_train_clips(num_frames) + + return clip_offsets + + def __call__(self, results): + """Perform the SampleFrames loading. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + total_frames = results['total_frames'] + + clip_offsets = self._sample_clips(total_frames) + frame_inds = clip_offsets[:, None] + np.arange( + self.clip_len)[None, :] * self.frame_interval + frame_inds = np.concatenate(frame_inds) + + if self.temporal_jitter: + perframe_offsets = np.random.randint( + self.frame_interval, size=len(frame_inds)) + frame_inds += perframe_offsets + + frame_inds = frame_inds.reshape((-1, self.clip_len)) + if self.out_of_bound_opt == 'loop': + frame_inds = np.mod(frame_inds, total_frames) + elif self.out_of_bound_opt == 'repeat_last': + safe_inds = frame_inds < total_frames + unsafe_inds = 1 - safe_inds + last_ind = np.max(safe_inds * frame_inds, axis=1) + new_inds = (safe_inds * frame_inds + (unsafe_inds.T * last_ind).T) + frame_inds = new_inds + else: + raise ValueError('Illegal out_of_bound option.') + + start_index = results['start_index'] + frame_inds = np.concatenate(frame_inds) + start_index + results['frame_inds'] = frame_inds.astype(np.int) + results['clip_len'] = self.clip_len + results['frame_interval'] = self.frame_interval + results['num_clips'] = self.num_clips + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'clip_len={self.clip_len}, ' + f'frame_interval={self.frame_interval}, ' + f'num_clips={self.num_clips}, ' + f'temporal_jitter={self.temporal_jitter}, ' + f'twice_sample={self.twice_sample}, ' + f'out_of_bound_opt={self.out_of_bound_opt}, ' + f'test_mode={self.test_mode})') + return repr_str + + +@PIPELINES.register_module() +class UntrimmedSampleFrames: + """Sample frames from the untrimmed video. + + Required keys are "filename", "total_frames", added or modified keys are + "frame_inds", "frame_interval" and "num_clips". + + Args: + clip_len (int): The length of sampled clips. Default: 1. + frame_interval (int): Temporal interval of adjacent sampled frames. + Default: 16. + start_index (None): This argument is deprecated and moved to dataset + class (``BaseDataset``, ``VideoDataset``, ``RawframeDataset``, + etc), see this: https://github.com/open-mmlab/mmaction2/pull/89. + """ + + def __init__(self, clip_len=1, frame_interval=16, start_index=None): + + self.clip_len = clip_len + self.frame_interval = frame_interval + + if start_index is not None: + warnings.warn('No longer support "start_index" in "SampleFrames", ' + 'it should be set in dataset class, see this pr: ' + 'https://github.com/open-mmlab/mmaction2/pull/89') + + def __call__(self, results): + """Perform the SampleFrames loading. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + total_frames = results['total_frames'] + start_index = results['start_index'] + + clip_centers = np.arange(self.frame_interval // 2, total_frames, + self.frame_interval) + num_clips = clip_centers.shape[0] + frame_inds = clip_centers[:, None] + np.arange( + -(self.clip_len // 2), self.clip_len - + (self.clip_len // 2))[None, :] + # clip frame_inds to legal range + frame_inds = np.clip(frame_inds, 0, total_frames - 1) + + frame_inds = np.concatenate(frame_inds) + start_index + results['frame_inds'] = frame_inds.astype(np.int) + results['clip_len'] = self.clip_len + results['frame_interval'] = self.frame_interval + results['num_clips'] = num_clips + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'clip_len={self.clip_len}, ' + f'frame_interval={self.frame_interval})') + return repr_str + + +@PIPELINES.register_module() +class DenseSampleFrames(SampleFrames): + """Select frames from the video by dense sample strategy. + + Required keys are "filename", added or modified keys are "total_frames", + "frame_inds", "frame_interval" and "num_clips". + + Args: + clip_len (int): Frames of each sampled output clip. + frame_interval (int): Temporal interval of adjacent sampled frames. + Default: 1. + num_clips (int): Number of clips to be sampled. Default: 1. + sample_range (int): Total sample range for dense sample. + Default: 64. + num_sample_positions (int): Number of sample start positions, Which is + only used in test mode. Default: 10. That is to say, by default, + there are at least 10 clips for one input sample in test mode. + temporal_jitter (bool): Whether to apply temporal jittering. + Default: False. + test_mode (bool): Store True when building test or validation dataset. + Default: False. + """ + + def __init__(self, + *args, + sample_range=64, + num_sample_positions=10, + **kwargs): + super().__init__(*args, **kwargs) + self.sample_range = sample_range + self.num_sample_positions = num_sample_positions + + def _get_train_clips(self, num_frames): + """Get clip offsets by dense sample strategy in train mode. + + It will calculate a sample position and sample interval and set + start index 0 when sample_pos == 1 or randomly choose from + [0, sample_pos - 1]. Then it will shift the start index by each + base offset. + + Args: + num_frames (int): Total number of frame in the video. + + Returns: + np.ndarray: Sampled frame indices in train mode. + """ + sample_position = max(1, 1 + num_frames - self.sample_range) + interval = self.sample_range // self.num_clips + start_idx = 0 if sample_position == 1 else np.random.randint( + 0, sample_position - 1) + base_offsets = np.arange(self.num_clips) * interval + clip_offsets = (base_offsets + start_idx) % num_frames + return clip_offsets + + def _get_test_clips(self, num_frames): + """Get clip offsets by dense sample strategy in test mode. + + It will calculate a sample position and sample interval and evenly + sample several start indexes as start positions between + [0, sample_position-1]. Then it will shift each start index by the + base offsets. + + Args: + num_frames (int): Total number of frame in the video. + + Returns: + np.ndarray: Sampled frame indices in train mode. + """ + sample_position = max(1, 1 + num_frames - self.sample_range) + interval = self.sample_range // self.num_clips + start_list = np.linspace( + 0, sample_position - 1, num=self.num_sample_positions, dtype=int) + base_offsets = np.arange(self.num_clips) * interval + clip_offsets = list() + for start_idx in start_list: + clip_offsets.extend((base_offsets + start_idx) % num_frames) + clip_offsets = np.array(clip_offsets) + return clip_offsets + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'clip_len={self.clip_len}, ' + f'frame_interval={self.frame_interval}, ' + f'num_clips={self.num_clips}, ' + f'sample_range={self.sample_range}, ' + f'num_sample_positions={self.num_sample_positions}, ' + f'temporal_jitter={self.temporal_jitter}, ' + f'out_of_bound_opt={self.out_of_bound_opt}, ' + f'test_mode={self.test_mode})') + return repr_str + + +@PIPELINES.register_module() +class SampleAVAFrames(SampleFrames): + + def __init__(self, clip_len, frame_interval=2, test_mode=False): + + super().__init__(clip_len, frame_interval, test_mode=test_mode) + + def _get_clips(self, center_index, skip_offsets, shot_info): + start = center_index - (self.clip_len // 2) * self.frame_interval + end = center_index + ((self.clip_len + 1) // 2) * self.frame_interval + frame_inds = list(range(start, end, self.frame_interval)) + if not self.test_mode: + frame_inds = frame_inds + skip_offsets + frame_inds = np.clip(frame_inds, shot_info[0], shot_info[1] - 1) + return frame_inds + + def __call__(self, results): + fps = results['fps'] + timestamp = results['timestamp'] + timestamp_start = results['timestamp_start'] + shot_info = results['shot_info'] + + center_index = fps * (timestamp - timestamp_start) + 1 + + skip_offsets = np.random.randint( + -self.frame_interval // 2, (self.frame_interval + 1) // 2, + size=self.clip_len) + frame_inds = self._get_clips(center_index, skip_offsets, shot_info) + start_index = results.get('start_index', 0) + + frame_inds = np.array(frame_inds, dtype=np.int) + start_index + results['frame_inds'] = frame_inds + results['clip_len'] = self.clip_len + results['frame_interval'] = self.frame_interval + results['num_clips'] = 1 + results['crop_quadruple'] = np.array([0, 0, 1, 1], dtype=np.float32) + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'clip_len={self.clip_len}, ' + f'frame_interval={self.frame_interval}, ' + f'test_mode={self.test_mode})') + return repr_str + + +@PIPELINES.register_module() +class SampleProposalFrames(SampleFrames): + """Sample frames from proposals in the video. + + Required keys are "total_frames" and "out_proposals", added or + modified keys are "frame_inds", "frame_interval", "num_clips", + 'clip_len' and 'num_proposals'. + + Args: + clip_len (int): Frames of each sampled output clip. + body_segments (int): Number of segments in course period. + aug_segments (list[int]): Number of segments in starting and + ending period. + aug_ratio (int | float | tuple[int | float]): The ratio + of the length of augmentation to that of the proposal. + frame_interval (int): Temporal interval of adjacent sampled frames. + Default: 1. + test_interval (int): Temporal interval of adjacent sampled frames + in test mode. Default: 6. + temporal_jitter (bool): Whether to apply temporal jittering. + Default: False. + mode (str): Choose 'train', 'val' or 'test' mode. + Default: 'train'. + """ + + def __init__(self, + clip_len, + body_segments, + aug_segments, + aug_ratio, + frame_interval=1, + test_interval=6, + temporal_jitter=False, + mode='train'): + super().__init__( + clip_len, + frame_interval=frame_interval, + temporal_jitter=temporal_jitter) + self.body_segments = body_segments + self.aug_segments = aug_segments + self.aug_ratio = _pair(aug_ratio) + if not mmcv.is_tuple_of(self.aug_ratio, (int, float)): + raise TypeError(f'aug_ratio should be int, float' + f'or tuple of int and float, ' + f'but got {type(aug_ratio)}') + assert len(self.aug_ratio) == 2 + assert mode in ['train', 'val', 'test'] + self.mode = mode + self.test_interval = test_interval + + @staticmethod + def _get_train_indices(valid_length, num_segments): + """Get indices of different stages of proposals in train mode. + + It will calculate the average interval for each segment, + and randomly shift them within offsets between [0, average_duration]. + If the total number of frames is smaller than num segments, it will + return all zero indices. + + Args: + valid_length (int): The length of the starting point's + valid interval. + num_segments (int): Total number of segments. + + Returns: + np.ndarray: Sampled frame indices in train mode. + """ + avg_interval = (valid_length + 1) // num_segments + if avg_interval > 0: + base_offsets = np.arange(num_segments) * avg_interval + offsets = base_offsets + np.random.randint( + avg_interval, size=num_segments) + else: + offsets = np.zeros((num_segments, ), dtype=np.int) + + return offsets + + @staticmethod + def _get_val_indices(valid_length, num_segments): + """Get indices of different stages of proposals in validation mode. + + It will calculate the average interval for each segment. + If the total number of valid length is smaller than num segments, + it will return all zero indices. + + Args: + valid_length (int): The length of the starting point's + valid interval. + num_segments (int): Total number of segments. + + Returns: + np.ndarray: Sampled frame indices in validation mode. + """ + if valid_length >= num_segments: + avg_interval = valid_length / float(num_segments) + base_offsets = np.arange(num_segments) * avg_interval + offsets = (base_offsets + avg_interval / 2.0).astype(np.int) + else: + offsets = np.zeros((num_segments, ), dtype=np.int) + + return offsets + + def _get_proposal_clips(self, proposal, num_frames): + """Get clip offsets in train mode. + + It will calculate sampled frame indices in the proposal's three + stages: starting, course and ending stage. + + Args: + proposal (obj): The proposal object. + num_frames (int): Total number of frame in the video. + + Returns: + np.ndarray: Sampled frame indices in train mode. + """ + # proposal interval: [start_frame, end_frame) + start_frame = proposal.start_frame + end_frame = proposal.end_frame + ori_clip_len = self.clip_len * self.frame_interval + + duration = end_frame - start_frame + assert duration != 0 + valid_length = duration - ori_clip_len + + valid_starting = max(0, + start_frame - int(duration * self.aug_ratio[0])) + valid_ending = min(num_frames - ori_clip_len + 1, + end_frame - 1 + int(duration * self.aug_ratio[1])) + + valid_starting_length = start_frame - valid_starting - ori_clip_len + valid_ending_length = (valid_ending - end_frame + 1) - ori_clip_len + + if self.mode == 'train': + starting_offsets = self._get_train_indices(valid_starting_length, + self.aug_segments[0]) + course_offsets = self._get_train_indices(valid_length, + self.body_segments) + ending_offsets = self._get_train_indices(valid_ending_length, + self.aug_segments[1]) + elif self.mode == 'val': + starting_offsets = self._get_val_indices(valid_starting_length, + self.aug_segments[0]) + course_offsets = self._get_val_indices(valid_length, + self.body_segments) + ending_offsets = self._get_val_indices(valid_ending_length, + self.aug_segments[1]) + starting_offsets += valid_starting + course_offsets += start_frame + ending_offsets += end_frame + + offsets = np.concatenate( + (starting_offsets, course_offsets, ending_offsets)) + return offsets + + def _get_train_clips(self, num_frames, proposals): + """Get clip offsets in train mode. + + It will calculate sampled frame indices of each proposal, and then + assemble them. + + Args: + num_frames (int): Total number of frame in the video. + proposals (list): Proposals fetched. + + Returns: + np.ndarray: Sampled frame indices in train mode. + """ + clip_offsets = [] + for proposal in proposals: + proposal_clip_offsets = self._get_proposal_clips( + proposal[0][1], num_frames) + clip_offsets = np.concatenate( + [clip_offsets, proposal_clip_offsets]) + + return clip_offsets + + def _get_test_clips(self, num_frames): + """Get clip offsets in test mode. + + It will calculate sampled frame indices based on test interval. + + Args: + num_frames (int): Total number of frame in the video. + + Returns: + np.ndarray: Sampled frame indices in test mode. + """ + ori_clip_len = self.clip_len * self.frame_interval + return np.arange( + 0, num_frames - ori_clip_len, self.test_interval, dtype=np.int) + + def _sample_clips(self, num_frames, proposals): + """Choose clip offsets for the video in a given mode. + + Args: + num_frames (int): Total number of frame in the video. + proposals (list | None): Proposals fetched. + It is set to None in test mode. + + Returns: + np.ndarray: Sampled frame indices. + """ + if self.mode == 'test': + clip_offsets = self._get_test_clips(num_frames) + else: + assert proposals is not None + clip_offsets = self._get_train_clips(num_frames, proposals) + + return clip_offsets + + def __call__(self, results): + """Perform the SampleFrames loading. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + total_frames = results['total_frames'] + + out_proposals = results.get('out_proposals', None) + clip_offsets = self._sample_clips(total_frames, out_proposals) + frame_inds = clip_offsets[:, None] + np.arange( + self.clip_len)[None, :] * self.frame_interval + frame_inds = np.concatenate(frame_inds) + + if self.temporal_jitter: + perframe_offsets = np.random.randint( + self.frame_interval, size=len(frame_inds)) + frame_inds += perframe_offsets + + start_index = results['start_index'] + frame_inds = np.mod(frame_inds, total_frames) + start_index + + results['frame_inds'] = np.array(frame_inds).astype(np.int) + results['clip_len'] = self.clip_len + results['frame_interval'] = self.frame_interval + results['num_clips'] = ( + self.body_segments + self.aug_segments[0] + self.aug_segments[1]) + if self.mode in ['train', 'val']: + results['num_proposals'] = len(results['out_proposals']) + + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'clip_len={self.clip_len}, ' + f'body_segments={self.body_segments}, ' + f'aug_segments={self.aug_segments}, ' + f'aug_ratio={self.aug_ratio}, ' + f'frame_interval={self.frame_interval}, ' + f'test_interval={self.test_interval}, ' + f'temporal_jitter={self.temporal_jitter}, ' + f'mode={self.mode})') + return repr_str + + +@PIPELINES.register_module() +class PyAVInit: + """Using pyav to initialize the video. + + PyAV: https://github.com/mikeboers/PyAV + + Required keys are "filename", + added or modified keys are "video_reader", and "total_frames". + + Args: + io_backend (str): io backend where frames are store. + Default: 'disk'. + kwargs (dict): Args for file client. + """ + + def __init__(self, io_backend='disk', **kwargs): + self.io_backend = io_backend + self.kwargs = kwargs + self.file_client = None + + def __call__(self, results): + """Perform the PyAV initialization. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + try: + import av + except ImportError: + raise ImportError('Please run "conda install av -c conda-forge" ' + 'or "pip install av" to install PyAV first.') + + if self.file_client is None: + self.file_client = FileClient(self.io_backend, **self.kwargs) + + file_obj = io.BytesIO(self.file_client.get(results['filename'])) + container = av.open(file_obj) + + results['video_reader'] = container + results['total_frames'] = container.streams.video[0].frames + + return results + + def __repr__(self): + repr_str = f'{self.__class__.__name__}(io_backend={self.io_backend})' + return repr_str + + +@PIPELINES.register_module() +class PyAVDecode: + """Using PyAV to decode the video. + + PyAV: https://github.com/mikeboers/PyAV + + Required keys are "video_reader" and "frame_inds", + added or modified keys are "imgs", "img_shape" and "original_shape". + + Args: + multi_thread (bool): If set to True, it will apply multi + thread processing. Default: False. + mode (str): Decoding mode. Options are 'accurate' and 'efficient'. + If set to 'accurate', it will decode videos into accurate frames. + If set to 'efficient', it will adopt fast seeking but only return + the nearest key frames, which may be duplicated and inaccurate, + and more suitable for large scene-based video datasets. + Default: 'accurate'. + """ + + def __init__(self, multi_thread=False, mode='accurate'): + self.multi_thread = multi_thread + self.mode = mode + assert mode in ['accurate', 'efficient'] + + @staticmethod + def frame_generator(container, stream): + """Frame generator for PyAV.""" + for packet in container.demux(stream): + for frame in packet.decode(): + if frame: + return frame.to_rgb().to_ndarray() + + def __call__(self, results): + """Perform the PyAV decoding. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + container = results['video_reader'] + imgs = list() + + if self.multi_thread: + container.streams.video[0].thread_type = 'AUTO' + if results['frame_inds'].ndim != 1: + results['frame_inds'] = np.squeeze(results['frame_inds']) + + if self.mode == 'accurate': + # set max indice to make early stop + max_inds = max(results['frame_inds']) + i = 0 + for frame in container.decode(video=0): + if i > max_inds + 1: + break + imgs.append(frame.to_rgb().to_ndarray()) + i += 1 + + # the available frame in pyav may be less than its length, + # which may raise error + results['imgs'] = [ + imgs[i % len(imgs)] for i in results['frame_inds'] + ] + elif self.mode == 'efficient': + for frame in container.decode(video=0): + backup_frame = frame + break + stream = container.streams.video[0] + for idx in results['frame_inds']: + pts_scale = stream.average_rate * stream.time_base + frame_pts = int(idx / pts_scale) + container.seek( + frame_pts, any_frame=False, backward=True, stream=stream) + frame = self.frame_generator(container, stream) + if frame is not None: + imgs.append(frame) + backup_frame = frame + else: + imgs.append(backup_frame) + results['imgs'] = imgs + results['original_shape'] = imgs[0].shape[:2] + results['img_shape'] = imgs[0].shape[:2] + results['video_reader'] = None + del container + + return results + + def __repr__(self): + repr_str = self.__class__.__name__ + repr_str += f'(multi_thread={self.multi_thread}, mode={self.mode})' + return repr_str + + +@PIPELINES.register_module() +class PIMSInit: + """Use PIMS to initialize the video. + + PIMS: https://github.com/soft-matter/pims + + Args: + io_backend (str): io backend where frames are store. + Default: 'disk'. + mode (str): Decoding mode. Options are 'accurate' and 'efficient'. + If set to 'accurate', it will always use ``pims.PyAVReaderIndexed`` + to decode videos into accurate frames. If set to 'efficient', it + will adopt fast seeking by using ``pims.PyAVReaderTimed``. + Both will return the accurate frames in most cases. + Default: 'accurate'. + kwargs (dict): Args for file client. + """ + + def __init__(self, io_backend='disk', mode='accurate', **kwargs): + self.io_backend = io_backend + self.kwargs = kwargs + self.file_client = None + self.mode = mode + assert mode in ['accurate', 'efficient'] + + def __call__(self, results): + try: + import pims + except ImportError: + raise ImportError('Please run "conda install pims -c conda-forge" ' + 'or "pip install pims" to install pims first.') + + if self.file_client is None: + self.file_client = FileClient(self.io_backend, **self.kwargs) + + file_obj = io.BytesIO(self.file_client.get(results['filename'])) + if self.mode == 'accurate': + container = pims.PyAVReaderIndexed(file_obj) + else: + container = pims.PyAVReaderTimed(file_obj) + + results['video_reader'] = container + results['total_frames'] = len(container) + + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(io_backend={self.io_backend}, ' + f'mode={self.mode})') + return repr_str + + +@PIPELINES.register_module() +class PIMSDecode: + """Using PIMS to decode the videos. + + PIMS: https://github.com/soft-matter/pims + + Required keys are "video_reader" and "frame_inds", + added or modified keys are "imgs", "img_shape" and "original_shape". + """ + + def __call__(self, results): + container = results['video_reader'] + + if results['frame_inds'].ndim != 1: + results['frame_inds'] = np.squeeze(results['frame_inds']) + + frame_inds = results['frame_inds'] + imgs = [container[idx] for idx in frame_inds] + + results['video_reader'] = None + del container + + results['imgs'] = imgs + results['original_shape'] = imgs[0].shape[:2] + results['img_shape'] = imgs[0].shape[:2] + + return results + + +@PIPELINES.register_module() +class PyAVDecodeMotionVector(PyAVDecode): + """Using pyav to decode the motion vectors from video. + + Reference: https://github.com/PyAV-Org/PyAV/ + blob/main/tests/test_decode.py + + Required keys are "video_reader" and "frame_inds", + added or modified keys are "motion_vectors", "frame_inds". + """ + + @staticmethod + def _parse_vectors(mv, vectors, height, width): + """Parse the returned vectors.""" + (w, h, src_x, src_y, dst_x, + dst_y) = (vectors['w'], vectors['h'], vectors['src_x'], + vectors['src_y'], vectors['dst_x'], vectors['dst_y']) + val_x = dst_x - src_x + val_y = dst_y - src_y + start_x = dst_x - w // 2 + start_y = dst_y - h // 2 + end_x = start_x + w + end_y = start_y + h + for sx, ex, sy, ey, vx, vy in zip(start_x, end_x, start_y, end_y, + val_x, val_y): + if (sx >= 0 and ex < width and sy >= 0 and ey < height): + mv[sy:ey, sx:ex] = (vx, vy) + + return mv + + def __call__(self, results): + """Perform the PyAV motion vector decoding. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + container = results['video_reader'] + imgs = list() + + if self.multi_thread: + container.streams.video[0].thread_type = 'AUTO' + if results['frame_inds'].ndim != 1: + results['frame_inds'] = np.squeeze(results['frame_inds']) + + # set max index to make early stop + max_idx = max(results['frame_inds']) + i = 0 + stream = container.streams.video[0] + codec_context = stream.codec_context + codec_context.options = {'flags2': '+export_mvs'} + for packet in container.demux(stream): + for frame in packet.decode(): + if i > max_idx + 1: + break + i += 1 + height = frame.height + width = frame.width + mv = np.zeros((height, width, 2), dtype=np.int8) + vectors = frame.side_data.get('MOTION_VECTORS') + if frame.key_frame: + # Key frame don't have motion vectors + assert vectors is None + if vectors is not None and len(vectors) > 0: + mv = self._parse_vectors(mv, vectors.to_ndarray(), height, + width) + imgs.append(mv) + + results['video_reader'] = None + del container + + # the available frame in pyav may be less than its length, + # which may raise error + results['motion_vectors'] = np.array( + [imgs[i % len(imgs)] for i in results['frame_inds']]) + return results + + +@PIPELINES.register_module() +class DecordInit: + """Using decord to initialize the video_reader. + + Decord: https://github.com/dmlc/decord + + Required keys are "filename", + added or modified keys are "video_reader" and "total_frames". + + Args: + io_backend (str): io backend where frames are store. + Default: 'disk'. + num_threads (int): Number of thread to decode the video. Default: 1. + kwargs (dict): Args for file client. + """ + + def __init__(self, io_backend='disk', num_threads=1, **kwargs): + self.io_backend = io_backend + self.num_threads = num_threads + self.kwargs = kwargs + self.file_client = None + + def __call__(self, results): + """Perform the Decord initialization. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + try: + import decord + except ImportError: + raise ImportError( + 'Please run "pip install decord" to install Decord first.') + + if self.file_client is None: + self.file_client = FileClient(self.io_backend, **self.kwargs) + + file_obj = io.BytesIO(self.file_client.get(results['filename'])) + container = decord.VideoReader(file_obj, num_threads=self.num_threads) + results['video_reader'] = container + results['total_frames'] = len(container) + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'io_backend={self.io_backend}, ' + f'num_threads={self.num_threads})') + return repr_str + + +@PIPELINES.register_module() +class DecordDecode: + """Using decord to decode the video. + + Decord: https://github.com/dmlc/decord + + Required keys are "video_reader", "filename" and "frame_inds", + added or modified keys are "imgs" and "original_shape". + + Args: + mode (str): Decoding mode. Options are 'accurate' and 'efficient'. + If set to 'accurate', it will decode videos into accurate frames. + If set to 'efficient', it will adopt fast seeking but only return + key frames, which may be duplicated and inaccurate, and more + suitable for large scene-based video datasets. Default: 'accurate'. + """ + + def __init__(self, mode='accurate'): + self.mode = mode + assert mode in ['accurate', 'efficient'] + + def __call__(self, results): + """Perform the Decord decoding. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + container = results['video_reader'] + + if results['frame_inds'].ndim != 1: + results['frame_inds'] = np.squeeze(results['frame_inds']) + + frame_inds = results['frame_inds'] + + if self.mode == 'accurate': + imgs = container.get_batch(frame_inds).asnumpy() + imgs = list(imgs) + elif self.mode == 'efficient': + # This mode is faster, however it always returns I-FRAME + container.seek(0) + imgs = list() + for idx in frame_inds: + container.seek(idx) + frame = container.next() + imgs.append(frame.asnumpy()) + + results['video_reader'] = None + del container + + results['imgs'] = imgs + results['original_shape'] = imgs[0].shape[:2] + results['img_shape'] = imgs[0].shape[:2] + + return results + + def __repr__(self): + repr_str = f'{self.__class__.__name__}(mode={self.mode})' + return repr_str + + +@PIPELINES.register_module() +class OpenCVInit: + """Using OpenCV to initialize the video_reader. + + Required keys are "filename", added or modified keys are "new_path", + "video_reader" and "total_frames". + + Args: + io_backend (str): io backend where frames are store. + Default: 'disk'. + kwargs (dict): Args for file client. + """ + + def __init__(self, io_backend='disk', **kwargs): + self.io_backend = io_backend + self.kwargs = kwargs + self.file_client = None + self.tmp_folder = None + if self.io_backend != 'disk': + random_string = get_random_string() + thread_id = get_thread_id() + self.tmp_folder = osp.join(get_shm_dir(), + f'{random_string}_{thread_id}') + os.mkdir(self.tmp_folder) + + def __call__(self, results): + """Perform the OpenCV initialization. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + if self.io_backend == 'disk': + new_path = results['filename'] + else: + if self.file_client is None: + self.file_client = FileClient(self.io_backend, **self.kwargs) + + thread_id = get_thread_id() + # save the file of same thread at the same place + new_path = osp.join(self.tmp_folder, f'tmp_{thread_id}.mp4') + with open(new_path, 'wb') as f: + f.write(self.file_client.get(results['filename'])) + + container = mmcv.VideoReader(new_path) + results['new_path'] = new_path + results['video_reader'] = container + results['total_frames'] = len(container) + + return results + + def __del__(self): + if self.tmp_folder and osp.exists(self.tmp_folder): + shutil.rmtree(self.tmp_folder) + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'io_backend={self.io_backend})') + return repr_str + + +@PIPELINES.register_module() +class OpenCVDecode: + """Using OpenCV to decode the video. + + Required keys are "video_reader", "filename" and "frame_inds", added or + modified keys are "imgs", "img_shape" and "original_shape". + """ + + def __call__(self, results): + """Perform the OpenCV decoding. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + container = results['video_reader'] + imgs = list() + + if results['frame_inds'].ndim != 1: + results['frame_inds'] = np.squeeze(results['frame_inds']) + + for frame_ind in results['frame_inds']: + cur_frame = container[frame_ind] + # last frame may be None in OpenCV + while isinstance(cur_frame, type(None)): + frame_ind -= 1 + cur_frame = container[frame_ind] + imgs.append(cur_frame) + + results['video_reader'] = None + del container + + imgs = np.array(imgs) + # The default channel order of OpenCV is BGR, thus we change it to RGB + imgs = imgs[:, :, :, ::-1] + results['imgs'] = list(imgs) + results['original_shape'] = imgs[0].shape[:2] + results['img_shape'] = imgs[0].shape[:2] + + return results + + +@PIPELINES.register_module() +class RawFrameDecode: + """Load and decode frames with given indices. + + Required keys are "frame_dir", "filename_tmpl" and "frame_inds", + added or modified keys are "imgs", "img_shape" and "original_shape". + + Args: + io_backend (str): IO backend where frames are stored. Default: 'disk'. + decoding_backend (str): Backend used for image decoding. + Default: 'cv2'. + kwargs (dict, optional): Arguments for FileClient. + """ + + def __init__(self, io_backend='disk', decoding_backend='cv2', **kwargs): + self.io_backend = io_backend + self.decoding_backend = decoding_backend + self.kwargs = kwargs + self.file_client = None + + def __call__(self, results): + """Perform the ``RawFrameDecode`` to pick frames given indices. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + mmcv.use_backend(self.decoding_backend) + + directory = results['frame_dir'] + filename_tmpl = results['filename_tmpl'] + modality = results['modality'] + + if self.file_client is None: + self.file_client = FileClient(self.io_backend, **self.kwargs) + + imgs = list() + + if results['frame_inds'].ndim != 1: + results['frame_inds'] = np.squeeze(results['frame_inds']) + + offset = results.get('offset', 0) + + cache = {} + for i, frame_idx in enumerate(results['frame_inds']): + # Avoid loading duplicated frames + if frame_idx in cache: + if modality == 'RGB': + imgs.append(cp.deepcopy(imgs[cache[frame_idx]])) + else: + imgs.append(cp.deepcopy(imgs[2 * cache[frame_idx]])) + imgs.append(cp.deepcopy(imgs[2 * cache[frame_idx] + 1])) + continue + else: + cache[frame_idx] = i + + frame_idx += offset + if modality == 'RGB': + filepath = osp.join(directory, filename_tmpl.format(frame_idx)) + img_bytes = self.file_client.get(filepath) + # Get frame with channel order RGB directly. + cur_frame = mmcv.imfrombytes(img_bytes, channel_order='rgb') + imgs.append(cur_frame) + elif modality == 'Flow': + x_filepath = osp.join(directory, + filename_tmpl.format('x', frame_idx)) + y_filepath = osp.join(directory, + filename_tmpl.format('y', frame_idx)) + x_img_bytes = self.file_client.get(x_filepath) + x_frame = mmcv.imfrombytes(x_img_bytes, flag='grayscale') + y_img_bytes = self.file_client.get(y_filepath) + y_frame = mmcv.imfrombytes(y_img_bytes, flag='grayscale') + imgs.extend([x_frame, y_frame]) + else: + raise NotImplementedError + + results['imgs'] = imgs + results['original_shape'] = imgs[0].shape[:2] + results['img_shape'] = imgs[0].shape[:2] + + # we resize the gt_bboxes and proposals to their real scale + if 'gt_bboxes' in results: + h, w = results['img_shape'] + scale_factor = np.array([w, h, w, h]) + gt_bboxes = results['gt_bboxes'] + gt_bboxes = (gt_bboxes * scale_factor).astype(np.float32) + results['gt_bboxes'] = gt_bboxes + if 'proposals' in results and results['proposals'] is not None: + proposals = results['proposals'] + proposals = (proposals * scale_factor).astype(np.float32) + results['proposals'] = proposals + + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'io_backend={self.io_backend}, ' + f'decoding_backend={self.decoding_backend})') + return repr_str + + +@PIPELINES.register_module() +class ArrayDecode: + """Load and decode frames with given indices from a 4D array. + + Required keys are "array and "frame_inds", added or modified keys are + "imgs", "img_shape" and "original_shape". + """ + + def __call__(self, results): + """Perform the ``RawFrameDecode`` to pick frames given indices. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + + modality = results['modality'] + array = results['array'] + + imgs = list() + + if results['frame_inds'].ndim != 1: + results['frame_inds'] = np.squeeze(results['frame_inds']) + + offset = results.get('offset', 0) + + for i, frame_idx in enumerate(results['frame_inds']): + + frame_idx += offset + if modality == 'RGB': + imgs.append(array[frame_idx]) + elif modality == 'Flow': + imgs.extend( + [array[frame_idx, ..., 0], array[frame_idx, ..., 1]]) + else: + raise NotImplementedError + + results['imgs'] = imgs + results['original_shape'] = imgs[0].shape[:2] + results['img_shape'] = imgs[0].shape[:2] + + return results + + def __repr__(self): + return f'{self.__class__.__name__}()' + + +@PIPELINES.register_module() +class ImageDecode: + """Load and decode images. + + Required key is "filename", added or modified keys are "imgs", "img_shape" + and "original_shape". + + Args: + io_backend (str): IO backend where frames are stored. Default: 'disk'. + decoding_backend (str): Backend used for image decoding. + Default: 'cv2'. + kwargs (dict, optional): Arguments for FileClient. + """ + + def __init__(self, io_backend='disk', decoding_backend='cv2', **kwargs): + self.io_backend = io_backend + self.decoding_backend = decoding_backend + self.kwargs = kwargs + self.file_client = None + + def __call__(self, results): + """Perform the ``ImageDecode`` to load image given the file path. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + mmcv.use_backend(self.decoding_backend) + + filename = results['filename'] + + if self.file_client is None: + self.file_client = FileClient(self.io_backend, **self.kwargs) + + imgs = list() + img_bytes = self.file_client.get(filename) + + img = mmcv.imfrombytes(img_bytes, channel_order='rgb') + imgs.append(img) + + results['imgs'] = imgs + results['original_shape'] = imgs[0].shape[:2] + results['img_shape'] = imgs[0].shape[:2] + return results + + +@PIPELINES.register_module() +class AudioDecodeInit: + """Using librosa to initialize the audio reader. + + Required keys are "audio_path", added or modified keys are "length", + "sample_rate", "audios". + + Args: + io_backend (str): io backend where frames are store. + Default: 'disk'. + sample_rate (int): Audio sampling times per second. Default: 16000. + """ + + def __init__(self, + io_backend='disk', + sample_rate=16000, + pad_method='zero', + **kwargs): + self.io_backend = io_backend + self.sample_rate = sample_rate + if pad_method in ['random', 'zero']: + self.pad_method = pad_method + else: + raise NotImplementedError + self.kwargs = kwargs + self.file_client = None + + @staticmethod + def _zero_pad(shape): + return np.zeros(shape, dtype=np.float32) + + @staticmethod + def _random_pad(shape): + # librosa load raw audio file into a distribution of -1~+1 + return np.random.rand(shape).astype(np.float32) * 2 - 1 + + def __call__(self, results): + """Perform the librosa initialization. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + try: + import librosa + except ImportError: + raise ImportError('Please install librosa first.') + + if self.file_client is None: + self.file_client = FileClient(self.io_backend, **self.kwargs) + if osp.exists(results['audio_path']): + file_obj = io.BytesIO(self.file_client.get(results['audio_path'])) + y, sr = librosa.load(file_obj, sr=self.sample_rate) + else: + # Generate a random dummy 10s input + pad_func = getattr(self, f'_{self.pad_method}_pad') + y = pad_func(int(round(10.0 * self.sample_rate))) + sr = self.sample_rate + + results['length'] = y.shape[0] + results['sample_rate'] = sr + results['audios'] = y + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'io_backend={self.io_backend}, ' + f'sample_rate={self.sample_rate}, ' + f'pad_method={self.pad_method})') + return repr_str + + +@PIPELINES.register_module() +class LoadAudioFeature: + """Load offline extracted audio features. + + Required keys are "audio_path", added or modified keys are "length", + audios". + """ + + def __init__(self, pad_method='zero'): + if pad_method not in ['zero', 'random']: + raise NotImplementedError + self.pad_method = pad_method + + @staticmethod + def _zero_pad(shape): + return np.zeros(shape, dtype=np.float32) + + @staticmethod + def _random_pad(shape): + # spectrogram is normalized into a distribution of 0~1 + return np.random.rand(shape).astype(np.float32) + + def __call__(self, results): + """Perform the numpy loading. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + if osp.exists(results['audio_path']): + feature_map = np.load(results['audio_path']) + else: + # Generate a random dummy 10s input + # Some videos do not have audio stream + pad_func = getattr(self, f'_{self.pad_method}_pad') + feature_map = pad_func((640, 80)) + + results['length'] = feature_map.shape[0] + results['audios'] = feature_map + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'pad_method={self.pad_method})') + return repr_str + + +@PIPELINES.register_module() +class AudioDecode: + """Sample the audio w.r.t. the frames selected. + + Args: + fixed_length (int): As the audio clip selected by frames sampled may + not be exactly the same, `fixed_length` will truncate or pad them + into the same size. Default: 32000. + + Required keys are "frame_inds", "num_clips", "total_frames", "length", + added or modified keys are "audios", "audios_shape". + """ + + def __init__(self, fixed_length=32000): + self.fixed_length = fixed_length + + def __call__(self, results): + """Perform the ``AudioDecode`` to pick audio clips.""" + audio = results['audios'] + frame_inds = results['frame_inds'] + num_clips = results['num_clips'] + resampled_clips = list() + frame_inds = frame_inds.reshape(num_clips, -1) + for clip_idx in range(num_clips): + clip_frame_inds = frame_inds[clip_idx] + start_idx = max( + 0, + int( + round((clip_frame_inds[0] + 1) / results['total_frames'] * + results['length']))) + end_idx = min( + results['length'], + int( + round((clip_frame_inds[-1] + 1) / results['total_frames'] * + results['length']))) + cropped_audio = audio[start_idx:end_idx] + if cropped_audio.shape[0] >= self.fixed_length: + truncated_audio = cropped_audio[:self.fixed_length] + else: + truncated_audio = np.pad( + cropped_audio, + ((0, self.fixed_length - cropped_audio.shape[0])), + mode='constant') + + resampled_clips.append(truncated_audio) + + results['audios'] = np.array(resampled_clips) + results['audios_shape'] = results['audios'].shape + return results + + +@PIPELINES.register_module() +class BuildPseudoClip: + """Build pseudo clips with one single image by repeating it n times. + + Required key is "imgs", added or modified key is "imgs", "num_clips", + "clip_len". + + Args: + clip_len (int): Frames of the generated pseudo clips. + """ + + def __init__(self, clip_len): + self.clip_len = clip_len + + def __call__(self, results): + # the input should be one single image + assert len(results['imgs']) == 1 + im = results['imgs'][0] + for _ in range(1, self.clip_len): + results['imgs'].append(np.copy(im)) + results['clip_len'] = self.clip_len + results['num_clips'] = 1 + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'fix_length={self.fixed_length})') + return repr_str + + +@PIPELINES.register_module() +class AudioFeatureSelector: + """Sample the audio feature w.r.t. the frames selected. + + Required keys are "audios", "frame_inds", "num_clips", "length", + "total_frames", added or modified keys are "audios", "audios_shape". + + Args: + fixed_length (int): As the features selected by frames sampled may + not be exactly the same, `fixed_length` will truncate or pad them + into the same size. Default: 128. + """ + + def __init__(self, fixed_length=128): + self.fixed_length = fixed_length + + def __call__(self, results): + """Perform the ``AudioFeatureSelector`` to pick audio feature clips. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + audio = results['audios'] + frame_inds = results['frame_inds'] + num_clips = results['num_clips'] + resampled_clips = list() + + frame_inds = frame_inds.reshape(num_clips, -1) + for clip_idx in range(num_clips): + clip_frame_inds = frame_inds[clip_idx] + start_idx = max( + 0, + int( + round((clip_frame_inds[0] + 1) / results['total_frames'] * + results['length']))) + end_idx = min( + results['length'], + int( + round((clip_frame_inds[-1] + 1) / results['total_frames'] * + results['length']))) + cropped_audio = audio[start_idx:end_idx, :] + if cropped_audio.shape[0] >= self.fixed_length: + truncated_audio = cropped_audio[:self.fixed_length, :] + else: + truncated_audio = np.pad( + cropped_audio, + ((0, self.fixed_length - cropped_audio.shape[0]), (0, 0)), + mode='constant') + + resampled_clips.append(truncated_audio) + results['audios'] = np.array(resampled_clips) + results['audios_shape'] = results['audios'].shape + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'fix_length={self.fixed_length})') + return repr_str + + +@PIPELINES.register_module() +class LoadLocalizationFeature: + """Load Video features for localizer with given video_name list. + + Required keys are "video_name" and "data_prefix", added or modified keys + are "raw_feature". + + Args: + raw_feature_ext (str): Raw feature file extension. Default: '.csv'. + """ + + def __init__(self, raw_feature_ext='.csv'): + valid_raw_feature_ext = ('.csv', ) + if raw_feature_ext not in valid_raw_feature_ext: + raise NotImplementedError + self.raw_feature_ext = raw_feature_ext + + def __call__(self, results): + """Perform the LoadLocalizationFeature loading. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + video_name = results['video_name'] + data_prefix = results['data_prefix'] + + data_path = osp.join(data_prefix, video_name + self.raw_feature_ext) + raw_feature = np.loadtxt( + data_path, dtype=np.float32, delimiter=',', skiprows=1) + + results['raw_feature'] = np.transpose(raw_feature, (1, 0)) + + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'raw_feature_ext={self.raw_feature_ext})') + return repr_str + + +@PIPELINES.register_module() +class GenerateLocalizationLabels: + """Load video label for localizer with given video_name list. + + Required keys are "duration_frame", "duration_second", "feature_frame", + "annotations", added or modified keys are "gt_bbox". + """ + + def __call__(self, results): + """Perform the GenerateLocalizationLabels loading. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + video_frame = results['duration_frame'] + video_second = results['duration_second'] + feature_frame = results['feature_frame'] + corrected_second = float(feature_frame) / video_frame * video_second + annotations = results['annotations'] + + gt_bbox = [] + + for annotation in annotations: + current_start = max( + min(1, annotation['segment'][0] / corrected_second), 0) + current_end = max( + min(1, annotation['segment'][1] / corrected_second), 0) + gt_bbox.append([current_start, current_end]) + + gt_bbox = np.array(gt_bbox) + results['gt_bbox'] = gt_bbox + return results + + +@PIPELINES.register_module() +class LoadProposals: + """Loading proposals with given proposal results. + + Required keys are "video_name", added or modified keys are 'bsp_feature', + 'tmin', 'tmax', 'tmin_score', 'tmax_score' and 'reference_temporal_iou'. + + Args: + top_k (int): The top k proposals to be loaded. + pgm_proposals_dir (str): Directory to load proposals. + pgm_features_dir (str): Directory to load proposal features. + proposal_ext (str): Proposal file extension. Default: '.csv'. + feature_ext (str): Feature file extension. Default: '.npy'. + """ + + def __init__(self, + top_k, + pgm_proposals_dir, + pgm_features_dir, + proposal_ext='.csv', + feature_ext='.npy'): + self.top_k = top_k + self.pgm_proposals_dir = pgm_proposals_dir + self.pgm_features_dir = pgm_features_dir + valid_proposal_ext = ('.csv', ) + if proposal_ext not in valid_proposal_ext: + raise NotImplementedError + self.proposal_ext = proposal_ext + valid_feature_ext = ('.npy', ) + if feature_ext not in valid_feature_ext: + raise NotImplementedError + self.feature_ext = feature_ext + + def __call__(self, results): + """Perform the LoadProposals loading. + + Args: + results (dict): The resulting dict to be modified and passed + to the next transform in pipeline. + """ + video_name = results['video_name'] + proposal_path = osp.join(self.pgm_proposals_dir, + video_name + self.proposal_ext) + if self.proposal_ext == '.csv': + pgm_proposals = np.loadtxt( + proposal_path, dtype=np.float32, delimiter=',', skiprows=1) + + pgm_proposals = np.array(pgm_proposals[:self.top_k]) + tmin = pgm_proposals[:, 0] + tmax = pgm_proposals[:, 1] + tmin_score = pgm_proposals[:, 2] + tmax_score = pgm_proposals[:, 3] + reference_temporal_iou = pgm_proposals[:, 5] + + feature_path = osp.join(self.pgm_features_dir, + video_name + self.feature_ext) + if self.feature_ext == '.npy': + bsp_feature = np.load(feature_path).astype(np.float32) + + bsp_feature = bsp_feature[:self.top_k, :] + + results['bsp_feature'] = bsp_feature + results['tmin'] = tmin + results['tmax'] = tmax + results['tmin_score'] = tmin_score + results['tmax_score'] = tmax_score + results['reference_temporal_iou'] = reference_temporal_iou + + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'top_k={self.top_k}, ' + f'pgm_proposals_dir={self.pgm_proposals_dir}, ' + f'pgm_features_dir={self.pgm_features_dir}, ' + f'proposal_ext={self.proposal_ext}, ' + f'feature_ext={self.feature_ext})') + return repr_str diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/pose_loading.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/pose_loading.py new file mode 100644 index 00000000..51a210da --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pipelines/pose_loading.py @@ -0,0 +1,695 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy as cp +import pickle + +import numpy as np +from mmcv.fileio import FileClient +from scipy.stats import mode + +from ..builder import PIPELINES +from .augmentations import Flip + + +@PIPELINES.register_module() +class UniformSampleFrames: + """Uniformly sample frames from the video. + + To sample an n-frame clip from the video. UniformSampleFrames basically + divide the video into n segments of equal length and randomly sample one + frame from each segment. To make the testing results reproducible, a + random seed is set during testing, to make the sampling results + deterministic. + + Required keys are "total_frames", "start_index" , added or modified keys + are "frame_inds", "clip_len", "frame_interval" and "num_clips". + + Args: + clip_len (int): Frames of each sampled output clip. + num_clips (int): Number of clips to be sampled. Default: 1. + test_mode (bool): Store True when building test or validation dataset. + Default: False. + seed (int): The random seed used during test time. Default: 255. + """ + + def __init__(self, clip_len, num_clips=1, test_mode=False, seed=255): + + self.clip_len = clip_len + self.num_clips = num_clips + self.test_mode = test_mode + self.seed = seed + + def _get_train_clips(self, num_frames, clip_len): + """Uniformly sample indices for training clips. + + Args: + num_frames (int): The number of frames. + clip_len (int): The length of the clip. + """ + + assert self.num_clips == 1 + if num_frames < clip_len: + start = np.random.randint(0, num_frames) + inds = np.arange(start, start + clip_len) + elif clip_len <= num_frames < 2 * clip_len: + basic = np.arange(clip_len) + inds = np.random.choice( + clip_len + 1, num_frames - clip_len, replace=False) + offset = np.zeros(clip_len + 1, dtype=np.int64) + offset[inds] = 1 + offset = np.cumsum(offset) + inds = basic + offset[:-1] + else: + bids = np.array( + [i * num_frames // clip_len for i in range(clip_len + 1)]) + bsize = np.diff(bids) + bst = bids[:clip_len] + offset = np.random.randint(bsize) + inds = bst + offset + return inds + + def _get_test_clips(self, num_frames, clip_len): + """Uniformly sample indices for testing clips. + + Args: + num_frames (int): The number of frames. + clip_len (int): The length of the clip. + """ + + np.random.seed(self.seed) + if num_frames < clip_len: + # Then we use a simple strategy + if num_frames < self.num_clips: + start_inds = list(range(self.num_clips)) + else: + start_inds = [ + i * num_frames // self.num_clips + for i in range(self.num_clips) + ] + inds = np.concatenate( + [np.arange(i, i + clip_len) for i in start_inds]) + elif clip_len <= num_frames < clip_len * 2: + all_inds = [] + for i in range(self.num_clips): + basic = np.arange(clip_len) + inds = np.random.choice( + clip_len + 1, num_frames - clip_len, replace=False) + offset = np.zeros(clip_len + 1, dtype=np.int64) + offset[inds] = 1 + offset = np.cumsum(offset) + inds = basic + offset[:-1] + all_inds.append(inds) + inds = np.concatenate(all_inds) + else: + bids = np.array( + [i * num_frames // clip_len for i in range(clip_len + 1)]) + bsize = np.diff(bids) + bst = bids[:clip_len] + all_inds = [] + for i in range(self.num_clips): + offset = np.random.randint(bsize) + all_inds.append(bst + offset) + inds = np.concatenate(all_inds) + return inds + + def __call__(self, results): + num_frames = results['total_frames'] + + if self.test_mode: + inds = self._get_test_clips(num_frames, self.clip_len) + else: + inds = self._get_train_clips(num_frames, self.clip_len) + + inds = np.mod(inds, num_frames) + start_index = results['start_index'] + inds = inds + start_index + + results['frame_inds'] = inds.astype(np.int) + results['clip_len'] = self.clip_len + results['frame_interval'] = None + results['num_clips'] = self.num_clips + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'clip_len={self.clip_len}, ' + f'num_clips={self.num_clips}, ' + f'test_mode={self.test_mode}, ' + f'seed={self.seed})') + return repr_str + + +@PIPELINES.register_module() +class PoseDecode: + """Load and decode pose with given indices. + + Required keys are "keypoint", "frame_inds" (optional), "keypoint_score" + (optional), added or modified keys are "keypoint", "keypoint_score" (if + applicable). + """ + + @staticmethod + def _load_kp(kp, frame_inds): + """Load keypoints given frame indices. + + Args: + kp (np.ndarray): The keypoint coordinates. + frame_inds (np.ndarray): The frame indices. + """ + + return [x[frame_inds].astype(np.float32) for x in kp] + + @staticmethod + def _load_kpscore(kpscore, frame_inds): + """Load keypoint scores given frame indices. + + Args: + kpscore (np.ndarray): The confidence scores of keypoints. + frame_inds (np.ndarray): The frame indices. + """ + + return [x[frame_inds].astype(np.float32) for x in kpscore] + + def __call__(self, results): + + if 'frame_inds' not in results: + results['frame_inds'] = np.arange(results['total_frames']) + + if results['frame_inds'].ndim != 1: + results['frame_inds'] = np.squeeze(results['frame_inds']) + + offset = results.get('offset', 0) + frame_inds = results['frame_inds'] + offset + + if 'keypoint_score' in results: + kpscore = results['keypoint_score'] + results['keypoint_score'] = kpscore[:, + frame_inds].astype(np.float32) + + if 'keypoint' in results: + results['keypoint'] = results['keypoint'][:, frame_inds].astype( + np.float32) + + return results + + def __repr__(self): + repr_str = f'{self.__class__.__name__}()' + return repr_str + + +@PIPELINES.register_module() +class LoadKineticsPose: + """Load Kinetics Pose given filename (The format should be pickle) + + Required keys are "filename", "total_frames", "img_shape", "frame_inds", + "anno_inds" (for mmpose source, optional), added or modified keys are + "keypoint", "keypoint_score". + + Args: + io_backend (str): IO backend where frames are stored. Default: 'disk'. + squeeze (bool): Whether to remove frames with no human pose. + Default: True. + max_person (int): The max number of persons in a frame. Default: 10. + keypoint_weight (dict): The weight of keypoints. We set the confidence + score of a person as the weighted sum of confidence scores of each + joint. Persons with low confidence scores are dropped (if exceed + max_person). Default: dict(face=1, torso=2, limb=3). + source (str): The sources of the keypoints used. Choices are 'mmpose' + and 'openpose-18'. Default: 'mmpose'. + kwargs (dict, optional): Arguments for FileClient. + """ + + def __init__(self, + io_backend='disk', + squeeze=True, + max_person=100, + keypoint_weight=dict(face=1, torso=2, limb=3), + source='mmpose', + **kwargs): + + self.io_backend = io_backend + self.squeeze = squeeze + self.max_person = max_person + self.keypoint_weight = cp.deepcopy(keypoint_weight) + self.source = source + + if source == 'openpose-18': + self.kpsubset = dict( + face=[0, 14, 15, 16, 17], + torso=[1, 2, 8, 5, 11], + limb=[3, 4, 6, 7, 9, 10, 12, 13]) + elif source == 'mmpose': + self.kpsubset = dict( + face=[0, 1, 2, 3, 4], + torso=[5, 6, 11, 12], + limb=[7, 8, 9, 10, 13, 14, 15, 16]) + else: + raise NotImplementedError('Unknown source of Kinetics Pose') + + self.kwargs = kwargs + self.file_client = None + + def __call__(self, results): + + assert 'filename' in results + filename = results.pop('filename') + + # only applicable to source == 'mmpose' + anno_inds = None + if 'anno_inds' in results: + assert self.source == 'mmpose' + anno_inds = results.pop('anno_inds') + results.pop('box_score', None) + + if self.file_client is None: + self.file_client = FileClient(self.io_backend, **self.kwargs) + + bytes = self.file_client.get(filename) + + # only the kp array is in the pickle file, each kp include x, y, score. + kps = pickle.loads(bytes) + + total_frames = results['total_frames'] + + frame_inds = results.pop('frame_inds') + + if anno_inds is not None: + kps = kps[anno_inds] + frame_inds = frame_inds[anno_inds] + + frame_inds = list(frame_inds) + + def mapinds(inds): + uni = np.unique(inds) + map_ = {x: i for i, x in enumerate(uni)} + inds = [map_[x] for x in inds] + return np.array(inds, dtype=np.int16) + + if self.squeeze: + frame_inds = mapinds(frame_inds) + total_frames = np.max(frame_inds) + 1 + + # write it back + results['total_frames'] = total_frames + + h, w = results['img_shape'] + if self.source == 'openpose-18': + kps[:, :, 0] *= w + kps[:, :, 1] *= h + + num_kp = kps.shape[1] + num_person = mode(frame_inds)[-1][0] + + new_kp = np.zeros([num_person, total_frames, num_kp, 2], + dtype=np.float16) + new_kpscore = np.zeros([num_person, total_frames, num_kp], + dtype=np.float16) + # 32768 is enough + num_person_frame = np.zeros([total_frames], dtype=np.int16) + + for frame_ind, kp in zip(frame_inds, kps): + person_ind = num_person_frame[frame_ind] + new_kp[person_ind, frame_ind] = kp[:, :2] + new_kpscore[person_ind, frame_ind] = kp[:, 2] + num_person_frame[frame_ind] += 1 + + kpgrp = self.kpsubset + weight = self.keypoint_weight + results['num_person'] = num_person + + if num_person > self.max_person: + for i in range(total_frames): + np_frame = num_person_frame[i] + val = new_kpscore[:np_frame, i] + + val = ( + np.sum(val[:, kpgrp['face']], 1) * weight['face'] + + np.sum(val[:, kpgrp['torso']], 1) * weight['torso'] + + np.sum(val[:, kpgrp['limb']], 1) * weight['limb']) + inds = sorted(range(np_frame), key=lambda x: -val[x]) + new_kpscore[:np_frame, i] = new_kpscore[inds, i] + new_kp[:np_frame, i] = new_kp[inds, i] + results['num_person'] = self.max_person + + results['keypoint'] = new_kp[:self.max_person] + results['keypoint_score'] = new_kpscore[:self.max_person] + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'io_backend={self.io_backend}, ' + f'squeeze={self.squeeze}, ' + f'max_person={self.max_person}, ' + f'keypoint_weight={self.keypoint_weight}, ' + f'source={self.source}, ' + f'kwargs={self.kwargs})') + return repr_str + + +@PIPELINES.register_module() +class GeneratePoseTarget: + """Generate pseudo heatmaps based on joint coordinates and confidence. + + Required keys are "keypoint", "img_shape", "keypoint_score" (optional), + added or modified keys are "imgs". + + Args: + sigma (float): The sigma of the generated gaussian map. Default: 0.6. + use_score (bool): Use the confidence score of keypoints as the maximum + of the gaussian maps. Default: True. + with_kp (bool): Generate pseudo heatmaps for keypoints. Default: True. + with_limb (bool): Generate pseudo heatmaps for limbs. At least one of + 'with_kp' and 'with_limb' should be True. Default: False. + skeletons (tuple[tuple]): The definition of human skeletons. + Default: ((0, 1), (0, 2), (1, 3), (2, 4), (0, 5), (5, 7), (7, 9), + (0, 6), (6, 8), (8, 10), (5, 11), (11, 13), (13, 15), + (6, 12), (12, 14), (14, 16), (11, 12)), + which is the definition of COCO-17p skeletons. + double (bool): Output both original heatmaps and flipped heatmaps. + Default: False. + left_kp (tuple[int]): Indexes of left keypoints, which is used when + flipping heatmaps. Default: (1, 3, 5, 7, 9, 11, 13, 15), + which is left keypoints in COCO-17p. + right_kp (tuple[int]): Indexes of right keypoints, which is used when + flipping heatmaps. Default: (2, 4, 6, 8, 10, 12, 14, 16), + which is right keypoints in COCO-17p. + """ + + def __init__(self, + sigma=0.6, + use_score=True, + with_kp=True, + with_limb=False, + skeletons=((0, 1), (0, 2), (1, 3), (2, 4), (0, 5), (5, 7), + (7, 9), (0, 6), (6, 8), (8, 10), (5, 11), (11, 13), + (13, 15), (6, 12), (12, 14), (14, 16), (11, 12)), + double=False, + left_kp=(1, 3, 5, 7, 9, 11, 13, 15), + right_kp=(2, 4, 6, 8, 10, 12, 14, 16)): + + self.sigma = sigma + self.use_score = use_score + self.with_kp = with_kp + self.with_limb = with_limb + self.double = double + + # an auxiliary const + self.eps = 1e-4 + + assert self.with_kp or self.with_limb, ( + 'At least one of "with_limb" ' + 'and "with_kp" should be set as True.') + self.left_kp = left_kp + self.right_kp = right_kp + self.skeletons = skeletons + + def generate_a_heatmap(self, img_h, img_w, centers, sigma, max_values): + """Generate pseudo heatmap for one keypoint in one frame. + + Args: + img_h (int): The height of the heatmap. + img_w (int): The width of the heatmap. + centers (np.ndarray): The coordinates of corresponding keypoints + (of multiple persons). + sigma (float): The sigma of generated gaussian. + max_values (np.ndarray): The max values of each keypoint. + + Returns: + np.ndarray: The generated pseudo heatmap. + """ + + heatmap = np.zeros([img_h, img_w], dtype=np.float32) + + for center, max_value in zip(centers, max_values): + mu_x, mu_y = center[0], center[1] + if max_value < self.eps: + continue + + st_x = max(int(mu_x - 3 * sigma), 0) + ed_x = min(int(mu_x + 3 * sigma) + 1, img_w) + st_y = max(int(mu_y - 3 * sigma), 0) + ed_y = min(int(mu_y + 3 * sigma) + 1, img_h) + x = np.arange(st_x, ed_x, 1, np.float32) + y = np.arange(st_y, ed_y, 1, np.float32) + + # if the keypoint not in the heatmap coordinate system + if not (len(x) and len(y)): + continue + y = y[:, None] + + patch = np.exp(-((x - mu_x)**2 + (y - mu_y)**2) / 2 / sigma**2) + patch = patch * max_value + heatmap[st_y:ed_y, + st_x:ed_x] = np.maximum(heatmap[st_y:ed_y, st_x:ed_x], + patch) + + return heatmap + + def generate_a_limb_heatmap(self, img_h, img_w, starts, ends, sigma, + start_values, end_values): + """Generate pseudo heatmap for one limb in one frame. + + Args: + img_h (int): The height of the heatmap. + img_w (int): The width of the heatmap. + starts (np.ndarray): The coordinates of one keypoint in the + corresponding limbs (of multiple persons). + ends (np.ndarray): The coordinates of the other keypoint in the + corresponding limbs (of multiple persons). + sigma (float): The sigma of generated gaussian. + start_values (np.ndarray): The max values of one keypoint in the + corresponding limbs. + end_values (np.ndarray): The max values of the other keypoint in + the corresponding limbs. + + Returns: + np.ndarray: The generated pseudo heatmap. + """ + + heatmap = np.zeros([img_h, img_w], dtype=np.float32) + + for start, end, start_value, end_value in zip(starts, ends, + start_values, + end_values): + value_coeff = min(start_value, end_value) + if value_coeff < self.eps: + continue + + min_x, max_x = min(start[0], end[0]), max(start[0], end[0]) + min_y, max_y = min(start[1], end[1]), max(start[1], end[1]) + + min_x = max(int(min_x - 3 * sigma), 0) + max_x = min(int(max_x + 3 * sigma) + 1, img_w) + min_y = max(int(min_y - 3 * sigma), 0) + max_y = min(int(max_y + 3 * sigma) + 1, img_h) + + x = np.arange(min_x, max_x, 1, np.float32) + y = np.arange(min_y, max_y, 1, np.float32) + + if not (len(x) and len(y)): + continue + + y = y[:, None] + x_0 = np.zeros_like(x) + y_0 = np.zeros_like(y) + + # distance to start keypoints + d2_start = ((x - start[0])**2 + (y - start[1])**2) + + # distance to end keypoints + d2_end = ((x - end[0])**2 + (y - end[1])**2) + + # the distance between start and end keypoints. + d2_ab = ((start[0] - end[0])**2 + (start[1] - end[1])**2) + + if d2_ab < 1: + full_map = self.generate_a_heatmap(img_h, img_w, [start], + sigma, [start_value]) + heatmap = np.maximum(heatmap, full_map) + continue + + coeff = (d2_start - d2_end + d2_ab) / 2. / d2_ab + + a_dominate = coeff <= 0 + b_dominate = coeff >= 1 + seg_dominate = 1 - a_dominate - b_dominate + + position = np.stack([x + y_0, y + x_0], axis=-1) + projection = start + np.stack([coeff, coeff], axis=-1) * ( + end - start) + d2_line = position - projection + d2_line = d2_line[:, :, 0]**2 + d2_line[:, :, 1]**2 + d2_seg = ( + a_dominate * d2_start + b_dominate * d2_end + + seg_dominate * d2_line) + + patch = np.exp(-d2_seg / 2. / sigma**2) + patch = patch * value_coeff + + heatmap[min_y:max_y, min_x:max_x] = np.maximum( + heatmap[min_y:max_y, min_x:max_x], patch) + + return heatmap + + def generate_heatmap(self, img_h, img_w, kps, sigma, max_values): + """Generate pseudo heatmap for all keypoints and limbs in one frame (if + needed). + + Args: + img_h (int): The height of the heatmap. + img_w (int): The width of the heatmap. + kps (np.ndarray): The coordinates of keypoints in this frame. + sigma (float): The sigma of generated gaussian. + max_values (np.ndarray): The confidence score of each keypoint. + + Returns: + np.ndarray: The generated pseudo heatmap. + """ + + heatmaps = [] + if self.with_kp: + num_kp = kps.shape[1] + for i in range(num_kp): + heatmap = self.generate_a_heatmap(img_h, img_w, kps[:, i], + sigma, max_values[:, i]) + heatmaps.append(heatmap) + + if self.with_limb: + for limb in self.skeletons: + start_idx, end_idx = limb + starts = kps[:, start_idx] + ends = kps[:, end_idx] + + start_values = max_values[:, start_idx] + end_values = max_values[:, end_idx] + heatmap = self.generate_a_limb_heatmap(img_h, img_w, starts, + ends, sigma, + start_values, + end_values) + heatmaps.append(heatmap) + + return np.stack(heatmaps, axis=-1) + + def gen_an_aug(self, results): + """Generate pseudo heatmaps for all frames. + + Args: + results (dict): The dictionary that contains all info of a sample. + + Returns: + list[np.ndarray]: The generated pseudo heatmaps. + """ + + all_kps = results['keypoint'] + kp_shape = all_kps.shape + + if 'keypoint_score' in results: + all_kpscores = results['keypoint_score'] + else: + all_kpscores = np.ones(kp_shape[:-1], dtype=np.float32) + + img_h, img_w = results['img_shape'] + num_frame = kp_shape[1] + + imgs = [] + for i in range(num_frame): + sigma = self.sigma + kps = all_kps[:, i] + kpscores = all_kpscores[:, i] + + max_values = np.ones(kpscores.shape, dtype=np.float32) + if self.use_score: + max_values = kpscores + + hmap = self.generate_heatmap(img_h, img_w, kps, sigma, max_values) + imgs.append(hmap) + + return imgs + + def __call__(self, results): + if not self.double: + results['imgs'] = np.stack(self.gen_an_aug(results)) + else: + results_ = cp.deepcopy(results) + flip = Flip( + flip_ratio=1, left_kp=self.left_kp, right_kp=self.right_kp) + results_ = flip(results_) + results['imgs'] = np.concatenate( + [self.gen_an_aug(results), + self.gen_an_aug(results_)]) + return results + + def __repr__(self): + repr_str = (f'{self.__class__.__name__}(' + f'sigma={self.sigma}, ' + f'use_score={self.use_score}, ' + f'with_kp={self.with_kp}, ' + f'with_limb={self.with_limb}, ' + f'skeletons={self.skeletons}, ' + f'double={self.double}, ' + f'left_kp={self.left_kp}, ' + f'right_kp={self.right_kp})') + return repr_str + + +@PIPELINES.register_module() +class PaddingWithLoop: + """Sample frames from the video. + + To sample an n-frame clip from the video, PaddingWithLoop samples + the frames from zero index, and loop the frames if the length of + video frames is less than te value of 'clip_len'. + + Required keys are "total_frames", added or modified keys + are "frame_inds", "clip_len", "frame_interval" and "num_clips". + + Args: + clip_len (int): Frames of each sampled output clip. + num_clips (int): Number of clips to be sampled. Default: 1. + """ + + def __init__(self, clip_len, num_clips=1): + + self.clip_len = clip_len + self.num_clips = num_clips + + def __call__(self, results): + num_frames = results['total_frames'] + + start = 0 + inds = np.arange(start, start + self.clip_len) + inds = np.mod(inds, num_frames) + + results['frame_inds'] = inds.astype(np.int) + results['clip_len'] = self.clip_len + results['frame_interval'] = None + results['num_clips'] = self.num_clips + return results + + +@PIPELINES.register_module() +class PoseNormalize: + """Normalize the range of keypoint values to [-1,1]. + + Args: + mean (list | tuple): The mean value of the keypoint values. + min_value (list | tuple): The minimum value of the keypoint values. + max_value (list | tuple): The maximum value of the keypoint values. + """ + + def __init__(self, + mean=(960., 540., 0.5), + min_value=(0., 0., 0.), + max_value=(1920, 1080, 1.)): + self.mean = np.array(mean, dtype=np.float32).reshape(-1, 1, 1, 1) + self.min_value = np.array( + min_value, dtype=np.float32).reshape(-1, 1, 1, 1) + self.max_value = np.array( + max_value, dtype=np.float32).reshape(-1, 1, 1, 1) + + def __call__(self, results): + keypoint = results['keypoint'] + keypoint = (keypoint - self.mean) / (self.max_value - self.min_value) + results['keypoint'] = keypoint + results['keypoint_norm_cfg'] = dict( + mean=self.mean, min_value=self.min_value, max_value=self.max_value) + return results diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pose_dataset.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pose_dataset.py new file mode 100644 index 00000000..2bbea4c4 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/pose_dataset.py @@ -0,0 +1,113 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +import mmcv +import numpy as np + +from ..utils import get_root_logger +from .base import BaseDataset +from .builder import DATASETS + + +@DATASETS.register_module() +class PoseDataset(BaseDataset): + """Pose dataset for action recognition. + + The dataset loads pose and apply specified transforms to return a + dict containing pose information. + + The ann_file is a pickle file, the json file contains a list of + annotations, the fields of an annotation include frame_dir(video_id), + total_frames, label, kp, kpscore. + + Args: + ann_file (str): Path to the annotation file. + pipeline (list[dict | callable]): A sequence of data transforms. + split (str | None): The dataset split used. Only applicable to UCF or + HMDB. Allowed choiced are 'train1', 'test1', 'train2', 'test2', + 'train3', 'test3'. Default: None. + valid_ratio (float | None): The valid_ratio for videos in KineticsPose. + For a video with n frames, it is a valid training sample only if + n * valid_ratio frames have human pose. None means not applicable + (only applicable to Kinetics Pose). Default: None. + box_thr (str | None): The threshold for human proposals. Only boxes + with confidence score larger than `box_thr` is kept. None means + not applicable (only applicable to Kinetics Pose [ours]). Allowed + choices are '0.5', '0.6', '0.7', '0.8', '0.9'. Default: None. + class_prob (dict | None): The per class sampling probability. If not + None, it will override the class_prob calculated in + BaseDataset.__init__(). Default: None. + **kwargs: Keyword arguments for ``BaseDataset``. + """ + + def __init__(self, + ann_file, + pipeline, + split=None, + valid_ratio=None, + box_thr=None, + class_prob=None, + **kwargs): + modality = 'Pose' + # split, applicable to ucf or hmdb + self.split = split + + super().__init__( + ann_file, pipeline, start_index=0, modality=modality, **kwargs) + + # box_thr, which should be a string + self.box_thr = box_thr + if self.box_thr is not None: + assert box_thr in ['0.5', '0.6', '0.7', '0.8', '0.9'] + + # Thresholding Training Examples + self.valid_ratio = valid_ratio + if self.valid_ratio is not None: + assert isinstance(self.valid_ratio, float) + if self.box_thr is None: + self.video_infos = self.video_infos = [ + x for x in self.video_infos + if x['valid_frames'] / x['total_frames'] >= valid_ratio + ] + else: + key = f'valid@{self.box_thr}' + self.video_infos = [ + x for x in self.video_infos + if x[key] / x['total_frames'] >= valid_ratio + ] + if self.box_thr != '0.5': + box_thr = float(self.box_thr) + for item in self.video_infos: + inds = [ + i for i, score in enumerate(item['box_score']) + if score >= box_thr + ] + item['anno_inds'] = np.array(inds) + + if class_prob is not None: + self.class_prob = class_prob + + logger = get_root_logger() + logger.info(f'{len(self)} videos remain after valid thresholding') + + def load_annotations(self): + """Load annotation file to get video information.""" + assert self.ann_file.endswith('.pkl') + return self.load_pkl_annotations() + + def load_pkl_annotations(self): + data = mmcv.load(self.ann_file) + + if self.split: + split, data = data['split'], data['annotations'] + identifier = 'filename' if 'filename' in data[0] else 'frame_dir' + data = [x for x in data if x[identifier] in split[self.split]] + + for item in data: + # Sometimes we may need to load anno from the file + if 'filename' in item: + item['filename'] = osp.join(self.data_prefix, item['filename']) + if 'frame_dir' in item: + item['frame_dir'] = osp.join(self.data_prefix, + item['frame_dir']) + return data diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/rawframe_dataset.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/rawframe_dataset.py new file mode 100644 index 00000000..9359e117 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/rawframe_dataset.py @@ -0,0 +1,212 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy +import os.path as osp + +import torch + +from mmaction.datasets.pipelines import Resize +from .base import BaseDataset +from .builder import DATASETS + + +@DATASETS.register_module() +class RawframeDataset(BaseDataset): + """Rawframe dataset for action recognition. + + The dataset loads raw frames and apply specified transforms to return a + dict containing the frame tensors and other information. + + The ann_file is a text file with multiple lines, and each line indicates + the directory to frames of a video, total frames of the video and + the label of a video, which are split with a whitespace. + Example of a annotation file: + + .. code-block:: txt + + some/directory-1 163 1 + some/directory-2 122 1 + some/directory-3 258 2 + some/directory-4 234 2 + some/directory-5 295 3 + some/directory-6 121 3 + + Example of a multi-class annotation file: + + + .. code-block:: txt + + some/directory-1 163 1 3 5 + some/directory-2 122 1 2 + some/directory-3 258 2 + some/directory-4 234 2 4 6 8 + some/directory-5 295 3 + some/directory-6 121 3 + + Example of a with_offset annotation file (clips from long videos), each + line indicates the directory to frames of a video, the index of the start + frame, total frames of the video clip and the label of a video clip, which + are split with a whitespace. + + + .. code-block:: txt + + some/directory-1 12 163 3 + some/directory-2 213 122 4 + some/directory-3 100 258 5 + some/directory-4 98 234 2 + some/directory-5 0 295 3 + some/directory-6 50 121 3 + + + Args: + ann_file (str): Path to the annotation file. + pipeline (list[dict | callable]): A sequence of data transforms. + data_prefix (str | None): Path to a directory where videos are held. + Default: None. + test_mode (bool): Store True when building test or validation dataset. + Default: False. + filename_tmpl (str): Template for each filename. + Default: 'img_{:05}.jpg'. + with_offset (bool): Determines whether the offset information is in + ann_file. Default: False. + multi_class (bool): Determines whether it is a multi-class + recognition dataset. Default: False. + num_classes (int | None): Number of classes in the dataset. + Default: None. + modality (str): Modality of data. Support 'RGB', 'Flow'. + Default: 'RGB'. + sample_by_class (bool): Sampling by class, should be set `True` when + performing inter-class data balancing. Only compatible with + `multi_class == False`. Only applies for training. Default: False. + power (float): We support sampling data with the probability + proportional to the power of its label frequency (freq ^ power) + when sampling data. `power == 1` indicates uniformly sampling all + data; `power == 0` indicates uniformly sampling all classes. + Default: 0. + dynamic_length (bool): If the dataset length is dynamic (used by + ClassSpecificDistributedSampler). Default: False. + """ + + def __init__(self, + ann_file, + pipeline, + data_prefix=None, + test_mode=False, + filename_tmpl='img_{:05}.jpg', + with_offset=False, + multi_class=False, + num_classes=None, + start_index=1, + modality='RGB', + sample_by_class=False, + power=0., + dynamic_length=False, + **kwargs): + self.filename_tmpl = filename_tmpl + self.with_offset = with_offset + super().__init__( + ann_file, + pipeline, + data_prefix, + test_mode, + multi_class, + num_classes, + start_index, + modality, + sample_by_class=sample_by_class, + power=power, + dynamic_length=dynamic_length) + self.short_cycle_factors = kwargs.get('short_cycle_factors', + [0.5, 0.7071]) + self.default_s = kwargs.get('default_s', (224, 224)) + + def load_annotations(self): + """Load annotation file to get video information.""" + if self.ann_file.endswith('.json'): + return self.load_json_annotations() + video_infos = [] + with open(self.ann_file, 'r') as fin: + for line in fin: + line_split = line.strip().split() + video_info = {} + idx = 0 + # idx for frame_dir + frame_dir = line_split[idx] + if self.data_prefix is not None: + frame_dir = osp.join(self.data_prefix, frame_dir) + video_info['frame_dir'] = frame_dir + idx += 1 + if self.with_offset: + # idx for offset and total_frames + video_info['offset'] = int(line_split[idx]) + video_info['total_frames'] = int(line_split[idx + 1]) + idx += 2 + else: + # idx for total_frames + video_info['total_frames'] = int(line_split[idx]) + idx += 1 + # idx for label[s] + label = [int(x) for x in line_split[idx:]] + assert label, f'missing label in line: {line}' + if self.multi_class: + assert self.num_classes is not None + video_info['label'] = label + else: + assert len(label) == 1 + video_info['label'] = label[0] + video_infos.append(video_info) + + return video_infos + + def prepare_train_frames(self, idx): + """Prepare the frames for training given the index.""" + + def pipeline_for_a_sample(idx): + results = copy.deepcopy(self.video_infos[idx]) + results['filename_tmpl'] = self.filename_tmpl + results['modality'] = self.modality + results['start_index'] = self.start_index + + # prepare tensor in getitem + if self.multi_class: + onehot = torch.zeros(self.num_classes) + onehot[results['label']] = 1. + results['label'] = onehot + + return self.pipeline(results) + + if isinstance(idx, tuple): + index, short_cycle_idx = idx + last_resize = None + for trans in self.pipeline.transforms: + if isinstance(trans, Resize): + last_resize = trans + origin_scale = self.default_s + long_cycle_scale = last_resize.scale + + if short_cycle_idx in [0, 1]: + # 0 and 1 is hard-coded as PySlowFast + scale_ratio = self.short_cycle_factors[short_cycle_idx] + target_scale = tuple( + [int(round(scale_ratio * s)) for s in origin_scale]) + last_resize.scale = target_scale + res = pipeline_for_a_sample(index) + last_resize.scale = long_cycle_scale + return res + else: + return pipeline_for_a_sample(idx) + + def prepare_test_frames(self, idx): + """Prepare the frames for testing given the index.""" + results = copy.deepcopy(self.video_infos[idx]) + results['filename_tmpl'] = self.filename_tmpl + results['modality'] = self.modality + results['start_index'] = self.start_index + + # prepare tensor in getitem + if self.multi_class: + onehot = torch.zeros(self.num_classes) + onehot[results['label']] = 1. + results['label'] = onehot + + return self.pipeline(results) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/rawvideo_dataset.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/rawvideo_dataset.py new file mode 100644 index 00000000..7199f1df --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/rawvideo_dataset.py @@ -0,0 +1,147 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy +import os.path as osp +import random + +import mmcv + +from .base import BaseDataset +from .builder import DATASETS + + +@DATASETS.register_module() +class RawVideoDataset(BaseDataset): + """RawVideo dataset for action recognition, used in the Project OmniSource. + + The dataset loads clips of raw videos and apply specified transforms to + return a dict containing the frame tensors and other information. Not that + for this dataset, `multi_class` should be False. + + The ann_file is a text file with multiple lines, and each line indicates + a sample video with the filepath (without suffix), label, number of clips + and index of positive clips (starting from 0), which are split with a + whitespace. Raw videos should be first trimmed into 10 second clips, + organized in the following format: + + .. code-block:: txt + + some/path/D32_1gwq35E/part_0.mp4 + some/path/D32_1gwq35E/part_1.mp4 + ...... + some/path/D32_1gwq35E/part_n.mp4 + + Example of a annotation file: + + .. code-block:: txt + + some/path/D32_1gwq35E 66 10 0 1 2 + some/path/-G-5CJ0JkKY 254 5 3 4 + some/path/T4h1bvOd9DA 33 1 0 + some/path/4uZ27ivBl00 341 2 0 1 + some/path/0LfESFkfBSw 186 234 7 9 11 + some/path/-YIsNpBEx6c 169 100 9 10 11 + + The first line indicates that the raw video `some/path/D32_1gwq35E` has + action label `66`, consists of 10 clips (from `part_0.mp4` to + `part_9.mp4`). The 1st, 2nd and 3rd clips are positive clips. + + + Args: + ann_file (str): Path to the annotation file. + pipeline (list[dict | callable]): A sequence of data transforms. + sampling_strategy (str): The strategy to sample clips from raw videos. + Choices are 'random' or 'positive'. Default: 'positive'. + clipname_tmpl (str): The template of clip name in the raw video. + Default: 'part_{}.mp4'. + **kwargs: Keyword arguments for ``BaseDataset``. + """ + + def __init__(self, + ann_file, + pipeline, + clipname_tmpl='part_{}.mp4', + sampling_strategy='positive', + **kwargs): + super().__init__(ann_file, pipeline, start_index=0, **kwargs) + assert self.multi_class is False + self.sampling_strategy = sampling_strategy + self.clipname_tmpl = clipname_tmpl + # If positive, we should only keep those raw videos with positive + # clips + if self.sampling_strategy == 'positive': + self.video_infos = [ + x for x in self.video_infos if len(x['positive_clip_inds']) + ] + + # do not support multi_class + def load_annotations(self): + """Load annotation file to get video information.""" + if self.ann_file.endswith('.json'): + return self.load_json_annotations() + + video_infos = [] + with open(self.ann_file, 'r') as fin: + for line in fin: + line_split = line.strip().split() + video_dir = line_split[0] + label = int(line_split[1]) + num_clips = int(line_split[2]) + positive_clip_inds = [int(ind) for ind in line_split[3:]] + + if self.data_prefix is not None: + video_dir = osp.join(self.data_prefix, video_dir) + video_infos.append( + dict( + video_dir=video_dir, + label=label, + num_clips=num_clips, + positive_clip_inds=positive_clip_inds)) + return video_infos + + # do not support multi_class + def load_json_annotations(self): + """Load json annotation file to get video information.""" + video_infos = mmcv.load(self.ann_file) + num_videos = len(video_infos) + path_key = 'video_dir' + for i in range(num_videos): + if self.data_prefix is not None: + path_value = video_infos[i][path_key] + path_value = osp.join(self.data_prefix, path_value) + video_infos[i][path_key] = path_value + return video_infos + + def sample_clip(self, results): + """Sample a clip from the raw video given the sampling strategy.""" + assert self.sampling_strategy in ['positive', 'random'] + if self.sampling_strategy == 'positive': + assert results['positive_clip_inds'] + ind = random.choice(results['positive_clip_inds']) + else: + ind = random.randint(0, results['num_clips'] - 1) + clipname = self.clipname_tmpl.format(ind) + + # if the first char of self.clipname_tmpl is a letter, use osp.join; + # otherwise, directly concat them + if self.clipname_tmpl[0].isalpha(): + filename = osp.join(results['video_dir'], clipname) + else: + filename = results['video_dir'] + clipname + results['filename'] = filename + return results + + def prepare_train_frames(self, idx): + """Prepare the frames for training given the index.""" + results = copy.deepcopy(self.video_infos[idx]) + results = self.sample_clip(results) + results['modality'] = self.modality + results['start_index'] = self.start_index + return self.pipeline(results) + + def prepare_test_frames(self, idx): + """Prepare the frames for testing given the index.""" + results = copy.deepcopy(self.video_infos[idx]) + results = self.sample_clip(results) + results['modality'] = self.modality + results['start_index'] = self.start_index + return self.pipeline(results) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/samplers/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/samplers/__init__.py new file mode 100644 index 00000000..00dfae83 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/samplers/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .distributed_sampler import (ClassSpecificDistributedSampler, + DistributedSampler) + +__all__ = ['DistributedSampler', 'ClassSpecificDistributedSampler'] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/samplers/distributed_sampler.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/samplers/distributed_sampler.py new file mode 100644 index 00000000..1d54079d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/samplers/distributed_sampler.py @@ -0,0 +1,142 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import math +from collections import defaultdict + +import torch +from torch.utils.data import DistributedSampler as _DistributedSampler + +from mmaction.core import sync_random_seed + + +class DistributedSampler(_DistributedSampler): + """DistributedSampler inheriting from + ``torch.utils.data.DistributedSampler``. + + In pytorch of lower versions, there is no ``shuffle`` argument. This child + class will port one to DistributedSampler. + """ + + def __init__(self, + dataset, + num_replicas=None, + rank=None, + shuffle=True, + seed=0): + super().__init__( + dataset, num_replicas=num_replicas, rank=rank, shuffle=shuffle) + # for the compatibility from PyTorch 1.3+ + # In distributed sampling, different ranks should sample non-overlapped + # data in the dataset. Therefore, this function is used to make sure + # that each rank shuffles the data indices in the same order based + # on the same seed. Then different ranks could use different indices + # to select non-overlapped data from the same data list. + self.seed = sync_random_seed(seed) if seed is not None else 0 + + def __iter__(self): + # deterministically shuffle based on epoch + if self.shuffle: + g = torch.Generator() + g.manual_seed(self.epoch + self.seed) + indices = torch.randperm(len(self.dataset), generator=g).tolist() + else: + indices = torch.arange(len(self.dataset)).tolist() + + # add extra samples to make it evenly divisible + indices += indices[:(self.total_size - len(indices))] + assert len(indices) == self.total_size + + # subsample + indices = indices[self.rank:self.total_size:self.num_replicas] + assert len(indices) == self.num_samples + return iter(indices) + + +class ClassSpecificDistributedSampler(_DistributedSampler): + """ClassSpecificDistributedSampler inheriting from + ``torch.utils.data.DistributedSampler``. + + Samples are sampled with a class specific probability, which should be an + attribute of the dataset (dataset.class_prob, which is a dictionary that + map label index to the prob). This sampler is only applicable to single + class recognition dataset. This sampler is also compatible with + RepeatDataset. + + The default value of dynamic_length is True, which means we use + oversampling / subsampling, and the dataset length may changed. If + dynamic_length is set as False, the dataset length is fixed. + """ + + def __init__(self, + dataset, + num_replicas=None, + rank=None, + dynamic_length=True, + shuffle=True, + seed=0): + super().__init__(dataset, num_replicas=num_replicas, rank=rank) + self.shuffle = shuffle + + if type(dataset).__name__ == 'RepeatDataset': + dataset = dataset.dataset + + assert hasattr(dataset, 'class_prob') + + self.class_prob = dataset.class_prob + self.dynamic_length = dynamic_length + # for the compatibility from PyTorch 1.3+ + self.seed = seed if seed is not None else 0 + + def __iter__(self): + g = torch.Generator() + g.manual_seed(self.seed + self.epoch) + + class_indices = defaultdict(list) + + # To be compatible with RepeatDataset + times = 1 + dataset = self.dataset + if type(dataset).__name__ == 'RepeatDataset': + times = dataset.times + dataset = dataset.dataset + for i, item in enumerate(dataset.video_infos): + class_indices[item['label']].append(i) + + if self.dynamic_length: + indices = [] + for k, prob in self.class_prob.items(): + prob = prob * times + for i in range(int(prob // 1)): + indices.extend(class_indices[k]) + rem = int((prob % 1) * len(class_indices[k])) + rem_indices = torch.randperm( + len(class_indices[k]), generator=g).tolist()[:rem] + indices.extend(rem_indices) + if self.shuffle: + shuffle = torch.randperm(len(indices), generator=g).tolist() + indices = [indices[i] for i in shuffle] + + # re-calc num_samples & total_size + self.num_samples = math.ceil(len(indices) / self.num_replicas) + self.total_size = self.num_samples * self.num_replicas + else: + # We want to keep the dataloader length same as original + video_labels = [x['label'] for x in dataset.video_infos] + probs = [ + self.class_prob[lb] / len(class_indices[lb]) + for lb in video_labels + ] + + indices = torch.multinomial( + torch.Tensor(probs), + self.total_size, + replacement=True, + generator=g) + indices = indices.data.numpy().tolist() + + indices += indices[:(self.total_size - len(indices))] + assert len(indices) == self.total_size + + # retrieve indices for current process + indices = indices[self.rank:self.total_size:self.num_replicas] + assert len(indices) == self.num_samples + return iter(indices) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/ssn_dataset.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/ssn_dataset.py new file mode 100644 index 00000000..065c7422 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/ssn_dataset.py @@ -0,0 +1,882 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy +import os.path as osp +import warnings +from collections import OrderedDict + +import mmcv +import numpy as np +from torch.nn.modules.utils import _pair + +from ..core import softmax +from ..localization import (eval_ap, load_localize_proposal_file, + perform_regression, temporal_iou, temporal_nms) +from ..utils import get_root_logger +from .base import BaseDataset +from .builder import DATASETS + + +class SSNInstance: + """Proposal instance of SSN. + + Args: + start_frame (int): Index of the proposal's start frame. + end_frame (int): Index of the proposal's end frame. + num_video_frames (int): Total frames of the video. + label (int | None): The category label of the proposal. Default: None. + best_iou (float): The highest IOU with the groundtruth instance. + Default: 0. + overlap_self (float): Percent of the proposal's own span contained + in a groundtruth instance. Default: 0. + """ + + def __init__(self, + start_frame, + end_frame, + num_video_frames, + label=None, + best_iou=0, + overlap_self=0): + self.start_frame = start_frame + self.end_frame = min(end_frame, num_video_frames) + self.num_video_frames = num_video_frames + self.label = label if label is not None else -1 + self.coverage = (end_frame - start_frame) / num_video_frames + self.best_iou = best_iou + self.overlap_self = overlap_self + self.loc_reg = None + self.size_reg = None + self.regression_targets = [0., 0.] + + def compute_regression_targets(self, gt_list): + """Compute regression targets of positive proposals. + + Args: + gt_list (list): The list of groundtruth instances. + """ + # Find the groundtruth instance with the highest IOU. + ious = [ + temporal_iou(self.start_frame, self.end_frame, gt.start_frame, + gt.end_frame) for gt in gt_list + ] + best_gt = gt_list[np.argmax(ious)] + + # interval: [start_frame, end_frame) + proposal_center = (self.start_frame + self.end_frame - 1) / 2 + gt_center = (best_gt.start_frame + best_gt.end_frame - 1) / 2 + proposal_size = self.end_frame - self.start_frame + gt_size = best_gt.end_frame - best_gt.start_frame + + # Get regression targets: + # (1). Localization regression target: + # center shift proportional to the proposal duration + # (2). Duration/Size regression target: + # logarithm of the groundtruth duration over proposal duration + + self.loc_reg = (gt_center - proposal_center) / proposal_size + self.size_reg = np.log(gt_size / proposal_size) + self.regression_targets = ([self.loc_reg, self.size_reg] + if self.loc_reg is not None else [0., 0.]) + + +@DATASETS.register_module() +class SSNDataset(BaseDataset): + """Proposal frame dataset for Structured Segment Networks. + + Based on proposal information, the dataset loads raw frames and applies + specified transforms to return a dict containing the frame tensors and + other information. + + The ann_file is a text file with multiple lines and each + video's information takes up several lines. This file can be a normalized + file with percent or standard file with specific frame indexes. If the file + is a normalized file, it will be converted into a standard file first. + + Template information of a video in a standard file: + .. code-block:: txt + # index + video_id + num_frames + fps + num_gts + label, start_frame, end_frame + label, start_frame, end_frame + ... + num_proposals + label, best_iou, overlap_self, start_frame, end_frame + label, best_iou, overlap_self, start_frame, end_frame + ... + + Example of a standard annotation file: + .. code-block:: txt + # 0 + video_validation_0000202 + 5666 + 1 + 3 + 8 130 185 + 8 832 1136 + 8 1303 1381 + 5 + 8 0.0620 0.0620 790 5671 + 8 0.1656 0.1656 790 2619 + 8 0.0833 0.0833 3945 5671 + 8 0.0960 0.0960 4173 5671 + 8 0.0614 0.0614 3327 5671 + + Args: + ann_file (str): Path to the annotation file. + pipeline (list[dict | callable]): A sequence of data transforms. + train_cfg (dict): Config for training. + test_cfg (dict): Config for testing. + data_prefix (str): Path to a directory where videos are held. + test_mode (bool): Store True when building test or validation dataset. + Default: False. + filename_tmpl (str): Template for each filename. + Default: 'img_{:05}.jpg'. + start_index (int): Specify a start index for frames in consideration of + different filename format. Default: 1. + modality (str): Modality of data. Support 'RGB', 'Flow'. + Default: 'RGB'. + video_centric (bool): Whether to sample proposals just from + this video or sample proposals randomly from the entire dataset. + Default: True. + reg_normalize_constants (list): Regression target normalized constants, + including mean and standard deviation of location and duration. + body_segments (int): Number of segments in course period. + Default: 5. + aug_segments (list[int]): Number of segments in starting and + ending period. Default: (2, 2). + aug_ratio (int | float | tuple[int | float]): The ratio of the length + of augmentation to that of the proposal. Default: (0.5, 0.5). + clip_len (int): Frames of each sampled output clip. + Default: 1. + frame_interval (int): Temporal interval of adjacent sampled frames. + Default: 1. + filter_gt (bool): Whether to filter videos with no annotation + during training. Default: True. + use_regression (bool): Whether to perform regression. Default: True. + verbose (bool): Whether to print full information or not. + Default: False. + """ + + def __init__(self, + ann_file, + pipeline, + train_cfg, + test_cfg, + data_prefix, + test_mode=False, + filename_tmpl='img_{:05d}.jpg', + start_index=1, + modality='RGB', + video_centric=True, + reg_normalize_constants=None, + body_segments=5, + aug_segments=(2, 2), + aug_ratio=(0.5, 0.5), + clip_len=1, + frame_interval=1, + filter_gt=True, + use_regression=True, + verbose=False): + self.logger = get_root_logger() + super().__init__( + ann_file, + pipeline, + data_prefix=data_prefix, + test_mode=test_mode, + start_index=start_index, + modality=modality) + self.train_cfg = train_cfg + self.test_cfg = test_cfg + self.assigner = train_cfg.ssn.assigner + self.sampler = train_cfg.ssn.sampler + self.evaluater = test_cfg.ssn.evaluater + self.verbose = verbose + self.filename_tmpl = filename_tmpl + + if filter_gt or not test_mode: + valid_inds = [ + i for i, video_info in enumerate(self.video_infos) + if len(video_info['gts']) > 0 + ] + self.logger.info(f'{len(valid_inds)} out of {len(self.video_infos)} ' + f'videos are valid.') + self.video_infos = [self.video_infos[i] for i in valid_inds] + + # construct three pools: + # 1. Positive(Foreground) + # 2. Background + # 3. Incomplete + self.positive_pool = [] + self.background_pool = [] + self.incomplete_pool = [] + self.construct_proposal_pools() + + if reg_normalize_constants is None: + self.reg_norm_consts = self._compute_reg_normalize_constants() + else: + self.reg_norm_consts = reg_normalize_constants + self.video_centric = video_centric + self.body_segments = body_segments + self.aug_segments = aug_segments + self.aug_ratio = _pair(aug_ratio) + if not mmcv.is_tuple_of(self.aug_ratio, (int, float)): + raise TypeError(f'aug_ratio should be int, float' + f'or tuple of int and float, ' + f'but got {type(aug_ratio)}') + assert len(self.aug_ratio) == 2 + + total_ratio = ( + self.sampler.positive_ratio + self.sampler.background_ratio + + self.sampler.incomplete_ratio) + self.positive_per_video = int( + self.sampler.num_per_video * + (self.sampler.positive_ratio / total_ratio)) + self.background_per_video = int( + self.sampler.num_per_video * + (self.sampler.background_ratio / total_ratio)) + self.incomplete_per_video = ( + self.sampler.num_per_video - self.positive_per_video - + self.background_per_video) + + self.test_interval = self.test_cfg.ssn.sampler.test_interval + # number of consecutive frames + self.clip_len = clip_len + # number of steps (sparse sampling for efficiency of io) + self.frame_interval = frame_interval + + # test mode or not + self.filter_gt = filter_gt + self.use_regression = use_regression + self.test_mode = test_mode + + # yapf: disable + if self.verbose: + self.logger.info(f""" + SSNDataset: proposal file {self.proposal_file} parsed. + + There are {len(self.positive_pool) + len(self.background_pool) + + len(self.incomplete_pool)} usable proposals from {len(self.video_infos)} videos. + {len(self.positive_pool)} positive proposals + {len(self.incomplete_pool)} incomplete proposals + {len(self.background_pool)} background proposals + + Sample config: + FG/BG/INCOMP: {self.positive_per_video}/{self.background_per_video}/{self.incomplete_per_video} # noqa:E501 + Video Centric: {self.video_centric} + + Regression Normalization Constants: + Location: mean {self.reg_norm_consts[0][0]:.05f} std {self.reg_norm_consts[1][0]:.05f} # noqa: E501 + Duration: mean {self.reg_norm_consts[0][1]:.05f} std {self.reg_norm_consts[1][1]:.05f} # noqa: E501 + """) + # yapf: enable + else: + self.logger.info( + f'SSNDataset: proposal file {self.proposal_file} parsed.') + + def load_annotations(self): + """Load annotation file to get video information.""" + video_infos = [] + if 'normalized_' in self.ann_file: + self.proposal_file = self.ann_file.replace('normalized_', '') + if not osp.exists(self.proposal_file): + raise Exception(f'Please refer to `$MMACTION2/tools/data` to' + f'denormalize {self.ann_file}.') + else: + self.proposal_file = self.ann_file + proposal_infos = load_localize_proposal_file(self.proposal_file) + # proposal_info:[video_id, num_frames, gt_list, proposal_list] + # gt_list member: [label, start_frame, end_frame] + # proposal_list member: [label, best_iou, overlap_self, + # start_frame, end_frame] + for proposal_info in proposal_infos: + if self.data_prefix is not None: + frame_dir = osp.join(self.data_prefix, proposal_info[0]) + num_frames = int(proposal_info[1]) + # gts:start, end, num_frames, class_label, tIoU=1 + gts = [] + for x in proposal_info[2]: + if int(x[2]) > int(x[1]) and int(x[1]) < num_frames: + ssn_instance = SSNInstance( + int(x[1]), + int(x[2]), + num_frames, + label=int(x[0]), + best_iou=1.0) + gts.append(ssn_instance) + # proposals:start, end, num_frames, class_label + # tIoU=best_iou, overlap_self + proposals = [] + for x in proposal_info[3]: + if int(x[4]) > int(x[3]) and int(x[3]) < num_frames: + ssn_instance = SSNInstance( + int(x[3]), + int(x[4]), + num_frames, + label=int(x[0]), + best_iou=float(x[1]), + overlap_self=float(x[2])) + proposals.append(ssn_instance) + video_infos.append( + dict( + frame_dir=frame_dir, + video_id=proposal_info[0], + total_frames=num_frames, + gts=gts, + proposals=proposals)) + return video_infos + + def results_to_detections(self, results, top_k=2000, **kwargs): + """Convert prediction results into detections. + + Args: + results (list): Prediction results. + top_k (int): Number of top results. Default: 2000. + + Returns: + list: Detection results. + """ + num_classes = results[0]['activity_scores'].shape[1] - 1 + detections = [dict() for _ in range(num_classes)] + + for idx in range(len(self)): + video_id = self.video_infos[idx]['video_id'] + relative_proposals = results[idx]['relative_proposal_list'] + if len(relative_proposals[0].shape) == 3: + relative_proposals = np.squeeze(relative_proposals, 0) + + activity_scores = results[idx]['activity_scores'] + completeness_scores = results[idx]['completeness_scores'] + regression_scores = results[idx]['bbox_preds'] + if regression_scores is None: + regression_scores = np.zeros( + (len(relative_proposals), num_classes, 2), + dtype=np.float32) + regression_scores = regression_scores.reshape((-1, num_classes, 2)) + + if top_k <= 0: + combined_scores = ( + softmax(activity_scores[:, 1:], dim=1) * + np.exp(completeness_scores)) + for i in range(num_classes): + center_scores = regression_scores[:, i, 0][:, None] + duration_scores = regression_scores[:, i, 1][:, None] + detections[i][video_id] = np.concatenate( + (relative_proposals, combined_scores[:, i][:, None], + center_scores, duration_scores), + axis=1) + else: + combined_scores = ( + softmax(activity_scores[:, 1:], dim=1) * + np.exp(completeness_scores)) + keep_idx = np.argsort(combined_scores.ravel())[-top_k:] + for k in keep_idx: + class_idx = k % num_classes + proposal_idx = k // num_classes + new_item = [ + relative_proposals[proposal_idx, 0], + relative_proposals[proposal_idx, + 1], combined_scores[proposal_idx, + class_idx], + regression_scores[proposal_idx, class_idx, + 0], regression_scores[proposal_idx, + class_idx, 1] + ] + if video_id not in detections[class_idx]: + detections[class_idx][video_id] = np.array([new_item]) + else: + detections[class_idx][video_id] = np.vstack( + [detections[class_idx][video_id], new_item]) + + return detections + + def evaluate(self, + results, + metrics='mAP', + metric_options=dict(mAP=dict(eval_dataset='thumos14')), + logger=None, + **deprecated_kwargs): + """Evaluation in SSN proposal dataset. + + Args: + results (list[dict]): Output results. + metrics (str | sequence[str]): Metrics to be performed. + Defaults: 'mAP'. + metric_options (dict): Dict for metric options. Options are + ``eval_dataset`` for ``mAP``. + Default: ``dict(mAP=dict(eval_dataset='thumos14'))``. + logger (logging.Logger | None): Logger for recording. + Default: None. + deprecated_kwargs (dict): Used for containing deprecated arguments. + See 'https://github.com/open-mmlab/mmaction2/pull/286'. + + Returns: + dict: Evaluation results for evaluation metrics. + """ + # Protect ``metric_options`` since it uses mutable value as default + metric_options = copy.deepcopy(metric_options) + + if deprecated_kwargs != {}: + warnings.warn( + 'Option arguments for metrics has been changed to ' + "`metric_options`, See 'https://github.com/open-mmlab/mmaction2/pull/286' " # noqa: E501 + 'for more details') + metric_options['mAP'] = dict(metric_options['mAP'], + **deprecated_kwargs) + + if not isinstance(results, list): + raise TypeError(f'results must be a list, but got {type(results)}') + assert len(results) == len(self), ( + f'The length of results is not equal to the dataset len: ' + f'{len(results)} != {len(self)}') + + metrics = metrics if isinstance(metrics, (list, tuple)) else [metrics] + allowed_metrics = ['mAP'] + for metric in metrics: + if metric not in allowed_metrics: + raise KeyError(f'metric {metric} is not supported') + + detections = self.results_to_detections(results, **self.evaluater) + + if self.use_regression: + self.logger.info('Performing location regression') + for class_idx, _ in enumerate(detections): + detections[class_idx] = { + k: perform_regression(v) + for k, v in detections[class_idx].items() + } + self.logger.info('Regression finished') + + self.logger.info('Performing NMS') + for class_idx, _ in enumerate(detections): + detections[class_idx] = { + k: temporal_nms(v, self.evaluater.nms) + for k, v in detections[class_idx].items() + } + self.logger.info('NMS finished') + + # get gts + all_gts = self.get_all_gts() + for class_idx, _ in enumerate(detections): + if class_idx not in all_gts: + all_gts[class_idx] = dict() + + # get predictions + plain_detections = {} + for class_idx, _ in enumerate(detections): + detection_list = [] + for video, dets in detections[class_idx].items(): + detection_list.extend([[video, class_idx] + x[:3] + for x in dets.tolist()]) + plain_detections[class_idx] = detection_list + + eval_results = OrderedDict() + for metric in metrics: + if metric == 'mAP': + eval_dataset = metric_options.setdefault('mAP', {}).setdefault( + 'eval_dataset', 'thumos14') + if eval_dataset == 'thumos14': + iou_range = np.arange(0.1, 1.0, .1) + ap_values = eval_ap(plain_detections, all_gts, iou_range) + map_ious = ap_values.mean(axis=0) + self.logger.info('Evaluation finished') + + for iou, map_iou in zip(iou_range, map_ious): + eval_results[f'mAP@{iou:.02f}'] = map_iou + + return eval_results + + def construct_proposal_pools(self): + """Construct positive proposal pool, incomplete proposal pool and + background proposal pool of the entire dataset.""" + for video_info in self.video_infos: + positives = self.get_positives( + video_info['gts'], video_info['proposals'], + self.assigner.positive_iou_threshold, + self.sampler.add_gt_as_proposals) + self.positive_pool.extend([(video_info['video_id'], proposal) + for proposal in positives]) + + incompletes, backgrounds = self.get_negatives( + video_info['proposals'], + self.assigner.incomplete_iou_threshold, + self.assigner.background_iou_threshold, + self.assigner.background_coverage_threshold, + self.assigner.incomplete_overlap_threshold) + self.incomplete_pool.extend([(video_info['video_id'], proposal) + for proposal in incompletes]) + self.background_pool.extend([video_info['video_id'], proposal] + for proposal in backgrounds) + + def get_all_gts(self): + """Fetch groundtruth instances of the entire dataset.""" + gts = {} + for video_info in self.video_infos: + video = video_info['video_id'] + for gt in video_info['gts']: + class_idx = gt.label - 1 + # gt_info: [relative_start, relative_end] + gt_info = [ + gt.start_frame / video_info['total_frames'], + gt.end_frame / video_info['total_frames'] + ] + gts.setdefault(class_idx, {}).setdefault(video, + []).append(gt_info) + + return gts + + @staticmethod + def get_positives(gts, proposals, positive_threshold, with_gt=True): + """Get positive/foreground proposals. + + Args: + gts (list): List of groundtruth instances(:obj:`SSNInstance`). + proposals (list): List of proposal instances(:obj:`SSNInstance`). + positive_threshold (float): Minimum threshold of overlap of + positive/foreground proposals and groundtruths. + with_gt (bool): Whether to include groundtruth instances in + positive proposals. Default: True. + + Returns: + list[:obj:`SSNInstance`]: (positives), positives is a list + comprised of positive proposal instances. + """ + positives = [ + proposal for proposal in proposals + if proposal.best_iou > positive_threshold + ] + + if with_gt: + positives.extend(gts) + + for proposal in positives: + proposal.compute_regression_targets(gts) + + return positives + + @staticmethod + def get_negatives(proposals, + incomplete_iou_threshold, + background_iou_threshold, + background_coverage_threshold=0.01, + incomplete_overlap_threshold=0.7): + """Get negative proposals, including incomplete proposals and + background proposals. + + Args: + proposals (list): List of proposal instances(:obj:`SSNInstance`). + incomplete_iou_threshold (float): Maximum threshold of overlap + of incomplete proposals and groundtruths. + background_iou_threshold (float): Maximum threshold of overlap + of background proposals and groundtruths. + background_coverage_threshold (float): Minimum coverage + of background proposals in video duration. Default: 0.01. + incomplete_overlap_threshold (float): Minimum percent of incomplete + proposals' own span contained in a groundtruth instance. + Default: 0.7. + + Returns: + list[:obj:`SSNInstance`]: (incompletes, backgrounds), incompletes + and backgrounds are lists comprised of incomplete + proposal instances and background proposal instances. + """ + incompletes = [] + backgrounds = [] + + for proposal in proposals: + if (proposal.best_iou < incomplete_iou_threshold + and proposal.overlap_self > incomplete_overlap_threshold): + incompletes.append(proposal) + elif (proposal.best_iou < background_iou_threshold + and proposal.coverage > background_coverage_threshold): + backgrounds.append(proposal) + + return incompletes, backgrounds + + def _video_centric_sampling(self, record): + """Sample proposals from the this video instance. + + Args: + record (dict): Information of the video instance(video_info[idx]). + key: frame_dir, video_id, total_frames, + gts: List of groundtruth instances(:obj:`SSNInstance`). + proposals: List of proposal instances(:obj:`SSNInstance`). + """ + positives = self.get_positives(record['gts'], record['proposals'], + self.assigner.positive_iou_threshold, + self.sampler.add_gt_as_proposals) + incompletes, backgrounds = self.get_negatives( + record['proposals'], self.assigner.incomplete_iou_threshold, + self.assigner.background_iou_threshold, + self.assigner.background_coverage_threshold, + self.assigner.incomplete_overlap_threshold) + + def sample_video_proposals(proposal_type, video_id, video_pool, + num_requested_proposals, dataset_pool): + """This method will sample proposals from the this video pool. If + the video pool is empty, it will fetch from the dataset pool + (collect proposal of the entire dataset). + + Args: + proposal_type (int): Type id of proposal. + Positive/Foreground: 0 + Negative: + Incomplete: 1 + Background: 2 + video_id (str): Name of the video. + video_pool (list): Pool comprised of proposals in this video. + num_requested_proposals (int): Number of proposals + to be sampled. + dataset_pool (list): Proposals of the entire dataset. + + Returns: + list[(str, :obj:`SSNInstance`), int]: + video_id (str): Name of the video. + :obj:`SSNInstance`: Instance of class SSNInstance. + proposal_type (int): Type of proposal. + """ + + if len(video_pool) == 0: + idx = np.random.choice( + len(dataset_pool), num_requested_proposals, replace=False) + return [(dataset_pool[x], proposal_type) for x in idx] + + replicate = len(video_pool) < num_requested_proposals + idx = np.random.choice( + len(video_pool), num_requested_proposals, replace=replicate) + return [((video_id, video_pool[x]), proposal_type) for x in idx] + + out_proposals = [] + out_proposals.extend( + sample_video_proposals(0, record['video_id'], positives, + self.positive_per_video, + self.positive_pool)) + out_proposals.extend( + sample_video_proposals(1, record['video_id'], incompletes, + self.incomplete_per_video, + self.incomplete_pool)) + out_proposals.extend( + sample_video_proposals(2, record['video_id'], backgrounds, + self.background_per_video, + self.background_pool)) + + return out_proposals + + def _random_sampling(self): + """Randomly sample proposals from the entire dataset.""" + out_proposals = [] + + positive_idx = np.random.choice( + len(self.positive_pool), + self.positive_per_video, + replace=len(self.positive_pool) < self.positive_per_video) + out_proposals.extend([(self.positive_pool[x], 0) + for x in positive_idx]) + incomplete_idx = np.random.choice( + len(self.incomplete_pool), + self.incomplete_per_video, + replace=len(self.incomplete_pool) < self.incomplete_per_video) + out_proposals.extend([(self.incomplete_pool[x], 1) + for x in incomplete_idx]) + background_idx = np.random.choice( + len(self.background_pool), + self.background_per_video, + replace=len(self.background_pool) < self.background_per_video) + out_proposals.extend([(self.background_pool[x], 2) + for x in background_idx]) + + return out_proposals + + def _get_stage(self, proposal, num_frames): + """Fetch the scale factor of starting and ending stage and get the + stage split. + + Args: + proposal (:obj:`SSNInstance`): Proposal instance. + num_frames (int): Total frames of the video. + + Returns: + tuple[float, float, list]: (starting_scale_factor, + ending_scale_factor, stage_split), starting_scale_factor is + the ratio of the effective sampling length to augment length + in starting stage, ending_scale_factor is the ratio of the + effective sampling length to augment length in ending stage, + stage_split is ending segment id of starting, course and + ending stage. + """ + # proposal interval: [start_frame, end_frame) + start_frame = proposal.start_frame + end_frame = proposal.end_frame + ori_clip_len = self.clip_len * self.frame_interval + + duration = end_frame - start_frame + assert duration != 0 + + valid_starting = max(0, + start_frame - int(duration * self.aug_ratio[0])) + valid_ending = min(num_frames - ori_clip_len + 1, + end_frame - 1 + int(duration * self.aug_ratio[1])) + + valid_starting_length = start_frame - valid_starting - ori_clip_len + valid_ending_length = (valid_ending - end_frame + 1) - ori_clip_len + + starting_scale_factor = ((valid_starting_length + ori_clip_len + 1) / + (duration * self.aug_ratio[0])) + ending_scale_factor = (valid_ending_length + ori_clip_len + 1) / ( + duration * self.aug_ratio[1]) + + aug_start, aug_end = self.aug_segments + stage_split = [ + aug_start, aug_start + self.body_segments, + aug_start + self.body_segments + aug_end + ] + + return starting_scale_factor, ending_scale_factor, stage_split + + def _compute_reg_normalize_constants(self): + """Compute regression target normalized constants.""" + if self.verbose: + self.logger.info('Compute regression target normalized constants') + targets = [] + for video_info in self.video_infos: + positives = self.get_positives( + video_info['gts'], video_info['proposals'], + self.assigner.positive_iou_threshold, False) + for positive in positives: + targets.append(list(positive.regression_targets)) + + return np.array((np.mean(targets, axis=0), np.std(targets, axis=0))) + + def prepare_train_frames(self, idx): + """Prepare the frames for training given the index.""" + results = copy.deepcopy(self.video_infos[idx]) + results['filename_tmpl'] = self.filename_tmpl + results['modality'] = self.modality + results['start_index'] = self.start_index + + if self.video_centric: + # yapf: disable + results['out_proposals'] = self._video_centric_sampling(self.video_infos[idx]) # noqa: E501 + # yapf: enable + else: + results['out_proposals'] = self._random_sampling() + + out_proposal_scale_factor = [] + out_proposal_type = [] + out_proposal_labels = [] + out_proposal_reg_targets = [] + + for _, proposal in enumerate(results['out_proposals']): + # proposal: [(video_id, SSNInstance), proposal_type] + num_frames = proposal[0][1].num_video_frames + + (starting_scale_factor, ending_scale_factor, + _) = self._get_stage(proposal[0][1], num_frames) + + # proposal[1]: Type id of proposal. + # Positive/Foreground: 0 + # Negative: + # Incomplete: 1 + # Background: 2 + + # Positivte/Foreground proposal + if proposal[1] == 0: + label = proposal[0][1].label + # Incomplete proposal + elif proposal[1] == 1: + label = proposal[0][1].label + # Background proposal + elif proposal[1] == 2: + label = 0 + else: + raise ValueError(f'Proposal type should be 0, 1, or 2,' + f'but got {proposal[1]}') + out_proposal_scale_factor.append( + [starting_scale_factor, ending_scale_factor]) + if not isinstance(label, int): + raise TypeError(f'proposal_label must be an int,' + f'but got {type(label)}') + out_proposal_labels.append(label) + out_proposal_type.append(proposal[1]) + + reg_targets = proposal[0][1].regression_targets + if proposal[1] == 0: + # Normalize regression targets of positive proposals. + reg_targets = ((reg_targets[0] - self.reg_norm_consts[0][0]) / + self.reg_norm_consts[1][0], + (reg_targets[1] - self.reg_norm_consts[0][1]) / + self.reg_norm_consts[1][1]) + out_proposal_reg_targets.append(reg_targets) + + results['reg_targets'] = np.array( + out_proposal_reg_targets, dtype=np.float32) + results['proposal_scale_factor'] = np.array( + out_proposal_scale_factor, dtype=np.float32) + results['proposal_labels'] = np.array(out_proposal_labels) + results['proposal_type'] = np.array(out_proposal_type) + + return self.pipeline(results) + + def prepare_test_frames(self, idx): + """Prepare the frames for testing given the index.""" + results = copy.deepcopy(self.video_infos[idx]) + results['filename_tmpl'] = self.filename_tmpl + results['modality'] = self.modality + results['start_index'] = self.start_index + + proposals = results['proposals'] + num_frames = results['total_frames'] + ori_clip_len = self.clip_len * self.frame_interval + frame_ticks = np.arange( + 0, num_frames - ori_clip_len, self.test_interval, dtype=int) + 1 + + num_sampled_frames = len(frame_ticks) + + if len(proposals) == 0: + proposals.append(SSNInstance(0, num_frames - 1, num_frames)) + + relative_proposal_list = [] + proposal_tick_list = [] + scale_factor_list = [] + + for proposal in proposals: + relative_proposal = (proposal.start_frame / num_frames, + proposal.end_frame / num_frames) + relative_duration = relative_proposal[1] - relative_proposal[0] + relative_starting_duration = relative_duration * self.aug_ratio[0] + relative_ending_duration = relative_duration * self.aug_ratio[1] + relative_starting = ( + relative_proposal[0] - relative_starting_duration) + relative_ending = relative_proposal[1] + relative_ending_duration + + real_relative_starting = max(0.0, relative_starting) + real_relative_ending = min(1.0, relative_ending) + + starting_scale_factor = ( + (relative_proposal[0] - real_relative_starting) / + relative_starting_duration) + ending_scale_factor = ( + (real_relative_ending - relative_proposal[1]) / + relative_ending_duration) + + proposal_ranges = (real_relative_starting, *relative_proposal, + real_relative_ending) + proposal_ticks = (np.array(proposal_ranges) * + num_sampled_frames).astype(np.int32) + + relative_proposal_list.append(relative_proposal) + proposal_tick_list.append(proposal_ticks) + scale_factor_list.append( + (starting_scale_factor, ending_scale_factor)) + + results['relative_proposal_list'] = np.array( + relative_proposal_list, dtype=np.float32) + results['scale_factor_list'] = np.array( + scale_factor_list, dtype=np.float32) + results['proposal_tick_list'] = np.array( + proposal_tick_list, dtype=np.int32) + results['reg_norm_consts'] = self.reg_norm_consts + + return self.pipeline(results) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/video_dataset.py b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/video_dataset.py new file mode 100644 index 00000000..21c47808 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/datasets/video_dataset.py @@ -0,0 +1,61 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +from .base import BaseDataset +from .builder import DATASETS + + +@DATASETS.register_module() +class VideoDataset(BaseDataset): + """Video dataset for action recognition. + + The dataset loads raw videos and apply specified transforms to return a + dict containing the frame tensors and other information. + + The ann_file is a text file with multiple lines, and each line indicates + a sample video with the filepath and label, which are split with a + whitespace. Example of a annotation file: + + .. code-block:: txt + + some/path/000.mp4 1 + some/path/001.mp4 1 + some/path/002.mp4 2 + some/path/003.mp4 2 + some/path/004.mp4 3 + some/path/005.mp4 3 + + + Args: + ann_file (str): Path to the annotation file. + pipeline (list[dict | callable]): A sequence of data transforms. + start_index (int): Specify a start index for frames in consideration of + different filename format. However, when taking videos as input, + it should be set to 0, since frames loaded from videos count + from 0. Default: 0. + **kwargs: Keyword arguments for ``BaseDataset``. + """ + + def __init__(self, ann_file, pipeline, start_index=0, **kwargs): + super().__init__(ann_file, pipeline, start_index=start_index, **kwargs) + + def load_annotations(self): + """Load annotation file to get video information.""" + if self.ann_file.endswith('.json'): + return self.load_json_annotations() + + video_infos = [] + with open(self.ann_file, 'r') as fin: + for line in fin: + line_split = line.strip().split() + if self.multi_class: + assert self.num_classes is not None + filename, label = line_split[0], line_split[1:] + label = list(map(int, label)) + else: + filename, label = line_split + label = int(label) + if self.data_prefix is not None: + filename = osp.join(self.data_prefix, filename) + video_infos.append(dict(filename=filename, label=label)) + return video_infos diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/localization/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/localization/__init__.py new file mode 100644 index 00000000..64ebdaab --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/localization/__init__.py @@ -0,0 +1,11 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .bsn_utils import generate_bsp_feature, generate_candidate_proposals +from .proposal_utils import soft_nms, temporal_iop, temporal_iou +from .ssn_utils import (eval_ap, load_localize_proposal_file, + perform_regression, temporal_nms) + +__all__ = [ + 'generate_candidate_proposals', 'generate_bsp_feature', 'temporal_iop', + 'temporal_iou', 'soft_nms', 'load_localize_proposal_file', + 'perform_regression', 'temporal_nms', 'eval_ap' +] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/localization/bsn_utils.py b/openmmlab_test/mmaction2-0.24.1/mmaction/localization/bsn_utils.py new file mode 100644 index 00000000..27de3372 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/localization/bsn_utils.py @@ -0,0 +1,268 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +import numpy as np + +from .proposal_utils import temporal_iop, temporal_iou + + +def generate_candidate_proposals(video_list, + video_infos, + tem_results_dir, + temporal_scale, + peak_threshold, + tem_results_ext='.csv', + result_dict=None): + """Generate Candidate Proposals with given temporal evaluation results. + Each proposal file will contain: + 'tmin,tmax,tmin_score,tmax_score,score,match_iou,match_ioa'. + + Args: + video_list (list[int]): List of video indexes to generate proposals. + video_infos (list[dict]): List of video_info dict that contains + 'video_name', 'duration_frame', 'duration_second', + 'feature_frame', and 'annotations'. + tem_results_dir (str): Directory to load temporal evaluation + results. + temporal_scale (int): The number (scale) on temporal axis. + peak_threshold (float): The threshold for proposal generation. + tem_results_ext (str): File extension for temporal evaluation + model output. Default: '.csv'. + result_dict (dict | None): The dict to save the results. Default: None. + + Returns: + dict: A dict contains video_name as keys and proposal list as value. + If result_dict is not None, save the results to it. + """ + if tem_results_ext != '.csv': + raise NotImplementedError('Only support csv format now.') + + tscale = temporal_scale + tgap = 1. / tscale + proposal_dict = {} + for video_index in video_list: + video_name = video_infos[video_index]['video_name'] + tem_path = osp.join(tem_results_dir, video_name + tem_results_ext) + tem_results = np.loadtxt( + tem_path, dtype=np.float32, delimiter=',', skiprows=1) + start_scores = tem_results[:, 1] + end_scores = tem_results[:, 2] + + max_start = max(start_scores) + max_end = max(end_scores) + + start_bins = np.zeros(len(start_scores)) + start_bins[[0, -1]] = 1 + end_bins = np.zeros(len(end_scores)) + end_bins[[0, -1]] = 1 + for idx in range(1, tscale - 1): + if start_scores[idx] > start_scores[ + idx + 1] and start_scores[idx] > start_scores[idx - 1]: + start_bins[idx] = 1 + elif start_scores[idx] > (peak_threshold * max_start): + start_bins[idx] = 1 + if end_scores[idx] > end_scores[ + idx + 1] and end_scores[idx] > end_scores[idx - 1]: + end_bins[idx] = 1 + elif end_scores[idx] > (peak_threshold * max_end): + end_bins[idx] = 1 + + tmin_list = [] + tmin_score_list = [] + tmax_list = [] + tmax_score_list = [] + for idx in range(tscale): + if start_bins[idx] == 1: + tmin_list.append(tgap / 2 + tgap * idx) + tmin_score_list.append(start_scores[idx]) + if end_bins[idx] == 1: + tmax_list.append(tgap / 2 + tgap * idx) + tmax_score_list.append(end_scores[idx]) + + new_props = [] + for tmax, tmax_score in zip(tmax_list, tmax_score_list): + for tmin, tmin_score in zip(tmin_list, tmin_score_list): + if tmin >= tmax: + break + new_props.append([tmin, tmax, tmin_score, tmax_score]) + + new_props = np.stack(new_props) + + score = (new_props[:, 2] * new_props[:, 3]).reshape(-1, 1) + new_props = np.concatenate((new_props, score), axis=1) + + new_props = new_props[new_props[:, -1].argsort()[::-1]] + video_info = video_infos[video_index] + video_frame = video_info['duration_frame'] + video_second = video_info['duration_second'] + feature_frame = video_info['feature_frame'] + corrected_second = float(feature_frame) / video_frame * video_second + + gt_tmins = [] + gt_tmaxs = [] + for annotations in video_info['annotations']: + gt_tmins.append(annotations['segment'][0] / corrected_second) + gt_tmaxs.append(annotations['segment'][1] / corrected_second) + + new_iou_list = [] + new_ioa_list = [] + for new_prop in new_props: + new_iou = max( + temporal_iou(new_prop[0], new_prop[1], gt_tmins, gt_tmaxs)) + new_ioa = max( + temporal_iop(new_prop[0], new_prop[1], gt_tmins, gt_tmaxs)) + new_iou_list.append(new_iou) + new_ioa_list.append(new_ioa) + + new_iou_list = np.array(new_iou_list).reshape(-1, 1) + new_ioa_list = np.array(new_ioa_list).reshape(-1, 1) + new_props = np.concatenate((new_props, new_iou_list), axis=1) + new_props = np.concatenate((new_props, new_ioa_list), axis=1) + proposal_dict[video_name] = new_props + if result_dict is not None: + result_dict[video_name] = new_props + return proposal_dict + + +def generate_bsp_feature(video_list, + video_infos, + tem_results_dir, + pgm_proposals_dir, + top_k=1000, + bsp_boundary_ratio=0.2, + num_sample_start=8, + num_sample_end=8, + num_sample_action=16, + num_sample_interp=3, + tem_results_ext='.csv', + pgm_proposal_ext='.csv', + result_dict=None): + """Generate Boundary-Sensitive Proposal Feature with given proposals. + + Args: + video_list (list[int]): List of video indexes to generate bsp_feature. + video_infos (list[dict]): List of video_info dict that contains + 'video_name'. + tem_results_dir (str): Directory to load temporal evaluation + results. + pgm_proposals_dir (str): Directory to load proposals. + top_k (int): Number of proposals to be considered. Default: 1000 + bsp_boundary_ratio (float): Ratio for proposal boundary + (start/end). Default: 0.2. + num_sample_start (int): Num of samples for actionness in + start region. Default: 8. + num_sample_end (int): Num of samples for actionness in end region. + Default: 8. + num_sample_action (int): Num of samples for actionness in center + region. Default: 16. + num_sample_interp (int): Num of samples for interpolation for + each sample point. Default: 3. + tem_results_ext (str): File extension for temporal evaluation + model output. Default: '.csv'. + pgm_proposal_ext (str): File extension for proposals. Default: '.csv'. + result_dict (dict | None): The dict to save the results. Default: None. + + Returns: + bsp_feature_dict (dict): A dict contains video_name as keys and + bsp_feature as value. If result_dict is not None, save the + results to it. + """ + if tem_results_ext != '.csv' or pgm_proposal_ext != '.csv': + raise NotImplementedError('Only support csv format now.') + + bsp_feature_dict = {} + for video_index in video_list: + video_name = video_infos[video_index]['video_name'] + + # Load temporal evaluation results + tem_path = osp.join(tem_results_dir, video_name + tem_results_ext) + tem_results = np.loadtxt( + tem_path, dtype=np.float32, delimiter=',', skiprows=1) + score_action = tem_results[:, 0] + seg_tmins = tem_results[:, 3] + seg_tmaxs = tem_results[:, 4] + video_scale = len(tem_results) + video_gap = seg_tmaxs[0] - seg_tmins[0] + video_extend = int(video_scale / 4 + 10) + + # Load proposals results + proposal_path = osp.join(pgm_proposals_dir, + video_name + pgm_proposal_ext) + pgm_proposals = np.loadtxt( + proposal_path, dtype=np.float32, delimiter=',', skiprows=1) + pgm_proposals = pgm_proposals[:top_k] + + # Generate temporal sample points + boundary_zeros = np.zeros([video_extend]) + score_action = np.concatenate( + (boundary_zeros, score_action, boundary_zeros)) + begin_tp = [] + middle_tp = [] + end_tp = [] + for i in range(video_extend): + begin_tp.append(-video_gap / 2 - + (video_extend - 1 - i) * video_gap) + end_tp.append(video_gap / 2 + seg_tmaxs[-1] + i * video_gap) + for i in range(video_scale): + middle_tp.append(video_gap / 2 + i * video_gap) + t_points = begin_tp + middle_tp + end_tp + + bsp_feature = [] + for pgm_proposal in pgm_proposals: + tmin = pgm_proposal[0] + tmax = pgm_proposal[1] + + tlen = tmax - tmin + # Temporal range for start + tmin_0 = tmin - tlen * bsp_boundary_ratio + tmin_1 = tmin + tlen * bsp_boundary_ratio + # Temporal range for end + tmax_0 = tmax - tlen * bsp_boundary_ratio + tmax_1 = tmax + tlen * bsp_boundary_ratio + + # Generate features at start boundary + tlen_start = (tmin_1 - tmin_0) / (num_sample_start - 1) + tlen_start_sample = tlen_start / num_sample_interp + t_new = [ + tmin_0 - tlen_start / 2 + tlen_start_sample * i + for i in range(num_sample_start * num_sample_interp + 1) + ] + y_new_start_action = np.interp(t_new, t_points, score_action) + y_new_start = [ + np.mean(y_new_start_action[i * num_sample_interp:(i + 1) * + num_sample_interp + 1]) + for i in range(num_sample_start) + ] + # Generate features at end boundary + tlen_end = (tmax_1 - tmax_0) / (num_sample_end - 1) + tlen_end_sample = tlen_end / num_sample_interp + t_new = [ + tmax_0 - tlen_end / 2 + tlen_end_sample * i + for i in range(num_sample_end * num_sample_interp + 1) + ] + y_new_end_action = np.interp(t_new, t_points, score_action) + y_new_end = [ + np.mean(y_new_end_action[i * num_sample_interp:(i + 1) * + num_sample_interp + 1]) + for i in range(num_sample_end) + ] + # Generate features for action + tlen_action = (tmax - tmin) / (num_sample_action - 1) + tlen_action_sample = tlen_action / num_sample_interp + t_new = [ + tmin - tlen_action / 2 + tlen_action_sample * i + for i in range(num_sample_action * num_sample_interp + 1) + ] + y_new_action = np.interp(t_new, t_points, score_action) + y_new_action = [ + np.mean(y_new_action[i * num_sample_interp:(i + 1) * + num_sample_interp + 1]) + for i in range(num_sample_action) + ] + feature = np.concatenate([y_new_action, y_new_start, y_new_end]) + bsp_feature.append(feature) + bsp_feature = np.array(bsp_feature) + bsp_feature_dict[video_name] = bsp_feature + if result_dict is not None: + result_dict[video_name] = bsp_feature + return bsp_feature_dict diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/localization/proposal_utils.py b/openmmlab_test/mmaction2-0.24.1/mmaction/localization/proposal_utils.py new file mode 100644 index 00000000..a3e2f4cf --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/localization/proposal_utils.py @@ -0,0 +1,95 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np + + +def temporal_iou(proposal_min, proposal_max, gt_min, gt_max): + """Compute IoU score between a groundtruth bbox and the proposals. + + Args: + proposal_min (list[float]): List of temporal anchor min. + proposal_max (list[float]): List of temporal anchor max. + gt_min (float): Groundtruth temporal box min. + gt_max (float): Groundtruth temporal box max. + + Returns: + list[float]: List of iou scores. + """ + len_anchors = proposal_max - proposal_min + int_tmin = np.maximum(proposal_min, gt_min) + int_tmax = np.minimum(proposal_max, gt_max) + inter_len = np.maximum(int_tmax - int_tmin, 0.) + union_len = len_anchors - inter_len + gt_max - gt_min + jaccard = np.divide(inter_len, union_len) + return jaccard + + +def temporal_iop(proposal_min, proposal_max, gt_min, gt_max): + """Compute IoP score between a groundtruth bbox and the proposals. + + Compute the IoP which is defined as the overlap ratio with + groundtruth proportional to the duration of this proposal. + + Args: + proposal_min (list[float]): List of temporal anchor min. + proposal_max (list[float]): List of temporal anchor max. + gt_min (float): Groundtruth temporal box min. + gt_max (float): Groundtruth temporal box max. + + Returns: + list[float]: List of intersection over anchor scores. + """ + len_anchors = np.array(proposal_max - proposal_min) + int_tmin = np.maximum(proposal_min, gt_min) + int_tmax = np.minimum(proposal_max, gt_max) + inter_len = np.maximum(int_tmax - int_tmin, 0.) + scores = np.divide(inter_len, len_anchors) + return scores + + +def soft_nms(proposals, alpha, low_threshold, high_threshold, top_k): + """Soft NMS for temporal proposals. + + Args: + proposals (np.ndarray): Proposals generated by network. + alpha (float): Alpha value of Gaussian decaying function. + low_threshold (float): Low threshold for soft nms. + high_threshold (float): High threshold for soft nms. + top_k (int): Top k values to be considered. + + Returns: + np.ndarray: The updated proposals. + """ + proposals = proposals[proposals[:, -1].argsort()[::-1]] + tstart = list(proposals[:, 0]) + tend = list(proposals[:, 1]) + tscore = list(proposals[:, -1]) + rstart = [] + rend = [] + rscore = [] + + while len(tscore) > 0 and len(rscore) <= top_k: + max_index = np.argmax(tscore) + max_width = tend[max_index] - tstart[max_index] + iou_list = temporal_iou(tstart[max_index], tend[max_index], + np.array(tstart), np.array(tend)) + iou_exp_list = np.exp(-np.square(iou_list) / alpha) + + for idx, _ in enumerate(tscore): + if idx != max_index: + current_iou = iou_list[idx] + if current_iou > low_threshold + (high_threshold - + low_threshold) * max_width: + tscore[idx] = tscore[idx] * iou_exp_list[idx] + + rstart.append(tstart[max_index]) + rend.append(tend[max_index]) + rscore.append(tscore[max_index]) + tstart.pop(max_index) + tend.pop(max_index) + tscore.pop(max_index) + + rstart = np.array(rstart).reshape(-1, 1) + rend = np.array(rend).reshape(-1, 1) + rscore = np.array(rscore).reshape(-1, 1) + new_proposals = np.concatenate((rstart, rend, rscore), axis=1) + return new_proposals diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/localization/ssn_utils.py b/openmmlab_test/mmaction2-0.24.1/mmaction/localization/ssn_utils.py new file mode 100644 index 00000000..51f434b0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/localization/ssn_utils.py @@ -0,0 +1,169 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from itertools import groupby + +import numpy as np + +from ..core import average_precision_at_temporal_iou +from . import temporal_iou + + +def load_localize_proposal_file(filename): + """Load the proposal file and split it into many parts which contain one + video's information separately. + + Args: + filename(str): Path to the proposal file. + + Returns: + list: List of all videos' information. + """ + lines = list(open(filename)) + + # Split the proposal file into many parts which contain one video's + # information separately. + groups = groupby(lines, lambda x: x.startswith('#')) + + video_infos = [[x.strip() for x in list(g)] for k, g in groups if not k] + + def parse_group(video_info): + """Parse the video's information. + + Template information of a video in a standard file: + # index + video_id + num_frames + fps + num_gts + label, start_frame, end_frame + label, start_frame, end_frame + ... + num_proposals + label, best_iou, overlap_self, start_frame, end_frame + label, best_iou, overlap_self, start_frame, end_frame + ... + + Example of a standard annotation file: + + .. code-block:: txt + + # 0 + video_validation_0000202 + 5666 + 1 + 3 + 8 130 185 + 8 832 1136 + 8 1303 1381 + 5 + 8 0.0620 0.0620 790 5671 + 8 0.1656 0.1656 790 2619 + 8 0.0833 0.0833 3945 5671 + 8 0.0960 0.0960 4173 5671 + 8 0.0614 0.0614 3327 5671 + + Args: + video_info (list): Information of the video. + + Returns: + tuple[str, int, list, list]: + video_id (str): Name of the video. + num_frames (int): Number of frames in the video. + gt_boxes (list): List of the information of gt boxes. + proposal_boxes (list): List of the information of + proposal boxes. + """ + offset = 0 + video_id = video_info[offset] + offset += 1 + + num_frames = int(float(video_info[1]) * float(video_info[2])) + num_gts = int(video_info[3]) + offset = 4 + + gt_boxes = [x.split() for x in video_info[offset:offset + num_gts]] + offset += num_gts + num_proposals = int(video_info[offset]) + offset += 1 + proposal_boxes = [ + x.split() for x in video_info[offset:offset + num_proposals] + ] + + return video_id, num_frames, gt_boxes, proposal_boxes + + return [parse_group(video_info) for video_info in video_infos] + + +def perform_regression(detections): + """Perform regression on detection results. + + Args: + detections (list): Detection results before regression. + + Returns: + list: Detection results after regression. + """ + starts = detections[:, 0] + ends = detections[:, 1] + centers = (starts + ends) / 2 + durations = ends - starts + + new_centers = centers + durations * detections[:, 3] + new_durations = durations * np.exp(detections[:, 4]) + + new_detections = np.concatenate( + (np.clip(new_centers - new_durations / 2, 0, + 1)[:, None], np.clip(new_centers + new_durations / 2, 0, + 1)[:, None], detections[:, 2:]), + axis=1) + return new_detections + + +def temporal_nms(detections, threshold): + """Parse the video's information. + + Args: + detections (list): Detection results before NMS. + threshold (float): Threshold of NMS. + + Returns: + list: Detection results after NMS. + """ + starts = detections[:, 0] + ends = detections[:, 1] + scores = detections[:, 2] + + order = scores.argsort()[::-1] + + keep = [] + while order.size > 0: + i = order[0] + keep.append(i) + ious = temporal_iou(starts[order[1:]], ends[order[1:]], starts[i], + ends[i]) + idxs = np.where(ious <= threshold)[0] + order = order[idxs + 1] + + return detections[keep, :] + + +def eval_ap(detections, gt_by_cls, iou_range): + """Evaluate average precisions. + + Args: + detections (dict): Results of detections. + gt_by_cls (dict): Information of groudtruth. + iou_range (list): Ranges of iou. + + Returns: + list: Average precision values of classes at ious. + """ + ap_values = np.zeros((len(detections), len(iou_range))) + + for iou_idx, min_overlap in enumerate(iou_range): + for class_idx, _ in enumerate(detections): + ap = average_precision_at_temporal_iou(gt_by_cls[class_idx], + detections[class_idx], + [min_overlap]) + ap_values[class_idx, iou_idx] = ap + + return ap_values diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/__init__.py new file mode 100644 index 00000000..d3936ced --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/__init__.py @@ -0,0 +1,45 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .backbones import (C3D, STGCN, X3D, MobileNetV2, MobileNetV2TSM, ResNet, + ResNet2Plus1d, ResNet3d, ResNet3dCSN, ResNet3dLayer, + ResNet3dSlowFast, ResNet3dSlowOnly, ResNetAudio, + ResNetTIN, ResNetTSM, TANet, TimeSformer) +from .builder import (BACKBONES, DETECTORS, HEADS, LOCALIZERS, LOSSES, NECKS, + RECOGNIZERS, build_backbone, build_detector, build_head, + build_localizer, build_loss, build_model, build_neck, + build_recognizer) +from .common import (LFB, TAM, Conv2plus1d, ConvAudio, + DividedSpatialAttentionWithNorm, + DividedTemporalAttentionWithNorm, FFNWithNorm, + SubBatchNorm3D) +from .heads import (ACRNHead, AudioTSNHead, AVARoIHead, BaseHead, BBoxHeadAVA, + FBOHead, I3DHead, LFBInferHead, SlowFastHead, STGCNHead, + TimeSformerHead, TPNHead, TRNHead, TSMHead, TSNHead, + X3DHead) +from .localizers import BMN, PEM, TEM +from .losses import (BCELossWithLogits, BinaryLogisticRegressionLoss, BMNLoss, + CBFocalLoss, CrossEntropyLoss, HVULoss, NLLLoss, + OHEMHingeLoss, SSNLoss) +from .necks import TPN +from .recognizers import (AudioRecognizer, BaseRecognizer, Recognizer2D, + Recognizer3D) +from .roi_extractors import SingleRoIExtractor3D +from .skeleton_gcn import BaseGCN, SkeletonGCN + +__all__ = [ + 'BACKBONES', 'HEADS', 'RECOGNIZERS', 'build_recognizer', 'build_head', + 'build_backbone', 'Recognizer2D', 'Recognizer3D', 'C3D', 'ResNet', 'STGCN', + 'ResNet3d', 'ResNet2Plus1d', 'I3DHead', 'TSNHead', 'TSMHead', 'BaseHead', + 'STGCNHead', 'BaseRecognizer', 'LOSSES', 'CrossEntropyLoss', 'NLLLoss', + 'HVULoss', 'ResNetTSM', 'ResNet3dSlowFast', 'SlowFastHead', 'Conv2plus1d', + 'ResNet3dSlowOnly', 'BCELossWithLogits', 'LOCALIZERS', 'build_localizer', + 'PEM', 'TAM', 'TEM', 'BinaryLogisticRegressionLoss', 'BMN', 'BMNLoss', + 'build_model', 'OHEMHingeLoss', 'SSNLoss', 'ResNet3dCSN', 'ResNetTIN', + 'TPN', 'TPNHead', 'build_loss', 'build_neck', 'AudioRecognizer', + 'AudioTSNHead', 'X3D', 'X3DHead', 'ResNet3dLayer', 'DETECTORS', + 'SingleRoIExtractor3D', 'BBoxHeadAVA', 'ResNetAudio', 'build_detector', + 'ConvAudio', 'AVARoIHead', 'MobileNetV2', 'MobileNetV2TSM', 'TANet', 'LFB', + 'FBOHead', 'LFBInferHead', 'TRNHead', 'NECKS', 'TimeSformer', + 'TimeSformerHead', 'DividedSpatialAttentionWithNorm', + 'DividedTemporalAttentionWithNorm', 'FFNWithNorm', 'ACRNHead', 'BaseGCN', + 'SkeletonGCN', 'CBFocalLoss', 'SubBatchNorm3D' +] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/__init__.py new file mode 100644 index 00000000..0beb89dd --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/__init__.py @@ -0,0 +1,25 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .agcn import AGCN +from .c3d import C3D +from .mobilenet_v2 import MobileNetV2 +from .mobilenet_v2_tsm import MobileNetV2TSM +from .resnet import ResNet +from .resnet2plus1d import ResNet2Plus1d +from .resnet3d import ResNet3d, ResNet3dLayer +from .resnet3d_csn import ResNet3dCSN +from .resnet3d_slowfast import ResNet3dSlowFast +from .resnet3d_slowonly import ResNet3dSlowOnly +from .resnet_audio import ResNetAudio +from .resnet_tin import ResNetTIN +from .resnet_tsm import ResNetTSM +from .stgcn import STGCN +from .tanet import TANet +from .timesformer import TimeSformer +from .x3d import X3D + +__all__ = [ + 'C3D', 'ResNet', 'ResNet3d', 'ResNetTSM', 'ResNet2Plus1d', + 'ResNet3dSlowFast', 'ResNet3dSlowOnly', 'ResNet3dCSN', 'ResNetTIN', 'X3D', + 'ResNetAudio', 'ResNet3dLayer', 'MobileNetV2TSM', 'MobileNetV2', 'TANet', + 'TimeSformer', 'STGCN', 'AGCN' +] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/agcn.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/agcn.py new file mode 100644 index 00000000..b3932de9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/agcn.py @@ -0,0 +1,338 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import math + +import torch +import torch.nn as nn +from mmcv.cnn import constant_init, kaiming_init, normal_init +from mmcv.runner import load_checkpoint + +from ...utils import get_root_logger +from ..builder import BACKBONES +from ..skeleton_gcn.utils import Graph + + +def conv_branch_init(conv, branches): + weight = conv.weight + n = weight.size(0) + k1 = weight.size(1) + k2 = weight.size(2) + normal_init(weight, mean=0, std=math.sqrt(2. / (n * k1 * k2 * branches))) + constant_init(conv.bias, 0) + + +def conv_init(conv): + kaiming_init(conv.weight) + constant_init(conv.bias, 0) + + +def bn_init(bn, scale): + constant_init(bn.weight, scale) + constant_init(bn.bias, 0) + + +def zero(x): + """return zero.""" + return 0 + + +def identity(x): + """return input itself.""" + return x + + +class AGCNBlock(nn.Module): + """Applies spatial graph convolution and temporal convolution over an + input graph sequence. + + Args: + in_channels (int): Number of channels in the input sequence data + out_channels (int): Number of channels produced by the convolution + kernel_size (tuple): Size of the temporal convolving kernel and + graph convolving kernel + stride (int, optional): Stride of the temporal convolution. Default: 1 + adj_len (int, optional): The length of the adjacency matrix. + Default: 17 + dropout (int, optional): Dropout rate of the final output. Default: 0 + residual (bool, optional): If ``True``, applies a residual mechanism. + Default: ``True`` + + Shape: + - Input[0]: Input graph sequence in :math:`(N, in_channels, T_{in}, V)` + format + - Input[1]: Input graph adjacency matrix in :math:`(K, V, V)` format + - Output[0]: Outpu graph sequence in :math:`(N, out_channels, T_{out}, + V)` format + - Output[1]: Graph adjacency matrix for output data in :math:`(K, V, + V)` format + + where + :math:`N` is a batch size, + :math:`K` is the spatial kernel size, as :math:`K == kernel_size[1] + `, + :math:`T_{in}/T_{out}` is a length of input/output sequence, + :math:`V` is the number of graph nodes. + """ + + def __init__(self, + in_channels, + out_channels, + kernel_size, + stride=1, + adj_len=17, + dropout=0, + residual=True): + super().__init__() + + assert len(kernel_size) == 2 + assert kernel_size[0] % 2 == 1 + padding = ((kernel_size[0] - 1) // 2, 0) + + self.gcn = ConvTemporalGraphical( + in_channels, out_channels, kernel_size[1], adj_len=adj_len) + self.tcn = nn.Sequential( + nn.Conv2d(out_channels, out_channels, (kernel_size[0], 1), + (stride, 1), padding), nn.BatchNorm2d(out_channels), + nn.Dropout(dropout, inplace=True)) + + # tcn init + for m in self.tcn.modules(): + if isinstance(m, nn.Conv2d): + conv_init(m) + elif isinstance(m, nn.BatchNorm2d): + bn_init(m, 1) + + if not residual: + self.residual = zero + + elif (in_channels == out_channels) and (stride == 1): + self.residual = identity + + else: + self.residual = nn.Sequential( + nn.Conv2d( + in_channels, + out_channels, + kernel_size=1, + stride=(stride, 1)), nn.BatchNorm2d(out_channels)) + + self.relu = nn.ReLU(inplace=True) + + def forward(self, x, adj_mat): + """Defines the computation performed at every call.""" + res = self.residual(x) + x, adj_mat = self.gcn(x, adj_mat) + + x = self.tcn(x) + res + + return self.relu(x), adj_mat + + +class ConvTemporalGraphical(nn.Module): + """The basic module for applying a graph convolution. + + Args: + in_channels (int): Number of channels in the input sequence data + out_channels (int): Number of channels produced by the convolution + kernel_size (int): Size of the graph convolving kernel + t_kernel_size (int): Size of the temporal convolving kernel + t_stride (int, optional): Stride of the temporal convolution. + Default: 1 + t_padding (int, optional): Temporal zero-padding added to both sides + of the input. Default: 0 + t_dilation (int, optional): Spacing between temporal kernel elements. + Default: 1 + adj_len (int, optional): The length of the adjacency matrix. + Default: 17 + bias (bool, optional): If ``True``, adds a learnable bias to the + output. Default: ``True`` + + Shape: + - Input[0]: Input graph sequence in :math:`(N, in_channels, T_{in}, V)` + format + - Input[1]: Input graph adjacency matrix in :math:`(K, V, V)` format + - Output[0]: Output graph sequence in :math:`(N, out_channels, T_{out} + , V)` format + - Output[1]: Graph adjacency matrix for output data in :math:`(K, V, V) + ` format + + where + :math:`N` is a batch size, + :math:`K` is the spatial kernel size, as :math:`K == kernel_size[1] + `, + :math:`T_{in}/T_{out}` is a length of input/output sequence, + :math:`V` is the number of graph nodes. + """ + + def __init__(self, + in_channels, + out_channels, + kernel_size, + t_kernel_size=1, + t_stride=1, + t_padding=0, + t_dilation=1, + adj_len=17, + bias=True): + super().__init__() + + self.kernel_size = kernel_size + + self.PA = nn.Parameter(torch.FloatTensor(3, adj_len, adj_len)) + torch.nn.init.constant_(self.PA, 1e-6) + + self.num_subset = 3 + inter_channels = out_channels // 4 + self.inter_c = inter_channels + self.conv_a = nn.ModuleList() + self.conv_b = nn.ModuleList() + self.conv_d = nn.ModuleList() + for i in range(self.num_subset): + self.conv_a.append(nn.Conv2d(in_channels, inter_channels, 1)) + self.conv_b.append(nn.Conv2d(in_channels, inter_channels, 1)) + self.conv_d.append(nn.Conv2d(in_channels, out_channels, 1)) + + if in_channels != out_channels: + self.down = nn.Sequential( + nn.Conv2d(in_channels, out_channels, 1), + nn.BatchNorm2d(out_channels)) + else: + self.down = lambda x: x + + self.bn = nn.BatchNorm2d(out_channels) + self.soft = nn.Softmax(-2) + self.relu = nn.ReLU() + + for m in self.modules(): + if isinstance(m, nn.Conv2d): + conv_init(m) + elif isinstance(m, nn.BatchNorm2d): + bn_init(m, 1) + bn_init(self.bn, 1e-6) + for i in range(self.num_subset): + conv_branch_init(self.conv_d[i], self.num_subset) + + def forward(self, x, adj_mat): + """Defines the computation performed at every call.""" + assert adj_mat.size(0) == self.kernel_size + + N, C, T, V = x.size() + A = adj_mat + self.PA + + y = None + for i in range(self.num_subset): + A1 = self.conv_a[i](x).permute(0, 3, 1, 2).contiguous().view( + N, V, self.inter_c * T) + A2 = self.conv_b[i](x).view(N, self.inter_c * T, V) + A1 = self.soft(torch.matmul(A1, A2) / A1.size(-1)) # N V V + A1 = A1 + A[i] + A2 = x.view(N, C * T, V) + z = self.conv_d[i](torch.matmul(A2, A1).view(N, C, T, V)) + y = z + y if y is not None else z + y = self.bn(y) + y += self.down(x) + + return self.relu(y), adj_mat + + +@BACKBONES.register_module() +class AGCN(nn.Module): + """Backbone of Two-Stream Adaptive Graph Convolutional Networks for + Skeleton-Based Action Recognition. + + Args: + in_channels (int): Number of channels in the input data. + graph_cfg (dict): The arguments for building the graph. + data_bn (bool): If 'True', adds data normalization to the inputs. + Default: True. + pretrained (str | None): Name of pretrained model. + **kwargs (optional): Other parameters for graph convolution units. + + Shape: + - Input: :math:`(N, in_channels, T_{in}, V_{in}, M_{in})` + - Output: :math:`(N, num_class)` where + :math:`N` is a batch size, + :math:`T_{in}` is a length of input sequence, + :math:`V_{in}` is the number of graph nodes, + :math:`M_{in}` is the number of instance in a frame. + """ + + def __init__(self, + in_channels, + graph_cfg, + data_bn=True, + pretrained=None, + **kwargs): + super().__init__() + + # load graph + self.graph = Graph(**graph_cfg) + A = torch.tensor( + self.graph.A, dtype=torch.float32, requires_grad=False) + self.register_buffer('A', A) + + # build networks + spatial_kernel_size = A.size(0) + temporal_kernel_size = 9 + kernel_size = (temporal_kernel_size, spatial_kernel_size) + self.data_bn = nn.BatchNorm1d(in_channels * + A.size(1)) if data_bn else identity + + kwargs0 = {k: v for k, v in kwargs.items() if k != 'dropout'} + self.agcn_networks = nn.ModuleList(( + AGCNBlock( + in_channels, + 64, + kernel_size, + 1, + adj_len=A.size(1), + residual=False, + **kwargs0), + AGCNBlock(64, 64, kernel_size, 1, adj_len=A.size(1), **kwargs), + AGCNBlock(64, 64, kernel_size, 1, adj_len=A.size(1), **kwargs), + AGCNBlock(64, 64, kernel_size, 1, adj_len=A.size(1), **kwargs), + AGCNBlock(64, 128, kernel_size, 2, adj_len=A.size(1), **kwargs), + AGCNBlock(128, 128, kernel_size, 1, adj_len=A.size(1), **kwargs), + AGCNBlock(128, 128, kernel_size, 1, adj_len=A.size(1), **kwargs), + AGCNBlock(128, 256, kernel_size, 2, adj_len=A.size(1), **kwargs), + AGCNBlock(256, 256, kernel_size, 1, adj_len=A.size(1), **kwargs), + AGCNBlock(256, 256, kernel_size, 1, adj_len=A.size(1), **kwargs), + )) + + self.pretrained = pretrained + + def init_weights(self): + """Initiate the parameters either from existing checkpoint or from + scratch.""" + if isinstance(self.pretrained, str): + logger = get_root_logger() + logger.info(f'load model from: {self.pretrained}') + + load_checkpoint(self, self.pretrained, strict=False, logger=logger) + + elif self.pretrained is None: + pass + else: + raise TypeError('pretrained must be a str or None') + + def forward(self, x): + """Defines the computation performed at every call. + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The output of the module. + """ + # data normalization + x = x.float() + n, c, t, v, m = x.size() + x = x.permute(0, 4, 3, 1, 2).contiguous() # N M V C T + x = x.view(n * m, v * c, t) + x = self.data_bn(x) + x = x.view(n, m, v, c, t) + x = x.permute(0, 1, 3, 4, 2).contiguous() + x = x.view(n * m, c, t, v) + + for gcn in self.agcn_networks: + x, _ = gcn(x, self.A) + + return x diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/c3d.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/c3d.py new file mode 100644 index 00000000..ad5d4aa6 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/c3d.py @@ -0,0 +1,143 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch.nn as nn +from mmcv.cnn import ConvModule, constant_init, kaiming_init, normal_init +from mmcv.runner import load_checkpoint +from mmcv.utils import _BatchNorm + +from ...utils import get_root_logger +from ..builder import BACKBONES + + +@BACKBONES.register_module() +class C3D(nn.Module): + """C3D backbone. + + Args: + pretrained (str | None): Name of pretrained model. + style (str): ``pytorch`` or ``caffe``. If set to "pytorch", the + stride-two layer is the 3x3 conv layer, otherwise the stride-two + layer is the first 1x1 conv layer. Default: 'pytorch'. + conv_cfg (dict | None): Config dict for convolution layer. + If set to None, it uses ``dict(type='Conv3d')`` to construct + layers. Default: None. + norm_cfg (dict | None): Config for norm layers. required keys are + ``type``, Default: None. + act_cfg (dict | None): Config dict for activation layer. If set to + None, it uses ``dict(type='ReLU')`` to construct layers. + Default: None. + out_dim (int): The dimension of last layer feature (after flatten). + Depends on the input shape. Default: 8192. + dropout_ratio (float): Probability of dropout layer. Default: 0.5. + init_std (float): Std value for Initiation of fc layers. Default: 0.01. + """ + + def __init__(self, + pretrained=None, + style='pytorch', + conv_cfg=None, + norm_cfg=None, + act_cfg=None, + out_dim=8192, + dropout_ratio=0.5, + init_std=0.005): + super().__init__() + if conv_cfg is None: + conv_cfg = dict(type='Conv3d') + if act_cfg is None: + act_cfg = dict(type='ReLU') + self.pretrained = pretrained + self.style = style + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + self.dropout_ratio = dropout_ratio + self.init_std = init_std + + c3d_conv_param = dict( + kernel_size=(3, 3, 3), + padding=(1, 1, 1), + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + self.conv1a = ConvModule(3, 64, **c3d_conv_param) + self.pool1 = nn.MaxPool3d(kernel_size=(1, 2, 2), stride=(1, 2, 2)) + + self.conv2a = ConvModule(64, 128, **c3d_conv_param) + self.pool2 = nn.MaxPool3d(kernel_size=(2, 2, 2), stride=(2, 2, 2)) + + self.conv3a = ConvModule(128, 256, **c3d_conv_param) + self.conv3b = ConvModule(256, 256, **c3d_conv_param) + self.pool3 = nn.MaxPool3d(kernel_size=(2, 2, 2), stride=(2, 2, 2)) + + self.conv4a = ConvModule(256, 512, **c3d_conv_param) + self.conv4b = ConvModule(512, 512, **c3d_conv_param) + self.pool4 = nn.MaxPool3d(kernel_size=(2, 2, 2), stride=(2, 2, 2)) + + self.conv5a = ConvModule(512, 512, **c3d_conv_param) + self.conv5b = ConvModule(512, 512, **c3d_conv_param) + self.pool5 = nn.MaxPool3d( + kernel_size=(2, 2, 2), stride=(2, 2, 2), padding=(0, 1, 1)) + + self.fc6 = nn.Linear(out_dim, 4096) + self.fc7 = nn.Linear(4096, 4096) + + self.relu = nn.ReLU() + self.dropout = nn.Dropout(p=self.dropout_ratio) + + def init_weights(self): + """Initiate the parameters either from existing checkpoint or from + scratch.""" + if isinstance(self.pretrained, str): + logger = get_root_logger() + logger.info(f'load model from: {self.pretrained}') + + load_checkpoint(self, self.pretrained, strict=False, logger=logger) + + elif self.pretrained is None: + for m in self.modules(): + if isinstance(m, nn.Conv3d): + kaiming_init(m) + elif isinstance(m, nn.Linear): + normal_init(m, std=self.init_std) + elif isinstance(m, _BatchNorm): + constant_init(m, 1) + + else: + raise TypeError('pretrained must be a str or None') + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + the size of x is (num_batches, 3, 16, 112, 112). + + Returns: + torch.Tensor: The feature of the input + samples extracted by the backbone. + """ + x = self.conv1a(x) + x = self.pool1(x) + + x = self.conv2a(x) + x = self.pool2(x) + + x = self.conv3a(x) + x = self.conv3b(x) + x = self.pool3(x) + + x = self.conv4a(x) + x = self.conv4b(x) + x = self.pool4(x) + + x = self.conv5a(x) + x = self.conv5b(x) + x = self.pool5(x) + + x = x.flatten(start_dim=1) + x = self.relu(self.fc6(x)) + x = self.dropout(x) + x = self.relu(self.fc7(x)) + + return x diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/mobilenet_v2.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/mobilenet_v2.py new file mode 100644 index 00000000..b0047b81 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/mobilenet_v2.py @@ -0,0 +1,301 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch.nn as nn +import torch.utils.checkpoint as cp +from mmcv.cnn import ConvModule, constant_init, kaiming_init +from mmcv.runner import load_checkpoint +from torch.nn.modules.batchnorm import _BatchNorm + +from ...utils import get_root_logger +from ..builder import BACKBONES + + +def make_divisible(value, divisor, min_value=None, min_ratio=0.9): + """Make divisible function. + + This function rounds the channel number down to the nearest value that can + be divisible by the divisor. + Args: + value (int): The original channel number. + divisor (int): The divisor to fully divide the channel number. + min_value (int, optional): The minimum value of the output channel. + Default: None, means that the minimum value equal to the divisor. + min_ratio (float, optional): The minimum ratio of the rounded channel + number to the original channel number. Default: 0.9. + Returns: + int: The modified output channel number + """ + + if min_value is None: + min_value = divisor + new_value = max(min_value, int(value + divisor / 2) // divisor * divisor) + # Make sure that round down does not go down by more than (1-min_ratio). + if new_value < min_ratio * value: + new_value += divisor + return new_value + + +class InvertedResidual(nn.Module): + """InvertedResidual block for MobileNetV2. + + Args: + in_channels (int): The input channels of the InvertedResidual block. + out_channels (int): The output channels of the InvertedResidual block. + stride (int): Stride of the middle (first) 3x3 convolution. + expand_ratio (int): adjusts number of channels of the hidden layer + in InvertedResidual by this amount. + conv_cfg (dict): Config dict for convolution layer. + Default: None, which means using conv2d. + norm_cfg (dict): Config dict for normalization layer. + Default: dict(type='BN'). + act_cfg (dict): Config dict for activation layer. + Default: dict(type='ReLU6'). + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + Returns: + Tensor: The output tensor + """ + + def __init__(self, + in_channels, + out_channels, + stride, + expand_ratio, + conv_cfg=None, + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU6'), + with_cp=False): + super(InvertedResidual, self).__init__() + self.stride = stride + assert stride in [1, 2], f'stride must in [1, 2]. ' \ + f'But received {stride}.' + self.with_cp = with_cp + self.use_res_connect = self.stride == 1 and in_channels == out_channels + hidden_dim = int(round(in_channels * expand_ratio)) + + layers = [] + if expand_ratio != 1: + layers.append( + ConvModule( + in_channels=in_channels, + out_channels=hidden_dim, + kernel_size=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg)) + layers.extend([ + ConvModule( + in_channels=hidden_dim, + out_channels=hidden_dim, + kernel_size=3, + stride=stride, + padding=1, + groups=hidden_dim, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg), + ConvModule( + in_channels=hidden_dim, + out_channels=out_channels, + kernel_size=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None) + ]) + self.conv = nn.Sequential(*layers) + + def forward(self, x): + + def _inner_forward(x): + if self.use_res_connect: + return x + self.conv(x) + + return self.conv(x) + + if self.with_cp and x.requires_grad: + out = cp.checkpoint(_inner_forward, x) + else: + out = _inner_forward(x) + + return out + + +@BACKBONES.register_module() +class MobileNetV2(nn.Module): + """MobileNetV2 backbone. + + Args: + pretrained (str | None): Name of pretrained model. Default: None. + widen_factor (float): Width multiplier, multiply number of + channels in each layer by this amount. Default: 1.0. + out_indices (None or Sequence[int]): Output from which stages. + Default: (7, ). + frozen_stages (int): Stages to be frozen (all param fixed). Note that + the last stage in ``MobileNetV2`` is ``conv2``. Default: -1, + which means not freezing any parameters. + conv_cfg (dict): Config dict for convolution layer. + Default: None, which means using conv2d. + norm_cfg (dict): Config dict for normalization layer. + Default: dict(type='BN'). + act_cfg (dict): Config dict for activation layer. + Default: dict(type='ReLU6'). + norm_eval (bool): Whether to set norm layers to eval mode, namely, + freeze running stats (mean and var). Note: Effect on Batch Norm + and its variants only. Default: False. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + """ + + # Parameters to build layers. 4 parameters are needed to construct a + # layer, from left to right: expand_ratio, channel, num_blocks, stride. + arch_settings = [[1, 16, 1, 1], [6, 24, 2, 2], [6, 32, 3, 2], + [6, 64, 4, 2], [6, 96, 3, 1], [6, 160, 3, 2], + [6, 320, 1, 1]] + + def __init__(self, + pretrained=None, + widen_factor=1., + out_indices=(7, ), + frozen_stages=-1, + conv_cfg=dict(type='Conv'), + norm_cfg=dict(type='BN2d', requires_grad=True), + act_cfg=dict(type='ReLU6', inplace=True), + norm_eval=False, + with_cp=False): + super().__init__() + self.pretrained = pretrained + self.widen_factor = widen_factor + self.out_indices = out_indices + for index in out_indices: + if index not in range(0, 8): + raise ValueError('the item in out_indices must in ' + f'range(0, 8). But received {index}') + + if frozen_stages not in range(-1, 9): + raise ValueError('frozen_stages must be in range(-1, 9). ' + f'But received {frozen_stages}') + self.out_indices = out_indices + self.frozen_stages = frozen_stages + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + self.norm_eval = norm_eval + self.with_cp = with_cp + + self.in_channels = make_divisible(32 * widen_factor, 8) + + self.conv1 = ConvModule( + in_channels=3, + out_channels=self.in_channels, + kernel_size=3, + stride=2, + padding=1, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + self.layers = [] + + for i, layer_cfg in enumerate(self.arch_settings): + expand_ratio, channel, num_blocks, stride = layer_cfg + out_channels = make_divisible(channel * widen_factor, 8) + inverted_res_layer = self.make_layer( + out_channels=out_channels, + num_blocks=num_blocks, + stride=stride, + expand_ratio=expand_ratio) + layer_name = f'layer{i + 1}' + self.add_module(layer_name, inverted_res_layer) + self.layers.append(layer_name) + + if widen_factor > 1.0: + self.out_channel = int(1280 * widen_factor) + else: + self.out_channel = 1280 + + layer = ConvModule( + in_channels=self.in_channels, + out_channels=self.out_channel, + kernel_size=1, + stride=1, + padding=0, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + self.add_module('conv2', layer) + self.layers.append('conv2') + + def make_layer(self, out_channels, num_blocks, stride, expand_ratio): + """Stack InvertedResidual blocks to build a layer for MobileNetV2. + + Args: + out_channels (int): out_channels of block. + num_blocks (int): number of blocks. + stride (int): stride of the first block. Default: 1 + expand_ratio (int): Expand the number of channels of the + hidden layer in InvertedResidual by this ratio. Default: 6. + """ + layers = [] + for i in range(num_blocks): + if i >= 1: + stride = 1 + layers.append( + InvertedResidual( + self.in_channels, + out_channels, + stride, + expand_ratio=expand_ratio, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg, + with_cp=self.with_cp)) + self.in_channels = out_channels + + return nn.Sequential(*layers) + + def init_weights(self): + if isinstance(self.pretrained, str): + logger = get_root_logger() + load_checkpoint(self, self.pretrained, strict=False, logger=logger) + elif self.pretrained is None: + for m in self.modules(): + if isinstance(m, nn.Conv2d): + kaiming_init(m) + elif isinstance(m, (_BatchNorm, nn.GroupNorm)): + constant_init(m, 1) + else: + raise TypeError('pretrained must be a str or None') + + def forward(self, x): + x = self.conv1(x) + + outs = [] + for i, layer_name in enumerate(self.layers): + layer = getattr(self, layer_name) + x = layer(x) + if i in self.out_indices: + outs.append(x) + + if len(outs) == 1: + return outs[0] + + return tuple(outs) + + def _freeze_stages(self): + if self.frozen_stages >= 0: + self.conv1.eval() + for param in self.conv1.parameters(): + param.requires_grad = False + for i in range(1, self.frozen_stages + 1): + layer_name = self.layers[i - 1] + layer = getattr(self, layer_name) + layer.eval() + for param in layer.parameters(): + param.requires_grad = False + + def train(self, mode=True): + super(MobileNetV2, self).train(mode) + self._freeze_stages() + if mode and self.norm_eval: + for m in self.modules(): + if isinstance(m, _BatchNorm): + m.eval() diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/mobilenet_v2_tsm.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/mobilenet_v2_tsm.py new file mode 100644 index 00000000..a7050e55 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/mobilenet_v2_tsm.py @@ -0,0 +1,41 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from ..builder import BACKBONES +from .mobilenet_v2 import InvertedResidual, MobileNetV2 +from .resnet_tsm import TemporalShift + + +@BACKBONES.register_module() +class MobileNetV2TSM(MobileNetV2): + """MobileNetV2 backbone for TSM. + + Args: + num_segments (int): Number of frame segments. Default: 8. + is_shift (bool): Whether to make temporal shift in reset layers. + Default: True. + shift_div (int): Number of div for shift. Default: 8. + **kwargs (keyword arguments, optional): Arguments for MobilNetV2. + """ + + def __init__(self, num_segments=8, is_shift=True, shift_div=8, **kwargs): + super().__init__(**kwargs) + self.num_segments = num_segments + self.is_shift = is_shift + self.shift_div = shift_div + + def make_temporal_shift(self): + """Make temporal shift for some layers.""" + for m in self.modules(): + if isinstance(m, InvertedResidual) and \ + len(m.conv) == 3 and m.use_res_connect: + m.conv[0] = TemporalShift( + m.conv[0], + num_segments=self.num_segments, + shift_div=self.shift_div, + ) + + def init_weights(self): + """Initiate the parameters either from existing checkpoint or from + scratch.""" + super().init_weights() + if self.is_shift: + self.make_temporal_shift() diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet.py new file mode 100644 index 00000000..d8f697a0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet.py @@ -0,0 +1,591 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch.nn as nn +from mmcv.cnn import ConvModule, constant_init, kaiming_init +from mmcv.runner import _load_checkpoint, load_checkpoint +from mmcv.utils import _BatchNorm +from torch.utils import checkpoint as cp + +from ...utils import get_root_logger +from ..builder import BACKBONES + + +class BasicBlock(nn.Module): + """Basic block for ResNet. + + Args: + inplanes (int): Number of channels for the input in first conv2d layer. + planes (int): Number of channels produced by some norm/conv2d layers. + stride (int): Stride in the conv layer. Default: 1. + dilation (int): Spacing between kernel elements. Default: 1. + downsample (nn.Module | None): Downsample layer. Default: None. + style (str): `pytorch` or `caffe`. If set to "pytorch", the stride-two + layer is the 3x3 conv layer, otherwise the stride-two layer is + the first 1x1 conv layer. Default: 'pytorch'. + conv_cfg (dict): Config for norm layers. Default: dict(type='Conv'). + norm_cfg (dict): + Config for norm layers. required keys are `type` and + `requires_grad`. Default: dict(type='BN2d', requires_grad=True). + act_cfg (dict): Config for activate layers. + Default: dict(type='ReLU', inplace=True). + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + """ + expansion = 1 + + def __init__(self, + inplanes, + planes, + stride=1, + dilation=1, + downsample=None, + style='pytorch', + conv_cfg=dict(type='Conv'), + norm_cfg=dict(type='BN', requires_grad=True), + act_cfg=dict(type='ReLU', inplace=True), + with_cp=False): + super().__init__() + assert style in ['pytorch', 'caffe'] + self.conv1 = ConvModule( + inplanes, + planes, + kernel_size=3, + stride=stride, + padding=dilation, + dilation=dilation, + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + + self.conv2 = ConvModule( + planes, + planes, + kernel_size=3, + stride=1, + padding=1, + dilation=1, + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None) + + self.relu = nn.ReLU(inplace=True) + self.downsample = downsample + self.style = style + self.stride = stride + self.dilation = dilation + self.norm_cfg = norm_cfg + assert not with_cp + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The output of the module. + """ + identity = x + + out = self.conv1(x) + out = self.conv2(out) + + if self.downsample is not None: + identity = self.downsample(x) + + out = out + identity + out = self.relu(out) + + return out + + +class Bottleneck(nn.Module): + """Bottleneck block for ResNet. + + Args: + inplanes (int): + Number of channels for the input feature in first conv layer. + planes (int): + Number of channels produced by some norm layes and conv layers + stride (int): Spatial stride in the conv layer. Default: 1. + dilation (int): Spacing between kernel elements. Default: 1. + downsample (nn.Module | None): Downsample layer. Default: None. + style (str): `pytorch` or `caffe`. If set to "pytorch", the stride-two + layer is the 3x3 conv layer, otherwise the stride-two layer is + the first 1x1 conv layer. Default: 'pytorch'. + conv_cfg (dict): Config for norm layers. Default: dict(type='Conv'). + norm_cfg (dict): + Config for norm layers. required keys are `type` and + `requires_grad`. Default: dict(type='BN2d', requires_grad=True). + act_cfg (dict): Config for activate layers. + Default: dict(type='ReLU', inplace=True). + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + """ + + expansion = 4 + + def __init__(self, + inplanes, + planes, + stride=1, + dilation=1, + downsample=None, + style='pytorch', + conv_cfg=dict(type='Conv'), + norm_cfg=dict(type='BN', requires_grad=True), + act_cfg=dict(type='ReLU', inplace=True), + with_cp=False): + super().__init__() + assert style in ['pytorch', 'caffe'] + self.inplanes = inplanes + self.planes = planes + if style == 'pytorch': + self.conv1_stride = 1 + self.conv2_stride = stride + else: + self.conv1_stride = stride + self.conv2_stride = 1 + self.conv1 = ConvModule( + inplanes, + planes, + kernel_size=1, + stride=self.conv1_stride, + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + self.conv2 = ConvModule( + planes, + planes, + kernel_size=3, + stride=self.conv2_stride, + padding=dilation, + dilation=dilation, + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + + self.conv3 = ConvModule( + planes, + planes * self.expansion, + kernel_size=1, + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None) + + self.relu = nn.ReLU(inplace=True) + self.downsample = downsample + self.stride = stride + self.dilation = dilation + self.norm_cfg = norm_cfg + self.with_cp = with_cp + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The output of the module. + """ + + def _inner_forward(x): + """Forward wrapper for utilizing checkpoint.""" + identity = x + + out = self.conv1(x) + out = self.conv2(out) + out = self.conv3(out) + + if self.downsample is not None: + identity = self.downsample(x) + + out = out + identity + + return out + + if self.with_cp and x.requires_grad: + out = cp.checkpoint(_inner_forward, x) + else: + out = _inner_forward(x) + + out = self.relu(out) + + return out + + +def make_res_layer(block, + inplanes, + planes, + blocks, + stride=1, + dilation=1, + style='pytorch', + conv_cfg=None, + norm_cfg=None, + act_cfg=None, + with_cp=False): + """Build residual layer for ResNet. + + Args: + block: (nn.Module): Residual module to be built. + inplanes (int): Number of channels for the input feature in each block. + planes (int): Number of channels for the output feature in each block. + blocks (int): Number of residual blocks. + stride (int): Stride in the conv layer. Default: 1. + dilation (int): Spacing between kernel elements. Default: 1. + style (str): `pytorch` or `caffe`. If set to "pytorch", the stride-two + layer is the 3x3 conv layer, otherwise the stride-two layer is + the first 1x1 conv layer. Default: 'pytorch'. + conv_cfg (dict | None): Config for norm layers. Default: None. + norm_cfg (dict | None): Config for norm layers. Default: None. + act_cfg (dict | None): Config for activate layers. Default: None. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + + Returns: + nn.Module: A residual layer for the given config. + """ + downsample = None + if stride != 1 or inplanes != planes * block.expansion: + downsample = ConvModule( + inplanes, + planes * block.expansion, + kernel_size=1, + stride=stride, + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None) + + layers = [] + layers.append( + block( + inplanes, + planes, + stride, + dilation, + downsample, + style=style, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg, + with_cp=with_cp)) + inplanes = planes * block.expansion + for _ in range(1, blocks): + layers.append( + block( + inplanes, + planes, + 1, + dilation, + style=style, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg, + with_cp=with_cp)) + + return nn.Sequential(*layers) + + +@BACKBONES.register_module() +class ResNet(nn.Module): + """ResNet backbone. + + Args: + depth (int): Depth of resnet, from {18, 34, 50, 101, 152}. + pretrained (str | None): Name of pretrained model. Default: None. + in_channels (int): Channel num of input features. Default: 3. + num_stages (int): Resnet stages. Default: 4. + strides (Sequence[int]): Strides of the first block of each stage. + out_indices (Sequence[int]): Indices of output feature. Default: (3, ). + dilations (Sequence[int]): Dilation of each stage. + style (str): ``pytorch`` or ``caffe``. If set to "pytorch", the + stride-two layer is the 3x3 conv layer, otherwise the stride-two + layer is the first 1x1 conv layer. Default: ``pytorch``. + frozen_stages (int): Stages to be frozen (all param fixed). -1 means + not freezing any parameters. Default: -1. + conv_cfg (dict): Config for norm layers. Default: dict(type='Conv'). + norm_cfg (dict): + Config for norm layers. required keys are `type` and + `requires_grad`. Default: dict(type='BN2d', requires_grad=True). + act_cfg (dict): Config for activate layers. + Default: dict(type='ReLU', inplace=True). + norm_eval (bool): Whether to set BN layers to eval mode, namely, freeze + running stats (mean and var). Default: False. + partial_bn (bool): Whether to use partial bn. Default: False. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + """ + + arch_settings = { + 18: (BasicBlock, (2, 2, 2, 2)), + 34: (BasicBlock, (3, 4, 6, 3)), + 50: (Bottleneck, (3, 4, 6, 3)), + 101: (Bottleneck, (3, 4, 23, 3)), + 152: (Bottleneck, (3, 8, 36, 3)) + } + + def __init__(self, + depth, + pretrained=None, + torchvision_pretrain=True, + in_channels=3, + num_stages=4, + out_indices=(3, ), + strides=(1, 2, 2, 2), + dilations=(1, 1, 1, 1), + style='pytorch', + frozen_stages=-1, + conv_cfg=dict(type='Conv'), + norm_cfg=dict(type='BN2d', requires_grad=True), + act_cfg=dict(type='ReLU', inplace=True), + norm_eval=False, + partial_bn=False, + with_cp=False): + super().__init__() + if depth not in self.arch_settings: + raise KeyError(f'invalid depth {depth} for resnet') + self.depth = depth + self.in_channels = in_channels + self.pretrained = pretrained + self.torchvision_pretrain = torchvision_pretrain + self.num_stages = num_stages + assert 1 <= num_stages <= 4 + self.out_indices = out_indices + assert max(out_indices) < num_stages + self.strides = strides + self.dilations = dilations + assert len(strides) == len(dilations) == num_stages + self.style = style + self.frozen_stages = frozen_stages + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + self.norm_eval = norm_eval + self.partial_bn = partial_bn + self.with_cp = with_cp + + self.block, stage_blocks = self.arch_settings[depth] + self.stage_blocks = stage_blocks[:num_stages] + self.inplanes = 64 + + self._make_stem_layer() + + self.res_layers = [] + for i, num_blocks in enumerate(self.stage_blocks): + stride = strides[i] + dilation = dilations[i] + planes = 64 * 2**i + res_layer = make_res_layer( + self.block, + self.inplanes, + planes, + num_blocks, + stride=stride, + dilation=dilation, + style=self.style, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg, + with_cp=with_cp) + self.inplanes = planes * self.block.expansion + layer_name = f'layer{i + 1}' + self.add_module(layer_name, res_layer) + self.res_layers.append(layer_name) + + self.feat_dim = self.block.expansion * 64 * 2**( + len(self.stage_blocks) - 1) + + def _make_stem_layer(self): + """Construct the stem layers consists of a conv+norm+act module and a + pooling layer.""" + self.conv1 = ConvModule( + self.in_channels, + 64, + kernel_size=7, + stride=2, + padding=3, + bias=False, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + self.maxpool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1) + + @staticmethod + def _load_conv_params(conv, state_dict_tv, module_name_tv, + loaded_param_names): + """Load the conv parameters of resnet from torchvision. + + Args: + conv (nn.Module): The destination conv module. + state_dict_tv (OrderedDict): The state dict of pretrained + torchvision model. + module_name_tv (str): The name of corresponding conv module in the + torchvision model. + loaded_param_names (list[str]): List of parameters that have been + loaded. + """ + + weight_tv_name = module_name_tv + '.weight' + if conv.weight.data.shape == state_dict_tv[weight_tv_name].shape: + conv.weight.data.copy_(state_dict_tv[weight_tv_name]) + loaded_param_names.append(weight_tv_name) + + if getattr(conv, 'bias') is not None: + bias_tv_name = module_name_tv + '.bias' + if conv.bias.data.shape == state_dict_tv[bias_tv_name].shape: + conv.bias.data.copy_(state_dict_tv[bias_tv_name]) + loaded_param_names.append(bias_tv_name) + + @staticmethod + def _load_bn_params(bn, state_dict_tv, module_name_tv, loaded_param_names): + """Load the bn parameters of resnet from torchvision. + + Args: + bn (nn.Module): The destination bn module. + state_dict_tv (OrderedDict): The state dict of pretrained + torchvision model. + module_name_tv (str): The name of corresponding bn module in the + torchvision model. + loaded_param_names (list[str]): List of parameters that have been + loaded. + """ + + for param_name, param in bn.named_parameters(): + param_tv_name = f'{module_name_tv}.{param_name}' + param_tv = state_dict_tv[param_tv_name] + if param.data.shape == param_tv.shape: + param.data.copy_(param_tv) + loaded_param_names.append(param_tv_name) + + for param_name, param in bn.named_buffers(): + param_tv_name = f'{module_name_tv}.{param_name}' + # some buffers like num_batches_tracked may not exist + if param_tv_name in state_dict_tv: + param_tv = state_dict_tv[param_tv_name] + if param.data.shape == param_tv.shape: + param.data.copy_(param_tv) + loaded_param_names.append(param_tv_name) + + def _load_torchvision_checkpoint(self, logger=None): + """Initiate the parameters from torchvision pretrained checkpoint.""" + state_dict_torchvision = _load_checkpoint(self.pretrained) + if 'state_dict' in state_dict_torchvision: + state_dict_torchvision = state_dict_torchvision['state_dict'] + + loaded_param_names = [] + for name, module in self.named_modules(): + if isinstance(module, ConvModule): + # we use a ConvModule to wrap conv+bn+relu layers, thus the + # name mapping is needed + if 'downsample' in name: + # layer{X}.{Y}.downsample.conv->layer{X}.{Y}.downsample.0 + original_conv_name = name + '.0' + # layer{X}.{Y}.downsample.bn->layer{X}.{Y}.downsample.1 + original_bn_name = name + '.1' + else: + # layer{X}.{Y}.conv{n}.conv->layer{X}.{Y}.conv{n} + original_conv_name = name + # layer{X}.{Y}.conv{n}.bn->layer{X}.{Y}.bn{n} + original_bn_name = name.replace('conv', 'bn') + self._load_conv_params(module.conv, state_dict_torchvision, + original_conv_name, loaded_param_names) + self._load_bn_params(module.bn, state_dict_torchvision, + original_bn_name, loaded_param_names) + + # check if any parameters in the 2d checkpoint are not loaded + remaining_names = set( + state_dict_torchvision.keys()) - set(loaded_param_names) + if remaining_names: + logger.info( + f'These parameters in pretrained checkpoint are not loaded' + f': {remaining_names}') + + def init_weights(self): + """Initiate the parameters either from existing checkpoint or from + scratch.""" + if isinstance(self.pretrained, str): + logger = get_root_logger() + if self.torchvision_pretrain: + # torchvision's + self._load_torchvision_checkpoint(logger) + else: + # ours + load_checkpoint( + self, self.pretrained, strict=False, logger=logger) + elif self.pretrained is None: + for m in self.modules(): + if isinstance(m, nn.Conv2d): + kaiming_init(m) + elif isinstance(m, nn.BatchNorm2d): + constant_init(m, 1) + else: + raise TypeError('pretrained must be a str or None') + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The feature of the input samples extracted + by the backbone. + """ + x = self.conv1(x) + x = self.maxpool(x) + outs = [] + for i, layer_name in enumerate(self.res_layers): + res_layer = getattr(self, layer_name) + x = res_layer(x) + if i in self.out_indices: + outs.append(x) + if len(outs) == 1: + return outs[0] + + return tuple(outs) + + def _freeze_stages(self): + """Prevent all the parameters from being optimized before + ``self.frozen_stages``.""" + if self.frozen_stages >= 0: + self.conv1.bn.eval() + for m in self.conv1.modules(): + for param in m.parameters(): + param.requires_grad = False + + for i in range(1, self.frozen_stages + 1): + m = getattr(self, f'layer{i}') + m.eval() + for param in m.parameters(): + param.requires_grad = False + + def _partial_bn(self): + logger = get_root_logger() + logger.info('Freezing BatchNorm2D except the first one.') + count_bn = 0 + for m in self.modules(): + if isinstance(m, nn.BatchNorm2d): + count_bn += 1 + if count_bn >= 2: + m.eval() + # shutdown update in frozen mode + m.weight.requires_grad = False + m.bias.requires_grad = False + + def train(self, mode=True): + """Set the optimization status when training.""" + super().train(mode) + self._freeze_stages() + if mode and self.norm_eval: + for m in self.modules(): + if isinstance(m, _BatchNorm): + m.eval() + if mode and self.partial_bn: + self._partial_bn() diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet2plus1d.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet2plus1d.py new file mode 100644 index 00000000..1055343b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet2plus1d.py @@ -0,0 +1,50 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from ..builder import BACKBONES +from .resnet3d import ResNet3d + + +@BACKBONES.register_module() +class ResNet2Plus1d(ResNet3d): + """ResNet (2+1)d backbone. + + This model is proposed in `A Closer Look at Spatiotemporal Convolutions for + Action Recognition `_ + """ + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + assert self.pretrained2d is False + assert self.conv_cfg['type'] == 'Conv2plus1d' + + def _freeze_stages(self): + """Prevent all the parameters from being optimized before + ``self.frozen_stages``.""" + if self.frozen_stages >= 0: + self.conv1.eval() + for param in self.conv1.parameters(): + param.requires_grad = False + + for i in range(1, self.frozen_stages + 1): + m = getattr(self, f'layer{i}') + m.eval() + for param in m.parameters(): + param.requires_grad = False + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The feature of the input + samples extracted by the backbone. + """ + x = self.conv1(x) + x = self.maxpool(x) + for layer_name in self.res_layers: + res_layer = getattr(self, layer_name) + # no pool2 in R(2+1)d + x = res_layer(x) + + return x diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet3d.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet3d.py new file mode 100644 index 00000000..f4ab71f9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet3d.py @@ -0,0 +1,1034 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import warnings + +import torch.nn as nn +import torch.utils.checkpoint as cp +from mmcv.cnn import (ConvModule, NonLocal3d, build_activation_layer, + constant_init, kaiming_init) +from mmcv.runner import _load_checkpoint, load_checkpoint +from mmcv.utils import _BatchNorm +from torch.nn.modules.utils import _ntuple, _triple + +from ...utils import get_root_logger +from ..builder import BACKBONES + +try: + from mmdet.models import BACKBONES as MMDET_BACKBONES + from mmdet.models.builder import SHARED_HEADS as MMDET_SHARED_HEADS + mmdet_imported = True +except (ImportError, ModuleNotFoundError): + mmdet_imported = False + + +class BasicBlock3d(nn.Module): + """BasicBlock 3d block for ResNet3D. + + Args: + inplanes (int): Number of channels for the input in first conv3d layer. + planes (int): Number of channels produced by some norm/conv3d layers. + spatial_stride (int): Spatial stride in the conv3d layer. Default: 1. + temporal_stride (int): Temporal stride in the conv3d layer. Default: 1. + dilation (int): Spacing between kernel elements. Default: 1. + downsample (nn.Module | None): Downsample layer. Default: None. + style (str): ``pytorch`` or ``caffe``. If set to "pytorch", the + stride-two layer is the 3x3 conv layer, otherwise the stride-two + layer is the first 1x1 conv layer. Default: 'pytorch'. + inflate (bool): Whether to inflate kernel. Default: True. + non_local (bool): Determine whether to apply non-local module in this + block. Default: False. + non_local_cfg (dict): Config for non-local module. Default: ``dict()``. + conv_cfg (dict): Config dict for convolution layer. + Default: ``dict(type='Conv3d')``. + norm_cfg (dict): Config for norm layers. required keys are ``type``, + Default: ``dict(type='BN3d')``. + act_cfg (dict): Config dict for activation layer. + Default: ``dict(type='ReLU')``. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + """ + expansion = 1 + + def __init__(self, + inplanes, + planes, + spatial_stride=1, + temporal_stride=1, + dilation=1, + downsample=None, + style='pytorch', + inflate=True, + non_local=False, + non_local_cfg=dict(), + conv_cfg=dict(type='Conv3d'), + norm_cfg=dict(type='BN3d'), + act_cfg=dict(type='ReLU'), + with_cp=False, + **kwargs): + super().__init__() + assert style in ['pytorch', 'caffe'] + # make sure that only ``inflate_style`` is passed into kwargs + assert set(kwargs).issubset(['inflate_style']) + + self.inplanes = inplanes + self.planes = planes + self.spatial_stride = spatial_stride + self.temporal_stride = temporal_stride + self.dilation = dilation + self.style = style + self.inflate = inflate + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + self.with_cp = with_cp + self.non_local = non_local + self.non_local_cfg = non_local_cfg + + self.conv1_stride_s = spatial_stride + self.conv2_stride_s = 1 + self.conv1_stride_t = temporal_stride + self.conv2_stride_t = 1 + + if self.inflate: + conv1_kernel_size = (3, 3, 3) + conv1_padding = (1, dilation, dilation) + conv2_kernel_size = (3, 3, 3) + conv2_padding = (1, 1, 1) + else: + conv1_kernel_size = (1, 3, 3) + conv1_padding = (0, dilation, dilation) + conv2_kernel_size = (1, 3, 3) + conv2_padding = (0, 1, 1) + + self.conv1 = ConvModule( + inplanes, + planes, + conv1_kernel_size, + stride=(self.conv1_stride_t, self.conv1_stride_s, + self.conv1_stride_s), + padding=conv1_padding, + dilation=(1, dilation, dilation), + bias=False, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + self.conv2 = ConvModule( + planes, + planes * self.expansion, + conv2_kernel_size, + stride=(self.conv2_stride_t, self.conv2_stride_s, + self.conv2_stride_s), + padding=conv2_padding, + bias=False, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=None) + + self.downsample = downsample + self.relu = build_activation_layer(self.act_cfg) + + if self.non_local: + self.non_local_block = NonLocal3d(self.conv2.norm.num_features, + **self.non_local_cfg) + + def forward(self, x): + """Defines the computation performed at every call.""" + + def _inner_forward(x): + """Forward wrapper for utilizing checkpoint.""" + identity = x + + out = self.conv1(x) + out = self.conv2(out) + + if self.downsample is not None: + identity = self.downsample(x) + + out = out + identity + return out + + if self.with_cp and x.requires_grad: + out = cp.checkpoint(_inner_forward, x) + else: + out = _inner_forward(x) + out = self.relu(out) + + if self.non_local: + out = self.non_local_block(out) + + return out + + +class Bottleneck3d(nn.Module): + """Bottleneck 3d block for ResNet3D. + + Args: + inplanes (int): Number of channels for the input in first conv3d layer. + planes (int): Number of channels produced by some norm/conv3d layers. + spatial_stride (int): Spatial stride in the conv3d layer. Default: 1. + temporal_stride (int): Temporal stride in the conv3d layer. Default: 1. + dilation (int): Spacing between kernel elements. Default: 1. + downsample (nn.Module | None): Downsample layer. Default: None. + style (str): ``pytorch`` or ``caffe``. If set to "pytorch", the + stride-two layer is the 3x3 conv layer, otherwise the stride-two + layer is the first 1x1 conv layer. Default: 'pytorch'. + inflate (bool): Whether to inflate kernel. Default: True. + inflate_style (str): ``3x1x1`` or ``3x3x3``. which determines the + kernel sizes and padding strides for conv1 and conv2 in each block. + Default: '3x1x1'. + non_local (bool): Determine whether to apply non-local module in this + block. Default: False. + non_local_cfg (dict): Config for non-local module. Default: ``dict()``. + conv_cfg (dict): Config dict for convolution layer. + Default: ``dict(type='Conv3d')``. + norm_cfg (dict): Config for norm layers. required keys are ``type``, + Default: ``dict(type='BN3d')``. + act_cfg (dict): Config dict for activation layer. + Default: ``dict(type='ReLU')``. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + """ + expansion = 4 + + def __init__(self, + inplanes, + planes, + spatial_stride=1, + temporal_stride=1, + dilation=1, + downsample=None, + style='pytorch', + inflate=True, + inflate_style='3x1x1', + non_local=False, + non_local_cfg=dict(), + conv_cfg=dict(type='Conv3d'), + norm_cfg=dict(type='BN3d'), + act_cfg=dict(type='ReLU'), + with_cp=False): + super().__init__() + assert style in ['pytorch', 'caffe'] + assert inflate_style in ['3x1x1', '3x3x3'] + + self.inplanes = inplanes + self.planes = planes + self.spatial_stride = spatial_stride + self.temporal_stride = temporal_stride + self.dilation = dilation + self.style = style + self.inflate = inflate + self.inflate_style = inflate_style + self.norm_cfg = norm_cfg + self.conv_cfg = conv_cfg + self.act_cfg = act_cfg + self.with_cp = with_cp + self.non_local = non_local + self.non_local_cfg = non_local_cfg + + if self.style == 'pytorch': + self.conv1_stride_s = 1 + self.conv2_stride_s = spatial_stride + self.conv1_stride_t = 1 + self.conv2_stride_t = temporal_stride + else: + self.conv1_stride_s = spatial_stride + self.conv2_stride_s = 1 + self.conv1_stride_t = temporal_stride + self.conv2_stride_t = 1 + + if self.inflate: + if inflate_style == '3x1x1': + conv1_kernel_size = (3, 1, 1) + conv1_padding = (1, 0, 0) + conv2_kernel_size = (1, 3, 3) + conv2_padding = (0, dilation, dilation) + else: + conv1_kernel_size = (1, 1, 1) + conv1_padding = (0, 0, 0) + conv2_kernel_size = (3, 3, 3) + conv2_padding = (1, dilation, dilation) + else: + conv1_kernel_size = (1, 1, 1) + conv1_padding = (0, 0, 0) + conv2_kernel_size = (1, 3, 3) + conv2_padding = (0, dilation, dilation) + + self.conv1 = ConvModule( + inplanes, + planes, + conv1_kernel_size, + stride=(self.conv1_stride_t, self.conv1_stride_s, + self.conv1_stride_s), + padding=conv1_padding, + bias=False, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + self.conv2 = ConvModule( + planes, + planes, + conv2_kernel_size, + stride=(self.conv2_stride_t, self.conv2_stride_s, + self.conv2_stride_s), + padding=conv2_padding, + dilation=(1, dilation, dilation), + bias=False, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + self.conv3 = ConvModule( + planes, + planes * self.expansion, + 1, + bias=False, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + # No activation in the third ConvModule for bottleneck + act_cfg=None) + + self.downsample = downsample + self.relu = build_activation_layer(self.act_cfg) + + if self.non_local: + self.non_local_block = NonLocal3d(self.conv3.norm.num_features, + **self.non_local_cfg) + + def forward(self, x): + """Defines the computation performed at every call.""" + + def _inner_forward(x): + """Forward wrapper for utilizing checkpoint.""" + identity = x + + out = self.conv1(x) + out = self.conv2(out) + out = self.conv3(out) + + if self.downsample is not None: + identity = self.downsample(x) + + out = out + identity + return out + + if self.with_cp and x.requires_grad: + out = cp.checkpoint(_inner_forward, x) + else: + out = _inner_forward(x) + out = self.relu(out) + + if self.non_local: + out = self.non_local_block(out) + + return out + + +@BACKBONES.register_module() +class ResNet3d(nn.Module): + """ResNet 3d backbone. + + Args: + depth (int): Depth of resnet, from {18, 34, 50, 101, 152}. + pretrained (str | None): Name of pretrained model. + stage_blocks (tuple | None): Set number of stages for each res layer. + Default: None. + pretrained2d (bool): Whether to load pretrained 2D model. + Default: True. + in_channels (int): Channel num of input features. Default: 3. + base_channels (int): Channel num of stem output features. Default: 64. + out_indices (Sequence[int]): Indices of output feature. Default: (3, ). + num_stages (int): Resnet stages. Default: 4. + spatial_strides (Sequence[int]): + Spatial strides of residual blocks of each stage. + Default: ``(1, 2, 2, 2)``. + temporal_strides (Sequence[int]): + Temporal strides of residual blocks of each stage. + Default: ``(1, 1, 1, 1)``. + dilations (Sequence[int]): Dilation of each stage. + Default: ``(1, 1, 1, 1)``. + conv1_kernel (Sequence[int]): Kernel size of the first conv layer. + Default: ``(3, 7, 7)``. + conv1_stride_s (int): Spatial stride of the first conv layer. + Default: 2. + conv1_stride_t (int): Temporal stride of the first conv layer. + Default: 1. + pool1_stride_s (int): Spatial stride of the first pooling layer. + Default: 2. + pool1_stride_t (int): Temporal stride of the first pooling layer. + Default: 1. + with_pool2 (bool): Whether to use pool2. Default: True. + style (str): `pytorch` or `caffe`. If set to "pytorch", the stride-two + layer is the 3x3 conv layer, otherwise the stride-two layer is + the first 1x1 conv layer. Default: 'pytorch'. + frozen_stages (int): Stages to be frozen (all param fixed). -1 means + not freezing any parameters. Default: -1. + inflate (Sequence[int]): Inflate Dims of each block. + Default: (1, 1, 1, 1). + inflate_style (str): ``3x1x1`` or ``3x3x3``. which determines the + kernel sizes and padding strides for conv1 and conv2 in each block. + Default: '3x1x1'. + conv_cfg (dict): Config for conv layers. required keys are ``type`` + Default: ``dict(type='Conv3d')``. + norm_cfg (dict): Config for norm layers. required keys are ``type`` and + ``requires_grad``. + Default: ``dict(type='BN3d', requires_grad=True)``. + act_cfg (dict): Config dict for activation layer. + Default: ``dict(type='ReLU', inplace=True)``. + norm_eval (bool): Whether to set BN layers to eval mode, namely, freeze + running stats (mean and var). Default: False. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + non_local (Sequence[int]): Determine whether to apply non-local module + in the corresponding block of each stages. Default: (0, 0, 0, 0). + non_local_cfg (dict): Config for non-local module. Default: ``dict()``. + zero_init_residual (bool): + Whether to use zero initialization for residual block, + Default: True. + kwargs (dict, optional): Key arguments for "make_res_layer". + """ + + arch_settings = { + 18: (BasicBlock3d, (2, 2, 2, 2)), + 34: (BasicBlock3d, (3, 4, 6, 3)), + 50: (Bottleneck3d, (3, 4, 6, 3)), + 101: (Bottleneck3d, (3, 4, 23, 3)), + 152: (Bottleneck3d, (3, 8, 36, 3)) + } + + def __init__(self, + depth, + pretrained, + stage_blocks=None, + pretrained2d=True, + in_channels=3, + num_stages=4, + base_channels=64, + out_indices=(3, ), + spatial_strides=(1, 2, 2, 2), + temporal_strides=(1, 1, 1, 1), + dilations=(1, 1, 1, 1), + conv1_kernel=(3, 7, 7), + conv1_stride_s=2, + conv1_stride_t=1, + pool1_stride_s=2, + pool1_stride_t=1, + with_pool1=True, + with_pool2=True, + style='pytorch', + frozen_stages=-1, + inflate=(1, 1, 1, 1), + inflate_style='3x1x1', + conv_cfg=dict(type='Conv3d'), + norm_cfg=dict(type='BN3d', requires_grad=True), + act_cfg=dict(type='ReLU', inplace=True), + norm_eval=False, + with_cp=False, + non_local=(0, 0, 0, 0), + non_local_cfg=dict(), + zero_init_residual=True, + **kwargs): + super().__init__() + if depth not in self.arch_settings: + raise KeyError(f'invalid depth {depth} for resnet') + self.depth = depth + self.pretrained = pretrained + self.pretrained2d = pretrained2d + self.in_channels = in_channels + self.base_channels = base_channels + self.num_stages = num_stages + assert 1 <= num_stages <= 4 + self.stage_blocks = stage_blocks + self.out_indices = out_indices + assert max(out_indices) < num_stages + self.spatial_strides = spatial_strides + self.temporal_strides = temporal_strides + self.dilations = dilations + assert len(spatial_strides) == len(temporal_strides) == len( + dilations) == num_stages + if self.stage_blocks is not None: + assert len(self.stage_blocks) == num_stages + + self.conv1_kernel = conv1_kernel + self.conv1_stride_s = conv1_stride_s + self.conv1_stride_t = conv1_stride_t + self.pool1_stride_s = pool1_stride_s + self.pool1_stride_t = pool1_stride_t + self.with_pool1 = with_pool1 + self.with_pool2 = with_pool2 + self.style = style + self.frozen_stages = frozen_stages + self.stage_inflations = _ntuple(num_stages)(inflate) + self.non_local_stages = _ntuple(num_stages)(non_local) + self.inflate_style = inflate_style + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + self.norm_eval = norm_eval + self.with_cp = with_cp + self.zero_init_residual = zero_init_residual + + self.block, stage_blocks = self.arch_settings[depth] + + if self.stage_blocks is None: + self.stage_blocks = stage_blocks[:num_stages] + + self.inplanes = self.base_channels + + self.non_local_cfg = non_local_cfg + + self._make_stem_layer() + + self.res_layers = [] + for i, num_blocks in enumerate(self.stage_blocks): + spatial_stride = spatial_strides[i] + temporal_stride = temporal_strides[i] + dilation = dilations[i] + planes = self.base_channels * 2**i + res_layer = self.make_res_layer( + self.block, + self.inplanes, + planes, + num_blocks, + spatial_stride=spatial_stride, + temporal_stride=temporal_stride, + dilation=dilation, + style=self.style, + norm_cfg=self.norm_cfg, + conv_cfg=self.conv_cfg, + act_cfg=self.act_cfg, + non_local=self.non_local_stages[i], + non_local_cfg=self.non_local_cfg, + inflate=self.stage_inflations[i], + inflate_style=self.inflate_style, + with_cp=with_cp, + **kwargs) + self.inplanes = planes * self.block.expansion + layer_name = f'layer{i + 1}' + self.add_module(layer_name, res_layer) + self.res_layers.append(layer_name) + + self.feat_dim = self.block.expansion * self.base_channels * 2**( + len(self.stage_blocks) - 1) + + @staticmethod + def make_res_layer(block, + inplanes, + planes, + blocks, + spatial_stride=1, + temporal_stride=1, + dilation=1, + style='pytorch', + inflate=1, + inflate_style='3x1x1', + non_local=0, + non_local_cfg=dict(), + norm_cfg=None, + act_cfg=None, + conv_cfg=None, + with_cp=False, + **kwargs): + """Build residual layer for ResNet3D. + + Args: + block (nn.Module): Residual module to be built. + inplanes (int): Number of channels for the input feature + in each block. + planes (int): Number of channels for the output feature + in each block. + blocks (int): Number of residual blocks. + spatial_stride (int | Sequence[int]): Spatial strides in + residual and conv layers. Default: 1. + temporal_stride (int | Sequence[int]): Temporal strides in + residual and conv layers. Default: 1. + dilation (int): Spacing between kernel elements. Default: 1. + style (str): ``pytorch`` or ``caffe``. If set to ``pytorch``, + the stride-two layer is the 3x3 conv layer, otherwise + the stride-two layer is the first 1x1 conv layer. + Default: ``pytorch``. + inflate (int | Sequence[int]): Determine whether to inflate + for each block. Default: 1. + inflate_style (str): ``3x1x1`` or ``3x3x3``. which determines + the kernel sizes and padding strides for conv1 and conv2 + in each block. Default: '3x1x1'. + non_local (int | Sequence[int]): Determine whether to apply + non-local module in the corresponding block of each stages. + Default: 0. + non_local_cfg (dict): Config for non-local module. + Default: ``dict()``. + conv_cfg (dict | None): Config for norm layers. Default: None. + norm_cfg (dict | None): Config for norm layers. Default: None. + act_cfg (dict | None): Config for activate layers. Default: None. + with_cp (bool | None): Use checkpoint or not. Using checkpoint + will save some memory while slowing down the training speed. + Default: False. + + Returns: + nn.Module: A residual layer for the given config. + """ + inflate = inflate if not isinstance(inflate, + int) else (inflate, ) * blocks + non_local = non_local if not isinstance( + non_local, int) else (non_local, ) * blocks + assert len(inflate) == blocks and len(non_local) == blocks + downsample = None + if spatial_stride != 1 or inplanes != planes * block.expansion: + downsample = ConvModule( + inplanes, + planes * block.expansion, + kernel_size=1, + stride=(temporal_stride, spatial_stride, spatial_stride), + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None) + + layers = [] + layers.append( + block( + inplanes, + planes, + spatial_stride=spatial_stride, + temporal_stride=temporal_stride, + dilation=dilation, + downsample=downsample, + style=style, + inflate=(inflate[0] == 1), + inflate_style=inflate_style, + non_local=(non_local[0] == 1), + non_local_cfg=non_local_cfg, + norm_cfg=norm_cfg, + conv_cfg=conv_cfg, + act_cfg=act_cfg, + with_cp=with_cp, + **kwargs)) + inplanes = planes * block.expansion + for i in range(1, blocks): + layers.append( + block( + inplanes, + planes, + spatial_stride=1, + temporal_stride=1, + dilation=dilation, + style=style, + inflate=(inflate[i] == 1), + inflate_style=inflate_style, + non_local=(non_local[i] == 1), + non_local_cfg=non_local_cfg, + norm_cfg=norm_cfg, + conv_cfg=conv_cfg, + act_cfg=act_cfg, + with_cp=with_cp, + **kwargs)) + + return nn.Sequential(*layers) + + @staticmethod + def _inflate_conv_params(conv3d, state_dict_2d, module_name_2d, + inflated_param_names): + """Inflate a conv module from 2d to 3d. + + Args: + conv3d (nn.Module): The destination conv3d module. + state_dict_2d (OrderedDict): The state dict of pretrained 2d model. + module_name_2d (str): The name of corresponding conv module in the + 2d model. + inflated_param_names (list[str]): List of parameters that have been + inflated. + """ + weight_2d_name = module_name_2d + '.weight' + + conv2d_weight = state_dict_2d[weight_2d_name] + kernel_t = conv3d.weight.data.shape[2] + + new_weight = conv2d_weight.data.unsqueeze(2).expand_as( + conv3d.weight) / kernel_t + conv3d.weight.data.copy_(new_weight) + inflated_param_names.append(weight_2d_name) + + if getattr(conv3d, 'bias') is not None: + bias_2d_name = module_name_2d + '.bias' + conv3d.bias.data.copy_(state_dict_2d[bias_2d_name]) + inflated_param_names.append(bias_2d_name) + + @staticmethod + def _inflate_bn_params(bn3d, state_dict_2d, module_name_2d, + inflated_param_names): + """Inflate a norm module from 2d to 3d. + + Args: + bn3d (nn.Module): The destination bn3d module. + state_dict_2d (OrderedDict): The state dict of pretrained 2d model. + module_name_2d (str): The name of corresponding bn module in the + 2d model. + inflated_param_names (list[str]): List of parameters that have been + inflated. + """ + for param_name, param in bn3d.named_parameters(): + param_2d_name = f'{module_name_2d}.{param_name}' + param_2d = state_dict_2d[param_2d_name] + if param.data.shape != param_2d.shape: + warnings.warn(f'The parameter of {module_name_2d} is not' + 'loaded due to incompatible shapes. ') + return + + param.data.copy_(param_2d) + inflated_param_names.append(param_2d_name) + + for param_name, param in bn3d.named_buffers(): + param_2d_name = f'{module_name_2d}.{param_name}' + # some buffers like num_batches_tracked may not exist in old + # checkpoints + if param_2d_name in state_dict_2d: + param_2d = state_dict_2d[param_2d_name] + param.data.copy_(param_2d) + inflated_param_names.append(param_2d_name) + + @staticmethod + def _inflate_weights(self, logger): + """Inflate the resnet2d parameters to resnet3d. + + The differences between resnet3d and resnet2d mainly lie in an extra + axis of conv kernel. To utilize the pretrained parameters in 2d model, + the weight of conv2d models should be inflated to fit in the shapes of + the 3d counterpart. + + Args: + logger (logging.Logger): The logger used to print + debugging information. + """ + + state_dict_r2d = _load_checkpoint(self.pretrained) + if 'state_dict' in state_dict_r2d: + state_dict_r2d = state_dict_r2d['state_dict'] + + inflated_param_names = [] + for name, module in self.named_modules(): + if isinstance(module, ConvModule): + # we use a ConvModule to wrap conv+bn+relu layers, thus the + # name mapping is needed + if 'downsample' in name: + # layer{X}.{Y}.downsample.conv->layer{X}.{Y}.downsample.0 + original_conv_name = name + '.0' + # layer{X}.{Y}.downsample.bn->layer{X}.{Y}.downsample.1 + original_bn_name = name + '.1' + else: + # layer{X}.{Y}.conv{n}.conv->layer{X}.{Y}.conv{n} + original_conv_name = name + # layer{X}.{Y}.conv{n}.bn->layer{X}.{Y}.bn{n} + original_bn_name = name.replace('conv', 'bn') + if original_conv_name + '.weight' not in state_dict_r2d: + logger.warning(f'Module not exist in the state_dict_r2d' + f': {original_conv_name}') + else: + shape_2d = state_dict_r2d[original_conv_name + + '.weight'].shape + shape_3d = module.conv.weight.data.shape + if shape_2d != shape_3d[:2] + shape_3d[3:]: + logger.warning(f'Weight shape mismatch for ' + f': {original_conv_name} : ' + f'3d weight shape: {shape_3d}; ' + f'2d weight shape: {shape_2d}. ') + else: + self._inflate_conv_params(module.conv, state_dict_r2d, + original_conv_name, + inflated_param_names) + + if original_bn_name + '.weight' not in state_dict_r2d: + logger.warning(f'Module not exist in the state_dict_r2d' + f': {original_bn_name}') + else: + self._inflate_bn_params(module.bn, state_dict_r2d, + original_bn_name, + inflated_param_names) + + # check if any parameters in the 2d checkpoint are not loaded + remaining_names = set( + state_dict_r2d.keys()) - set(inflated_param_names) + if remaining_names: + logger.info(f'These parameters in the 2d checkpoint are not loaded' + f': {remaining_names}') + + def inflate_weights(self, logger): + self._inflate_weights(self, logger) + + def _make_stem_layer(self): + """Construct the stem layers consists of a conv+norm+act module and a + pooling layer.""" + self.conv1 = ConvModule( + self.in_channels, + self.base_channels, + kernel_size=self.conv1_kernel, + stride=(self.conv1_stride_t, self.conv1_stride_s, + self.conv1_stride_s), + padding=tuple([(k - 1) // 2 for k in _triple(self.conv1_kernel)]), + bias=False, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + self.maxpool = nn.MaxPool3d( + kernel_size=(1, 3, 3), + stride=(self.pool1_stride_t, self.pool1_stride_s, + self.pool1_stride_s), + padding=(0, 1, 1)) + + self.pool2 = nn.MaxPool3d(kernel_size=(2, 1, 1), stride=(2, 1, 1)) + + def _freeze_stages(self): + """Prevent all the parameters from being optimized before + ``self.frozen_stages``.""" + if self.frozen_stages >= 0: + self.conv1.eval() + for param in self.conv1.parameters(): + param.requires_grad = False + + for i in range(1, self.frozen_stages + 1): + m = getattr(self, f'layer{i}') + m.eval() + for param in m.parameters(): + param.requires_grad = False + + @staticmethod + def _init_weights(self, pretrained=None): + """Initiate the parameters either from existing checkpoint or from + scratch. + + Args: + pretrained (str | None): The path of the pretrained weight. Will + override the original `pretrained` if set. The arg is added to + be compatible with mmdet. Default: None. + """ + if pretrained: + self.pretrained = pretrained + if isinstance(self.pretrained, str): + logger = get_root_logger() + logger.info(f'load model from: {self.pretrained}') + + if self.pretrained2d: + # Inflate 2D model into 3D model. + self.inflate_weights(logger) + + else: + # Directly load 3D model. + load_checkpoint( + self, self.pretrained, strict=False, logger=logger) + + elif self.pretrained is None: + for m in self.modules(): + if isinstance(m, nn.Conv3d): + kaiming_init(m) + elif isinstance(m, _BatchNorm): + constant_init(m, 1) + + if self.zero_init_residual: + for m in self.modules(): + if isinstance(m, Bottleneck3d): + constant_init(m.conv3.bn, 0) + elif isinstance(m, BasicBlock3d): + constant_init(m.conv2.bn, 0) + else: + raise TypeError('pretrained must be a str or None') + + def init_weights(self, pretrained=None): + self._init_weights(self, pretrained) + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The feature of the input + samples extracted by the backbone. + """ + x = self.conv1(x) + if self.with_pool1: + x = self.maxpool(x) + outs = [] + for i, layer_name in enumerate(self.res_layers): + res_layer = getattr(self, layer_name) + x = res_layer(x) + if i == 0 and self.with_pool2: + x = self.pool2(x) + if i in self.out_indices: + outs.append(x) + if len(outs) == 1: + return outs[0] + + return tuple(outs) + + def train(self, mode=True): + """Set the optimization status when training.""" + super().train(mode) + self._freeze_stages() + if mode and self.norm_eval: + for m in self.modules(): + if isinstance(m, _BatchNorm): + m.eval() + + +@BACKBONES.register_module() +class ResNet3dLayer(nn.Module): + """ResNet 3d Layer. + + Args: + depth (int): Depth of resnet, from {18, 34, 50, 101, 152}. + pretrained (str | None): Name of pretrained model. + pretrained2d (bool): Whether to load pretrained 2D model. + Default: True. + stage (int): The index of Resnet stage. Default: 3. + base_channels (int): Channel num of stem output features. Default: 64. + spatial_stride (int): The 1st res block's spatial stride. Default 2. + temporal_stride (int): The 1st res block's temporal stride. Default 1. + dilation (int): The dilation. Default: 1. + style (str): `pytorch` or `caffe`. If set to "pytorch", the stride-two + layer is the 3x3 conv layer, otherwise the stride-two layer is + the first 1x1 conv layer. Default: 'pytorch'. + all_frozen (bool): Frozen all modules in the layer. Default: False. + inflate (int): Inflate Dims of each block. Default: 1. + inflate_style (str): ``3x1x1`` or ``3x3x3``. which determines the + kernel sizes and padding strides for conv1 and conv2 in each block. + Default: '3x1x1'. + conv_cfg (dict): Config for conv layers. required keys are ``type`` + Default: ``dict(type='Conv3d')``. + norm_cfg (dict): Config for norm layers. required keys are ``type`` and + ``requires_grad``. + Default: ``dict(type='BN3d', requires_grad=True)``. + act_cfg (dict): Config dict for activation layer. + Default: ``dict(type='ReLU', inplace=True)``. + norm_eval (bool): Whether to set BN layers to eval mode, namely, freeze + running stats (mean and var). Default: False. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + zero_init_residual (bool): + Whether to use zero initialization for residual block, + Default: True. + kwargs (dict, optional): Key arguments for "make_res_layer". + """ + + def __init__(self, + depth, + pretrained, + pretrained2d=True, + stage=3, + base_channels=64, + spatial_stride=2, + temporal_stride=1, + dilation=1, + style='pytorch', + all_frozen=False, + inflate=1, + inflate_style='3x1x1', + conv_cfg=dict(type='Conv3d'), + norm_cfg=dict(type='BN3d', requires_grad=True), + act_cfg=dict(type='ReLU', inplace=True), + norm_eval=False, + with_cp=False, + zero_init_residual=True, + **kwargs): + + super().__init__() + self.arch_settings = ResNet3d.arch_settings + assert depth in self.arch_settings + + self.make_res_layer = ResNet3d.make_res_layer + self._inflate_conv_params = ResNet3d._inflate_conv_params + self._inflate_bn_params = ResNet3d._inflate_bn_params + self._inflate_weights = ResNet3d._inflate_weights + self._init_weights = ResNet3d._init_weights + + self.depth = depth + self.pretrained = pretrained + self.pretrained2d = pretrained2d + self.stage = stage + # stage index is 0 based + assert 0 <= stage <= 3 + self.base_channels = base_channels + + self.spatial_stride = spatial_stride + self.temporal_stride = temporal_stride + self.dilation = dilation + + self.style = style + self.all_frozen = all_frozen + + self.stage_inflation = inflate + self.inflate_style = inflate_style + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + self.norm_eval = norm_eval + self.with_cp = with_cp + self.zero_init_residual = zero_init_residual + + block, stage_blocks = self.arch_settings[depth] + stage_block = stage_blocks[stage] + planes = 64 * 2**stage + inplanes = 64 * 2**(stage - 1) * block.expansion + + res_layer = self.make_res_layer( + block, + inplanes, + planes, + stage_block, + spatial_stride=spatial_stride, + temporal_stride=temporal_stride, + dilation=dilation, + style=self.style, + norm_cfg=self.norm_cfg, + conv_cfg=self.conv_cfg, + act_cfg=self.act_cfg, + inflate=self.stage_inflation, + inflate_style=self.inflate_style, + with_cp=with_cp, + **kwargs) + + self.layer_name = f'layer{stage + 1}' + self.add_module(self.layer_name, res_layer) + + def inflate_weights(self, logger): + self._inflate_weights(self, logger) + + def _freeze_stages(self): + """Prevent all the parameters from being optimized before + ``self.frozen_stages``.""" + if self.all_frozen: + layer = getattr(self, self.layer_name) + layer.eval() + for param in layer.parameters(): + param.requires_grad = False + + def init_weights(self, pretrained=None): + self._init_weights(self, pretrained) + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The feature of the input + samples extracted by the backbone. + """ + res_layer = getattr(self, self.layer_name) + out = res_layer(x) + return out + + def train(self, mode=True): + """Set the optimization status when training.""" + super().train(mode) + self._freeze_stages() + if mode and self.norm_eval: + for m in self.modules(): + if isinstance(m, _BatchNorm): + m.eval() + + +if mmdet_imported: + MMDET_SHARED_HEADS.register_module()(ResNet3dLayer) + MMDET_BACKBONES.register_module()(ResNet3d) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet3d_csn.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet3d_csn.py new file mode 100644 index 00000000..8b7a5fee --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet3d_csn.py @@ -0,0 +1,157 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch.nn as nn +from mmcv.cnn import ConvModule +from mmcv.utils import _BatchNorm + +from ..builder import BACKBONES +from .resnet3d import Bottleneck3d, ResNet3d + + +class CSNBottleneck3d(Bottleneck3d): + """Channel-Separated Bottleneck Block. + + This module is proposed in + "Video Classification with Channel-Separated Convolutional Networks" + Link: https://arxiv.org/pdf/1711.11248.pdf + + Args: + inplanes (int): Number of channels for the input in first conv3d layer. + planes (int): Number of channels produced by some norm/conv3d layers. + bottleneck_mode (str): Determine which ways to factorize a 3D + bottleneck block using channel-separated convolutional networks. + If set to 'ip', it will replace the 3x3x3 conv2 layer with a + 1x1x1 traditional convolution and a 3x3x3 depthwise + convolution, i.e., Interaction-preserved channel-separated + bottleneck block. + If set to 'ir', it will replace the 3x3x3 conv2 layer with a + 3x3x3 depthwise convolution, which is derived from preserved + bottleneck block by removing the extra 1x1x1 convolution, + i.e., Interaction-reduced channel-separated bottleneck block. + Default: 'ir'. + args (position arguments): Position arguments for Bottleneck. + kwargs (dict, optional): Keyword arguments for Bottleneck. + """ + + def __init__(self, + inplanes, + planes, + *args, + bottleneck_mode='ir', + **kwargs): + super(CSNBottleneck3d, self).__init__(inplanes, planes, *args, + **kwargs) + self.bottleneck_mode = bottleneck_mode + conv2 = [] + if self.bottleneck_mode == 'ip': + conv2.append( + ConvModule( + planes, + planes, + 1, + stride=1, + bias=False, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=None)) + conv2_kernel_size = self.conv2.conv.kernel_size + conv2_stride = self.conv2.conv.stride + conv2_padding = self.conv2.conv.padding + conv2_dilation = self.conv2.conv.dilation + conv2_bias = bool(self.conv2.conv.bias) + self.conv2 = ConvModule( + planes, + planes, + conv2_kernel_size, + stride=conv2_stride, + padding=conv2_padding, + dilation=conv2_dilation, + bias=conv2_bias, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg, + groups=planes) + conv2.append(self.conv2) + self.conv2 = nn.Sequential(*conv2) + + +@BACKBONES.register_module() +class ResNet3dCSN(ResNet3d): + """ResNet backbone for CSN. + + Args: + depth (int): Depth of ResNetCSN, from {18, 34, 50, 101, 152}. + pretrained (str | None): Name of pretrained model. + temporal_strides (tuple[int]): + Temporal strides of residual blocks of each stage. + Default: (1, 2, 2, 2). + conv1_kernel (tuple[int]): Kernel size of the first conv layer. + Default: (3, 7, 7). + conv1_stride_t (int): Temporal stride of the first conv layer. + Default: 1. + pool1_stride_t (int): Temporal stride of the first pooling layer. + Default: 1. + norm_cfg (dict): Config for norm layers. required keys are `type` and + `requires_grad`. + Default: dict(type='BN3d', requires_grad=True, eps=1e-3). + inflate_style (str): `3x1x1` or `3x3x3`. which determines the kernel + sizes and padding strides for conv1 and conv2 in each block. + Default: '3x3x3'. + bottleneck_mode (str): Determine which ways to factorize a 3D + bottleneck block using channel-separated convolutional networks. + If set to 'ip', it will replace the 3x3x3 conv2 layer with a + 1x1x1 traditional convolution and a 3x3x3 depthwise + convolution, i.e., Interaction-preserved channel-separated + bottleneck block. + If set to 'ir', it will replace the 3x3x3 conv2 layer with a + 3x3x3 depthwise convolution, which is derived from preserved + bottleneck block by removing the extra 1x1x1 convolution, + i.e., Interaction-reduced channel-separated bottleneck block. + Default: 'ip'. + kwargs (dict, optional): Key arguments for "make_res_layer". + """ + + def __init__(self, + depth, + pretrained, + temporal_strides=(1, 2, 2, 2), + conv1_kernel=(3, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + norm_cfg=dict(type='BN3d', requires_grad=True, eps=1e-3), + inflate_style='3x3x3', + bottleneck_mode='ir', + bn_frozen=False, + **kwargs): + self.arch_settings = { + # 18: (BasicBlock3d, (2, 2, 2, 2)), + # 34: (BasicBlock3d, (3, 4, 6, 3)), + 50: (CSNBottleneck3d, (3, 4, 6, 3)), + 101: (CSNBottleneck3d, (3, 4, 23, 3)), + 152: (CSNBottleneck3d, (3, 8, 36, 3)) + } + self.bn_frozen = bn_frozen + if bottleneck_mode not in ['ip', 'ir']: + raise ValueError(f'Bottleneck mode must be "ip" or "ir",' + f'but got {bottleneck_mode}.') + super(ResNet3dCSN, self).__init__( + depth, + pretrained, + temporal_strides=temporal_strides, + conv1_kernel=conv1_kernel, + conv1_stride_t=conv1_stride_t, + pool1_stride_t=pool1_stride_t, + norm_cfg=norm_cfg, + inflate_style=inflate_style, + bottleneck_mode=bottleneck_mode, + **kwargs) + + def train(self, mode=True): + super(ResNet3d, self).train(mode) + self._freeze_stages() + if mode and self.norm_eval: + for m in self.modules(): + if isinstance(m, _BatchNorm): + m.eval() + if self.bn_frozen: + for param in m.parameters(): + param.requires_grad = False diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet3d_slowfast.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet3d_slowfast.py new file mode 100644 index 00000000..31da6fde --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet3d_slowfast.py @@ -0,0 +1,531 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import warnings + +import torch +import torch.nn as nn +from mmcv.cnn import ConvModule, kaiming_init +from mmcv.runner import _load_checkpoint, load_checkpoint +from mmcv.utils import print_log + +from ...utils import get_root_logger +from ..builder import BACKBONES +from .resnet3d import ResNet3d + +try: + from mmdet.models import BACKBONES as MMDET_BACKBONES + mmdet_imported = True +except (ImportError, ModuleNotFoundError): + mmdet_imported = False + + +class ResNet3dPathway(ResNet3d): + """A pathway of Slowfast based on ResNet3d. + + Args: + *args (arguments): Arguments same as :class:``ResNet3d``. + lateral (bool): Determines whether to enable the lateral connection + from another pathway. Default: False. + speed_ratio (int): Speed ratio indicating the ratio between time + dimension of the fast and slow pathway, corresponding to the + ``alpha`` in the paper. Default: 8. + channel_ratio (int): Reduce the channel number of fast pathway + by ``channel_ratio``, corresponding to ``beta`` in the paper. + Default: 8. + fusion_kernel (int): The kernel size of lateral fusion. + Default: 5. + **kwargs (keyword arguments): Keywords arguments for ResNet3d. + """ + + def __init__(self, + *args, + lateral=False, + lateral_norm=False, + speed_ratio=8, + channel_ratio=8, + fusion_kernel=5, + **kwargs): + self.lateral = lateral + self.lateral_norm = lateral_norm + self.speed_ratio = speed_ratio + self.channel_ratio = channel_ratio + self.fusion_kernel = fusion_kernel + super().__init__(*args, **kwargs) + self.inplanes = self.base_channels + if self.lateral: + self.conv1_lateral = ConvModule( + self.inplanes // self.channel_ratio, + # https://arxiv.org/abs/1812.03982, the + # third type of lateral connection has out_channel: + # 2 * \beta * C + self.inplanes * 2 // self.channel_ratio, + kernel_size=(fusion_kernel, 1, 1), + stride=(self.speed_ratio, 1, 1), + padding=((fusion_kernel - 1) // 2, 0, 0), + bias=False, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg if self.lateral_norm else None, + act_cfg=self.act_cfg if self.lateral_norm else None) + + self.lateral_connections = [] + for i in range(len(self.stage_blocks)): + planes = self.base_channels * 2**i + self.inplanes = planes * self.block.expansion + + if lateral and i != self.num_stages - 1: + # no lateral connection needed in final stage + lateral_name = f'layer{(i + 1)}_lateral' + setattr( + self, lateral_name, + ConvModule( + self.inplanes // self.channel_ratio, + self.inplanes * 2 // self.channel_ratio, + kernel_size=(fusion_kernel, 1, 1), + stride=(self.speed_ratio, 1, 1), + padding=((fusion_kernel - 1) // 2, 0, 0), + bias=False, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg if self.lateral_norm else None, + act_cfg=self.act_cfg if self.lateral_norm else None)) + self.lateral_connections.append(lateral_name) + + def make_res_layer(self, + block, + inplanes, + planes, + blocks, + spatial_stride=1, + temporal_stride=1, + dilation=1, + style='pytorch', + inflate=1, + inflate_style='3x1x1', + non_local=0, + non_local_cfg=dict(), + conv_cfg=None, + norm_cfg=None, + act_cfg=None, + with_cp=False): + """Build residual layer for Slowfast. + + Args: + block (nn.Module): Residual module to be built. + inplanes (int): Number of channels for the input + feature in each block. + planes (int): Number of channels for the output + feature in each block. + blocks (int): Number of residual blocks. + spatial_stride (int | Sequence[int]): Spatial strides + in residual and conv layers. Default: 1. + temporal_stride (int | Sequence[int]): Temporal strides in + residual and conv layers. Default: 1. + dilation (int): Spacing between kernel elements. Default: 1. + style (str): ``pytorch`` or ``caffe``. If set to ``pytorch``, + the stride-two layer is the 3x3 conv layer, + otherwise the stride-two layer is the first 1x1 conv layer. + Default: ``pytorch``. + inflate (int | Sequence[int]): Determine whether to inflate + for each block. Default: 1. + inflate_style (str): ``3x1x1`` or ``3x3x3``. which determines + the kernel sizes and padding strides for conv1 and + conv2 in each block. Default: ``3x1x1``. + non_local (int | Sequence[int]): Determine whether to apply + non-local module in the corresponding block of each stages. + Default: 0. + non_local_cfg (dict): Config for non-local module. + Default: ``dict()``. + conv_cfg (dict | None): Config for conv layers. Default: None. + norm_cfg (dict | None): Config for norm layers. Default: None. + act_cfg (dict | None): Config for activate layers. Default: None. + with_cp (bool): Use checkpoint or not. Using checkpoint will save + some memory while slowing down the training speed. + Default: False. + + Returns: + nn.Module: A residual layer for the given config. + """ + inflate = inflate if not isinstance(inflate, + int) else (inflate, ) * blocks + non_local = non_local if not isinstance( + non_local, int) else (non_local, ) * blocks + assert len(inflate) == blocks and len(non_local) == blocks + if self.lateral: + lateral_inplanes = inplanes * 2 // self.channel_ratio + else: + lateral_inplanes = 0 + if (spatial_stride != 1 + or (inplanes + lateral_inplanes) != planes * block.expansion): + downsample = ConvModule( + inplanes + lateral_inplanes, + planes * block.expansion, + kernel_size=1, + stride=(temporal_stride, spatial_stride, spatial_stride), + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None) + else: + downsample = None + + layers = [] + layers.append( + block( + inplanes + lateral_inplanes, + planes, + spatial_stride, + temporal_stride, + dilation, + downsample, + style=style, + inflate=(inflate[0] == 1), + inflate_style=inflate_style, + non_local=(non_local[0] == 1), + non_local_cfg=non_local_cfg, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg, + with_cp=with_cp)) + inplanes = planes * block.expansion + + for i in range(1, blocks): + layers.append( + block( + inplanes, + planes, + 1, + 1, + dilation, + style=style, + inflate=(inflate[i] == 1), + inflate_style=inflate_style, + non_local=(non_local[i] == 1), + non_local_cfg=non_local_cfg, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg, + with_cp=with_cp)) + + return nn.Sequential(*layers) + + def inflate_weights(self, logger): + """Inflate the resnet2d parameters to resnet3d pathway. + + The differences between resnet3d and resnet2d mainly lie in an extra + axis of conv kernel. To utilize the pretrained parameters in 2d model, + the weight of conv2d models should be inflated to fit in the shapes of + the 3d counterpart. For pathway the ``lateral_connection`` part should + not be inflated from 2d weights. + + Args: + logger (logging.Logger): The logger used to print + debugging information. + """ + + state_dict_r2d = _load_checkpoint(self.pretrained) + if 'state_dict' in state_dict_r2d: + state_dict_r2d = state_dict_r2d['state_dict'] + + inflated_param_names = [] + for name, module in self.named_modules(): + if 'lateral' in name: + continue + if isinstance(module, ConvModule): + # we use a ConvModule to wrap conv+bn+relu layers, thus the + # name mapping is needed + if 'downsample' in name: + # layer{X}.{Y}.downsample.conv->layer{X}.{Y}.downsample.0 + original_conv_name = name + '.0' + # layer{X}.{Y}.downsample.bn->layer{X}.{Y}.downsample.1 + original_bn_name = name + '.1' + else: + # layer{X}.{Y}.conv{n}.conv->layer{X}.{Y}.conv{n} + original_conv_name = name + # layer{X}.{Y}.conv{n}.bn->layer{X}.{Y}.bn{n} + original_bn_name = name.replace('conv', 'bn') + if original_conv_name + '.weight' not in state_dict_r2d: + logger.warning(f'Module not exist in the state_dict_r2d' + f': {original_conv_name}') + else: + self._inflate_conv_params(module.conv, state_dict_r2d, + original_conv_name, + inflated_param_names) + if original_bn_name + '.weight' not in state_dict_r2d: + logger.warning(f'Module not exist in the state_dict_r2d' + f': {original_bn_name}') + else: + self._inflate_bn_params(module.bn, state_dict_r2d, + original_bn_name, + inflated_param_names) + + # check if any parameters in the 2d checkpoint are not loaded + remaining_names = set( + state_dict_r2d.keys()) - set(inflated_param_names) + if remaining_names: + logger.info(f'These parameters in the 2d checkpoint are not loaded' + f': {remaining_names}') + + def _inflate_conv_params(self, conv3d, state_dict_2d, module_name_2d, + inflated_param_names): + """Inflate a conv module from 2d to 3d. + + The differences of conv modules betweene 2d and 3d in Pathway + mainly lie in the inplanes due to lateral connections. To fit the + shapes of the lateral connection counterpart, it will expand + parameters by concatting conv2d parameters and extra zero paddings. + + Args: + conv3d (nn.Module): The destination conv3d module. + state_dict_2d (OrderedDict): The state dict of pretrained 2d model. + module_name_2d (str): The name of corresponding conv module in the + 2d model. + inflated_param_names (list[str]): List of parameters that have been + inflated. + """ + weight_2d_name = module_name_2d + '.weight' + conv2d_weight = state_dict_2d[weight_2d_name] + old_shape = conv2d_weight.shape + new_shape = conv3d.weight.data.shape + kernel_t = new_shape[2] + + if new_shape[1] != old_shape[1]: + if new_shape[1] < old_shape[1]: + warnings.warn(f'The parameter of {module_name_2d} is not' + 'loaded due to incompatible shapes. ') + return + # Inplanes may be different due to lateral connections + new_channels = new_shape[1] - old_shape[1] + pad_shape = old_shape + pad_shape = pad_shape[:1] + (new_channels, ) + pad_shape[2:] + # Expand parameters by concat extra channels + conv2d_weight = torch.cat( + (conv2d_weight, + torch.zeros(pad_shape).type_as(conv2d_weight).to( + conv2d_weight.device)), + dim=1) + + new_weight = conv2d_weight.data.unsqueeze(2).expand_as( + conv3d.weight) / kernel_t + conv3d.weight.data.copy_(new_weight) + inflated_param_names.append(weight_2d_name) + + if getattr(conv3d, 'bias') is not None: + bias_2d_name = module_name_2d + '.bias' + conv3d.bias.data.copy_(state_dict_2d[bias_2d_name]) + inflated_param_names.append(bias_2d_name) + + def _freeze_stages(self): + """Prevent all the parameters from being optimized before + `self.frozen_stages`.""" + if self.frozen_stages >= 0: + self.conv1.eval() + for param in self.conv1.parameters(): + param.requires_grad = False + + for i in range(1, self.frozen_stages + 1): + m = getattr(self, f'layer{i}') + m.eval() + for param in m.parameters(): + param.requires_grad = False + + if i != len(self.res_layers) and self.lateral: + # No fusion needed in the final stage + lateral_name = self.lateral_connections[i - 1] + conv_lateral = getattr(self, lateral_name) + conv_lateral.eval() + for param in conv_lateral.parameters(): + param.requires_grad = False + + def init_weights(self, pretrained=None): + """Initiate the parameters either from existing checkpoint or from + scratch.""" + if pretrained: + self.pretrained = pretrained + + # Override the init_weights of i3d + super().init_weights() + for module_name in self.lateral_connections: + layer = getattr(self, module_name) + for m in layer.modules(): + if isinstance(m, (nn.Conv3d, nn.Conv2d)): + kaiming_init(m) + + +pathway_cfg = { + 'resnet3d': ResNet3dPathway, + # TODO: BNInceptionPathway +} + + +def build_pathway(cfg, *args, **kwargs): + """Build pathway. + + Args: + cfg (None or dict): cfg should contain: + - type (str): identify conv layer type. + + Returns: + nn.Module: Created pathway. + """ + if not (isinstance(cfg, dict) and 'type' in cfg): + raise TypeError('cfg must be a dict containing the key "type"') + cfg_ = cfg.copy() + + pathway_type = cfg_.pop('type') + if pathway_type not in pathway_cfg: + raise KeyError(f'Unrecognized pathway type {pathway_type}') + + pathway_cls = pathway_cfg[pathway_type] + pathway = pathway_cls(*args, **kwargs, **cfg_) + + return pathway + + +@BACKBONES.register_module() +class ResNet3dSlowFast(nn.Module): + """Slowfast backbone. + + This module is proposed in `SlowFast Networks for Video Recognition + `_ + + Args: + pretrained (str): The file path to a pretrained model. + resample_rate (int): A large temporal stride ``resample_rate`` + on input frames. The actual resample rate is calculated by + multipling the ``interval`` in ``SampleFrames`` in the + pipeline with ``resample_rate``, equivalent to the :math:`\\tau` + in the paper, i.e. it processes only one out of + ``resample_rate * interval`` frames. Default: 8. + speed_ratio (int): Speed ratio indicating the ratio between time + dimension of the fast and slow pathway, corresponding to the + :math:`\\alpha` in the paper. Default: 8. + channel_ratio (int): Reduce the channel number of fast pathway + by ``channel_ratio``, corresponding to :math:`\\beta` in the paper. + Default: 8. + slow_pathway (dict): Configuration of slow branch, should contain + necessary arguments for building the specific type of pathway + and: + type (str): type of backbone the pathway bases on. + lateral (bool): determine whether to build lateral connection + for the pathway.Default: + + .. code-block:: Python + + dict(type='ResNetPathway', + lateral=True, depth=50, pretrained=None, + conv1_kernel=(1, 7, 7), dilations=(1, 1, 1, 1), + conv1_stride_t=1, pool1_stride_t=1, inflate=(0, 0, 1, 1)) + + fast_pathway (dict): Configuration of fast branch, similar to + `slow_pathway`. Default: + + .. code-block:: Python + + dict(type='ResNetPathway', + lateral=False, depth=50, pretrained=None, base_channels=8, + conv1_kernel=(5, 7, 7), conv1_stride_t=1, pool1_stride_t=1) + """ + + def __init__(self, + pretrained, + resample_rate=8, + speed_ratio=8, + channel_ratio=8, + slow_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=True, + conv1_kernel=(1, 7, 7), + dilations=(1, 1, 1, 1), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1)), + fast_pathway=dict( + type='resnet3d', + depth=50, + pretrained=None, + lateral=False, + base_channels=8, + conv1_kernel=(5, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1)): + super().__init__() + self.pretrained = pretrained + self.resample_rate = resample_rate + self.speed_ratio = speed_ratio + self.channel_ratio = channel_ratio + + if slow_pathway['lateral']: + slow_pathway['speed_ratio'] = speed_ratio + slow_pathway['channel_ratio'] = channel_ratio + + self.slow_path = build_pathway(slow_pathway) + self.fast_path = build_pathway(fast_pathway) + + def init_weights(self, pretrained=None): + """Initiate the parameters either from existing checkpoint or from + scratch.""" + if pretrained: + self.pretrained = pretrained + + if isinstance(self.pretrained, str): + logger = get_root_logger() + msg = f'load model from: {self.pretrained}' + print_log(msg, logger=logger) + # Directly load 3D model. + load_checkpoint(self, self.pretrained, strict=True, logger=logger) + elif self.pretrained is None: + # Init two branch separately. + self.fast_path.init_weights() + self.slow_path.init_weights() + else: + raise TypeError('pretrained must be a str or None') + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + tuple[torch.Tensor]: The feature of the input samples extracted + by the backbone. + """ + x_slow = nn.functional.interpolate( + x, + mode='nearest', + scale_factor=(1.0 / self.resample_rate, 1.0, 1.0)) + x_slow = self.slow_path.conv1(x_slow) + x_slow = self.slow_path.maxpool(x_slow) + + x_fast = nn.functional.interpolate( + x, + mode='nearest', + scale_factor=(1.0 / (self.resample_rate // self.speed_ratio), 1.0, + 1.0)) + x_fast = self.fast_path.conv1(x_fast) + x_fast = self.fast_path.maxpool(x_fast) + + if self.slow_path.lateral: + x_fast_lateral = self.slow_path.conv1_lateral(x_fast) + x_slow = torch.cat((x_slow, x_fast_lateral), dim=1) + + for i, layer_name in enumerate(self.slow_path.res_layers): + res_layer = getattr(self.slow_path, layer_name) + x_slow = res_layer(x_slow) + res_layer_fast = getattr(self.fast_path, layer_name) + x_fast = res_layer_fast(x_fast) + if (i != len(self.slow_path.res_layers) - 1 + and self.slow_path.lateral): + # No fusion needed in the final stage + lateral_name = self.slow_path.lateral_connections[i] + conv_lateral = getattr(self.slow_path, lateral_name) + x_fast_lateral = conv_lateral(x_fast) + x_slow = torch.cat((x_slow, x_fast_lateral), dim=1) + + out = (x_slow, x_fast) + + return out + + +if mmdet_imported: + MMDET_BACKBONES.register_module()(ResNet3dSlowFast) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet3d_slowonly.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet3d_slowonly.py new file mode 100644 index 00000000..b983b2a1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet3d_slowonly.py @@ -0,0 +1,53 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from ..builder import BACKBONES +from .resnet3d_slowfast import ResNet3dPathway + +try: + from mmdet.models.builder import BACKBONES as MMDET_BACKBONES + mmdet_imported = True +except (ImportError, ModuleNotFoundError): + mmdet_imported = False + + +@BACKBONES.register_module() +class ResNet3dSlowOnly(ResNet3dPathway): + """SlowOnly backbone based on ResNet3dPathway. + + Args: + *args (arguments): Arguments same as :class:`ResNet3dPathway`. + conv1_kernel (Sequence[int]): Kernel size of the first conv layer. + Default: (1, 7, 7). + conv1_stride_t (int): Temporal stride of the first conv layer. + Default: 1. + pool1_stride_t (int): Temporal stride of the first pooling layer. + Default: 1. + inflate (Sequence[int]): Inflate Dims of each block. + Default: (0, 0, 1, 1). + **kwargs (keyword arguments): Keywords arguments for + :class:`ResNet3dPathway`. + """ + + def __init__(self, + *args, + lateral=False, + conv1_kernel=(1, 7, 7), + conv1_stride_t=1, + pool1_stride_t=1, + inflate=(0, 0, 1, 1), + with_pool2=False, + **kwargs): + super().__init__( + *args, + lateral=lateral, + conv1_kernel=conv1_kernel, + conv1_stride_t=conv1_stride_t, + pool1_stride_t=pool1_stride_t, + inflate=inflate, + with_pool2=with_pool2, + **kwargs) + + assert not self.lateral + + +if mmdet_imported: + MMDET_BACKBONES.register_module()(ResNet3dSlowOnly) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet_audio.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet_audio.py new file mode 100644 index 00000000..2245219a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet_audio.py @@ -0,0 +1,374 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch.nn as nn +import torch.utils.checkpoint as cp +from mmcv.cnn import ConvModule, constant_init, kaiming_init +from mmcv.runner import load_checkpoint +from torch.nn.modules.batchnorm import _BatchNorm +from torch.nn.modules.utils import _ntuple + +from ...utils import get_root_logger +from ..builder import BACKBONES + + +class Bottleneck2dAudio(nn.Module): + """Bottleneck2D block for ResNet2D. + + Args: + inplanes (int): Number of channels for the input in first conv3d layer. + planes (int): Number of channels produced by some norm/conv3d layers. + stride (int | tuple[int]): Stride in the conv layer. Default: 1. + dilation (int): Spacing between kernel elements. Default: 1. + downsample (nn.Module): Downsample layer. Default: None. + factorize (bool): Whether to factorize kernel. Default: True. + norm_cfg (dict): + Config for norm layers. required keys are `type` and + `requires_grad`. Default: None. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + """ + expansion = 4 + + def __init__(self, + inplanes, + planes, + stride=2, + dilation=1, + downsample=None, + factorize=True, + norm_cfg=None, + with_cp=False): + super().__init__() + + self.inplanes = inplanes + self.planes = planes + self.stride = stride + self.dilation = dilation + self.factorize = factorize + self.norm_cfg = norm_cfg + self.with_cp = with_cp + + self.conv1_stride = 1 + self.conv2_stride = stride + + conv1_kernel_size = (1, 1) + conv1_padding = 0 + conv2_kernel_size = (3, 3) + conv2_padding = (dilation, dilation) + self.conv1 = ConvModule( + inplanes, + planes, + kernel_size=conv1_kernel_size, + padding=conv1_padding, + dilation=dilation, + norm_cfg=self.norm_cfg, + bias=False) + self.conv2 = ConvModule( + planes, + planes, + kernel_size=conv2_kernel_size, + stride=stride, + padding=conv2_padding, + dilation=dilation, + bias=False, + conv_cfg=dict(type='ConvAudio') if factorize else dict( + type='Conv'), + norm_cfg=None, + act_cfg=None) + self.conv3 = ConvModule( + 2 * planes if factorize else planes, + planes * self.expansion, + kernel_size=1, + bias=False, + norm_cfg=self.norm_cfg, + act_cfg=None) + + self.relu = nn.ReLU(inplace=True) + self.downsample = downsample + + def forward(self, x): + + def _inner_forward(x): + identity = x + out = self.conv1(x) + out = self.conv2(out) + out = self.conv3(out) + + if self.downsample is not None: + identity = self.downsample(x) + out += identity + + return out + + if self.with_cp and x.requires_grad: + out = cp.checkpoint(_inner_forward, x) + else: + out = _inner_forward(x) + + out = self.relu(out) + + return out + + +@BACKBONES.register_module() +class ResNetAudio(nn.Module): + """ResNet 2d audio backbone. Reference: + + `_. + + Args: + depth (int): Depth of resnet, from {50, 101, 152}. + pretrained (str | None): Name of pretrained model. + in_channels (int): Channel num of input features. Default: 1. + base_channels (int): Channel num of stem output features. Default: 32. + num_stages (int): Resnet stages. Default: 4. + strides (Sequence[int]): Strides of residual blocks of each stage. + Default: (1, 2, 2, 2). + dilations (Sequence[int]): Dilation of each stage. + Default: (1, 1, 1, 1). + conv1_kernel (int): Kernel size of the first conv layer. Default: 9. + conv1_stride (int | tuple[int]): Stride of the first conv layer. + Default: 1. + frozen_stages (int): Stages to be frozen (all param fixed). -1 means + not freezing any parameters. + factorize (Sequence[int]): factorize Dims of each block for audio. + Default: (1, 1, 0, 0). + norm_eval (bool): Whether to set BN layers to eval mode, namely, freeze + running stats (mean and var). Default: False. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + conv_cfg (dict): Config for norm layers. Default: dict(type='Conv'). + norm_cfg (dict): + Config for norm layers. required keys are `type` and + `requires_grad`. Default: dict(type='BN2d', requires_grad=True). + act_cfg (dict): Config for activate layers. + Default: dict(type='ReLU', inplace=True). + zero_init_residual (bool): + Whether to use zero initialization for residual block, + Default: True. + """ + + arch_settings = { + # 18: (BasicBlock2dAudio, (2, 2, 2, 2)), + # 34: (BasicBlock2dAudio, (3, 4, 6, 3)), + 50: (Bottleneck2dAudio, (3, 4, 6, 3)), + 101: (Bottleneck2dAudio, (3, 4, 23, 3)), + 152: (Bottleneck2dAudio, (3, 8, 36, 3)) + } + + def __init__(self, + depth, + pretrained, + in_channels=1, + num_stages=4, + base_channels=32, + strides=(1, 2, 2, 2), + dilations=(1, 1, 1, 1), + conv1_kernel=9, + conv1_stride=1, + frozen_stages=-1, + factorize=(1, 1, 0, 0), + norm_eval=False, + with_cp=False, + conv_cfg=dict(type='Conv'), + norm_cfg=dict(type='BN2d', requires_grad=True), + act_cfg=dict(type='ReLU', inplace=True), + zero_init_residual=True): + super().__init__() + if depth not in self.arch_settings: + raise KeyError(f'invalid depth {depth} for resnet') + self.depth = depth + self.pretrained = pretrained + self.in_channels = in_channels + self.base_channels = base_channels + self.num_stages = num_stages + assert 1 <= num_stages <= 4 + self.dilations = dilations + self.conv1_kernel = conv1_kernel + self.conv1_stride = conv1_stride + self.frozen_stages = frozen_stages + self.stage_factorization = _ntuple(num_stages)(factorize) + self.norm_eval = norm_eval + self.with_cp = with_cp + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + self.zero_init_residual = zero_init_residual + + self.block, stage_blocks = self.arch_settings[depth] + self.stage_blocks = stage_blocks[:num_stages] + self.inplanes = self.base_channels + + self._make_stem_layer() + + self.res_layers = [] + for i, num_blocks in enumerate(self.stage_blocks): + stride = strides[i] + dilation = dilations[i] + planes = self.base_channels * 2**i + res_layer = self.make_res_layer( + self.block, + self.inplanes, + planes, + num_blocks, + stride=stride, + dilation=dilation, + factorize=self.stage_factorization[i], + norm_cfg=self.norm_cfg, + with_cp=with_cp) + self.inplanes = planes * self.block.expansion + layer_name = f'layer{i + 1}' + self.add_module(layer_name, res_layer) + self.res_layers.append(layer_name) + + self.feat_dim = self.block.expansion * self.base_channels * 2**( + len(self.stage_blocks) - 1) + + @staticmethod + def make_res_layer(block, + inplanes, + planes, + blocks, + stride=1, + dilation=1, + factorize=1, + norm_cfg=None, + with_cp=False): + """Build residual layer for ResNetAudio. + + Args: + block (nn.Module): Residual module to be built. + inplanes (int): Number of channels for the input feature + in each block. + planes (int): Number of channels for the output feature + in each block. + blocks (int): Number of residual blocks. + stride (Sequence[int]): Strides of residual blocks of each stage. + Default: (1, 2, 2, 2). + dilation (int): Spacing between kernel elements. Default: 1. + factorize (int | Sequence[int]): Determine whether to factorize + for each block. Default: 1. + norm_cfg (dict): + Config for norm layers. required keys are `type` and + `requires_grad`. Default: None. + with_cp (bool): Use checkpoint or not. Using checkpoint will save + some memory while slowing down the training speed. + Default: False. + + Returns: + A residual layer for the given config. + """ + factorize = factorize if not isinstance( + factorize, int) else (factorize, ) * blocks + assert len(factorize) == blocks + downsample = None + if stride != 1 or inplanes != planes * block.expansion: + downsample = ConvModule( + inplanes, + planes * block.expansion, + kernel_size=1, + stride=stride, + bias=False, + norm_cfg=norm_cfg, + act_cfg=None) + + layers = [] + layers.append( + block( + inplanes, + planes, + stride, + dilation, + downsample, + factorize=(factorize[0] == 1), + norm_cfg=norm_cfg, + with_cp=with_cp)) + inplanes = planes * block.expansion + for i in range(1, blocks): + layers.append( + block( + inplanes, + planes, + 1, + dilation, + factorize=(factorize[i] == 1), + norm_cfg=norm_cfg, + with_cp=with_cp)) + + return nn.Sequential(*layers) + + def _make_stem_layer(self): + """Construct the stem layers consists of a conv+norm+act module and a + pooling layer.""" + self.conv1 = ConvModule( + self.in_channels, + self.base_channels, + kernel_size=self.conv1_kernel, + stride=self.conv1_stride, + bias=False, + conv_cfg=dict(type='ConvAudio', op='sum'), + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + def _freeze_stages(self): + """Prevent all the parameters from being optimized before + ``self.frozen_stages``.""" + if self.frozen_stages >= 0: + self.conv1.bn.eval() + for m in [self.conv1.conv, self.conv1.bn]: + for param in m.parameters(): + param.requires_grad = False + + for i in range(1, self.frozen_stages + 1): + m = getattr(self, f'layer{i}') + m.eval() + for param in m.parameters(): + param.requires_grad = False + + def init_weights(self): + """Initiate the parameters either from existing checkpoint or from + scratch.""" + if isinstance(self.pretrained, str): + logger = get_root_logger() + logger.info(f'load model from: {self.pretrained}') + + load_checkpoint(self, self.pretrained, strict=False, logger=logger) + + elif self.pretrained is None: + for m in self.modules(): + if isinstance(m, nn.Conv2d): + kaiming_init(m) + elif isinstance(m, _BatchNorm): + constant_init(m, 1) + + if self.zero_init_residual: + for m in self.modules(): + if isinstance(m, Bottleneck2dAudio): + constant_init(m.conv3.bn, 0) + + else: + raise TypeError('pretrained must be a str or None') + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The feature of the input samples extracted + by the backbone. + """ + x = self.conv1(x) + for layer_name in self.res_layers: + res_layer = getattr(self, layer_name) + x = res_layer(x) + return x + + def train(self, mode=True): + """Set the optimization status when training.""" + super().train(mode) + self._freeze_stages() + if mode and self.norm_eval: + for m in self.modules(): + if isinstance(m, _BatchNorm): + m.eval() diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet_tin.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet_tin.py new file mode 100644 index 00000000..f5c8307c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet_tin.py @@ -0,0 +1,377 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn + +from ..builder import BACKBONES +from .resnet_tsm import ResNetTSM + + +def linear_sampler(data, offset): + """Differentiable Temporal-wise Frame Sampling, which is essentially a + linear interpolation process. + + It gets the feature map which has been split into several groups + and shift them by different offsets according to their groups. + Then compute the weighted sum along with the temporal dimension. + + Args: + data (torch.Tensor): Split data for certain group in shape + [N, num_segments, C, H, W]. + offset (torch.Tensor): Data offsets for this group data in shape + [N, num_segments]. + """ + # [N, num_segments, C, H, W] + n, t, c, h, w = data.shape + + # offset0, offset1: [N, num_segments] + offset0 = torch.floor(offset).int() + offset1 = offset0 + 1 + + # data, data0, data1: [N, num_segments, C, H * W] + data = data.view(n, t, c, h * w).contiguous() + + try: + from mmcv.ops import tin_shift + except (ImportError, ModuleNotFoundError): + raise ImportError('Failed to import `tin_shift` from `mmcv.ops`. You ' + 'will be unable to use TIN. ') + + data0 = tin_shift(data, offset0) + data1 = tin_shift(data, offset1) + + # weight0, weight1: [N, num_segments] + weight0 = 1 - (offset - offset0.float()) + weight1 = 1 - weight0 + + # weight0, weight1: + # [N, num_segments] -> [N, num_segments, C // num_segments] -> [N, C] + group_size = offset.shape[1] + weight0 = weight0[:, :, None].repeat(1, 1, c // group_size) + weight0 = weight0.view(weight0.size(0), -1) + weight1 = weight1[:, :, None].repeat(1, 1, c // group_size) + weight1 = weight1.view(weight1.size(0), -1) + + # weight0, weight1: [N, C] -> [N, 1, C, 1] + weight0 = weight0[:, None, :, None] + weight1 = weight1[:, None, :, None] + + # output: [N, num_segments, C, H * W] -> [N, num_segments, C, H, W] + output = weight0 * data0 + weight1 * data1 + output = output.view(n, t, c, h, w) + + return output + + +class CombineNet(nn.Module): + """Combine Net. + + It combines Temporal interlace module with some part of ResNet layer. + + Args: + net1 (nn.module): Temporal interlace module. + net2 (nn.module): Some part of ResNet layer. + """ + + def __init__(self, net1, net2): + super().__init__() + self.net1 = net1 + self.net2 = net2 + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The output of the module. + """ + # input shape: [num_batches * num_segments, C, H, W] + # output x shape: [num_batches * num_segments, C, H, W] + x = self.net1(x) + # [num_batches * num_segments, C, H, W] + x = self.net2(x) + return x + + +class WeightNet(nn.Module): + """WeightNet in Temporal interlace module. + + The WeightNet consists of two parts: one convolution layer + and a sigmoid function. Following the convolution layer, the sigmoid + function and rescale module can scale our output to the range (0, 2). + Here we set the initial bias of the convolution layer to 0, and the + final initial output will be 1.0. + + Args: + in_channels (int): Channel num of input features. + groups (int): Number of groups for fc layer outputs. + """ + + def __init__(self, in_channels, groups): + super().__init__() + self.sigmoid = nn.Sigmoid() + self.groups = groups + + self.conv = nn.Conv1d(in_channels, groups, 3, padding=1) + + self.init_weights() + + def init_weights(self): + """Initiate the parameters either from existing checkpoint or from + scratch.""" + # we set the initial bias of the convolution + # layer to 0, and the final initial output will be 1.0 + self.conv.bias.data[...] = 0 + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The output of the module. + """ + # calculate weight + # [N, C, T] + n, _, t = x.shape + # [N, groups, T] + x = self.conv(x) + x = x.view(n, self.groups, t) + # [N, T, groups] + x = x.permute(0, 2, 1) + + # scale the output to range (0, 2) + x = 2 * self.sigmoid(x) + # [N, T, groups] + return x + + +class OffsetNet(nn.Module): + """OffsetNet in Temporal interlace module. + + The OffsetNet consists of one convolution layer and two fc layers + with a relu activation following with a sigmoid function. Following + the convolution layer, two fc layers and relu are applied to the output. + Then, apply the sigmoid function with a multiply factor and a minus 0.5 + to transform the output to (-4, 4). + + Args: + in_channels (int): Channel num of input features. + groups (int): Number of groups for fc layer outputs. + num_segments (int): Number of frame segments. + """ + + def __init__(self, in_channels, groups, num_segments): + super().__init__() + self.sigmoid = nn.Sigmoid() + # hard code ``kernel_size`` and ``padding`` according to original repo. + kernel_size = 3 + padding = 1 + + self.conv = nn.Conv1d(in_channels, 1, kernel_size, padding=padding) + self.fc1 = nn.Linear(num_segments, num_segments) + self.relu = nn.ReLU() + self.fc2 = nn.Linear(num_segments, groups) + + self.init_weights() + + def init_weights(self): + """Initiate the parameters either from existing checkpoint or from + scratch.""" + # The bias of the last fc layer is initialized to + # make the post-sigmoid output start from 1 + self.fc2.bias.data[...] = 0.5108 + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The output of the module. + """ + # calculate offset + # [N, C, T] + n, _, t = x.shape + # [N, 1, T] + x = self.conv(x) + # [N, T] + x = x.view(n, t) + # [N, T] + x = self.relu(self.fc1(x)) + # [N, groups] + x = self.fc2(x) + # [N, 1, groups] + x = x.view(n, 1, -1) + + # to make sure the output is in (-t/2, t/2) + # where t = num_segments = 8 + x = 4 * (self.sigmoid(x) - 0.5) + # [N, 1, groups] + return x + + +class TemporalInterlace(nn.Module): + """Temporal interlace module. + + This module is proposed in `Temporal Interlacing Network + `_ + + Args: + in_channels (int): Channel num of input features. + num_segments (int): Number of frame segments. Default: 3. + shift_div (int): Number of division parts for shift. Default: 1. + """ + + def __init__(self, in_channels, num_segments=3, shift_div=1): + super().__init__() + self.num_segments = num_segments + self.shift_div = shift_div + self.in_channels = in_channels + # hard code ``deform_groups`` according to original repo. + self.deform_groups = 2 + + self.offset_net = OffsetNet(in_channels // shift_div, + self.deform_groups, num_segments) + self.weight_net = WeightNet(in_channels // shift_div, + self.deform_groups) + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The output of the module. + """ + # x: [N, C, H, W], + # where N = num_batches x num_segments, C = shift_div * num_folds + n, c, h, w = x.size() + num_batches = n // self.num_segments + num_folds = c // self.shift_div + + # x_out: [num_batches x num_segments, C, H, W] + x_out = torch.zeros((n, c, h, w), device=x.device) + # x_descriptor: [num_batches, num_segments, num_folds, H, W] + x_descriptor = x[:, :num_folds, :, :].view(num_batches, + self.num_segments, + num_folds, h, w) + + # x should only obtain information on temporal and channel dimensions + # x_pooled: [num_batches, num_segments, num_folds, W] + x_pooled = torch.mean(x_descriptor, 3) + # x_pooled: [num_batches, num_segments, num_folds] + x_pooled = torch.mean(x_pooled, 3) + # x_pooled: [num_batches, num_folds, num_segments] + x_pooled = x_pooled.permute(0, 2, 1).contiguous() + + # Calculate weight and bias, here groups = 2 + # x_offset: [num_batches, groups] + x_offset = self.offset_net(x_pooled).view(num_batches, -1) + # x_weight: [num_batches, num_segments, groups] + x_weight = self.weight_net(x_pooled) + + # x_offset: [num_batches, 2 * groups] + x_offset = torch.cat([x_offset, -x_offset], 1) + # x_shift: [num_batches, num_segments, num_folds, H, W] + x_shift = linear_sampler(x_descriptor, x_offset) + + # x_weight: [num_batches, num_segments, groups, 1] + x_weight = x_weight[:, :, :, None] + # x_weight: + # [num_batches, num_segments, groups * 2, c // self.shift_div // 4] + x_weight = x_weight.repeat(1, 1, 2, num_folds // 2 // 2) + # x_weight: + # [num_batches, num_segments, c // self.shift_div = num_folds] + x_weight = x_weight.view(x_weight.size(0), x_weight.size(1), -1) + + # x_weight: [num_batches, num_segments, num_folds, 1, 1] + x_weight = x_weight[:, :, :, None, None] + # x_shift: [num_batches, num_segments, num_folds, H, W] + x_shift = x_shift * x_weight + # x_shift: [num_batches, num_segments, num_folds, H, W] + x_shift = x_shift.contiguous().view(n, num_folds, h, w) + + # x_out: [num_batches x num_segments, C, H, W] + x_out[:, :num_folds, :] = x_shift + x_out[:, num_folds:, :] = x[:, num_folds:, :] + + return x_out + + +@BACKBONES.register_module() +class ResNetTIN(ResNetTSM): + """ResNet backbone for TIN. + + Args: + depth (int): Depth of ResNet, from {18, 34, 50, 101, 152}. + num_segments (int): Number of frame segments. Default: 8. + is_tin (bool): Whether to apply temporal interlace. Default: True. + shift_div (int): Number of division parts for shift. Default: 4. + kwargs (dict, optional): Arguments for ResNet. + """ + + def __init__(self, + depth, + num_segments=8, + is_tin=True, + shift_div=4, + **kwargs): + super().__init__(depth, **kwargs) + self.num_segments = num_segments + self.is_tin = is_tin + self.shift_div = shift_div + + def make_temporal_interlace(self): + """Make temporal interlace for some layers.""" + num_segment_list = [self.num_segments] * 4 + assert num_segment_list[-1] > 0 + + n_round = 1 + if len(list(self.layer3.children())) >= 23: + print(f'=> Using n_round {n_round} to insert temporal shift.') + + def make_block_interlace(stage, num_segments, shift_div): + """Apply Deformable shift for a ResNet layer module. + + Args: + stage (nn.module): A ResNet layer to be deformed. + num_segments (int): Number of frame segments. + shift_div (int): Number of division parts for shift. + + Returns: + nn.Sequential: A Sequential container consisted of + deformed Interlace blocks. + """ + blocks = list(stage.children()) + for i, b in enumerate(blocks): + if i % n_round == 0: + tds = TemporalInterlace( + b.conv1.in_channels, + num_segments=num_segments, + shift_div=shift_div) + blocks[i].conv1.conv = CombineNet(tds, + blocks[i].conv1.conv) + return nn.Sequential(*blocks) + + self.layer1 = make_block_interlace(self.layer1, num_segment_list[0], + self.shift_div) + self.layer2 = make_block_interlace(self.layer2, num_segment_list[1], + self.shift_div) + self.layer3 = make_block_interlace(self.layer3, num_segment_list[2], + self.shift_div) + self.layer4 = make_block_interlace(self.layer4, num_segment_list[3], + self.shift_div) + + def init_weights(self): + """Initiate the parameters either from existing checkpoint or from + scratch.""" + super(ResNetTSM, self).init_weights() + if self.is_tin: + self.make_temporal_interlace() + if len(self.non_local_cfg) != 0: + self.make_non_local() diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet_tsm.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet_tsm.py new file mode 100644 index 00000000..0fbc20ed --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/resnet_tsm.py @@ -0,0 +1,295 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn +from mmcv.cnn import NonLocal3d +from torch.nn.modules.utils import _ntuple + +from ..builder import BACKBONES +from .resnet import ResNet + + +class NL3DWrapper(nn.Module): + """3D Non-local wrapper for ResNet50. + + Wrap ResNet layers with 3D NonLocal modules. + + Args: + block (nn.Module): Residual blocks to be built. + num_segments (int): Number of frame segments. + non_local_cfg (dict): Config for non-local layers. Default: ``dict()``. + """ + + def __init__(self, block, num_segments, non_local_cfg=dict()): + super(NL3DWrapper, self).__init__() + self.block = block + self.non_local_cfg = non_local_cfg + self.non_local_block = NonLocal3d(self.block.conv3.norm.num_features, + **self.non_local_cfg) + self.num_segments = num_segments + + def forward(self, x): + x = self.block(x) + + n, c, h, w = x.size() + x = x.view(n // self.num_segments, self.num_segments, c, h, + w).transpose(1, 2).contiguous() + x = self.non_local_block(x) + x = x.transpose(1, 2).contiguous().view(n, c, h, w) + return x + + +class TemporalShift(nn.Module): + """Temporal shift module. + + This module is proposed in + `TSM: Temporal Shift Module for Efficient Video Understanding + `_ + + Args: + net (nn.module): Module to make temporal shift. + num_segments (int): Number of frame segments. Default: 3. + shift_div (int): Number of divisions for shift. Default: 8. + """ + + def __init__(self, net, num_segments=3, shift_div=8): + super().__init__() + self.net = net + self.num_segments = num_segments + self.shift_div = shift_div + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The output of the module. + """ + x = self.shift(x, self.num_segments, shift_div=self.shift_div) + return self.net(x) + + @staticmethod + def shift(x, num_segments, shift_div=3): + """Perform temporal shift operation on the feature. + + Args: + x (torch.Tensor): The input feature to be shifted. + num_segments (int): Number of frame segments. + shift_div (int): Number of divisions for shift. Default: 3. + + Returns: + torch.Tensor: The shifted feature. + """ + # [N, C, H, W] + n, c, h, w = x.size() + + # [N // num_segments, num_segments, C, H*W] + # can't use 5 dimensional array on PPL2D backend for caffe + x = x.view(-1, num_segments, c, h * w) + + # get shift fold + fold = c // shift_div + + # split c channel into three parts: + # left_split, mid_split, right_split + left_split = x[:, :, :fold, :] + mid_split = x[:, :, fold:2 * fold, :] + right_split = x[:, :, 2 * fold:, :] + + # can't use torch.zeros(*A.shape) or torch.zeros_like(A) + # because array on caffe inference must be got by computing + + # shift left on num_segments channel in `left_split` + zeros = left_split - left_split + blank = zeros[:, :1, :, :] + left_split = left_split[:, 1:, :, :] + left_split = torch.cat((left_split, blank), 1) + + # shift right on num_segments channel in `mid_split` + zeros = mid_split - mid_split + blank = zeros[:, :1, :, :] + mid_split = mid_split[:, :-1, :, :] + mid_split = torch.cat((blank, mid_split), 1) + + # right_split: no shift + + # concatenate + out = torch.cat((left_split, mid_split, right_split), 2) + + # [N, C, H, W] + # restore the original dimension + return out.view(n, c, h, w) + + +@BACKBONES.register_module() +class ResNetTSM(ResNet): + """ResNet backbone for TSM. + + Args: + num_segments (int): Number of frame segments. Default: 8. + is_shift (bool): Whether to make temporal shift in reset layers. + Default: True. + non_local (Sequence[int]): Determine whether to apply non-local module + in the corresponding block of each stages. Default: (0, 0, 0, 0). + non_local_cfg (dict): Config for non-local module. Default: ``dict()``. + shift_div (int): Number of div for shift. Default: 8. + shift_place (str): Places in resnet layers for shift, which is chosen + from ['block', 'blockres']. + If set to 'block', it will apply temporal shift to all child blocks + in each resnet layer. + If set to 'blockres', it will apply temporal shift to each `conv1` + layer of all child blocks in each resnet layer. + Default: 'blockres'. + temporal_pool (bool): Whether to add temporal pooling. Default: False. + **kwargs (keyword arguments, optional): Arguments for ResNet. + """ + + def __init__(self, + depth, + num_segments=8, + is_shift=True, + non_local=(0, 0, 0, 0), + non_local_cfg=dict(), + shift_div=8, + shift_place='blockres', + temporal_pool=False, + **kwargs): + super().__init__(depth, **kwargs) + self.num_segments = num_segments + self.is_shift = is_shift + self.shift_div = shift_div + self.shift_place = shift_place + self.temporal_pool = temporal_pool + self.non_local = non_local + self.non_local_stages = _ntuple(self.num_stages)(non_local) + self.non_local_cfg = non_local_cfg + + def make_temporal_shift(self): + """Make temporal shift for some layers.""" + if self.temporal_pool: + num_segment_list = [ + self.num_segments, self.num_segments // 2, + self.num_segments // 2, self.num_segments // 2 + ] + else: + num_segment_list = [self.num_segments] * 4 + if num_segment_list[-1] <= 0: + raise ValueError('num_segment_list[-1] must be positive') + + if self.shift_place == 'block': + + def make_block_temporal(stage, num_segments): + """Make temporal shift on some blocks. + + Args: + stage (nn.Module): Model layers to be shifted. + num_segments (int): Number of frame segments. + + Returns: + nn.Module: The shifted blocks. + """ + blocks = list(stage.children()) + for i, b in enumerate(blocks): + blocks[i] = TemporalShift( + b, num_segments=num_segments, shift_div=self.shift_div) + return nn.Sequential(*blocks) + + self.layer1 = make_block_temporal(self.layer1, num_segment_list[0]) + self.layer2 = make_block_temporal(self.layer2, num_segment_list[1]) + self.layer3 = make_block_temporal(self.layer3, num_segment_list[2]) + self.layer4 = make_block_temporal(self.layer4, num_segment_list[3]) + + elif 'blockres' in self.shift_place: + n_round = 1 + if len(list(self.layer3.children())) >= 23: + n_round = 2 + + def make_block_temporal(stage, num_segments): + """Make temporal shift on some blocks. + + Args: + stage (nn.Module): Model layers to be shifted. + num_segments (int): Number of frame segments. + + Returns: + nn.Module: The shifted blocks. + """ + blocks = list(stage.children()) + for i, b in enumerate(blocks): + if i % n_round == 0: + blocks[i].conv1.conv = TemporalShift( + b.conv1.conv, + num_segments=num_segments, + shift_div=self.shift_div) + return nn.Sequential(*blocks) + + self.layer1 = make_block_temporal(self.layer1, num_segment_list[0]) + self.layer2 = make_block_temporal(self.layer2, num_segment_list[1]) + self.layer3 = make_block_temporal(self.layer3, num_segment_list[2]) + self.layer4 = make_block_temporal(self.layer4, num_segment_list[3]) + + else: + raise NotImplementedError + + def make_temporal_pool(self): + """Make temporal pooling between layer1 and layer2, using a 3D max + pooling layer.""" + + class TemporalPool(nn.Module): + """Temporal pool module. + + Wrap layer2 in ResNet50 with a 3D max pooling layer. + + Args: + net (nn.Module): Module to make temporal pool. + num_segments (int): Number of frame segments. + """ + + def __init__(self, net, num_segments): + super().__init__() + self.net = net + self.num_segments = num_segments + self.max_pool3d = nn.MaxPool3d( + kernel_size=(3, 1, 1), stride=(2, 1, 1), padding=(1, 0, 0)) + + def forward(self, x): + # [N, C, H, W] + n, c, h, w = x.size() + # [N // num_segments, C, num_segments, H, W] + x = x.view(n // self.num_segments, self.num_segments, c, h, + w).transpose(1, 2) + # [N // num_segmnets, C, num_segments // 2, H, W] + x = self.max_pool3d(x) + # [N // 2, C, H, W] + x = x.transpose(1, 2).contiguous().view(n // 2, c, h, w) + return self.net(x) + + self.layer2 = TemporalPool(self.layer2, self.num_segments) + + def make_non_local(self): + # This part is for ResNet50 + for i in range(self.num_stages): + non_local_stage = self.non_local_stages[i] + if sum(non_local_stage) == 0: + continue + + layer_name = f'layer{i + 1}' + res_layer = getattr(self, layer_name) + + for idx, non_local in enumerate(non_local_stage): + if non_local: + res_layer[idx] = NL3DWrapper(res_layer[idx], + self.num_segments, + self.non_local_cfg) + + def init_weights(self): + """Initiate the parameters either from existing checkpoint or from + scratch.""" + super().init_weights() + if self.is_shift: + self.make_temporal_shift() + if len(self.non_local_cfg) != 0: + self.make_non_local() + if self.temporal_pool: + self.make_temporal_pool() diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/stgcn.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/stgcn.py new file mode 100644 index 00000000..99ab938b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/stgcn.py @@ -0,0 +1,281 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn +from mmcv.cnn import constant_init, kaiming_init, normal_init +from mmcv.runner import load_checkpoint +from mmcv.utils import _BatchNorm + +from ...utils import get_root_logger +from ..builder import BACKBONES +from ..skeleton_gcn.utils import Graph + + +def zero(x): + """return zero.""" + return 0 + + +def identity(x): + """return input itself.""" + return x + + +class STGCNBlock(nn.Module): + """Applies a spatial temporal graph convolution over an input graph + sequence. + + Args: + in_channels (int): Number of channels in the input sequence data + out_channels (int): Number of channels produced by the convolution + kernel_size (tuple): Size of the temporal convolving kernel and + graph convolving kernel + stride (int, optional): Stride of the temporal convolution. Default: 1 + dropout (int, optional): Dropout rate of the final output. Default: 0 + residual (bool, optional): If ``True``, applies a residual mechanism. + Default: ``True`` + + Shape: + - Input[0]: Input graph sequence in :math:`(N, in_channels, T_{in}, V)` + format + - Input[1]: Input graph adjacency matrix in :math:`(K, V, V)` format + - Output[0]: Outpu graph sequence in :math:`(N, out_channels, T_{out}, + V)` format + - Output[1]: Graph adjacency matrix for output data in :math:`(K, V, + V)` format + + where + :math:`N` is a batch size, + :math:`K` is the spatial kernel size, as :math:`K == kernel_size[1] + `, + :math:`T_{in}/T_{out}` is a length of input/output sequence, + :math:`V` is the number of graph nodes. + """ + + def __init__(self, + in_channels, + out_channels, + kernel_size, + stride=1, + dropout=0, + residual=True): + super().__init__() + + assert len(kernel_size) == 2 + assert kernel_size[0] % 2 == 1 + padding = ((kernel_size[0] - 1) // 2, 0) + + self.gcn = ConvTemporalGraphical(in_channels, out_channels, + kernel_size[1]) + self.tcn = nn.Sequential( + nn.BatchNorm2d(out_channels), nn.ReLU(inplace=True), + nn.Conv2d(out_channels, out_channels, (kernel_size[0], 1), + (stride, 1), padding), nn.BatchNorm2d(out_channels), + nn.Dropout(dropout, inplace=True)) + + if not residual: + self.residual = zero + + elif (in_channels == out_channels) and (stride == 1): + self.residual = identity + + else: + self.residual = nn.Sequential( + nn.Conv2d( + in_channels, + out_channels, + kernel_size=1, + stride=(stride, 1)), nn.BatchNorm2d(out_channels)) + + self.relu = nn.ReLU(inplace=True) + + def forward(self, x, adj_mat): + """Defines the computation performed at every call.""" + res = self.residual(x) + x, adj_mat = self.gcn(x, adj_mat) + x = self.tcn(x) + res + + return self.relu(x), adj_mat + + +class ConvTemporalGraphical(nn.Module): + """The basic module for applying a graph convolution. + + Args: + in_channels (int): Number of channels in the input sequence data + out_channels (int): Number of channels produced by the convolution + kernel_size (int): Size of the graph convolving kernel + t_kernel_size (int): Size of the temporal convolving kernel + t_stride (int, optional): Stride of the temporal convolution. + Default: 1 + t_padding (int, optional): Temporal zero-padding added to both sides + of the input. Default: 0 + t_dilation (int, optional): Spacing between temporal kernel elements. + Default: 1 + bias (bool, optional): If ``True``, adds a learnable bias to the + output. Default: ``True`` + + Shape: + - Input[0]: Input graph sequence in :math:`(N, in_channels, T_{in}, V)` + format + - Input[1]: Input graph adjacency matrix in :math:`(K, V, V)` format + - Output[0]: Output graph sequence in :math:`(N, out_channels, T_{out} + , V)` format + - Output[1]: Graph adjacency matrix for output data in :math:`(K, V, V) + ` format + + where + :math:`N` is a batch size, + :math:`K` is the spatial kernel size, as :math:`K == kernel_size[1] + `, + :math:`T_{in}/T_{out}` is a length of input/output sequence, + :math:`V` is the number of graph nodes. + """ + + def __init__(self, + in_channels, + out_channels, + kernel_size, + t_kernel_size=1, + t_stride=1, + t_padding=0, + t_dilation=1, + bias=True): + super().__init__() + + self.kernel_size = kernel_size + self.conv = nn.Conv2d( + in_channels, + out_channels * kernel_size, + kernel_size=(t_kernel_size, 1), + padding=(t_padding, 0), + stride=(t_stride, 1), + dilation=(t_dilation, 1), + bias=bias) + + def forward(self, x, adj_mat): + """Defines the computation performed at every call.""" + assert adj_mat.size(0) == self.kernel_size + + x = self.conv(x) + + n, kc, t, v = x.size() + x = x.view(n, self.kernel_size, kc // self.kernel_size, t, v) + x = torch.einsum('nkctv,kvw->nctw', (x, adj_mat)) + + return x.contiguous(), adj_mat + + +@BACKBONES.register_module() +class STGCN(nn.Module): + """Backbone of Spatial temporal graph convolutional networks. + + Args: + in_channels (int): Number of channels in the input data. + graph_cfg (dict): The arguments for building the graph. + edge_importance_weighting (bool): If ``True``, adds a learnable + importance weighting to the edges of the graph. Default: True. + data_bn (bool): If 'True', adds data normalization to the inputs. + Default: True. + pretrained (str | None): Name of pretrained model. + **kwargs (optional): Other parameters for graph convolution units. + + Shape: + - Input: :math:`(N, in_channels, T_{in}, V_{in}, M_{in})` + - Output: :math:`(N, num_class)` where + :math:`N` is a batch size, + :math:`T_{in}` is a length of input sequence, + :math:`V_{in}` is the number of graph nodes, + :math:`M_{in}` is the number of instance in a frame. + """ + + def __init__(self, + in_channels, + graph_cfg, + edge_importance_weighting=True, + data_bn=True, + pretrained=None, + **kwargs): + super().__init__() + + # load graph + self.graph = Graph(**graph_cfg) + A = torch.tensor( + self.graph.A, dtype=torch.float32, requires_grad=False) + self.register_buffer('A', A) + + # build networks + spatial_kernel_size = A.size(0) + temporal_kernel_size = 9 + kernel_size = (temporal_kernel_size, spatial_kernel_size) + self.data_bn = nn.BatchNorm1d(in_channels * + A.size(1)) if data_bn else identity + + kwargs0 = {k: v for k, v in kwargs.items() if k != 'dropout'} + self.st_gcn_networks = nn.ModuleList(( + STGCNBlock( + in_channels, 64, kernel_size, 1, residual=False, **kwargs0), + STGCNBlock(64, 64, kernel_size, 1, **kwargs), + STGCNBlock(64, 64, kernel_size, 1, **kwargs), + STGCNBlock(64, 64, kernel_size, 1, **kwargs), + STGCNBlock(64, 128, kernel_size, 2, **kwargs), + STGCNBlock(128, 128, kernel_size, 1, **kwargs), + STGCNBlock(128, 128, kernel_size, 1, **kwargs), + STGCNBlock(128, 256, kernel_size, 2, **kwargs), + STGCNBlock(256, 256, kernel_size, 1, **kwargs), + STGCNBlock(256, 256, kernel_size, 1, **kwargs), + )) + + # initialize parameters for edge importance weighting + if edge_importance_weighting: + self.edge_importance = nn.ParameterList([ + nn.Parameter(torch.ones(self.A.size())) + for i in self.st_gcn_networks + ]) + else: + self.edge_importance = [1 for _ in self.st_gcn_networks] + + self.pretrained = pretrained + + def init_weights(self): + """Initiate the parameters either from existing checkpoint or from + scratch.""" + if isinstance(self.pretrained, str): + logger = get_root_logger() + logger.info(f'load model from: {self.pretrained}') + + load_checkpoint(self, self.pretrained, strict=False, logger=logger) + + elif self.pretrained is None: + for m in self.modules(): + if isinstance(m, nn.Conv2d): + kaiming_init(m) + elif isinstance(m, nn.Linear): + normal_init(m) + elif isinstance(m, _BatchNorm): + constant_init(m, 1) + else: + raise TypeError('pretrained must be a str or None') + + def forward(self, x): + """Defines the computation performed at every call. + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The output of the module. + """ + # data normalization + x = x.float() + n, c, t, v, m = x.size() # bs 3 300 25(17) 2 + x = x.permute(0, 4, 3, 1, 2).contiguous() # N M V C T + x = x.view(n * m, v * c, t) + x = self.data_bn(x) + x = x.view(n, m, v, c, t) + x = x.permute(0, 1, 3, 4, 2).contiguous() + x = x.view(n * m, c, t, v) # bsx2 3 300 25(17) + + # forward + for gcn, importance in zip(self.st_gcn_networks, self.edge_importance): + x, _ = gcn(x, self.A * importance) + + return x diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/tanet.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/tanet.py new file mode 100644 index 00000000..8cbaa8fc --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/tanet.py @@ -0,0 +1,115 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from copy import deepcopy + +import torch.nn as nn +from torch.utils import checkpoint as cp + +from ..builder import BACKBONES +from ..common import TAM +from .resnet import Bottleneck, ResNet + + +class TABlock(nn.Module): + """Temporal Adaptive Block (TA-Block) for TANet. + + This block is proposed in `TAM: TEMPORAL ADAPTIVE MODULE FOR VIDEO + RECOGNITION `_ + + The temporal adaptive module (TAM) is embedded into ResNet-Block + after the first Conv2D, which turns the vanilla ResNet-Block + into TA-Block. + + Args: + block (nn.Module): Residual blocks to be substituted. + num_segments (int): Number of frame segments. + tam_cfg (dict): Config for temporal adaptive module (TAM). + Default: dict(). + """ + + def __init__(self, block, num_segments, tam_cfg=dict()): + super().__init__() + self.tam_cfg = deepcopy(tam_cfg) + self.block = block + self.num_segments = num_segments + self.tam = TAM( + in_channels=block.conv1.out_channels, + num_segments=num_segments, + **self.tam_cfg) + + if not isinstance(self.block, Bottleneck): + raise NotImplementedError('TA-Blocks have not been fully ' + 'implemented except the pattern based ' + 'on Bottleneck block.') + + def forward(self, x): + assert isinstance(self.block, Bottleneck) + + def _inner_forward(x): + """Forward wrapper for utilizing checkpoint.""" + identity = x + + out = self.block.conv1(x) + out = self.tam(out) + out = self.block.conv2(out) + out = self.block.conv3(out) + + if self.block.downsample is not None: + identity = self.block.downsample(x) + + out = out + identity + + return out + + if self.block.with_cp and x.requires_grad: + out = cp.checkpoint(_inner_forward, x) + else: + out = _inner_forward(x) + + out = self.block.relu(out) + + return out + + +@BACKBONES.register_module() +class TANet(ResNet): + """Temporal Adaptive Network (TANet) backbone. + + This backbone is proposed in `TAM: TEMPORAL ADAPTIVE MODULE FOR VIDEO + RECOGNITION `_ + + Embedding the temporal adaptive module (TAM) into ResNet to + instantiate TANet. + + Args: + depth (int): Depth of resnet, from {18, 34, 50, 101, 152}. + num_segments (int): Number of frame segments. + tam_cfg (dict | None): Config for temporal adaptive module (TAM). + Default: dict(). + **kwargs (keyword arguments, optional): Arguments for ResNet except + ```depth```. + """ + + def __init__(self, depth, num_segments, tam_cfg=dict(), **kwargs): + super().__init__(depth, **kwargs) + assert num_segments >= 3 + self.num_segments = num_segments + self.tam_cfg = deepcopy(tam_cfg) + + def init_weights(self): + super().init_weights() + self.make_tam_modeling() + + def make_tam_modeling(self): + """Replace ResNet-Block with TA-Block.""" + + def make_tam_block(stage, num_segments, tam_cfg=dict()): + blocks = list(stage.children()) + for i, block in enumerate(blocks): + blocks[i] = TABlock(block, num_segments, deepcopy(tam_cfg)) + return nn.Sequential(*blocks) + + for i in range(self.num_stages): + layer_name = f'layer{i + 1}' + res_layer = getattr(self, layer_name) + setattr(self, layer_name, + make_tam_block(res_layer, self.num_segments, self.tam_cfg)) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/timesformer.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/timesformer.py new file mode 100644 index 00000000..26a9d7ad --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/timesformer.py @@ -0,0 +1,285 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +import torch +import torch.nn as nn +from einops import rearrange +from mmcv import ConfigDict +from mmcv.cnn import build_conv_layer, build_norm_layer, kaiming_init +from mmcv.cnn.bricks.transformer import build_transformer_layer_sequence +from mmcv.cnn.utils.weight_init import trunc_normal_ +from mmcv.runner import _load_checkpoint, load_state_dict +from torch.nn.modules.utils import _pair + +from ...utils import get_root_logger +from ..builder import BACKBONES + + +class PatchEmbed(nn.Module): + """Image to Patch Embedding. + + Args: + img_size (int | tuple): Size of input image. + patch_size (int): Size of one patch. + in_channels (int): Channel num of input features. Defaults to 3. + embed_dims (int): Dimensions of embedding. Defaults to 768. + conv_cfg (dict | None): Config dict for convolution layer. Defaults to + `dict(type='Conv2d')`. + """ + + def __init__(self, + img_size, + patch_size, + in_channels=3, + embed_dims=768, + conv_cfg=dict(type='Conv2d')): + super().__init__() + self.img_size = _pair(img_size) + self.patch_size = _pair(patch_size) + + num_patches = (self.img_size[1] // self.patch_size[1]) * ( + self.img_size[0] // self.patch_size[0]) + assert num_patches * self.patch_size[0] * self.patch_size[1] == \ + self.img_size[0] * self.img_size[1], \ + 'The image size H*W must be divisible by patch size' + self.num_patches = num_patches + + # Use conv layer to embed + self.projection = build_conv_layer( + conv_cfg, + in_channels, + embed_dims, + kernel_size=patch_size, + stride=patch_size) + + self.init_weights() + + def init_weights(self): + # Lecun norm from ClassyVision + kaiming_init(self.projection, mode='fan_in', nonlinearity='linear') + + def forward(self, x): + x = rearrange(x, 'b c t h w -> (b t) c h w') + x = self.projection(x).flatten(2).transpose(1, 2) + return x + + +@BACKBONES.register_module() +class TimeSformer(nn.Module): + """TimeSformer. A PyTorch impl of `Is Space-Time Attention All You Need for + Video Understanding? `_ + + Args: + num_frames (int): Number of frames in the video. + img_size (int | tuple): Size of input image. + patch_size (int): Size of one patch. + pretrained (str | None): Name of pretrained model. Default: None. + embed_dims (int): Dimensions of embedding. Defaults to 768. + num_heads (int): Number of parallel attention heads in + TransformerCoder. Defaults to 12. + num_transformer_layers (int): Number of transformer layers. Defaults to + 12. + in_channels (int): Channel num of input features. Defaults to 3. + dropout_ratio (float): Probability of dropout layer. Defaults to 0.. + transformer_layers (list[obj:`mmcv.ConfigDict`] | + obj:`mmcv.ConfigDict` | None): Config of transformerlayer in + TransformerCoder. If it is obj:`mmcv.ConfigDict`, it would be + repeated `num_transformer_layers` times to a + list[obj:`mmcv.ConfigDict`]. Defaults to None. + attention_type (str): Type of attentions in TransformerCoder. Choices + are 'divided_space_time', 'space_only' and 'joint_space_time'. + Defaults to 'divided_space_time'. + norm_cfg (dict): Config for norm layers. Defaults to + `dict(type='LN', eps=1e-6)`. + """ + supported_attention_types = [ + 'divided_space_time', 'space_only', 'joint_space_time' + ] + + def __init__(self, + num_frames, + img_size, + patch_size, + pretrained=None, + embed_dims=768, + num_heads=12, + num_transformer_layers=12, + in_channels=3, + dropout_ratio=0., + transformer_layers=None, + attention_type='divided_space_time', + norm_cfg=dict(type='LN', eps=1e-6), + **kwargs): + super().__init__(**kwargs) + assert attention_type in self.supported_attention_types, ( + f'Unsupported Attention Type {attention_type}!') + assert transformer_layers is None or isinstance( + transformer_layers, (dict, list)) + + self.num_frames = num_frames + self.pretrained = pretrained + self.embed_dims = embed_dims + self.num_transformer_layers = num_transformer_layers + self.attention_type = attention_type + + self.patch_embed = PatchEmbed( + img_size=img_size, + patch_size=patch_size, + in_channels=in_channels, + embed_dims=embed_dims) + num_patches = self.patch_embed.num_patches + + self.cls_token = nn.Parameter(torch.zeros(1, 1, embed_dims)) + self.pos_embed = nn.Parameter( + torch.zeros(1, num_patches + 1, embed_dims)) + self.drop_after_pos = nn.Dropout(p=dropout_ratio) + if self.attention_type != 'space_only': + self.time_embed = nn.Parameter( + torch.zeros(1, num_frames, embed_dims)) + self.drop_after_time = nn.Dropout(p=dropout_ratio) + + self.norm = build_norm_layer(norm_cfg, embed_dims)[1] + + if transformer_layers is None: + # stochastic depth decay rule + dpr = np.linspace(0, 0.1, num_transformer_layers) + + if self.attention_type == 'divided_space_time': + _transformerlayers_cfg = [ + dict( + type='BaseTransformerLayer', + attn_cfgs=[ + dict( + type='DividedTemporalAttentionWithNorm', + embed_dims=embed_dims, + num_heads=num_heads, + num_frames=num_frames, + dropout_layer=dict( + type='DropPath', drop_prob=dpr[i]), + norm_cfg=dict(type='LN', eps=1e-6)), + dict( + type='DividedSpatialAttentionWithNorm', + embed_dims=embed_dims, + num_heads=num_heads, + num_frames=num_frames, + dropout_layer=dict( + type='DropPath', drop_prob=dpr[i]), + norm_cfg=dict(type='LN', eps=1e-6)) + ], + ffn_cfgs=dict( + type='FFNWithNorm', + embed_dims=embed_dims, + feedforward_channels=embed_dims * 4, + num_fcs=2, + act_cfg=dict(type='GELU'), + dropout_layer=dict( + type='DropPath', drop_prob=dpr[i]), + norm_cfg=dict(type='LN', eps=1e-6)), + operation_order=('self_attn', 'self_attn', 'ffn')) + for i in range(num_transformer_layers) + ] + else: + # Sapce Only & Joint Space Time + _transformerlayers_cfg = [ + dict( + type='BaseTransformerLayer', + attn_cfgs=[ + dict( + type='MultiheadAttention', + embed_dims=embed_dims, + num_heads=num_heads, + batch_first=True, + dropout_layer=dict( + type='DropPath', drop_prob=dpr[i])) + ], + ffn_cfgs=dict( + type='FFN', + embed_dims=embed_dims, + feedforward_channels=embed_dims * 4, + num_fcs=2, + act_cfg=dict(type='GELU'), + dropout_layer=dict( + type='DropPath', drop_prob=dpr[i])), + operation_order=('norm', 'self_attn', 'norm', 'ffn'), + norm_cfg=dict(type='LN', eps=1e-6), + batch_first=True) + for i in range(num_transformer_layers) + ] + + transformer_layers = ConfigDict( + dict( + type='TransformerLayerSequence', + transformerlayers=_transformerlayers_cfg, + num_layers=num_transformer_layers)) + + self.transformer_layers = build_transformer_layer_sequence( + transformer_layers) + + def init_weights(self, pretrained=None): + """Initiate the parameters either from existing checkpoint or from + scratch.""" + trunc_normal_(self.pos_embed, std=.02) + trunc_normal_(self.cls_token, std=.02) + + if pretrained: + self.pretrained = pretrained + if isinstance(self.pretrained, str): + logger = get_root_logger() + logger.info(f'load model from: {self.pretrained}') + + state_dict = _load_checkpoint(self.pretrained) + if 'state_dict' in state_dict: + state_dict = state_dict['state_dict'] + + if self.attention_type == 'divided_space_time': + # modify the key names of norm layers + old_state_dict_keys = list(state_dict.keys()) + for old_key in old_state_dict_keys: + if 'norms' in old_key: + new_key = old_key.replace('norms.0', + 'attentions.0.norm') + new_key = new_key.replace('norms.1', 'ffns.0.norm') + state_dict[new_key] = state_dict.pop(old_key) + + # copy the parameters of space attention to time attention + old_state_dict_keys = list(state_dict.keys()) + for old_key in old_state_dict_keys: + if 'attentions.0' in old_key: + new_key = old_key.replace('attentions.0', + 'attentions.1') + state_dict[new_key] = state_dict[old_key].clone() + + load_state_dict(self, state_dict, strict=False, logger=logger) + + def forward(self, x): + """Defines the computation performed at every call.""" + # x [batch_size * num_frames, num_patches, embed_dims] + batches = x.shape[0] + x = self.patch_embed(x) + + # x [batch_size * num_frames, num_patches + 1, embed_dims] + cls_tokens = self.cls_token.expand(x.size(0), -1, -1) + x = torch.cat((cls_tokens, x), dim=1) + x = x + self.pos_embed + x = self.drop_after_pos(x) + + # Add Time Embedding + if self.attention_type != 'space_only': + # x [batch_size, num_patches * num_frames + 1, embed_dims] + cls_tokens = x[:batches, 0, :].unsqueeze(1) + x = rearrange(x[:, 1:, :], '(b t) p m -> (b p) t m', b=batches) + x = x + self.time_embed + x = self.drop_after_time(x) + x = rearrange(x, '(b p) t m -> b (p t) m', b=batches) + x = torch.cat((cls_tokens, x), dim=1) + + x = self.transformer_layers(x, None, None) + + if self.attention_type == 'space_only': + # x [batch_size, num_patches + 1, embed_dims] + x = x.view(-1, self.num_frames, *x.size()[-2:]) + x = torch.mean(x, 1) + + x = self.norm(x) + + # Return Class Token + return x[:, 0] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/x3d.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/x3d.py new file mode 100644 index 00000000..357af53a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/backbones/x3d.py @@ -0,0 +1,524 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import math + +import torch.nn as nn +import torch.utils.checkpoint as cp +from mmcv.cnn import (ConvModule, Swish, build_activation_layer, constant_init, + kaiming_init) +from mmcv.runner import load_checkpoint +from mmcv.utils import _BatchNorm + +from ...utils import get_root_logger +from ..builder import BACKBONES + + +class SEModule(nn.Module): + + def __init__(self, channels, reduction): + super().__init__() + self.avg_pool = nn.AdaptiveAvgPool3d(1) + self.bottleneck = self._round_width(channels, reduction) + self.fc1 = nn.Conv3d( + channels, self.bottleneck, kernel_size=1, padding=0) + self.relu = nn.ReLU() + self.fc2 = nn.Conv3d( + self.bottleneck, channels, kernel_size=1, padding=0) + self.sigmoid = nn.Sigmoid() + + @staticmethod + def _round_width(width, multiplier, min_width=8, divisor=8): + width *= multiplier + min_width = min_width or divisor + width_out = max(min_width, + int(width + divisor / 2) // divisor * divisor) + if width_out < 0.9 * width: + width_out += divisor + return int(width_out) + + def forward(self, x): + module_input = x + x = self.avg_pool(x) + x = self.fc1(x) + x = self.relu(x) + x = self.fc2(x) + x = self.sigmoid(x) + return module_input * x + + +class BlockX3D(nn.Module): + """BlockX3D 3d building block for X3D. + + Args: + inplanes (int): Number of channels for the input in first conv3d layer. + planes (int): Number of channels produced by some norm/conv3d layers. + outplanes (int): Number of channels produced by final the conv3d layer. + spatial_stride (int): Spatial stride in the conv3d layer. Default: 1. + downsample (nn.Module | None): Downsample layer. Default: None. + se_ratio (float | None): The reduction ratio of squeeze and excitation + unit. If set as None, it means not using SE unit. Default: None. + use_swish (bool): Whether to use swish as the activation function + before and after the 3x3x3 conv. Default: True. + conv_cfg (dict): Config dict for convolution layer. + Default: ``dict(type='Conv3d')``. + norm_cfg (dict): Config for norm layers. required keys are ``type``, + Default: ``dict(type='BN3d')``. + act_cfg (dict): Config dict for activation layer. + Default: ``dict(type='ReLU')``. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + """ + + def __init__(self, + inplanes, + planes, + outplanes, + spatial_stride=1, + downsample=None, + se_ratio=None, + use_swish=True, + conv_cfg=dict(type='Conv3d'), + norm_cfg=dict(type='BN3d'), + act_cfg=dict(type='ReLU'), + with_cp=False): + super().__init__() + + self.inplanes = inplanes + self.planes = planes + self.outplanes = outplanes + self.spatial_stride = spatial_stride + self.downsample = downsample + self.se_ratio = se_ratio + self.use_swish = use_swish + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + self.act_cfg_swish = dict(type='Swish') + self.with_cp = with_cp + + self.conv1 = ConvModule( + in_channels=inplanes, + out_channels=planes, + kernel_size=1, + stride=1, + padding=0, + bias=False, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + # Here we use the channel-wise conv + self.conv2 = ConvModule( + in_channels=planes, + out_channels=planes, + kernel_size=3, + stride=(1, self.spatial_stride, self.spatial_stride), + padding=1, + groups=planes, + bias=False, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=None) + + self.swish = Swish() + + self.conv3 = ConvModule( + in_channels=planes, + out_channels=outplanes, + kernel_size=1, + stride=1, + padding=0, + bias=False, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=None) + + if self.se_ratio is not None: + self.se_module = SEModule(planes, self.se_ratio) + + self.relu = build_activation_layer(self.act_cfg) + + def forward(self, x): + """Defines the computation performed at every call.""" + + def _inner_forward(x): + """Forward wrapper for utilizing checkpoint.""" + identity = x + + out = self.conv1(x) + out = self.conv2(out) + if self.se_ratio is not None: + out = self.se_module(out) + + out = self.swish(out) + + out = self.conv3(out) + + if self.downsample is not None: + identity = self.downsample(x) + + out = out + identity + return out + + if self.with_cp and x.requires_grad: + out = cp.checkpoint(_inner_forward, x) + else: + out = _inner_forward(x) + out = self.relu(out) + return out + + +# We do not support initialize with 2D pretrain weight for X3D +@BACKBONES.register_module() +class X3D(nn.Module): + """X3D backbone. https://arxiv.org/pdf/2004.04730.pdf. + + Args: + gamma_w (float): Global channel width expansion factor. Default: 1. + gamma_b (float): Bottleneck channel width expansion factor. Default: 1. + gamma_d (float): Network depth expansion factor. Default: 1. + pretrained (str | None): Name of pretrained model. Default: None. + in_channels (int): Channel num of input features. Default: 3. + num_stages (int): Resnet stages. Default: 4. + spatial_strides (Sequence[int]): + Spatial strides of residual blocks of each stage. + Default: ``(1, 2, 2, 2)``. + frozen_stages (int): Stages to be frozen (all param fixed). If set to + -1, it means not freezing any parameters. Default: -1. + se_style (str): The style of inserting SE modules into BlockX3D, 'half' + denotes insert into half of the blocks, while 'all' denotes insert + into all blocks. Default: 'half'. + se_ratio (float | None): The reduction ratio of squeeze and excitation + unit. If set as None, it means not using SE unit. Default: 1 / 16. + use_swish (bool): Whether to use swish as the activation function + before and after the 3x3x3 conv. Default: True. + conv_cfg (dict): Config for conv layers. required keys are ``type`` + Default: ``dict(type='Conv3d')``. + norm_cfg (dict): Config for norm layers. required keys are ``type`` and + ``requires_grad``. + Default: ``dict(type='BN3d', requires_grad=True)``. + act_cfg (dict): Config dict for activation layer. + Default: ``dict(type='ReLU', inplace=True)``. + norm_eval (bool): Whether to set BN layers to eval mode, namely, freeze + running stats (mean and var). Default: False. + with_cp (bool): Use checkpoint or not. Using checkpoint will save some + memory while slowing down the training speed. Default: False. + zero_init_residual (bool): + Whether to use zero initialization for residual block, + Default: True. + kwargs (dict, optional): Key arguments for "make_res_layer". + """ + + def __init__(self, + gamma_w=1.0, + gamma_b=1.0, + gamma_d=1.0, + pretrained=None, + in_channels=3, + num_stages=4, + spatial_strides=(2, 2, 2, 2), + frozen_stages=-1, + se_style='half', + se_ratio=1 / 16, + use_swish=True, + conv_cfg=dict(type='Conv3d'), + norm_cfg=dict(type='BN3d', requires_grad=True), + act_cfg=dict(type='ReLU', inplace=True), + norm_eval=False, + with_cp=False, + zero_init_residual=True, + **kwargs): + super().__init__() + self.gamma_w = gamma_w + self.gamma_b = gamma_b + self.gamma_d = gamma_d + + self.pretrained = pretrained + self.in_channels = in_channels + # Hard coded, can be changed by gamma_w + self.base_channels = 24 + self.stage_blocks = [1, 2, 5, 3] + + # apply parameters gamma_w and gamma_d + self.base_channels = self._round_width(self.base_channels, + self.gamma_w) + + self.stage_blocks = [ + self._round_repeats(x, self.gamma_d) for x in self.stage_blocks + ] + + self.num_stages = num_stages + assert 1 <= num_stages <= 4 + self.spatial_strides = spatial_strides + assert len(spatial_strides) == num_stages + self.frozen_stages = frozen_stages + + self.se_style = se_style + assert self.se_style in ['all', 'half'] + self.se_ratio = se_ratio + assert (self.se_ratio is None) or (self.se_ratio > 0) + self.use_swish = use_swish + + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + self.norm_eval = norm_eval + self.with_cp = with_cp + self.zero_init_residual = zero_init_residual + + self.block = BlockX3D + self.stage_blocks = self.stage_blocks[:num_stages] + self.layer_inplanes = self.base_channels + self._make_stem_layer() + + self.res_layers = [] + for i, num_blocks in enumerate(self.stage_blocks): + spatial_stride = spatial_strides[i] + inplanes = self.base_channels * 2**i + planes = int(inplanes * self.gamma_b) + + res_layer = self.make_res_layer( + self.block, + self.layer_inplanes, + inplanes, + planes, + num_blocks, + spatial_stride=spatial_stride, + se_style=self.se_style, + se_ratio=self.se_ratio, + use_swish=self.use_swish, + norm_cfg=self.norm_cfg, + conv_cfg=self.conv_cfg, + act_cfg=self.act_cfg, + with_cp=with_cp, + **kwargs) + self.layer_inplanes = inplanes + layer_name = f'layer{i + 1}' + self.add_module(layer_name, res_layer) + self.res_layers.append(layer_name) + + self.feat_dim = self.base_channels * 2**(len(self.stage_blocks) - 1) + self.conv5 = ConvModule( + self.feat_dim, + int(self.feat_dim * self.gamma_b), + kernel_size=1, + stride=1, + padding=0, + bias=False, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + self.feat_dim = int(self.feat_dim * self.gamma_b) + + @staticmethod + def _round_width(width, multiplier, min_depth=8, divisor=8): + """Round width of filters based on width multiplier.""" + if not multiplier: + return width + + width *= multiplier + min_depth = min_depth or divisor + new_filters = max(min_depth, + int(width + divisor / 2) // divisor * divisor) + if new_filters < 0.9 * width: + new_filters += divisor + return int(new_filters) + + @staticmethod + def _round_repeats(repeats, multiplier): + """Round number of layers based on depth multiplier.""" + if not multiplier: + return repeats + return int(math.ceil(multiplier * repeats)) + + # the module is parameterized with gamma_b + # no temporal_stride + def make_res_layer(self, + block, + layer_inplanes, + inplanes, + planes, + blocks, + spatial_stride=1, + se_style='half', + se_ratio=None, + use_swish=True, + norm_cfg=None, + act_cfg=None, + conv_cfg=None, + with_cp=False, + **kwargs): + """Build residual layer for ResNet3D. + + Args: + block (nn.Module): Residual module to be built. + layer_inplanes (int): Number of channels for the input feature + of the res layer. + inplanes (int): Number of channels for the input feature in each + block, which equals to base_channels * gamma_w. + planes (int): Number of channels for the output feature in each + block, which equals to base_channel * gamma_w * gamma_b. + blocks (int): Number of residual blocks. + spatial_stride (int): Spatial strides in residual and conv layers. + Default: 1. + se_style (str): The style of inserting SE modules into BlockX3D, + 'half' denotes insert into half of the blocks, while 'all' + denotes insert into all blocks. Default: 'half'. + se_ratio (float | None): The reduction ratio of squeeze and + excitation unit. If set as None, it means not using SE unit. + Default: None. + use_swish (bool): Whether to use swish as the activation function + before and after the 3x3x3 conv. Default: True. + conv_cfg (dict | None): Config for norm layers. Default: None. + norm_cfg (dict | None): Config for norm layers. Default: None. + act_cfg (dict | None): Config for activate layers. Default: None. + with_cp (bool | None): Use checkpoint or not. Using checkpoint + will save some memory while slowing down the training speed. + Default: False. + + Returns: + nn.Module: A residual layer for the given config. + """ + downsample = None + if spatial_stride != 1 or layer_inplanes != inplanes: + downsample = ConvModule( + layer_inplanes, + inplanes, + kernel_size=1, + stride=(1, spatial_stride, spatial_stride), + padding=0, + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None) + + use_se = [False] * blocks + if self.se_style == 'all': + use_se = [True] * blocks + elif self.se_style == 'half': + use_se = [i % 2 == 0 for i in range(blocks)] + else: + raise NotImplementedError + + layers = [] + layers.append( + block( + layer_inplanes, + planes, + inplanes, + spatial_stride=spatial_stride, + downsample=downsample, + se_ratio=se_ratio if use_se[0] else None, + use_swish=use_swish, + norm_cfg=norm_cfg, + conv_cfg=conv_cfg, + act_cfg=act_cfg, + with_cp=with_cp, + **kwargs)) + + for i in range(1, blocks): + layers.append( + block( + inplanes, + planes, + inplanes, + spatial_stride=1, + se_ratio=se_ratio if use_se[i] else None, + use_swish=use_swish, + norm_cfg=norm_cfg, + conv_cfg=conv_cfg, + act_cfg=act_cfg, + with_cp=with_cp, + **kwargs)) + + return nn.Sequential(*layers) + + def _make_stem_layer(self): + """Construct the stem layers consists of a conv+norm+act module and a + pooling layer.""" + self.conv1_s = ConvModule( + self.in_channels, + self.base_channels, + kernel_size=(1, 3, 3), + stride=(1, 2, 2), + padding=(0, 1, 1), + bias=False, + conv_cfg=self.conv_cfg, + norm_cfg=None, + act_cfg=None) + self.conv1_t = ConvModule( + self.base_channels, + self.base_channels, + kernel_size=(5, 1, 1), + stride=(1, 1, 1), + padding=(2, 0, 0), + groups=self.base_channels, + bias=False, + conv_cfg=self.conv_cfg, + norm_cfg=self.norm_cfg, + act_cfg=self.act_cfg) + + def _freeze_stages(self): + """Prevent all the parameters from being optimized before + ``self.frozen_stages``.""" + if self.frozen_stages >= 0: + self.conv1_s.eval() + self.conv1_t.eval() + for param in self.conv1_s.parameters(): + param.requires_grad = False + for param in self.conv1_t.parameters(): + param.requires_grad = False + + for i in range(1, self.frozen_stages + 1): + m = getattr(self, f'layer{i}') + m.eval() + for param in m.parameters(): + param.requires_grad = False + + def init_weights(self): + """Initiate the parameters either from existing checkpoint or from + scratch.""" + if isinstance(self.pretrained, str): + logger = get_root_logger() + logger.info(f'load model from: {self.pretrained}') + + load_checkpoint(self, self.pretrained, strict=False, logger=logger) + + elif self.pretrained is None: + for m in self.modules(): + if isinstance(m, nn.Conv3d): + kaiming_init(m) + elif isinstance(m, _BatchNorm): + constant_init(m, 1) + + if self.zero_init_residual: + for m in self.modules(): + if isinstance(m, BlockX3D): + constant_init(m.conv3.bn, 0) + else: + raise TypeError('pretrained must be a str or None') + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The feature of the input + samples extracted by the backbone. + """ + x = self.conv1_s(x) + x = self.conv1_t(x) + for layer_name in self.res_layers: + res_layer = getattr(self, layer_name) + x = res_layer(x) + x = self.conv5(x) + return x + + def train(self, mode=True): + """Set the optimization status when training.""" + super().train(mode) + self._freeze_stages() + if mode and self.norm_eval: + for m in self.modules(): + if isinstance(m, _BatchNorm): + m.eval() diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/builder.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/builder.py new file mode 100644 index 00000000..86a5cef1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/builder.py @@ -0,0 +1,92 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import warnings + +from mmcv.cnn import MODELS as MMCV_MODELS +from mmcv.utils import Registry + +MODELS = Registry('models', parent=MMCV_MODELS) +BACKBONES = MODELS +NECKS = MODELS +HEADS = MODELS +RECOGNIZERS = MODELS +LOSSES = MODELS +LOCALIZERS = MODELS + +try: + from mmdet.models.builder import DETECTORS, build_detector +except (ImportError, ModuleNotFoundError): + # Define an empty registry and building func, so that can import + DETECTORS = MODELS + + def build_detector(cfg, train_cfg, test_cfg): + warnings.warn( + 'Failed to import `DETECTORS`, `build_detector` from ' + '`mmdet.models.builder`. You will be unable to register or build ' + 'a spatio-temporal detection model. ') + + +def build_backbone(cfg): + """Build backbone.""" + return BACKBONES.build(cfg) + + +def build_head(cfg): + """Build head.""" + return HEADS.build(cfg) + + +def build_recognizer(cfg, train_cfg=None, test_cfg=None): + """Build recognizer.""" + if train_cfg is not None or test_cfg is not None: + warnings.warn( + 'train_cfg and test_cfg is deprecated, ' + 'please specify them in model. Details see this ' + 'PR: https://github.com/open-mmlab/mmaction2/pull/629', + UserWarning) + assert cfg.get( + 'train_cfg' + ) is None or train_cfg is None, 'train_cfg specified in both outer field and model field' # noqa: E501 + assert cfg.get( + 'test_cfg' + ) is None or test_cfg is None, 'test_cfg specified in both outer field and model field ' # noqa: E501 + return RECOGNIZERS.build( + cfg, default_args=dict(train_cfg=train_cfg, test_cfg=test_cfg)) + + +def build_loss(cfg): + """Build loss.""" + return LOSSES.build(cfg) + + +def build_localizer(cfg): + """Build localizer.""" + return LOCALIZERS.build(cfg) + + +def build_model(cfg, train_cfg=None, test_cfg=None): + """Build model.""" + args = cfg.copy() + obj_type = args.pop('type') + if obj_type in LOCALIZERS: + return build_localizer(cfg) + if obj_type in RECOGNIZERS: + return build_recognizer(cfg, train_cfg, test_cfg) + if obj_type in DETECTORS: + if train_cfg is not None or test_cfg is not None: + warnings.warn( + 'train_cfg and test_cfg is deprecated, ' + 'please specify them in model. Details see this ' + 'PR: https://github.com/open-mmlab/mmaction2/pull/629', + UserWarning) + return build_detector(cfg, train_cfg, test_cfg) + model_in_mmdet = ['FastRCNN'] + if obj_type in model_in_mmdet: + raise ImportError( + 'Please install mmdet for spatial temporal detection tasks.') + raise ValueError(f'{obj_type} is not registered in ' + 'LOCALIZERS, RECOGNIZERS or DETECTORS') + + +def build_neck(cfg): + """Build neck.""" + return NECKS.build(cfg) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/__init__.py new file mode 100644 index 00000000..3fca90af --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/__init__.py @@ -0,0 +1,14 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .conv2plus1d import Conv2plus1d +from .conv_audio import ConvAudio +from .lfb import LFB +from .sub_batchnorm3d import SubBatchNorm3D +from .tam import TAM +from .transformer import (DividedSpatialAttentionWithNorm, + DividedTemporalAttentionWithNorm, FFNWithNorm) + +__all__ = [ + 'Conv2plus1d', 'ConvAudio', 'LFB', 'TAM', + 'DividedSpatialAttentionWithNorm', 'DividedTemporalAttentionWithNorm', + 'FFNWithNorm', 'SubBatchNorm3D' +] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/conv2plus1d.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/conv2plus1d.py new file mode 100644 index 00000000..72965617 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/conv2plus1d.py @@ -0,0 +1,105 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch.nn as nn +from mmcv.cnn import CONV_LAYERS, build_norm_layer, constant_init, kaiming_init +from torch.nn.modules.utils import _triple + + +@CONV_LAYERS.register_module() +class Conv2plus1d(nn.Module): + """(2+1)d Conv module for R(2+1)d backbone. + + https://arxiv.org/pdf/1711.11248.pdf. + + Args: + in_channels (int): Same as nn.Conv3d. + out_channels (int): Same as nn.Conv3d. + kernel_size (int | tuple[int]): Same as nn.Conv3d. + stride (int | tuple[int]): Same as nn.Conv3d. + padding (int | tuple[int]): Same as nn.Conv3d. + dilation (int | tuple[int]): Same as nn.Conv3d. + groups (int): Same as nn.Conv3d. + bias (bool | str): If specified as `auto`, it will be decided by the + norm_cfg. Bias will be set as True if norm_cfg is None, otherwise + False. + """ + + def __init__(self, + in_channels, + out_channels, + kernel_size, + stride=1, + padding=0, + dilation=1, + groups=1, + bias=True, + norm_cfg=dict(type='BN3d')): + super().__init__() + + kernel_size = _triple(kernel_size) + stride = _triple(stride) + padding = _triple(padding) + assert len(kernel_size) == len(stride) == len(padding) == 3 + + self.in_channels = in_channels + self.out_channels = out_channels + self.kernel_size = kernel_size + self.stride = stride + self.padding = padding + self.dilation = dilation + self.groups = groups + self.bias = bias + self.norm_cfg = norm_cfg + self.output_padding = (0, 0, 0) + self.transposed = False + + # The middle-plane is calculated according to: + # M_i = \floor{\frac{t * d^2 N_i-1 * N_i} + # {d^2 * N_i-1 + t * N_i}} + # where d, t are spatial and temporal kernel, and + # N_i, N_i-1 are planes + # and inplanes. https://arxiv.org/pdf/1711.11248.pdf + mid_channels = 3 * ( + in_channels * out_channels * kernel_size[1] * kernel_size[2]) + mid_channels /= ( + in_channels * kernel_size[1] * kernel_size[2] + 3 * out_channels) + mid_channels = int(mid_channels) + + self.conv_s = nn.Conv3d( + in_channels, + mid_channels, + kernel_size=(1, kernel_size[1], kernel_size[2]), + stride=(1, stride[1], stride[2]), + padding=(0, padding[1], padding[2]), + bias=bias) + _, self.bn_s = build_norm_layer(self.norm_cfg, mid_channels) + self.relu = nn.ReLU(inplace=True) + self.conv_t = nn.Conv3d( + mid_channels, + out_channels, + kernel_size=(kernel_size[0], 1, 1), + stride=(stride[0], 1, 1), + padding=(padding[0], 0, 0), + bias=bias) + + self.init_weights() + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The output of the module. + """ + x = self.conv_s(x) + x = self.bn_s(x) + x = self.relu(x) + x = self.conv_t(x) + return x + + def init_weights(self): + """Initiate the parameters from scratch.""" + kaiming_init(self.conv_s) + kaiming_init(self.conv_t) + constant_init(self.bn_s, 1, bias=0) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/conv_audio.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/conv_audio.py new file mode 100644 index 00000000..54f04c9c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/conv_audio.py @@ -0,0 +1,105 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn +from mmcv.cnn import CONV_LAYERS, ConvModule, constant_init, kaiming_init +from torch.nn.modules.utils import _pair + + +@CONV_LAYERS.register_module() +class ConvAudio(nn.Module): + """Conv2d module for AudioResNet backbone. + + `_. + + Args: + in_channels (int): Same as nn.Conv2d. + out_channels (int): Same as nn.Conv2d. + kernel_size (int | tuple[int]): Same as nn.Conv2d. + op (string): Operation to merge the output of freq + and time feature map. Choices are 'sum' and 'concat'. + Default: 'concat'. + stride (int | tuple[int]): Same as nn.Conv2d. + padding (int | tuple[int]): Same as nn.Conv2d. + dilation (int | tuple[int]): Same as nn.Conv2d. + groups (int): Same as nn.Conv2d. + bias (bool | str): If specified as `auto`, it will be decided by the + norm_cfg. Bias will be set as True if norm_cfg is None, otherwise + False. + """ + + def __init__(self, + in_channels, + out_channels, + kernel_size, + op='concat', + stride=1, + padding=0, + dilation=1, + groups=1, + bias=False): + super().__init__() + + kernel_size = _pair(kernel_size) + stride = _pair(stride) + padding = _pair(padding) + + self.in_channels = in_channels + self.out_channels = out_channels + self.kernel_size = kernel_size + assert op in ['concat', 'sum'] + self.op = op + self.stride = stride + self.padding = padding + self.dilation = dilation + self.groups = groups + self.bias = bias + self.output_padding = (0, 0) + self.transposed = False + + self.conv_1 = ConvModule( + in_channels, + out_channels, + kernel_size=(kernel_size[0], 1), + stride=stride, + padding=(kernel_size[0] // 2, 0), + bias=bias, + conv_cfg=dict(type='Conv'), + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU')) + + self.conv_2 = ConvModule( + in_channels, + out_channels, + kernel_size=(1, kernel_size[1]), + stride=stride, + padding=(0, kernel_size[1] // 2), + bias=bias, + conv_cfg=dict(type='Conv'), + norm_cfg=dict(type='BN'), + act_cfg=dict(type='ReLU')) + + self.init_weights() + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The output of the module. + """ + x_1 = self.conv_1(x) + x_2 = self.conv_2(x) + if self.op == 'concat': + out = torch.cat([x_1, x_2], 1) + else: + out = x_1 + x_2 + return out + + def init_weights(self): + """Initiate the parameters from scratch.""" + kaiming_init(self.conv_1.conv) + kaiming_init(self.conv_2.conv) + constant_init(self.conv_1.bn, 1, bias=0) + constant_init(self.conv_2.bn, 1, bias=0) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/lfb.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/lfb.py new file mode 100644 index 00000000..3fb82cf3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/lfb.py @@ -0,0 +1,189 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import io +import os.path as osp +import warnings + +import numpy as np +import torch +import torch.distributed as dist +from mmcv.runner import get_dist_info + +try: + import lmdb + lmdb_imported = True +except (ImportError, ModuleNotFoundError): + lmdb_imported = False + + +class LFB: + """Long-Term Feature Bank (LFB). + + LFB is proposed in `Long-Term Feature Banks for Detailed Video + Understanding `_ + + The ROI features of videos are stored in the feature bank. The feature bank + was generated by inferring with a lfb infer config. + + Formally, LFB is a Dict whose keys are video IDs and its values are also + Dicts whose keys are timestamps in seconds. Example of LFB: + + .. code-block:: Python + { + '0f39OWEqJ24': { + 901: tensor([[ 1.2760, 1.1965, ..., 0.0061, -0.0639], + [-0.6320, 0.3794, ..., -1.2768, 0.5684], + [ 0.2535, 1.0049, ..., 0.4906, 1.2555], + [-0.5838, 0.8549, ..., -2.1736, 0.4162]]), + ... + 1705: tensor([[-1.0169, -1.1293, ..., 0.6793, -2.0540], + [ 1.2436, -0.4555, ..., 0.2281, -0.8219], + [ 0.2815, -0.0547, ..., -0.4199, 0.5157]]), + ... + }, + 'xmqSaQPzL1E': { + ... + }, + ... + } + + Args: + lfb_prefix_path (str): The storage path of lfb. + max_num_sampled_feat (int): The max number of sampled features. + Default: 5. + window_size (int): Window size of sampling long term feature. + Default: 60. + lfb_channels (int): Number of the channels of the features stored + in LFB. Default: 2048. + dataset_modes (tuple[str] | str): Load LFB of datasets with different + modes, such as training, validation, testing datasets. If you don't + do cross validation during training, just load the training dataset + i.e. setting `dataset_modes = ('train')`. + Default: ('train', 'val'). + device (str): Where to load lfb. Choices are 'gpu', 'cpu' and 'lmdb'. + A 1.65GB half-precision ava lfb (including training and validation) + occupies about 2GB GPU memory. Default: 'gpu'. + lmdb_map_size (int): Map size of lmdb. Default: 4e9. + construct_lmdb (bool): Whether to construct lmdb. If you have + constructed lmdb of lfb, you can set to False to skip the + construction. Default: True. + """ + + def __init__(self, + lfb_prefix_path, + max_num_sampled_feat=5, + window_size=60, + lfb_channels=2048, + dataset_modes=('train', 'val'), + device='gpu', + lmdb_map_size=4e9, + construct_lmdb=True): + if not osp.exists(lfb_prefix_path): + raise ValueError( + f'lfb prefix path {lfb_prefix_path} does not exist!') + self.lfb_prefix_path = lfb_prefix_path + self.max_num_sampled_feat = max_num_sampled_feat + self.window_size = window_size + self.lfb_channels = lfb_channels + if not isinstance(dataset_modes, tuple): + assert isinstance(dataset_modes, str) + dataset_modes = (dataset_modes, ) + self.dataset_modes = dataset_modes + self.device = device + + rank, world_size = get_dist_info() + + # Loading LFB + if self.device == 'gpu': + self.load_lfb(f'cuda:{rank}') + elif self.device == 'cpu': + if world_size > 1: + warnings.warn( + 'If distributed training is used with multi-GPUs, lfb ' + 'will be loaded multiple times on RAM. In this case, ' + "'lmdb' is recommended.", UserWarning) + self.load_lfb('cpu') + elif self.device == 'lmdb': + assert lmdb_imported, ( + 'Please install `lmdb` to load lfb on lmdb!') + self.lmdb_map_size = lmdb_map_size + self.construct_lmdb = construct_lmdb + self.lfb_lmdb_path = osp.normpath( + osp.join(self.lfb_prefix_path, 'lmdb')) + + if rank == 0 and self.construct_lmdb: + print('Constructing LFB lmdb...') + self.load_lfb_on_lmdb() + + # Synchronizes all processes to make sure lfb lmdb exist. + if world_size > 1: + dist.barrier() + self.lmdb_env = lmdb.open(self.lfb_lmdb_path, readonly=True) + else: + raise ValueError("Device must be 'gpu', 'cpu' or 'lmdb', ", + f'but get {self.device}.') + + def load_lfb(self, map_location): + self.lfb = {} + for dataset_mode in self.dataset_modes: + lfb_path = osp.normpath( + osp.join(self.lfb_prefix_path, f'lfb_{dataset_mode}.pkl')) + print(f'Loading LFB from {lfb_path}...') + self.lfb.update(torch.load(lfb_path, map_location=map_location)) + print(f'LFB has been loaded on {map_location}.') + + def load_lfb_on_lmdb(self): + lfb = {} + for dataset_mode in self.dataset_modes: + lfb_path = osp.normpath( + osp.join(self.lfb_prefix_path, f'lfb_{dataset_mode}.pkl')) + lfb.update(torch.load(lfb_path, map_location='cpu')) + + lmdb_env = lmdb.open(self.lfb_lmdb_path, map_size=self.lmdb_map_size) + for key, value in lfb.items(): + txn = lmdb_env.begin(write=True) + buff = io.BytesIO() + torch.save(value, buff) + buff.seek(0) + txn.put(key.encode(), buff.read()) + txn.commit() + buff.close() + + print(f'LFB lmdb has been constructed on {self.lfb_lmdb_path}!') + + def sample_long_term_features(self, video_id, timestamp): + if self.device == 'lmdb': + with self.lmdb_env.begin(write=False) as txn: + buf = txn.get(video_id.encode()) + video_features = torch.load(io.BytesIO(buf)) + else: + video_features = self.lfb[video_id] + + # Sample long term features. + window_size, K = self.window_size, self.max_num_sampled_feat + start = timestamp - (window_size // 2) + lt_feats = torch.zeros(window_size * K, self.lfb_channels) + + for idx, sec in enumerate(range(start, start + window_size)): + if sec in video_features: + # `num_feat` is the number of roi features in this second. + num_feat = len(video_features[sec]) + num_feat_sampled = min(num_feat, K) + # Sample some roi features randomly. + random_lfb_indices = np.random.choice( + range(num_feat), num_feat_sampled, replace=False) + + for k, rand_idx in enumerate(random_lfb_indices): + lt_feats[idx * K + k] = video_features[sec][rand_idx] + + # [window_size * max_num_sampled_feat, lfb_channels] + return lt_feats + + def __getitem__(self, img_key): + """Sample long term features like `lfb['0f39OWEqJ24,0902']` where `lfb` + is a instance of class LFB.""" + video_id, timestamp = img_key.split(',') + return self.sample_long_term_features(video_id, int(timestamp)) + + def __len__(self): + """The number of videos whose ROI features are stored in LFB.""" + return len(self.lfb) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/sub_batchnorm3d.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/sub_batchnorm3d.py new file mode 100644 index 00000000..c020e875 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/sub_batchnorm3d.py @@ -0,0 +1,75 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from copy import deepcopy + +import torch +import torch.nn as nn +from mmcv.cnn import NORM_LAYERS + + +@NORM_LAYERS.register_module() +class SubBatchNorm3D(nn.Module): + """Sub BatchNorm3d splits the batch dimension into N splits, and run BN on + each of them separately (so that the stats are computed on each subset of + examples (1/N of batch) independently). During evaluation, it aggregates + the stats from all splits into one BN. + + Args: + num_features (int): Dimensions of BatchNorm. + """ + + def __init__(self, num_features, **cfg): + super(SubBatchNorm3D, self).__init__() + + self.num_features = num_features + self.cfg_ = deepcopy(cfg) + self.num_splits = self.cfg_.pop('num_splits', 1) + self.num_features_split = self.num_features * self.num_splits + # only keep one set of affine params, not in .bn or .split_bn + self.cfg_['affine'] = False + self.bn = nn.BatchNorm3d(num_features, **self.cfg_) + self.split_bn = nn.BatchNorm3d(self.num_features_split, **self.cfg_) + self.init_weights(cfg) + + def init_weights(self, cfg): + if cfg.get('affine', True): + self.weight = torch.nn.Parameter(torch.ones(self.num_features)) + self.bias = torch.nn.Parameter(torch.zeros(self.num_features)) + self.affine = True + else: + self.affine = False + + def _get_aggregated_mean_std(self, means, stds, n): + mean = means.view(n, -1).sum(0) / n + std = stds.view(n, -1).sum(0) / n + ( + (means.view(n, -1) - mean)**2).view(n, -1).sum(0) / n + return mean.detach(), std.detach() + + def aggregate_stats(self): + """Synchronize running_mean, and running_var to self.bn. + + Call this before eval, then call model.eval(); When eval, forward + function will call self.bn instead of self.split_bn, During this time + the running_mean, and running_var of self.bn has been obtained from + self.split_bn. + """ + if self.split_bn.track_running_stats: + aggre_func = self._get_aggregated_mean_std + self.bn.running_mean.data, self.bn.running_var.data = aggre_func( + self.split_bn.running_mean, self.split_bn.running_var, + self.num_splits) + self.bn.num_batches_tracked = self.split_bn.num_batches_tracked.detach( + ) + + def forward(self, x): + if self.training: + n, c, t, h, w = x.shape + assert n % self.num_splits == 0 + x = x.view(n // self.num_splits, c * self.num_splits, t, h, w) + x = self.split_bn(x) + x = x.view(n, c, t, h, w) + else: + x = self.bn(x) + if self.affine: + x = x * self.weight.view(-1, 1, 1, 1) + x = x + self.bias.view(-1, 1, 1, 1) + return x diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/tam.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/tam.py new file mode 100644 index 00000000..5574213d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/tam.py @@ -0,0 +1,122 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch.nn as nn +import torch.nn.functional as F + + +class TAM(nn.Module): + """Temporal Adaptive Module(TAM) for TANet. + + This module is proposed in `TAM: TEMPORAL ADAPTIVE MODULE FOR VIDEO + RECOGNITION `_ + + Args: + in_channels (int): Channel num of input features. + num_segments (int): Number of frame segments. + alpha (int): ```alpha``` in the paper and is the ratio of the + intermediate channel number to the initial channel number in the + global branch. Default: 2. + adaptive_kernel_size (int): ```K``` in the paper and is the size of the + adaptive kernel size in the global branch. Default: 3. + beta (int): ```beta``` in the paper and is set to control the model + complexity in the local branch. Default: 4. + conv1d_kernel_size (int): Size of the convolution kernel of Conv1d in + the local branch. Default: 3. + adaptive_convolution_stride (int): The first dimension of strides in + the adaptive convolution of ```Temporal Adaptive Aggregation```. + Default: 1. + adaptive_convolution_padding (int): The first dimension of paddings in + the adaptive convolution of ```Temporal Adaptive Aggregation```. + Default: 1. + init_std (float): Std value for initiation of `nn.Linear`. Default: + 0.001. + """ + + def __init__(self, + in_channels, + num_segments, + alpha=2, + adaptive_kernel_size=3, + beta=4, + conv1d_kernel_size=3, + adaptive_convolution_stride=1, + adaptive_convolution_padding=1, + init_std=0.001): + super().__init__() + + assert beta > 0 and alpha > 0 + self.in_channels = in_channels + self.num_segments = num_segments + self.alpha = alpha + self.adaptive_kernel_size = adaptive_kernel_size + self.beta = beta + self.conv1d_kernel_size = conv1d_kernel_size + self.adaptive_convolution_stride = adaptive_convolution_stride + self.adaptive_convolution_padding = adaptive_convolution_padding + self.init_std = init_std + + self.G = nn.Sequential( + nn.Linear(num_segments, num_segments * alpha, bias=False), + nn.BatchNorm1d(num_segments * alpha), nn.ReLU(inplace=True), + nn.Linear(num_segments * alpha, adaptive_kernel_size, bias=False), + nn.Softmax(-1)) + + self.L = nn.Sequential( + nn.Conv1d( + in_channels, + in_channels // beta, + conv1d_kernel_size, + stride=1, + padding=conv1d_kernel_size // 2, + bias=False), nn.BatchNorm1d(in_channels // beta), + nn.ReLU(inplace=True), + nn.Conv1d(in_channels // beta, in_channels, 1, bias=False), + nn.Sigmoid()) + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The output of the module. + """ + # [n, c, h, w] + n, c, h, w = x.size() + num_segments = self.num_segments + num_batches = n // num_segments + assert c == self.in_channels + + # [num_batches, c, num_segments, h, w] + x = x.view(num_batches, num_segments, c, h, w) + x = x.permute(0, 2, 1, 3, 4).contiguous() + + # [num_batches * c, num_segments, 1, 1] + theta_out = F.adaptive_avg_pool2d( + x.view(-1, num_segments, h, w), (1, 1)) + + # [num_batches * c, 1, adaptive_kernel_size, 1] + conv_kernel = self.G(theta_out.view(-1, num_segments)).view( + num_batches * c, 1, -1, 1) + + # [num_batches, c, num_segments, 1, 1] + local_activation = self.L(theta_out.view(-1, c, num_segments)).view( + num_batches, c, num_segments, 1, 1) + + # [num_batches, c, num_segments, h, w] + new_x = x * local_activation + + # [1, num_batches * c, num_segments, h * w] + y = F.conv2d( + new_x.view(1, num_batches * c, num_segments, h * w), + conv_kernel, + bias=None, + stride=(self.adaptive_convolution_stride, 1), + padding=(self.adaptive_convolution_padding, 0), + groups=num_batches * c) + + # [n, c, h, w] + y = y.view(num_batches, c, num_segments, h, w) + y = y.permute(0, 2, 1, 3, 4).contiguous().view(n, c, h, w) + + return y diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/transformer.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/transformer.py new file mode 100644 index 00000000..f7b67968 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/common/transformer.py @@ -0,0 +1,216 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn +from einops import rearrange +from mmcv.cnn import build_norm_layer, constant_init +from mmcv.cnn.bricks.registry import ATTENTION, FEEDFORWARD_NETWORK +from mmcv.cnn.bricks.transformer import FFN, build_dropout +from mmcv.runner.base_module import BaseModule +from mmcv.utils import digit_version + + +@ATTENTION.register_module() +class DividedTemporalAttentionWithNorm(BaseModule): + """Temporal Attention in Divided Space Time Attention. + + Args: + embed_dims (int): Dimensions of embedding. + num_heads (int): Number of parallel attention heads in + TransformerCoder. + num_frames (int): Number of frames in the video. + attn_drop (float): A Dropout layer on attn_output_weights. Defaults to + 0.. + proj_drop (float): A Dropout layer after `nn.MultiheadAttention`. + Defaults to 0.. + dropout_layer (dict): The dropout_layer used when adding the shortcut. + Defaults to `dict(type='DropPath', drop_prob=0.1)`. + norm_cfg (dict): Config dict for normalization layer. Defaults to + `dict(type='LN')`. + init_cfg (dict | None): The Config for initialization. Defaults to + None. + """ + + def __init__(self, + embed_dims, + num_heads, + num_frames, + attn_drop=0., + proj_drop=0., + dropout_layer=dict(type='DropPath', drop_prob=0.1), + norm_cfg=dict(type='LN'), + init_cfg=None, + **kwargs): + super().__init__(init_cfg) + self.embed_dims = embed_dims + self.num_heads = num_heads + self.num_frames = num_frames + self.norm = build_norm_layer(norm_cfg, self.embed_dims)[1] + + if digit_version(torch.__version__) < digit_version('1.9.0'): + kwargs.pop('batch_first', None) + self.attn = nn.MultiheadAttention(embed_dims, num_heads, attn_drop, + **kwargs) + self.proj_drop = nn.Dropout(proj_drop) + self.dropout_layer = build_dropout( + dropout_layer) if dropout_layer else nn.Identity() + self.temporal_fc = nn.Linear(self.embed_dims, self.embed_dims) + + self.init_weights() + + def init_weights(self): + constant_init(self.temporal_fc, val=0, bias=0) + + def forward(self, query, key=None, value=None, residual=None, **kwargs): + assert residual is None, ( + 'Always adding the shortcut in the forward function') + + init_cls_token = query[:, 0, :].unsqueeze(1) + identity = query_t = query[:, 1:, :] + + # query_t [batch_size, num_patches * num_frames, embed_dims] + b, pt, m = query_t.size() + p, t = pt // self.num_frames, self.num_frames + + # res_temporal [batch_size * num_patches, num_frames, embed_dims] + query_t = self.norm(query_t.reshape(b * p, t, m)).permute(1, 0, 2) + res_temporal = self.attn(query_t, query_t, query_t)[0].permute(1, 0, 2) + res_temporal = self.dropout_layer( + self.proj_drop(res_temporal.contiguous())) + res_temporal = self.temporal_fc(res_temporal) + + # res_temporal [batch_size, num_patches * num_frames, embed_dims] + res_temporal = res_temporal.reshape(b, p * t, m) + + # ret_value [batch_size, num_patches * num_frames + 1, embed_dims] + new_query_t = identity + res_temporal + new_query = torch.cat((init_cls_token, new_query_t), 1) + return new_query + + +@ATTENTION.register_module() +class DividedSpatialAttentionWithNorm(BaseModule): + """Spatial Attention in Divided Space Time Attention. + + Args: + embed_dims (int): Dimensions of embedding. + num_heads (int): Number of parallel attention heads in + TransformerCoder. + num_frames (int): Number of frames in the video. + attn_drop (float): A Dropout layer on attn_output_weights. Defaults to + 0.. + proj_drop (float): A Dropout layer after `nn.MultiheadAttention`. + Defaults to 0.. + dropout_layer (dict): The dropout_layer used when adding the shortcut. + Defaults to `dict(type='DropPath', drop_prob=0.1)`. + norm_cfg (dict): Config dict for normalization layer. Defaults to + `dict(type='LN')`. + init_cfg (dict | None): The Config for initialization. Defaults to + None. + """ + + def __init__(self, + embed_dims, + num_heads, + num_frames, + attn_drop=0., + proj_drop=0., + dropout_layer=dict(type='DropPath', drop_prob=0.1), + norm_cfg=dict(type='LN'), + init_cfg=None, + **kwargs): + super().__init__(init_cfg) + self.embed_dims = embed_dims + self.num_heads = num_heads + self.num_frames = num_frames + self.norm = build_norm_layer(norm_cfg, self.embed_dims)[1] + if digit_version(torch.__version__) < digit_version('1.9.0'): + kwargs.pop('batch_first', None) + self.attn = nn.MultiheadAttention(embed_dims, num_heads, attn_drop, + **kwargs) + self.proj_drop = nn.Dropout(proj_drop) + self.dropout_layer = build_dropout( + dropout_layer) if dropout_layer else nn.Identity() + + self.init_weights() + + def init_weights(self): + # init DividedSpatialAttentionWithNorm by default + pass + + def forward(self, query, key=None, value=None, residual=None, **kwargs): + assert residual is None, ( + 'Always adding the shortcut in the forward function') + + identity = query + init_cls_token = query[:, 0, :].unsqueeze(1) + query_s = query[:, 1:, :] + + # query_s [batch_size, num_patches * num_frames, embed_dims] + b, pt, m = query_s.size() + p, t = pt // self.num_frames, self.num_frames + + # cls_token [batch_size * num_frames, 1, embed_dims] + cls_token = init_cls_token.repeat(1, t, 1).reshape(b * t, + m).unsqueeze(1) + + # query_s [batch_size * num_frames, num_patches + 1, embed_dims] + query_s = rearrange(query_s, 'b (p t) m -> (b t) p m', p=p, t=t) + query_s = torch.cat((cls_token, query_s), 1) + + # res_spatial [batch_size * num_frames, num_patches + 1, embed_dims] + query_s = self.norm(query_s).permute(1, 0, 2) + res_spatial = self.attn(query_s, query_s, query_s)[0].permute(1, 0, 2) + res_spatial = self.dropout_layer( + self.proj_drop(res_spatial.contiguous())) + + # cls_token [batch_size, 1, embed_dims] + cls_token = res_spatial[:, 0, :].reshape(b, t, m) + cls_token = torch.mean(cls_token, 1, True) + + # res_spatial [batch_size * num_frames, num_patches + 1, embed_dims] + res_spatial = rearrange( + res_spatial[:, 1:, :], '(b t) p m -> b (p t) m', p=p, t=t) + res_spatial = torch.cat((cls_token, res_spatial), 1) + + new_query = identity + res_spatial + return new_query + + +@FEEDFORWARD_NETWORK.register_module() +class FFNWithNorm(FFN): + """FFN with pre normalization layer. + + FFNWithNorm is implemented to be compatible with `BaseTransformerLayer` + when using `DividedTemporalAttentionWithNorm` and + `DividedSpatialAttentionWithNorm`. + + FFNWithNorm has one main difference with FFN: + + - It apply one normalization layer before forwarding the input data to + feed-forward networks. + + Args: + embed_dims (int): Dimensions of embedding. Defaults to 256. + feedforward_channels (int): Hidden dimension of FFNs. Defaults to 1024. + num_fcs (int, optional): Number of fully-connected layers in FFNs. + Defaults to 2. + act_cfg (dict): Config for activate layers. + Defaults to `dict(type='ReLU')` + ffn_drop (float, optional): Probability of an element to be + zeroed in FFN. Defaults to 0.. + add_residual (bool, optional): Whether to add the + residual connection. Defaults to `True`. + dropout_layer (dict | None): The dropout_layer used when adding the + shortcut. Defaults to None. + init_cfg (dict): The Config for initialization. Defaults to None. + norm_cfg (dict): Config dict for normalization layer. Defaults to + `dict(type='LN')`. + """ + + def __init__(self, *args, norm_cfg=dict(type='LN'), **kwargs): + super().__init__(*args, **kwargs) + self.norm = build_norm_layer(norm_cfg, self.embed_dims)[1] + + def forward(self, x, residual=None): + assert residual is None, ('Cannot apply pre-norm with FFNWithNorm') + return super().forward(self.norm(x), x) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/__init__.py new file mode 100644 index 00000000..edc3a0d5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/__init__.py @@ -0,0 +1,25 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .audio_tsn_head import AudioTSNHead +from .base import BaseHead +from .bbox_head import BBoxHeadAVA +from .fbo_head import FBOHead +from .i3d_head import I3DHead +from .lfb_infer_head import LFBInferHead +from .misc_head import ACRNHead +from .roi_head import AVARoIHead +from .slowfast_head import SlowFastHead +from .ssn_head import SSNHead +from .stgcn_head import STGCNHead +from .timesformer_head import TimeSformerHead +from .tpn_head import TPNHead +from .trn_head import TRNHead +from .tsm_head import TSMHead +from .tsn_head import TSNHead +from .x3d_head import X3DHead + +__all__ = [ + 'TSNHead', 'I3DHead', 'BaseHead', 'TSMHead', 'SlowFastHead', 'SSNHead', + 'TPNHead', 'AudioTSNHead', 'X3DHead', 'BBoxHeadAVA', 'AVARoIHead', + 'FBOHead', 'LFBInferHead', 'TRNHead', 'TimeSformerHead', 'ACRNHead', + 'STGCNHead' +] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/audio_tsn_head.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/audio_tsn_head.py new file mode 100644 index 00000000..9f5f35ef --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/audio_tsn_head.py @@ -0,0 +1,74 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch.nn as nn +from mmcv.cnn import normal_init + +from ..builder import HEADS +from .base import BaseHead + + +@HEADS.register_module() +class AudioTSNHead(BaseHead): + """Classification head for TSN on audio. + + Args: + num_classes (int): Number of classes to be classified. + in_channels (int): Number of channels in input feature. + loss_cls (dict): Config for building loss. + Default: dict(type='CrossEntropyLoss'). + spatial_type (str): Pooling type in spatial dimension. Default: 'avg'. + dropout_ratio (float): Probability of dropout layer. Default: 0.4. + init_std (float): Std value for Initiation. Default: 0.01. + kwargs (dict, optional): Any keyword argument to be used to initialize + the head. + """ + + def __init__(self, + num_classes, + in_channels, + loss_cls=dict(type='CrossEntropyLoss'), + spatial_type='avg', + dropout_ratio=0.4, + init_std=0.01, + **kwargs): + super().__init__(num_classes, in_channels, loss_cls=loss_cls, **kwargs) + + self.spatial_type = spatial_type + self.dropout_ratio = dropout_ratio + self.init_std = init_std + + if self.spatial_type == 'avg': + # use `nn.AdaptiveAvgPool2d` to adaptively match the in_channels. + self.avg_pool = nn.AdaptiveAvgPool2d((1, 1)) + else: + self.avg_pool = None + + if self.dropout_ratio != 0: + self.dropout = nn.Dropout(p=self.dropout_ratio) + else: + self.dropout = None + self.fc_cls = nn.Linear(self.in_channels, self.num_classes) + + def init_weights(self): + """Initiate the parameters from scratch.""" + normal_init(self.fc_cls, std=self.init_std) + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The classification scores for input samples. + """ + # [N * num_segs, in_channels, h, w] + x = self.avg_pool(x) + # [N, in_channels, 1, 1] + x = x.view(x.size(0), -1) + # [N, in_channels] + if self.dropout is not None: + x = self.dropout(x) + # [N, in_channels] + cls_score = self.fc_cls(x) + # [N, num_classes] + return cls_score diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/base.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/base.py new file mode 100644 index 00000000..d89e3af3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/base.py @@ -0,0 +1,117 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from abc import ABCMeta, abstractmethod + +import torch +import torch.nn as nn + +from ...core import top_k_accuracy +from ..builder import build_loss + + +class AvgConsensus(nn.Module): + """Average consensus module. + + Args: + dim (int): Decide which dim consensus function to apply. + Default: 1. + """ + + def __init__(self, dim=1): + super().__init__() + self.dim = dim + + def forward(self, x): + """Defines the computation performed at every call.""" + return x.mean(dim=self.dim, keepdim=True) + + +class BaseHead(nn.Module, metaclass=ABCMeta): + """Base class for head. + + All Head should subclass it. + All subclass should overwrite: + - Methods:``init_weights``, initializing weights in some modules. + - Methods:``forward``, supporting to forward both for training and testing. + + Args: + num_classes (int): Number of classes to be classified. + in_channels (int): Number of channels in input feature. + loss_cls (dict): Config for building loss. + Default: dict(type='CrossEntropyLoss', loss_weight=1.0). + multi_class (bool): Determines whether it is a multi-class + recognition task. Default: False. + label_smooth_eps (float): Epsilon used in label smooth. + Reference: arxiv.org/abs/1906.02629. Default: 0. + topk (int | tuple): Top-k accuracy. Default: (1, 5). + """ + + def __init__(self, + num_classes, + in_channels, + loss_cls=dict(type='CrossEntropyLoss', loss_weight=1.0), + multi_class=False, + label_smooth_eps=0.0, + topk=(1, 5)): + super().__init__() + self.num_classes = num_classes + self.in_channels = in_channels + self.loss_cls = build_loss(loss_cls) + self.multi_class = multi_class + self.label_smooth_eps = label_smooth_eps + assert isinstance(topk, (int, tuple)) + if isinstance(topk, int): + topk = (topk, ) + for _topk in topk: + assert _topk > 0, 'Top-k should be larger than 0' + self.topk = topk + + @abstractmethod + def init_weights(self): + """Initiate the parameters either from existing checkpoint or from + scratch.""" + + @abstractmethod + def forward(self, x): + """Defines the computation performed at every call.""" + + def loss(self, cls_score, labels, **kwargs): + """Calculate the loss given output ``cls_score``, target ``labels``. + + Args: + cls_score (torch.Tensor): The output of the model. + labels (torch.Tensor): The target output of the model. + + Returns: + dict: A dict containing field 'loss_cls'(mandatory) + and 'topk_acc'(optional). + """ + losses = dict() + if labels.shape == torch.Size([]): + labels = labels.unsqueeze(0) + elif labels.dim() == 1 and labels.size()[0] == self.num_classes \ + and cls_score.size()[0] == 1: + # Fix a bug when training with soft labels and batch size is 1. + # When using soft labels, `labels` and `cls_socre` share the same + # shape. + labels = labels.unsqueeze(0) + + if not self.multi_class and cls_score.size() != labels.size(): + top_k_acc = top_k_accuracy(cls_score.detach().cpu().numpy(), + labels.detach().cpu().numpy(), + self.topk) + for k, a in zip(self.topk, top_k_acc): + losses[f'top{k}_acc'] = torch.tensor( + a, device=cls_score.device) + + elif self.multi_class and self.label_smooth_eps != 0: + labels = ((1 - self.label_smooth_eps) * labels + + self.label_smooth_eps / self.num_classes) + + loss_cls = self.loss_cls(cls_score, labels, **kwargs) + # loss_cls may be dictionary or single tensor + if isinstance(loss_cls, dict): + losses.update(loss_cls) + else: + losses['loss_cls'] = loss_cls + + return losses diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/bbox_head.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/bbox_head.py new file mode 100644 index 00000000..19787a5e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/bbox_head.py @@ -0,0 +1,306 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn +import torch.nn.functional as F + +from mmaction.core.bbox import bbox_target + +try: + from mmdet.models.builder import HEADS as MMDET_HEADS + mmdet_imported = True +except (ImportError, ModuleNotFoundError): + mmdet_imported = False + +# Resolve cross-entropy function to support multi-target in Torch < 1.10 +# This is a very basic 'hack', with minimal functionality to support the +# procedure under prior torch versions +from packaging import version as pv + +if pv.parse(torch.__version__) < pv.parse('1.10'): + + def cross_entropy_loss(input, target, reduction='None'): + input = input.log_softmax(dim=-1) # Compute Log of Softmax + loss = -(input * target).sum(dim=-1) # Compute Loss manually + if reduction.lower() == 'mean': + return loss.mean() + elif reduction.lower() == 'sum': + return loss.sum() + else: + return loss +else: + cross_entropy_loss = F.cross_entropy + + +class BBoxHeadAVA(nn.Module): + """Simplest RoI head, with only two fc layers for classification and + regression respectively. + + Args: + temporal_pool_type (str): The temporal pool type. Choices are 'avg' or + 'max'. Default: 'avg'. + spatial_pool_type (str): The spatial pool type. Choices are 'avg' or + 'max'. Default: 'max'. + in_channels (int): The number of input channels. Default: 2048. + focal_alpha (float): The hyper-parameter alpha for Focal Loss. + When alpha == 1 and gamma == 0, Focal Loss degenerates to + BCELossWithLogits. Default: 1. + focal_gamma (float): The hyper-parameter gamma for Focal Loss. + When alpha == 1 and gamma == 0, Focal Loss degenerates to + BCELossWithLogits. Default: 0. + num_classes (int): The number of classes. Default: 81. + dropout_ratio (float): A float in [0, 1], indicates the dropout_ratio. + Default: 0. + dropout_before_pool (bool): Dropout Feature before spatial temporal + pooling. Default: True. + topk (int or tuple[int]): Parameter for evaluating Top-K accuracy. + Default: (3, 5) + multilabel (bool): Whether used for a multilabel task. Default: True. + """ + + def __init__( + self, + temporal_pool_type='avg', + spatial_pool_type='max', + in_channels=2048, + focal_gamma=0., + focal_alpha=1., + num_classes=81, # First class reserved (BBox as pos/neg) + dropout_ratio=0, + dropout_before_pool=True, + topk=(3, 5), + multilabel=True): + + super(BBoxHeadAVA, self).__init__() + assert temporal_pool_type in ['max', 'avg'] + assert spatial_pool_type in ['max', 'avg'] + self.temporal_pool_type = temporal_pool_type + self.spatial_pool_type = spatial_pool_type + + self.in_channels = in_channels + self.num_classes = num_classes + + self.dropout_ratio = dropout_ratio + self.dropout_before_pool = dropout_before_pool + + self.multilabel = multilabel + + self.focal_gamma = focal_gamma + self.focal_alpha = focal_alpha + + if topk is None: + self.topk = () + elif isinstance(topk, int): + self.topk = (topk, ) + elif isinstance(topk, tuple): + assert all([isinstance(k, int) for k in topk]) + self.topk = topk + else: + raise TypeError('topk should be int or tuple[int], ' + f'but get {type(topk)}') + # Class 0 is ignored when calculating accuracy, + # so topk cannot be equal to num_classes. + assert all([k < num_classes for k in self.topk]) + + in_channels = self.in_channels + # Pool by default + if self.temporal_pool_type == 'avg': + self.temporal_pool = nn.AdaptiveAvgPool3d((1, None, None)) + else: + self.temporal_pool = nn.AdaptiveMaxPool3d((1, None, None)) + if self.spatial_pool_type == 'avg': + self.spatial_pool = nn.AdaptiveAvgPool3d((None, 1, 1)) + else: + self.spatial_pool = nn.AdaptiveMaxPool3d((None, 1, 1)) + + if dropout_ratio > 0: + self.dropout = nn.Dropout(dropout_ratio) + + self.fc_cls = nn.Linear(in_channels, num_classes) + self.debug_imgs = None + + def init_weights(self): + nn.init.normal_(self.fc_cls.weight, 0, 0.01) + nn.init.constant_(self.fc_cls.bias, 0) + + def forward(self, x): + if self.dropout_before_pool and self.dropout_ratio > 0: + x = self.dropout(x) + + x = self.temporal_pool(x) + x = self.spatial_pool(x) + + if not self.dropout_before_pool and self.dropout_ratio > 0: + x = self.dropout(x) + + x = x.view(x.size(0), -1) + cls_score = self.fc_cls(x) + # We do not predict bbox, so return None + return cls_score, None + + @staticmethod + def get_targets(sampling_results, gt_bboxes, gt_labels, rcnn_train_cfg): + pos_proposals = [res.pos_bboxes for res in sampling_results] + neg_proposals = [res.neg_bboxes for res in sampling_results] + pos_gt_labels = [res.pos_gt_labels for res in sampling_results] + cls_reg_targets = bbox_target(pos_proposals, neg_proposals, + pos_gt_labels, rcnn_train_cfg) + return cls_reg_targets + + @staticmethod + def get_recall_prec(pred_vec, target_vec): + """Computes the Recall/Precision for both multi-label and single label + scenarios. + + Note that the computation calculates the micro average. + + Note, that in both cases, the concept of correct/incorrect is the same. + Args: + pred_vec (tensor[N x C]): each element is either 0 or 1 + target_vec (tensor[N x C]): each element is either 0 or 1 - for + single label it is expected that only one element is on (1) + although this is not enforced. + """ + correct = pred_vec & target_vec + recall = correct.sum(1) / target_vec.sum(1).float() # Enforce Float + prec = correct.sum(1) / (pred_vec.sum(1) + 1e-6) + return recall.mean(), prec.mean() + + @staticmethod + def topk_to_matrix(probs, k): + """Converts top-k to binary matrix.""" + topk_labels = probs.topk(k, 1, True, True)[1] + topk_matrix = probs.new_full(probs.size(), 0, dtype=torch.bool) + for i in range(probs.shape[0]): + topk_matrix[i, topk_labels[i]] = 1 + return topk_matrix + + def topk_accuracy(self, pred, target, thr=0.5): + """Computes the Top-K Accuracies for both single and multi-label + scenarios.""" + # Define Target vector: + target_bool = target > 0.5 + + # Branch on Multilabel for computing output classification + if self.multilabel: + pred = pred.sigmoid() + else: + pred = pred.softmax(dim=1) + + # Compute at threshold (K=1 for single) + if self.multilabel: + pred_bool = pred > thr + else: + pred_bool = self.topk_to_matrix(pred, 1) + recall_thr, prec_thr = self.get_recall_prec(pred_bool, target_bool) + + # Compute at various K + recalls_k, precs_k = [], [] + for k in self.topk: + pred_bool = self.topk_to_matrix(pred, k) + recall, prec = self.get_recall_prec(pred_bool, target_bool) + recalls_k.append(recall) + precs_k.append(prec) + + # Return all + return recall_thr, prec_thr, recalls_k, precs_k + + def loss(self, + cls_score, + bbox_pred, + rois, + labels, + label_weights, + bbox_targets=None, + bbox_weights=None, + reduce=True): + + losses = dict() + # Only use the cls_score + if cls_score is not None: + labels = labels[:, 1:] # Get valid labels (ignore first one) + pos_inds = torch.sum(labels, dim=-1) > 0 + cls_score = cls_score[pos_inds, 1:] + labels = labels[pos_inds] + + # Compute First Recall/Precisions + # This has to be done first before normalising the label-space. + recall_thr, prec_thr, recall_k, prec_k = self.topk_accuracy( + cls_score, labels, thr=0.5) + losses['recall@thr=0.5'] = recall_thr + losses['prec@thr=0.5'] = prec_thr + for i, k in enumerate(self.topk): + losses[f'recall@top{k}'] = recall_k[i] + losses[f'prec@top{k}'] = prec_k[i] + + # If Single-label, need to ensure that target labels sum to 1: ie + # that they are valid probabilities. + if not self.multilabel: + labels = labels / labels.sum(dim=1, keepdim=True) + + # Select Loss function based on single/multi-label + # NB. Both losses auto-compute sigmoid/softmax on prediction + if self.multilabel: + loss_func = F.binary_cross_entropy_with_logits + else: + loss_func = cross_entropy_loss + + # Compute loss + loss = loss_func(cls_score, labels, reduction='none') + pt = torch.exp(-loss) + F_loss = self.focal_alpha * (1 - pt)**self.focal_gamma * loss + losses['loss_action_cls'] = torch.mean(F_loss) + + return losses + + def get_det_bboxes(self, + rois, + cls_score, + img_shape, + flip=False, + crop_quadruple=None, + cfg=None): + + # might be used by testing w. augmentation + if isinstance(cls_score, list): + cls_score = sum(cls_score) / float(len(cls_score)) + + # Handle Multi/Single Label + if cls_score is not None: + if self.multilabel: + scores = cls_score.sigmoid() + else: + scores = cls_score.softmax(dim=-1) + else: + scores = None + + bboxes = rois[:, 1:] + assert bboxes.shape[-1] == 4 + + # First reverse the flip + img_h, img_w = img_shape + if flip: + bboxes_ = bboxes.clone() + bboxes_[:, 0] = img_w - 1 - bboxes[:, 2] + bboxes_[:, 2] = img_w - 1 - bboxes[:, 0] + bboxes = bboxes_ + + # Then normalize the bbox to [0, 1] + bboxes[:, 0::2] /= img_w + bboxes[:, 1::2] /= img_h + + def _bbox_crop_undo(bboxes, crop_quadruple): + decropped = bboxes.clone() + + if crop_quadruple is not None: + x1, y1, tw, th = crop_quadruple + decropped[:, 0::2] = bboxes[..., 0::2] * tw + x1 + decropped[:, 1::2] = bboxes[..., 1::2] * th + y1 + + return decropped + + bboxes = _bbox_crop_undo(bboxes, crop_quadruple) + return bboxes, scores + + +if mmdet_imported: + MMDET_HEADS.register_module()(BBoxHeadAVA) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/fbo_head.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/fbo_head.py new file mode 100644 index 00000000..42bbbb34 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/fbo_head.py @@ -0,0 +1,401 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import copy + +import torch +import torch.nn as nn +from mmcv.cnn import ConvModule, constant_init, kaiming_init +from mmcv.runner import load_checkpoint +from mmcv.utils import _BatchNorm + +from mmaction.models.common import LFB +from mmaction.utils import get_root_logger + +try: + from mmdet.models.builder import SHARED_HEADS as MMDET_SHARED_HEADS + mmdet_imported = True +except (ImportError, ModuleNotFoundError): + mmdet_imported = False + + +class NonLocalLayer(nn.Module): + """Non-local layer used in `FBONonLocal` is a variation of the vanilla non- + local block. + + Args: + st_feat_channels (int): Channels of short-term features. + lt_feat_channels (int): Channels of long-term features. + latent_channels (int): Channels of latent features. + use_scale (bool): Whether to scale pairwise_weight by + `1/sqrt(latent_channels)`. Default: True. + pre_activate (bool): Whether to use the activation function before + upsampling. Default: False. + conv_cfg (Dict | None): The config dict for convolution layers. If + not specified, it will use `nn.Conv2d` for convolution layers. + Default: None. + norm_cfg (Dict | None): he config dict for normalization layers. + Default: None. + dropout_ratio (float, optional): Probability of dropout layer. + Default: 0.2. + zero_init_out_conv (bool): Whether to use zero initialization for + out_conv. Default: False. + """ + + def __init__(self, + st_feat_channels, + lt_feat_channels, + latent_channels, + num_st_feat, + num_lt_feat, + use_scale=True, + pre_activate=True, + pre_activate_with_ln=True, + conv_cfg=None, + norm_cfg=None, + dropout_ratio=0.2, + zero_init_out_conv=False): + super().__init__() + if conv_cfg is None: + conv_cfg = dict(type='Conv3d') + self.st_feat_channels = st_feat_channels + self.lt_feat_channels = lt_feat_channels + self.latent_channels = latent_channels + self.num_st_feat = num_st_feat + self.num_lt_feat = num_lt_feat + self.use_scale = use_scale + self.pre_activate = pre_activate + self.pre_activate_with_ln = pre_activate_with_ln + self.dropout_ratio = dropout_ratio + self.zero_init_out_conv = zero_init_out_conv + + self.st_feat_conv = ConvModule( + self.st_feat_channels, + self.latent_channels, + kernel_size=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None) + + self.lt_feat_conv = ConvModule( + self.lt_feat_channels, + self.latent_channels, + kernel_size=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None) + + self.global_conv = ConvModule( + self.lt_feat_channels, + self.latent_channels, + kernel_size=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None) + + if pre_activate: + self.ln = nn.LayerNorm([latent_channels, num_st_feat, 1, 1]) + else: + self.ln = nn.LayerNorm([st_feat_channels, num_st_feat, 1, 1]) + + self.relu = nn.ReLU() + + self.out_conv = ConvModule( + self.latent_channels, + self.st_feat_channels, + kernel_size=1, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=None) + + if self.dropout_ratio > 0: + self.dropout = nn.Dropout(self.dropout_ratio) + + def init_weights(self, pretrained=None): + """Initiate the parameters either from existing checkpoint or from + scratch.""" + if isinstance(pretrained, str): + logger = get_root_logger() + logger.info(f'load model from: {pretrained}') + load_checkpoint(self, pretrained, strict=False, logger=logger) + elif pretrained is None: + for m in self.modules(): + if isinstance(m, nn.Conv3d): + kaiming_init(m) + elif isinstance(m, _BatchNorm): + constant_init(m, 1) + if self.zero_init_out_conv: + constant_init(self.out_conv, 0, bias=0) + else: + raise TypeError('pretrained must be a str or None') + + def forward(self, st_feat, lt_feat): + n, c = st_feat.size(0), self.latent_channels + num_st_feat, num_lt_feat = self.num_st_feat, self.num_lt_feat + + theta = self.st_feat_conv(st_feat) + theta = theta.view(n, c, num_st_feat) + + phi = self.lt_feat_conv(lt_feat) + phi = phi.view(n, c, num_lt_feat) + + g = self.global_conv(lt_feat) + g = g.view(n, c, num_lt_feat) + + # (n, num_st_feat, c), (n, c, num_lt_feat) + # -> (n, num_st_feat, num_lt_feat) + theta_phi = torch.matmul(theta.permute(0, 2, 1), phi) + if self.use_scale: + theta_phi /= c**0.5 + + p = theta_phi.softmax(dim=-1) + + # (n, c, num_lt_feat), (n, num_lt_feat, num_st_feat) + # -> (n, c, num_st_feat, 1, 1) + out = torch.matmul(g, p.permute(0, 2, 1)).view(n, c, num_st_feat, 1, 1) + + # If need to activate it before out_conv, use relu here, otherwise + # use relu outside the non local layer. + if self.pre_activate: + if self.pre_activate_with_ln: + out = self.ln(out) + out = self.relu(out) + + out = self.out_conv(out) + + if not self.pre_activate: + out = self.ln(out) + if self.dropout_ratio > 0: + out = self.dropout(out) + + return out + + +class FBONonLocal(nn.Module): + """Non local feature bank operator. + + Args: + st_feat_channels (int): Channels of short-term features. + lt_feat_channels (int): Channels of long-term features. + latent_channels (int): Channels of latent features. + num_st_feat (int): Number of short-term roi features. + num_lt_feat (int): Number of long-term roi features. + num_non_local_layers (int): Number of non-local layers, which is + at least 1. Default: 2. + st_feat_dropout_ratio (float): Probability of dropout layer for + short-term features. Default: 0.2. + lt_feat_dropout_ratio (float): Probability of dropout layer for + long-term features. Default: 0.2. + pre_activate (bool): Whether to use the activation function before + upsampling in non local layers. Default: True. + zero_init_out_conv (bool): Whether to use zero initialization for + out_conv in NonLocalLayer. Default: False. + """ + + def __init__(self, + st_feat_channels, + lt_feat_channels, + latent_channels, + num_st_feat, + num_lt_feat, + num_non_local_layers=2, + st_feat_dropout_ratio=0.2, + lt_feat_dropout_ratio=0.2, + pre_activate=True, + zero_init_out_conv=False): + super().__init__() + assert num_non_local_layers >= 1, ( + 'At least one non_local_layer is needed.') + self.st_feat_channels = st_feat_channels + self.lt_feat_channels = lt_feat_channels + self.latent_channels = latent_channels + self.num_st_feat = num_st_feat + self.num_lt_feat = num_lt_feat + self.num_non_local_layers = num_non_local_layers + self.st_feat_dropout_ratio = st_feat_dropout_ratio + self.lt_feat_dropout_ratio = lt_feat_dropout_ratio + self.pre_activate = pre_activate + self.zero_init_out_conv = zero_init_out_conv + + self.st_feat_conv = nn.Conv3d( + st_feat_channels, latent_channels, kernel_size=1) + self.lt_feat_conv = nn.Conv3d( + lt_feat_channels, latent_channels, kernel_size=1) + + if self.st_feat_dropout_ratio > 0: + self.st_feat_dropout = nn.Dropout(self.st_feat_dropout_ratio) + + if self.lt_feat_dropout_ratio > 0: + self.lt_feat_dropout = nn.Dropout(self.lt_feat_dropout_ratio) + + if not self.pre_activate: + self.relu = nn.ReLU() + + self.non_local_layers = [] + for idx in range(self.num_non_local_layers): + layer_name = f'non_local_layer_{idx + 1}' + self.add_module( + layer_name, + NonLocalLayer( + latent_channels, + latent_channels, + latent_channels, + num_st_feat, + num_lt_feat, + pre_activate=self.pre_activate, + zero_init_out_conv=self.zero_init_out_conv)) + self.non_local_layers.append(layer_name) + + def init_weights(self, pretrained=None): + if isinstance(pretrained, str): + logger = get_root_logger() + load_checkpoint(self, pretrained, strict=False, logger=logger) + elif pretrained is None: + kaiming_init(self.st_feat_conv) + kaiming_init(self.lt_feat_conv) + for layer_name in self.non_local_layers: + non_local_layer = getattr(self, layer_name) + non_local_layer.init_weights(pretrained=pretrained) + else: + raise TypeError('pretrained must be a str or None') + + def forward(self, st_feat, lt_feat): + # prepare st_feat + st_feat = self.st_feat_conv(st_feat) + if self.st_feat_dropout_ratio > 0: + st_feat = self.st_feat_dropout(st_feat) + + # prepare lt_feat + lt_feat = self.lt_feat_conv(lt_feat) + if self.lt_feat_dropout_ratio > 0: + lt_feat = self.lt_feat_dropout(lt_feat) + + # fuse short-term and long-term features in NonLocal Layer + for layer_name in self.non_local_layers: + identity = st_feat + non_local_layer = getattr(self, layer_name) + nl_out = non_local_layer(st_feat, lt_feat) + nl_out = identity + nl_out + if not self.pre_activate: + nl_out = self.relu(nl_out) + st_feat = nl_out + + return nl_out + + +class FBOAvg(nn.Module): + """Avg pool feature bank operator.""" + + def __init__(self): + super().__init__() + self.avg_pool = nn.AdaptiveAvgPool3d((1, None, None)) + + def init_weights(self, pretrained=None): + # FBOAvg has no parameters to be initialized. + pass + + def forward(self, st_feat, lt_feat): + out = self.avg_pool(lt_feat) + return out + + +class FBOMax(nn.Module): + """Max pool feature bank operator.""" + + def __init__(self): + super().__init__() + self.max_pool = nn.AdaptiveMaxPool3d((1, None, None)) + + def init_weights(self, pretrained=None): + # FBOMax has no parameters to be initialized. + pass + + def forward(self, st_feat, lt_feat): + out = self.max_pool(lt_feat) + return out + + +class FBOHead(nn.Module): + """Feature Bank Operator Head. + + Add feature bank operator for the spatiotemporal detection model to fuse + short-term features and long-term features. + + Args: + lfb_cfg (Dict): The config dict for LFB which is used to sample + long-term features. + fbo_cfg (Dict): The config dict for feature bank operator (FBO). The + type of fbo is also in the config dict and supported fbo type is + `fbo_dict`. + temporal_pool_type (str): The temporal pool type. Choices are 'avg' or + 'max'. Default: 'avg'. + spatial_pool_type (str): The spatial pool type. Choices are 'avg' or + 'max'. Default: 'max'. + """ + + fbo_dict = {'non_local': FBONonLocal, 'avg': FBOAvg, 'max': FBOMax} + + def __init__(self, + lfb_cfg, + fbo_cfg, + temporal_pool_type='avg', + spatial_pool_type='max', + pretrained=None): + super().__init__() + fbo_type = fbo_cfg.pop('type', 'non_local') + assert fbo_type in FBOHead.fbo_dict + assert temporal_pool_type in ['max', 'avg'] + assert spatial_pool_type in ['max', 'avg'] + + self.lfb_cfg = copy.deepcopy(lfb_cfg) + self.fbo_cfg = copy.deepcopy(fbo_cfg) + self.pretrained = pretrained + + self.lfb = LFB(**self.lfb_cfg) + self.fbo = self.fbo_dict[fbo_type](**self.fbo_cfg) + + # Pool by default + if temporal_pool_type == 'avg': + self.temporal_pool = nn.AdaptiveAvgPool3d((1, None, None)) + else: + self.temporal_pool = nn.AdaptiveMaxPool3d((1, None, None)) + if spatial_pool_type == 'avg': + self.spatial_pool = nn.AdaptiveAvgPool3d((None, 1, 1)) + else: + self.spatial_pool = nn.AdaptiveMaxPool3d((None, 1, 1)) + + def init_weights(self, pretrained=None): + """Initialize the weights in the module. + + Args: + pretrained (str, optional): Path to pre-trained weights. + Default: None. + """ + self.fbo.init_weights(pretrained=pretrained) + + def sample_lfb(self, rois, img_metas): + """Sample long-term features for each ROI feature.""" + inds = rois[:, 0].type(torch.int64) + lt_feat_list = [] + for ind in inds: + lt_feat_list.append(self.lfb[img_metas[ind]['img_key']].to()) + lt_feat = torch.stack(lt_feat_list, dim=0) + # [N, lfb_channels, window_size * max_num_feat_per_step] + lt_feat = lt_feat.permute(0, 2, 1).contiguous() + return lt_feat.unsqueeze(-1).unsqueeze(-1) + + def forward(self, x, rois, img_metas, **kwargs): + # [N, C, 1, 1, 1] + st_feat = self.temporal_pool(x) + st_feat = self.spatial_pool(st_feat) + identity = st_feat + + # [N, C, window_size * num_feat_per_step, 1, 1] + lt_feat = self.sample_lfb(rois, img_metas).to(st_feat.device) + + fbo_feat = self.fbo(st_feat, lt_feat) + + out = torch.cat([identity, fbo_feat], dim=1) + return out + + +if mmdet_imported: + MMDET_SHARED_HEADS.register_module()(FBOHead) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/i3d_head.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/i3d_head.py new file mode 100644 index 00000000..a5fe18e5 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/i3d_head.py @@ -0,0 +1,74 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch.nn as nn +from mmcv.cnn import normal_init + +from ..builder import HEADS +from .base import BaseHead + + +@HEADS.register_module() +class I3DHead(BaseHead): + """Classification head for I3D. + + Args: + num_classes (int): Number of classes to be classified. + in_channels (int): Number of channels in input feature. + loss_cls (dict): Config for building loss. + Default: dict(type='CrossEntropyLoss') + spatial_type (str): Pooling type in spatial dimension. Default: 'avg'. + dropout_ratio (float): Probability of dropout layer. Default: 0.5. + init_std (float): Std value for Initiation. Default: 0.01. + kwargs (dict, optional): Any keyword argument to be used to initialize + the head. + """ + + def __init__(self, + num_classes, + in_channels, + loss_cls=dict(type='CrossEntropyLoss'), + spatial_type='avg', + dropout_ratio=0.5, + init_std=0.01, + **kwargs): + super().__init__(num_classes, in_channels, loss_cls, **kwargs) + + self.spatial_type = spatial_type + self.dropout_ratio = dropout_ratio + self.init_std = init_std + if self.dropout_ratio != 0: + self.dropout = nn.Dropout(p=self.dropout_ratio) + else: + self.dropout = None + self.fc_cls = nn.Linear(self.in_channels, self.num_classes) + + if self.spatial_type == 'avg': + # use `nn.AdaptiveAvgPool3d` to adaptively match the in_channels. + self.avg_pool = nn.AdaptiveAvgPool3d((1, 1, 1)) + else: + self.avg_pool = None + + def init_weights(self): + """Initiate the parameters from scratch.""" + normal_init(self.fc_cls, std=self.init_std) + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The classification scores for input samples. + """ + # [N, in_channels, 4, 7, 7] + if self.avg_pool is not None: + x = self.avg_pool(x) + # [N, in_channels, 1, 1, 1] + if self.dropout is not None: + x = self.dropout(x) + # [N, in_channels, 1, 1, 1] + x = x.view(x.shape[0], -1) + # [N, in_channels] + cls_score = self.fc_cls(x) + # [N, num_classes] + return cls_score diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/lfb_infer_head.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/lfb_infer_head.py new file mode 100644 index 00000000..2ad7cc58 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/lfb_infer_head.py @@ -0,0 +1,148 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os.path as osp + +import mmcv +import torch +import torch.distributed as dist +import torch.nn as nn +from mmcv.runner import get_dist_info + +try: + from mmdet.models.builder import SHARED_HEADS as MMDET_SHARED_HEADS + mmdet_imported = True +except (ImportError, ModuleNotFoundError): + mmdet_imported = False + + +class LFBInferHead(nn.Module): + """Long-Term Feature Bank Infer Head. + + This head is used to derive and save the LFB without affecting the input. + + Args: + lfb_prefix_path (str): The prefix path to store the lfb. + dataset_mode (str, optional): Which dataset to be inferred. Choices are + 'train', 'val' or 'test'. Default: 'train'. + use_half_precision (bool, optional): Whether to store the + half-precision roi features. Default: True. + temporal_pool_type (str): The temporal pool type. Choices are 'avg' or + 'max'. Default: 'avg'. + spatial_pool_type (str): The spatial pool type. Choices are 'avg' or + 'max'. Default: 'max'. + """ + + def __init__(self, + lfb_prefix_path, + dataset_mode='train', + use_half_precision=True, + temporal_pool_type='avg', + spatial_pool_type='max', + pretrained=None): + super().__init__() + rank, _ = get_dist_info() + if rank == 0: + if not osp.exists(lfb_prefix_path): + print(f'lfb prefix path {lfb_prefix_path} does not exist. ' + f'Creating the folder...') + mmcv.mkdir_or_exist(lfb_prefix_path) + print('\nInferring LFB...') + + assert temporal_pool_type in ['max', 'avg'] + assert spatial_pool_type in ['max', 'avg'] + self.lfb_prefix_path = lfb_prefix_path + self.dataset_mode = dataset_mode + self.use_half_precision = use_half_precision + self.pretrained = pretrained + + # Pool by default + if temporal_pool_type == 'avg': + self.temporal_pool = nn.AdaptiveAvgPool3d((1, None, None)) + else: + self.temporal_pool = nn.AdaptiveMaxPool3d((1, None, None)) + if spatial_pool_type == 'avg': + self.spatial_pool = nn.AdaptiveAvgPool3d((None, 1, 1)) + else: + self.spatial_pool = nn.AdaptiveMaxPool3d((None, 1, 1)) + + self.all_features = [] + self.all_metadata = [] + + def init_weights(self, pretrained=None): + # LFBInferHead has no parameters to be initialized. + pass + + def forward(self, x, rois, img_metas, **kwargs): + # [N, C, 1, 1, 1] + features = self.temporal_pool(x) + features = self.spatial_pool(features) + if self.use_half_precision: + features = features.half() + + inds = rois[:, 0].type(torch.int64) + for ind in inds: + self.all_metadata.append(img_metas[ind]['img_key']) + self.all_features += list(features) + + # Return the input directly and doesn't affect the input. + return x + + def __del__(self): + assert len(self.all_features) == len(self.all_metadata), ( + 'features and metadata are not equal in length!') + + rank, world_size = get_dist_info() + if world_size > 1: + dist.barrier() + + _lfb = {} + for feature, metadata in zip(self.all_features, self.all_metadata): + video_id, timestamp = metadata.split(',') + timestamp = int(timestamp) + + if video_id not in _lfb: + _lfb[video_id] = {} + if timestamp not in _lfb[video_id]: + _lfb[video_id][timestamp] = [] + + _lfb[video_id][timestamp].append(torch.squeeze(feature)) + + _lfb_file_path = osp.normpath( + osp.join(self.lfb_prefix_path, + f'_lfb_{self.dataset_mode}_{rank}.pkl')) + torch.save(_lfb, _lfb_file_path) + print(f'{len(self.all_features)} features from {len(_lfb)} videos ' + f'on GPU {rank} have been stored in {_lfb_file_path}.') + + # Synchronizes all processes to make sure all gpus have stored their + # roi features + if world_size > 1: + dist.barrier() + if rank > 0: + return + + print('Gathering all the roi features...') + + lfb = {} + for rank_id in range(world_size): + _lfb_file_path = osp.normpath( + osp.join(self.lfb_prefix_path, + f'_lfb_{self.dataset_mode}_{rank_id}.pkl')) + + # Since each frame will only be distributed to one GPU, + # the roi features on the same timestamp of the same video are all + # on the same GPU + _lfb = torch.load(_lfb_file_path) + for video_id in _lfb: + if video_id not in lfb: + lfb[video_id] = _lfb[video_id] + else: + lfb[video_id].update(_lfb[video_id]) + + lfb_file_path = osp.normpath( + osp.join(self.lfb_prefix_path, f'lfb_{self.dataset_mode}.pkl')) + torch.save(lfb, lfb_file_path) + print(f'LFB has been constructed in {lfb_file_path}!') + + +if mmdet_imported: + MMDET_SHARED_HEADS.register_module()(LFBInferHead) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/misc_head.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/misc_head.py new file mode 100644 index 00000000..a2888a26 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/misc_head.py @@ -0,0 +1,134 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn +from mmcv.cnn import ConvModule, constant_init, kaiming_init +from mmcv.utils import _BatchNorm + +try: + from mmdet.models.builder import SHARED_HEADS as MMDET_SHARED_HEADS + mmdet_imported = True +except (ImportError, ModuleNotFoundError): + mmdet_imported = False + +# Note: All these heads take 5D Tensors as input (N, C, T, H, W) + + +class ACRNHead(nn.Module): + """ACRN Head: Tile + 1x1 convolution + 3x3 convolution. + + This module is proposed in + `Actor-Centric Relation Network + `_ + + Args: + in_channels (int): The input channel. + out_channels (int): The output channel. + stride (int): The spatial stride. + num_convs (int): The number of 3x3 convolutions in ACRNHead. + conv_cfg (dict): Config for norm layers. Default: dict(type='Conv'). + norm_cfg (dict): + Config for norm layers. required keys are `type` and + `requires_grad`. Default: dict(type='BN2d', requires_grad=True). + act_cfg (dict): Config for activate layers. + Default: dict(type='ReLU', inplace=True). + kwargs (dict): Other new arguments, to be compatible with MMDet update. + """ + + def __init__(self, + in_channels, + out_channels, + stride=1, + num_convs=1, + conv_cfg=dict(type='Conv3d'), + norm_cfg=dict(type='BN3d', requires_grad=True), + act_cfg=dict(type='ReLU', inplace=True), + **kwargs): + + super().__init__() + self.in_channels = in_channels + self.out_channels = out_channels + self.stride = stride + self.num_convs = num_convs + self.conv_cfg = conv_cfg + self.norm_cfg = norm_cfg + self.act_cfg = act_cfg + self.max_pool = nn.AdaptiveMaxPool3d(1) + + self.conv1 = ConvModule( + in_channels, + out_channels, + kernel_size=1, + stride=1, + padding=0, + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + + assert num_convs >= 1 + self.conv2 = ConvModule( + out_channels, + out_channels, + kernel_size=(1, 3, 3), + stride=(1, stride, stride), + padding=(0, 1, 1), + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + + convs = [] + for _ in range(num_convs - 1): + conv = ConvModule( + out_channels, + out_channels, + kernel_size=(1, 3, 3), + padding=(0, 1, 1), + bias=False, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + convs.append(conv) + self.convs = nn.ModuleList(convs) + + def init_weights(self, **kwargs): + """Weight Initialization for ACRNHead.""" + for m in self.modules(): + if isinstance(m, nn.Conv3d): + kaiming_init(m) + elif isinstance(m, _BatchNorm): + constant_init(m, 1) + + def forward(self, x, feat, rois, **kwargs): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The extracted RoI feature. + feat (torch.Tensor): The context feature. + rois (torch.Tensor): The regions of interest. + + Returns: + torch.Tensor: The RoI features that have interacted with context + feature. + """ + # We use max pooling by default + x = self.max_pool(x) + + h, w = feat.shape[-2:] + x_tile = x.repeat(1, 1, 1, h, w) + + roi_inds = rois[:, 0].type(torch.long) + roi_gfeat = feat[roi_inds] + + new_feat = torch.cat([x_tile, roi_gfeat], dim=1) + new_feat = self.conv1(new_feat) + new_feat = self.conv2(new_feat) + + for conv in self.convs: + new_feat = conv(new_feat) + + return new_feat + + +if mmdet_imported: + MMDET_SHARED_HEADS.register_module()(ACRNHead) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/roi_head.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/roi_head.py new file mode 100644 index 00000000..2a06a258 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/roi_head.py @@ -0,0 +1,128 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np + +from mmaction.core.bbox import bbox2result + +try: + from mmdet.core.bbox import bbox2roi + from mmdet.models import HEADS as MMDET_HEADS + from mmdet.models.roi_heads import StandardRoIHead + mmdet_imported = True +except (ImportError, ModuleNotFoundError): + mmdet_imported = False + +if mmdet_imported: + + @MMDET_HEADS.register_module() + class AVARoIHead(StandardRoIHead): + + def _bbox_forward(self, x, rois, img_metas): + """Defines the computation performed to get bbox predictions. + + Args: + x (torch.Tensor): The input tensor. + rois (torch.Tensor): The regions of interest. + img_metas (list): The meta info of images + + Returns: + dict: bbox predictions with features and classification scores. + """ + bbox_feat, global_feat = self.bbox_roi_extractor(x, rois) + + if self.with_shared_head: + bbox_feat = self.shared_head( + bbox_feat, + feat=global_feat, + rois=rois, + img_metas=img_metas) + + cls_score, bbox_pred = self.bbox_head(bbox_feat) + + bbox_results = dict( + cls_score=cls_score, bbox_pred=bbox_pred, bbox_feats=bbox_feat) + return bbox_results + + def _bbox_forward_train(self, x, sampling_results, gt_bboxes, + gt_labels, img_metas): + """Run forward function and calculate loss for box head in + training.""" + rois = bbox2roi([res.bboxes for res in sampling_results]) + bbox_results = self._bbox_forward(x, rois, img_metas) + + bbox_targets = self.bbox_head.get_targets(sampling_results, + gt_bboxes, gt_labels, + self.train_cfg) + loss_bbox = self.bbox_head.loss(bbox_results['cls_score'], + bbox_results['bbox_pred'], rois, + *bbox_targets) + + bbox_results.update(loss_bbox=loss_bbox) + return bbox_results + + def simple_test(self, + x, + proposal_list, + img_metas, + proposals=None, + rescale=False): + """Defines the computation performed for simple testing.""" + assert self.with_bbox, 'Bbox head must be implemented.' + + if isinstance(x, tuple): + x_shape = x[0].shape + else: + x_shape = x.shape + + assert x_shape[0] == 1, 'only accept 1 sample at test mode' + assert x_shape[0] == len(img_metas) == len(proposal_list) + + det_bboxes, det_labels = self.simple_test_bboxes( + x, img_metas, proposal_list, self.test_cfg, rescale=rescale) + bbox_results = bbox2result( + det_bboxes, + det_labels, + self.bbox_head.num_classes, + thr=self.test_cfg.action_thr) + return [bbox_results] + + def simple_test_bboxes(self, + x, + img_metas, + proposals, + rcnn_test_cfg, + rescale=False): + """Test only det bboxes without augmentation.""" + rois = bbox2roi(proposals) + bbox_results = self._bbox_forward(x, rois, img_metas) + cls_score = bbox_results['cls_score'] + + img_shape = img_metas[0]['img_shape'] + crop_quadruple = np.array([0, 0, 1, 1]) + flip = False + + if 'crop_quadruple' in img_metas[0]: + crop_quadruple = img_metas[0]['crop_quadruple'] + + if 'flip' in img_metas[0]: + flip = img_metas[0]['flip'] + + det_bboxes, det_labels = self.bbox_head.get_det_bboxes( + rois, + cls_score, + img_shape, + flip=flip, + crop_quadruple=crop_quadruple, + cfg=rcnn_test_cfg) + + return det_bboxes, det_labels +else: + # Just define an empty class, so that __init__ can import it. + class AVARoIHead: + + def __init__(self, *args, **kwargs): + raise ImportError( + 'Failed to import `bbox2roi` from `mmdet.core.bbox`, ' + 'or failed to import `HEADS` from `mmdet.models`, ' + 'or failed to import `StandardRoIHead` from ' + '`mmdet.models.roi_heads`. You will be unable to use ' + '`AVARoIHead`. ') diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/slowfast_head.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/slowfast_head.py new file mode 100644 index 00000000..62ff22c0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/slowfast_head.py @@ -0,0 +1,80 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn +from mmcv.cnn import normal_init + +from ..builder import HEADS +from .base import BaseHead + + +@HEADS.register_module() +class SlowFastHead(BaseHead): + """The classification head for SlowFast. + + Args: + num_classes (int): Number of classes to be classified. + in_channels (int): Number of channels in input feature. + loss_cls (dict): Config for building loss. + Default: dict(type='CrossEntropyLoss'). + spatial_type (str): Pooling type in spatial dimension. Default: 'avg'. + dropout_ratio (float): Probability of dropout layer. Default: 0.8. + init_std (float): Std value for Initiation. Default: 0.01. + kwargs (dict, optional): Any keyword argument to be used to initialize + the head. + """ + + def __init__(self, + num_classes, + in_channels, + loss_cls=dict(type='CrossEntropyLoss'), + spatial_type='avg', + dropout_ratio=0.8, + init_std=0.01, + **kwargs): + + super().__init__(num_classes, in_channels, loss_cls, **kwargs) + self.spatial_type = spatial_type + self.dropout_ratio = dropout_ratio + self.init_std = init_std + + if self.dropout_ratio != 0: + self.dropout = nn.Dropout(p=self.dropout_ratio) + else: + self.dropout = None + self.fc_cls = nn.Linear(in_channels, num_classes) + + if self.spatial_type == 'avg': + self.avg_pool = nn.AdaptiveAvgPool3d((1, 1, 1)) + else: + self.avg_pool = None + + def init_weights(self): + """Initiate the parameters from scratch.""" + normal_init(self.fc_cls, std=self.init_std) + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The classification scores for input samples. + """ + # ([N, channel_fast, T, H, W], [(N, channel_slow, T, H, W)]) + x_fast, x_slow = x + # ([N, channel_fast, 1, 1, 1], [N, channel_slow, 1, 1, 1]) + x_fast = self.avg_pool(x_fast) + x_slow = self.avg_pool(x_slow) + # [N, channel_fast + channel_slow, 1, 1, 1] + x = torch.cat((x_slow, x_fast), dim=1) + + if self.dropout is not None: + x = self.dropout(x) + + # [N x C] + x = x.view(x.size(0), -1) + # [N x num_classes] + cls_score = self.fc_cls(x) + + return cls_score diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/ssn_head.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/ssn_head.py new file mode 100644 index 00000000..239e349d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/ssn_head.py @@ -0,0 +1,413 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn +from mmcv.cnn import normal_init + +from ..builder import HEADS + + +def parse_stage_config(stage_cfg): + """Parse config of STPP for three stages. + + Args: + stage_cfg (int | tuple[int]): + Config of structured temporal pyramid pooling. + + Returns: + tuple[tuple[int], int]: + Config of structured temporal pyramid pooling and + total number of parts(number of multipliers). + """ + if isinstance(stage_cfg, int): + return (stage_cfg, ), stage_cfg + if isinstance(stage_cfg, tuple): + return stage_cfg, sum(stage_cfg) + raise ValueError(f'Incorrect STPP config {stage_cfg}') + + +class STPPTrain(nn.Module): + """Structured temporal pyramid pooling for SSN at training. + + Args: + stpp_stage (tuple): Config of structured temporal pyramid pooling. + Default: (1, (1, 2), 1). + num_segments_list (tuple): Number of segments to be sampled + in three stages. Default: (2, 5, 2). + """ + + def __init__(self, stpp_stage=(1, (1, 2), 1), num_segments_list=(2, 5, 2)): + super().__init__() + + starting_part, starting_multiplier = parse_stage_config(stpp_stage[0]) + course_part, course_multiplier = parse_stage_config(stpp_stage[1]) + ending_part, ending_multiplier = parse_stage_config(stpp_stage[2]) + + self.num_multipliers = ( + starting_multiplier + course_multiplier + ending_multiplier) + self.stpp_stages = (starting_part, course_part, ending_part) + self.multiplier_list = (starting_multiplier, course_multiplier, + ending_multiplier) + + self.num_segments_list = num_segments_list + + @staticmethod + def _extract_stage_feature(stage_feat, stage_parts, num_multipliers, + scale_factors, num_samples): + """Extract stage feature based on structured temporal pyramid pooling. + + Args: + stage_feat (torch.Tensor): Stage features to be STPP. + stage_parts (tuple): Config of STPP. + num_multipliers (int): Total number of parts in the stage. + scale_factors (list): Ratios of the effective sampling lengths + to augmented lengths. + num_samples (int): Number of samples. + + Returns: + torch.Tensor: Features of the stage. + """ + stage_stpp_feat = [] + stage_len = stage_feat.size(1) + for stage_part in stage_parts: + ticks = torch.arange(0, stage_len + 1e-5, + stage_len / stage_part).int() + for i in range(stage_part): + part_feat = stage_feat[:, ticks[i]:ticks[i + 1], :].mean( + dim=1) / num_multipliers + if scale_factors is not None: + part_feat = ( + part_feat * scale_factors.view(num_samples, 1)) + stage_stpp_feat.append(part_feat) + return stage_stpp_feat + + def forward(self, x, scale_factors): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + scale_factors (list): Ratios of the effective sampling lengths + to augmented lengths. + + Returns: + tuple[torch.Tensor, torch.Tensor]: + Features for predicting activity scores and + completeness scores. + """ + x0 = self.num_segments_list[0] + x1 = x0 + self.num_segments_list[1] + num_segments = x1 + self.num_segments_list[2] + + feat_dim = x.size(1) + x = x.view(-1, num_segments, feat_dim) + num_samples = x.size(0) + + scale_factors = scale_factors.view(-1, 2) + + stage_stpp_feats = [] + stage_stpp_feats.extend( + self._extract_stage_feature(x[:, :x0, :], self.stpp_stages[0], + self.multiplier_list[0], + scale_factors[:, 0], num_samples)) + stage_stpp_feats.extend( + self._extract_stage_feature(x[:, x0:x1, :], self.stpp_stages[1], + self.multiplier_list[1], None, + num_samples)) + stage_stpp_feats.extend( + self._extract_stage_feature(x[:, x1:, :], self.stpp_stages[2], + self.multiplier_list[2], + scale_factors[:, 1], num_samples)) + stpp_feat = torch.cat(stage_stpp_feats, dim=1) + + course_feat = x[:, x0:x1, :].mean(dim=1) + return course_feat, stpp_feat + + +class STPPTest(nn.Module): + """Structured temporal pyramid pooling for SSN at testing. + + Args: + num_classes (int): Number of classes to be classified. + use_regression (bool): Whether to perform regression or not. + Default: True. + stpp_stage (tuple): Config of structured temporal pyramid pooling. + Default: (1, (1, 2), 1). + """ + + def __init__(self, + num_classes, + use_regression=True, + stpp_stage=(1, (1, 2), 1)): + super().__init__() + + self.activity_score_len = num_classes + 1 + self.complete_score_len = num_classes + self.reg_score_len = num_classes * 2 + self.use_regression = use_regression + + starting_parts, starting_multiplier = parse_stage_config(stpp_stage[0]) + course_parts, course_multiplier = parse_stage_config(stpp_stage[1]) + ending_parts, ending_multiplier = parse_stage_config(stpp_stage[2]) + + self.num_multipliers = ( + starting_multiplier + course_multiplier + ending_multiplier) + if self.use_regression: + self.feat_dim = ( + self.activity_score_len + self.num_multipliers * + (self.complete_score_len + self.reg_score_len)) + else: + self.feat_dim = ( + self.activity_score_len + + self.num_multipliers * self.complete_score_len) + self.stpp_stage = (starting_parts, course_parts, ending_parts) + + self.activity_slice = slice(0, self.activity_score_len) + self.complete_slice = slice( + self.activity_slice.stop, self.activity_slice.stop + + self.complete_score_len * self.num_multipliers) + self.reg_slice = slice( + self.complete_slice.stop, self.complete_slice.stop + + self.reg_score_len * self.num_multipliers) + + @staticmethod + def _pyramids_pooling(out_scores, index, raw_scores, ticks, scale_factors, + score_len, stpp_stage): + """Perform pyramids pooling. + + Args: + out_scores (torch.Tensor): Scores to be returned. + index (int): Index of output scores. + raw_scores (torch.Tensor): Raw scores before STPP. + ticks (list): Ticks of raw scores. + scale_factors (list): Ratios of the effective sampling lengths + to augmented lengths. + score_len (int): Length of the score. + stpp_stage (tuple): Config of STPP. + """ + offset = 0 + for stage_idx, stage_cfg in enumerate(stpp_stage): + if stage_idx == 0: + scale_factor = scale_factors[0] + elif stage_idx == len(stpp_stage) - 1: + scale_factor = scale_factors[1] + else: + scale_factor = 1.0 + + sum_parts = sum(stage_cfg) + tick_left = ticks[stage_idx] + tick_right = float(max(ticks[stage_idx] + 1, ticks[stage_idx + 1])) + + if tick_right <= 0 or tick_left >= raw_scores.size(0): + offset += sum_parts + continue + for num_parts in stage_cfg: + part_ticks = torch.arange(tick_left, tick_right + 1e-5, + (tick_right - tick_left) / + num_parts).int() + + for i in range(num_parts): + part_tick_left = part_ticks[i] + part_tick_right = part_ticks[i + 1] + if part_tick_right - part_tick_left >= 1: + raw_score = raw_scores[part_tick_left:part_tick_right, + offset * + score_len:(offset + 1) * + score_len] + raw_scale_score = raw_score.mean(dim=0) * scale_factor + out_scores[index, :] += raw_scale_score.detach().cpu() + offset += 1 + + return out_scores + + def forward(self, x, proposal_ticks, scale_factors): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + proposal_ticks (list): Ticks of proposals to be STPP. + scale_factors (list): Ratios of the effective sampling lengths + to augmented lengths. + + Returns: + tuple[torch.Tensor, torch.Tensor, torch.Tensor]: + out_activity_scores (torch.Tensor): Activity scores + out_complete_scores (torch.Tensor): Completeness scores. + out_reg_scores (torch.Tensor): Regression scores. + """ + assert x.size(1) == self.feat_dim + num_ticks = proposal_ticks.size(0) + + out_activity_scores = torch.zeros((num_ticks, self.activity_score_len), + dtype=x.dtype) + raw_activity_scores = x[:, self.activity_slice] + + out_complete_scores = torch.zeros((num_ticks, self.complete_score_len), + dtype=x.dtype) + raw_complete_scores = x[:, self.complete_slice] + + if self.use_regression: + out_reg_scores = torch.zeros((num_ticks, self.reg_score_len), + dtype=x.dtype) + raw_reg_scores = x[:, self.reg_slice] + else: + out_reg_scores = None + raw_reg_scores = None + + for i in range(num_ticks): + ticks = proposal_ticks[i] + + out_activity_scores[i, :] = raw_activity_scores[ + ticks[1]:max(ticks[1] + 1, ticks[2]), :].mean(dim=0) + + out_complete_scores = self._pyramids_pooling( + out_complete_scores, i, raw_complete_scores, ticks, + scale_factors[i], self.complete_score_len, self.stpp_stage) + + if self.use_regression: + out_reg_scores = self._pyramids_pooling( + out_reg_scores, i, raw_reg_scores, ticks, scale_factors[i], + self.reg_score_len, self.stpp_stage) + + return out_activity_scores, out_complete_scores, out_reg_scores + + +@HEADS.register_module() +class SSNHead(nn.Module): + """The classification head for SSN. + + Args: + dropout_ratio (float): Probability of dropout layer. Default: 0.8. + in_channels (int): Number of channels for input data. Default: 1024. + num_classes (int): Number of classes to be classified. Default: 20. + consensus (dict): Config of segmental consensus. + use_regression (bool): Whether to perform regression or not. + Default: True. + init_std (float): Std value for Initiation. Default: 0.001. + """ + + def __init__(self, + dropout_ratio=0.8, + in_channels=1024, + num_classes=20, + consensus=dict( + type='STPPTrain', + standalong_classifier=True, + stpp_cfg=(1, 1, 1), + num_seg=(2, 5, 2)), + use_regression=True, + init_std=0.001): + + super().__init__() + + self.dropout_ratio = dropout_ratio + self.num_classes = num_classes + self.use_regression = use_regression + self.init_std = init_std + + if self.dropout_ratio != 0: + self.dropout = nn.Dropout(p=self.dropout_ratio) + else: + self.dropout = None + + # Based on this copy, the model will utilize different + # structured temporal pyramid pooling at training and testing. + # Warning: this copy cannot be removed. + consensus_ = consensus.copy() + consensus_type = consensus_.pop('type') + if consensus_type == 'STPPTrain': + self.consensus = STPPTrain(**consensus_) + elif consensus_type == 'STPPTest': + consensus_['num_classes'] = self.num_classes + self.consensus = STPPTest(**consensus_) + + self.in_channels_activity = in_channels + self.in_channels_complete = ( + self.consensus.num_multipliers * in_channels) + self.activity_fc = nn.Linear(in_channels, num_classes + 1) + self.completeness_fc = nn.Linear(self.in_channels_complete, + num_classes) + if self.use_regression: + self.regressor_fc = nn.Linear(self.in_channels_complete, + num_classes * 2) + + def init_weights(self): + """Initiate the parameters from scratch.""" + normal_init(self.activity_fc, std=self.init_std) + normal_init(self.completeness_fc, std=self.init_std) + if self.use_regression: + normal_init(self.regressor_fc, std=self.init_std) + + def prepare_test_fc(self, stpp_feat_multiplier): + """Reorganize the shape of fully connected layer at testing, in order + to improve testing efficiency. + + Args: + stpp_feat_multiplier (int): Total number of parts. + + Returns: + bool: Whether the shape transformation is ready for testing. + """ + + in_features = self.activity_fc.in_features + out_features = ( + self.activity_fc.out_features + + self.completeness_fc.out_features * stpp_feat_multiplier) + if self.use_regression: + out_features += ( + self.regressor_fc.out_features * stpp_feat_multiplier) + self.test_fc = nn.Linear(in_features, out_features) + + # Fetch weight and bias of the reorganized fc. + complete_weight = self.completeness_fc.weight.data.view( + self.completeness_fc.out_features, stpp_feat_multiplier, + in_features).transpose(0, 1).contiguous().view(-1, in_features) + complete_bias = self.completeness_fc.bias.data.view(1, -1).expand( + stpp_feat_multiplier, self.completeness_fc.out_features + ).contiguous().view(-1) / stpp_feat_multiplier + + weight = torch.cat((self.activity_fc.weight.data, complete_weight)) + bias = torch.cat((self.activity_fc.bias.data, complete_bias)) + + if self.use_regression: + reg_weight = self.regressor_fc.weight.data.view( + self.regressor_fc.out_features, stpp_feat_multiplier, + in_features).transpose(0, + 1).contiguous().view(-1, in_features) + reg_bias = self.regressor_fc.bias.data.view(1, -1).expand( + stpp_feat_multiplier, self.regressor_fc.out_features + ).contiguous().view(-1) / stpp_feat_multiplier + weight = torch.cat((weight, reg_weight)) + bias = torch.cat((bias, reg_bias)) + + self.test_fc.weight.data = weight + self.test_fc.bias.data = bias + return True + + def forward(self, x, test_mode=False): + """Defines the computation performed at every call.""" + if not test_mode: + x, proposal_scale_factor = x + activity_feat, completeness_feat = self.consensus( + x, proposal_scale_factor) + + if self.dropout is not None: + activity_feat = self.dropout(activity_feat) + completeness_feat = self.dropout(completeness_feat) + + activity_scores = self.activity_fc(activity_feat) + complete_scores = self.completeness_fc(completeness_feat) + if self.use_regression: + bbox_preds = self.regressor_fc(completeness_feat) + bbox_preds = bbox_preds.view(-1, + self.completeness_fc.out_features, + 2) + else: + bbox_preds = None + return activity_scores, complete_scores, bbox_preds + + x, proposal_tick_list, scale_factor_list = x + test_scores = self.test_fc(x) + (activity_scores, completeness_scores, + bbox_preds) = self.consensus(test_scores, proposal_tick_list, + scale_factor_list) + + return (test_scores, activity_scores, completeness_scores, bbox_preds) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/stgcn_head.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/stgcn_head.py new file mode 100644 index 00000000..1961b464 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/stgcn_head.py @@ -0,0 +1,65 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch.nn as nn +from mmcv.cnn import normal_init + +from ..builder import HEADS +from .base import BaseHead + + +@HEADS.register_module() +class STGCNHead(BaseHead): + """The classification head for STGCN. + + Args: + num_classes (int): Number of classes to be classified. + in_channels (int): Number of channels in input feature. + loss_cls (dict): Config for building loss. + Default: dict(type='CrossEntropyLoss') + spatial_type (str): Pooling type in spatial dimension. Default: 'avg'. + num_person (int): Number of person. Default: 2. + init_std (float): Std value for Initiation. Default: 0.01. + kwargs (dict, optional): Any keyword argument to be used to initialize + the head. + """ + + def __init__(self, + num_classes, + in_channels, + loss_cls=dict(type='CrossEntropyLoss'), + spatial_type='avg', + num_person=2, + init_std=0.01, + **kwargs): + super().__init__(num_classes, in_channels, loss_cls, **kwargs) + + self.spatial_type = spatial_type + self.in_channels = in_channels + self.num_classes = num_classes + self.num_person = num_person + self.init_std = init_std + + self.pool = None + if self.spatial_type == 'avg': + self.pool = nn.AdaptiveAvgPool2d((1, 1)) + elif self.spatial_type == 'max': + self.pool = nn.AdaptiveMaxPool2d((1, 1)) + else: + raise NotImplementedError + + self.fc = nn.Conv2d(self.in_channels, self.num_classes, kernel_size=1) + + def init_weights(self): + normal_init(self.fc, std=self.init_std) + + def forward(self, x): + # global pooling + assert self.pool is not None + x = self.pool(x) + x = x.view(x.shape[0] // self.num_person, self.num_person, -1, 1, + 1).mean(dim=1) + + # prediction + x = self.fc(x) + x = x.view(x.shape[0], -1) + + return x diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/timesformer_head.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/timesformer_head.py new file mode 100644 index 00000000..72ccf562 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/timesformer_head.py @@ -0,0 +1,41 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch.nn as nn +from mmcv.cnn import trunc_normal_init + +from ..builder import HEADS +from .base import BaseHead + + +@HEADS.register_module() +class TimeSformerHead(BaseHead): + """Classification head for TimeSformer. + + Args: + num_classes (int): Number of classes to be classified. + in_channels (int): Number of channels in input feature. + loss_cls (dict): Config for building loss. + Defaults to `dict(type='CrossEntropyLoss')`. + init_std (float): Std value for Initiation. Defaults to 0.02. + kwargs (dict, optional): Any keyword argument to be used to initialize + the head. + """ + + def __init__(self, + num_classes, + in_channels, + loss_cls=dict(type='CrossEntropyLoss'), + init_std=0.02, + **kwargs): + super().__init__(num_classes, in_channels, loss_cls, **kwargs) + self.init_std = init_std + self.fc_cls = nn.Linear(self.in_channels, self.num_classes) + + def init_weights(self): + """Initiate the parameters from scratch.""" + trunc_normal_init(self.fc_cls, std=self.init_std) + + def forward(self, x): + # [N, in_channels] + cls_score = self.fc_cls(x) + # [N, num_classes] + return cls_score diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/tpn_head.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/tpn_head.py new file mode 100644 index 00000000..051feaa2 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/tpn_head.py @@ -0,0 +1,91 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch.nn as nn + +from ..builder import HEADS +from .tsn_head import TSNHead + + +@HEADS.register_module() +class TPNHead(TSNHead): + """Class head for TPN. + + Args: + num_classes (int): Number of classes to be classified. + in_channels (int): Number of channels in input feature. + loss_cls (dict): Config for building loss. + Default: dict(type='CrossEntropyLoss'). + spatial_type (str): Pooling type in spatial dimension. Default: 'avg'. + consensus (dict): Consensus config dict. + dropout_ratio (float): Probability of dropout layer. Default: 0.4. + init_std (float): Std value for Initiation. Default: 0.01. + multi_class (bool): Determines whether it is a multi-class + recognition task. Default: False. + label_smooth_eps (float): Epsilon used in label smooth. + Reference: https://arxiv.org/abs/1906.02629. Default: 0. + """ + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + if self.spatial_type == 'avg': + # use `nn.AdaptiveAvgPool3d` to adaptively match the in_channels. + self.avg_pool3d = nn.AdaptiveAvgPool3d((1, 1, 1)) + else: + self.avg_pool3d = None + + self.avg_pool2d = None + self.new_cls = None + + def _init_new_cls(self): + self.new_cls = nn.Conv3d(self.in_channels, self.num_classes, 1, 1, 0) + if next(self.fc_cls.parameters()).is_cuda: + self.new_cls = self.new_cls.cuda() + self.new_cls.weight.copy_(self.fc_cls.weight[..., None, None, None]) + self.new_cls.bias.copy_(self.fc_cls.bias) + + def forward(self, x, num_segs=None, fcn_test=False): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + num_segs (int | None): Number of segments into which a video + is divided. Default: None. + fcn_test (bool): Whether to apply full convolution (fcn) testing. + Default: False. + + Returns: + torch.Tensor: The classification scores for input samples. + """ + if fcn_test: + if self.avg_pool3d: + x = self.avg_pool3d(x) + if self.new_cls is None: + self._init_new_cls() + cls_score_feat_map = self.new_cls(x) + return cls_score_feat_map + + if self.avg_pool2d is None: + kernel_size = (1, x.shape[-2], x.shape[-1]) + self.avg_pool2d = nn.AvgPool3d(kernel_size, stride=1, padding=0) + + if num_segs is None: + # [N, in_channels, 3, 7, 7] + x = self.avg_pool3d(x) + else: + # [N * num_segs, in_channels, 7, 7] + x = self.avg_pool2d(x) + # [N * num_segs, in_channels, 1, 1] + x = x.reshape((-1, num_segs) + x.shape[1:]) + # [N, num_segs, in_channels, 1, 1] + x = self.consensus(x) + # [N, 1, in_channels, 1, 1] + x = x.squeeze(1) + # [N, in_channels, 1, 1] + if self.dropout is not None: + x = self.dropout(x) + # [N, in_channels, 1, 1] + x = x.view(x.size(0), -1) + # [N, in_channels] + cls_score = self.fc_cls(x) + # [N, num_classes] + return cls_score diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/trn_head.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/trn_head.py new file mode 100644 index 00000000..7a2a21bb --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/trn_head.py @@ -0,0 +1,211 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import itertools + +import numpy as np +import torch +import torch.nn as nn +from mmcv.cnn import normal_init + +from ..builder import HEADS +from .base import BaseHead + + +class RelationModule(nn.Module): + """Relation Module of TRN. + + Args: + hidden_dim (int): The dimension of hidden layer of MLP in relation + module. + num_segments (int): Number of frame segments. + num_classes (int): Number of classes to be classified. + """ + + def __init__(self, hidden_dim, num_segments, num_classes): + super().__init__() + self.hidden_dim = hidden_dim + self.num_segments = num_segments + self.num_classes = num_classes + bottleneck_dim = 512 + self.classifier = nn.Sequential( + nn.ReLU(), + nn.Linear(self.num_segments * self.hidden_dim, bottleneck_dim), + nn.ReLU(), nn.Linear(bottleneck_dim, self.num_classes)) + + def init_weights(self): + # Use the default kaiming_uniform for all nn.linear layers. + pass + + def forward(self, x): + # [N, num_segs * hidden_dim] + x = x.view(x.size(0), -1) + x = self.classifier(x) + return x + + +class RelationModuleMultiScale(nn.Module): + """Relation Module with Multi Scale of TRN. + + Args: + hidden_dim (int): The dimension of hidden layer of MLP in relation + module. + num_segments (int): Number of frame segments. + num_classes (int): Number of classes to be classified. + """ + + def __init__(self, hidden_dim, num_segments, num_classes): + super().__init__() + self.hidden_dim = hidden_dim + self.num_segments = num_segments + self.num_classes = num_classes + + # generate the multiple frame relations + self.scales = range(num_segments, 1, -1) + + self.relations_scales = [] + self.subsample_scales = [] + max_subsample = 3 + for scale in self.scales: + # select the different frame features for different scales + relations_scale = list( + itertools.combinations(range(self.num_segments), scale)) + self.relations_scales.append(relations_scale) + # sample `max_subsample` relation_scale at most + self.subsample_scales.append( + min(max_subsample, len(relations_scale))) + assert len(self.relations_scales[0]) == 1 + + bottleneck_dim = 256 + self.fc_fusion_scales = nn.ModuleList() + for scale in self.scales: + fc_fusion = nn.Sequential( + nn.ReLU(), nn.Linear(scale * self.hidden_dim, bottleneck_dim), + nn.ReLU(), nn.Linear(bottleneck_dim, self.num_classes)) + self.fc_fusion_scales.append(fc_fusion) + + def init_weights(self): + # Use the default kaiming_uniform for all nn.linear layers. + pass + + def forward(self, x): + # the first one is the largest scale + act_all = x[:, self.relations_scales[0][0], :] + act_all = act_all.view( + act_all.size(0), self.scales[0] * self.hidden_dim) + act_all = self.fc_fusion_scales[0](act_all) + + for scaleID in range(1, len(self.scales)): + # iterate over the scales + idx_relations_randomsample = np.random.choice( + len(self.relations_scales[scaleID]), + self.subsample_scales[scaleID], + replace=False) + for idx in idx_relations_randomsample: + act_relation = x[:, self.relations_scales[scaleID][idx], :] + act_relation = act_relation.view( + act_relation.size(0), + self.scales[scaleID] * self.hidden_dim) + act_relation = self.fc_fusion_scales[scaleID](act_relation) + act_all += act_relation + return act_all + + +@HEADS.register_module() +class TRNHead(BaseHead): + """Class head for TRN. + + Args: + num_classes (int): Number of classes to be classified. + in_channels (int): Number of channels in input feature. + num_segments (int): Number of frame segments. Default: 8. + loss_cls (dict): Config for building loss. Default: + dict(type='CrossEntropyLoss') + spatial_type (str): Pooling type in spatial dimension. Default: 'avg'. + relation_type (str): The relation module type. Choices are 'TRN' or + 'TRNMultiScale'. Default: 'TRNMultiScale'. + hidden_dim (int): The dimension of hidden layer of MLP in relation + module. Default: 256. + dropout_ratio (float): Probability of dropout layer. Default: 0.8. + init_std (float): Std value for Initiation. Default: 0.001. + kwargs (dict, optional): Any keyword argument to be used to initialize + the head. + """ + + def __init__(self, + num_classes, + in_channels, + num_segments=8, + loss_cls=dict(type='CrossEntropyLoss'), + spatial_type='avg', + relation_type='TRNMultiScale', + hidden_dim=256, + dropout_ratio=0.8, + init_std=0.001, + **kwargs): + super().__init__(num_classes, in_channels, loss_cls, **kwargs) + + self.num_classes = num_classes + self.in_channels = in_channels + self.num_segments = num_segments + self.spatial_type = spatial_type + self.relation_type = relation_type + self.hidden_dim = hidden_dim + self.dropout_ratio = dropout_ratio + self.init_std = init_std + + if self.relation_type == 'TRN': + self.consensus = RelationModule(self.hidden_dim, self.num_segments, + self.num_classes) + elif self.relation_type == 'TRNMultiScale': + self.consensus = RelationModuleMultiScale(self.hidden_dim, + self.num_segments, + self.num_classes) + else: + raise ValueError(f'Unknown Relation Type {self.relation_type}!') + + if self.dropout_ratio != 0: + self.dropout = nn.Dropout(p=self.dropout_ratio) + else: + self.dropout = None + self.fc_cls = nn.Linear(self.in_channels, self.hidden_dim) + + if self.spatial_type == 'avg': + # use `nn.AdaptiveAvgPool2d` to adaptively match the in_channels. + self.avg_pool = nn.AdaptiveAvgPool2d(1) + else: + self.avg_pool = None + + def init_weights(self): + """Initiate the parameters from scratch.""" + normal_init(self.fc_cls, std=self.init_std) + self.consensus.init_weights() + + def forward(self, x, num_segs): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + num_segs (int): Useless in TRNHead. By default, `num_segs` + is equal to `clip_len * num_clips * num_crops`, which is + automatically generated in Recognizer forward phase and + useless in TRN models. The `self.num_segments` we need is a + hyper parameter to build TRN models. + Returns: + torch.Tensor: The classification scores for input samples. + """ + # [N * num_segs, in_channels, 7, 7] + if self.avg_pool is not None: + x = self.avg_pool(x) + # [N * num_segs, in_channels, 1, 1] + x = torch.flatten(x, 1) + # [N * num_segs, in_channels] + if self.dropout is not None: + x = self.dropout(x) + + # [N, num_segs, hidden_dim] + cls_score = self.fc_cls(x) + cls_score = cls_score.view((-1, self.num_segments) + + cls_score.size()[1:]) + + # [N, num_classes] + cls_score = self.consensus(cls_score) + return cls_score diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/tsm_head.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/tsm_head.py new file mode 100644 index 00000000..b181f3db --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/tsm_head.py @@ -0,0 +1,112 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn +from mmcv.cnn import normal_init + +from ..builder import HEADS +from .base import AvgConsensus, BaseHead + + +@HEADS.register_module() +class TSMHead(BaseHead): + """Class head for TSM. + + Args: + num_classes (int): Number of classes to be classified. + in_channels (int): Number of channels in input feature. + num_segments (int): Number of frame segments. Default: 8. + loss_cls (dict): Config for building loss. + Default: dict(type='CrossEntropyLoss') + spatial_type (str): Pooling type in spatial dimension. Default: 'avg'. + consensus (dict): Consensus config dict. + dropout_ratio (float): Probability of dropout layer. Default: 0.4. + init_std (float): Std value for Initiation. Default: 0.01. + is_shift (bool): Indicating whether the feature is shifted. + Default: True. + temporal_pool (bool): Indicating whether feature is temporal pooled. + Default: False. + kwargs (dict, optional): Any keyword argument to be used to initialize + the head. + """ + + def __init__(self, + num_classes, + in_channels, + num_segments=8, + loss_cls=dict(type='CrossEntropyLoss'), + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.8, + init_std=0.001, + is_shift=True, + temporal_pool=False, + **kwargs): + super().__init__(num_classes, in_channels, loss_cls, **kwargs) + + self.spatial_type = spatial_type + self.dropout_ratio = dropout_ratio + self.num_segments = num_segments + self.init_std = init_std + self.is_shift = is_shift + self.temporal_pool = temporal_pool + + consensus_ = consensus.copy() + + consensus_type = consensus_.pop('type') + if consensus_type == 'AvgConsensus': + self.consensus = AvgConsensus(**consensus_) + else: + self.consensus = None + + if self.dropout_ratio != 0: + self.dropout = nn.Dropout(p=self.dropout_ratio) + else: + self.dropout = None + self.fc_cls = nn.Linear(self.in_channels, self.num_classes) + + if self.spatial_type == 'avg': + # use `nn.AdaptiveAvgPool2d` to adaptively match the in_channels. + self.avg_pool = nn.AdaptiveAvgPool2d(1) + else: + self.avg_pool = None + + def init_weights(self): + """Initiate the parameters from scratch.""" + normal_init(self.fc_cls, std=self.init_std) + + def forward(self, x, num_segs): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + num_segs (int): Useless in TSMHead. By default, `num_segs` + is equal to `clip_len * num_clips * num_crops`, which is + automatically generated in Recognizer forward phase and + useless in TSM models. The `self.num_segments` we need is a + hyper parameter to build TSM models. + Returns: + torch.Tensor: The classification scores for input samples. + """ + # [N * num_segs, in_channels, 7, 7] + if self.avg_pool is not None: + x = self.avg_pool(x) + # [N * num_segs, in_channels, 1, 1] + x = torch.flatten(x, 1) + # [N * num_segs, in_channels] + if self.dropout is not None: + x = self.dropout(x) + # [N * num_segs, num_classes] + cls_score = self.fc_cls(x) + + if self.is_shift and self.temporal_pool: + # [2 * N, num_segs // 2, num_classes] + cls_score = cls_score.view((-1, self.num_segments // 2) + + cls_score.size()[1:]) + else: + # [N, num_segs, num_classes] + cls_score = cls_score.view((-1, self.num_segments) + + cls_score.size()[1:]) + # [N, 1, num_classes] + cls_score = self.consensus(cls_score) + # [N, num_classes] + return cls_score.squeeze(1) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/tsn_head.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/tsn_head.py new file mode 100644 index 00000000..73d9ae4f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/tsn_head.py @@ -0,0 +1,95 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch.nn as nn +from mmcv.cnn import normal_init + +from ..builder import HEADS +from .base import AvgConsensus, BaseHead + + +@HEADS.register_module() +class TSNHead(BaseHead): + """Class head for TSN. + + Args: + num_classes (int): Number of classes to be classified. + in_channels (int): Number of channels in input feature. + loss_cls (dict): Config for building loss. + Default: dict(type='CrossEntropyLoss'). + spatial_type (str): Pooling type in spatial dimension. Default: 'avg'. + consensus (dict): Consensus config dict. + dropout_ratio (float): Probability of dropout layer. Default: 0.4. + init_std (float): Std value for Initiation. Default: 0.01. + kwargs (dict, optional): Any keyword argument to be used to initialize + the head. + """ + + def __init__(self, + num_classes, + in_channels, + loss_cls=dict(type='CrossEntropyLoss'), + spatial_type='avg', + consensus=dict(type='AvgConsensus', dim=1), + dropout_ratio=0.4, + init_std=0.01, + **kwargs): + super().__init__(num_classes, in_channels, loss_cls=loss_cls, **kwargs) + + self.spatial_type = spatial_type + self.dropout_ratio = dropout_ratio + self.init_std = init_std + + consensus_ = consensus.copy() + + consensus_type = consensus_.pop('type') + if consensus_type == 'AvgConsensus': + self.consensus = AvgConsensus(**consensus_) + else: + self.consensus = None + + if self.spatial_type == 'avg': + # use `nn.AdaptiveAvgPool2d` to adaptively match the in_channels. + self.avg_pool = nn.AdaptiveAvgPool2d((1, 1)) + else: + self.avg_pool = None + + if self.dropout_ratio != 0: + self.dropout = nn.Dropout(p=self.dropout_ratio) + else: + self.dropout = None + self.fc_cls = nn.Linear(self.in_channels, self.num_classes) + + def init_weights(self): + """Initiate the parameters from scratch.""" + normal_init(self.fc_cls, std=self.init_std) + + def forward(self, x, num_segs): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + num_segs (int): Number of segments into which a video + is divided. + Returns: + torch.Tensor: The classification scores for input samples. + """ + # [N * num_segs, in_channels, 7, 7] + if self.avg_pool is not None: + if isinstance(x, tuple): + shapes = [y.shape for y in x] + assert 1 == 0, f'x is tuple {shapes}' + x = self.avg_pool(x) + # [N * num_segs, in_channels, 1, 1] + x = x.reshape((-1, num_segs) + x.shape[1:]) + # [N, num_segs, in_channels, 1, 1] + x = self.consensus(x) + # [N, 1, in_channels, 1, 1] + x = x.squeeze(1) + # [N, in_channels, 1, 1] + if self.dropout is not None: + x = self.dropout(x) + # [N, in_channels, 1, 1] + x = x.view(x.size(0), -1) + # [N, in_channels] + cls_score = self.fc_cls(x) + # [N, num_classes] + return cls_score diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/x3d_head.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/x3d_head.py new file mode 100644 index 00000000..4007744f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/heads/x3d_head.py @@ -0,0 +1,90 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch.nn as nn +from mmcv.cnn import normal_init + +from ..builder import HEADS +from .base import BaseHead + + +@HEADS.register_module() +class X3DHead(BaseHead): + """Classification head for I3D. + + Args: + num_classes (int): Number of classes to be classified. + in_channels (int): Number of channels in input feature. + loss_cls (dict): Config for building loss. + Default: dict(type='CrossEntropyLoss') + spatial_type (str): Pooling type in spatial dimension. Default: 'avg'. + dropout_ratio (float): Probability of dropout layer. Default: 0.5. + init_std (float): Std value for Initiation. Default: 0.01. + fc1_bias (bool): If the first fc layer has bias. Default: False. + """ + + def __init__(self, + num_classes, + in_channels, + loss_cls=dict(type='CrossEntropyLoss'), + spatial_type='avg', + dropout_ratio=0.5, + init_std=0.01, + fc1_bias=False): + super().__init__(num_classes, in_channels, loss_cls) + + self.spatial_type = spatial_type + self.dropout_ratio = dropout_ratio + self.init_std = init_std + if self.dropout_ratio != 0: + self.dropout = nn.Dropout(p=self.dropout_ratio) + else: + self.dropout = None + self.in_channels = in_channels + self.mid_channels = 2048 + self.num_classes = num_classes + self.fc1_bias = fc1_bias + + self.fc1 = nn.Linear( + self.in_channels, self.mid_channels, bias=self.fc1_bias) + self.fc2 = nn.Linear(self.mid_channels, self.num_classes) + + self.relu = nn.ReLU() + + self.pool = None + if self.spatial_type == 'avg': + self.pool = nn.AdaptiveAvgPool3d((1, 1, 1)) + elif self.spatial_type == 'max': + self.pool = nn.AdaptiveMaxPool3d((1, 1, 1)) + else: + raise NotImplementedError + + def init_weights(self): + """Initiate the parameters from scratch.""" + normal_init(self.fc1, std=self.init_std) + normal_init(self.fc2, std=self.init_std) + + def forward(self, x): + """Defines the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The classification scores for input samples. + """ + # [N, in_channels, T, H, W] + assert self.pool is not None + x = self.pool(x) + # [N, in_channels, 1, 1, 1] + # [N, in_channels, 1, 1, 1] + x = x.view(x.shape[0], -1) + # [N, in_channels] + x = self.fc1(x) + # [N, 2048] + x = self.relu(x) + + if self.dropout is not None: + x = self.dropout(x) + + cls_score = self.fc2(x) + # [N, num_classes] + return cls_score diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/__init__.py new file mode 100644 index 00000000..4befe6f0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/__init__.py @@ -0,0 +1,7 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .base import BaseTAGClassifier, BaseTAPGenerator +from .bmn import BMN +from .bsn import PEM, TEM +from .ssn import SSN + +__all__ = ['PEM', 'TEM', 'BMN', 'SSN', 'BaseTAPGenerator', 'BaseTAGClassifier'] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/base.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/base.py new file mode 100644 index 00000000..65b5c6f3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/base.py @@ -0,0 +1,262 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import warnings +from abc import ABCMeta, abstractmethod +from collections import OrderedDict + +import torch +import torch.distributed as dist +import torch.nn as nn + +from .. import builder + + +class BaseTAPGenerator(nn.Module, metaclass=ABCMeta): + """Base class for temporal action proposal generator. + + All temporal action proposal generator should subclass it. All subclass + should overwrite: Methods:``forward_train``, supporting to forward when + training. Methods:``forward_test``, supporting to forward when testing. + """ + + @abstractmethod + def forward_train(self, *args, **kwargs): + """Defines the computation performed at training.""" + + @abstractmethod + def forward_test(self, *args): + """Defines the computation performed at testing.""" + + @abstractmethod + def forward(self, *args, **kwargs): + """Define the computation performed at every call.""" + + @staticmethod + def _parse_losses(losses): + """Parse the raw outputs (losses) of the network. + + Args: + losses (dict): Raw output of the network, which usually contain + losses and other necessary information. + + Returns: + tuple[Tensor, dict]: (loss, log_vars), loss is the loss tensor + which may be a weighted sum of all losses, log_vars contains + all the variables to be sent to the logger. + """ + log_vars = OrderedDict() + for loss_name, loss_value in losses.items(): + if isinstance(loss_value, torch.Tensor): + log_vars[loss_name] = loss_value.mean() + elif isinstance(loss_value, list): + log_vars[loss_name] = sum(_loss.mean() for _loss in loss_value) + else: + raise TypeError( + f'{loss_name} is not a tensor or list of tensors') + + loss = sum(_value for _key, _value in log_vars.items() + if 'loss' in _key) + + log_vars['loss'] = loss + for loss_name, loss_value in log_vars.items(): + # reduce loss when distributed training + if dist.is_available() and dist.is_initialized(): + loss_value = loss_value.data.clone() + dist.all_reduce(loss_value.div_(dist.get_world_size())) + log_vars[loss_name] = loss_value.item() + + return loss, log_vars + + def train_step(self, data_batch, optimizer, **kwargs): + """The iteration step during training. + + This method defines an iteration step during training, except for the + back propagation and optimizer updating, which are done in an optimizer + hook. Note that in some complicated cases or models, the whole process + including back propagation and optimizer updating is also defined in + this method, such as GAN. + + Args: + data_batch (dict): The output of dataloader. + optimizer (:obj:`torch.optim.Optimizer` | dict): The optimizer of + runner is passed to ``train_step()``. This argument is unused + and reserved. + + Returns: + dict: It should contain at least 3 keys: ``loss``, ``log_vars``, + ``num_samples``. + ``loss`` is a tensor for back propagation, which can be a + weighted sum of multiple losses. + ``log_vars`` contains all the variables to be sent to the + logger. + ``num_samples`` indicates the batch size (when the model is + DDP, it means the batch size on each GPU), which is used for + averaging the logs. + """ + losses = self.forward(**data_batch) + + loss, log_vars = self._parse_losses(losses) + + outputs = dict( + loss=loss, + log_vars=log_vars, + num_samples=len(next(iter(data_batch.values())))) + + return outputs + + def val_step(self, data_batch, optimizer, **kwargs): + """The iteration step during validation. + + This method shares the same signature as :func:`train_step`, but used + during val epochs. Note that the evaluation after training epochs is + not implemented with this method, but an evaluation hook. + """ + results = self.forward(return_loss=False, **data_batch) + + outputs = dict(results=results) + + return outputs + + +class BaseTAGClassifier(nn.Module, metaclass=ABCMeta): + """Base class for temporal action proposal classifier. + + All temporal action generation classifier should subclass it. All subclass + should overwrite: Methods:``forward_train``, supporting to forward when + training. Methods:``forward_test``, supporting to forward when testing. + """ + + def __init__(self, backbone, cls_head, train_cfg=None, test_cfg=None): + super().__init__() + self.backbone = builder.build_backbone(backbone) + self.cls_head = builder.build_head(cls_head) + + self.train_cfg = train_cfg + self.test_cfg = test_cfg + self.init_weights() + + def init_weights(self): + """Weight initialization for model.""" + self.backbone.init_weights() + self.cls_head.init_weights() + + def extract_feat(self, imgs): + """Extract features through a backbone. + + Args: + imgs (torch.Tensor): The input images. + Returns: + torch.tensor: The extracted features. + """ + x = self.backbone(imgs) + return x + + @abstractmethod + def forward_train(self, *args, **kwargs): + """Defines the computation performed at training.""" + + @abstractmethod + def forward_test(self, *args, **kwargs): + """Defines the computation performed at testing.""" + + def forward(self, *args, return_loss=True, **kwargs): + """Define the computation performed at every call.""" + if return_loss: + return self.forward_train(*args, **kwargs) + + return self.forward_test(*args, **kwargs) + + @staticmethod + def _parse_losses(losses): + """Parse the raw outputs (losses) of the network. + + Args: + losses (dict): Raw output of the network, which usually contain + losses and other necessary information. + + Returns: + tuple[Tensor, dict]: (loss, log_vars), loss is the loss tensor + which may be a weighted sum of all losses, log_vars contains + all the variables to be sent to the logger. + """ + log_vars = OrderedDict() + for loss_name, loss_value in losses.items(): + if isinstance(loss_value, torch.Tensor): + log_vars[loss_name] = loss_value.mean() + elif isinstance(loss_value, list): + log_vars[loss_name] = sum(_loss.mean() for _loss in loss_value) + else: + raise TypeError( + f'{loss_name} is not a tensor or list of tensors') + + loss = sum(_value for _key, _value in log_vars.items() + if 'loss' in _key) + + log_vars['loss'] = loss + for loss_name, loss_value in log_vars.items(): + # reduce loss when distributed training + if dist.is_available() and dist.is_initialized(): + loss_value = loss_value.data.clone() + dist.all_reduce(loss_value.div_(dist.get_world_size())) + log_vars[loss_name] = loss_value.item() + + return loss, log_vars + + def train_step(self, data_batch, optimizer, **kwargs): + """The iteration step during training. + + This method defines an iteration step during training, except for the + back propagation and optimizer updating, which are done in an optimizer + hook. Note that in some complicated cases or models, the whole process + including back propagation and optimizer updating is also defined in + this method, such as GAN. + + Args: + data_batch (dict): The output of dataloader. + optimizer (:obj:`torch.optim.Optimizer` | dict): The optimizer of + runner is passed to ``train_step()``. This argument is unused + and reserved. + + Returns: + dict: It should contain at least 3 keys: ``loss``, ``log_vars``, + ``num_samples``. + ``loss`` is a tensor for back propagation, which can be a + weighted sum of multiple losses. + ``log_vars`` contains all the variables to be sent to the + logger. + ``num_samples`` indicates the batch size (when the model is + DDP, it means the batch size on each GPU), which is used for + averaging the logs. + """ + losses = self.forward(**data_batch) + + loss, log_vars = self._parse_losses(losses) + + outputs = dict( + loss=loss, + log_vars=log_vars, + num_samples=len(next(iter(data_batch.values())))) + + return outputs + + def val_step(self, data_batch, optimizer, **kwargs): + """The iteration step during validation. + + This method shares the same signature as :func:`train_step`, but used + during val epochs. Note that the evaluation after training epochs is + not implemented with this method, but an evaluation hook. + """ + results = self.forward(return_loss=False, **data_batch) + + outputs = dict(results=results) + + return outputs + + +class BaseLocalizer(BaseTAGClassifier): + """Deprecated class for ``BaseTAPGenerator`` and ``BaseTAGClassifier``.""" + + def __init__(*args, **kwargs): + warnings.warn('``BaseLocalizer`` is deprecated, please switch to' + '``BaseTAPGenerator`` or ``BaseTAGClassifier``. Details ' + 'see https://github.com/open-mmlab/mmaction2/pull/913') + super().__init__(*args, **kwargs) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/bmn.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/bmn.py new file mode 100644 index 00000000..df137b38 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/bmn.py @@ -0,0 +1,417 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import math + +import numpy as np +import torch +import torch.nn as nn + +from ...localization import temporal_iop, temporal_iou +from ..builder import LOCALIZERS, build_loss +from .base import BaseTAPGenerator +from .utils import post_processing + + +@LOCALIZERS.register_module() +class BMN(BaseTAPGenerator): + """Boundary Matching Network for temporal action proposal generation. + + Please refer `BMN: Boundary-Matching Network for Temporal Action Proposal + Generation `_. + Code Reference https://github.com/JJBOY/BMN-Boundary-Matching-Network + + Args: + temporal_dim (int): Total frames selected for each video. + boundary_ratio (float): Ratio for determining video boundaries. + num_samples (int): Number of samples for each proposal. + num_samples_per_bin (int): Number of bin samples for each sample. + feat_dim (int): Feature dimension. + soft_nms_alpha (float): Soft NMS alpha. + soft_nms_low_threshold (float): Soft NMS low threshold. + soft_nms_high_threshold (float): Soft NMS high threshold. + post_process_top_k (int): Top k proposals in post process. + feature_extraction_interval (int): + Interval used in feature extraction. Default: 16. + loss_cls (dict): Config for building loss. + Default: ``dict(type='BMNLoss')``. + hidden_dim_1d (int): Hidden dim for 1d conv. Default: 256. + hidden_dim_2d (int): Hidden dim for 2d conv. Default: 128. + hidden_dim_3d (int): Hidden dim for 3d conv. Default: 512. + """ + + def __init__(self, + temporal_dim, + boundary_ratio, + num_samples, + num_samples_per_bin, + feat_dim, + soft_nms_alpha, + soft_nms_low_threshold, + soft_nms_high_threshold, + post_process_top_k, + feature_extraction_interval=16, + loss_cls=dict(type='BMNLoss'), + hidden_dim_1d=256, + hidden_dim_2d=128, + hidden_dim_3d=512): + super().__init__() + + self.tscale = temporal_dim + self.boundary_ratio = boundary_ratio + self.num_samples = num_samples + self.num_samples_per_bin = num_samples_per_bin + self.feat_dim = feat_dim + self.soft_nms_alpha = soft_nms_alpha + self.soft_nms_low_threshold = soft_nms_low_threshold + self.soft_nms_high_threshold = soft_nms_high_threshold + self.post_process_top_k = post_process_top_k + self.feature_extraction_interval = feature_extraction_interval + self.loss_cls = build_loss(loss_cls) + self.hidden_dim_1d = hidden_dim_1d + self.hidden_dim_2d = hidden_dim_2d + self.hidden_dim_3d = hidden_dim_3d + + self._get_interp1d_mask() + + # Base Module + self.x_1d_b = nn.Sequential( + nn.Conv1d( + self.feat_dim, + self.hidden_dim_1d, + kernel_size=3, + padding=1, + groups=4), nn.ReLU(inplace=True), + nn.Conv1d( + self.hidden_dim_1d, + self.hidden_dim_1d, + kernel_size=3, + padding=1, + groups=4), nn.ReLU(inplace=True)) + + # Temporal Evaluation Module + self.x_1d_s = nn.Sequential( + nn.Conv1d( + self.hidden_dim_1d, + self.hidden_dim_1d, + kernel_size=3, + padding=1, + groups=4), nn.ReLU(inplace=True), + nn.Conv1d(self.hidden_dim_1d, 1, kernel_size=1), nn.Sigmoid()) + self.x_1d_e = nn.Sequential( + nn.Conv1d( + self.hidden_dim_1d, + self.hidden_dim_1d, + kernel_size=3, + padding=1, + groups=4), nn.ReLU(inplace=True), + nn.Conv1d(self.hidden_dim_1d, 1, kernel_size=1), nn.Sigmoid()) + + # Proposal Evaluation Module + self.x_1d_p = nn.Sequential( + nn.Conv1d( + self.hidden_dim_1d, + self.hidden_dim_1d, + kernel_size=3, + padding=1), nn.ReLU(inplace=True)) + self.x_3d_p = nn.Sequential( + nn.Conv3d( + self.hidden_dim_1d, + self.hidden_dim_3d, + kernel_size=(self.num_samples, 1, 1)), nn.ReLU(inplace=True)) + self.x_2d_p = nn.Sequential( + nn.Conv2d(self.hidden_dim_3d, self.hidden_dim_2d, kernel_size=1), + nn.ReLU(inplace=True), + nn.Conv2d( + self.hidden_dim_2d, + self.hidden_dim_2d, + kernel_size=3, + padding=1), nn.ReLU(inplace=True), + nn.Conv2d( + self.hidden_dim_2d, + self.hidden_dim_2d, + kernel_size=3, + padding=1), nn.ReLU(inplace=True), + nn.Conv2d(self.hidden_dim_2d, 2, kernel_size=1), nn.Sigmoid()) + self.anchors_tmins, self.anchors_tmaxs = self._temporal_anchors( + -0.5, 1.5) + self.match_map = self._match_map() + self.bm_mask = self._get_bm_mask() + + def _match_map(self): + """Generate match map.""" + temporal_gap = 1. / self.tscale + match_map = [] + for idx in range(self.tscale): + match_window = [] + tmin = temporal_gap * idx + for jdx in range(1, self.tscale + 1): + tmax = tmin + temporal_gap * jdx + match_window.append([tmin, tmax]) + match_map.append(match_window) + match_map = np.array(match_map) + match_map = np.transpose(match_map, [1, 0, 2]) + match_map = np.reshape(match_map, [-1, 2]) + return match_map + + def _temporal_anchors(self, tmin_offset=0., tmax_offset=1.): + """Generate temporal anchors. + + Args: + tmin_offset (int): Offset for the minimum value of temporal anchor. + Default: 0. + tmax_offset (int): Offset for the maximum value of temporal anchor. + Default: 1. + + Returns: + tuple[Sequence[float]]: The minimum and maximum values of temporal + anchors. + """ + temporal_gap = 1. / self.tscale + anchors_tmins = [] + anchors_tmaxs = [] + for i in range(self.tscale): + anchors_tmins.append(temporal_gap * (i + tmin_offset)) + anchors_tmaxs.append(temporal_gap * (i + tmax_offset)) + + return anchors_tmins, anchors_tmaxs + + def _forward(self, x): + """Define the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The output of the module. + """ + # x.shape [batch_size, self.feat_dim, self.tscale] + base_feature = self.x_1d_b(x) + # base_feature.shape [batch_size, self.hidden_dim_1d, self.tscale] + start = self.x_1d_s(base_feature).squeeze(1) + # start.shape [batch_size, self.tscale] + end = self.x_1d_e(base_feature).squeeze(1) + # end.shape [batch_size, self.tscale] + confidence_map = self.x_1d_p(base_feature) + # [batch_size, self.hidden_dim_1d, self.tscale] + confidence_map = self._boundary_matching_layer(confidence_map) + # [batch_size, self.hidden_dim_1d,, self.num_sampls, self.tscale, self.tscale] # noqa + confidence_map = self.x_3d_p(confidence_map).squeeze(2) + # [batch_size, self.hidden_dim_3d, self.tscale, self.tscale] + confidence_map = self.x_2d_p(confidence_map) + # [batch_size, 2, self.tscale, self.tscale] + + return confidence_map, start, end + + def _boundary_matching_layer(self, x): + """Generate matching layer.""" + input_size = x.size() + out = torch.matmul(x, + self.sample_mask).reshape(input_size[0], + input_size[1], + self.num_samples, + self.tscale, self.tscale) + return out + + def forward_test(self, raw_feature, video_meta): + """Define the computation performed at every call when testing.""" + confidence_map, start, end = self._forward(raw_feature) + start_scores = start[0].cpu().numpy() + end_scores = end[0].cpu().numpy() + cls_confidence = (confidence_map[0][1]).cpu().numpy() + reg_confidence = (confidence_map[0][0]).cpu().numpy() + + max_start = max(start_scores) + max_end = max(end_scores) + + # generate the set of start points and end points + start_bins = np.zeros(len(start_scores)) + start_bins[0] = 1 # [1,0,0...,0,0] + end_bins = np.zeros(len(end_scores)) + end_bins[-1] = 1 # [0,0,0...,0,1] + for idx in range(1, self.tscale - 1): + if start_scores[idx] > start_scores[ + idx + 1] and start_scores[idx] > start_scores[idx - 1]: + start_bins[idx] = 1 + elif start_scores[idx] > (0.5 * max_start): + start_bins[idx] = 1 + if end_scores[idx] > end_scores[ + idx + 1] and end_scores[idx] > end_scores[idx - 1]: + end_bins[idx] = 1 + elif end_scores[idx] > (0.5 * max_end): + end_bins[idx] = 1 + + # iterate through all combinations of start_index and end_index + new_proposals = [] + for idx in range(self.tscale): + for jdx in range(self.tscale): + start_index = jdx + end_index = start_index + idx + 1 + if end_index < self.tscale and start_bins[ + start_index] == 1 and end_bins[end_index] == 1: + tmin = start_index / self.tscale + tmax = end_index / self.tscale + tmin_score = start_scores[start_index] + tmax_score = end_scores[end_index] + cls_score = cls_confidence[idx, jdx] + reg_score = reg_confidence[idx, jdx] + score = tmin_score * tmax_score * cls_score * reg_score + new_proposals.append([ + tmin, tmax, tmin_score, tmax_score, cls_score, + reg_score, score + ]) + new_proposals = np.stack(new_proposals) + video_info = dict(video_meta[0]) + proposal_list = post_processing(new_proposals, video_info, + self.soft_nms_alpha, + self.soft_nms_low_threshold, + self.soft_nms_high_threshold, + self.post_process_top_k, + self.feature_extraction_interval) + output = [ + dict( + video_name=video_info['video_name'], + proposal_list=proposal_list) + ] + return output + + def forward_train(self, raw_feature, label_confidence, label_start, + label_end): + """Define the computation performed at every call when training.""" + confidence_map, start, end = self._forward(raw_feature) + loss = self.loss_cls(confidence_map, start, end, label_confidence, + label_start, label_end, + self.bm_mask.to(raw_feature.device)) + loss_dict = dict(loss=loss[0]) + return loss_dict + + def generate_labels(self, gt_bbox): + """Generate training labels.""" + match_score_confidence_list = [] + match_score_start_list = [] + match_score_end_list = [] + for every_gt_bbox in gt_bbox: + gt_iou_map = [] + for start, end in every_gt_bbox: + if isinstance(start, torch.Tensor): + start = start.numpy() + if isinstance(end, torch.Tensor): + end = end.numpy() + current_gt_iou_map = temporal_iou(self.match_map[:, 0], + self.match_map[:, 1], start, + end) + current_gt_iou_map = np.reshape(current_gt_iou_map, + [self.tscale, self.tscale]) + gt_iou_map.append(current_gt_iou_map) + gt_iou_map = np.array(gt_iou_map).astype(np.float32) + gt_iou_map = np.max(gt_iou_map, axis=0) + + gt_tmins = every_gt_bbox[:, 0] + gt_tmaxs = every_gt_bbox[:, 1] + + gt_len_pad = 3 * (1. / self.tscale) + + gt_start_bboxs = np.stack( + (gt_tmins - gt_len_pad / 2, gt_tmins + gt_len_pad / 2), axis=1) + gt_end_bboxs = np.stack( + (gt_tmaxs - gt_len_pad / 2, gt_tmaxs + gt_len_pad / 2), axis=1) + + match_score_start = [] + match_score_end = [] + + for anchor_tmin, anchor_tmax in zip(self.anchors_tmins, + self.anchors_tmaxs): + match_score_start.append( + np.max( + temporal_iop(anchor_tmin, anchor_tmax, + gt_start_bboxs[:, 0], gt_start_bboxs[:, + 1]))) + match_score_end.append( + np.max( + temporal_iop(anchor_tmin, anchor_tmax, + gt_end_bboxs[:, 0], gt_end_bboxs[:, 1]))) + match_score_confidence_list.append(gt_iou_map) + match_score_start_list.append(match_score_start) + match_score_end_list.append(match_score_end) + match_score_confidence_list = torch.Tensor(match_score_confidence_list) + match_score_start_list = torch.Tensor(match_score_start_list) + match_score_end_list = torch.Tensor(match_score_end_list) + return (match_score_confidence_list, match_score_start_list, + match_score_end_list) + + def forward(self, + raw_feature, + gt_bbox=None, + video_meta=None, + return_loss=True): + """Define the computation performed at every call.""" + if return_loss: + label_confidence, label_start, label_end = ( + self.generate_labels(gt_bbox)) + device = raw_feature.device + label_confidence = label_confidence.to(device) + label_start = label_start.to(device) + label_end = label_end.to(device) + return self.forward_train(raw_feature, label_confidence, + label_start, label_end) + + return self.forward_test(raw_feature, video_meta) + + @staticmethod + def _get_interp1d_bin_mask(seg_tmin, seg_tmax, tscale, num_samples, + num_samples_per_bin): + """Generate sample mask for a boundary-matching pair.""" + plen = float(seg_tmax - seg_tmin) + plen_sample = plen / (num_samples * num_samples_per_bin - 1.0) + total_samples = [ + seg_tmin + plen_sample * i + for i in range(num_samples * num_samples_per_bin) + ] + p_mask = [] + for idx in range(num_samples): + bin_samples = total_samples[idx * num_samples_per_bin:(idx + 1) * + num_samples_per_bin] + bin_vector = np.zeros(tscale) + for sample in bin_samples: + sample_upper = math.ceil(sample) + sample_decimal, sample_down = math.modf(sample) + if 0 <= int(sample_down) <= (tscale - 1): + bin_vector[int(sample_down)] += 1 - sample_decimal + if 0 <= int(sample_upper) <= (tscale - 1): + bin_vector[int(sample_upper)] += sample_decimal + bin_vector = 1.0 / num_samples_per_bin * bin_vector + p_mask.append(bin_vector) + p_mask = np.stack(p_mask, axis=1) + return p_mask + + def _get_interp1d_mask(self): + """Generate sample mask for each point in Boundary-Matching Map.""" + mask_mat = [] + for start_index in range(self.tscale): + mask_mat_vector = [] + for duration_index in range(self.tscale): + if start_index + duration_index < self.tscale: + p_tmin = start_index + p_tmax = start_index + duration_index + center_len = float(p_tmax - p_tmin) + 1 + sample_tmin = p_tmin - (center_len * self.boundary_ratio) + sample_tmax = p_tmax + (center_len * self.boundary_ratio) + p_mask = self._get_interp1d_bin_mask( + sample_tmin, sample_tmax, self.tscale, + self.num_samples, self.num_samples_per_bin) + else: + p_mask = np.zeros([self.tscale, self.num_samples]) + mask_mat_vector.append(p_mask) + mask_mat_vector = np.stack(mask_mat_vector, axis=2) + mask_mat.append(mask_mat_vector) + mask_mat = np.stack(mask_mat, axis=3) + mask_mat = mask_mat.astype(np.float32) + self.sample_mask = nn.Parameter( + torch.tensor(mask_mat).view(self.tscale, -1), requires_grad=False) + + def _get_bm_mask(self): + """Generate Boundary-Matching Mask.""" + bm_mask = [] + for idx in range(self.tscale): + mask_vector = [1] * (self.tscale - idx) + [0] * idx + bm_mask.append(mask_vector) + bm_mask = torch.tensor(bm_mask, dtype=torch.float) + return bm_mask diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/bsn.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/bsn.py new file mode 100644 index 00000000..ef595fe7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/bsn.py @@ -0,0 +1,395 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +import torch +import torch.nn as nn +import torch.nn.functional as F + +from ...localization import temporal_iop +from ..builder import LOCALIZERS, build_loss +from .base import BaseTAPGenerator +from .utils import post_processing + + +@LOCALIZERS.register_module() +class TEM(BaseTAPGenerator): + """Temporal Evaluation Model for Boundary Sensitive Network. + + Please refer `BSN: Boundary Sensitive Network for Temporal Action + Proposal Generation `_. + + Code reference + https://github.com/wzmsltw/BSN-boundary-sensitive-network + + Args: + tem_feat_dim (int): Feature dimension. + tem_hidden_dim (int): Hidden layer dimension. + tem_match_threshold (float): Temporal evaluation match threshold. + loss_cls (dict): Config for building loss. + Default: ``dict(type='BinaryLogisticRegressionLoss')``. + loss_weight (float): Weight term for action_loss. Default: 2. + output_dim (int): Output dimension. Default: 3. + conv1_ratio (float): Ratio of conv1 layer output. Default: 1.0. + conv2_ratio (float): Ratio of conv2 layer output. Default: 1.0. + conv3_ratio (float): Ratio of conv3 layer output. Default: 0.01. + """ + + def __init__(self, + temporal_dim, + boundary_ratio, + tem_feat_dim, + tem_hidden_dim, + tem_match_threshold, + loss_cls=dict(type='BinaryLogisticRegressionLoss'), + loss_weight=2, + output_dim=3, + conv1_ratio=1, + conv2_ratio=1, + conv3_ratio=0.01): + super().__init__() + + self.temporal_dim = temporal_dim + self.boundary_ratio = boundary_ratio + self.feat_dim = tem_feat_dim + self.c_hidden = tem_hidden_dim + self.match_threshold = tem_match_threshold + self.output_dim = output_dim + self.loss_cls = build_loss(loss_cls) + self.loss_weight = loss_weight + self.conv1_ratio = conv1_ratio + self.conv2_ratio = conv2_ratio + self.conv3_ratio = conv3_ratio + + self.conv1 = nn.Conv1d( + in_channels=self.feat_dim, + out_channels=self.c_hidden, + kernel_size=3, + stride=1, + padding=1, + groups=1) + self.conv2 = nn.Conv1d( + in_channels=self.c_hidden, + out_channels=self.c_hidden, + kernel_size=3, + stride=1, + padding=1, + groups=1) + self.conv3 = nn.Conv1d( + in_channels=self.c_hidden, + out_channels=self.output_dim, + kernel_size=1, + stride=1, + padding=0) + self.anchors_tmins, self.anchors_tmaxs = self._temporal_anchors() + + def _temporal_anchors(self, tmin_offset=0., tmax_offset=1.): + """Generate temporal anchors. + + Args: + tmin_offset (int): Offset for the minimum value of temporal anchor. + Default: 0. + tmax_offset (int): Offset for the maximum value of temporal anchor. + Default: 1. + + Returns: + tuple[Sequence[float]]: The minimum and maximum values of temporal + anchors. + """ + temporal_gap = 1. / self.temporal_dim + anchors_tmins = [] + anchors_tmaxs = [] + for i in range(self.temporal_dim): + anchors_tmins.append(temporal_gap * (i + tmin_offset)) + anchors_tmaxs.append(temporal_gap * (i + tmax_offset)) + + return anchors_tmins, anchors_tmaxs + + def _forward(self, x): + """Define the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The output of the module. + """ + x = F.relu(self.conv1_ratio * self.conv1(x)) + x = F.relu(self.conv2_ratio * self.conv2(x)) + x = torch.sigmoid(self.conv3_ratio * self.conv3(x)) + return x + + def forward_train(self, raw_feature, label_action, label_start, label_end): + """Define the computation performed at every call when training.""" + tem_output = self._forward(raw_feature) + score_action = tem_output[:, 0, :] + score_start = tem_output[:, 1, :] + score_end = tem_output[:, 2, :] + + loss_action = self.loss_cls(score_action, label_action, + self.match_threshold) + loss_start_small = self.loss_cls(score_start, label_start, + self.match_threshold) + loss_end_small = self.loss_cls(score_end, label_end, + self.match_threshold) + loss_dict = { + 'loss_action': loss_action * self.loss_weight, + 'loss_start': loss_start_small, + 'loss_end': loss_end_small + } + + return loss_dict + + def forward_test(self, raw_feature, video_meta): + """Define the computation performed at every call when testing.""" + tem_output = self._forward(raw_feature).cpu().numpy() + batch_action = tem_output[:, 0, :] + batch_start = tem_output[:, 1, :] + batch_end = tem_output[:, 2, :] + + video_meta_list = [dict(x) for x in video_meta] + + video_results = [] + + for batch_idx, _ in enumerate(batch_action): + video_name = video_meta_list[batch_idx]['video_name'] + video_action = batch_action[batch_idx] + video_start = batch_start[batch_idx] + video_end = batch_end[batch_idx] + video_result = np.stack((video_action, video_start, video_end, + self.anchors_tmins, self.anchors_tmaxs), + axis=1) + video_results.append((video_name, video_result)) + return video_results + + def generate_labels(self, gt_bbox): + """Generate training labels.""" + match_score_action_list = [] + match_score_start_list = [] + match_score_end_list = [] + for every_gt_bbox in gt_bbox: + gt_tmins = every_gt_bbox[:, 0].cpu().numpy() + gt_tmaxs = every_gt_bbox[:, 1].cpu().numpy() + + gt_lens = gt_tmaxs - gt_tmins + gt_len_pad = np.maximum(1. / self.temporal_dim, + self.boundary_ratio * gt_lens) + + gt_start_bboxs = np.stack( + (gt_tmins - gt_len_pad / 2, gt_tmins + gt_len_pad / 2), axis=1) + gt_end_bboxs = np.stack( + (gt_tmaxs - gt_len_pad / 2, gt_tmaxs + gt_len_pad / 2), axis=1) + + match_score_action = [] + match_score_start = [] + match_score_end = [] + + for anchor_tmin, anchor_tmax in zip(self.anchors_tmins, + self.anchors_tmaxs): + match_score_action.append( + np.max( + temporal_iop(anchor_tmin, anchor_tmax, gt_tmins, + gt_tmaxs))) + match_score_start.append( + np.max( + temporal_iop(anchor_tmin, anchor_tmax, + gt_start_bboxs[:, 0], gt_start_bboxs[:, + 1]))) + match_score_end.append( + np.max( + temporal_iop(anchor_tmin, anchor_tmax, + gt_end_bboxs[:, 0], gt_end_bboxs[:, 1]))) + match_score_action_list.append(match_score_action) + match_score_start_list.append(match_score_start) + match_score_end_list.append(match_score_end) + match_score_action_list = torch.Tensor(match_score_action_list) + match_score_start_list = torch.Tensor(match_score_start_list) + match_score_end_list = torch.Tensor(match_score_end_list) + return (match_score_action_list, match_score_start_list, + match_score_end_list) + + def forward(self, + raw_feature, + gt_bbox=None, + video_meta=None, + return_loss=True): + """Define the computation performed at every call.""" + if return_loss: + label_action, label_start, label_end = ( + self.generate_labels(gt_bbox)) + device = raw_feature.device + label_action = label_action.to(device) + label_start = label_start.to(device) + label_end = label_end.to(device) + return self.forward_train(raw_feature, label_action, label_start, + label_end) + + return self.forward_test(raw_feature, video_meta) + + +@LOCALIZERS.register_module() +class PEM(BaseTAPGenerator): + """Proposals Evaluation Model for Boundary Sensitive Network. + + Please refer `BSN: Boundary Sensitive Network for Temporal Action + Proposal Generation `_. + + Code reference + https://github.com/wzmsltw/BSN-boundary-sensitive-network + + Args: + pem_feat_dim (int): Feature dimension. + pem_hidden_dim (int): Hidden layer dimension. + pem_u_ratio_m (float): Ratio for medium score proprosals to balance + data. + pem_u_ratio_l (float): Ratio for low score proprosals to balance data. + pem_high_temporal_iou_threshold (float): High IoU threshold. + pem_low_temporal_iou_threshold (float): Low IoU threshold. + soft_nms_alpha (float): Soft NMS alpha. + soft_nms_low_threshold (float): Soft NMS low threshold. + soft_nms_high_threshold (float): Soft NMS high threshold. + post_process_top_k (int): Top k proposals in post process. + feature_extraction_interval (int): + Interval used in feature extraction. Default: 16. + fc1_ratio (float): Ratio for fc1 layer output. Default: 0.1. + fc2_ratio (float): Ratio for fc2 layer output. Default: 0.1. + output_dim (int): Output dimension. Default: 1. + """ + + def __init__(self, + pem_feat_dim, + pem_hidden_dim, + pem_u_ratio_m, + pem_u_ratio_l, + pem_high_temporal_iou_threshold, + pem_low_temporal_iou_threshold, + soft_nms_alpha, + soft_nms_low_threshold, + soft_nms_high_threshold, + post_process_top_k, + feature_extraction_interval=16, + fc1_ratio=0.1, + fc2_ratio=0.1, + output_dim=1): + super().__init__() + + self.feat_dim = pem_feat_dim + self.hidden_dim = pem_hidden_dim + self.u_ratio_m = pem_u_ratio_m + self.u_ratio_l = pem_u_ratio_l + self.pem_high_temporal_iou_threshold = pem_high_temporal_iou_threshold + self.pem_low_temporal_iou_threshold = pem_low_temporal_iou_threshold + self.soft_nms_alpha = soft_nms_alpha + self.soft_nms_low_threshold = soft_nms_low_threshold + self.soft_nms_high_threshold = soft_nms_high_threshold + self.post_process_top_k = post_process_top_k + self.feature_extraction_interval = feature_extraction_interval + self.fc1_ratio = fc1_ratio + self.fc2_ratio = fc2_ratio + self.output_dim = output_dim + + self.fc1 = nn.Linear( + in_features=self.feat_dim, out_features=self.hidden_dim, bias=True) + self.fc2 = nn.Linear( + in_features=self.hidden_dim, + out_features=self.output_dim, + bias=True) + + def _forward(self, x): + """Define the computation performed at every call. + + Args: + x (torch.Tensor): The input data. + + Returns: + torch.Tensor: The output of the module. + """ + x = torch.cat(list(x)) + x = F.relu(self.fc1_ratio * self.fc1(x)) + x = torch.sigmoid(self.fc2_ratio * self.fc2(x)) + return x + + def forward_train(self, bsp_feature, reference_temporal_iou): + """Define the computation performed at every call when training.""" + pem_output = self._forward(bsp_feature) + reference_temporal_iou = torch.cat(list(reference_temporal_iou)) + device = pem_output.device + reference_temporal_iou = reference_temporal_iou.to(device) + + anchors_temporal_iou = pem_output.view(-1) + u_hmask = (reference_temporal_iou > + self.pem_high_temporal_iou_threshold).float() + u_mmask = ( + (reference_temporal_iou <= self.pem_high_temporal_iou_threshold) + & (reference_temporal_iou > self.pem_low_temporal_iou_threshold) + ).float() + u_lmask = (reference_temporal_iou <= + self.pem_low_temporal_iou_threshold).float() + + num_h = torch.sum(u_hmask) + num_m = torch.sum(u_mmask) + num_l = torch.sum(u_lmask) + + r_m = self.u_ratio_m * num_h / (num_m) + r_m = torch.min(r_m, torch.Tensor([1.0]).to(device))[0] + u_smmask = torch.rand(u_hmask.size()[0], device=device) + u_smmask = u_smmask * u_mmask + u_smmask = (u_smmask > (1. - r_m)).float() + + r_l = self.u_ratio_l * num_h / (num_l) + r_l = torch.min(r_l, torch.Tensor([1.0]).to(device))[0] + u_slmask = torch.rand(u_hmask.size()[0], device=device) + u_slmask = u_slmask * u_lmask + u_slmask = (u_slmask > (1. - r_l)).float() + + temporal_iou_weights = u_hmask + u_smmask + u_slmask + temporal_iou_loss = F.smooth_l1_loss(anchors_temporal_iou, + reference_temporal_iou) + temporal_iou_loss = torch.sum( + temporal_iou_loss * + temporal_iou_weights) / torch.sum(temporal_iou_weights) + loss_dict = dict(temporal_iou_loss=temporal_iou_loss) + + return loss_dict + + def forward_test(self, bsp_feature, tmin, tmax, tmin_score, tmax_score, + video_meta): + """Define the computation performed at every call when testing.""" + pem_output = self._forward(bsp_feature).view(-1).cpu().numpy().reshape( + -1, 1) + + tmin = tmin.view(-1).cpu().numpy().reshape(-1, 1) + tmax = tmax.view(-1).cpu().numpy().reshape(-1, 1) + tmin_score = tmin_score.view(-1).cpu().numpy().reshape(-1, 1) + tmax_score = tmax_score.view(-1).cpu().numpy().reshape(-1, 1) + score = np.array(pem_output * tmin_score * tmax_score).reshape(-1, 1) + result = np.concatenate( + (tmin, tmax, tmin_score, tmax_score, pem_output, score), axis=1) + result = result.reshape(-1, 6) + video_info = dict(video_meta[0]) + proposal_list = post_processing(result, video_info, + self.soft_nms_alpha, + self.soft_nms_low_threshold, + self.soft_nms_high_threshold, + self.post_process_top_k, + self.feature_extraction_interval) + output = [ + dict( + video_name=video_info['video_name'], + proposal_list=proposal_list) + ] + return output + + def forward(self, + bsp_feature, + reference_temporal_iou=None, + tmin=None, + tmax=None, + tmin_score=None, + tmax_score=None, + video_meta=None, + return_loss=True): + """Define the computation performed at every call.""" + if return_loss: + return self.forward_train(bsp_feature, reference_temporal_iou) + + return self.forward_test(bsp_feature, tmin, tmax, tmin_score, + tmax_score, video_meta) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/ssn.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/ssn.py new file mode 100644 index 00000000..3136d651 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/ssn.py @@ -0,0 +1,136 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn + +from .. import builder +from ..builder import LOCALIZERS +from .base import BaseTAGClassifier + + +@LOCALIZERS.register_module() +class SSN(BaseTAGClassifier): + """Temporal Action Detection with Structured Segment Networks. + + Args: + backbone (dict): Config for building backbone. + cls_head (dict): Config for building classification head. + in_channels (int): Number of channels for input data. + Default: 3. + spatial_type (str): Type of spatial pooling. + Default: 'avg'. + dropout_ratio (float): Ratio of dropout. + Default: 0.5. + loss_cls (dict): Config for building loss. + Default: ``dict(type='SSNLoss')``. + train_cfg (dict | None): Config for training. Default: None. + test_cfg (dict | None): Config for testing. Default: None. + """ + + def __init__(self, + backbone, + cls_head, + in_channels=3, + spatial_type='avg', + dropout_ratio=0.5, + loss_cls=dict(type='SSNLoss'), + train_cfg=None, + test_cfg=None): + + super().__init__(backbone, cls_head, train_cfg, test_cfg) + + self.is_test_prepared = False + self.in_channels = in_channels + + self.spatial_type = spatial_type + if self.spatial_type == 'avg': + self.pool = nn.AvgPool2d((7, 7), stride=1, padding=0) + elif self.spatial_type == 'max': + self.pool = nn.MaxPool2d((7, 7), stride=1, padding=0) + else: + self.pool = None + + self.dropout_ratio = dropout_ratio + if self.dropout_ratio != 0: + self.dropout = nn.Dropout(p=self.dropout_ratio) + else: + self.dropout = None + self.loss_cls = builder.build_loss(loss_cls) + + def forward_train(self, imgs, proposal_scale_factor, proposal_type, + proposal_labels, reg_targets, **kwargs): + """Define the computation performed at every call when training.""" + imgs = imgs.reshape((-1, self.in_channels) + imgs.shape[4:]) + + x = self.extract_feat(imgs) + + if self.pool: + x = self.pool(x) + if self.dropout is not None: + x = self.dropout(x) + + activity_scores, completeness_scores, bbox_preds = self.cls_head( + (x, proposal_scale_factor)) + + loss = self.loss_cls(activity_scores, completeness_scores, bbox_preds, + proposal_type, proposal_labels, reg_targets, + self.train_cfg) + loss_dict = dict(**loss) + + return loss_dict + + def forward_test(self, imgs, relative_proposal_list, scale_factor_list, + proposal_tick_list, reg_norm_consts, **kwargs): + """Define the computation performed at every call when testing.""" + num_crops = imgs.shape[0] + imgs = imgs.reshape((num_crops, -1, self.in_channels) + imgs.shape[3:]) + num_ticks = imgs.shape[1] + + output = [] + minibatch_size = self.test_cfg.ssn.sampler.batch_size + for idx in range(0, num_ticks, minibatch_size): + chunk = imgs[:, idx:idx + + minibatch_size, :, :, :].view((-1, ) + imgs.shape[2:]) + x = self.extract_feat(chunk) + if self.pool: + x = self.pool(x) + # Merge crop to save memory. + x = x.reshape((num_crops, x.size(0) // num_crops, -1)).mean(dim=0) + output.append(x) + output = torch.cat(output, dim=0) + + relative_proposal_list = relative_proposal_list.squeeze(0) + proposal_tick_list = proposal_tick_list.squeeze(0) + scale_factor_list = scale_factor_list.squeeze(0) + reg_norm_consts = reg_norm_consts.squeeze(0) + + if not self.is_test_prepared: + self.is_test_prepared = self.cls_head.prepare_test_fc( + self.cls_head.consensus.num_multipliers) + + (output, activity_scores, completeness_scores, + bbox_preds) = self.cls_head( + (output, proposal_tick_list, scale_factor_list), test_mode=True) + + relative_proposal_list = relative_proposal_list.cpu().numpy() + activity_scores = activity_scores.cpu().numpy() + completeness_scores = completeness_scores.cpu().numpy() + reg_norm_consts = reg_norm_consts.cpu().numpy() + if bbox_preds is not None: + bbox_preds = bbox_preds.view(-1, self.cls_head.num_classes, 2) + bbox_preds[:, :, 0] = ( + bbox_preds[:, :, 0] * reg_norm_consts[1, 0] + + reg_norm_consts[0, 0]) + bbox_preds[:, :, 1] = ( + bbox_preds[:, :, 1] * reg_norm_consts[1, 1] + + reg_norm_consts[0, 1]) + bbox_preds = bbox_preds.cpu().numpy() + + result = [ + dict( + relative_proposal_list=relative_proposal_list, + activity_scores=activity_scores, + completeness_scores=completeness_scores, + bbox_preds=bbox_preds) + ] + + return result diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/utils/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/utils/__init__.py new file mode 100644 index 00000000..13f70f35 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/utils/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .post_processing import post_processing + +__all__ = ['post_processing'] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/utils/post_processing.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/utils/post_processing.py new file mode 100644 index 00000000..4ac81e2f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/localizers/utils/post_processing.py @@ -0,0 +1,45 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from mmaction.localization import soft_nms + + +def post_processing(result, video_info, soft_nms_alpha, soft_nms_low_threshold, + soft_nms_high_threshold, post_process_top_k, + feature_extraction_interval): + """Post process for temporal proposals generation. + + Args: + result (np.ndarray): Proposals generated by network. + video_info (dict): Meta data of video. Required keys are + 'duration_frame', 'duration_second'. + soft_nms_alpha (float): Alpha value of Gaussian decaying function. + soft_nms_low_threshold (float): Low threshold for soft nms. + soft_nms_high_threshold (float): High threshold for soft nms. + post_process_top_k (int): Top k values to be considered. + feature_extraction_interval (int): Interval used in feature extraction. + + Returns: + list[dict]: The updated proposals, e.g. + [{'score': 0.9, 'segment': [0, 1]}, + {'score': 0.8, 'segment': [0, 2]}, + ...]. + """ + if len(result) > 1: + result = soft_nms(result, soft_nms_alpha, soft_nms_low_threshold, + soft_nms_high_threshold, post_process_top_k) + + result = result[result[:, -1].argsort()[::-1]] + video_duration = float( + video_info['duration_frame'] // feature_extraction_interval * + feature_extraction_interval + ) / video_info['duration_frame'] * video_info['duration_second'] + proposal_list = [] + + for j in range(min(post_process_top_k, len(result))): + proposal = {} + proposal['score'] = float(result[j, -1]) + proposal['segment'] = [ + max(0, result[j, 0]) * video_duration, + min(1, result[j, 1]) * video_duration + ] + proposal_list.append(proposal) + return proposal_list diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/__init__.py new file mode 100644 index 00000000..41afcb7a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/__init__.py @@ -0,0 +1,16 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .base import BaseWeightedLoss +from .binary_logistic_regression_loss import BinaryLogisticRegressionLoss +from .bmn_loss import BMNLoss +from .cross_entropy_loss import (BCELossWithLogits, CBFocalLoss, + CrossEntropyLoss) +from .hvu_loss import HVULoss +from .nll_loss import NLLLoss +from .ohem_hinge_loss import OHEMHingeLoss +from .ssn_loss import SSNLoss + +__all__ = [ + 'BaseWeightedLoss', 'CrossEntropyLoss', 'NLLLoss', 'BCELossWithLogits', + 'BinaryLogisticRegressionLoss', 'BMNLoss', 'OHEMHingeLoss', 'SSNLoss', + 'HVULoss', 'CBFocalLoss' +] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/base.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/base.py new file mode 100644 index 00000000..9e1df07d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/base.py @@ -0,0 +1,45 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from abc import ABCMeta, abstractmethod + +import torch.nn as nn + + +class BaseWeightedLoss(nn.Module, metaclass=ABCMeta): + """Base class for loss. + + All subclass should overwrite the ``_forward()`` method which returns the + normal loss without loss weights. + + Args: + loss_weight (float): Factor scalar multiplied on the loss. + Default: 1.0. + """ + + def __init__(self, loss_weight=1.0): + super().__init__() + self.loss_weight = loss_weight + + @abstractmethod + def _forward(self, *args, **kwargs): + pass + + def forward(self, *args, **kwargs): + """Defines the computation performed at every call. + + Args: + *args: The positional arguments for the corresponding + loss. + **kwargs: The keyword arguments for the corresponding + loss. + + Returns: + torch.Tensor: The calculated loss. + """ + ret = self._forward(*args, **kwargs) + if isinstance(ret, dict): + for k in ret: + if 'loss' in k: + ret[k] *= self.loss_weight + else: + ret *= self.loss_weight + return ret diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/binary_logistic_regression_loss.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/binary_logistic_regression_loss.py new file mode 100644 index 00000000..74ed294f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/binary_logistic_regression_loss.py @@ -0,0 +1,62 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn + +from ..builder import LOSSES + + +def binary_logistic_regression_loss(reg_score, + label, + threshold=0.5, + ratio_range=(1.05, 21), + eps=1e-5): + """Binary Logistic Regression Loss.""" + label = label.view(-1).to(reg_score.device) + reg_score = reg_score.contiguous().view(-1) + + pmask = (label > threshold).float().to(reg_score.device) + num_positive = max(torch.sum(pmask), 1) + num_entries = len(label) + ratio = num_entries / num_positive + # clip ratio value between ratio_range + ratio = min(max(ratio, ratio_range[0]), ratio_range[1]) + + coef_0 = 0.5 * ratio / (ratio - 1) + coef_1 = 0.5 * ratio + loss = coef_1 * pmask * torch.log(reg_score + eps) + coef_0 * ( + 1.0 - pmask) * torch.log(1.0 - reg_score + eps) + loss = -torch.mean(loss) + return loss + + +@LOSSES.register_module() +class BinaryLogisticRegressionLoss(nn.Module): + """Binary Logistic Regression Loss. + + It will calculate binary logistic regression loss given reg_score and + label. + """ + + def forward(self, + reg_score, + label, + threshold=0.5, + ratio_range=(1.05, 21), + eps=1e-5): + """Calculate Binary Logistic Regression Loss. + + Args: + reg_score (torch.Tensor): Predicted score by model. + label (torch.Tensor): Groundtruth labels. + threshold (float): Threshold for positive instances. + Default: 0.5. + ratio_range (tuple): Lower bound and upper bound for ratio. + Default: (1.05, 21) + eps (float): Epsilon for small value. Default: 1e-5. + + Returns: + torch.Tensor: Returned binary logistic loss. + """ + + return binary_logistic_regression_loss(reg_score, label, threshold, + ratio_range, eps) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/bmn_loss.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/bmn_loss.py new file mode 100644 index 00000000..eb997c9e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/bmn_loss.py @@ -0,0 +1,181 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn +import torch.nn.functional as F + +from ..builder import LOSSES +from .binary_logistic_regression_loss import binary_logistic_regression_loss + + +@LOSSES.register_module() +class BMNLoss(nn.Module): + """BMN Loss. + + From paper https://arxiv.org/abs/1907.09702, + code https://github.com/JJBOY/BMN-Boundary-Matching-Network. + It will calculate loss for BMN Model. This loss is a weighted sum of + + 1) temporal evaluation loss based on confidence score of start and + end positions. + 2) proposal evaluation regression loss based on confidence scores of + candidate proposals. + 3) proposal evaluation classification loss based on classification + results of candidate proposals. + """ + + @staticmethod + def tem_loss(pred_start, pred_end, gt_start, gt_end): + """Calculate Temporal Evaluation Module Loss. + + This function calculate the binary_logistic_regression_loss for start + and end respectively and returns the sum of their losses. + + Args: + pred_start (torch.Tensor): Predicted start score by BMN model. + pred_end (torch.Tensor): Predicted end score by BMN model. + gt_start (torch.Tensor): Groundtruth confidence score for start. + gt_end (torch.Tensor): Groundtruth confidence score for end. + + Returns: + torch.Tensor: Returned binary logistic loss. + """ + loss_start = binary_logistic_regression_loss(pred_start, gt_start) + loss_end = binary_logistic_regression_loss(pred_end, gt_end) + loss = loss_start + loss_end + return loss + + @staticmethod + def pem_reg_loss(pred_score, + gt_iou_map, + mask, + high_temporal_iou_threshold=0.7, + low_temporal_iou_threshold=0.3): + """Calculate Proposal Evaluation Module Regression Loss. + + Args: + pred_score (torch.Tensor): Predicted temporal_iou score by BMN. + gt_iou_map (torch.Tensor): Groundtruth temporal_iou score. + mask (torch.Tensor): Boundary-Matching mask. + high_temporal_iou_threshold (float): Higher threshold of + temporal_iou. Default: 0.7. + low_temporal_iou_threshold (float): Higher threshold of + temporal_iou. Default: 0.3. + + Returns: + torch.Tensor: Proposal evaluation regression loss. + """ + u_hmask = (gt_iou_map > high_temporal_iou_threshold).float() + u_mmask = ((gt_iou_map <= high_temporal_iou_threshold) & + (gt_iou_map > low_temporal_iou_threshold)).float() + u_lmask = ((gt_iou_map <= low_temporal_iou_threshold) & + (gt_iou_map > 0.)).float() + u_lmask = u_lmask * mask + + num_h = torch.sum(u_hmask) + num_m = torch.sum(u_mmask) + num_l = torch.sum(u_lmask) + + r_m = num_h / num_m + u_smmask = torch.rand_like(gt_iou_map) + u_smmask = u_mmask * u_smmask + u_smmask = (u_smmask > (1. - r_m)).float() + + r_l = num_h / num_l + u_slmask = torch.rand_like(gt_iou_map) + u_slmask = u_lmask * u_slmask + u_slmask = (u_slmask > (1. - r_l)).float() + + weights = u_hmask + u_smmask + u_slmask + + loss = F.mse_loss(pred_score * weights, gt_iou_map * weights) + loss = 0.5 * torch.sum( + loss * torch.ones_like(weights)) / torch.sum(weights) + + return loss + + @staticmethod + def pem_cls_loss(pred_score, + gt_iou_map, + mask, + threshold=0.9, + ratio_range=(1.05, 21), + eps=1e-5): + """Calculate Proposal Evaluation Module Classification Loss. + + Args: + pred_score (torch.Tensor): Predicted temporal_iou score by BMN. + gt_iou_map (torch.Tensor): Groundtruth temporal_iou score. + mask (torch.Tensor): Boundary-Matching mask. + threshold (float): Threshold of temporal_iou for positive + instances. Default: 0.9. + ratio_range (tuple): Lower bound and upper bound for ratio. + Default: (1.05, 21) + eps (float): Epsilon for small value. Default: 1e-5 + + Returns: + torch.Tensor: Proposal evaluation classification loss. + """ + pmask = (gt_iou_map > threshold).float() + nmask = (gt_iou_map <= threshold).float() + nmask = nmask * mask + + num_positive = max(torch.sum(pmask), 1) + num_entries = num_positive + torch.sum(nmask) + ratio = num_entries / num_positive + ratio = torch.clamp(ratio, ratio_range[0], ratio_range[1]) + + coef_0 = 0.5 * ratio / (ratio - 1) + coef_1 = 0.5 * ratio + + loss_pos = coef_1 * torch.log(pred_score + eps) * pmask + loss_neg = coef_0 * torch.log(1.0 - pred_score + eps) * nmask + loss = -1 * torch.sum(loss_pos + loss_neg) / num_entries + return loss + + def forward(self, + pred_bm, + pred_start, + pred_end, + gt_iou_map, + gt_start, + gt_end, + bm_mask, + weight_tem=1.0, + weight_pem_reg=10.0, + weight_pem_cls=1.0): + """Calculate Boundary Matching Network Loss. + + Args: + pred_bm (torch.Tensor): Predicted confidence score for boundary + matching map. + pred_start (torch.Tensor): Predicted confidence score for start. + pred_end (torch.Tensor): Predicted confidence score for end. + gt_iou_map (torch.Tensor): Groundtruth score for boundary matching + map. + gt_start (torch.Tensor): Groundtruth temporal_iou score for start. + gt_end (torch.Tensor): Groundtruth temporal_iou score for end. + bm_mask (torch.Tensor): Boundary-Matching mask. + weight_tem (float): Weight for tem loss. Default: 1.0. + weight_pem_reg (float): Weight for pem regression loss. + Default: 10.0. + weight_pem_cls (float): Weight for pem classification loss. + Default: 1.0. + + Returns: + tuple([torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor]): + (loss, tem_loss, pem_reg_loss, pem_cls_loss). Loss is the bmn + loss, tem_loss is the temporal evaluation loss, pem_reg_loss is + the proposal evaluation regression loss, pem_cls_loss is the + proposal evaluation classification loss. + """ + pred_bm_reg = pred_bm[:, 0].contiguous() + pred_bm_cls = pred_bm[:, 1].contiguous() + gt_iou_map = gt_iou_map * bm_mask + + pem_reg_loss = self.pem_reg_loss(pred_bm_reg, gt_iou_map, bm_mask) + pem_cls_loss = self.pem_cls_loss(pred_bm_cls, gt_iou_map, bm_mask) + tem_loss = self.tem_loss(pred_start, pred_end, gt_start, gt_end) + loss = ( + weight_tem * tem_loss + weight_pem_reg * pem_reg_loss + + weight_pem_cls * pem_cls_loss) + return loss, tem_loss, pem_reg_loss, pem_cls_loss diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/cross_entropy_loss.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/cross_entropy_loss.py new file mode 100644 index 00000000..fbb91d19 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/cross_entropy_loss.py @@ -0,0 +1,191 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +import torch +import torch.nn.functional as F + +from ..builder import LOSSES +from .base import BaseWeightedLoss + + +@LOSSES.register_module() +class CrossEntropyLoss(BaseWeightedLoss): + """Cross Entropy Loss. + + Support two kinds of labels and their corresponding loss type. It's worth + mentioning that loss type will be detected by the shape of ``cls_score`` + and ``label``. + 1) Hard label: This label is an integer array and all of the elements are + in the range [0, num_classes - 1]. This label's shape should be + ``cls_score``'s shape with the `num_classes` dimension removed. + 2) Soft label(probablity distribution over classes): This label is a + probability distribution and all of the elements are in the range + [0, 1]. This label's shape must be the same as ``cls_score``. For now, + only 2-dim soft label is supported. + + Args: + loss_weight (float): Factor scalar multiplied on the loss. + Default: 1.0. + class_weight (list[float] | None): Loss weight for each class. If set + as None, use the same weight 1 for all classes. Only applies + to CrossEntropyLoss and BCELossWithLogits (should not be set when + using other losses). Default: None. + """ + + def __init__(self, loss_weight=1.0, class_weight=None): + super().__init__(loss_weight=loss_weight) + self.class_weight = None + if class_weight is not None: + self.class_weight = torch.Tensor(class_weight) + + def _forward(self, cls_score, label, **kwargs): + """Forward function. + + Args: + cls_score (torch.Tensor): The class score. + label (torch.Tensor): The ground truth label. + kwargs: Any keyword argument to be used to calculate + CrossEntropy loss. + + Returns: + torch.Tensor: The returned CrossEntropy loss. + """ + if cls_score.size() == label.size(): + # calculate loss for soft label + + assert cls_score.dim() == 2, 'Only support 2-dim soft label' + assert len(kwargs) == 0, \ + ('For now, no extra args are supported for soft label, ' + f'but get {kwargs}') + + lsm = F.log_softmax(cls_score, 1) + if self.class_weight is not None: + self.class_weight = self.class_weight.to(cls_score.device) + lsm = lsm * self.class_weight.unsqueeze(0) + loss_cls = -(label * lsm).sum(1) + + # default reduction 'mean' + if self.class_weight is not None: + # Use weighted average as pytorch CrossEntropyLoss does. + # For more information, please visit https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html # noqa + loss_cls = loss_cls.sum() / torch.sum( + self.class_weight.unsqueeze(0) * label) + else: + loss_cls = loss_cls.mean() + else: + # calculate loss for hard label + + if self.class_weight is not None: + assert 'weight' not in kwargs, \ + "The key 'weight' already exists." + kwargs['weight'] = self.class_weight.to(cls_score.device) + loss_cls = F.cross_entropy(cls_score, label, **kwargs) + + return loss_cls + + +@LOSSES.register_module() +class BCELossWithLogits(BaseWeightedLoss): + """Binary Cross Entropy Loss with logits. + + Args: + loss_weight (float): Factor scalar multiplied on the loss. + Default: 1.0. + class_weight (list[float] | None): Loss weight for each class. If set + as None, use the same weight 1 for all classes. Only applies + to CrossEntropyLoss and BCELossWithLogits (should not be set when + using other losses). Default: None. + """ + + def __init__(self, loss_weight=1.0, class_weight=None): + super().__init__(loss_weight=loss_weight) + self.class_weight = None + if class_weight is not None: + self.class_weight = torch.Tensor(class_weight) + + def _forward(self, cls_score, label, **kwargs): + """Forward function. + + Args: + cls_score (torch.Tensor): The class score. + label (torch.Tensor): The ground truth label. + kwargs: Any keyword argument to be used to calculate + bce loss with logits. + + Returns: + torch.Tensor: The returned bce loss with logits. + """ + if self.class_weight is not None: + assert 'weight' not in kwargs, "The key 'weight' already exists." + kwargs['weight'] = self.class_weight.to(cls_score.device) + loss_cls = F.binary_cross_entropy_with_logits(cls_score, label, + **kwargs) + return loss_cls + + +@LOSSES.register_module() +class CBFocalLoss(BaseWeightedLoss): + """Class Balanced Focal Loss. Adapted from https://github.com/abhinanda- + punnakkal/BABEL/. This loss is used in the skeleton-based action + recognition baseline for BABEL. + + Args: + loss_weight (float): Factor scalar multiplied on the loss. + Default: 1.0. + samples_per_cls (list[int]): The number of samples per class. + Default: []. + beta (float): Hyperparameter that controls the per class loss weight. + Default: 0.9999. + gamma (float): Hyperparameter of the focal loss. Default: 2.0. + """ + + def __init__(self, + loss_weight=1.0, + samples_per_cls=[], + beta=0.9999, + gamma=2.): + super().__init__(loss_weight=loss_weight) + self.samples_per_cls = samples_per_cls + self.beta = beta + self.gamma = gamma + effective_num = 1.0 - np.power(beta, samples_per_cls) + weights = (1.0 - beta) / np.array(effective_num) + weights = weights / np.sum(weights) * len(weights) + self.weights = weights + self.num_classes = len(weights) + + def _forward(self, cls_score, label, **kwargs): + """Forward function. + + Args: + cls_score (torch.Tensor): The class score. + label (torch.Tensor): The ground truth label. + kwargs: Any keyword argument to be used to calculate + bce loss with logits. + + Returns: + torch.Tensor: The returned bce loss with logits. + """ + weights = torch.tensor(self.weights).float().to(cls_score.device) + label_one_hot = F.one_hot(label, self.num_classes).float() + weights = weights.unsqueeze(0) + weights = weights.repeat(label_one_hot.shape[0], 1) * label_one_hot + weights = weights.sum(1) + weights = weights.unsqueeze(1) + weights = weights.repeat(1, self.num_classes) + + BCELoss = F.binary_cross_entropy_with_logits( + input=cls_score, target=label_one_hot, reduction='none') + + modulator = 1.0 + if self.gamma: + modulator = torch.exp(-self.gamma * label_one_hot * cls_score - + self.gamma * + torch.log(1 + torch.exp(-1.0 * cls_score))) + + loss = modulator * BCELoss + weighted_loss = weights * loss + + focal_loss = torch.sum(weighted_loss) + focal_loss /= torch.sum(label_one_hot) + + return focal_loss diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/hvu_loss.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/hvu_loss.py new file mode 100644 index 00000000..9deb8621 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/hvu_loss.py @@ -0,0 +1,142 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn.functional as F + +from ..builder import LOSSES +from .base import BaseWeightedLoss + + +@LOSSES.register_module() +class HVULoss(BaseWeightedLoss): + """Calculate the BCELoss for HVU. + + Args: + categories (tuple[str]): Names of tag categories, tags are organized in + this order. Default: ['action', 'attribute', 'concept', 'event', + 'object', 'scene']. + category_nums (tuple[int]): Number of tags for each category. Default: + (739, 117, 291, 69, 1678, 248). + category_loss_weights (tuple[float]): Loss weights of categories, it + applies only if `loss_type == 'individual'`. The loss weights will + be normalized so that the sum equals to 1, so that you can give any + positive number as loss weight. Default: (1, 1, 1, 1, 1, 1). + loss_type (str): The loss type we calculate, we can either calculate + the BCELoss for all tags, or calculate the BCELoss for tags in each + category. Choices are 'individual' or 'all'. Default: 'all'. + with_mask (bool): Since some tag categories are missing for some video + clips. If `with_mask == True`, we will not calculate loss for these + missing categories. Otherwise, these missing categories are treated + as negative samples. + reduction (str): Reduction way. Choices are 'mean' or 'sum'. Default: + 'mean'. + loss_weight (float): The loss weight. Default: 1.0. + """ + + def __init__(self, + categories=('action', 'attribute', 'concept', 'event', + 'object', 'scene'), + category_nums=(739, 117, 291, 69, 1678, 248), + category_loss_weights=(1, 1, 1, 1, 1, 1), + loss_type='all', + with_mask=False, + reduction='mean', + loss_weight=1.0): + + super().__init__(loss_weight) + self.categories = categories + self.category_nums = category_nums + self.category_loss_weights = category_loss_weights + assert len(self.category_nums) == len(self.category_loss_weights) + for category_loss_weight in self.category_loss_weights: + assert category_loss_weight >= 0 + self.loss_type = loss_type + self.with_mask = with_mask + self.reduction = reduction + self.category_startidx = [0] + for i in range(len(self.category_nums) - 1): + self.category_startidx.append(self.category_startidx[-1] + + self.category_nums[i]) + assert self.loss_type in ['individual', 'all'] + assert self.reduction in ['mean', 'sum'] + + def _forward(self, cls_score, label, mask, category_mask): + """Forward function. + + Args: + cls_score (torch.Tensor): The class score. + label (torch.Tensor): The ground truth label. + mask (torch.Tensor): The mask of tags. 0 indicates that the + category of this tag is missing in the label of the video. + category_mask (torch.Tensor): The category mask. For each sample, + it's a tensor with length `len(self.categories)`, denotes that + if the category is labeled for this video. + + Returns: + torch.Tensor: The returned CrossEntropy loss. + """ + + if self.loss_type == 'all': + loss_cls = F.binary_cross_entropy_with_logits( + cls_score, label, reduction='none') + if self.with_mask: + w_loss_cls = mask * loss_cls + w_loss_cls = torch.sum(w_loss_cls, dim=1) + if self.reduction == 'mean': + w_loss_cls = w_loss_cls / torch.sum(mask, dim=1) + w_loss_cls = torch.mean(w_loss_cls) + return dict(loss_cls=w_loss_cls) + + if self.reduction == 'sum': + loss_cls = torch.sum(loss_cls, dim=-1) + return dict(loss_cls=torch.mean(loss_cls)) + + if self.loss_type == 'individual': + losses = {} + loss_weights = {} + for name, num, start_idx in zip(self.categories, + self.category_nums, + self.category_startidx): + category_score = cls_score[:, start_idx:start_idx + num] + category_label = label[:, start_idx:start_idx + num] + category_loss = F.binary_cross_entropy_with_logits( + category_score, category_label, reduction='none') + if self.reduction == 'mean': + category_loss = torch.mean(category_loss, dim=1) + elif self.reduction == 'sum': + category_loss = torch.sum(category_loss, dim=1) + + idx = self.categories.index(name) + if self.with_mask: + category_mask_i = category_mask[:, idx].reshape(-1) + # there should be at least one sample which contains tags + # in this category + if torch.sum(category_mask_i) < 0.5: + losses[f'{name}_LOSS'] = torch.tensor(.0).cuda() + loss_weights[f'{name}_LOSS'] = .0 + continue + category_loss = torch.sum(category_loss * category_mask_i) + category_loss = category_loss / torch.sum(category_mask_i) + else: + category_loss = torch.mean(category_loss) + # We name the loss of each category as 'LOSS', since we only + # want to monitor them, not backward them. We will also provide + # the loss used for backward in the losses dictionary + losses[f'{name}_LOSS'] = category_loss + loss_weights[f'{name}_LOSS'] = self.category_loss_weights[idx] + loss_weight_sum = sum(loss_weights.values()) + loss_weights = { + k: v / loss_weight_sum + for k, v in loss_weights.items() + } + loss_cls = sum([losses[k] * loss_weights[k] for k in losses]) + losses['loss_cls'] = loss_cls + # We also trace the loss weights + losses.update({ + k + '_weight': torch.tensor(v).to(losses[k].device) + for k, v in loss_weights.items() + }) + # Note that the loss weights are just for reference. + return losses + else: + raise ValueError("loss_type should be 'all' or 'individual', " + f'but got {self.loss_type}') diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/nll_loss.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/nll_loss.py new file mode 100644 index 00000000..754b498a --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/nll_loss.py @@ -0,0 +1,27 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch.nn.functional as F + +from ..builder import LOSSES +from .base import BaseWeightedLoss + + +@LOSSES.register_module() +class NLLLoss(BaseWeightedLoss): + """NLL Loss. + + It will calculate NLL loss given cls_score and label. + """ + + def _forward(self, cls_score, label, **kwargs): + """Forward function. + + Args: + cls_score (torch.Tensor): The class score. + label (torch.Tensor): The ground truth label. + kwargs: Any keyword argument to be used to calculate nll loss. + + Returns: + torch.Tensor: The returned nll loss. + """ + loss_cls = F.nll_loss(cls_score, label, **kwargs) + return loss_cls diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/ohem_hinge_loss.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/ohem_hinge_loss.py new file mode 100644 index 00000000..8804a194 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/ohem_hinge_loss.py @@ -0,0 +1,65 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch + + +class OHEMHingeLoss(torch.autograd.Function): + """This class is the core implementation for the completeness loss in + paper. + + It compute class-wise hinge loss and performs online hard example mining + (OHEM). + """ + + @staticmethod + def forward(ctx, pred, labels, is_positive, ohem_ratio, group_size): + """Calculate OHEM hinge loss. + + Args: + pred (torch.Tensor): Predicted completeness score. + labels (torch.Tensor): Groundtruth class label. + is_positive (int): Set to 1 when proposals are positive and + set to -1 when proposals are incomplete. + ohem_ratio (float): Ratio of hard examples. + group_size (int): Number of proposals sampled per video. + + Returns: + torch.Tensor: Returned class-wise hinge loss. + """ + num_samples = pred.size(0) + if num_samples != len(labels): + raise ValueError(f'Number of samples should be equal to that ' + f'of labels, but got {num_samples} samples and ' + f'{len(labels)} labels.') + + losses = torch.zeros(num_samples, device=pred.device) + slopes = torch.zeros(num_samples, device=pred.device) + for i in range(num_samples): + losses[i] = max(0, 1 - is_positive * pred[i, labels[i] - 1]) + slopes[i] = -is_positive if losses[i] != 0 else 0 + + losses = losses.view(-1, group_size).contiguous() + sorted_losses, indices = torch.sort(losses, dim=1, descending=True) + keep_length = int(group_size * ohem_ratio) + loss = torch.zeros(1, device=pred.device) + for i in range(losses.size(0)): + loss += sorted_losses[i, :keep_length].sum() + ctx.loss_index = indices[:, :keep_length] + ctx.labels = labels + ctx.slopes = slopes + ctx.shape = pred.size() + ctx.group_size = group_size + ctx.num_groups = losses.size(0) + return loss + + @staticmethod + def backward(ctx, grad_output): + labels = ctx.labels + slopes = ctx.slopes + + grad_in = torch.zeros(ctx.shape, device=ctx.slopes.device) + for group in range(ctx.num_groups): + for idx in ctx.loss_index[group]: + loc = idx + group * ctx.group_size + grad_in[loc, labels[loc] - 1] = ( + slopes[loc] * grad_output.data[0]) + return torch.autograd.Variable(grad_in), None, None, None, None diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/ssn_loss.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/ssn_loss.py new file mode 100644 index 00000000..02c03e3e --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/losses/ssn_loss.py @@ -0,0 +1,180 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn +import torch.nn.functional as F + +from ..builder import LOSSES +from .ohem_hinge_loss import OHEMHingeLoss + + +@LOSSES.register_module() +class SSNLoss(nn.Module): + + @staticmethod + def activity_loss(activity_score, labels, activity_indexer): + """Activity Loss. + + It will calculate activity loss given activity_score and label. + + Args: + activity_score (torch.Tensor): Predicted activity score. + labels (torch.Tensor): Groundtruth class label. + activity_indexer (torch.Tensor): Index slices of proposals. + + Returns: + torch.Tensor: Returned cross entropy loss. + """ + pred = activity_score[activity_indexer, :] + gt = labels[activity_indexer] + return F.cross_entropy(pred, gt) + + @staticmethod + def completeness_loss(completeness_score, + labels, + completeness_indexer, + positive_per_video, + incomplete_per_video, + ohem_ratio=0.17): + """Completeness Loss. + + It will calculate completeness loss given completeness_score and label. + + Args: + completeness_score (torch.Tensor): Predicted completeness score. + labels (torch.Tensor): Groundtruth class label. + completeness_indexer (torch.Tensor): Index slices of positive and + incomplete proposals. + positive_per_video (int): Number of positive proposals sampled + per video. + incomplete_per_video (int): Number of incomplete proposals sampled + pre video. + ohem_ratio (float): Ratio of online hard example mining. + Default: 0.17. + + Returns: + torch.Tensor: Returned class-wise completeness loss. + """ + pred = completeness_score[completeness_indexer, :] + gt = labels[completeness_indexer] + + pred_dim = pred.size(1) + pred = pred.view(-1, positive_per_video + incomplete_per_video, + pred_dim) + gt = gt.view(-1, positive_per_video + incomplete_per_video) + + # yapf:disable + positive_pred = pred[:, :positive_per_video, :].contiguous().view(-1, pred_dim) # noqa:E501 + incomplete_pred = pred[:, positive_per_video:, :].contiguous().view(-1, pred_dim) # noqa:E501 + # yapf:enable + + positive_loss = OHEMHingeLoss.apply( + positive_pred, gt[:, :positive_per_video].contiguous().view(-1), 1, + 1.0, positive_per_video) + incomplete_loss = OHEMHingeLoss.apply( + incomplete_pred, gt[:, positive_per_video:].contiguous().view(-1), + -1, ohem_ratio, incomplete_per_video) + num_positives = positive_pred.size(0) + num_incompletes = int(incomplete_pred.size(0) * ohem_ratio) + + return ((positive_loss + incomplete_loss) / + float(num_positives + num_incompletes)) + + @staticmethod + def classwise_regression_loss(bbox_pred, labels, bbox_targets, + regression_indexer): + """Classwise Regression Loss. + + It will calculate classwise_regression loss given + class_reg_pred and targets. + + Args: + bbox_pred (torch.Tensor): Predicted interval center and span + of positive proposals. + labels (torch.Tensor): Groundtruth class label. + bbox_targets (torch.Tensor): Groundtruth center and span + of positive proposals. + regression_indexer (torch.Tensor): Index slices of + positive proposals. + + Returns: + torch.Tensor: Returned class-wise regression loss. + """ + pred = bbox_pred[regression_indexer, :, :] + gt = labels[regression_indexer] + reg_target = bbox_targets[regression_indexer, :] + + class_idx = gt.data - 1 + classwise_pred = pred[:, class_idx, :] + classwise_reg_pred = torch.cat( + (torch.diag(classwise_pred[:, :, 0]).view( + -1, 1), torch.diag(classwise_pred[:, :, 1]).view(-1, 1)), + dim=1) + loss = F.smooth_l1_loss( + classwise_reg_pred.view(-1), reg_target.view(-1)) * 2 + return loss + + def forward(self, activity_score, completeness_score, bbox_pred, + proposal_type, labels, bbox_targets, train_cfg): + """Calculate Boundary Matching Network Loss. + + Args: + activity_score (torch.Tensor): Predicted activity score. + completeness_score (torch.Tensor): Predicted completeness score. + bbox_pred (torch.Tensor): Predicted interval center and span + of positive proposals. + proposal_type (torch.Tensor): Type index slices of proposals. + labels (torch.Tensor): Groundtruth class label. + bbox_targets (torch.Tensor): Groundtruth center and span + of positive proposals. + train_cfg (dict): Config for training. + + Returns: + dict([torch.Tensor, torch.Tensor, torch.Tensor]): + (loss_activity, loss_completeness, loss_reg). + Loss_activity is the activity loss, loss_completeness is + the class-wise completeness loss, + loss_reg is the class-wise regression loss. + """ + self.sampler = train_cfg.ssn.sampler + self.loss_weight = train_cfg.ssn.loss_weight + losses = dict() + + proposal_type = proposal_type.view(-1) + labels = labels.view(-1) + activity_indexer = ((proposal_type == 0) + + (proposal_type == 2)).nonzero().squeeze(1) + completeness_indexer = ((proposal_type == 0) + + (proposal_type == 1)).nonzero().squeeze(1) + + total_ratio = ( + self.sampler.positive_ratio + self.sampler.background_ratio + + self.sampler.incomplete_ratio) + positive_per_video = int(self.sampler.num_per_video * + (self.sampler.positive_ratio / total_ratio)) + background_per_video = int( + self.sampler.num_per_video * + (self.sampler.background_ratio / total_ratio)) + incomplete_per_video = ( + self.sampler.num_per_video - positive_per_video - + background_per_video) + + losses['loss_activity'] = self.activity_loss(activity_score, labels, + activity_indexer) + + losses['loss_completeness'] = self.completeness_loss( + completeness_score, + labels, + completeness_indexer, + positive_per_video, + incomplete_per_video, + ohem_ratio=positive_per_video / incomplete_per_video) + losses['loss_completeness'] *= self.loss_weight.comp_loss_weight + + if bbox_pred is not None: + regression_indexer = (proposal_type == 0).nonzero().squeeze(1) + bbox_targets = bbox_targets.view(-1, 2) + losses['loss_reg'] = self.classwise_regression_loss( + bbox_pred, labels, bbox_targets, regression_indexer) + losses['loss_reg'] *= self.loss_weight.reg_loss_weight + + return losses diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/necks/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/necks/__init__.py new file mode 100644 index 00000000..4ffd3409 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/necks/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .tpn import TPN + +__all__ = ['TPN'] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/necks/tpn.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/necks/tpn.py new file mode 100644 index 00000000..5770ffa9 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/necks/tpn.py @@ -0,0 +1,449 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +import torch +import torch.nn as nn +from mmcv.cnn import ConvModule, constant_init, normal_init, xavier_init + +from ..builder import NECKS, build_loss + + +class Identity(nn.Module): + """Identity mapping.""" + + def forward(self, x): + return x + + +class DownSample(nn.Module): + """DownSample modules. + + It uses convolution and maxpooling to downsample the input feature, + and specifies downsample position to determine `pool-conv` or `conv-pool`. + + Args: + in_channels (int): Channel number of input features. + out_channels (int): Channel number of output feature. + kernel_size (int | tuple[int]): Same as :class:`ConvModule`. + Default: (3, 1, 1). + stride (int | tuple[int]): Same as :class:`ConvModule`. + Default: (1, 1, 1). + padding (int | tuple[int]): Same as :class:`ConvModule`. + Default: (1, 0, 0). + groups (int): Same as :class:`ConvModule`. Default: 1. + bias (bool | str): Same as :class:`ConvModule`. Default: False. + conv_cfg (dict | None): Same as :class:`ConvModule`. + Default: dict(type='Conv3d'). + norm_cfg (dict | None): Same as :class:`ConvModule`. Default: None. + act_cfg (dict | None): Same as :class:`ConvModule`. Default: None. + downsample_position (str): Type of downsample position. Options are + 'before' and 'after'. Default: 'after'. + downsample_scale (int | tuple[int]): downsample scale for maxpooling. + It will be used for kernel size and stride of maxpooling. + Default: (1, 2, 2). + """ + + def __init__(self, + in_channels, + out_channels, + kernel_size=(3, 1, 1), + stride=(1, 1, 1), + padding=(1, 0, 0), + groups=1, + bias=False, + conv_cfg=dict(type='Conv3d'), + norm_cfg=None, + act_cfg=None, + downsample_position='after', + downsample_scale=(1, 2, 2)): + super().__init__() + self.conv = ConvModule( + in_channels, + out_channels, + kernel_size, + stride, + padding, + groups=groups, + bias=bias, + conv_cfg=conv_cfg, + norm_cfg=norm_cfg, + act_cfg=act_cfg) + assert downsample_position in ['before', 'after'] + self.downsample_position = downsample_position + self.pool = nn.MaxPool3d( + downsample_scale, downsample_scale, (0, 0, 0), ceil_mode=True) + + def forward(self, x): + if self.downsample_position == 'before': + x = self.pool(x) + x = self.conv(x) + else: + x = self.conv(x) + x = self.pool(x) + return x + + +class LevelFusion(nn.Module): + """Level Fusion module. + + This module is used to aggregate the hierarchical features dynamic in + visual tempos and consistent in spatial semantics. The top/bottom features + for top-down/bottom-up flow would be combined to achieve two additional + options, namely 'Cascade Flow' or 'Parallel Flow'. While applying a + bottom-up flow after a top-down flow will lead to the cascade flow, + applying them simultaneously will result in the parallel flow. + + Args: + in_channels (tuple[int]): Channel numbers of input features tuple. + mid_channels (tuple[int]): Channel numbers of middle features tuple. + out_channels (int): Channel numbers of output features. + downsample_scales (tuple[int | tuple[int]]): downsample scales for + each :class:`DownSample` module. Default: ((1, 1, 1), (1, 1, 1)). + """ + + def __init__(self, + in_channels, + mid_channels, + out_channels, + downsample_scales=((1, 1, 1), (1, 1, 1))): + super().__init__() + num_stages = len(in_channels) + + self.downsamples = nn.ModuleList() + for i in range(num_stages): + downsample = DownSample( + in_channels[i], + mid_channels[i], + kernel_size=(1, 1, 1), + stride=(1, 1, 1), + bias=False, + padding=(0, 0, 0), + groups=32, + norm_cfg=dict(type='BN3d', requires_grad=True), + act_cfg=dict(type='ReLU', inplace=True), + downsample_position='before', + downsample_scale=downsample_scales[i]) + self.downsamples.append(downsample) + + self.fusion_conv = ConvModule( + sum(mid_channels), + out_channels, + 1, + stride=1, + padding=0, + bias=False, + conv_cfg=dict(type='Conv3d'), + norm_cfg=dict(type='BN3d', requires_grad=True), + act_cfg=dict(type='ReLU', inplace=True)) + + def forward(self, x): + out = [self.downsamples[i](feature) for i, feature in enumerate(x)] + out = torch.cat(out, 1) + out = self.fusion_conv(out) + + return out + + +class SpatialModulation(nn.Module): + """Spatial Semantic Modulation. + + This module is used to align spatial semantics of features in the + multi-depth pyramid. For each but the top-level feature, a stack + of convolutions with level-specific stride are applied to it, matching + its spatial shape and receptive field with the top one. + + Args: + in_channels (tuple[int]): Channel numbers of input features tuple. + out_channels (int): Channel numbers of output features tuple. + """ + + def __init__(self, in_channels, out_channels): + super().__init__() + + self.spatial_modulation = nn.ModuleList() + for channel in in_channels: + downsample_scale = out_channels // channel + downsample_factor = int(np.log2(downsample_scale)) + op = nn.ModuleList() + if downsample_factor < 1: + op = Identity() + else: + for factor in range(downsample_factor): + in_factor = 2**factor + out_factor = 2**(factor + 1) + op.append( + ConvModule( + channel * in_factor, + channel * out_factor, (1, 3, 3), + stride=(1, 2, 2), + padding=(0, 1, 1), + bias=False, + conv_cfg=dict(type='Conv3d'), + norm_cfg=dict(type='BN3d', requires_grad=True), + act_cfg=dict(type='ReLU', inplace=True))) + self.spatial_modulation.append(op) + + def forward(self, x): + out = [] + for i, _ in enumerate(x): + if isinstance(self.spatial_modulation[i], nn.ModuleList): + out_ = x[i] + for op in self.spatial_modulation[i]: + out_ = op(out_) + out.append(out_) + else: + out.append(self.spatial_modulation[i](x[i])) + return out + + +class AuxHead(nn.Module): + """Auxiliary Head. + + This auxiliary head is appended to receive stronger supervision, + leading to enhanced semantics. + + Args: + in_channels (int): Channel number of input features. + out_channels (int): Channel number of output features. + loss_weight (float): weight of loss for the auxiliary head. + Default: 0.5. + loss_cls (dict): loss_cls (dict): Config for building loss. + Default: ``dict(type='CrossEntropyLoss')``. + """ + + def __init__(self, + in_channels, + out_channels, + loss_weight=0.5, + loss_cls=dict(type='CrossEntropyLoss')): + super().__init__() + + self.conv = ConvModule( + in_channels, + in_channels * 2, (1, 3, 3), + stride=(1, 2, 2), + padding=(0, 1, 1), + bias=False, + conv_cfg=dict(type='Conv3d'), + norm_cfg=dict(type='BN3d', requires_grad=True)) + self.avg_pool = nn.AdaptiveAvgPool3d((1, 1, 1)) + self.loss_weight = loss_weight + self.dropout = nn.Dropout(p=0.5) + self.fc = nn.Linear(in_channels * 2, out_channels) + self.loss_cls = build_loss(loss_cls) + + def init_weights(self): + for m in self.modules(): + if isinstance(m, nn.Linear): + normal_init(m, std=0.01) + if isinstance(m, nn.Conv3d): + xavier_init(m, distribution='uniform') + if isinstance(m, nn.BatchNorm3d): + constant_init(m, 1) + + def forward(self, x, target=None): + losses = dict() + if target is None: + return losses + x = self.conv(x) + x = self.avg_pool(x).squeeze(-1).squeeze(-1).squeeze(-1) + x = self.dropout(x) + x = self.fc(x) + + if target.shape == torch.Size([]): + target = target.unsqueeze(0) + + losses['loss_aux'] = self.loss_weight * self.loss_cls(x, target) + return losses + + +class TemporalModulation(nn.Module): + """Temporal Rate Modulation. + + The module is used to equip TPN with a similar flexibility for temporal + tempo modulation as in the input-level frame pyramid. + + Args: + in_channels (int): Channel number of input features. + out_channels (int): Channel number of output features. + downsample_scale (int): Downsample scale for maxpooling. Default: 8. + """ + + def __init__(self, in_channels, out_channels, downsample_scale=8): + super().__init__() + + self.conv = ConvModule( + in_channels, + out_channels, (3, 1, 1), + stride=(1, 1, 1), + padding=(1, 0, 0), + bias=False, + groups=32, + conv_cfg=dict(type='Conv3d'), + act_cfg=None) + self.pool = nn.MaxPool3d((downsample_scale, 1, 1), + (downsample_scale, 1, 1), (0, 0, 0), + ceil_mode=True) + + def forward(self, x): + x = self.conv(x) + x = self.pool(x) + return x + + +@NECKS.register_module() +class TPN(nn.Module): + """TPN neck. + + This module is proposed in `Temporal Pyramid Network for Action Recognition + `_ + + Args: + in_channels (tuple[int]): Channel numbers of input features tuple. + out_channels (int): Channel number of output feature. + spatial_modulation_cfg (dict | None): Config for spatial modulation + layers. Required keys are `in_channels` and `out_channels`. + Default: None. + temporal_modulation_cfg (dict | None): Config for temporal modulation + layers. Default: None. + upsample_cfg (dict | None): Config for upsample layers. The keys are + same as that in :class:``nn.Upsample``. Default: None. + downsample_cfg (dict | None): Config for downsample layers. + Default: None. + level_fusion_cfg (dict | None): Config for level fusion layers. + Required keys are 'in_channels', 'mid_channels', 'out_channels'. + Default: None. + aux_head_cfg (dict | None): Config for aux head layers. + Required keys are 'out_channels'. Default: None. + flow_type (str): Flow type to combine the features. Options are + 'cascade' and 'parallel'. Default: 'cascade'. + """ + + def __init__(self, + in_channels, + out_channels, + spatial_modulation_cfg=None, + temporal_modulation_cfg=None, + upsample_cfg=None, + downsample_cfg=None, + level_fusion_cfg=None, + aux_head_cfg=None, + flow_type='cascade'): + super().__init__() + assert isinstance(in_channels, tuple) + assert isinstance(out_channels, int) + self.in_channels = in_channels + self.out_channels = out_channels + self.num_tpn_stages = len(in_channels) + + assert spatial_modulation_cfg is None or isinstance( + spatial_modulation_cfg, dict) + assert temporal_modulation_cfg is None or isinstance( + temporal_modulation_cfg, dict) + assert upsample_cfg is None or isinstance(upsample_cfg, dict) + assert downsample_cfg is None or isinstance(downsample_cfg, dict) + assert aux_head_cfg is None or isinstance(aux_head_cfg, dict) + assert level_fusion_cfg is None or isinstance(level_fusion_cfg, dict) + + if flow_type not in ['cascade', 'parallel']: + raise ValueError( + f"flow type in TPN should be 'cascade' or 'parallel', " + f'but got {flow_type} instead.') + self.flow_type = flow_type + + self.temporal_modulation_ops = nn.ModuleList() + self.upsample_ops = nn.ModuleList() + self.downsample_ops = nn.ModuleList() + + self.level_fusion_1 = LevelFusion(**level_fusion_cfg) + self.spatial_modulation = SpatialModulation(**spatial_modulation_cfg) + + for i in range(self.num_tpn_stages): + + if temporal_modulation_cfg is not None: + downsample_scale = temporal_modulation_cfg[ + 'downsample_scales'][i] + temporal_modulation = TemporalModulation( + in_channels[-1], out_channels, downsample_scale) + self.temporal_modulation_ops.append(temporal_modulation) + + if i < self.num_tpn_stages - 1: + if upsample_cfg is not None: + upsample = nn.Upsample(**upsample_cfg) + self.upsample_ops.append(upsample) + + if downsample_cfg is not None: + downsample = DownSample(out_channels, out_channels, + **downsample_cfg) + self.downsample_ops.append(downsample) + + out_dims = level_fusion_cfg['out_channels'] + + # two pyramids + self.level_fusion_2 = LevelFusion(**level_fusion_cfg) + + self.pyramid_fusion = ConvModule( + out_dims * 2, + 2048, + 1, + stride=1, + padding=0, + bias=False, + conv_cfg=dict(type='Conv3d'), + norm_cfg=dict(type='BN3d', requires_grad=True)) + + if aux_head_cfg is not None: + self.aux_head = AuxHead(self.in_channels[-2], **aux_head_cfg) + else: + self.aux_head = None + self.init_weights() + + # default init_weights for conv(msra) and norm in ConvModule + def init_weights(self): + for m in self.modules(): + if isinstance(m, nn.Conv3d): + xavier_init(m, distribution='uniform') + if isinstance(m, nn.BatchNorm3d): + constant_init(m, 1) + + if self.aux_head is not None: + self.aux_head.init_weights() + + def forward(self, x, target=None): + loss_aux = dict() + + # Auxiliary loss + if self.aux_head is not None: + loss_aux = self.aux_head(x[-2], target) + + # Spatial Modulation + spatial_modulation_outs = self.spatial_modulation(x) + + # Temporal Modulation + temporal_modulation_outs = [] + for i, temporal_modulation in enumerate(self.temporal_modulation_ops): + temporal_modulation_outs.append( + temporal_modulation(spatial_modulation_outs[i])) + + outs = [out.clone() for out in temporal_modulation_outs] + if len(self.upsample_ops) != 0: + for i in range(self.num_tpn_stages - 1, 0, -1): + outs[i - 1] = outs[i - 1] + self.upsample_ops[i - 1](outs[i]) + + # Get top-down outs + top_down_outs = self.level_fusion_1(outs) + + # Build bottom-up flow using downsample operation + if self.flow_type == 'parallel': + outs = [out.clone() for out in temporal_modulation_outs] + if len(self.downsample_ops) != 0: + for i in range(self.num_tpn_stages - 1): + outs[i + 1] = outs[i + 1] + self.downsample_ops[i](outs[i]) + + # Get bottom-up outs + botton_up_outs = self.level_fusion_2(outs) + + # fuse two pyramid outs + outs = self.pyramid_fusion( + torch.cat([top_down_outs, botton_up_outs], 1)) + + return outs, loss_aux diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/__init__.py new file mode 100644 index 00000000..47c06f87 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/__init__.py @@ -0,0 +1,7 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .audio_recognizer import AudioRecognizer +from .base import BaseRecognizer +from .recognizer2d import Recognizer2D +from .recognizer3d import Recognizer3D + +__all__ = ['BaseRecognizer', 'Recognizer2D', 'Recognizer3D', 'AudioRecognizer'] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/audio_recognizer.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/audio_recognizer.py new file mode 100644 index 00000000..6d5c8282 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/audio_recognizer.py @@ -0,0 +1,102 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from ..builder import RECOGNIZERS +from .base import BaseRecognizer + + +@RECOGNIZERS.register_module() +class AudioRecognizer(BaseRecognizer): + """Audio recognizer model framework.""" + + def forward(self, audios, label=None, return_loss=True): + """Define the computation performed at every call.""" + if return_loss: + if label is None: + raise ValueError('Label should not be None.') + return self.forward_train(audios, label) + + return self.forward_test(audios) + + def forward_train(self, audios, labels): + """Defines the computation performed at every call when training.""" + audios = audios.reshape((-1, ) + audios.shape[2:]) + x = self.extract_feat(audios) + cls_score = self.cls_head(x) + gt_labels = labels.squeeze() + loss = self.cls_head.loss(cls_score, gt_labels) + + return loss + + def forward_test(self, audios): + """Defines the computation performed at every call when evaluation and + testing.""" + num_segs = audios.shape[1] + audios = audios.reshape((-1, ) + audios.shape[2:]) + x = self.extract_feat(audios) + cls_score = self.cls_head(x) + cls_score = self.average_clip(cls_score, num_segs) + + return cls_score.cpu().numpy() + + def forward_gradcam(self, audios): + raise NotImplementedError + + def train_step(self, data_batch, optimizer, **kwargs): + """The iteration step during training. + + This method defines an iteration step during training, except for the + back propagation and optimizer updating, which are done in an optimizer + hook. Note that in some complicated cases or models, the whole process + including back propagation and optimizer updating is also defined in + this method, such as GAN. + + Args: + data_batch (dict): The output of dataloader. + optimizer (:obj:`torch.optim.Optimizer` | dict): The optimizer of + runner is passed to ``train_step()``. This argument is unused + and reserved. + + Returns: + dict: It should contain at least 3 keys: ``loss``, ``log_vars``, + ``num_samples``. + ``loss`` is a tensor for back propagation, which can be a + weighted sum of multiple losses. + ``log_vars`` contains all the variables to be sent to the + logger. + ``num_samples`` indicates the batch size (when the model is + DDP, it means the batch size on each GPU), which is used for + averaging the logs. + """ + audios = data_batch['audios'] + label = data_batch['label'] + + losses = self(audios, label) + + loss, log_vars = self._parse_losses(losses) + + outputs = dict( + loss=loss, + log_vars=log_vars, + num_samples=len(next(iter(data_batch.values())))) + + return outputs + + def val_step(self, data_batch, optimizer, **kwargs): + """The iteration step during validation. + + This method shares the same signature as :func:`train_step`, but used + during val epochs. Note that the evaluation after training epochs is + not implemented with this method, but an evaluation hook. + """ + audios = data_batch['audios'] + label = data_batch['label'] + + losses = self(audios, label) + + loss, log_vars = self._parse_losses(losses) + + outputs = dict( + loss=loss, + log_vars=log_vars, + num_samples=len(next(iter(data_batch.values())))) + + return outputs diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/base.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/base.py new file mode 100644 index 00000000..a06ec104 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/base.py @@ -0,0 +1,335 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import warnings +from abc import ABCMeta, abstractmethod +from collections import OrderedDict + +import torch +import torch.distributed as dist +import torch.nn as nn +import torch.nn.functional as F +from mmcv.runner import auto_fp16 + +from .. import builder + + +class BaseRecognizer(nn.Module, metaclass=ABCMeta): + """Base class for recognizers. + + All recognizers should subclass it. + All subclass should overwrite: + + - Methods:``forward_train``, supporting to forward when training. + - Methods:``forward_test``, supporting to forward when testing. + + Args: + backbone (dict): Backbone modules to extract feature. + cls_head (dict | None): Classification head to process feature. + Default: None. + neck (dict | None): Neck for feature fusion. Default: None. + train_cfg (dict | None): Config for training. Default: None. + test_cfg (dict | None): Config for testing. Default: None. + """ + + def __init__(self, + backbone, + cls_head=None, + neck=None, + train_cfg=None, + test_cfg=None): + super().__init__() + # record the source of the backbone + self.backbone_from = 'mmaction2' + + if backbone['type'].startswith('mmcls.'): + try: + import mmcls.models.builder as mmcls_builder + except (ImportError, ModuleNotFoundError): + raise ImportError('Please install mmcls to use this backbone.') + backbone['type'] = backbone['type'][6:] + self.backbone = mmcls_builder.build_backbone(backbone) + self.backbone_from = 'mmcls' + elif backbone['type'].startswith('torchvision.'): + try: + import torchvision.models + except (ImportError, ModuleNotFoundError): + raise ImportError('Please install torchvision to use this ' + 'backbone.') + backbone_type = backbone.pop('type')[12:] + self.backbone = torchvision.models.__dict__[backbone_type]( + **backbone) + # disable the classifier + self.backbone.classifier = nn.Identity() + self.backbone.fc = nn.Identity() + self.backbone_from = 'torchvision' + elif backbone['type'].startswith('timm.'): + try: + import timm + except (ImportError, ModuleNotFoundError): + raise ImportError('Please install timm to use this ' + 'backbone.') + backbone_type = backbone.pop('type')[5:] + # disable the classifier + backbone['num_classes'] = 0 + self.backbone = timm.create_model(backbone_type, **backbone) + self.backbone_from = 'timm' + else: + self.backbone = builder.build_backbone(backbone) + + if neck is not None: + self.neck = builder.build_neck(neck) + + self.cls_head = builder.build_head(cls_head) if cls_head else None + + self.train_cfg = train_cfg + self.test_cfg = test_cfg + + # aux_info is the list of tensor names beyond 'imgs' and 'label' which + # will be used in train_step and val_step, data_batch should contain + # these tensors + self.aux_info = [] + if train_cfg is not None and 'aux_info' in train_cfg: + self.aux_info = train_cfg['aux_info'] + # max_testing_views should be int + self.max_testing_views = None + if test_cfg is not None and 'max_testing_views' in test_cfg: + self.max_testing_views = test_cfg['max_testing_views'] + assert isinstance(self.max_testing_views, int) + + if test_cfg is not None and 'feature_extraction' in test_cfg: + self.feature_extraction = test_cfg['feature_extraction'] + else: + self.feature_extraction = False + + # mini-batch blending, e.g. mixup, cutmix, etc. + self.blending = None + if train_cfg is not None and 'blending' in train_cfg: + from mmcv.utils import build_from_cfg + + from mmaction.datasets.builder import BLENDINGS + self.blending = build_from_cfg(train_cfg['blending'], BLENDINGS) + + self.init_weights() + + self.fp16_enabled = False + + @property + def with_neck(self): + """bool: whether the recognizer has a neck""" + return hasattr(self, 'neck') and self.neck is not None + + @property + def with_cls_head(self): + """bool: whether the recognizer has a cls_head""" + return hasattr(self, 'cls_head') and self.cls_head is not None + + def init_weights(self): + """Initialize the model network weights.""" + if self.backbone_from in ['mmcls', 'mmaction2']: + self.backbone.init_weights() + elif self.backbone_from in ['torchvision', 'timm']: + warnings.warn('We do not initialize weights for backbones in ' + f'{self.backbone_from}, since the weights for ' + f'backbones in {self.backbone_from} are initialized' + 'in their __init__ functions.') + else: + raise NotImplementedError('Unsupported backbone source ' + f'{self.backbone_from}!') + + if self.with_cls_head: + self.cls_head.init_weights() + if self.with_neck: + self.neck.init_weights() + + @auto_fp16() + def extract_feat(self, imgs): + """Extract features through a backbone. + + Args: + imgs (torch.Tensor): The input images. + + Returns: + torch.tensor: The extracted features. + """ + if (hasattr(self.backbone, 'features') + and self.backbone_from == 'torchvision'): + x = self.backbone.features(imgs) + elif self.backbone_from == 'timm': + x = self.backbone.forward_features(imgs) + elif self.backbone_from == 'mmcls': + x = self.backbone(imgs) + if isinstance(x, tuple): + assert len(x) == 1 + x = x[0] + else: + x = self.backbone(imgs) + return x + + def average_clip(self, cls_score, num_segs=1): + """Averaging class score over multiple clips. + + Using different averaging types ('score' or 'prob' or None, + which defined in test_cfg) to computed the final averaged + class score. Only called in test mode. + + Args: + cls_score (torch.Tensor): Class score to be averaged. + num_segs (int): Number of clips for each input sample. + + Returns: + torch.Tensor: Averaged class score. + """ + if 'average_clips' not in self.test_cfg.keys(): + raise KeyError('"average_clips" must defined in test_cfg\'s keys') + + average_clips = self.test_cfg['average_clips'] + if average_clips not in ['score', 'prob', None]: + raise ValueError(f'{average_clips} is not supported. ' + f'Currently supported ones are ' + f'["score", "prob", None]') + + if average_clips is None: + return cls_score + + batch_size = cls_score.shape[0] + cls_score = cls_score.view(batch_size // num_segs, num_segs, -1) + + if average_clips == 'prob': + cls_score = F.softmax(cls_score, dim=2).mean(dim=1) + elif average_clips == 'score': + cls_score = cls_score.mean(dim=1) + + return cls_score + + @abstractmethod + def forward_train(self, imgs, labels, **kwargs): + """Defines the computation performed at every call when training.""" + + @abstractmethod + def forward_test(self, imgs): + """Defines the computation performed at every call when evaluation and + testing.""" + + @abstractmethod + def forward_gradcam(self, imgs): + """Defines the computation performed at every all when using gradcam + utils.""" + + @staticmethod + def _parse_losses(losses): + """Parse the raw outputs (losses) of the network. + + Args: + losses (dict): Raw output of the network, which usually contain + losses and other necessary information. + + Returns: + tuple[Tensor, dict]: (loss, log_vars), loss is the loss tensor + which may be a weighted sum of all losses, log_vars contains + all the variables to be sent to the logger. + """ + log_vars = OrderedDict() + for loss_name, loss_value in losses.items(): + if isinstance(loss_value, torch.Tensor): + log_vars[loss_name] = loss_value.mean() + elif isinstance(loss_value, list): + log_vars[loss_name] = sum(_loss.mean() for _loss in loss_value) + else: + raise TypeError( + f'{loss_name} is not a tensor or list of tensors') + + loss = sum(_value for _key, _value in log_vars.items() + if 'loss' in _key) + + log_vars['loss'] = loss + for loss_name, loss_value in log_vars.items(): + # reduce loss when distributed training + if dist.is_available() and dist.is_initialized(): + loss_value = loss_value.data.clone() + dist.all_reduce(loss_value.div_(dist.get_world_size())) + log_vars[loss_name] = loss_value.item() + + return loss, log_vars + + def forward(self, imgs, label=None, return_loss=True, **kwargs): + """Define the computation performed at every call.""" + if kwargs.get('gradcam', False): + del kwargs['gradcam'] + return self.forward_gradcam(imgs, **kwargs) + if return_loss: + if label is None: + raise ValueError('Label should not be None.') + if self.blending is not None: + imgs, label = self.blending(imgs, label) + return self.forward_train(imgs, label, **kwargs) + + return self.forward_test(imgs, **kwargs) + + def train_step(self, data_batch, optimizer, **kwargs): + """The iteration step during training. + + This method defines an iteration step during training, except for the + back propagation and optimizer updating, which are done in an optimizer + hook. Note that in some complicated cases or models, the whole process + including back propagation and optimizer updating is also defined in + this method, such as GAN. + + Args: + data_batch (dict): The output of dataloader. + optimizer (:obj:`torch.optim.Optimizer` | dict): The optimizer of + runner is passed to ``train_step()``. This argument is unused + and reserved. + + Returns: + dict: It should contain at least 3 keys: ``loss``, ``log_vars``, + ``num_samples``. + ``loss`` is a tensor for back propagation, which can be a + weighted sum of multiple losses. + ``log_vars`` contains all the variables to be sent to the + logger. + ``num_samples`` indicates the batch size (when the model is + DDP, it means the batch size on each GPU), which is used for + averaging the logs. + """ + imgs = data_batch['imgs'] + label = data_batch['label'] + + aux_info = {} + for item in self.aux_info: + assert item in data_batch + aux_info[item] = data_batch[item] + + losses = self(imgs, label, return_loss=True, **aux_info) + + loss, log_vars = self._parse_losses(losses) + + outputs = dict( + loss=loss, + log_vars=log_vars, + num_samples=len(next(iter(data_batch.values())))) + + return outputs + + def val_step(self, data_batch, optimizer, **kwargs): + """The iteration step during validation. + + This method shares the same signature as :func:`train_step`, but used + during val epochs. Note that the evaluation after training epochs is + not implemented with this method, but an evaluation hook. + """ + imgs = data_batch['imgs'] + label = data_batch['label'] + + aux_info = {} + for item in self.aux_info: + aux_info[item] = data_batch[item] + + losses = self(imgs, label, return_loss=True, **aux_info) + + loss, log_vars = self._parse_losses(losses) + + outputs = dict( + loss=loss, + log_vars=log_vars, + num_samples=len(next(iter(data_batch.values())))) + + return outputs diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/recognizer2d.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/recognizer2d.py new file mode 100644 index 00000000..a1acc091 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/recognizer2d.py @@ -0,0 +1,186 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +from torch import nn + +from ..builder import RECOGNIZERS +from .base import BaseRecognizer + + +@RECOGNIZERS.register_module() +class Recognizer2D(BaseRecognizer): + """2D recognizer model framework.""" + + def forward_train(self, imgs, labels, **kwargs): + """Defines the computation performed at every call when training.""" + + assert self.with_cls_head + batches = imgs.shape[0] + imgs = imgs.reshape((-1, ) + imgs.shape[2:]) + num_segs = imgs.shape[0] // batches + + losses = dict() + + x = self.extract_feat(imgs) + + if self.backbone_from in ['torchvision', 'timm']: + if len(x.shape) == 4 and (x.shape[2] > 1 or x.shape[3] > 1): + # apply adaptive avg pooling + x = nn.AdaptiveAvgPool2d(1)(x) + x = x.reshape((x.shape[0], -1)) + x = x.reshape(x.shape + (1, 1)) + + if self.with_neck: + x = [ + each.reshape((-1, num_segs) + + each.shape[1:]).transpose(1, 2).contiguous() + for each in x + ] + x, loss_aux = self.neck(x, labels.squeeze()) + x = x.squeeze(2) + num_segs = 1 + losses.update(loss_aux) + + cls_score = self.cls_head(x, num_segs) + gt_labels = labels.squeeze() + loss_cls = self.cls_head.loss(cls_score, gt_labels, **kwargs) + losses.update(loss_cls) + + return losses + + def _do_test(self, imgs): + """Defines the computation performed at every call when evaluation, + testing and gradcam.""" + batches = imgs.shape[0] + imgs = imgs.reshape((-1, ) + imgs.shape[2:]) + num_segs = imgs.shape[0] // batches + + x = self.extract_feat(imgs) + + if self.backbone_from in ['torchvision', 'timm']: + if len(x.shape) == 4 and (x.shape[2] > 1 or x.shape[3] > 1): + # apply adaptive avg pooling + x = nn.AdaptiveAvgPool2d(1)(x) + x = x.reshape((x.shape[0], -1)) + x = x.reshape(x.shape + (1, 1)) + + if self.with_neck: + x = [ + each.reshape((-1, num_segs) + + each.shape[1:]).transpose(1, 2).contiguous() + for each in x + ] + x, _ = self.neck(x) + x = x.squeeze(2) + num_segs = 1 + + if self.feature_extraction: + # perform spatial pooling + avg_pool = nn.AdaptiveAvgPool2d(1) + x = avg_pool(x) + # squeeze dimensions + x = x.reshape((batches, num_segs, -1)) + # temporal average pooling + x = x.mean(axis=1) + return x + + # When using `TSNHead` or `TPNHead`, shape is [batch_size, num_classes] + # When using `TSMHead`, shape is [batch_size * num_crops, num_classes] + # `num_crops` is calculated by: + # 1) `twice_sample` in `SampleFrames` + # 2) `num_sample_positions` in `DenseSampleFrames` + # 3) `ThreeCrop/TenCrop` in `test_pipeline` + # 4) `num_clips` in `SampleFrames` or its subclass if `clip_len != 1` + + # should have cls_head if not extracting features + cls_score = self.cls_head(x, num_segs) + + assert cls_score.size()[0] % batches == 0 + # calculate num_crops automatically + cls_score = self.average_clip(cls_score, + cls_score.size()[0] // batches) + return cls_score + + def _do_fcn_test(self, imgs): + # [N, num_crops * num_segs, C, H, W] -> + # [N * num_crops * num_segs, C, H, W] + batches = imgs.shape[0] + imgs = imgs.reshape((-1, ) + imgs.shape[2:]) + num_segs = self.test_cfg.get('num_segs', self.backbone.num_segments) + + if self.test_cfg.get('flip', False): + imgs = torch.flip(imgs, [-1]) + x = self.extract_feat(imgs) + + if self.with_neck: + x = [ + each.reshape((-1, num_segs) + + each.shape[1:]).transpose(1, 2).contiguous() + for each in x + ] + x, _ = self.neck(x) + else: + x = x.reshape((-1, num_segs) + + x.shape[1:]).transpose(1, 2).contiguous() + + # When using `TSNHead` or `TPNHead`, shape is [batch_size, num_classes] + # When using `TSMHead`, shape is [batch_size * num_crops, num_classes] + # `num_crops` is calculated by: + # 1) `twice_sample` in `SampleFrames` + # 2) `num_sample_positions` in `DenseSampleFrames` + # 3) `ThreeCrop/TenCrop` in `test_pipeline` + # 4) `num_clips` in `SampleFrames` or its subclass if `clip_len != 1` + cls_score = self.cls_head(x, fcn_test=True) + + assert cls_score.size()[0] % batches == 0 + # calculate num_crops automatically + cls_score = self.average_clip(cls_score, + cls_score.size()[0] // batches) + return cls_score + + def forward_test(self, imgs): + """Defines the computation performed at every call when evaluation and + testing.""" + if self.test_cfg.get('fcn_test', False): + # If specified, spatially fully-convolutional testing is performed + assert not self.feature_extraction + assert self.with_cls_head + return self._do_fcn_test(imgs).cpu().numpy() + return self._do_test(imgs).cpu().numpy() + + def forward_dummy(self, imgs, softmax=False): + """Used for computing network FLOPs. + + See ``tools/analysis/get_flops.py``. + + Args: + imgs (torch.Tensor): Input images. + + Returns: + Tensor: Class score. + """ + assert self.with_cls_head + batches = imgs.shape[0] + imgs = imgs.reshape((-1, ) + imgs.shape[2:]) + num_segs = imgs.shape[0] // batches + + x = self.extract_feat(imgs) + if self.with_neck: + x = [ + each.reshape((-1, num_segs) + + each.shape[1:]).transpose(1, 2).contiguous() + for each in x + ] + x, _ = self.neck(x) + x = x.squeeze(2) + num_segs = 1 + + outs = self.cls_head(x, num_segs) + if softmax: + outs = nn.functional.softmax(outs) + return (outs, ) + + def forward_gradcam(self, imgs): + """Defines the computation performed at every call when using gradcam + utils.""" + assert self.with_cls_head + return self._do_test(imgs) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/recognizer3d.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/recognizer3d.py new file mode 100644 index 00000000..8133e7c1 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/recognizers/recognizer3d.py @@ -0,0 +1,128 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +from torch import nn + +from ..builder import RECOGNIZERS +from .base import BaseRecognizer + + +@RECOGNIZERS.register_module() +class Recognizer3D(BaseRecognizer): + """3D recognizer model framework.""" + + def forward_train(self, imgs, labels, **kwargs): + """Defines the computation performed at every call when training.""" + + assert self.with_cls_head + imgs = imgs.reshape((-1, ) + imgs.shape[2:]) + losses = dict() + + x = self.extract_feat(imgs) + if self.with_neck: + x, loss_aux = self.neck(x, labels.squeeze()) + losses.update(loss_aux) + + cls_score = self.cls_head(x) + gt_labels = labels.squeeze() + loss_cls = self.cls_head.loss(cls_score, gt_labels, **kwargs) + losses.update(loss_cls) + + return losses + + def _do_test(self, imgs): + """Defines the computation performed at every call when evaluation, + testing and gradcam.""" + batches = imgs.shape[0] + num_segs = imgs.shape[1] + imgs = imgs.reshape((-1, ) + imgs.shape[2:]) + + if self.max_testing_views is not None: + total_views = imgs.shape[0] + assert num_segs == total_views, ( + 'max_testing_views is only compatible ' + 'with batch_size == 1') + view_ptr = 0 + feats = [] + while view_ptr < total_views: + batch_imgs = imgs[view_ptr:view_ptr + self.max_testing_views] + x = self.extract_feat(batch_imgs) + if self.with_neck: + x, _ = self.neck(x) + feats.append(x) + view_ptr += self.max_testing_views + # should consider the case that feat is a tuple + if isinstance(feats[0], tuple): + len_tuple = len(feats[0]) + feat = [ + torch.cat([x[i] for x in feats]) for i in range(len_tuple) + ] + feat = tuple(feat) + else: + feat = torch.cat(feats) + else: + feat = self.extract_feat(imgs) + if self.with_neck: + feat, _ = self.neck(feat) + + if self.feature_extraction: + feat_dim = len(feat[0].size()) if isinstance(feat, tuple) else len( + feat.size()) + assert feat_dim in [ + 5, 2 + ], ('Got feature of unknown architecture, ' + 'only 3D-CNN-like ([N, in_channels, T, H, W]), and ' + 'transformer-like ([N, in_channels]) features are supported.') + if feat_dim == 5: # 3D-CNN architecture + # perform spatio-temporal pooling + avg_pool = nn.AdaptiveAvgPool3d(1) + if isinstance(feat, tuple): + feat = [avg_pool(x) for x in feat] + # concat them + feat = torch.cat(feat, axis=1) + else: + feat = avg_pool(feat) + # squeeze dimensions + feat = feat.reshape((batches, num_segs, -1)) + # temporal average pooling + feat = feat.mean(axis=1) + return feat + + # should have cls_head if not extracting features + assert self.with_cls_head + cls_score = self.cls_head(feat) + cls_score = self.average_clip(cls_score, num_segs) + return cls_score + + def forward_test(self, imgs): + """Defines the computation performed at every call when evaluation and + testing.""" + return self._do_test(imgs).cpu().numpy() + + def forward_dummy(self, imgs, softmax=False): + """Used for computing network FLOPs. + + See ``tools/analysis/get_flops.py``. + + Args: + imgs (torch.Tensor): Input images. + + Returns: + Tensor: Class score. + """ + assert self.with_cls_head + imgs = imgs.reshape((-1, ) + imgs.shape[2:]) + x = self.extract_feat(imgs) + + if self.with_neck: + x, _ = self.neck(x) + + outs = self.cls_head(x) + if softmax: + outs = nn.functional.softmax(outs) + return (outs, ) + + def forward_gradcam(self, imgs): + """Defines the computation performed at every call when using gradcam + utils.""" + assert self.with_cls_head + return self._do_test(imgs) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/roi_extractors/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/roi_extractors/__init__.py new file mode 100644 index 00000000..62d68141 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/roi_extractors/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .single_straight3d import SingleRoIExtractor3D + +__all__ = ['SingleRoIExtractor3D'] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/roi_extractors/single_straight3d.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/roi_extractors/single_straight3d.py new file mode 100644 index 00000000..fb0c1542 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/roi_extractors/single_straight3d.py @@ -0,0 +1,121 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn as nn +import torch.nn.functional as F + +try: + from mmdet.models import ROI_EXTRACTORS + mmdet_imported = True +except (ImportError, ModuleNotFoundError): + mmdet_imported = False + + +class SingleRoIExtractor3D(nn.Module): + """Extract RoI features from a single level feature map. + + Args: + roi_layer_type (str): Specify the RoI layer type. Default: 'RoIAlign'. + featmap_stride (int): Strides of input feature maps. Default: 16. + output_size (int | tuple): Size or (Height, Width). Default: 16. + sampling_ratio (int): number of inputs samples to take for each + output sample. 0 to take samples densely for current models. + Default: 0. + pool_mode (str, 'avg' or 'max'): pooling mode in each bin. + Default: 'avg'. + aligned (bool): if False, use the legacy implementation in + MMDetection. If True, align the results more perfectly. + Default: True. + with_temporal_pool (bool): if True, avgpool the temporal dim. + Default: True. + with_global (bool): if True, concatenate the RoI feature with global + feature. Default: False. + + Note that sampling_ratio, pool_mode, aligned only apply when roi_layer_type + is set as RoIAlign. + """ + + def __init__(self, + roi_layer_type='RoIAlign', + featmap_stride=16, + output_size=16, + sampling_ratio=0, + pool_mode='avg', + aligned=True, + with_temporal_pool=True, + temporal_pool_mode='avg', + with_global=False): + super().__init__() + self.roi_layer_type = roi_layer_type + assert self.roi_layer_type in ['RoIPool', 'RoIAlign'] + self.featmap_stride = featmap_stride + self.spatial_scale = 1. / self.featmap_stride + + self.output_size = output_size + self.sampling_ratio = sampling_ratio + self.pool_mode = pool_mode + self.aligned = aligned + + self.with_temporal_pool = with_temporal_pool + self.temporal_pool_mode = temporal_pool_mode + + self.with_global = with_global + + try: + from mmcv.ops import RoIAlign, RoIPool + except (ImportError, ModuleNotFoundError): + raise ImportError('Failed to import `RoIAlign` and `RoIPool` from ' + '`mmcv.ops`. The two modules will be used in ' + '`SingleRoIExtractor3D`! ') + + if self.roi_layer_type == 'RoIPool': + self.roi_layer = RoIPool(self.output_size, self.spatial_scale) + else: + self.roi_layer = RoIAlign( + self.output_size, + self.spatial_scale, + sampling_ratio=self.sampling_ratio, + pool_mode=self.pool_mode, + aligned=self.aligned) + self.global_pool = nn.AdaptiveAvgPool2d(self.output_size) + + def init_weights(self): + pass + + # The shape of feat is N, C, T, H, W + def forward(self, feat, rois): + if not isinstance(feat, tuple): + feat = (feat, ) + + if len(feat) >= 2: + maxT = max([x.shape[2] for x in feat]) + max_shape = (maxT, ) + feat[0].shape[3:] + # resize each feat to the largest shape (w. nearest) + feat = [F.interpolate(x, max_shape).contiguous() for x in feat] + + if self.with_temporal_pool: + if self.temporal_pool_mode == 'avg': + feat = [torch.mean(x, 2, keepdim=True) for x in feat] + elif self.temporal_pool_mode == 'max': + feat = [torch.max(x, 2, keepdim=True)[0] for x in feat] + else: + raise NotImplementedError + + feat = torch.cat(feat, axis=1).contiguous() + + roi_feats = [] + for t in range(feat.size(2)): + frame_feat = feat[:, :, t].contiguous() + roi_feat = self.roi_layer(frame_feat, rois) + if self.with_global: + global_feat = self.global_pool(frame_feat.contiguous()) + inds = rois[:, 0].type(torch.int64) + global_feat = global_feat[inds] + roi_feat = torch.cat([roi_feat, global_feat], dim=1) + roi_feat = roi_feat.contiguous() + roi_feats.append(roi_feat) + + return torch.stack(roi_feats, dim=2), feat + + +if mmdet_imported: + ROI_EXTRACTORS.register_module()(SingleRoIExtractor3D) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/__init__.py new file mode 100644 index 00000000..914fd3ec --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .base import BaseGCN +from .skeletongcn import SkeletonGCN + +__all__ = ['BaseGCN', 'SkeletonGCN'] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/base.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/base.py new file mode 100644 index 00000000..656266a4 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/base.py @@ -0,0 +1,176 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from abc import ABCMeta, abstractmethod +from collections import OrderedDict + +import torch +import torch.distributed as dist +import torch.nn as nn + +from .. import builder + + +class BaseGCN(nn.Module, metaclass=ABCMeta): + """Base class for GCN-based action recognition. + + All GCN-based recognizers should subclass it. + All subclass should overwrite: + + - Methods:``forward_train``, supporting to forward when training. + - Methods:``forward_test``, supporting to forward when testing. + + Args: + backbone (dict): Backbone modules to extract feature. + cls_head (dict | None): Classification head to process feature. + Default: None. + train_cfg (dict | None): Config for training. Default: None. + test_cfg (dict | None): Config for testing. Default: None. + """ + + def __init__(self, backbone, cls_head=None, train_cfg=None, test_cfg=None): + super().__init__() + # record the source of the backbone + self.backbone_from = 'mmaction2' + self.backbone = builder.build_backbone(backbone) + self.cls_head = builder.build_head(cls_head) if cls_head else None + + self.train_cfg = train_cfg + self.test_cfg = test_cfg + + self.init_weights() + + @property + def with_cls_head(self): + """bool: whether the recognizer has a cls_head""" + return hasattr(self, 'cls_head') and self.cls_head is not None + + def init_weights(self): + """Initialize the model network weights.""" + if self.backbone_from in ['mmcls', 'mmaction2']: + self.backbone.init_weights() + else: + raise NotImplementedError('Unsupported backbone source ' + f'{self.backbone_from}!') + + if self.with_cls_head: + self.cls_head.init_weights() + + @abstractmethod + def forward_train(self, *args, **kwargs): + """Defines the computation performed at training.""" + + @abstractmethod + def forward_test(self, *args): + """Defines the computation performed at testing.""" + + @staticmethod + def _parse_losses(losses): + """Parse the raw outputs (losses) of the network. + + Args: + losses (dict): Raw output of the network, which usually contain + losses and other necessary information. + + Returns: + tuple[Tensor, dict]: (loss, log_vars), loss is the loss tensor + which may be a weighted sum of all losses, log_vars contains + all the variables to be sent to the logger. + """ + log_vars = OrderedDict() + for loss_name, loss_value in losses.items(): + if isinstance(loss_value, torch.Tensor): + log_vars[loss_name] = loss_value.mean() + elif isinstance(loss_value, list): + log_vars[loss_name] = sum(_loss.mean() for _loss in loss_value) + else: + raise TypeError( + f'{loss_name} is not a tensor or list of tensors') + + loss = sum(_value for _key, _value in log_vars.items() + if 'loss' in _key) + + log_vars['loss'] = loss + for loss_name, loss_value in log_vars.items(): + # reduce loss when distributed training + if dist.is_available() and dist.is_initialized(): + loss_value = loss_value.data.clone() + dist.all_reduce(loss_value.div_(dist.get_world_size())) + log_vars[loss_name] = loss_value.item() + + return loss, log_vars + + def forward(self, keypoint, label=None, return_loss=True, **kwargs): + """Define the computation performed at every call.""" + if return_loss: + if label is None: + raise ValueError('Label should not be None.') + return self.forward_train(keypoint, label, **kwargs) + + return self.forward_test(keypoint, **kwargs) + + def extract_feat(self, skeletons): + """Extract features through a backbone. + + Args: + skeletons (torch.Tensor): The input skeletons. + + Returns: + torch.tensor: The extracted features. + """ + x = self.backbone(skeletons) + return x + + def train_step(self, data_batch, optimizer, **kwargs): + """The iteration step during training. + + This method defines an iteration step during training, except for the + back propagation and optimizer updating, which are done in an optimizer + hook. Note that in some complicated cases or models, the whole process + including back propagation and optimizer updating is also defined in + this method, such as GAN. + + Args: + data_batch (dict): The output of dataloader. + optimizer (:obj:`torch.optim.Optimizer` | dict): The optimizer of + runner is passed to ``train_step()``. This argument is unused + and reserved. + + Returns: + dict: It should contain at least 3 keys: ``loss``, ``log_vars``, + ``num_samples``. + ``loss`` is a tensor for back propagation, which can be a + weighted sum of multiple losses. + ``log_vars`` contains all the variables to be sent to the + logger. + ``num_samples`` indicates the batch size (when the model is + DDP, it means the batch size on each GPU), which is used for + averaging the logs. + """ + skeletons = data_batch['keypoint'] + label = data_batch['label'] + label = label.squeeze(-1) + + losses = self(skeletons, label, return_loss=True) + + loss, log_vars = self._parse_losses(losses) + outputs = dict( + loss=loss, log_vars=log_vars, num_samples=len(skeletons.data)) + + return outputs + + def val_step(self, data_batch, optimizer, **kwargs): + """The iteration step during validation. + + This method shares the same signature as :func:`train_step`, but used + during val epochs. Note that the evaluation after training epochs is + not implemented with this method, but an evaluation hook. + """ + skeletons = data_batch['keypoint'] + label = data_batch['label'] + + losses = self(skeletons, label, return_loss=True) + + loss, log_vars = self._parse_losses(losses) + outputs = dict( + loss=loss, log_vars=log_vars, num_samples=len(skeletons.data)) + + return outputs diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/skeletongcn.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/skeletongcn.py new file mode 100644 index 00000000..0576ee20 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/skeletongcn.py @@ -0,0 +1,30 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from ..builder import RECOGNIZERS +from .base import BaseGCN + + +@RECOGNIZERS.register_module() +class SkeletonGCN(BaseGCN): + """Spatial temporal graph convolutional networks.""" + + def forward_train(self, skeletons, labels, **kwargs): + """Defines the computation performed at every call when training.""" + assert self.with_cls_head + losses = dict() + + x = self.extract_feat(skeletons) + output = self.cls_head(x) + gt_labels = labels.squeeze(-1) + loss = self.cls_head.loss(output, gt_labels) + losses.update(loss) + + return losses + + def forward_test(self, skeletons): + """Defines the computation performed at every call when evaluation and + testing.""" + x = self.extract_feat(skeletons) + assert self.with_cls_head + output = self.cls_head(x) + + return output.data.cpu().numpy() diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/utils/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/utils/__init__.py new file mode 100644 index 00000000..6c0b7c05 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/utils/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .graph import Graph + +__all__ = ['Graph'] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/utils/graph.py b/openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/utils/graph.py new file mode 100644 index 00000000..e0fce39c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/models/skeleton_gcn/utils/graph.py @@ -0,0 +1,196 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np + + +def get_hop_distance(num_node, edge, max_hop=1): + adj_mat = np.zeros((num_node, num_node)) + for i, j in edge: + adj_mat[i, j] = 1 + adj_mat[j, i] = 1 + + # compute hop steps + hop_dis = np.zeros((num_node, num_node)) + np.inf + transfer_mat = [ + np.linalg.matrix_power(adj_mat, d) for d in range(max_hop + 1) + ] + arrive_mat = (np.stack(transfer_mat) > 0) + for d in range(max_hop, -1, -1): + hop_dis[arrive_mat[d]] = d + return hop_dis + + +def normalize_digraph(adj_matrix): + Dl = np.sum(adj_matrix, 0) + num_nodes = adj_matrix.shape[0] + Dn = np.zeros((num_nodes, num_nodes)) + for i in range(num_nodes): + if Dl[i] > 0: + Dn[i, i] = Dl[i]**(-1) + norm_matrix = np.dot(adj_matrix, Dn) + return norm_matrix + + +def edge2mat(link, num_node): + A = np.zeros((num_node, num_node)) + for i, j in link: + A[j, i] = 1 + return A + + +class Graph: + """The Graph to model the skeletons extracted by the openpose. + + Args: + layout (str): must be one of the following candidates + - openpose: 18 or 25 joints. For more information, please refer to: + https://github.com/CMU-Perceptual-Computing-Lab/openpose#output + - ntu-rgb+d: Is consists of 25 joints. For more information, please + refer to https://github.com/shahroudy/NTURGB-D + + strategy (str): must be one of the follow candidates + - uniform: Uniform Labeling + - distance: Distance Partitioning + - spatial: Spatial Configuration + For more information, please refer to the section 'Partition + Strategies' in our paper (https://arxiv.org/abs/1801.07455). + + max_hop (int): the maximal distance between two connected nodes. + Default: 1 + dilation (int): controls the spacing between the kernel points. + Default: 1 + """ + + def __init__(self, + layout='openpose-18', + strategy='uniform', + max_hop=1, + dilation=1): + self.max_hop = max_hop + self.dilation = dilation + + assert layout in [ + 'openpose-18', 'openpose-25', 'ntu-rgb+d', 'ntu_edge', 'coco' + ] + assert strategy in ['uniform', 'distance', 'spatial', 'agcn'] + self.get_edge(layout) + self.hop_dis = get_hop_distance( + self.num_node, self.edge, max_hop=max_hop) + self.get_adjacency(strategy) + + def __str__(self): + return self.A + + def get_edge(self, layout): + """This method returns the edge pairs of the layout.""" + + if layout == 'openpose-18': + self.num_node = 18 + self_link = [(i, i) for i in range(self.num_node)] + neighbor_link = [(4, 3), (3, 2), (7, 6), (6, 5), + (13, 12), (12, 11), (10, 9), (9, 8), (11, 5), + (8, 2), (5, 1), (2, 1), (0, 1), (15, 0), (14, 0), + (17, 15), (16, 14)] + self.edge = self_link + neighbor_link + self.center = 1 + elif layout == 'openpose-25': + self.num_node = 25 + self_link = [(i, i) for i in range(self.num_node)] + neighbor_link = [(4, 3), (3, 2), (7, 6), (6, 5), (23, 22), + (22, 11), (24, 11), (11, 10), (10, 9), (9, 8), + (20, 19), (19, 14), (21, 14), (14, 13), (13, 12), + (12, 8), (8, 1), (5, 1), (2, 1), (0, 1), (15, 0), + (16, 0), (17, 15), (18, 16)] + self.self_link = self_link + self.neighbor_link = neighbor_link + self.edge = self_link + neighbor_link + self.center = 1 + elif layout == 'ntu-rgb+d': + self.num_node = 25 + self_link = [(i, i) for i in range(self.num_node)] + neighbor_1base = [(1, 2), (2, 21), (3, 21), + (4, 3), (5, 21), (6, 5), (7, 6), (8, 7), (9, 21), + (10, 9), (11, 10), (12, 11), (13, 1), (14, 13), + (15, 14), (16, 15), (17, 1), (18, 17), (19, 18), + (20, 19), (22, 23), (23, 8), (24, 25), (25, 12)] + neighbor_link = [(i - 1, j - 1) for (i, j) in neighbor_1base] + self.self_link = self_link + self.neighbor_link = neighbor_link + self.edge = self_link + neighbor_link + self.center = 21 - 1 + elif layout == 'ntu_edge': + self.num_node = 24 + self_link = [(i, i) for i in range(self.num_node)] + neighbor_1base = [(1, 2), (3, 2), (4, 3), (5, 2), (6, 5), (7, 6), + (8, 7), (9, 2), (10, 9), (11, 10), (12, 11), + (13, 1), (14, 13), (15, 14), (16, 15), (17, 1), + (18, 17), (19, 18), (20, 19), (21, 22), (22, 8), + (23, 24), (24, 12)] + neighbor_link = [(i - 1, j - 1) for (i, j) in neighbor_1base] + self.edge = self_link + neighbor_link + self.center = 2 + elif layout == 'coco': + self.num_node = 17 + self_link = [(i, i) for i in range(self.num_node)] + neighbor_1base = [[16, 14], [14, 12], [17, 15], [15, 13], [12, 13], + [6, 12], [7, 13], [6, 7], [8, 6], [9, 7], + [10, 8], [11, 9], [2, 3], [2, 1], [3, 1], [4, 2], + [5, 3], [4, 6], [5, 7]] + neighbor_link = [(i - 1, j - 1) for (i, j) in neighbor_1base] + self.edge = self_link + neighbor_link + self.center = 0 + else: + raise ValueError(f'{layout} is not supported.') + + def get_adjacency(self, strategy): + """This method returns the adjacency matrix according to strategy.""" + + valid_hop = range(0, self.max_hop + 1, self.dilation) + adjacency = np.zeros((self.num_node, self.num_node)) + for hop in valid_hop: + adjacency[self.hop_dis == hop] = 1 + normalize_adjacency = normalize_digraph(adjacency) + + if strategy == 'uniform': + A = np.zeros((1, self.num_node, self.num_node)) + A[0] = normalize_adjacency + self.A = A + elif strategy == 'distance': + A = np.zeros((len(valid_hop), self.num_node, self.num_node)) + for i, hop in enumerate(valid_hop): + A[i][self.hop_dis == hop] = normalize_adjacency[self.hop_dis == + hop] + self.A = A + elif strategy == 'spatial': + A = [] + for hop in valid_hop: + a_root = np.zeros((self.num_node, self.num_node)) + a_close = np.zeros((self.num_node, self.num_node)) + a_further = np.zeros((self.num_node, self.num_node)) + for i in range(self.num_node): + for j in range(self.num_node): + if self.hop_dis[j, i] == hop: + if self.hop_dis[j, self.center] == self.hop_dis[ + i, self.center]: + a_root[j, i] = normalize_adjacency[j, i] + elif self.hop_dis[j, self.center] > self.hop_dis[ + i, self.center]: + a_close[j, i] = normalize_adjacency[j, i] + else: + a_further[j, i] = normalize_adjacency[j, i] + if hop == 0: + A.append(a_root) + else: + A.append(a_root + a_close) + A.append(a_further) + A = np.stack(A) + self.A = A + elif strategy == 'agcn': + A = [] + link_mat = edge2mat(self.self_link, self.num_node) + In = normalize_digraph(edge2mat(self.neighbor_link, self.num_node)) + outward = [(j, i) for (i, j) in self.neighbor_link] + Out = normalize_digraph(edge2mat(outward, self.num_node)) + A = np.stack((link_mat, In, Out)) + self.A = A + else: + raise ValueError('Do Not Exist This Strategy') diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/utils/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/__init__.py new file mode 100644 index 00000000..a1bbbb76 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/__init__.py @@ -0,0 +1,15 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .collect_env import collect_env +from .distribution_env import build_ddp, build_dp, default_device +from .gradcam_utils import GradCAM +from .logger import get_root_logger +from .misc import get_random_string, get_shm_dir, get_thread_id +from .module_hooks import register_module_hooks +from .precise_bn import PreciseBNHook +from .setup_env import setup_multi_processes + +__all__ = [ + 'get_root_logger', 'collect_env', 'get_random_string', 'get_thread_id', + 'get_shm_dir', 'GradCAM', 'PreciseBNHook', 'register_module_hooks', + 'setup_multi_processes', 'build_ddp', 'build_dp', 'default_device' +] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/utils/collect_env.py b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/collect_env.py new file mode 100644 index 00000000..fb8e2640 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/collect_env.py @@ -0,0 +1,17 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from mmcv.utils import collect_env as collect_basic_env +from mmcv.utils import get_git_hash + +import mmaction + + +def collect_env(): + env_info = collect_basic_env() + env_info['MMAction2'] = ( + mmaction.__version__ + '+' + get_git_hash(digits=7)) + return env_info + + +if __name__ == '__main__': + for name, val in collect_env().items(): + print(f'{name}: {val}') diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/utils/distribution_env.py b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/distribution_env.py new file mode 100644 index 00000000..6e241e03 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/distribution_env.py @@ -0,0 +1,94 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +from mmcv.parallel import MMDataParallel, MMDistributedDataParallel + +dp_factory = {'cuda': MMDataParallel, 'cpu': MMDataParallel} + +ddp_factory = {'cuda': MMDistributedDataParallel} + + +def build_dp(model, device='cuda', default_args=None): + """build DataParallel module by device type. + + if device is cuda, return a MMDataParallel model; if device is mlu, + return a MLUDataParallel model. + Args: + model(nn.Module): model to be parallelized. + device(str): device type, cuda, cpu or mlu. Defaults to cuda. + default_args: dict type, include the following parameters. + device_ids(int): device ids of modules to be scattered to. + Defaults to None when GPU or MLU is not available. + Returns: + model(nn.Module): the model to be parallelized. + """ + + if device == 'cuda': + model = model.cuda() + elif device == 'mlu': + from mmcv.device.mlu import MLUDataParallel + dp_factory['mlu'] = MLUDataParallel + model = model.mlu() + + return dp_factory[device](model, **default_args) + + +def build_ddp(model, device='cuda', default_args=None): + """Build DistributedDataParallel module by device type. + If device is cuda, return a MMDistributedDataParallel model; + if device is mlu, return a MLUDistributedDataParallel model. + Args: + model(:class:`nn.Moudle`): module to be parallelized. + device(str): device type, mlu or cuda. + default_args: dict type, include the following parameters. + device_ids(int): which represents the only device where the input + module corresponding to this process resides. Defaults to None. + broadcast_buffers(bool): Flag that enables syncing (broadcasting) + buffers of the module at beginning of the forward function. + Defaults to True. + find_unused_parameters(bool): Traverse the autograd graph of all + tensors contained in the return value of the wrapped module's + ``forward`` function. + Parameters that don't receive gradients as part of this graph + are preemptively marked as being ready to be reduced. Note that + all ``forward`` outputs that are derived from module parameters + must participate in calculating loss and later the gradient + computation. If they don't, this wrapper will hang waiting + for autograd to produce gradients for those parameters. Any + outputs derived from module parameters that are otherwise + unused can be detached from the autograd graph using + ``torch.Tensor.detach``. Defaults to False. + Returns: + model(nn.Module): the module to be parallelized + References: + .. [1] https://pytorch.org/docs/stable/generated/torch.nn.parallel. + DistributedDataParallel.html + """ + + assert device in ['cuda', 'mlu' + ], 'Only available for cuda or mlu devices currently.' + if device == 'cuda': + model = model.cuda() + elif device == 'mlu': + from mmcv.device.mlu import MLUDistributedDataParallel + ddp_factory['mlu'] = MLUDistributedDataParallel + model = model.mlu() + + return ddp_factory[device](model, **default_args) + + +def is_mlu_available(): + """Returns a bool indicating if MLU is currently available.""" + return hasattr(torch, 'is_mlu_available') and torch.is_mlu_available() + + +def get_device(): + """Returns an available device, cpu, cuda or mlu.""" + is_device_available = { + 'cuda': torch.cuda.is_available(), + 'mlu': is_mlu_available() + } + device_list = [k for k, v in is_device_available.items() if v] + return device_list[0] if len(device_list) == 1 else 'cpu' + + +default_device = get_device() diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/utils/gradcam_utils.py b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/gradcam_utils.py new file mode 100644 index 00000000..06d0c78b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/gradcam_utils.py @@ -0,0 +1,232 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +import torch.nn.functional as F + + +class GradCAM: + """GradCAM class helps create visualization results. + + Visualization results are blended by heatmaps and input images. + This class is modified from + https://github.com/facebookresearch/SlowFast/blob/master/slowfast/visualization/gradcam_utils.py # noqa + For more information about GradCAM, please visit: + https://arxiv.org/pdf/1610.02391.pdf + """ + + def __init__(self, model, target_layer_name, colormap='viridis'): + """Create GradCAM class with recognizer, target layername & colormap. + + Args: + model (nn.Module): the recognizer model to be used. + target_layer_name (str): name of convolutional layer to + be used to get gradients and feature maps from for creating + localization maps. + colormap (Optional[str]): matplotlib colormap used to create + heatmap. Default: 'viridis'. For more information, please visit + https://matplotlib.org/3.3.0/tutorials/colors/colormaps.html + """ + from ..models.recognizers import Recognizer2D, Recognizer3D + if isinstance(model, Recognizer2D): + self.is_recognizer2d = True + elif isinstance(model, Recognizer3D): + self.is_recognizer2d = False + else: + raise ValueError( + 'GradCAM utils only support Recognizer2D & Recognizer3D.') + + self.model = model + self.model.eval() + self.target_gradients = None + self.target_activations = None + + import matplotlib.pyplot as plt + self.colormap = plt.get_cmap(colormap) + self.data_mean = torch.tensor(model.cfg.img_norm_cfg['mean']) + self.data_std = torch.tensor(model.cfg.img_norm_cfg['std']) + self._register_hooks(target_layer_name) + + def _register_hooks(self, layer_name): + """Register forward and backward hook to a layer, given layer_name, to + obtain gradients and activations. + + Args: + layer_name (str): name of the layer. + """ + + def get_gradients(module, grad_input, grad_output): + self.target_gradients = grad_output[0].detach() + + def get_activations(module, input, output): + self.target_activations = output.clone().detach() + + layer_ls = layer_name.split('/') + prev_module = self.model + for layer in layer_ls: + prev_module = prev_module._modules[layer] + + target_layer = prev_module + target_layer.register_forward_hook(get_activations) + target_layer.register_backward_hook(get_gradients) + + def _calculate_localization_map(self, inputs, use_labels, delta=1e-20): + """Calculate localization map for all inputs with Grad-CAM. + + Args: + inputs (dict): model inputs, generated by test pipeline, + at least including two keys, ``imgs`` and ``label``. + use_labels (bool): Whether to use given labels to generate + localization map. Labels are in ``inputs['label']``. + delta (float): used in localization map normalization, + must be small enough. Please make sure + `localization_map_max - localization_map_min >> delta` + Returns: + tuple[torch.Tensor, torch.Tensor]: (localization_map, preds) + localization_map (torch.Tensor): the localization map for + input imgs. + preds (torch.Tensor): Model predictions for `inputs` with + shape (batch_size, num_classes). + """ + inputs['imgs'] = inputs['imgs'].clone() + + # model forward & backward + preds = self.model(gradcam=True, **inputs) + if use_labels: + labels = inputs['label'] + if labels.ndim == 1: + labels = labels.unsqueeze(-1) + score = torch.gather(preds, dim=1, index=labels) + else: + score = torch.max(preds, dim=-1)[0] + self.model.zero_grad() + score = torch.sum(score) + score.backward() + + if self.is_recognizer2d: + # [batch_size, num_segments, 3, H, W] + b, t, _, h, w = inputs['imgs'].size() + else: + # [batch_size, num_crops*num_clips, 3, clip_len, H, W] + b1, b2, _, t, h, w = inputs['imgs'].size() + b = b1 * b2 + + gradients = self.target_gradients + activations = self.target_activations + if self.is_recognizer2d: + # [B*Tg, C', H', W'] + b_tg, c, _, _ = gradients.size() + tg = b_tg // b + else: + # source shape: [B, C', Tg, H', W'] + _, c, tg, _, _ = gradients.size() + # target shape: [B, Tg, C', H', W'] + gradients = gradients.permute(0, 2, 1, 3, 4) + activations = activations.permute(0, 2, 1, 3, 4) + + # calculate & resize to [B, 1, T, H, W] + weights = torch.mean(gradients.view(b, tg, c, -1), dim=3) + weights = weights.view(b, tg, c, 1, 1) + activations = activations.view([b, tg, c] + + list(activations.size()[-2:])) + localization_map = torch.sum( + weights * activations, dim=2, keepdim=True) + localization_map = F.relu(localization_map) + localization_map = localization_map.permute(0, 2, 1, 3, 4) + localization_map = F.interpolate( + localization_map, + size=(t, h, w), + mode='trilinear', + align_corners=False) + + # Normalize the localization map. + localization_map_min, localization_map_max = ( + torch.min(localization_map.view(b, -1), dim=-1, keepdim=True)[0], + torch.max(localization_map.view(b, -1), dim=-1, keepdim=True)[0]) + localization_map_min = torch.reshape( + localization_map_min, shape=(b, 1, 1, 1, 1)) + localization_map_max = torch.reshape( + localization_map_max, shape=(b, 1, 1, 1, 1)) + localization_map = (localization_map - localization_map_min) / ( + localization_map_max - localization_map_min + delta) + localization_map = localization_map.data + + return localization_map.squeeze(dim=1), preds + + def _alpha_blending(self, localization_map, input_imgs, alpha): + """Blend heatmaps and model input images and get visulization results. + + Args: + localization_map (torch.Tensor): localization map for all inputs, + generated with Grad-CAM + input_imgs (torch.Tensor): model inputs, normed images. + alpha (float): transparency level of the heatmap, + in the range [0, 1]. + Returns: + torch.Tensor: blending results for localization map and input + images, with shape [B, T, H, W, 3] and pixel values in + RGB order within range [0, 1]. + """ + # localization_map shape [B, T, H, W] + localization_map = localization_map.cpu() + + # heatmap shape [B, T, H, W, 3] in RGB order + heatmap = self.colormap(localization_map.detach().numpy()) + heatmap = heatmap[:, :, :, :, :3] + heatmap = torch.from_numpy(heatmap) + + # Permute input imgs to [B, T, H, W, 3], like heatmap + if self.is_recognizer2d: + # Recognizer2D input (B, T, C, H, W) + curr_inp = input_imgs.permute(0, 1, 3, 4, 2) + else: + # Recognizer3D input (B', num_clips*num_crops, C, T, H, W) + # B = B' * num_clips * num_crops + curr_inp = input_imgs.view([-1] + list(input_imgs.size()[2:])) + curr_inp = curr_inp.permute(0, 2, 3, 4, 1) + + # renormalize input imgs to [0, 1] + curr_inp = curr_inp.cpu() + curr_inp *= self.data_std + curr_inp += self.data_mean + curr_inp /= 255. + + # alpha blending + blended_imgs = alpha * heatmap + (1 - alpha) * curr_inp + + return blended_imgs + + def __call__(self, inputs, use_labels=False, alpha=0.5): + """Visualize the localization maps on their corresponding inputs as + heatmap, using Grad-CAM. + + Generate visualization results for **ALL CROPS**. + For example, for I3D model, if `clip_len=32, num_clips=10` and + use `ThreeCrop` in test pipeline, then for every model inputs, + there are 960(32*10*3) images generated. + + Args: + inputs (dict): model inputs, generated by test pipeline, + at least including two keys, ``imgs`` and ``label``. + use_labels (bool): Whether to use given labels to generate + localization map. Labels are in ``inputs['label']``. + alpha (float): transparency level of the heatmap, + in the range [0, 1]. + Returns: + blended_imgs (torch.Tensor): Visualization results, blended by + localization maps and model inputs. + preds (torch.Tensor): Model predictions for inputs. + """ + + # localization_map shape [B, T, H, W] + # preds shape [batch_size, num_classes] + localization_map, preds = self._calculate_localization_map( + inputs, use_labels=use_labels) + + # blended_imgs shape [B, T, H, W, 3] + blended_imgs = self._alpha_blending(localization_map, inputs['imgs'], + alpha) + + # blended_imgs shape [B, T, H, W, 3] + # preds shape [batch_size, num_classes] + # Recognizer2D: B = batch_size, T = num_segments + # Recognizer3D: B = batch_size * num_crops * num_clips, T = clip_len + return blended_imgs, preds diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/utils/logger.py b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/logger.py new file mode 100644 index 00000000..6b4a3fc0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/logger.py @@ -0,0 +1,25 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import logging + +from mmcv.utils import get_logger + + +def get_root_logger(log_file=None, log_level=logging.INFO): + """Use ``get_logger`` method in mmcv to get the root logger. + + The logger will be initialized if it has not been initialized. By default a + StreamHandler will be added. If ``log_file`` is specified, a FileHandler + will also be added. The name of the root logger is the top-level package + name, e.g., "mmaction". + + Args: + log_file (str | None): The log filename. If specified, a FileHandler + will be added to the root logger. + log_level (int): The root logger level. Note that only the process of + rank 0 is affected, while other processes will set the level to + "Error" and be silent most of the time. + + Returns: + :obj:`logging.Logger`: The root logger. + """ + return get_logger(__name__.split('.')[0], log_file, log_level) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/utils/misc.py b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/misc.py new file mode 100644 index 00000000..cc1efc95 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/misc.py @@ -0,0 +1,27 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import ctypes +import random +import string + + +def get_random_string(length=15): + """Get random string with letters and digits. + + Args: + length (int): Length of random string. Default: 15. + """ + return ''.join( + random.choice(string.ascii_letters + string.digits) + for _ in range(length)) + + +def get_thread_id(): + """Get current thread id.""" + # use ctype to find thread id + thread_id = ctypes.CDLL('libc.so.6').syscall(186) + return thread_id + + +def get_shm_dir(): + """Get shm dir for temporary usage.""" + return '/dev/shm' diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/utils/module_hooks.py b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/module_hooks.py new file mode 100644 index 00000000..6ee6227d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/module_hooks.py @@ -0,0 +1,88 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import torch +from mmcv.utils import Registry, build_from_cfg + +MODULE_HOOKS = Registry('module_hooks') + + +def register_module_hooks(Module, module_hooks_list): + handles = [] + for module_hook_cfg in module_hooks_list: + hooked_module_name = module_hook_cfg.pop('hooked_module', 'backbone') + if not hasattr(Module, hooked_module_name): + raise ValueError( + f'{Module.__class__} has no {hooked_module_name}!') + hooked_module = getattr(Module, hooked_module_name) + hook_pos = module_hook_cfg.pop('hook_pos', 'forward_pre') + + if hook_pos == 'forward_pre': + handle = hooked_module.register_forward_pre_hook( + build_from_cfg(module_hook_cfg, MODULE_HOOKS).hook_func()) + elif hook_pos == 'forward': + handle = hooked_module.register_forward_hook( + build_from_cfg(module_hook_cfg, MODULE_HOOKS).hook_func()) + elif hook_pos == 'backward': + handle = hooked_module.register_backward_hook( + build_from_cfg(module_hook_cfg, MODULE_HOOKS).hook_func()) + else: + raise ValueError( + f'hook_pos must be `forward_pre`, `forward` or `backward`, ' + f'but get {hook_pos}') + handles.append(handle) + return handles + + +@MODULE_HOOKS.register_module() +class GPUNormalize: + """Normalize images with the given mean and std value on GPUs. + + Call the member function ``hook_func`` will return the forward pre-hook + function for module registration. + + GPU normalization, rather than CPU normalization, is more recommended in + the case of a model running on GPUs with strong compute capacity such as + Tesla V100. + + Args: + mean (Sequence[float]): Mean values of different channels. + std (Sequence[float]): Std values of different channels. + """ + + def __init__(self, input_format, mean, std): + if input_format not in ['NCTHW', 'NCHW', 'NCHW_Flow', 'NPTCHW']: + raise ValueError(f'The input format {input_format} is invalid.') + self.input_format = input_format + _mean = torch.tensor(mean) + _std = torch.tensor(std) + if input_format == 'NCTHW': + self._mean = _mean[None, :, None, None, None] + self._std = _std[None, :, None, None, None] + elif input_format == 'NCHW': + self._mean = _mean[None, :, None, None] + self._std = _std[None, :, None, None] + elif input_format == 'NCHW_Flow': + self._mean = _mean[None, :, None, None] + self._std = _std[None, :, None, None] + elif input_format == 'NPTCHW': + self._mean = _mean[None, None, None, :, None, None] + self._std = _std[None, None, None, :, None, None] + else: + raise ValueError(f'The input format {input_format} is invalid.') + + def hook_func(self): + + def normalize_hook(Module, input): + x = input[0] + assert x.dtype == torch.uint8, ( + f'The previous augmentation should use uint8 data type to ' + f'speed up computation, but get {x.dtype}') + + mean = self._mean.to(x.device) + std = self._std.to(x.device) + + with torch.no_grad(): + x = x.float().sub_(mean).div_(std) + + return (x, *input[1:]) + + return normalize_hook diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/utils/multigrid/__init__.py b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/multigrid/__init__.py new file mode 100644 index 00000000..fd183a6d --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/multigrid/__init__.py @@ -0,0 +1,8 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from .longshortcyclehook import LongShortCycleHook +from .short_sampler import ShortCycleSampler +from .subbn_aggregate import SubBatchNorm3dAggregationHook + +__all__ = [ + 'ShortCycleSampler', 'LongShortCycleHook', 'SubBatchNorm3dAggregationHook' +] diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/utils/multigrid/longshortcyclehook.py b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/multigrid/longshortcyclehook.py new file mode 100644 index 00000000..202c8104 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/multigrid/longshortcyclehook.py @@ -0,0 +1,257 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +import torch +import torch.nn as nn +from mmcv.runner import Hook +from mmcv.runner.hooks.lr_updater import LrUpdaterHook, StepLrUpdaterHook +from torch.nn.modules.utils import _ntuple + +from mmaction.core.lr import RelativeStepLrUpdaterHook +from mmaction.utils import get_root_logger + + +def modify_subbn3d_num_splits(logger, module, num_splits): + """Recursively modify the number of splits of subbn3ds in module. + Inheritates the running_mean and running_var from last subbn.bn. + + Args: + logger (:obj:`logging.Logger`): The logger to log information. + module (nn.Module): The module to be modified. + num_splits (int): The targeted number of splits. + Returns: + int: The number of subbn3d modules modified. + """ + count = 0 + for child in module.children(): + from mmaction.models import SubBatchNorm3D + if isinstance(child, SubBatchNorm3D): + new_split_bn = nn.BatchNorm3d( + child.num_features * num_splits, affine=False).cuda() + new_state_dict = new_split_bn.state_dict() + + for param_name, param in child.bn.state_dict().items(): + origin_param_shape = param.size() + new_param_shape = new_state_dict[param_name].size() + if len(origin_param_shape) == 1 and len( + new_param_shape + ) == 1 and new_param_shape[0] >= origin_param_shape[ + 0] and new_param_shape[0] % origin_param_shape[0] == 0: + # weight bias running_var running_mean + new_state_dict[param_name] = torch.cat( + [param] * + (new_param_shape[0] // origin_param_shape[0])) + else: + logger.info(f'skip {param_name}') + + child.num_splits = num_splits + new_split_bn.load_state_dict(new_state_dict) + child.split_bn = new_split_bn + count += 1 + else: + count += modify_subbn3d_num_splits(logger, child, num_splits) + return count + + +class LongShortCycleHook(Hook): + """A multigrid method for efficiently training video models. + + This hook defines multigrid training schedule and update cfg + accordingly, which is proposed in `A Multigrid Method for Efficiently + Training Video Models `_. + + Args: + cfg (:obj:`mmcv.ConfigDictg`): The whole config for the experiment. + """ + + def __init__(self, cfg): + self.cfg = cfg + self.multi_grid_cfg = cfg.get('multigrid', None) + self.data_cfg = cfg.get('data', None) + assert (self.multi_grid_cfg is not None and self.data_cfg is not None) + self.logger = get_root_logger() + self.logger.info(self.multi_grid_cfg) + + def before_run(self, runner): + """Called before running, change the StepLrUpdaterHook to + RelativeStepLrHook.""" + self._init_schedule(runner, self.multi_grid_cfg, self.data_cfg) + steps = [] + steps = [s[-1] for s in self.schedule] + steps.insert(-1, (steps[-2] + steps[-1]) // 2) # add finetune stage + for index, hook in enumerate(runner.hooks): + if isinstance(hook, StepLrUpdaterHook): + base_lr = hook.base_lr[0] + gamma = hook.gamma + lrs = [base_lr * gamma**s[0] * s[1][0] for s in self.schedule] + lrs = lrs[:-1] + [lrs[-2], lrs[-1] * gamma + ] # finetune-stage lrs + new_hook = RelativeStepLrUpdaterHook(runner, steps, lrs) + runner.hooks[index] = new_hook + + def before_train_epoch(self, runner): + """Before training epoch, update the runner based on long-cycle + schedule.""" + self._update_long_cycle(runner) + + def _update_long_cycle(self, runner): + """Before every epoch, check if long cycle shape should change. If it + should, change the pipelines accordingly. + + change dataloader and model's subbn3d(split_bn) + """ + base_b, base_t, base_s = self._get_schedule(runner.epoch) + + # rebuild dataset + from mmaction.datasets import build_dataset + resize_list = [] + for trans in self.cfg.data.train.pipeline: + if trans['type'] == 'SampleFrames': + curr_t = trans['clip_len'] + trans['clip_len'] = base_t + trans['frame_interval'] = (curr_t * + trans['frame_interval']) / base_t + elif trans['type'] == 'Resize': + resize_list.append(trans) + resize_list[-1]['scale'] = _ntuple(2)(base_s) + + ds = build_dataset(self.cfg.data.train) + + from mmaction.datasets import build_dataloader + + dataloader = build_dataloader( + ds, + self.data_cfg.videos_per_gpu * base_b, + self.data_cfg.workers_per_gpu, + dist=True, + num_gpus=len(self.cfg.gpu_ids), + drop_last=True, + seed=self.cfg.get('seed', None), + ) + runner.data_loader = dataloader + self.logger.info('Rebuild runner.data_loader') + + # the self._max_epochs is changed, therefore update here + runner._max_iters = runner._max_epochs * len(runner.data_loader) + + # rebuild all the sub_batch_bn layers + num_modifies = modify_subbn3d_num_splits(self.logger, runner.model, + base_b) + self.logger.info(f'{num_modifies} subbns modified to {base_b}.') + + def _get_long_cycle_schedule(self, runner, cfg): + # `schedule` is a list of [step_index, base_shape, epochs] + schedule = [] + avg_bs = [] + all_shapes = [] + self.default_size = self.default_t * self.default_s**2 + for t_factor, s_factor in cfg.long_cycle_factors: + base_t = int(round(self.default_t * t_factor)) + base_s = int(round(self.default_s * s_factor)) + if cfg.short_cycle: + shapes = [[ + base_t, + int(round(self.default_s * cfg.short_cycle_factors[0])) + ], + [ + base_t, + int( + round(self.default_s * + cfg.short_cycle_factors[1])) + ], [base_t, base_s]] + else: + shapes = [[base_t, base_s]] + # calculate the batchsize, shape = [batchsize, #frames, scale] + shapes = [[ + int(round(self.default_size / (s[0] * s[1]**2))), s[0], s[1] + ] for s in shapes] + avg_bs.append(np.mean([s[0] for s in shapes])) + all_shapes.append(shapes) + + for hook in runner.hooks: + if isinstance(hook, LrUpdaterHook): + if isinstance(hook, StepLrUpdaterHook): + steps = hook.step if isinstance(hook.step, + list) else [hook.step] + steps = [0] + steps + break + else: + raise NotImplementedError( + 'Only step scheduler supports multi grid now') + else: + pass + total_iters = 0 + default_iters = steps[-1] + for step_index in range(len(steps) - 1): + # except the final step + step_epochs = steps[step_index + 1] - steps[step_index] + # number of epochs for this step + for long_cycle_index, shapes in enumerate(all_shapes): + cur_epochs = ( + step_epochs * avg_bs[long_cycle_index] / sum(avg_bs)) + cur_iters = cur_epochs / avg_bs[long_cycle_index] + total_iters += cur_iters + schedule.append((step_index, shapes[-1], cur_epochs)) + iter_saving = default_iters / total_iters + final_step_epochs = runner.max_epochs - steps[-1] + # the fine-tuning phase to have the same amount of iteration + # saving as the rest of the training + ft_epochs = final_step_epochs / iter_saving * avg_bs[-1] + # in `schedule` we ignore the shape of ShortCycle + schedule.append((step_index + 1, all_shapes[-1][-1], ft_epochs)) + + x = ( + runner.max_epochs * cfg.epoch_factor / sum(s[-1] + for s in schedule)) + runner._max_epochs = int(runner._max_epochs * cfg.epoch_factor) + final_schedule = [] + total_epochs = 0 + for s in schedule: + # extend the epochs by `factor` + epochs = s[2] * x + total_epochs += epochs + final_schedule.append((s[0], s[1], int(round(total_epochs)))) + self.logger.info(final_schedule) + return final_schedule + + def _print_schedule(self, schedule): + """logging the schedule.""" + self.logger.info('\tLongCycleId\tBase shape\tEpochs\t') + for s in schedule: + self.logger.info(f'\t{s[0]}\t{s[1]}\t{s[2]}\t') + + def _get_schedule(self, epoch): + """Returning the corresponding shape.""" + for s in self.schedule: + if epoch < s[-1]: + return s[1] + return self.schedule[-1][1] + + def _init_schedule(self, runner, multi_grid_cfg, data_cfg): + """Initialize the multigrid shcedule. + + Args: + runner (:obj: `mmcv.Runner`): The runner within which to train. + multi_grid_cfg (:obj: `mmcv.ConfigDict`): The multigrid config. + data_cfg (:obj: `mmcv.ConfigDict`): The data config. + """ + self.default_bs = data_cfg.videos_per_gpu + data_cfg = data_cfg.get('train', None) + final_resize_cfg = [ + aug for aug in data_cfg.pipeline if aug.type == 'Resize' + ][-1] + if isinstance(final_resize_cfg.scale, tuple): + # Assume square image + if max(final_resize_cfg.scale) == min(final_resize_cfg.scale): + self.default_s = max(final_resize_cfg.scale) + else: + raise NotImplementedError('non-square scale not considered.') + sample_frame_cfg = [ + aug for aug in data_cfg.pipeline if aug.type == 'SampleFrames' + ][0] + self.default_t = sample_frame_cfg.clip_len + + if multi_grid_cfg.long_cycle: + self.schedule = self._get_long_cycle_schedule( + runner, multi_grid_cfg) + else: + raise ValueError('There should be at least long cycle.') diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/utils/multigrid/short_sampler.py b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/multigrid/short_sampler.py new file mode 100644 index 00000000..01326f85 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/multigrid/short_sampler.py @@ -0,0 +1,61 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import numpy as np +from torch.utils.data.sampler import Sampler + + +class ShortCycleSampler(Sampler): + """Extend Sampler to support "short cycle" sampling. + + See paper "A Multigrid Method for Efficiently Training Video Models", Wu et + al., 2019 (https://arxiv.org/abs/1912.00998) for details. + + Args: + sampler (:obj: `torch.Sampler`): The default sampler to be warpped. + batch_size (int): The batchsize before short-cycle modification. + multi_grid_cfg (dict): The config dict for multigrid training. + crop_size (int): The actual spatial scale. + drop_last (bool): Whether to drop the last incomplete batch in epoch. + Default: True. + """ + + def __init__(self, + sampler, + batch_size, + multigrid_cfg, + crop_size, + drop_last=True): + + self.sampler = sampler + self.drop_last = drop_last + + bs_factor = [ + int( + round( + (float(crop_size) / (s * multigrid_cfg.default_s[0]))**2)) + for s in multigrid_cfg.short_cycle_factors + ] + + self.batch_sizes = [ + batch_size * bs_factor[0], batch_size * bs_factor[1], batch_size + ] + + def __iter__(self): + counter = 0 + batch_size = self.batch_sizes[0] + batch = [] + for idx in self.sampler: + batch.append((idx, counter % 3)) + if len(batch) == batch_size: + yield batch + counter += 1 + batch_size = self.batch_sizes[counter % 3] + batch = [] + if len(batch) > 0 and not self.drop_last: + yield batch + + def __len__(self): + avg_batch_size = sum(self.batch_sizes) / 3.0 + if self.drop_last: + return int(np.floor(len(self.sampler) / avg_batch_size)) + else: + return int(np.ceil(len(self.sampler) / avg_batch_size)) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/utils/multigrid/subbn_aggregate.py b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/multigrid/subbn_aggregate.py new file mode 100644 index 00000000..ce0da1f8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/multigrid/subbn_aggregate.py @@ -0,0 +1,22 @@ +# Copyright (c) OpenMMLab. All rights reserved. +from mmcv.runner import HOOKS, Hook + + +def aggregate_sub_bn_status(module): + from mmaction.models import SubBatchNorm3D + count = 0 + for child in module.children(): + if isinstance(child, SubBatchNorm3D): + child.aggregate_stats() + count += 1 + else: + count += aggregate_sub_bn_status(child) + return count + + +@HOOKS.register_module() +class SubBatchNorm3dAggregationHook(Hook): + """Recursively find all SubBN modules and aggregate sub-BN stats.""" + + def after_train_epoch(self, runner): + _ = aggregate_sub_bn_status(runner.model) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/utils/precise_bn.py b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/precise_bn.py new file mode 100644 index 00000000..2751b2e7 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/precise_bn.py @@ -0,0 +1,155 @@ +# Adapted from https://github.com/facebookresearch/fvcore/blob/master/fvcore/nn/precise_bn.py # noqa: E501 +# Original licence: Copyright (c) 2019 Facebook, Inc under the Apache License 2.0 # noqa: E501 + +import logging +import time + +import mmcv +import torch +from mmcv.parallel import MMDistributedDataParallel +from mmcv.runner import Hook +from mmcv.utils import print_log +from torch.nn import GroupNorm +from torch.nn.modules.batchnorm import _BatchNorm +from torch.nn.modules.instancenorm import _InstanceNorm +from torch.nn.parallel import DataParallel, DistributedDataParallel +from torch.utils.data import DataLoader + + +def is_parallel_module(module): + """Check if a module is a parallel module. + + The following 3 modules (and their subclasses) are regarded as parallel + modules: DataParallel, DistributedDataParallel, + MMDistributedDataParallel (the deprecated version). + + Args: + module (nn.Module): The module to be checked. + Returns: + bool: True if the input module is a parallel module. + """ + parallels = (DataParallel, DistributedDataParallel, + MMDistributedDataParallel) + return bool(isinstance(module, parallels)) + + +@torch.no_grad() +def update_bn_stats(model, data_loader, num_iters=200, logger=None): + """Recompute and update the batch norm stats to make them more precise. + + During + training both BN stats and the weight are changing after every iteration, + so the running average can not precisely reflect the actual stats of the + current model. + In this function, the BN stats are recomputed with fixed weights, to make + the running average more precise. Specifically, it computes the true + average of per-batch mean/variance instead of the running average. + + Args: + model (nn.Module): The model whose bn stats will be recomputed. + data_loader (iterator): The DataLoader iterator. + num_iters (int): number of iterations to compute the stats. + logger (:obj:`logging.Logger` | None): Logger for logging. + Default: None. + """ + + model.train() + + assert len(data_loader) >= num_iters, ( + f'length of dataloader {len(data_loader)} must be greater than ' + f'iteration number {num_iters}') + + if is_parallel_module(model): + parallel_module = model + model = model.module + else: + parallel_module = model + # Finds all the bn layers with training=True. + bn_layers = [ + m for m in model.modules() if m.training and isinstance(m, _BatchNorm) + ] + + if len(bn_layers) == 0: + print_log('No BN found in model', logger=logger, level=logging.WARNING) + return + print_log(f'{len(bn_layers)} BN found', logger=logger) + + # Finds all the other norm layers with training=True. + for m in model.modules(): + if m.training and isinstance(m, (_InstanceNorm, GroupNorm)): + print_log( + 'IN/GN stats will be updated like training.', + logger=logger, + level=logging.WARNING) + + # In order to make the running stats only reflect the current batch, the + # momentum is disabled. + # bn.running_mean = (1 - momentum) * bn.running_mean + momentum * + # batch_mean + # Setting the momentum to 1.0 to compute the stats without momentum. + momentum_actual = [bn.momentum for bn in bn_layers] # pyre-ignore + for bn in bn_layers: + bn.momentum = 1.0 + + # Note that running_var actually means "running average of variance" + running_mean = [torch.zeros_like(bn.running_mean) for bn in bn_layers] + running_var = [torch.zeros_like(bn.running_var) for bn in bn_layers] + + finish_before_loader = False + prog_bar = mmcv.ProgressBar(len(data_loader)) + for ind, data in enumerate(data_loader): + with torch.no_grad(): + parallel_module(**data, return_loss=False) + prog_bar.update() + for i, bn in enumerate(bn_layers): + # Accumulates the bn stats. + running_mean[i] += (bn.running_mean - running_mean[i]) / (ind + 1) + # running var is actually + running_var[i] += (bn.running_var - running_var[i]) / (ind + 1) + + if (ind + 1) >= num_iters: + finish_before_loader = True + break + assert finish_before_loader, 'Dataloader stopped before ' \ + f'iteration {num_iters}' + + for i, bn in enumerate(bn_layers): + # Sets the precise bn stats. + bn.running_mean = running_mean[i] + bn.running_var = running_var[i] + bn.momentum = momentum_actual[i] + + +class PreciseBNHook(Hook): + """Precise BN hook. + + Attributes: + dataloader (DataLoader): A PyTorch dataloader. + num_iters (int): Number of iterations to update the bn stats. + Default: 200. + interval (int): Perform precise bn interval (by epochs). Default: 1. + """ + + def __init__(self, dataloader, num_iters=200, interval=1): + if not isinstance(dataloader, DataLoader): + raise TypeError('dataloader must be a pytorch DataLoader, but got' + f' {type(dataloader)}') + self.dataloader = dataloader + self.interval = interval + self.num_iters = num_iters + + def after_train_epoch(self, runner): + if self.every_n_epochs(runner, self.interval): + # sleep to avoid possible deadlock + time.sleep(2.) + print_log( + f'Running Precise BN for {self.num_iters} iterations', + logger=runner.logger) + update_bn_stats( + runner.model, + self.dataloader, + self.num_iters, + logger=runner.logger) + print_log('BN stats updated', logger=runner.logger) + # sleep to avoid possible deadlock + time.sleep(2.) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/utils/setup_env.py b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/setup_env.py new file mode 100644 index 00000000..21def2f0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/utils/setup_env.py @@ -0,0 +1,47 @@ +# Copyright (c) OpenMMLab. All rights reserved. +import os +import platform +import warnings + +import cv2 +import torch.multiprocessing as mp + + +def setup_multi_processes(cfg): + """Setup multi-processing environment variables.""" + # set multi-process start method as `fork` to speed up the training + if platform.system() != 'Windows': + mp_start_method = cfg.get('mp_start_method', 'fork') + current_method = mp.get_start_method(allow_none=True) + if current_method is not None and current_method != mp_start_method: + warnings.warn( + f'Multi-processing start method `{mp_start_method}` is ' + f'different from the previous setting `{current_method}`.' + f'It will be force set to `{mp_start_method}`. You can change ' + f'this behavior by changing `mp_start_method` in your config.') + mp.set_start_method(mp_start_method, force=True) + + # disable opencv multithreading to avoid system being overloaded + opencv_num_threads = cfg.get('opencv_num_threads', 0) + cv2.setNumThreads(opencv_num_threads) + + # setup OMP threads + # This code is referred from https://github.com/pytorch/pytorch/blob/master/torch/distributed/run.py # noqa + if 'OMP_NUM_THREADS' not in os.environ and cfg.data.workers_per_gpu > 1: + omp_num_threads = 1 + warnings.warn( + f'Setting OMP_NUM_THREADS environment variable for each process ' + f'to be {omp_num_threads} in default, to avoid your system being ' + f'overloaded, please further tune the variable for optimal ' + f'performance in your application as needed.') + os.environ['OMP_NUM_THREADS'] = str(omp_num_threads) + + # setup MKL threads + if 'MKL_NUM_THREADS' not in os.environ and cfg.data.workers_per_gpu > 1: + mkl_num_threads = 1 + warnings.warn( + f'Setting MKL_NUM_THREADS environment variable for each process ' + f'to be {mkl_num_threads} in default, to avoid your system being ' + f'overloaded, please further tune the variable for optimal ' + f'performance in your application as needed.') + os.environ['MKL_NUM_THREADS'] = str(mkl_num_threads) diff --git a/openmmlab_test/mmaction2-0.24.1/mmaction/version.py b/openmmlab_test/mmaction2-0.24.1/mmaction/version.py new file mode 100644 index 00000000..e05146f0 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/mmaction/version.py @@ -0,0 +1,18 @@ +# Copyright (c) Open-MMLab. All rights reserved. + +__version__ = '0.24.1' + + +def parse_version_info(version_str): + version_info = [] + for x in version_str.split('.'): + if x.isdigit(): + version_info.append(int(x)) + elif x.find('rc') != -1: + patch_version = x.split('rc') + version_info.append(int(patch_version[0])) + version_info.append(f'rc{patch_version[1]}') + return tuple(version_info) + + +version_info = parse_version_info(__version__) diff --git a/openmmlab_test/mmaction2-0.24.1/model-index.yml b/openmmlab_test/mmaction2-0.24.1/model-index.yml new file mode 100644 index 00000000..e76d6e5b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/model-index.yml @@ -0,0 +1,24 @@ +Import: +- configs/localization/bmn/metafile.yml +- configs/localization/bsn/metafile.yml +- configs/localization/ssn/metafile.yml +- configs/recognition/csn/metafile.yml +- configs/recognition/i3d/metafile.yml +- configs/recognition/omnisource/metafile.yml +- configs/recognition/r2plus1d/metafile.yml +- configs/recognition/slowfast/metafile.yml +- configs/recognition/slowonly/metafile.yml +- configs/recognition/timesformer/metafile.yml +- configs/recognition/tin/metafile.yml +- configs/recognition/tpn/metafile.yml +- configs/recognition/tsm/metafile.yml +- configs/recognition/tsn/metafile.yml +- configs/recognition/c3d/metafile.yml +- configs/recognition/tanet/metafile.yml +- configs/recognition/x3d/metafile.yml +- configs/recognition/trn/metafile.yml +- configs/detection/ava/metafile.yml +- configs/detection/lfb/metafile.yml +- configs/detection/acrn/metafile.yml +- configs/recognition_audio/resnet/metafile.yml +- configs/skeleton/posec3d/metafile.yml diff --git a/openmmlab_test/mmaction2-0.24.1/requirements.txt b/openmmlab_test/mmaction2-0.24.1/requirements.txt new file mode 100644 index 00000000..3f6205f8 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/requirements.txt @@ -0,0 +1,3 @@ +-r requirements/build.txt +-r requirements/optional.txt +-r requirements/tests.txt diff --git a/openmmlab_test/mmaction2-0.24.1/requirements/build.txt b/openmmlab_test/mmaction2-0.24.1/requirements/build.txt new file mode 100644 index 00000000..9bbe532c --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/requirements/build.txt @@ -0,0 +1,8 @@ +decord >= 0.4.1 +einops +matplotlib +numpy +opencv-contrib-python +Pillow +scipy +torch>=1.3 diff --git a/openmmlab_test/mmaction2-0.24.1/requirements/docs.txt b/openmmlab_test/mmaction2-0.24.1/requirements/docs.txt new file mode 100644 index 00000000..bced1dc3 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/requirements/docs.txt @@ -0,0 +1,17 @@ +docutils==0.16.0 +einops +markdown<3.4.0 +myst-parser +opencv-python!=4.5.5.62,!=4.5.5.64 +# Skip problematic opencv-python versions +# MMCV depends opencv-python instead of headless, thus we install opencv-python +# Due to a bug from upstream, we skip this two version +# https://github.com/opencv/opencv-python/issues/602 +# https://github.com/opencv/opencv/issues/21366 +# It seems to be fixed in https://github.com/opencv/opencv/pull/21382opencv-python +-e git+https://github.com/gaotongxiao/pytorch_sphinx_theme.git#egg=pytorch_sphinx_theme +scipy +sphinx==4.0.2 +sphinx_copybutton +sphinx_markdown_tables +sphinx_rtd_theme==0.5.2 diff --git a/openmmlab_test/mmaction2-0.24.1/requirements/mminstall.txt b/openmmlab_test/mmaction2-0.24.1/requirements/mminstall.txt new file mode 100644 index 00000000..7651fd8f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/requirements/mminstall.txt @@ -0,0 +1 @@ +mmcv-full>=1.3.1 diff --git a/openmmlab_test/mmaction2-0.24.1/requirements/optional.txt b/openmmlab_test/mmaction2-0.24.1/requirements/optional.txt new file mode 100644 index 00000000..631cfe7b --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/requirements/optional.txt @@ -0,0 +1,11 @@ +av +imgaug +librosa +lmdb +moviepy +onnx +onnxruntime +packaging +pims +PyTurboJPEG +timm diff --git a/openmmlab_test/mmaction2-0.24.1/requirements/readthedocs.txt b/openmmlab_test/mmaction2-0.24.1/requirements/readthedocs.txt new file mode 100644 index 00000000..70a4cd35 --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/requirements/readthedocs.txt @@ -0,0 +1,4 @@ +mmcv +titlecase +torch +torchvision diff --git a/openmmlab_test/mmaction2-0.24.1/requirements/tests.txt b/openmmlab_test/mmaction2-0.24.1/requirements/tests.txt new file mode 100644 index 00000000..2552b69f --- /dev/null +++ b/openmmlab_test/mmaction2-0.24.1/requirements/tests.txt @@ -0,0 +1,9 @@ +coverage +flake8 +interrogate +isort==4.3.21 +protobuf<=3.20.1 +pytest +pytest-runner +xdoctest >= 0.10.0 +yapf diff --git a/openmmlab_test/mmaction2-0.24.1/resources/acc_curve.png b/openmmlab_test/mmaction2-0.24.1/resources/acc_curve.png new file mode 100644 index 0000000000000000000000000000000000000000..27a2f0851e7d9ee0c912f73af947b11453422988 GIT binary patch literal 39921 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 EuNc`VZvX%Q literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/resources/data_pipeline.png b/openmmlab_test/mmaction2-0.24.1/resources/data_pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..c5217b17aa745a654bc44898ea342ca9c85dd2b4 GIT binary patch literal 117332 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 I8){GfA4#@a@Bjb+ literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/resources/mmaction2_logo.png b/openmmlab_test/mmaction2-0.24.1/resources/mmaction2_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f0c759bb78c5424b4394d18a5ba833a8c9f43add GIT binary patch literal 31100 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 HFTwu@rHlVn literal 0 HcmV?d00001 diff --git a/openmmlab_test/mmaction2-0.24.1/resources/mmaction2_overview.gif b/openmmlab_test/mmaction2-0.24.1/resources/mmaction2_overview.gif new file mode 100644 index 0000000000000000000000000000000000000000..9e77ed8c1af30292ef703676660891fd45fcebe0 GIT binary patch literal 1701421 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%0D#4n0exrDE^q>* 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�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­a3zQwFYR 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