2018年cvpr《Deep Ordinal Regression Network for Monocular Depth Estimation》的作者公开源码的框架是caffe的框架。
1.环境
- 电脑系统:ubuntu16.04
- python2.7
- opencv3.2.0
- cudnn6.0
2.caffe编译
首先解压下载的压缩包,解压后进入caffe文件夹,按照官网Caffe 的安装手册安装所需的依赖。
对于Makefile.config的自定义修改,可以参照《深度学习与计算机视觉》中的第7章的caffe安装内容,其中主要修改的地方为
USE_CUDNN := 1 #line 5
OPENCV_VERSION := 3 #line 21
WITH_PYTHON_LAYER := 1 #line 92
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include #line 95
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib #line 96
其中第95和96行多添加关于 hdf5 的信息,修改为
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/ #line 95
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial #line 96
值得注意的是DORN网络中有自定义的网络层,所以这里必须 设置WITH_PYTHON_LAYER := 1,即去掉注释符号 #,如果没有注销,在测试模型的时候,会出现Check failed: registry.count(type) == 1 (0 vs. 1) unknown layer type:的问题,原因就是无法识别自定义网络层 "ordinal_decode_layer"。
设置完Makefile.config后,就可以在当前目录下 make pycaffe,编译成功后,就可以测试作者提供的模型了。
3.后记
笔者在配置中出现的两个问题忘记设置 WITH_PYTHON_LAYER 和 numpy版本设置过高。
4. 出现问题
import skimage.io ImportError: No module named skimage.io
解决方法
sudo apt-get install python-skimage
libcudart.so.8.0: cannot open shared object file: No such file or directory
解决方法
首先检查/usr/local/cuda-8.0/lib64目录,看看libcudart.so.8.0是否存在,如果不存在,则先正确安装cuda。如果确定cuda已经存在,这个问题的出现于Linux的ldconfig命令有关。
所需的libcudart.so.8.0如果正确安装的话可以使用
sudo ldconfig /usr/local/cuda-8.0/lib64
ImportError: No module named google.protobuf.internal
解决方法
sudo apt-get install python-protobuf
网友评论