caffe是处理cv比较好用的,caffe的难度就是make时你一定要编译成功,这里面有很多问题的,上一篇博客已经给出了如何编译的链接,反正多失败几次就能弄明白,因为我是用cpu配置的,相对简单多了。
1。demo.py中一定要设置成cpu的,关于gpu的#掉
#CUDA = locate_cuda()
...
...
#self.set_executable('compiler_so', CUDA['nvcc'])
...
...
#Extension('nms.gpu_nms',
#[‘nms/nms_kernel.cu', 'nms/gpu_nms.pyx'],
#library_dirs=[CUDA['lib64']],
#libraries=['cudart'],
#language='c++',
#runtime_library_dirs=[CUDA['lib64']],
## this syntax is specific to this build system
## we're only going to use certain compiler args with nvcc and not with
## gcc the implementation of this trick is in customize_compiler() below
#extra_compile_args={'gcc': ["-Wno-unused-function"],
#’nvcc': ['-arch=sm_35',
#’—ptxas-options=-v',
#’-c’,
#’—compiler-options',
#”’-fPIC'"]},
#include_dirs = [numpy_include, CUDA['include']]
#)
2。编译成功后,(cpu版本),当你在运行faster-rcnn时,出现NO module named gpu_nms时,注释${FCNN}/py-faster-rcnn/lib/fast_rcnn/nms_wrapper.py
中有关gpu的代码。
from fast_rcnn.config import cfg
#from nms.gpu_nms import gpu_nms
from nms.cpu_nms import cpu_nms
def nms(dets, thresh, force_cpu=False):
"""Dispatch to either CPU or GPU NMS implementations."""
if dets.shape[0] == 0:
return []
#if cfg.USE_GPU_NMS and not force_cpu:
# return gpu_nms(dets, thresh, device_id=cfg.GPU_ID)
else:
return cpu_nms(dets, thresh)
3。因为我是运行的VGG-16版本的rcnn,当我运行./demo.py时,会出现核心转储,此时你运行sudo ./demo.py --cpu 就ok了
4。切忌你要测试的.py文件里面GPU的一定要设置好它
5。Makefile.config中的
WITH_PYTHON_LAYER := 1
去掉注释
参考链接
http://blog.csdn.net/tingyue_/article/details/53432071