1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/kyxlx550-Deep-Feature-Flow

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Глубокий поток признаков для распознавания видео

Основные вкладчики этого репозитория включают Xizhou Zhu, Yuwen Xiong, Jifeng Dai, Lu Yuan, и Yichen Wei.

Введение

Глубокий поток признаков был впервые описан в статье CVPR 2017. Он предоставляет простую, быструю, точную и конечную-до-конечную архитектуру для распознавания видео (например, детекции объектов и семантического сегментирования в видео). Стоит отметить, что:

  • Глубокий поток признаков значительно ускоряет распознавание видео, применяя тяжеловесную сеть распознавания изображений (например, ResNet-101) на редких ключевых кадрах, и распространяя результаты распознавания (карты признаков) на другие кадры с помощью легковесной сети потока (например, FlowNet).
  • Вся система обучается конечной-до-конечной для задачи распознавания видео, что является ключевым для повышения точности распознавания. Прямое использование передовых методов оценки потока без конечного-до-конечного обучения приведет к значительно худшим результатам.
  • Глубокий поток признаков легко использует разреженно аннотированные наборы данных распознавания видео, где только небольшая часть кадров аннотирована с истинными метками.Нажмите на изображение, чтобы посмотреть нашу демонстрационную видеозапись

Демонстрационное видео на YouTube Демонстрационное видео на YouTube

Заявление об отказе

Это официальная реализация для Глубокого потока признаков для распознавания видео (DFF) на основе MXNet. Стоит отметить, что:

  • Оригинальная реализация основана на нашей внутренней версии Caffe для Windows. Существуют незначительные различия в точности и времени выполнения из-за множества деталей при смене платформы.
  • Код был протестирован на официальной MXNet@(commit 62ecb60) с дополнительными операторами для Deep Feature Flow.
  • Мы обучили нашу модель на основе предобученной на ImageNet ResNet-v1-101 модели и предобученной на Flying Chairs FlowNet модели с использованием конвертера моделей. Преобразованная ResNet-v1-101 модель производит незначительно меньшую точность (Top-1 ошибка на ImageNet val: 24.0% против 23.6%).
  • Этот репозиторий использует код из примера MXNet rcnn и mx-rfcn.

Лицензия© Microsoft, 2018. Используется под лицензией MIT.

Цитирование Deep Feature Flow

Если вы обнаружили, что Deep Feature Flow полезен в вашем исследовании, пожалуйста, рассмотрите возможность цитирования:

@inproceedings{zhu17dff,
    Author = {Xizhou Zhu, Yuwen Xiong, Jifeng Dai, Lu Yuan, Yichen Wei},
    Title = {Deep Feature Flow for Video Recognition},
    Conference = {CVPR},
    Year = {2017}
}

@inproceedings{dai16rfcn,
    Author = {Jifeng Dai, Yi Li, Kaiming He, Jian Sun},
    Title = {{R-FCN}: Object Detection via Region-based Fully Convolutional Networks},
    Conference = {NIPS},
    Year = {2016}
}

Основные результаты

обучающие данные тестовые данные mAP@0.5 время/изображение(Tesla K40) время/изображение(Maxwell Titan X)
Базовая модель(R-FCN, ResNet-v1-101) ImageNet DET train + VID train ImageNet VID validation 74.1 0.271с 0.133с
Deep Feature Flow(R-FCN, ResNet-v1-101, FlowNet) ImageNet DET train + VID train ImageNet VID validation 73.0 0.073с 0.034с

Время выполнения подсчитано на одном GPU (размер mini-batch равен 1 в режиме инференса, продолжительность ключевых кадров для Deep Feature Flow составляет 10).

Время выполнения легковесного FlowNet кажется немного большим на MXNet, чем на Caffe.

Требования: программное обеспечение1. MXNet из официального репозитория. Мы протестировали наш код на MXNet@(commit 62ecb60). В связи с быстрым развитием MXNet, рекомендуется проверить эту версию, если вы столкнулись с какими-либо проблемами. Мы можем периодически поддерживать этот репозиторий, если MXNet добавит важные функции в будущих релизах.2. Python 2.7. Рекомендуется использовать Anaconda2, так как он уже включает многие общие пакеты. Мы пока не поддерживаем Python 3, если вы хотите использовать Python 3, вам потребуется модифицировать код, чтобы он работал.

  1. Пакеты Python могут быть отсутствовать: cython, opencv-python >= Yöntem 3.2.0, easydict. Если pip настроен на вашей системе, эти пакеты должны быть доступны для загрузки и установки при выполнении

    pip install Cython
    pip install opencv-python==3.2.0.6
    pip install easydict==1.6
  2. Для пользователей Windows требуется Visual Studio 2015 для компиляции модуля cython. ## Требования: аппаратное обеспечение

Любые GPU NVIDIA с не менее 6 ГБ памяти должны подойти.

Установка

  1. Клонируйте репозиторий Deep Feature Flow, и мы назовём директорию, которую вы склонировали, Deep-Feature-Flow как ${DFF_ROOT}.
git clone https://github.com/msracver/Deep-Feature-Flow.git
  1. Для пользователей Windows запустите cmd .\init.bat. Для пользователей Linux запустите sh ./init.sh. Скрипты автоматически построят модуль cython и создадут некоторые папки.

  2. Установите MXNet: 3.1 Клонируйте MXNet и переключитесь на MXNet@(commit 62ecb60) командой

    git clone --recursive https://github.com/dmlc/mxnet.git
    git checkout 62ecb60
    git submodule update

    3.2 Скопируйте операторы из $(DFF_ROOT)/dff_rfcn/operator_cxx или $(DFF_ROOT)/rfcn/operator_cxx в $(YOUR_MXNET_FOLDER)/src/operator/contrib командой

    cp -r $(DFF_ROOT)/dff_rfcn/operator_cxx/* $(MXNET_ROOT)/src/operator/contrib/

    3.3 Скомпилируйте MXNet

    cd ${MXNET_ROOT}
    make -j4

    3.4 Установите Python-пакет MXNet командой

    cd python
    sudo python setup.py install

    3.5 Для продвинутых пользователей вы можете поместить свой Python-пакет в ./external/mxnet/$(YOUR_MXNET_PACKAGE), и измените MXNET_VERSION в ./experiments/dff_rfcn/cfgs/*.yaml на $(YOUR_MXNET_PACKAGE). Таким образом вы сможете быстро переключаться между различными версиями MXNet.## Демонстрация

  3. Чтобы запустить демонстрацию с нашим обученным моделью (на ImageNet DET + VID train), пожалуйста, скачайте модель вручную с OneDrive (для пользователей из материкового Китая, пожалуйста, попробуйте Baidu Yun), и поместите её в папку model/.

    Убедитесь, что структура папки выглядит так:

    ./model/rfcn_vid-0000.params
    ./model/rfcn_dff_flownet_vid-0000.params
  4. Запустите (размер пакета для инференса = 1)

    python ./rfcn/demo.py
    python ./dff_rfcn/demo.py

    или запустите (размер пакета для инференса = 10)

    python ./rfcn/demo_batch.py
    python ./dff_rfcn/demo_batch.py

Подготовка к обучению и тестированию

  1. Пожалуйста, скачайте ILSVRC2015 DET и ILSVRC2015 VID датасет, и убедитесь, что структура папок выглядит так:

    ./data/ILSVRC2015/
    ./data/ILSVRC2015/Annotations/DET
    ./data/ILSVRC2015/Annotations/VID
    ./data/ILSVRC2015/Data/DET
    ./data/ILSVRC2015/Data/VID
    ./data/ILSVRC2015/ImageSets
  2. Пожалуйста, скачайте предобученные модели ImageNet ResNet-v1-101 и Flying-Chairs FlowNet из OneDrive (для пользователей из материкового Китая, попробуйте Baidu Yun), и поместите их в папку ./model. Убедитесь, что структура папки выглядит следующим образом:

    ./model/pretrained_model/resnet_v1_101-0000.params
    ./model/pretrained_model/flownet-0000.params

Использование

  1. Все настройки наших экспериментов (номер GPU, набор данных и т.д.) хранятся в yaml-файлах конфигурации в папке ./experiments/{rfcn/dff_rfcn}/cfgs.2. На данный момент предоставлено два файла конфигурации: базовая модель кадра с R-FCN и глубокий потоковый фичей с R-FCN для ImageNet VID. Мы используем 4 GPU для обучения моделей на ImageNet VID.

  2. Для выполнения экспериментов запустите python-скрипт с соответствующим файлом конфигурации в качестве входных данных. Например, чтобы обучить и протестировать глубокий потоковый фичей с R-FCN, используйте следующую команду:

    python experiments/dff_rfcn/dff_rfcn_end2end_train_test.py --cfg experiments/dff_rfcn/cfgs/resnet_v1_101_flownet_imagenet_vid_rfcn_end2end_ohem.yaml

    Будет автоматически создан кэш-файл для сохранения модели и логов в папке output/dff_rfcn/imagenet_vid/.

  3. Пожалуйста, найдите более подробную информацию в файлах конфигурации и в нашем коде.

Разное

Код был протестирован под:

  • Ubuntu 14.04 с GPU Maxwell Titan X и процессором Intel Xeon CPU E5-2620 v2 @ 2.10GHz
  • Windows Server 2012 R2 с 8 K40 GPU и процессором Intel Xeon CPU E5-2650 v2 @ 2.60GHz
  • Windows Server 2012 R2 с 4 Pascal Titan X GPU и процессором Intel Xeon CPU E5-2650 v4 @ 2.30GHz

Часто задаваемые вопросы

В: Он говорит AttributeError: 'module' object has no attribute 'MultiProposal'.

О: Это потому что либо

  • вы забыли скопировать операторы в вашу папку MXNet

  • или вы скопировали в неправильное место

  • или вы забыли перекомпилировать и установить

  • или вы установили неправильную версию MXNet

    Пожалуйста, распечатайте mxnet.__path__, чтобы убедиться, что вы используете правильную версию MXNet

    В: Я столкнулся с segmentation fault в начале.

О: Выявлено совместимое ограничение между MXNet и opencv-python 3.0+. Мы рекомендуем вам всегда import cv2 перед import mxnet в основном скрипте.



В: Я обнаружил, что скорость обучения становится медленнее при длительном обучении.

A: Установлено, что MXNet на Windows имеет эту проблему. Поэтому мы рекомендуем запускать этот программный код на Linux. Вы также можете остановить его и возобновить процесс обучения, чтобы восстановить скорость обучения, если вы столкнулись с этой проблемой.



Q: Можете ли вы поделиться вашей реализацией Caffe?

A: По нескольким причинам (код основан на старой внутренней версии Caffe, перенос на публичную версию Caffe требует дополнительной работы, ограничение по времени и т.д.). Мы не планируем выпускать наш код Caffe. Поскольку слой преобразования легко реализовать, любой желающий может сделать pull request.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Microsoft, открытая библиотека для видеоидентификации, предоставляет глубокие признаковые потоки, обеспечивая простой, быстрый, точный и конвейерный фреймворк для видеоидентификации (например, обнаружение объектов и семантическое разделение видео). Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/kyxlx550-Deep-Feature-Flow.git
git@api.gitlife.ru:oschina-mirror/kyxlx550-Deep-Feature-Flow.git
oschina-mirror
kyxlx550-Deep-Feature-Flow
kyxlx550-Deep-Feature-Flow
master