安装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)
依赖包
这些依赖包我用的服务器上都已经装过了,因为服务器上之前安装了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
下载opencv,opencv-contrib源码
进如你想安装的文件夹,比如我创建了一个Software/opencv文件夹用于安装
- $ cd Software/opencv
- $ git clone https://github.com/Itseez/opencv.git
- $ git clone https://github.com/Itseez/opencv_contrib.git
这时候你会在Software/opencv目录下发现两个文件夹 opencv和opencv_contrib,进入opencv文件夹,病创建一个编译文件夹,这个文件夹用于存放cmake之后的文件,我们这里创建名为build的文件夹。 然后进入build目录
- $ cd opencv
- $ mkdir build
- $ cd build
然后开始编译
- 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的路径
其他的参数我没用到,可以参看
官方文档
编译成可执行文件,此时仍在build目录下
- make -j9
make后面的参数表示并行的线程数
安装,依然在build目录下
- $ make install
至此就安装完成opencv3.1和对应的contrib了
其中涉及到的目录结构
/Software
------------/opencv
-----------------------/local
-----------------------/opencv
--------------------------------/build
-----------------------/opencv_contrib
安装torch-opencv
- luarocks install cv
然后出现下面的错误

SSE2是一种指令集,现在一般的服务器都应该支持。
我们可以查看服务器cpu信息:
- cat /proc/cpuinfo
看是否支持SSE2
如下图

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

然后再次执行'luarocks install cv'
这个时候因为我们是在自己用户下安装的opencv,所以可能提示找不到opencv3.1需要指定我们编译的opencv3.1的目录
- OpenCV_DIR=~/Software/opencv/opencv/build/ luarocks install cv
我在安装过程中还出现了xphoto不兼容的错误信息,所以按照教程,我把这个包给屏蔽了,那么最终安装torch-opencv代码为
- OpenCV_DIR=~/Software/opencv/opencv/build/ DONT_WRAP="xphoto;superres" luarocks install cv
至此终于将torch-opencv安装成功
测试

发现这时候可以成功调用cv.optflow包了 -
安装torch-opencv的更多相关文章
- 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是 ...
- Python3.5安装及opencv安装
Python安装注意事项(版本3.5,系统windows)1.安装好Python后将D:\Program Files\Python.D:\Program Files\Python\Scripts加入P ...
- 下载安装和OpenCV匹配的Android开发环境
ok blog Android与OpenCV——重新下载安装和OpenCV匹配的Android开发环境 !!OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Jav ...
- Android与OpenCV——重新下载安装和OpenCV匹配的Android开发环境
Android与OpenCV——重新下载安装和OpenCV匹配的Android开发环境 !!OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接口调用Ope ...
- (原)Ubuntu16 中安装torch版的cudnn
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5668471.html 参考网址: https://devtalk.nvidia.com/default ...
- ubuntu 14.04 安装torch及编译环境zbstudio
ubuntu 14.04 安装torch及编译环境zbstudio torch zbstudio 本来是安装官网给的步骤安装torch的,可是碰到一系列的问题,后来参考网上的安装方法安装成功了 官网安 ...
- 在Ubuntu 12.04系统中安装配置OpenCV 2.4.3的方法
在Ubuntu 12.04系统中安装配置OpenCV 2.4.3的方法 对于,在Linux系统下做图像识别,不像在windows下面我们可以利用Matlab中的图像工具箱来实现,我们必须借助Ope ...
- (原)netbeans中添加anaconda3安装的opencv
转载请注明出处: https://www.cnblogs.com/darkknightzh/p/9974310.html 新装了ubuntu16.04后,直接安装了anaconda3,调试c++程序时 ...
- 解决国内安装tensorflow, opencv等安装不成功或下载太慢问题
解决国内安装tensorflow, opencv等安装不成功或下载太慢问题 复制自博客:https://blog.csdn.net/jorg_zhao/article/details/80075293 ...
- centos安装torch==1.4.0与相关细节
对于某些直接安装torch==1.4.0报错的情况(没错,就是我遇到了) 在网上查找了,大概的解决方法是先安装一个低版本的torch和torchvision, torchvision是pytorch中 ...
随机推荐
- java多线程----ReentrantReadWriteLock
package com.test; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks ...
- python之路----钻石继承
钻石继承 继承顺序 class A(object): def test(self): print('from A') class B(A): def test(self): print('from B ...
- 安装webpack出现警告: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents):
警告如下: npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\chokidar\node_mo ...
- linux不常用但很有用的命令(持续完善)
Linux登录后设置提示信息: /etc/issue 本地端登录前显示信息文件 /etc/issue.net 网络端登录前显示信息文件 /etc/motd 登陆后显示信息文件 可以添加以下几个常用选项 ...
- 20145206邹京儒《网络对抗》逆向及Bof基础实践
20145206邹京儒<网络对抗>逆向及Bof基础实践 1 逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:ma ...
- tf.equal的使用
tf.equal(A, B)是对比这两个矩阵或者向量的相等的元素,如果是相等的那就返回True,反正返回False,返回的值的矩阵维度和A是一样的 import tensorflow as tf im ...
- 'telnet'不是内部或外部命令,怎么办?
['telnet'不是内部或外部命令,也不是可运行的程序或批处理文件]当你想用telnet命令时,发现提示这句话怎么办?其实很简单,接下来为大家介绍下如何使用 1. 一般只有windows7才会出现这 ...
- Python3基础 函数 收集参数(tuple)+普通参数 的示例
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- linux的dns被劫持
环境:ubuntu16.04 解说:ubuntu使用dnsmasq获取要解析的网站ip,dnsmasq通过域名服务器获取网站ip,并将ip缓存起来,那么就可以减少对外网域名服务器的访问,从而可以使系统 ...
- C#学习笔记(二):变量、数据类型和运算符
变量.数据类型 给变量赋值,如果想指定float,在数字后面加上F/f:如果想指定decimal,在数字后面加上m. 0-9:48-57 A-Z:65-90 a-z:97-122 ...