reconnaissance à deux voies
Nous utilisons un flux spatial et de mouvement CNN avec RESNET101 pour modéliser les informations vidéo dans l'ensemble de données UCF101.
Document de référence
- [1] Réseaux convolutionnels à deux voies pour la reconnaissance d'action dans les vidéos
- [2] Réseaux de segments temporels: vers de bonnes pratiques pour la reconnaissance de l'action profonde
- [3] TS-LSTM et inception temporelle: exploiter la dynamique spatio-temporelle pour la reconnaissance des activités
1. Données
1.1 Données d'entrée spatiales -> Frames RVB
- Nous extractons les trames RVB de chaque vidéo dans l'ensemble de données UCF101 avec le taux d'échantillonnage: 10 et enregistrez l'image .jpg dans le disque qui coûte environ 5,9 g.
1.2 Données d'entrée de mouvement -> Images de débit optique empilées
Dans le flux de mouvement, nous utilisons deux méthodes pour obtenir des données de flux optique.
- Téléchargez l'ensemble de données de flux optique TVL1 prétraité directement à partir de https://github.com/feichtenhofer/twostreamfusion.
- Utilisation de la méthode FlowNet2.0 pour générer une image de débit optique à 2 canaux et enregistrer respectivement son canal X, Y comme image .jpg dans le disque, ce qui coûte environ 56 g.
1.3 (Alternative) Téléchargez les données prétraitées directement à partir de Feichtenhofer / TwoStreamFusion)
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_jpegs_256.zip.001
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_jpegs_256.zip.002
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_jpegs_256.zip.003
cat ucf101_jpegs_256.zip* > ucf101_jpegs_256.zip
unzip ucf101_jpegs_256.zip
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_tvl1_flow.zip.001
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_tvl1_flow.zip.002
wget http://ftp.tugraz.at/pub/feichtenhofer/tsfusion/data/ucf101_tvl1_flow.zip.003
cat ucf101_tvl1_flow.zip* > ucf101_tvl1_flow.zip
unzip ucf101_tvl1_flow.zip
2. Modèle
2.1 CNN spatial
- Comme mentionné précédemment, nous utilisons Resnet101 d'abord pré-formé avec ImageNet puis affinie sur notre ensemble de données d'image RVB spatial UCF101.
2.2 Motion CNN
- Les données d'entrée de mouvement CNN sont une pile d'images d'écoulement optique qui contenaient 10 images de canaux X et 10 canaux Y, donc sa forme d'entrée est (20, 224, 224) qui peut être considérée comme une image à 20 canaux.
- Afin d'utiliser un poids pré-entraîné d'imageNet sur notre modèle, nous devons modifier les poids de la première couche de convolution pré-formée avec ImageNet de (64, 3, 7, 7) à (64, 20, 7, 7).
- Dans [2] wang fournit une méthode appelée ** Cross Modality Pre-
** Pour faire de telles poids de transformée de forme. Il en moyenne la valeur de poids en moyenne sur les canaux RVB et reproduire cette moyenne par le nombre de canaux d'entrée de flux de mouvement (qui est 20 est ce cas)
3. Stratégies de formation
3.1 CNN spatial
- Ici, nous utilisons les techniques du réseau de segments temporels. Pour chaque vidéos d'un mini-lot, nous sélectionnons au hasard 3 trames de chaque vidéo. Ensuite, un consensus entre les cadres sera dérivé comme prédiction au niveau vidéo pour calculer la perte.
3.2 Motion CNN
- Dans chaque mini-lot, nous sélectionnons au hasard 64 vidéos (taille du lot) à partir de vidéos de formation 9537 et sélectionnez de manière aléatoire 1 flux optique empilé dans chaque vidéo.
3.3 Augmentation des données
- Les deux flux appliquent la même technique d'augmentation des données, comme la culture aléatoire.
4. Méthode de test
- Pour chaque 3783 vidéos de tests, nous échantillons uniformément 19 images dans chaque vidéo et la prédiction du niveau de vidéo est le résultat de vote des 19 prédictions au niveau des trames.
- La raison pour laquelle nous choisissons le numéro 19 est que le nombre minimun de trames vidéo dans UCF101 est de 28 et nous devons nous assurer qu'il existe des trames suffisantes pour les tests dans 10 stream de mouvement de pile.
5. performace
| réseau | top1 |
|---|
| CNN spatial | 82,1% |
| Motion CNN | 79,4% |
| Fusion moyenne | 88,5% |
6. Modèle pré-formé
- Resnet101 spatial
- Motion Resnet101
7. Tester sur votre appareil
Flux spatial
- Veuillez modifier ce chemin et cette funcition pour s'adapter à l'ensemble de données UCF101 sur votre appareil.
- Formation et tests
python spatial_cnn.py --resume PATH_TO_PRETRAINED_MODEL
python spatial_cnn.py --resume PATH_TO_PRETRAINED_MODEL --evaluate
Flux de mouvement
- Veuillez modifier ce chemin et cette funcition pour s'adapter à l'ensemble de données UCF101 sur votre appareil.
- Formation et tests
python motion_cnn.py --resume PATH_TO_PRETRAINED_MODEL
python motion_cnn.py --resume PATH_TO_PRETRAINED_MODEL --evaluate