Linux命令行下 DensePose使用环境搭建

DensePose 已经集成到 Detectron2 框架,按照官方文档,使用 pip 安装成 python package 即可:Detectron2 DensePose QuickStart

以下是老版本安装记录:

本文章是为了下一次安装环境方便,并非问题-解决性质。
遇到的部分问题及解决方案,请查看另一篇文章

1.新建conda环境-densepose

# 如果没有添加镜像源可能下载速度会比较慢,添加中科大镜像源
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
# 创建densepose环境
conda create -n densepose python=2.7

2.安装依赖包

# 安装依赖包
conda install -c https://conda.anaconda.org/menpo opencv3
conda install protobuf=3.6.1 pyyaml=3.12 matplotlib=2.1.0 
conda install Cython mock scipy h5py memory_profiler mkl-include future pydot

如果上述依赖conda无法安装,可以使用pip

3.安装Caffe2

18年,Caffe2 开源代码正式并入 PyTorch,因此直接安装 PyTorch即可。
可以在PyTorch官网查看安装命令,注意不要安装最新版本,安装nightly。

# 需要有GPU,这一步下载会稍微慢一些。
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch-nightly
# conda无法安装,可使用pip
pip install --upgrade torch torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple
# 检查Caffe2是否成功安装
python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
# 检查GPU可用(输出为GPU个数)
python2 -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'

4.安装COCOAPI

# clone cocoapi到当前目录下
git clone https://github.com/cocodataset/cocoapi.git cocoapi 
# 进入目录
cd cocoapi/PythonAPI

# 编译
make install
# 如果报错则运行
python2 setup.py install --user

5.安装DensePose

# clone denspoese到当前目录下
git clone https://gitee.com/mirrors/DensePose.git densepose
# 进入densepose目录
cd densepose
# 编译
make
# 将detectron ops lib加入前缀 
# 1、在虚拟环境中查找文件 libcaffe2_detectron_ops_gpu.so
find ~ -name libcaffe2_detectron_ops_gpu.so


# 2、修改env.py第54行
vim detectron/utils/env.py
prefixes = [_CMAKE_INSTALL_PREFIX, sys.prefix, sys.exec_prefix] + sys.path + ['/home/用户名/miniconda3/envs/densepose/lib/python2.7/site-packages/torch/']
# 检查 Deterctron
python detectron/tests/test_spatial_narrow_as_op.py
# 将cmake/Caffe2路径加入到环境变量中(该方法重启终端失效)
# 1、在虚拟环境中查找caffe2的cmake
find ~ -name Caffe2 | grep cmake
# 2、加入到环境变量CMAKE_PREFIX_PATH
export CMAKE_PREFIX_PATH="/home/用户名/anaconda3/envs/densepose/lib/python2.7/site-packages/torch/share/cmake/Caffe2"
# 指定CUDA版本
export CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.2
# 修改CMakeLists.txt
vim CMakeLists.txt

# 文件前加
set(Caffe2_DIR "/home/lingfeimo/anaconda3/envs/densepose/lib/python2.7/site-packages/torch/share/cmake/Caffe2")
include_directories("/home/lingfeimo/anaconda3/envs/densepose/include")
add_library(libprotobuf STATIC IMPORTED)
set(PROTOBUF_LIB "/home/lingfeimo/anaconda3/pkgs/libprotobuf-3.6.1-hdbcaa40_1001/lib/libprotobuf.a")
set_property(TARGET libprotobuf PROPERTY IMPORTED_LOCATION "${PROTOBUF_LIB}")

# find_package后加
include_directories(${CAFFE2_INCLUDE_DIRS})

# 两个target_link_libraries里加入libprotobuf
target_link_libraries(caffe2_detectron_custom_ops caffe2_library libprotobuf)
target_link_libraries(caffe2_detectron_custom_ops_gpu caffe2_gpu_library libprotobuf)
# 安装
make ops
# 验证安装成功
python detectron/tests/test_zero_even_op.py

6、获取DensePose data

cd DensePoseData
# Get necessary files to run, train and evaluate DensePose.
bash get_densepose_uv.sh
# For evaluation, get the necessary files:
bash get_eval_data.sh

7、运行推理程序

# --output-dir:推理结果存放路径  最后一行:数据集存放路径
python tools/infer_simple.py \
    --cfg configs/DensePose_ResNet101_FPN_s1x-e2e.yaml \
    --output-dir DensePoseData/t_shirt_IUV/ \
    --image-ext jpg \
    --wts https://dl.fbaipublicfiles.com/densepose/DensePose_ResNet101_FPN_s1x-e2e.pkl \
    /home/lingfeimo/cz/densepose/DensePoseData/t_shirt
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值