Zwei-Stream-Action-Anerkennung
Wir verwenden einen räumlichen und Bewegungsstrom -CNN mit ResNet101 für die Modellierung von Videoinformationen im UCF101 -Datensatz.
Referenzpapier
- [1] Zwei-Stream-Faltungsnetzwerke zur Aktionserkennung in Videos
- [2] Temporale Segmentnetzwerke: Auf dem Weg zu guten Praktiken für die tiefe Aktionserkennung
- [3] TS-LSTM und Temporal-Inception: räotemporale Dynamik für die Aktivitätserkennung ausnutzen
1. Daten
1.1 räumliche Eingangsdaten -> RGB -Frames
- Wir extrahieren RGB -Frames aus jedem Video im UCF101 -Datensatz mit Stichprobenrate: 10 und sparen als .JPG -Bild in der Festplatte, die ungefähr 5,9 g kosten.
1.2 Bewegungseingangsdaten -> Stapelte optische Flussbilder
Im Bewegungsstrom verwenden wir zwei Methoden, um optische Durchflussdaten zu erhalten.
- Laden Sie den vorverarbeiteten TVL1 Optical Flow -Datensatz direkt von https://github.com/feettenhofer/twostreamfusion herunter.
- Mithilfe der Methode von Flownet2.0 zum Erstellen von 2-Kanal-optischem Flow-Bild und dem Speichern des x-Kanals als .jpg-Bild in der Festplatte, die etwa 56 g kosten.
1.3 (alternativ) Laden Sie die vorverarbeiteten Daten direkt von Fennettenhofer/zweistreamfusion herunter) herunter.
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. Modell
2.1 räumliche CNN
- Wie bereits erwähnt, verwenden wir RESNET101 zuerst mit imagEnet vorgebildet und dann in unserem UCF101-RGB-Bilddatensatz eine Feinabstimmung.
2.2 Bewegung cnn
- Eingabedaten von Bewegungsdaten CNN sind ein Stapel optischer Flussbilder, die 10 x-Kanal- und 10-Y-Kanal-Bilder enthielten. Die Eingangsform ist daher (20, 224, 224), die als 20-Kanal-Bild betrachtet werden können.
- Um das vorgebrachte Gewicht vor dem Bild in unserem Modell zu verwenden, müssen wir die Gewichte der ersten Faltungsschicht modifizieren, die mit ImageNet von (64, 3, 7, 7) bis (64, 20, 7, 7) vorgebracht wurden.
- In [2] wang geben eine Methode namens ** Cross-Modalität vor-
** Um solche Gewichte zu verändern. Er durchschnittlich den Gewichtswert über die RGB -Kanäle und repliziert diesen Durchschnitt durch die Kanalzahl der Bewegungsstromeingänge (was 20 ist dieser Fall)
3.. Trainingsstrategien
3.1 räumliche CNN
- Hier verwenden wir die Techniken im zeitlichen Segmentnetzwerk. Für alle Videos in einem Mini-Batch wählen wir zufällig 3 Frames aus jedem Video aus. Dann wird ein Konsens unter den Frames als Vorhersage auf Videoebene für die Berechnung des Verlusts abgeleitet.
3.2 Bewegung cnn
- In jedem Mini-Batch wählen wir zufällig 64 (Stapelgröße) Videos aus 9537 Trainingsvideos und wählen in jedem Video zufällig 1 gestapelte optische Fluss aus.
3.3 Datenvergrößerung
- Beide Stream wenden die gleiche Datenerweiterungstechnik wie zufälliges Anbaus an.
4. Testmethode
- Für alle 3783 Testvideos probieren wir in jedem Video einheitlich 19 Frames und die Vorhersage der Videoebene das Abstimmungsergebnis aller 19 -Frame -Ebenenvorhersagen.
- Der Grund, warum wir die Nummer 19 auswählen, ist, dass die minimale Anzahl von Videorahmen in UCF101 28 beträgt und wir sicherstellen müssen, dass ausreichend Frames für das Testen im 10 -Stack -Bewegungsstrom vorhanden sind.
5. Performace
| Netzwerk | Top1 |
|---|
| Räumliche CNN | 82,1% |
| Bewegung cnn | 79,4% |
| Durchschnittliche Fusion | 88,5% |
6. Vorausgebildeter Modell
- Räumliche resnet101
- Motion Resnet101
7. Tests auf Ihrem Gerät
Räumlicher Strom
- Bitte ändern Sie diesen Pfad und diese Funktion für den UCF101 -Datensatz auf Ihrem Gerät.
- Training und Test
python spatial_cnn.py --resume PATH_TO_PRETRAINED_MODEL
python spatial_cnn.py --resume PATH_TO_PRETRAINED_MODEL --evaluate
Bewegungsstrom
- Bitte ändern Sie diesen Pfad und diese Funktion für den UCF101 -Datensatz auf Ihrem Gerät.
- Training und Test
python motion_cnn.py --resume PATH_TO_PRETRAINED_MODEL
python motion_cnn.py --resume PATH_TO_PRETRAINED_MODEL --evaluate