zoukankan      html  css  js  c++  java
  • 安装torch-opencv

    安装torch-opencv

    想在torch中使用光流法,于是就希望能够调用opencv中的光流代码,而torch中对opencv-3.1.0进行了封装,即torch-opencv包,如果仅仅安装opencv3.1,然后安装torch-opencv,当然也能安装成功,但是这时候调用光流法'Optflow=cv.optflow'总是失败,找不到这个包。这时候只能使用'require'cv.cudaoptflow' ,这个包里虽然光流方法比较全,但是似乎每帧图像都要单独转换为cuda类型,这个转换过程我跑起来感觉太慢了。
    如果我们不适用cuda的话,那么就需要安装opencv-contrib。

    下面记录下安装过程中碰到的问题和解决办法
    注: 服务器系统 : Ubuntu 14.04/ 16.04 LTS, 非root用户

    安装opencv3.1(包含 opencv-contrib)

    1. 依赖包
      这些依赖包我用的服务器上都已经装过了,因为服务器上之前安装了torch,Anaconda,matlab,cuda8.0,cudnn v6.0等软件,常用的依赖项都齐全。如果安装过程中提示缺少某些依赖项,先下载安装。

    GCC 4.4.x or later
    CMake 2.8.7 or higher
    Git
    GTK+2.x or higher, including headers (libgtk2.0-dev)
    pkg-config
    Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
    ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev

    1. 下载opencv,opencv-contrib源码
      进如你想安装的文件夹,比如我创建了一个Software/opencv文件夹用于安装

    1. $ cd Software/opencv 
    2. $ git clone https://github.com/Itseez/opencv.git 
    3. $ git clone https://github.com/Itseez/opencv_contrib.git 
    1. 这时候你会在Software/opencv目录下发现两个文件夹 opencv和opencv_contrib,进入opencv文件夹,病创建一个编译文件夹,这个文件夹用于存放cmake之后的文件,我们这里创建名为build的文件夹。 然后进入build目录

    1. $ cd opencv 
    2. $ mkdir build 
    3. $ cd build 

    然后开始编译

    1. cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=~Software/opencv//local -D OPENCV_EXTRA_MODULES_PATH=~/Software/opencv/opencv_contrib/modules/ .. 

    注意:

    • 最后的两个点(空格+两点)一定不能忽略

    • CMAKE_INSTALL_PREFIX 指定了编译后安装的路径,这里我在Software/opencv下新建了一个local文件夹,用于存在。在网上查到的许多资料中都是 CMAKE_INSTALL_PREFIX=/usr/local,但那得有root权限才可以,否则,向我们这样没有root权限的就会在后面安装过程中报错: /usr/local/ 没有权限

    • OPENCV_EXTRA_MODULES_PATH 是 opencv_contrib中modules的路径
      其他的参数我没用到,可以参看
      官方文档

    1. 编译成可执行文件,此时仍在build目录下

    1. make -j9 

    make后面的参数表示并行的线程数

    1. 安装,依然在build目录下

    1. $ make install 

    至此就安装完成opencv3.1和对应的contrib了
    其中涉及到的目录结构
    /Software
    ------------/opencv
    -----------------------/local
    -----------------------/opencv
    --------------------------------/build
    -----------------------/opencv_contrib

    安装torch-opencv

    参考官网torch-opencv installation

    1. luarocks install cv 

    然后出现下面的错误

    error

    1494665229582.jpg

    SSE2是一种指令集,现在一般的服务器都应该支持。
    我们可以查看服务器cpu信息:

    1. cat /proc/cpuinfo 

    看是否支持SSE2
    如下图

    cpuinfo

    1494665832070.jpg

    可以看到我们用的服务器支持SSE2指令集
    于是我们可以直接修改err信息中intrin_sse.hpp文件
    将原文件中1796行所在的函数如下修改
    enter description here

    然后再次执行'luarocks install cv'
    这个时候因为我们是在自己用户下安装的opencv,所以可能提示找不到opencv3.1需要指定我们编译的opencv3.1的目录

    1. OpenCV_DIR=~/Software/opencv/opencv/build/ luarocks install cv 

    我在安装过程中还出现了xphoto不兼容的错误信息,所以按照教程,我把这个包给屏蔽了,那么最终安装torch-opencv代码为

    1. OpenCV_DIR=~/Software/opencv/opencv/build/ DONT_WRAP="xphoto;superres" luarocks install cv 

    至此终于将torch-opencv安装成功

    测试

    enter description here

    1494666445029.jpg

    发现这时候可以成功调用cv.optflow包了 -

  • 相关阅读:
    datepicker 日期连续选择(需要改源码)
    js 闭包 详解
    chorme模拟微信浏览器
    用phpmailer发邮件 中文乱码问题解决
    微信公众号-开发者-自定义菜单-CLICK事件处理
    微信公众号-开发者-自定义菜单
    腾讯创始人谈风投经验:这9种公司不能投
    微信公众号-个人开发者中心接口权限
    wamp Server2.5 配置 自定义目录
    amcharts 网页绘图插件
  • 原文地址:https://www.cnblogs.com/YiXiaoZhou/p/6849619.html
Copyright © 2011-2022 走看看