SSD: один выстрел многопокс детектор объектов, в Pytorch
Реализация Pytorch однократного мультипокс-детектора из бумаги 2016 года Wei Liu, Dragomir Anguelov, Dumitru Erhan, Кристиана Сегеди, Скотта Рида, Ченг-Янга и Александра С. Берга. Официальный и оригинальный код CAFFE можно найти здесь.

Оглавление
- Установка
- Наборы данных
- Тренироваться
- Оценивать
- Производительность
- Демо
- Будущая работа
- Ссылка
Установка
- Установите Pytorch, выбрав свою среду на веб -сайте и выполнив соответствующую команду.
- Клонировать это хранилище.
- Примечание: в настоящее время мы поддерживаем только Python 3+.
- Затем загрузите набор данных, следуя инструкциям ниже.
- Теперь мы поддерживаем Visdom для визуализации потерь в реальном времени во время обучения!
- Использовать Visdom в браузере:
# First install Python server and client
pip install visdom
# Start the server (probably in a screen or tmux)
python -m visdom.server
- Затем (во время обучения) перейдите на http: // localhost: 8097/(см. Раздел поезда ниже для получения подробной информации).
- Примечание. Для обучения мы в настоящее время поддерживаем VOC и COCO и стремимся добавить поддержку ImageNet в ближайшее время.
Наборы данных
Чтобы облегчить ситуацию, мы предоставляем сценарии Bash для обработки загрузки набора данных и настройки для вас. Мы также предоставляем простые погрузчики данных, которые наследуют torch.utils.data.Dataset , что делает их полностью совместимыми с API torchvision.datasets .
Коко
Microsoft Coco: общие объекты в контексте
Скачать Coco 2014
# specify a directory for dataset to be downloaded into, else default is ~/data/
sh data/scripts/COCO2014.sh
Набор данных VOC
Pascal VOC: классы визуальных объектов
Скачать VOC2007 Trainval & Test
# specify a directory for dataset to be downloaded into, else default is ~/data/
sh data/scripts/VOC2007.sh # <directory>
Скачать VOC2012 Trainval
# specify a directory for dataset to be downloaded into, else default is ~/data/
sh data/scripts/VOC2012.sh # <directory>
Обучение SSD
- Сначала загрузите FC-восстановленные VGG-16 Pytorch Base Weews Weews по адресу: https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth
- По умолчанию мы предполагаем, что вы загрузили файл в
ssd.pytorch/weights Dir:
mkdir weights
cd weights
wget https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth
- Для обучения SSD с помощью сценария поезда просто укажите параметры, перечисленные в
train.py как флаг или вручную изменить их.
- Примечание:
- Для тренировок, графический процессор NVIDIA настоятельно рекомендуется для скорости.
- Инструкции по использованию/установке VISDOM см. В разделе установки.
- Вы можете забрать обучение с контрольной точки, указав путь как один из учебных параметров (опять же, см.
train.py для вариантов)
Оценка
Чтобы оценить обученную сеть:
Вы можете указать параметры, перечисленные в файле eval.py , отметив их или вручную изменив их.

Производительность
VOC2007 Тест
карта
| Оригинал | Преобразованные веса Weiliu89 | С нуля без данных AUG | С нуля с данными AUG |
|---|
| 77,2 % | 77,26 % | 58,12% | 77,43 % |
Кадр
GTX 1060: ~ 45,45 кадров в секунду
Демо
Используйте предварительно обученную сеть SSD для обнаружения
Скачать предварительно обученную сеть
- Мы пытаемся предоставить Pytorch
state_dicts (DICT TENSORS) последних определений модели SSD, обученных различным наборам данных. - В настоящее время мы предоставляем следующие модели Pytorch:
- SSD300, обученный VOC0712 (новейшие веса питор)
- https://s3.amazonaws.com/amdegroot-models/ssd300_map_77.43_v2.pth
- SSD300, обученный VOC0712 (оригинальные веса кофе)
- https://s3.amazonaws.com/amdegroot-models/ssd_300_voc0712.pth
- Наша цель - воспроизвести эту таблицу из оригинальной бумаги
Попробуйте демо -ноутбук
- Убедитесь, что у вас установлен тетрадь Jupyter.
- Две альтернативы для установки ноутбука Юпитера:
Если вы установили Pytorch с Conda (рекомендуется), то у вас уже есть. (Просто перейдите в SSD.Pytorch Cloned Repo и RUN): jupyter notebook
При использовании PIP:
# make sure pip is upgraded
pip3 install --upgrade pip
# install jupyter notebook
pip install jupyter
# Run this inside ssd.pytorch
jupyter notebook
- Теперь перейдите к
demo/demo.ipynb по адресу http: // localhost: 8888 (по умолчанию) и есть в этом!
Попробуйте демонстрацию веб -камеры
- Работает на процессоре (возможно, придется настроить
cv2.waitkey - Эта демонстрация в настоящее время требует привязки OpenCV2+ W/ Python и встроенная веб -камера
- Вы можете изменить веб -камеру по умолчанию в
demo/live.py
- Установите пакет Imutils для использования многопоточного процессора:
- Запуск
python -m demo.live открывает веб -камеру и начинает обнаруживать!
Тодо
Мы накопили следующий список дел, который мы надеемся завершить в ближайшем будущем
Авторы
Примечание: к сожалению, это всего лишь наше хобби, а не работа на полный рабочий день, поэтому мы сделаем все возможное, чтобы держать вещи в курсе, но никаких гарантий. При этом, благодаря всем за вашу постоянную помощь и отзывы, так как это действительно ценится. Мы постараемся решить все как можно скорее.
Ссылки
- Wei Liu, et al. «SSD: один выстрел Multibox Detector». ECCV2016.
- Оригинальная реализация (Caffe)
- Огромное спасибо Алексу Колтуну и его команде в WebyClip за помощь в завершении части увеличения данных.
- Список других великих портов SSD, которые были источниками вдохновения (особенно сетевой репо):
- Цепь, керас, mxnet, tensorflow