安装caffe,需要先安装cuda与cudnn,安装cuda之前,需要先安装nvidia的驱动,然后安装opencv,如果能将opencv踩过,那么安装openpose、caffe,我想都没有多大的问题了。
一、官网下载
git clone https://github.com/weiliu89/caffe.git
二、编译
cd caffe
cp Makefile.config.example Makefile.config
mkdir build
cd build
cmake ..
sudo make //首次编译加-j12 ,最好以一个线程编译,方便找问题--踩坑!
sudo make install
三、基本依赖
与opencv一样,需要什么就安装什么,基本上opencv编译过了,相关的依赖的都已经装好了。
四、错误
1、cmake nvcc fatal : Unsupported gpu architecture 'compute_20
根据百度的解决方案是:
注释相关配置行:
CUDA_ARCH := #-gencode arch=compute_20,code=sm_20 \
#-gencode arch=compute_20,code=sm_21 \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_52,code=sm_52 \
-gencode arch=compute_60,code=sm_60 \
-gencode arch=compute_61,code=sm_61 \
-gencode arch=compute_61,code=compute_61
转载:https://blog.csdn.net/tjuyanming/article/details/79249964
但是依旧报错,说明仍是存在其他的编译配置:
最后找到caffe/cmake/Cuda.cmake:
1 if(CPU_ONLY)
2 return()
3 endif()
4
5 # Known NVIDIA GPU achitectures Caffe can be compiled for.
6 # This list will be used for CUDA_ARCH_NAME = All option
7 #set(Caffe_known_gpu_archs "20 21(20) 30 35 50 52 61")
8 set(Caffe_known_gpu_archs "30 35 50 52 61")
原文链接:https://blog.csdn.net/fdd096030079/article/details/84451811
2、由于SSD的作者是基于Opencv2.0的环境下写出的SSD源码,而Opencv2和Opencv4的源码又做了比较大的改变,导致编译时会出现像变量没声明的错误,因此需要对以下几个文件进行修改。
错误1:
/src/caffe/layers/video_data_layer.cpp:55:30: error: ‘CV_CAP_PROP_FRAME_COUNT’ was not declared in this scope
total_frames_ = cap_.get(CV_CAP_PROP_FRAME_COUNT);
解决:
/caffe/src/caffe/layers/video_data_layer.cpp
//加上一个头文件
#include <opencv2/videoio.hpp>
//加上cv命名空间
using namespace cv;
//去掉CV_CAP_PROP_FRAME_COUNT,CV_CAP_PROP_POS_FRAMES前面的CV_
不过建议还是在文件头部进行宏定义:
#define CV_CAP_PROP_FRAME_COUNT CAP_PROP_FRAME_COUNT
#define CV_CAP_PROP_POS_FRAMES CAP_PROP_POS_FRAMES
错误2:
caffe/src/caffe/layers/window_data_layer.cpp:293:42: error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
cv_img = cv::imread(image.first, CV_LOAD_IMAGE_COLOR);
解决:
opencv4里的 CV_LOAD_IMAGE_COLOR 应该使用 cv::IMREAD_COLOR 来代替。同上定义宏,即可。
错误3:
/home/neuron-drop/workspace/caffe/src/caffe/util/bbox_util.cpp:2186:42: error: ‘CV_FILLED’ was not declared in this scope
CV_RGB(255, 255, 255), CV_FILLED);
解决:
/caffe/src/caffe/util/bbox_util.cpp
//修改CV_RGB为cv::Scalar,但应该注意两者的区别,前者为RGB,后者为BGR
//修改CV_FILLED为cv::FILLED
错误4:
caffe/src/caffe/util/bbox_util.cpp:2221:48: error: there are no arguments to ‘CV_FOURCC’ that depend on a template parameter, so a declaration of ‘CV_FOURCC’ must be available [-fpermissive]
cv::VideoWriter outputVideo(save_file, CV_FOURCC('D', 'I', 'V', 'X'),
解决:
cv::VideoWriter writer;
// 修改CV_FOURCC为writer.fourcc
错误5:
caffe/src/caffe/util/im_transforms.cpp:246:39: error: ‘CV_BGR2GRAY’ was not declared in this scope
cv::cvtColor(in_img, in_img_gray, CV_BGR2GRAY);
解决:
//加上以下
#define CV_GRAY2BGR cv::COLOR_GRAY2BGR
#define CV_BGR2GRAY cv::COLOR_BGR2GRAY
#define CV_BGR2HSV cv::COLOR_BGR2HSV
#define CV_BGR2Lab cv::COLOR_BGR2Lab
如果仍然报错,直接将 CV_*,如GRAY2BGR替换成对应于的成员调用方式cv::COLOR_GRAY2BGR,笔者就遇到。
错误6:
caffe/src/caffe/util/io.cpp:86:34: error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
int cv_read_flag = (is_color ? CV_LOAD_IMAGE_COLOR :
/home/neuron-drop/workspace/caffe/src/caffe/util/io.cpp:87:5: error: ‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope
CV_LOAD_IMAGE_GRAYSCALE);
解决:
/home/neuron-drop/workspace/caffe/src/caffe/util/io.cpp
加上
#define CV_LOAD_IMAGE_COLOR cv::IMAGE_COLOR
#define CV_LOAD_IMAGE_GRAYSCALE cv::IMAGE_GRAYSCALE
感兴趣的同学,可以参考opencv4模块的改动:
https://docs.opencv.org/master/d4/da8/group__imgcodecs.html
五、重新编译
cd build
rm * -rf
cmake ..
sudo make -j12
sudo make install
感谢前人踩坑,提示了我去对应着改动编译代码,否则以我浅薄的C语言知识去解决这个问题怕是遥遥无期了。特此,表示感谢!!
参考:
https://blog.csdn.net/u013915633/article/details/52530130
https://blog.csdn.net/tosonw/article/details/91043145
1.执行官方安装命令(https://brew.sh/) 报错:curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused 原因:访问问题 解决: (1)手动下载brew_install.rb 下载地址:https://downlo...
本章记录:Redis6.0.6安装于Ubuntu中遇到的坑 注:使用前记得apt-get update一下 报错1: 解决方案: 报错2: 解决方案: 报错3: 解决方案: 报错4: 解决方案: tcl8.6.1-src.tar.gz ...
安装 wscat 简单 据说可用了,但是环境报错了 网上没有说明关于 wscat 安装报错的问题。 有幸发现 这是 nodejs 语法不兼容问题。也有帖子介绍,系统的yum源安装nodejs版本太低。如果你的系统版本比较低,gcc库版本低,编译安装的时候有可能不成功,下面是yum安装的步骤 查看一下版本 确实低 升级 nodejs 版本即可解决 ...
问: cudatoolkit将装在系统环境还是虚拟环境中? 回答:应该是在系统环境中,如果想安装在虚拟环境中需要特别指明 conda install -n 环境名 包名 当你想要在conda指定的某个环境中安装包的方法 在公司服务器上conda create -n py38 python=3.8,出现了各种问题: 清华镜像慢到发指 卡在collecting package metadata和sov...
zkServer.sh start-foreground 启动报错 问题一 :Cannot open channel to 3 at election address /192.168.67.135:3888 java.net.NoRouteToHostException: No route to host (Host unreachable) 解决方法: 1.检查myid文件数字是...
报错一:缺少c/c++编译器 安装gcc和g++: 报错二:缺少openssl 安装openssl: 安装成功:...
一、 数据存储配置 由于clickhouse数据量一般都比较大,所以通常将数据存储路径放到挂载的大容量磁盘中,因此一般都会修改数据存储路径,那就需要修改以下配置: 首先编辑配置文件 找到上面的配置信息 修改为以下: 但是修改完后发现无法启动clickhouse,使用命令 启动时一直显示Waiting for server to start 但无法启动起来 这是因为/data/clickhouse/...
1.系统Ubuntu18.04 我一开始安装的是cuda9.1,后来发现tensorflow目前较大支持到cuda9.0,不支持cuda9.1。如果用cuda9.1需要自己编译整个tensorflow工程,因为我接下来还打算安装tensorflow,所以想了想,决定重新将cuda和cudnn升级到cuda9.0+cudnn7.0。 2.cuda安装查看: https://blog.csdn.net...
解决办法是依据出现错误的顺序而给出的,为了方便,可以直接先执行所有解决办法后再安装caffe。 1. ./include/caffe/common.hpp:5:27: fatal error: gflags/gflags.h: No such file or directory 解决办法:sudo apt-get install libgflags-dev 2. ./include/ca...
NVM 简介 NVM是npm / Microsoft / Google推荐用于Windows的 Node.js版本管理器 NVM GitHub地址 NVM Windows下载地址 下载地址中,nvm-noinstall.zip是免安装版,nvm-setup.zip是安装版。安装版可以自动设置环境变量。 安装 在安装NVM for Windows之前,您需要卸载任何现有版本的node.js. 还删除...