您的位置:首页 > 运维架构

Ubuntu16.04+Opencv2.4.13+caffe配置跟踪算法Goturn

2017-06-26 23:35 806 查看
在深度学习的过程中,参考了很多网上的资料,感谢很多大神把自己的经验分享给我们这些小白。今天在配置goturn的过程中遇到了很多问题,大部分在github上找到了解决方案,将自己的解决方法分享出来,希望对大家有用。有些问题参考网上资料解决了,但是并不明白原理,欢迎知情大神指点迷津^~^

算法背景资料:

文章的题目:《Learning to Track at 100 FPS with Deep Regression Networks》

算法简称:GOTURN(Generic Object Tracking Using Regression Networks)

文章以及附件:http://davheld.github.io/GOTURN/GOTURN.html

算法源码:https://github.com/autocyz/GOTURN

编译配置

注意

大家如果和我一样对cmake不熟悉的话可以通过cmake gui来操作

goturn的编译需要通过cmake交叉编译,需要安装opencv和caffe,建议大家先通过caffe与opencv的编译在进行goturn的编译

cmake安装:

$ sudo apt-get install cmake


cmake gui的安装:

$ sudo apt-get install cmake-qt-gui


1. Cmake编译安装Opencv

www.linuxidc.com/Linux/2014-12/110045.htm

2. Cmake编译安装Caffe

2.1 安装依赖库

caffe的的编译需要很多的lib文件和支持模块:

$ 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 libhdf5-serial-dev

$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

$ sudo apt-get install python-numpy

$ sudo apt-get install python-dev


2.2 安装Anaconda

下面给出了anaconda的官方网站,找到对于的python版本,下载对应Linux版本的文件:

www.continuum.io/downloads

注意下载自己电脑对应的版本!

下载完成后在其路径下输入bash指令,完成安装:

$ bash Anaconda2-4.3.0-Linux-x86_64.sh


2.3 安装显卡驱动与CUDA和Cudnn

2.3.1显卡驱动

安装CUDA之前需要先安装显卡驱动,显卡必须是NVIDIA显卡。

在终端中输入以下指令:

$ sudo  add-apt-repositoryppa:graphics-drivers/ppa


之后刷新软件库并安装最新驱动:

$ sudo apt-get update

$ sudo apt-get install nvidia-367

$ sudo apt-get install nvidia-settings nvidia-prime

$ sudo apt-get install mesa-common-dev

$ sudo apt-get install freeglut3-dev


安装完成后通过下面命令查看是否安装成功:

$ nvidia-settings


如果出现显卡相关信息则安装成功

2.3.2安装CUDA

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台,是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。首先查看自己的GPU能不能进行计算,算力如何,网址如下:

developer.nvidia.com/cuda-downloads

选择自己对应的版本和安装方式,安装指令如图所示。安装完之后检查nvcc,即在终端中输入nvcc应出现相应选项。

环境变量配置

安装完毕后,再声明一下环境变量,并将其写入到 ~/.bashrc 的尾部

$ export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}

$ export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}


2.3.3安装CUDNN

cudnn为优化GPU加速计算的程序,首先从官网上下载cudnn的安装包。这里一定要注意,安装对应自己cuda版本的的cudnn!

将安装包解压,将此安装包放在home路径下即可,并在当前路径下进行解压,解压后的文件夹名为cuda。

在home路径下打开终端:

$ cd cuda/include (进入下载好的/cuda/include文件夹)
$ sudo cp *.h /usr/local/cuda/include/  (注意这里是你自己的cuda的安装地址,复制*.h文件)


关闭终端并重新打开(也可以返回最开始的目录)

$ cd cuda/lib64

$ sudo cp libcudnn* /usr/local/cuda/lib64/


终端运行:

$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*


2.4安装Caffe

通过git把caffe的源码下载下来。

$ git clone https://github.com/BVLC/caffe.git[/code] 
下载完成之后,进入CAFFE文件夹, 进入里面的PYTHON文件夹,然后输入

$ for req in $(cat requirements.txt); do pip install $req; done


好的,那么下面就准备编译了,准备编译之前,跟新一下anaconda的gcc库,caffe在python接口下使用时只支持libgcc5版本,因此需要跟新

$ conda update libgcc


以下给出两种安装caffe的方式,普通安装和cmake安装。普通安装caffe:根据给定的makefile文件安装caffe。

普通安装caffe参考博客:

blog.csdn.net/angelfish91/article/details/56019558

注意:Goturn中要求用cmake来install caffe。

2.4.1cmake安装caffe

给出官网教程:caffe.berkeleyvision.org/installation.html 最下面的CMake Build<
bbea
/p>

$ mkdir build

$ cd build

$ cmake ..

$ make all

$ make install

$ make runtest

出现的错误:

问题1:

/usr/bin/ld: cannot find -lopencv_dep_cudart

collect2: error: ld returned 1 exit status

src/caffe/CMakeFiles/caffe.dir/build.make:30208: recipe for target

‘lib/libcaffe.so.1.0.0’ failed

make[2]: * [lib/libcaffe.so.1.0.0] Error 1

CMakeFiles/Makefile2:304: recipe for target

‘src/caffe/CMakeFiles/caffe.dir/all’ failed

make[1]: * [src/caffe/CMakeFiles/caffe.dir/all] Error 2

Makefile:127: recipe for target ‘all’ failed

make: * [all] Error 2

解决方法参考:

devtalk.nvidia.com/default/topic/970325/jetson-tx1/cmake-cannot-find-lopencv_dep_cudart/

即在终端输入:

$ ln -s /usr/local/cuda8-0/lib64/libcudart.so /usr/local/lib/

$ ln -s /usr/local/cuda8-0/lib64/libcudart.a /usr/local/lib/


Cmake的GUI中修改:

$set(CUDA_USE_STATIC_CUDA_RUNTIME OFF)


点击caffe/build 文件夹中的CMakeCache.txt可以直接打开cmake gui.(注意点击advance才能出现这个选项)

问题2:

fatal error: caffe/proto/caffe.pb.h: No such file or directory

include “caffe/proto/caffe.pb.h”

解决方法参考:

blog.csdn.net/u012258999/article/details/56001541

用protoc从caffe/src/caffe/proto/caffe.proto生成caffe.pb.h和caffe.pb.cc

protoc语法参考如下(路径请根据自己情况):

$ ~/caffe/build$ protoc --cpp_out=/home/sophie/caffe3/include/caffe/ caffe.proto


之后在~/caffe/include/caffe/proto目录下新建文件夹,命名为proto,然后把编译出来的caffe.pb.h和caffe.pb.cc放进去之后,错误消失。

3. Cmake编译安装Goturn

给出官网指南:

github.com/autocyz/GOTURN

问题1:

/home/angelfish/GOTURN/src/native/vot.h:50:22: fatal error: trax.h: No

such file or directory

compilation terminated.

CMakeFiles/GOTURN.dir/build.make:62: recipe for target

‘CMakeFiles/GOTURN.dir/src/helper/bounding_box.cpp.o’ failed

make[2]: * [CMakeFiles/GOTURN.dir/src/helper/bounding_box.cpp.o]

Error 1

make[2]: * Waiting for unfinished jobs….

CMakeFiles/Makefile2:215: recipe for target

‘CMakeFiles/GOTURN.dir/all’ failed

make[1]: * [CMakeFiles/GOTURN.dir/all] Error 2

Makefile:83: recipe for target ‘all’ failed

make: * [all] Error 2

解决方法参考:

github.com/davheld/GOTURN/issues/2

在GOTURN的CMakeList.txt文档中

# Add src to include directories.
include_directories(src)


后面加上

include_directories(src/native)


问题解决!

问题2:

vot.cpp:(.text+0x4cc): undefined reference to trax_cleanup’ collect2: error: ld returned 1 exit status

CMakeFiles/test_tracker_vot.dir/build.make:175: recipe for target ‘test_tracker_vot’ failed make[2]: *_* [test_tracker_vot]

Error 1 CMakeFiles/Makefile2:305: recipe for target ‘CMakeFiles/test_tracker_vot.dir/all’ failed

make[1]: *** [CMakeFiles/test_tracker_vot.dir/all]

Error 2 Makefile:75: recipe for target ‘all’ failed make: *** [all] Error 2

解决方法参考:

github.com/davheld/GOTURN/issues/1

下载 traxhttps://github.com/votchallenge/trax/ 并且cmake

在GOTURN的CMakeList.txt文档中:

add_executable (test_tracker_vot src/test/test_tracker_vot.cpp)

target_link_libraries(${PROJECT_NAME} /home/public/git/trax/build/libtrax.so)

target_link_libraries (test_tracker_vot ${PROJECT_NAME})


后添加:

target_link_libraries(${PROJECT_NAME} /home/sparrow/trax/build/libtrax.so)


注意修改路径

测试阶段

下载预训练模型,可以通过终端输入:

bash scripts/download_trained_model.sh


建议通过迅雷下好复制到nets/models/pretrained_model 文件下中

测试:

下载数据集:

www.votchallenge.net/vot2014/dataset.html

运行测试脚本(vot_folder为数据集文件夹名称):

bash scripts/show_tracker_test.sh vot_folder


测试时间在我的显卡(GTX965)上平均为11ms,速度果然是刚刚的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ubuntu 深度学习