OpenCV/caffe安装流程

2023-05-16

公司正在做人脸识别系统, 用到了OpenCV库, 下面就是根据网上资料以及自己多次部署安装的经验整理的安装流程, 希望能给一些人一点参考
系统: Ubuntu1604
CPU架构:一般是x86, 也有过几个ARM架构
本文中默认用户目录为 /home/nvidia/

安装nvidia驱动

  1. 去官网下载网下载http://www.geforce.cn/drivers
  2. 首先禁用nouveau
  • 查看属性
    $sudo ls -lh /etc/modprobe.d/blacklist.conf
  • 修改属性
    $sudo chmod 666 /etc/modprobe.d/blacklist.conf
  • 用vi编辑器打开
    $sudo vi /etc/modprobe.d/blacklist.conf
  • 在该文件后添加以下几行:
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb
sudo update-initramfs -u
  1. 安装
  • 首先禁用图形界面
sudo service lightdm stop
sudo chmod a+x NVIDIA-Linux-x86_86_64-xxx.run
$sudo ./NVIDIA-Linux-x86_86_64-xxx.run -no-x-check -no-nouveau-check -no-opengl-files
  • 重启图形界面
    sudo service lightdm start

-检测英伟达驱动是否安装成功, 命令:
nvidia-smi

安装cuda

下载cuda9.0
sudo ./xxxxx.run
开始会出现阻塞安装 这时候一直按住回车(也可以按住 s 键快速跳过)
到提示是否安装nvidia显卡驱动 这个时候选择否
剩下的都选是
安装完后配置环境变量(详见OpenCV环境变量配置, 在配置OpenCV时, 就带有cuda的配置)
测试:

cd  /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

cudnn安装

下载cudnn 一共两个包

sudo dpkg –i libcudnn7_n7_xxxxxx.deb
sudo dpkg –i libcudnn7-dev_ev_xxxxxx.deb

验证 dpkg -l|grep cudnn

OpenCV 安装依赖

要求必须是3.3.1版本
1、复制原文件备份sudo
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2、编辑源列表文件
sudo vi /etc/apt/sources.list
3、将原来的列表删除,添加如下内容

X86

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse

arm

deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe

4、运行sudo apt-get update

sudo apt install libgtk2.0-dev libgtk-3-dev
sudo sudo apt-get install cmake git libgtk-3-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
sudo apt-get install build-essential
sudo apt-get install python-dev python-pip python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libatlas-base-dev gfortran

sudo pip install pip -U -i https://pypi.mirrors.ustc.edu.cn/simple/
sudo pip install Theano -i https://pypi.mirrors.ustc.edu.cn/simple/
sudo pip install Keras  -i https://pypi.mirrors.ustc.edu.cn/simple/
sudo pip install Scipy -U -i https://pypi.mirrors.ustc.edu.cn/simple/
sudo pip install numpy -i https://pypi.mirrors.ustc.edu.cn/simple/

配置环境变量
在nvidia下设置环境变量
caffe
cuda
openCV

cd /home/nvidia/

vi .bashrc

#插入下列配置(地址根据情况修改)
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=/home/nvidia/caffe/build/install/lib:/home/nvidia/opencv-3.4.1/build/lib:$LD_LIBRARY_PATH

#保存文件后运行
source .bashrc

下载opencv 版本3.3.1!!!, 必须是3.3.1
在openCV文件夹下创建build文件夹

cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=./install ..   # (不要遗漏命令最后的“..”)
make -j8
sudo make install

(在运行第二行命令时可能会出现长时间卡在下载"ippicv_2017u3_lnx_intel64_general_20170822.tgz"的情况)
解决办法:
1. 手动下载“ippicv_2017u3_lnx_intel64_general_20170822.tgz”文件, 例如放在“/home/nvidia/” 目录下
2. 编辑ippicv.cmake文件,打开终端,输入:
gedit /home/nvidia/opencv-3.3.1/opencv/3rdparty/ippicv/ippicv.cmake
3. 将47行的
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
改为步骤1中手动下载的文件的本地路径:
"file:///home/nvidia" #(仅供参考,根据自己的路径填写)

Caffe安装

依赖库安装

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-dev

sudo apt-get install libatlas-base-dev 
sudo apt-get install libopenblas-dev 

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
cd /home/nvidia/caffe/cmake
vi Dependencies.cmake
set(OpenCV_DIR "/home/nvidia/viwo/opencv-3.3.1/build")

mkdir build
cd build
cmake ..
make -j4
make install
更新日志:
	日期:2018年10月15日
	内容:修改部分代码格式, 便于阅读
	
	日期:2018年12月19日
	内容:修正markdown标题显示问题
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenCV/caffe安装流程 的相关文章

  • linux-vdso.so.1介绍

    这段时间看Linux内核源码的时候 xff0c 经常碰到vdso这个东西 像在Feature fixup中 xff0c 获取时间等操作时 xff0c 网上搜了一下 xff0c 才知道了含义 xff0c 原来这是Linux为了解决和glibc
  • ECC密钥编程举例,并用它做签名和验签,并生成共享密钥

    下面的例子生成两对ECC密钥 xff0c 并用它做签名和验签 xff0c 并生成共享密钥 include lt string h gt include lt stdio h gt include lt openssl ec h gt inc
  • 最新OmniPeek无线驱动详细列表与下载说明/支持捉空口包的网卡

    OmniPeek无线驱动详细列表与下载 在进行无线网络分析时 xff0c Omnipeek需要安装特殊驱动来捕获管理 控制和数据帧 而且在OmniPeek停止不用时 xff0c 它们将作为普通驱动支持网络服务的正常运行 WildPacket
  • Html自我介绍

    lt doctype html gt lt html gt lt head gt lt meta charset 61 34 utf 8 34 gt lt title gt 兰博基尼 lt title gt lt style type 61
  • grub2下常见系统初始化错误的分析和解决

    原文连接http tieba baidu com p 2910461207 grub rescue gt grub gt initramfs 是开机错误时 xff0c 常见到的状况 我将分以下几个部份说明 xff1a 一 开机出现 grub
  • MSP-EXP430F5529LP: Error initializing emulator: No USB FET was found

    正常情况下 xff0c 安装了CCS之后 xff0c TI MSP430LaunchPad的驱动都可以自动安装好 主要是 xff1a MSP Application UART 和 MSP Debug Interface 当然 xff0c 非
  • CMakeLists.txt加载第三方库

    生成一个库文件 TgMath h ifndef TGMATH H define TGMATH H include 34 tgmath global h 34 class TGMATHSHARED EXPORT TgMath public T
  • ROS学习之订阅消息——Subscriber_代码分析

    接上篇 xff1a ROS学习之发布消息 Publisher 详解版本 xff1a 本代码文件名为 xff1a subscriber cpp include 34 ros ros h 34 include 34 std msgs Strin
  • LXC 介绍

    转自 xff1a https www cnblogs com xidongyu p 5767020 html LXC又名Linux container xff0c 是一种虚拟化的解决方案 xff0c 这种是内核级的虚拟化 主流的解决方案Xe
  • openstack原生网络和SDN网络对比

    1 原生Neutron架构图 xff1a 2 Networking odl的架构 3 ODL 处理过程 当OpenStack Neutron API接收到用户创建网络等操作请求 xff0c 它会调用ML2的相关方法 ML2已经定义了post
  • 树莓派 Raspberry Pi 3B+安装官方系统(一)

    两年前购买的树莓派 xff08 可看当时我的记录树莓派 3B 43 重装系统并配置 WiFi YouForever xff09 已经在角落里吃灰了好长时间 xff0c 一度以为已经损坏 xff0c 几天前试着拿出来折腾一下 xff0c 竟然
  • Rime——最好的输入法

    同步发布在博客 xff1a https www zhyong cn 9422 最近迷上了五笔输入法 xff0c 于是想找一款好用的五笔输入法软件 xff0c 最终确定鼎鼎大名的Rime输入法 一款跨平台的开源输入法 xff0c 支持Wind
  • Haar特征描述算子-人脸检测

    Haar特征描述算子 人脸检测 详细资料 3 1简介 Haar like特征最早是由Papageorgiou等应用于人脸表示 xff0c 在2001年 xff0c Viola和Jones两位大牛发表了经典的 Rapid Object Det
  • HTML(css+div)登录界面

    xff08 1 xff09 这是当时做的一个课程设计 xff0c 很多人想要图片 xff0c 在这里我把用到的所有图片资源分享下 xff08 2 xff09 链接 xff1a https pan baidu com s 1nUX1DQe a
  • 基于Matlab的GPU加速---for循环处理

    采用GPU加速时 xff0c 如遇for循环 xff0c 则很容易增加代码在GPU上运行的时间开销 在编程时 xff0c 使用矩阵和向量操作或arrayfun bsxfun pagefun替换循环操作来向量化代码 1 arrayfun函数
  • android ndk extern "C"

    C 43 43 的代码里面 xff1a extern 34 C 34 这是因为生成的二进制文件中 xff0c C和C 43 43 的符号表不相同造成的 Jni是按照C的生成规则去找函数的 xff0c 所以要加上extern C使编译器把函数
  • AdaBoost中利用Haar特征进行人脸识别算法分析与总结1——Haar特征与积分图

    目前因为做人脸识别的一个小项目 xff0c 用到了AdaBoost的人脸识别算法 xff0c 因为在网上找到的所有的AdaBoost的简介都不是很清楚 xff0c 让我看看头脑发昏 xff0c 所以在这里打算花费比较长的时间做一个关于Ada
  • 智能驾驶仿真场景构建技术

    随着汽车智能化程度的不断提高 xff0c 智能汽车通过环境传感器与周边行驶环境的信息交互与互联更为密切 xff0c 需应对的行驶环境状况也越来越复杂 xff0c 包括行驶道路 周边交通和气象条件等诸多因素 xff0c 具有较强的不确定性 难
  • Web应用程序的身份验证:Session认证、Token认证

    一 Web应用程序的身份验证 1 Session认证 用户向服务器发送用户名和密码 服务器验证通过后 xff0c 在当前对话 xff08 session xff09 里面保存相关数据 xff0c 如用户角色 xff0c 登陆时间等 服务器向
  • 计算机视觉: 物体分类,场景分类,事件分类

    主要总结一下最近看的几篇场景分类文献 xff0c 顺便总结场景 物体和事件分类的关系 1 ILSVRC 2015 Scene Classi cation Challenge 冠军 xff0c 主要贡献是Relay Backpropagati

随机推荐