安装torch-opencv

torch
torch-opencv
opencv-3.1.0
opencv-contrib

想在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 

然后出现下面的错误

1494665229582.jpg

SSE2是一种指令集,现在一般的服务器都应该支持。

我们可以查看服务器cpu信息:

  1. cat /proc/cpuinfo 

看是否支持SSE2

如下图

1494665832070.jpg

可以看到我们用的服务器支持SSE2指令集

于是我们可以直接修改err信息中intrin_sse.hpp文件

将原文件中1796行所在的函数如下修改

然后再次执行'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安装成功

测试

1494666445029.jpg

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

安装torch-opencv的更多相关文章

  1. Torch,Tensorflow使用: Ubuntu14.04(x64)+ CUDA8.0 安装 Torch和Tensorflow

    系统配置: Ubuntu14.04(x64) CUDA8.0 cudnn-8.0-linux-x64-v5.1.tgz(Tensorflow依赖) Anaconda 1. Torch安装 Torch是 ...

  2. Python3.5安装及opencv安装

    Python安装注意事项(版本3.5,系统windows)1.安装好Python后将D:\Program Files\Python.D:\Program Files\Python\Scripts加入P ...

  3. 下载安装和OpenCV匹配的Android开发环境

    ok blog Android与OpenCV——重新下载安装和OpenCV匹配的Android开发环境 !!OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Jav ...

  4. Android与OpenCV——重新下载安装和OpenCV匹配的Android开发环境

    Android与OpenCV——重新下载安装和OpenCV匹配的Android开发环境 !!OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接口调用Ope ...

  5. (原)Ubuntu16 中安装torch版的cudnn

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5668471.html 参考网址: https://devtalk.nvidia.com/default ...

  6. ubuntu 14.04 安装torch及编译环境zbstudio

    ubuntu 14.04 安装torch及编译环境zbstudio torch zbstudio 本来是安装官网给的步骤安装torch的,可是碰到一系列的问题,后来参考网上的安装方法安装成功了 官网安 ...

  7. 在Ubuntu 12.04系统中安装配置OpenCV 2.4.3的方法

    在Ubuntu 12.04系统中安装配置OpenCV 2.4.3的方法   对于,在Linux系统下做图像识别,不像在windows下面我们可以利用Matlab中的图像工具箱来实现,我们必须借助Ope ...

  8. (原)netbeans中添加anaconda3安装的opencv

    转载请注明出处: https://www.cnblogs.com/darkknightzh/p/9974310.html 新装了ubuntu16.04后,直接安装了anaconda3,调试c++程序时 ...

  9. 解决国内安装tensorflow, opencv等安装不成功或下载太慢问题

    解决国内安装tensorflow, opencv等安装不成功或下载太慢问题 复制自博客:https://blog.csdn.net/jorg_zhao/article/details/80075293 ...

  10. centos安装torch==1.4.0与相关细节

    对于某些直接安装torch==1.4.0报错的情况(没错,就是我遇到了) 在网上查找了,大概的解决方法是先安装一个低版本的torch和torchvision, torchvision是pytorch中 ...

随机推荐

  1. php CI 实战教程第一季百度经验杂志

    phpCI实战教程第一季_百度经验杂志_百度经验http://jingyan.baidu.com/magazine/16428 杂志为本人php CI实战教程系列经验 从实际项目使用中写系列实战经验, ...

  2. 配置mysql主从数据库

    来源地址:https://www.cnblogs.com/alvin_xp/p/4162249.html Mysql主从配置,实现读写分离 大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡 ...

  3. Non-resolvable parent POM

    今天导入公司项目,maven聚合项目,但是项目目录结构不正确,内层的项目的parent不是外层项目,这个......有点无语,结果导入直接报错.同事说,我们导入是好好的啊,原来他们用的是eclipse ...

  4. 20145101《Java程序设计》第一周学习总结

    20145101 <Java程序设计>第1周学习总结 教材学习内容总结 开学的第一周,通过课上老师的介绍和课下阅读教材我简单的了解java的发展历程,了解了JVM.JRE.JDK分别是什么 ...

  5. 【附10】kibana创建新的index patterns

    elk整体架构图: 一.logstash indexer 配置文件: input { stdin{} } filter { } output { elasticsearch { hosts => ...

  6. EF、Repository、Factory、Service间关系

    EF和Repository 实体(Entities):具备唯一ID,能够被持久化,具备业务逻辑,对应现实世界业务对象. 值对象(Value objects):不具有唯一ID,由对象的属性描述,一般为内 ...

  7. 2、Python快速入门(0529)

    要素7:输入/输出 1.python解释器提供了3种标准文件对象,分别为标准输入.标准输出和标准错误,它们在sys模块中分别以sys.stdin.sys.stdout和sys.stderr形式提供: ...

  8. POJ 2506 Tiling(递推+大整数加法)

    http://poj.org/problem?id=2506 题意: 思路:递推.a[i]=a[i-1]+2*a[i-2]. 计算的时候是大整数加法.错了好久,忘记考虑1了...晕倒. #includ ...

  9. vue-cli 组件运用

    // components ----- helloworld.vue <script> export default { name: 'Hellowworld', props: { //接 ...

  10. python datetime模块来获取当前的日期和时间

    #!/usr/bin/python # -*- coding: UTF- -*- import datetime i = datetime.datetime.now() print ("当前 ...