windows7 + vs2015 + matlab2018b + cuda9.2 配置SiameseFC 目标跟踪网络

0前言

假设已经下载并安装好了 matlab2018b(版本可以不同) 、vs2015(必须此版本)、安装了CUDA9.2(其他版本也可以)、cudnn版本与cuda对应起来,看个人情况,cudnn会有加速效果。
所有软件具体安装教程可网上查询。
cuda安装和cudnn 安装可以参考 https://blog.csdn.net/shanglianlm/article/details/79404703
和 https://blog.csdn.net/qq_33993942/article/details/79149669

版本要求说明:由于使用了matconvnet,所以对matlab和vs,cuda版本有所要求。
下图是官网要求。
matlab(R2015b 或 更高)
vs (visual studio 2015 或更高)
cuda(7.5 或更高)
windows7 + vs2015 + matlab2018b + cuda9.2 配置SiameseFC 目标跟踪网络_第1张图片

环境配置好的条件下,做接下来的工作。

1首先

(项目环境下载)
simeseFC网络代码下载。链接:https://github.com/bertinetto/siamese-fc
(依赖库下载)
下载 matconvnet ,版本最好用作者用的版本。版本见下图。(我用的是v1.0-beta25版本)

----04/03更新备注:作者用的这个版本,遇到matlab2018不兼容的问题,没有试过如何修改,所以如果你用的matlab是2018的话,建议下载matconvnet 最新版.
windows7 + vs2015 + matlab2018b + cuda9.2 配置SiameseFC 目标跟踪网络_第2张图片
将下载好matconvnet的安装包解压并放在项目中。可以将文件夹设置为下图
windows7 + vs2015 + matlab2018b + cuda9.2 配置SiameseFC 目标跟踪网络_第3张图片
注意1: 外部链接库中可能不止包含 matconvet。文末挂上配置好的项目的压缩包。
可以下载好从 external_libs子文件夹中拷贝,也可以自己下载。
注意2: 我的matconvnet文件夹中的文件都已经进行了修改,下边会详述进行了哪些修改,如果希望自己一步一步配置的话,百度进行下载原始的,然后按照下边的步骤进行修改。

(项目测试文件下载)

我们只是进行测试环境的配置在本文,所以需要作者预训练好的网络来进行进行测试。
官方链接:http://www.robots.ox.ac.uk/~luca/siamese-fc.html 下载下图中框出的两项即可。在我挂出的整个项目中有包含。
windows7 + vs2015 + matlab2018b + cuda9.2 配置SiameseFC 目标跟踪网络_第4张图片

下载好这两个文件后按照下图中的路径存放,即在项目文件夹中建立 path/to/nets/ 文件夹如下图。因为项目源码中的路径默认是这样的,也可以不按照这个来,但是在源码中进行对应的修改就可以。
windows7 + vs2015 + matlab2018b + cuda9.2 配置SiameseFC 目标跟踪网络_第5张图片
至此,所有需要下载的东西都已经下载好。

下面介绍编译过程。

2编译配置

先在matlab中打开项目,然后将所有文件添加入当前路径,选中文件夹后右键,然后选择添加到路径–>选中的文件夹和子文件夹。如下图
windows7 + vs2015 + matlab2018b + cuda9.2 配置SiameseFC 目标跟踪网络_第6张图片

(编译matconvnet)
编译这个专门用来进行卷积运算的库有很多方式,只介绍一种我用的。

  1. 打开 matconvnet / matconvnet-master/matlab 下的 vl_compilenn.m 文件,修改 170 行 - 190行中的 如下图所框选的几项。
    windows7 + vs2015 + matlab2018b + cuda9.2 配置SiameseFC 目标跟踪网络_第7张图片
    说明1: enableGpu = true ,启用GPU,cudaMethod = ‘nvcc’使用nvcc来编译cuda,cudaRoot = ‘C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2’(这里是cuda toolkit安装的位置)
    说明2: 这里没有启用 cudnn,我没有用,如果想用可以参考网上如何配置这个,只要cudnn版本正确,安装正确,配置起来很简单,只需要将对应几个文件夹拷贝即可,这里不多说。

  2. 接下来使用 mex -setup来设置 C++编译器(有可能会碰到以下错误)

    错误: Unsupported VS C++ compiler, ver >=14.0 required (VS2015).

    解决这个问题才能继续编译,因为必须有C++编译器可用才行。。
    (如果你按照要求只安装了 VS2015,那么不会碰到这个错误,我的机子上装了三个版本的VS(2010 + 2013 + 2015),所以默认不会使用 VS2015,需要使用命令mex来进行设置)

    操作: 命令行输入:
    mex -setup
    运行后如下图
    windows7 + vs2015 + matlab2018b + cuda9.2 配置SiameseFC 目标跟踪网络_第8张图片
    鼠标点击 Microsoft Visual C++ 2015 ©,然后再点击 mex -setup C++
    或者直接使用命令:
    mex -setup:C:\Users\用户名\AppData\Roaming\MathWorks\MATLAB\R2018b\mex_C++_win64.xml C++
    注意: 命令中的路径替换为你的路径,可以先找一下mex_C++_win64.xml这个文件在哪

  3. 然后在命令行 输入

 vl_compilenn()  

如果你使用的官方 matconvnet,执行会报错:(注:这里的修改是针对matconvnet v1.0-beta25版本对matlab2018不兼容的问题,并非论文作者所用版本)

 Error using mex'C:\Users\alrabm\Documents\MATLAB\MatConvNet\
 matconvnet-1.0-beta25\matlab\mex\vl_nnconv.mexw64'compiled
  with '-R2018a' and linked with '-R2017b'. 
  For more information, see MEXfile compiled with one API and linked with another.

解决办法参考: https://github.com/vlfeat/matconvnet/issues/1143
即 vl_compilenn.m 文件中的 620 行修改为如图 :
windows7 + vs2015 + matlab2018b + cuda9.2 配置SiameseFC 目标跟踪网络_第9张图片

359 行修改为下图:
windows7 + vs2015 + matlab2018b + cuda9.2 配置SiameseFC 目标跟踪网络_第10张图片

修改后重新执行命令(清空过变量的话重新设置C++ compiler,见步骤2,一般不会清空,没清空不用管了)

vl_compilenn()  

编译执行过程中显示如下: 执行完成会提示完成
windows7 + vs2015 + matlab2018b + cuda9.2 配置SiameseFC 目标跟踪网络_第11张图片
windows7 + vs2015 + matlab2018b + cuda9.2 配置SiameseFC 目标跟踪网络_第12张图片

到此,完成了最复杂的一步。接下来改源码路径,然后执行即可。

(编译执行 tracker)

  1. 按作者提示,将tracking文件夹下的几个文件的 .example 后缀删掉,只剩下 .m 后缀,说明见下图
    windows7 + vs2015 + matlab2018b + cuda9.2 配置SiameseFC 目标跟踪网络_第13张图片

  2. 修改后打开 env_paths_tracking.m 文件,修改对应路径。上文中提到的两个预训练网络路径在此处配置,还有测试数据。 我们把demo-sequences 文件夹下的数据放到 \path\to\demo\sequences\ 文件夹下,放置后的路径名称等如下:
    windows7 + vs2015 + matlab2018b + cuda9.2 配置SiameseFC 目标跟踪网络_第14张图片
    env_paths_tracking.m 文件内容如下
    windows7 + vs2015 + matlab2018b + cuda9.2 配置SiameseFC 目标跟踪网络_第15张图片
    说明: 下边两个路径 备注:optional 可选,所以先不用管,保证上边这两个路径下有对应的东西即可。

  3. 修改后就可以在命令行执行了

run_tracker('vot15_bag',1);

都完成了,效果如下:
windows7 + vs2015 + matlab2018b + cuda9.2 配置SiameseFC 目标跟踪网络_第16张图片


最后放上百度云分享链接:
链接:https://pan.baidu.com/s/1SQDQ_ZWVzvHY7H8BgaCuXQ 密码:hqjl

如果配置中有疑问或问题,或者分享链接失效,均可联系 QQ:1241679714,邮箱同号


最后的最后,本文略有粗糙,还请各位指教。

你可能感兴趣的:(目标跟踪)