GOTURN算法实践及性能分析云笔记
算法实现:个人根据论文及github提示构建算法平台
测试环境为:
Caffe+OpenCV+Linux+GOTURN源码
硬件平台:CRSN本科生实验室服务器--
128G运行内存,3.2GCPU频率、英伟达1080p显卡、酷睿I7、8核处理器
测试数据集:VOT2014公开数据集
一、环境搭建
1.OpenCV-2.4.9库安装
1.1 先从sourceforge上下载OpenCV的源码
http://jaist.dl.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.9/opencv-2.4.9.zip
1.2解压到任意目录
unzip opencv-2.4.9.zip
1.3进入源码目录,创建release目录
cd opencv-2.4.9
mkdir release
1.4可以看到在OpenCV目录下,有个CMakeLists.txt文件,需要事先安装一些软件
sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev
1.5 进入release目录,安装OpenCV是所有的文件都会被放到这个release目录下
cd release
1.6cmake编译OpenCV源码,安装所有的lib文件都会被安装到/usr/local目录下
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
1.7 安装
sudo make install
2.Caffe+ubuntu14.04+cmake-3.6
Caffe的安装有
make和cmake两种,这里由于GTUEN安装需求,必须采用cmake方式,否则其找不到Caffe路径,当仅仅是
CPU模式时,需要修改CMakeChe.txt文件,将其中的
CPU_ONLY=OFF改为CPU_ONLY=ON,否则将出现对CUDA依赖的错误
2.1Caffe安装(参考伯克利大学Caffe社区详细解释)
2.2 cmake-3.6安装(linux自带2.8,版本过低对源码不兼容)
准备工作:官网下载cmake-3.6.3.tar.gz(https://cmake.org/download/)
1.解压文件tar -xvf cmake-3.6.3.tar.gz,并修改文件权限chmod -R 777 cmake-3.6.3
2.检测gcc和g++是否安装,如果没有则需安装gcc-g++:sudo apt-get install build-essential(或者直接执行这两条命令sudo apt-get install gcc,sudo apt-get install g++)
3.进入cmake-3.6.3 进入命令 cd cmake-3.6.3
4.执行sudo ./bootstrap
5.执行sudo make
6.执行 sudo make install
7.执行 cmake –version,返回cmake版本信息,则说明安装成功
3.1GOTURN源码安装
二、算法测试
1.1测试数据集
测试集包含25个来源于
VOT2014跟踪挑战赛
的视频,视频的每一帧都富含了大量的不同的属性:遮挡、光线变换、运动变换、尺寸变换、相机运动等。具体数据可由官网下载。
1.2算法流程
1.4算法效果
GOTURN_汽车跟随,选取第一帧的运动汽车作为跟随目标,能很好的克服相机运动,背景变换,少量的遮挡带来的外界干扰。
GOTURN_人脸跟随,选取第一帧黑暗情况下人脸作为跟随目标,能很好的克服光线变换,抖动,目标运动代开的外界干扰
GOTURN_跳水运动,选取第一帧跳水人员作为跟随对象,能很好的克服快速运动变换过程中的外界感染,实现实时跟踪
1.5算法优缺点分析
优点:
①通过大量的离线训练得到目标跟随回归模型,将一次预测变为神经网络的一次前馈传播,在GTX680加速模式下,处理帧率能达到100FPS,CPU模型下能达到4FPS,算法能保障实时性,能满足后续开发投入实际需求。②通过五层卷积神经网络对输入图像进行特征提取,因此能很好的克服光线变换、运动变换、相机抖动等外界干扰。
缺点:
对
遮挡的处理效果不好
,当跟随目标较小时,容易由于遮挡产生
漂移
等问题。原因:该算法是基于相邻帧的回归模型,因此不存在分类器作为判决。