Nous avons publié MMAction, une boîte à outils de compréhension d'action à part entière basée sur Pytorch. Il comprend la mise en œuvre de TSN ainsi que d'autres cadres STOA pour diverses tâches. Les leçons que nous avons apprises dans ce dépôt sont incorporées dans MMAction pour le faire entreprendre. Nous vous recommandons fortement de y passer. Ce repo restera ici pour des références historiques.
Remarque : Utilisez toujours git clone --recursive https://github.com/yjxiong/tsn-pytorch pour cloner ce projet. Sinon, vous ne pourrez pas utiliser les arches CNN de la série de créations.
Il s'agit d'une réimplémentation des réseaux de segments temporels (TSN) dans Pytorch. Tous les paramètres sont maintenus identiques à l'implémentation d'origine CAFFE.
Pour l'extraction de flux optique et la génération de liste de vidéos, vous devez toujours utiliser la base de code TSN d'origine.
Pour former un nouveau modèle, utilisez le script main.py
La commande pour reproduire les expériences TSN originales de la modalité RVB sur UCF101 peut être
python main.py ucf101 RGB < ucf101_rgb_train_list > < ucf101_rgb_val_list >
--arch BNInception --num_segments 3
--gd 20 --lr 0.001 --lr_steps 30 60 --epochs 80
-b 128 -j 8 --dropout 0.8
--snapshot_pref ucf101_bninception_ Pour les modèles de flux:
python main.py ucf101 Flow < ucf101_flow_train_list > < ucf101_flow_val_list >
--arch BNInception --num_segments 3
--gd 20 --lr 0.001 --lr_steps 190 300 --epochs 340
-b 128 -j 8 --dropout 0.7
--snapshot_pref ucf101_bninception_ --flow_pref flow_ Pour les modèles RVB-DIFF:
python main.py ucf101 RGBDiff < ucf101_rgb_train_list > < ucf101_rgb_val_list >
--arch BNInception --num_segments 7
--gd 40 --lr 0.001 --lr_steps 80 160 --epochs 180
-b 128 -j 8 --dropout 0.8
--snapshot_pref ucf101_bninception_ Après la formation, il y aura des points de contrôle enregistrés par Pytorch, par exemple ucf101_bninception_rgb_checkpoint.pth .
Utilisez la commande suivante pour tester ses performances dans le protocole de test TSN standard:
python test_models.py ucf101 RGB < ucf101_rgb_val_list > ucf101_bninception_rgb_checkpoint.pth
--arch BNInception --save_scores < score_file_name >
Ou pour les modèles de flux:
python test_models.py ucf101 Flow < ucf101_rgb_val_list > ucf101_bninception_flow_checkpoint.pth
--arch BNInception --save_scores < score_file_name > --flow_pref flow_