点击上方“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
个人微信
请注明:地区+学校/企业+研究方向+昵称
如果没有备注不拉群!