[CVPR2019] 视频跟踪SiamMask实战

点击上方AI算法与图像处理”,选择加"星标"或“置顶”

重磅干货,第一时间送达

简介

2019那年 CVPR有一篇亮眼的视觉跟踪方面的论文,作者提出新算法SiamMask,在视频跟踪任务上达到最优性能,并且在视频目标分割上取得了当前最快的速度。作者来自中科院自动化所、牛津大学等。

这篇论文的一作也在知乎上面写了关于paper的解读

详细内容参考链接:https://zhuanlan.zhihu.com/p/58154634

今天我将介绍的是,如何使用官方的代码进行测试。

SiamMask实战

GitHub项目:https://github.com/foolwood/SiamMask

原始代码的测试环境是:

Ubuntu 16.04, Python 3.6, Pytorch 0.4.1, CUDA 9.2, RTX 2080 GPUs

强烈建议在Linux环境下,进行操作,可以避免很多麻烦,在windows上可能会浪费你比较多的时间,当然如果你和我一样使用Windows10,可以考虑装双系统 或者 在Windows10上安装子系统

安装子系统参考链接:

https://blog.csdn.net/daybreak222/article/details/87968078?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-1

如果是安装双系统的话,尽量找一个和自己型号一样的(比如我使用的 飞行堡垒的),不然可能会遇到一些比较麻烦的问题:

https://blog.csdn.net/qq_41120234/article/details/85790065

下面操作均以在Linux系统下使用为例

1、环境设置

下载项目

git clone https://github.com/foolwood/SiamMask.git && cd SiamMask
export SiamMask=$PWD

第一句是将项目下载下来,并进入 SiamMask文件夹中

export的功能是 显示或设置环境变量

创建python环境,原GitHub项目是采用 conda 创建新的虚拟环境并在新的环境下安装依赖包来测试,具体操作如下

conda create -n siammask python=3.6
source activate siammask
pip install -r requirements.txt
bash make.sh

如果你已经有合适的conda环境,可以不用新建,这里的source activate siammask 也可以用conda activate siammask替换,有时候会抽风,遇到问题的时候可以尝试换一个命令。

将项目添加到 你的 PYTHONPATH

export PYTHONPATH=$PWD:$PYTHONPATH

2、demo测试

环境配置完毕之后,进入到指定的文件夹中,并下载SiamMask 模型

cd $SiamMask/experiments/siammask_sharp
wget http://www.robots.ox.ac.uk/~qwang/SiamMask_VOT.pth
wget http://www.robots.ox.ac.uk/~qwang/SiamMask_DAVIS.pth

可能会比较慢!

运行demo.py

cd $SiamMask/experiments/siammask_sharp
export PYTHONPATH=$PWD:$PYTHONPATH
python ../../tools/demo.py --resume SiamMask_DAVIS.pth --config config_davis.json

常见问题:

1、No module named 'tools'

原因:PYTHONPATH配置失败
解决方法:把下列指令中的“$PWD”换成当前目录的绝对路径。

参考官方给出的答案:

ROOT=`git rev-parse --show-toplevel`
export PYTHONPATH=$ROOT:$PYTHONPATH
export PYTHONPATH=$PWD:$PYTHONPATH

https://github.com/foolwood/SiamMask/issues/35

2、cannot connect to X server

由于我是在服务器上跑的,没有图像界面,因此导致了一些问题

只需要对 demo.py进行一些修改即可,替换成下面的内容,编号只是大致的位置,大家稍微看一下就懂了

38 # cv2.namedWindow("SiamMask", cv2.WND_PROP_FULLSCREEN)


46 try:
47 '''
48 init_rect = cv2.selectROI('SiamMask', ims[0], False, False)
49 x, y, w, h = init_rect
50 '''
51 x, y, w, h = 300, 110, 165, 250


68 '''
69 # 如果 你想 看到编辑框可以把70 行解注释即可,否则仅仅输出 mask 
70 cv2.polylines(im, [np.int0(location).reshape((-1, 1, 2))], True, (0, 255, 0), 3)
71 cv2.imshow('SiamMask', im)
72 key = cv2.waitKey(1)
73 if key > 0:
74 break
75 '''
76 ##chegf write
77 name = './output/' + str(f).zfill(5) + '.jpg'
78 cv2.imwrite(name, im)

https://github.com/foolwood/SiamMask/issues/6

3、没有输出结果

我在测试的时候发现没有输出结果,怀疑原因是因为,代码中并没有加入一个判断输出文件夹是否存在的命令,导致没有输出,直接在当前路径下新建一个文件夹,命名为 output,即可!

最后再次强调,代码和论文解读:

https://github.com/foolwood/SiamMask

https://zhuanlan.zhihu.com/p/58154634

最后的最后求一波分享!

回复“模板”,获取一份精美 神经网络模板PPT
end



个人微信


请注明:地区+学校/企业+研究方向+昵称
如果没有备注不拉群!



你可能感兴趣的:([CVPR2019] 视频跟踪SiamMask实战)