reconocimiento de dos stream-acción
Utilizamos una transmisión espacial y de movimiento CNN con resnet101 para modelar información de video en el conjunto de datos UCF101.
Papel de referencia
- [1] Redes convolucionales de dos flujos para el reconocimiento de acción en videos
- [2] Redes de segmento temporal: hacia buenas prácticas para el reconocimiento de acción profunda
- [3] TS-LSTM e Incepción temporal: explotando la dinámica espacio-temporal para el reconocimiento de la actividad
1. Datos
1.1 Datos de entrada espacial -> marcos RGB
- Extraemos los marcos RGB de cada video en el conjunto de datos UCF101 con tasa de muestreo: 10 y ahorramos una imagen .jpg en el disco que cuesta aproximadamente 5.9 g.
1.2 Datos de entrada de movimiento -> Imágenes de flujo óptico apilados
En la transmisión de movimiento, utilizamos dos métodos para obtener datos de flujo óptico.
- Descargue el conjunto de datos de flujo óptico TVL1 preprocesado directamente desde https://github.com/feichtenhofer/twostreamfusion.
- Uso del método Flownet2.0 para generar una imagen de flujo óptico de 2 canales y guardar su canal X, Y como imagen .jpg en el disco respectivamente, que cuesta aproximadamente 56 g.
1.3 (alternativa) Descargue los datos preprocesados directamente 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. Modelo
2.1 CNN espacial
- Como se mencionó anteriormente, usamos RESNET101 PRINT PRINTO CON IMAGINET y luego ajustado en nuestro conjunto de datos de imagen RGB espacial UCF101.
2.2 MOVIMIENTO CNN
- Los datos de entrada de movimiento CNN son una pila de imágenes de flujo óptico que contenían 10 imágenes de canales x y 10 canales y, por lo que su forma de entrada es (20, 224, 224) que puede considerarse como una imagen de 20 canales.
- Para utilizar el peso previamente capacitado de Imagenet en nuestro modelo, tenemos que modificar los pesos de la primera capa de convolución previamente entrenada con Imagenet de (64, 3, 7, 7) a (64, 20, 7, 7).
- En [2] Wang proporciona un método llamado ** modalidad cruzada pre-
** Para hacer tales pesas de forma transformada. Primero promedia el valor de peso en los canales RGB y replica este promedio por el número de canal de entrada de flujo de movimiento (que es 20 es este caso)
3. Estrategias de capacitación
3.1 CNN espacial
- Aquí utilizamos las técnicas en la red de segmentos temporales. Para cada videos en un mini lote, seleccionamos aleatoriamente 3 cuadros de cada video. Luego, se derivará un consenso entre los cuadros como predicción a nivel de video para calcular la pérdida.
3.2 MOVIMIENTO CNN
- En cada mini lote, seleccionamos aleatoriamente 64 videos (tamaño por lotes) de los videos de entrenamiento 9537 y seleccionan al azar 1 flujo óptico apilado en cada video.
3.3 Aumento de datos
- Ambas flujo aplican la misma técnica de aumento de datos, como el cultivo aleatorio.
4. Método de prueba
- Por cada 3783 videos de prueba, muestreamos uniformemente 19 cuadros en cada video y la predicción del nivel de video es el resultado de votación de las 19 predicciones de nivel de cuadro.
- La razón por la que elegimos el número 19 es que la cantidad minimunta de marcos de video en UCF101 es 28 y tenemos que asegurarnos de que haya suficientes marcos para probar en 10 flujo de movimiento de pila.
5. Realizar
| red | Top1 |
|---|
| CNN espacial | 82.1% |
| MOVIMIENTO CNN | 79.4% |
| Fusión promedio | 88.5% |
6. Modelo previamente capacitado
- Resnet1101 espacial
- Movimiento resnet101
7. Prueba en su dispositivo
Flujo espacial
- Modifique esta ruta y esta función para adaptarse al conjunto de datos UCF101 en su dispositivo.
- Entrenamiento y prueba
python spatial_cnn.py --resume PATH_TO_PRETRAINED_MODEL
python spatial_cnn.py --resume PATH_TO_PRETRAINED_MODEL --evaluate
Transmisión de movimiento
- Modifique esta ruta y esta función para adaptarse al conjunto de datos UCF101 en su dispositivo.
- Entrenamiento y prueba
python motion_cnn.py --resume PATH_TO_PRETRAINED_MODEL
python motion_cnn.py --resume PATH_TO_PRETRAINED_MODEL --evaluate