Установка DensePose
Система DensePose-RCNN реализована в рамках фреймворка detectron. Этот документ основан на инструкциях по установке Detectron, для устранения неполадок обратитесь к документу по установке detectron (https://github.com/facebookresearch/Detectron/blob/master/INSTALL.md).
Требования:
Примечания:
Чтобы установить Caffe2 с поддержкой CUDA, следуйте инструкциям по установке с веб-сайта Caffe2 (https://caffe2.ai/docs/getting-started.html). Если у вас уже установлен Caffe2, убедитесь, что вы обновили свой Caffe2 до версии, включающей модуль Detectron (https://github.com/caffe2/caffe2/tree/master/modules/detectron).
Прежде чем продолжить, убедитесь, что ваша установка Caffe2 прошла успешно, выполнив следующие команды и проверив их вывод, как указано в комментариях.
# Чтобы проверить успешность сборки Caffe2:
python2 -c 'from caffe2.python import core' 2>/dev/null && echo "Успех" || echo "Неудача"
# Чтобы проверить успешность сборки GPU Caffe2:
# Это должно вывести число > 0, чтобы использовать Detectron
python2 -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'
Если пакет Python caffe2
не найден, вам, вероятно, потребуется настроить переменную среды PYTHONPATH
, чтобы включить его местоположение (/path/to/caffe2/build
, где build
— это каталог сборки CMake Caffe2).
Установите COCO API (https://github.com/cocodataset/cocoapi):
# COCOAPI=/путь/к/клонированию/cocoapi
git clone https://github.com/cocodataset/cocoapi.git $COCOAPI
cd $COCOAPI/PythonAPI
# Установите в глобальные пакеты сайта
make install
# Или, если у вас нет разрешений или вы предпочитаете
# не устанавливать COCO API в глобальные пакеты сайтов
python2 setup.py install --user
Обратите внимание, что инструкции типа # COCOAPI=/path/to/install/cocoapi
указывают на то, что вам следует выбрать путь, по которому вы хотели бы клонировать программное обеспечение, а затем соответствующим образом установить переменную окружения (COCOAPI
в этом случае).
Клонируйте репозиторий Densepose:
# DENSEPOSE=/путь/для/клонирования/densepose
git clone https://github.com/facebookresearch/densepose $DENSEPOSE
Установите зависимости Python:
pip install -r $DENSEPOSE/requirements.txt
Настройте модули Python:
cd $DENSEPOSE && make
Проверьте, проходят ли тесты Detectron (например, для теста SpatialNarrowAsOp (tests/test_spatial_narrow_as_op.py)):
python2 $DENSEPOSE/detectron/tests/test_spatial_narrow_as_op.py
Создайте библиотеку пользовательских операторов:
cd $DENSEPOSE && make ops
Убедитесь, что тесты пользовательского оператора пройдены:
python2 $DENSEPOSE/detectron/tests/test_zero_even_op.py
Получите необходимые файлы для запуска, обучения и оценки DensePose.
cd $DENSEPOSE/DensePoseData
bash get_densepose_uv.sh
Для обучения загрузите набор данных DensePose-COCO:
bash get_DensePose_COCO.sh
Для оценки получите необходимые файлы:
bash get_eval_data.sh
Создайте символическую ссылку для набора данных COCO в вашей папке datasets/data
.
ln -s /путь/к/coco $DENSEPOSE/detectron/datasets/data/coco
Создайте символические ссылки для аннотаций DensePose-COCO
ln -s $DENSEPOSE/DensePoseData/DensePose_COCO/densepose_coco_2014_minival.json $DENSEPOSE/detectron/datasets/data/coco/annotations/
ln -s $DENSEPOSE/DensePoseData/DensePose_COCO/densepose_coco_2014_train.json $DENSEPOSE/detectron/datasets/data/coco/annotations/
ln -s $DENSEPOSE/DensePoseData/DensePose_COCO/densepose_coco_2014_valminusminival.json $DENSEPOSE/detectron/datasets/data/coco/annotations/
Ваша локальная копия набора данных COCO по адресу /путь/к/coco
должна иметь следующее Структура директорий:
coco
| coco_train2014
| <im-1-name>.jpg
...
| <im-N-name>.jpg
| coco_val2014
| ...
| annotations
| instances_train2014.json
...
Мы предоставляем файл Dockerfile
, который вы можете использовать для создания образа Densepose на основе образа Caffe2, удовлетворяющего требованиям, указанным выше. Если вы хотите использовать образ Caffe2 отличный от того, который мы используем по умолчанию, убедитесь, что он включает модуль Detectron.
Создайте образ:
cd $DENSEPOSE/docker
docker build -t densepose:c2-cuda9-cudnn7 .
Запустите образ (например, для теста BatchPermutationOp test
):
nvidia-docker run --rm -it densepose:c2-cuda9-cudnn7 python2 detectron/tests/test_batch_permutation_op.py
Чтобы запустить вывод в контейнере Docker на основе подготовленного образа Docker, необходимо сделать все необходимые данные доступными внутри контейнера. Для этого сначала выполните шаги, описанные в разделе Fetch DensePose Data. Также можно предварительно загрузить все необходимые файлы весов, используемые для обучения / вывода. Затем запустите контейнер с хостом DensePoseData
и смонтированными каталогами COCO:
nvidia-docker run -v $DENSEPOSE/DensePoseData:/denseposedata -v /path/to/coco:/coco -it densepose:c2-cuda9-cudnn7 bash
Внутри контейнера необходимо заменить локальный каталог DensePoseData
на хост:
mv /densepose/DensePoseData /densepose/DensePoseDataLocal
ln -s /denseposedata DensePoseData
и выполните действия, описанные в Настройка набора данных COCO:
ln -s /coco /densepose/detectron/datasets/data/coco
ln -s /densepose/DensePoseData/DensePose_COCO/densepose_coco_2014_minival.json /densepose/detectron/datasets/data/coco/annotations/
ln -s /densepose/DensePoseData/DensePose_COCO/densepose_coco_2014_train.json /densepose/detectron/datasets/data/coco/annotations/
ln -s /densepose/DensePoseData/DensePose_COCO/densepose_coco_2014_valminusminival.json /densepose/detectron/datasets/data/coco/annotations/
выйдите из контейнера и зафиксируйте изменения:
docker commit $(docker ps --last 1 -q) densepose:c2-cuda9-cudnn7-wdata
Новый образ можно использовать для запуска вывода / обучения. Однако необходимо помнить о монтировании каталогов DensePoseData
и COCO:
nvidia-docker run --rm -v $DENSEPOSE/DensePoseData:/denseposedata -v /path/to/coco:/coco -it densepose:c2-cuda9-cudnn7-wdata <inference_or_training_command>
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )