Lançamos a Mmaction, uma caixa de ferramentas de compreensão de ação completa baseada em Pytorch. Inclui implementação para o TSN, bem como outras estruturas STOA para várias tarefas. As lições que aprendemos neste repositório são incorporadas ao Mmaction para torná -lo Bettter. É altamente recomendável que você mude para ele. Este repo permanecerá aqui para referências históricas.
NOTA : Sempre use git clone --recursive https://github.com/yjxiong/tsn-pytorch para clonar este projeto. Caso contrário, você não poderá usar os arquivos da CNN da série Inception.
Esta é uma reimplementação de redes de segmento temporal (TSN) em Pytorch. Todas as configurações são mantidas idênticas à implementação original da CAFFE.
Para extração de fluxo óptico e geração de listas de vídeos, você ainda precisa usar a base de código TSN original.
Para treinar um novo modelo, use o script main.py
O comando para reproduzir as experiências originais da TSN da modalidade RGB no UCF101 pode ser
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_ Para modelos de fluxo:
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_ Para modelos RGB-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_ Após o treinamento, haverá pontos de verificação salvos por Pytorch, por exemplo ucf101_bninception_rgb_checkpoint.pth .
Use o comando a seguir para testar seu desempenho no protocolo de teste TSN padrão:
python test_models.py ucf101 RGB < ucf101_rgb_val_list > ucf101_bninception_rgb_checkpoint.pth
--arch BNInception --save_scores < score_file_name >
Ou para modelos de fluxo:
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_