SiamMask 跑代码从入门到放弃

本文详细介绍了SiamMask目标跟踪和分割算法的环境搭建、演示、测试及训练流程。涵盖Ubuntu16.04下的软件配置,解决常见错误,如X server连接问题,以及测试与训练的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


论文链接:Fast Online Object Tracking and Segmentation: A Unifying Approach CVPR2019

代码链接:Git(论文给定的)

关于SiamMask的论文,代码实现,讲解,随便一谷歌就有很多资料。我只记录我运行代码遇到的问题,流程按照git上的Contents

Environment Setup

This code has been tested on Ubuntu 16.04, Python 3.6, Pytorch 0.4.1, CUDA 10.1, GTX TIT GPUs
建议在下载代码跑代码之前或者跑代码之中把git上的issues 浏览以下

git clone https://github.com/foolwood/SiamMask.git && cd SiamMask  #下载代码并进入代码
export SiamMask=$PWD #导入代码路径  可以用echo $SiamMask查看是否是代码的路径
conda create -n siammask python=3.6
source activate siammask
pip install -r requirements.txt #先按照requirements.txt给定的版本安装需要的包,后面会有修改(如果遇到和我一样的问题的话)
bash make.sh # 编译region.pyx 并用Cython加速  python setup.py build_ext --inplace
#在utils/pyvotkit/和utils/pysot/utils/下分别生成相应的cpython-36m-x86——64-linux-gnu.so和c_region.pxd
#如下图
export PYTHONPATH=$PWD:$PYTHONPATH 再次将此项目的路径添加到PYTHONPATH  可以用echo $PYTHONPATH查看是否添加成功

在这里插入图片描述

Demo

#进入相应的路径并下载测试模型
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
export PYTHONPATH=$PWD:$PYTHONPATH #将siammask_sharp的路径添加到PYTHONPATH
python ../../tools/demo.py --resume SiamMask_DAVIS.pth --config config_davis.json

当运行demo的时候,有的人会出现no module named tools or other
但是你只要 follow git步骤 export正确的路径就不会出现no module的情况
我运行demo遇到的问题是cannot connect to X server git 上相应的issue地址,如下:
在这里插入图片描述
我的解决方案是:
因为我有X11,首先用命令查看一下:echo $DISPLAY(DISPLAY=DISPLAY用来设置将图形显示到何处)
然后 export export DISPLAY=localhost:11.0(localhost:11.0是上面echo $DISPLAY的结果),然后就可以显示,并且画矩形框了。
在这里插入图片描述
开始的时候也走了一段弯路,进入root环境,sudo xhost +,不管用
在这里插入图片描述
然后各种export export DISPLAY=:0.0 / 0.1等,不对
下面是生成的anchor:
在这里插入图片描述

Test

#现在测试数据集
cd $SiamMask/data
sudo apt-get install jq
bash get_test_data.sh #生成VOT2016、VOT2018、VOT2019、DAVIS数据集和相应的json文件(/data)

在这里插入图片描述

#下载测试模型,之前下过的就不需要下载了
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_VOT_LD.pth(只需要下载这个)
#-LD means training with large dataset (ytb-bb+ytb-vos+vid+coco+det)
wget http://www.robots.ox.ac.uk/~qwang/SiamMask_DAVIS.pth
#在VOT数据集进行验证#(使用不同的预训练模型在/experiments/siammask_sharp/test/ 下生成相应的txt结果文件(8个点如图)
bash test_mask_refine.sh config_vot.json SiamMask_VOT.pth VOT2016 0
bash test_mask_refine.sh config_vot.json SiamMask_VOT.pth VOT2018 0
bash test_mask_refine.sh config_vot.json SiamMask_VOT.pth VOT2019 0
bash test_mask_refine.sh config_vot18.json SiamMask_VOT_LD.pth VOT2016 0
bash test_mask_refine.sh config_vot18.json SiamMask_VOT_LD.pth VOT2018 0

在这里插入图片描述
在这里插入图片描述

# 进行测试(得到EAO Accuracy Robustness)
python ../../tools/eval.py --dataset VOT2016 --tracker_prefix C --result_dir ./test/VOT2016
python ../../tools/eval.py --dataset VOT2018 --tracker_prefix C --result_dir ./test/VOT2018
python ../../tools/eval.py --dataset VOT2019 --tracker_prefix C --result_dir ./test/VOT2019

遇到如下问题:(查了一下这个问题在git的issue没有,其他人也没有遇到过,坑了很久)
在这里插入图片描述
@jit。。。。一看是环境配置的问题(具体来说是加速环境问题),开始把python3.6升级到3.7,相应的numpy 和torch 版本要变,可是还是报错。之后重新把3.7环境删除又换成3.6的环境,先升级了numba= =0.49.1,也不行,最终解决问题的方法是:pip install -U llvmlite==0.32.1 (0.33.0rc1)
在这里插入图片描述
之后又遇到如下问题:
在这里插入图片描述
在这里插入图片描述
最后的测试结果为:
在这里插入图片描述
在这里插入图片描述

#在DAVIS数据集进行验证
bash test_mask_refine.sh config_davis.json SiamMask_DAVIS.pth DAVIS2016 0
bash test_mask_refine.sh config_davis.json SiamMask_DAVIS.pth DAVIS2017 0

在这里插入图片描述
贴一下我的环境配置:
在这里插入图片描述
如果没有遇到以上问题的人就不需要修改环境配置。

Training

终于的到了激动人心的训练

#在data下进行下载相应的训练数据集vid,det,coco,vos,并进行相应的crop为511大小,并生成相应的json文件。其中coco,vos有mask
#先下载预训练模型,This model was trained on the ImageNet-1k Dataset
cd $SiamMask/experiments
wget http://www.robots.ox.ac.uk/~qwang/resnet.model
#训练
cd $SiamMask/experiments/siammask_base/
bash run.sh

在run.sh中会有参数–resume 表示加载某个epoch模型,再此基础上训练(Training SiamMask model with the Refine module)
但是没有这个文件,只能从头训练,把这个参数注释掉,要不会报错:AssertionError: snapshot/checkpoint_e9.pth is not a valid file
然后把测试的那句命令也注释掉(bash test_all.sh -s 1 -e 20 -d VOT2018 -g 4 # test all snapshots with 4 GPU),还会遇到out of memory,把batchsize由64降到32
训练好后测试,但是训练中遇到如下问题:(git上的相应issue
在这里插入图片描述
这个是网络输出问题不一致,不是环境问题, 还没有解决这个问题,有解决的老铁可以告诉我!感谢感谢

评论 46
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值