Описание
py-faster-rcnn — это переписанная на Python реализация фреймворка обнаружения объектов Faster R-CNN, изначально разработанного на MATLAB. Этот проект, размещенный на GitHub, призван предоставить функциональную версию на Python для исследователей и разработчиков. Хотя он достигает схожей средней точности (mAP) с официальным кодом на MATLAB, на этапе тестирования он примерно на 10% медленнее. Эта разница в производительности объясняется тем, что некоторые операции выполняются на CPU в слоях Python, что приводит к примерно 220 мс на изображение для VGG16 по сравнению с 200 мс для версии на MATLAB.
Реализация построена на форке Fast R-CNN и включает такие функции, как приближенное совместное обучение, которое примерно в 1,5 раза быстрее чередующейся оптимизации для VGG16. Проект был первоначально описан в техническом отчете arXiv, а затем опубликован на NIPS 2015. Он распространяется под лицензией MIT.
Установка включает клонирование репозитория, сборку модулей Cython и компиляцию Caffe с поддержкой слоев Python. Пользователям рекомендуется убедиться, что их сборка Caffe включает `WITH_PYTHON_LAYER := 1` и, опционально, `USE_CUDNN := 1` в их `Makefile.config`. Проект предоставляет скрипты для загрузки предварительно вычисленных детекторов и предварительно обученных моделей ImageNet для таких сетей, как ZF и VGG16. Демо-скрипт доступен для демонстрации возможностей обнаружения на PASCAL VOC 2007.
Для обучения и тестирования пользователи могут использовать скрипты как для чередующейся оптимизации (`faster_rcnn_alt_opt.sh`), так и для приближенного совместного обучения (`faster_rcnn_end2end.sh`). Последний метод обучает сеть предложений регионов (RPN) совместно с сетью Fast R-CNN, что приводит к более быстрому времени обучения при сопоставимой точности обнаружения. Выходные артефакты, включая обученные модели и результаты тестов, организованы в каталоге `$FRCN_ROOT/output`.
Важно отметить, что py-faster-rcnn устарел. Проект рекомендует пользователям ознакомиться с Detectron, который включает реализацию Mask R-CNN. Официальный код Faster R-CNN на MATLAB доступен для тех, кто стремится воспроизвести результаты из статьи NIPS 2015.
Главное о py-faster-rcnn
Реализация Faster R-CNN на Python
Поддержка архитектур сетей VGG16, ZF и VGG_CNN_M_1024
Включает приближенное совместное обучение для более быстрой разработки моделей
Предоставляет демо для обнаружения объектов на PASCAL VOC 2007
Совместимость с Caffe и pycaffe
Предлагает скрипты для обучения и тестирования детекторов
Требует специфических конфигураций сборки Caffe для слоев Python
Распространяется под лицензией MIT
Устарел в пользу Detectron
Начало работы с py-faster-rcnn
Клонировать репозиторий: Получите код py-faster-rcnn с GitHub.
Собрать зависимости: Скомпилируйте модули Cython и Caffe с поддержкой слоев Python.
Загрузить модели: Получите предварительно вычисленные детекторы и предварительно обученные модели ImageNet.
Запустить демо: Выполните демо-скрипт для быстрой демонстрации обнаружения объектов.
Настроить обучение: Настройте наборы данных PASCAL VOC или COCO для обучения.
Обучить модель: Используйте предоставленные скрипты для чередующейся оптимизации или совместного обучения "end-to-end".
Тестировать модель: Оцените обученные модели с помощью экспериментальных скриптов.
Интегрировать: Используйте обученные модели для задач обнаружения объектов.
Варианты использования py-faster-rcnn
- Обнаружение объектов
- Анализ изображений
- Исследования в области компьютерного зрения
- Обнаружение в реальном времени
- Оценка наборов данных








