Опознание с двумя потоками
Мы используем пространственную и потоку движения CNN с RESNET101 для моделирования видео информации в наборе данных UCF101.
Справочная бумага
- [1] Средственные сети с двумя потоками для распознавания действий в видео
- [2] сети временных сегментов: к хорошей практике для глубокого распознавания действий
- [3] TS-LSTM и временная введения: использование пространственно-временной динамики для распознавания деятельности
1. Данные
1.1 Пространственные входные данные -> рамки RGB
- Мы извлекаем рамки RGB из каждого видео в наборе данных UCF101 с частотой выборки: 10 и сохраняем как изображение .jpg на диске, которое стоит около 5,9 г.
1.2 Входные данные движения -> Сложные изображения оптических потоков
В потоке движения мы используем два метода для получения данных оптического потока.
- Загрузите предварительный набор данных оптического потока TVL1 непосредственно с https://github.com/feichtenhofer/twostreamfusion.
- Используя метод Flownet2.0 для генерации двухканального оптического потока изображения и сохранить его x, y-канал как изображение .jpg на диске соответственно, что стоит около 56 г.
1.3 (Альтернатива) Загрузите предварительные данные непосредственно из 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. Модель
2.1 Пространственный CNN
- Как упоминалось ранее, мы используем Resnet101, сначала предварительно обученный с ImageNet, а затем тонкую настройку на нашем наборе данных Image RGB UCF101.
2.2 Движение CNN
- Входные данные движения CNN представляют собой стек оптических изображений потока, которые содержали 10 x-канальных и 10-канальных изображений, поэтому его входная форма (20, 224, 224), которые можно рассматривать как 20-канальное изображение.
- Чтобы использовать предварительно обученный вес ImageNet на нашей модели, мы должны изменить веса первого свертки, предварительно обученного ImageNet от (64, 3, 7, 7) до (64, 20, 7, 7).
- В [2] Ван обеспечивает метод, называемый ** Крест-модальность, предварительно
** Чтобы сделать такие веса, преобразование формы. Впервые он в среднем значения веса по каналам RGB и повторяет это среднее количество по количеству канала ввода потока движения (что 20 является этим случаем)
3. Стратегии обучения
3.1 Пространственный CNN
- Здесь мы используем методы в сети временных сегментов. Для каждого видео в мини-партии мы случайным образом выбираем 3 кадра из каждого видео. Тогда консенсус среди кадров будет вынесен как прогноз уровня видео для расчета потери.
3.2 Движение CNN
- В каждой мини-партии мы случайным образом выбираем видео 64 (размер пакета) из 9537 учебных видео и еще случайно выбираем 1 сложенный оптический поток в каждом видео.
3.3 Увеличение данных
- Оба потока применяют одну и ту же метод увеличения данных, такой как случайное обрезку.
4. Метод тестирования
- Для каждых 3783 тестирования видео мы единообразными примерными 19 кадрами в каждом видео, и прогноз уровня видео является результатом голосования всех 19 прогнозов на уровне кадров.
- Причина, по которой мы выбираем номер 19, заключается в том, что минимальное количество видео кадров в UCF101 составляет 28, и мы должны убедиться, что существует достаточное количество кадров для тестирования в 10 стеке потока движения.
5. Выполнить
| сеть | топ1 |
|---|
| Пространственный CNN | 82,1% |
| Движение CNN | 79,4% |
| Средний слияние | 88,5% |
6. Предварительно обученная модель
- Пространственный Resnet101
- Движение Resnet101
7. Тестирование на вашем устройстве
Пространственный поток
- Пожалуйста, измените этот путь и эту функцию, чтобы соответствовать набору данных UCF101 на вашем устройстве.
- Обучение и тестирование
python spatial_cnn.py --resume PATH_TO_PRETRAINED_MODEL
python spatial_cnn.py --resume PATH_TO_PRETRAINED_MODEL --evaluate
Поток движения
- Пожалуйста, измените этот путь и эту функцию, чтобы соответствовать набору данных UCF101 на вашем устройстве.
- Обучение и тестирование
python motion_cnn.py --resume PATH_TO_PRETRAINED_MODEL
python motion_cnn.py --resume PATH_TO_PRETRAINED_MODEL --evaluate