Caffe Opencv4 Cuda10.2

  • caffe+opencv4
    • 下载模型
    • 修改config
    • 修改Makefle
      • 生成软连接
    • 修改源程序
    • 编译

caffe+opencv4

  • 记录一个长时间的安装记录
  • 因为项目需要安装caffe,但是需要高版本的cuda opencv4兼容。
  • 经过长时间的摸索终于成功安装
  • 注:caffe只支持到cudnn7.x,,放弃使用cudnn。https://github.com/BVLC/caffe/issues/6970
  • Xavier 的安装与x86安张大同小异,主要是文件的位置关系。通过SDK安装cuda Opencv的路径可能与电脑安装的有点区别。可以灵活应用软连接‘’sudo ln -s xxx xxx

下载模型

cd
git clone [https://github.com/BVLC/caffe.git](https://github.com/BVLC/caffe.git)

before install , install the dependencies:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-devsudo apt-get install libopenblas-devsudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

修改config

cd caffecp Makefile.config.example Makefile.configvim Makefile.config
修改代码:
#USE_OPENCV := 0
#OPENCV_VERSION := 3
#WITH_PYTHON_LAYER := 1为:
USE_OPENCV := 1
OPENCV_VERSION := 4
WITH_PYTHON_LAYER := 1修改代码:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial /usr/local/include/opencv4
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/local/bin# 最后是自己的opencv的include和bin路径,解决fatal error: opencv2/core/core.hpp问题#Xavier **/usr/lib/aarch64-linux-gnu**修改代码:
PYTHON_INCLUDE := /usr/include/python2.7 \/usr/lib/python/dist-packages/numpy/core/include为:
PYTHON_INCLUDE := /usr/include/python3.8 \/usr/lib/python3/dist-packages/numpy/core/include# 根据自己的路径修改修改代码:
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为:
CUDA_ARCH := -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
##Xavier is 72# 根据自己的架构和版本修改,可参考https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/

修改Makefle

vim Makefile修改代码:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)修改代码:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem hdf5_hl hdf5 m opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs# 解决undefined reference to cv::imread(cv::String const&, int)...,可参考https://github.com/BVLC/caffe/issues/2348修改代码:
PYTHON_LIBRARIES ?= boost_python python2.7为:
PYTHON_LIBRARIES ?= boost_python38 python3.8# 根据自己的版本修改

生成软连接

  • 针对找不到lhdf5_hl和lhdf5的错误
cd /usr/lib/x86_64-linux-gnu
**//Xavier  是arm 架构#####
cd /usr/lib/aarch64-linux-gnu**
\\然后根据情况执行下面两句:
sudo ln -s libhdf5_serial.so.10.1.0 libhdf5.so
sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so

修改源程序

  • 支持OPENCV

    • 修改Caffe/src/caffe/util/io.cpp,解决error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
vim src/caffe/util/io.cpp修改代码:
cv_img = cv::imread(image.first, CV_LOAD_IMAGE_COLOR);为:
cv_img = cv::imread(image.first,cv::IMREAD_COLOR);# 需要修改两处
  • 修改src/caffe/layers/window_data_layer.cpp,解决error: ‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope...
vim src/caffe/layers/window_data_layer.cpp修改代码:
int cv_read_flag = (is_color ? CV_LOAD_IMAGE_COLOR :CV_LOAD_IMAGE_GRAYSCALE);为:
int cv_read_flag = (is_color ? cv::IMREAD_COLOR :cv::IMREAD_GRAYSCALE);
  • src/caffe/data_transformer.cpp中添加opencv头文件,解决.build失败
vim src/caffe/data_transformer.cpp修改代码:
#ifdef USE_OPENCV
#include <opencv2/core/core.hpp>
#endif  // USE_OPENCV为:
#ifdef USE_OPENCV
#include <opencv2/core/core.hpp>
#include <opencv2/core/mat.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/highgui/highgui_c.h>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/imgproc/imgproc_c.h>
#include <opencv2/opencv.hpp>
#endif  // USE_OPENCV
  • include/caffe/common.hpp中增加opencv4支持(第70行后)
vim include/caffe/common.hpp新增代码:
// Supporting OpenCV4
#if (CV_MAJOR_VERSION == 4)
#define CV_LOAD_IMAGE_COLOR cv::IMREAD_COLOR
#define CV_LOAD_IMAGE_GRAYSCALE cv::IMREAD_GRAYSCALE
#endif以下为原代码(用于定位):
// See PR #1236
namespace cv { class Mat; }

编译

方案1:

make all -j8make pycaffe -j8

方案2:

sudo make -j8
sudo make distribute
  • 若import caffe 报错 Traceback (most recent call last): File “”, line 1, in ModuleNotFoundError: No module named 'caffe’
sudo echo export PYTHONPATH="~/caffe/python" >> ~/.bashrcsource ~/.bashrc

Caffe安装 (OPENCV4 Cuda10.2 Xavier)相关推荐

  1. 海思Hi3519AV100深度学习方案(一)darknet转caffmodel之caffe安装(基于Ubuntu16.04+python3.5+opencv3.4.0+cuda10.0)

    系列文章目录 海思Hi3519AV100深度学习方案(二)darknet转caffmodel之模型转换(yolov3+caffe+python3.5) 文章目录 系列文章目录 前言 一.系统已有环境检 ...

  2. tx2 安装opencv4.1.1及opencv_contrib-4.1.1

    目前tx2系统是jetpack4.5,并且刷机的时候把opencv也给刷进去了,所以我知道自己的opencb是4.4.1.但这里,我把opencv版本查询命令也给附上 #opencv3 opencv ...

  3. [svc]caffe安装笔记-显卡购买

    caffe,这是是数据组需要做一些大数据模型的训练(深度学习), 要求 服务器+显卡(运算卡), 刚开始老板让买的牌子是泰坦的(这是2年前的事情了). 后来买不到这个牌子的,(jd,tb)看过丽台的, ...

  4. 71 mac boook pro 无 gpu 下caffe 安装

    71 mac boook pro 无 gpu 下caffe 安装 1.首先安装homebrew工具,相当于Mac下的yum或apt ruby -e "$(curl -fsSL https:/ ...

  5. Ubuntu 14.04+cuda 7.5+caffe安装配置

    换了新电脑,整个人喜气洋洋,然后就屁颠屁颠地开始配置caffe的使用环境. 可是!!!配置这个坑爹的caffe环境让我重装系统N次加上重装cudaN次,后来发现有好多都是很琐碎的注意事项,好多人都没有 ...

  6. VS2013安装OpenCV4.1版本并搭建一个小程序

    <VS2013安装OpenCV4.1版本并搭建一个小程序> [注意1] 在"链接器=>输入=>附加依赖库"中,只添加opencv_world410d.lib ...

  7. [深度学习]Ubuntu16.04 + GTX 1050 + cuda8.0 + cuDNN5.1 + caffe安装详解

    首先吐个槽,ubuntu + nvidia的显卡驱动简直是反人类,害的我折腾了一天多. 一.问题及解决办法 寒假放假回家没事干,正好给家里电脑升级了显卡gtx1050可以跑跑CNN.我在实验室的显卡是 ...

  8. 2015.08.17 Ubuntu 14.04+cuda 7.5+caffe安装配置

    2016.06.10 update cuda 7.5 and cudnn v5 2015.10.23更新:修改了一些地方,身边很多人按这个流程安装,完全可以安装 折腾了两个星期的caffe,windo ...

  9. opencv python安装linux_Ubuntu16.04、Python3.6下安装opencv4遇到的问题

    1.安装opencv 在网上搜索Ubuntu16.04下安装opencv4想必一定搜到大把的编译源码安装opencv的教程,其实安装opencv只需一句命令: pip3 install opencv- ...

  10. caffe安装_目标检测之caffe-ssd模型训练与测试

    最近把一个ssd网络的net..prototxt网络结构和自己生成的hdf5格式数据一起做训练时发现经常报错,因为ssd中一些层在caffe中并没有实现,需要自己写相应的.cpp,.cu文件重新编译, ...

最新文章

  1. 【实验楼】python简明教程
  2. 搭建Zabbix分布式监控
  3. 2021年春季学期-信号与系统-第十五次作业参考答案-第三小题参考答案
  4. 关于form/input 的autocomplete=off属性
  5. Mysql、Oracle、SQLServer等数据库参考文档免费分享下载
  6. 试题 基础练习 回文数
  7. 17 | 如何正确地显示随机消息?
  8. 近5年133个Java面试问题列表
  9. 独家总结| 一文读懂卡尔曼滤波
  10. java并发编程之HappenBefore
  11. ubuntu服务器+apache2绑定域名(以腾讯云域名为例)
  12. 筛选法建立初始堆_MTT法检测细胞增殖
  13. snakeyaml生成yaml文件空值显示问题
  14. 个人电脑bt文件服务器,简单实用 教你轻松架设个人BT服务器
  15. VOC数据集格式介绍
  16. 杭电计算机研究生就业报告,实力杭电 | 留杭就业人数又双叒叕NO.1,快来围观杭电2018届毕业就业质量报告...
  17. 最土团购系统常见问题的汇总
  18. 【数据结构与算法】之深入解析“滑动谜题”的求解思路与算法示例
  19. 厦门商业贷款转公积金攻略
  20. 【2D游戏制作笔记】给游戏战斗增加一点打击感

热门文章

  1. 框架基础---动态代理
  2. 如何使用Erdas裁剪万能地图下载器下载的谷歌卫星地图
  3. misc学习笔记2-图形密码
  4. plc编程及应用_常见进制在PLC编程中的应用,学PLC必备~
  5. 伺服电机常用参数设置_伺服电机功能及作用_伺服电机参数设置
  6. 更新pip下载jupyter lab
  7. 600岁故宫“新政”“萌萌哒”
  8. 从SVN检出项目下载到本地后出现错误
  9. 电子签章引入jar包
  10. Vue - 图片放大镜(vue-piczoom)