Flow-Guided-Feature-Aggregation-的安装配置,demo运行,以及采用少量ILSVRC2015 VID数据集在其中训练
由于课题组接了一个视频检测的项目,所以找到了这个模型,用于视频目标检测的同学可以有兴趣尝试。
FGFA-github上的源码:https://github.com/msracver/Flow-Guided-Feature-Aggregation
同时Flow-Guided-Feature-Aggregation与另一篇文章Deep Feature Flow非常相似,包括环境的配置等。
DFF-github上的源码https://github.com/msracver/Deep-Feature-Flow
模型环境的安装配置与demo运行
我只配了FGFA的环境,所以不保证DFF能够成功,但是核心方法应该是一样的,都是安装mxnet包。
配置遇到的问题:之前在ubuntu16.04下配置了好久,ubuntu的环境是ubuntu16.04+cuda9.0 ,一直没有成功,根据readme的方法是下载mxnet的源码,更新源码,然后编译后与python绑定,但是这个方法我一直尝试到make -j4的时候就会报错(因为编译的文件很多,错误出现在中间,不太好找),导致后面运行demo的时候也会出错,报的是raise mxnetError, 查了好多信息,后来觉得可能是cuda版本的问题, 由于cuda版本不能轻易改动,所以放弃了在ubuntu下的配置。
接下来介绍我的安装环境 win10+cuda10.0+vs2017。由于我的windows电脑原来用的是cuda 9.0所以删除了原本的cuda,安装了cuda10.0,具体的安装方法网上比较多,这里就不详细解释。
第一步 :具体环境
打开FGFA的github上的readme, 先配置环境,使用Python2.7,为了方便大家,我直接上传了我的整个虚拟环境
要注意,win10比ubuntu下多了一句For Windows users, Visual Studio 2015 is needed to compile cython module。
这一步我是只直接在虚拟环境里安装了cython,如果有多个vs版本的,设置一下默认的编译的版本,不需要其他的操作。这一步只要环境配置好,编译就不会有问题。
第二步:源码初始化
git clone下源码,然后放到一个文件夹中,进入这个文件,运行 .\init.bat,这一步应该也不会有问题,如果有也是环境配置的问题。
第三步:安装mxnet
这一步,按原网站的方法是,下载source文件,然后check out,更新。 再复制缺少的.h文件到mxnet源码后编译,但是我使用cuda9.0的情况下无法配置成功(不确定是不是个人原因)。 所以推荐使用直接pip安装mxnet的包(感谢issue里的同学提供的思路),最新的包里直接包含了所需要的.h文件,不需要cp -r那一步,也不需要后面的make , setup等步骤,非常方便!
要求就是 例如我是cuda 10.0,我就pip install mxnet-cu100。 然后下载权重。 如果cuda版本对,这一步也没什么问题。
第四步:运行demo.py
demo.py的权重和train的权重我都上传到了百度网盘。下面是地址。
https://blog.****.net/weixin_42258492/article/details/105811423
运行的时候除了环境报错缺少包以外。还会有一个错Symbol can not use “+=”,这个错误在issue里可以找到答案。
然后就能成功运行demo.py了。
训练代码的运行
准备部分数据集与部分修改
这一步比较麻烦,因为数据集太大了,网上有对应的 ILSVRC2015 VID 的数据集,我只下载了这个,没有下载DET,一共接近80个G的压缩文件,我并没有全部下载完。
建议大家先看一下数据集的介绍https://blog.****.net/weixin_43292354/article/details/100155303
注意到在目录Flow-Guided-Feature-Aggregation/data/ILSVRC2015/ImageSets/下,有4个文件,打开VID_train_15frames。
看到如下
我个人理解是这个15就是对一个视频平均取15帧,例如对于 ILSVRC2015_train_00000000,一共300帧,隔20个取一帧。
因为取部分数据训练,所以我的方法是新建一个text,叫VID_train_15frames_part,然后在txt中复制一大段从 ILSVRC2015_train_00000000到ILSVRC2015_train_00010000的内容,因为我们的目的是跑通模型。
然后在下载好的VID数据集中,找到ILSVRC2015_train_00000000到00010000这一段对应的标签文件,图片文件和视频文件。
图片放在如下位置,大家可以按照这个图建好文件夹,实际上会自动创建。
这是xml文件的位置
这是视频文件的位置
放好以后,需要修改Flow-Guided-Feature-Aggregation\experiments\fgfa_rfcn\cfgs下的fgfa_rfcn_vid_demo.yaml文件,
找到dataset下的image_set,改成之前新建的VID_train_15frames_PART。
这过程中可能会有其他的小Bug,有问题欢迎下方留言,
同时需要下载好train的训练权重https://blog.****.net/weixin_42258492/article/details/105811423 。
然后就可以运行了!!!!!!