记录运行SiamMask代码时遇到的问题以及解决方法

记录运行SiamMask代码时遇到的问题以及解决方法

  • 1,代码下载地址
  • 2, 我的环境
  • 3, 问题以及解决方法
    • 3.1 找不到python.h
    • 3.2 ModuleNotFoundError: No module named 'tools'
    • 3.3 Evaluate performance on VOT的时候报错
    • 3.4 No module named 'custom'
  • 4. 实验结果

1,代码下载地址

https://github.com/foolwood/SiamMask

2, 我的环境

Ubuntu 16.04
记录运行SiamMask代码时遇到的问题以及解决方法_第1张图片

3, 问题以及解决方法

3.1 找不到python.h

记录运行SiamMask代码时遇到的问题以及解决方法_第2张图片
解决方法-----安装必须的依赖包
之前曾经安装过这些依赖包,但是和其他项目冲突,当时卸载了,后来忘记重新安装。
现在重新安装。

pip install -r requirements.txt
bash make.sh

记录运行SiamMask代码时遇到的问题以及解决方法_第3张图片

3.2 ModuleNotFoundError: No module named ‘tools’

experiments/siammask_sharp$ python ../../tools/demo.py --resume SiamMask_DAVIS.p
th --config config_davis.json
Traceback (most recent call last):
  File "../../tools/demo.py", line 7, in 
    from tools.test import *
ModuleNotFoundError: No module named 'tools'

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

export PYTHONPATH=$PWD:$PYTHONPATH

如下图所示。
我下载的代码存放路径为 /home/anna/object_track_xu/3_SiamMask/2_code/Siammask-master/
所以使用如下命令配置 PYTHONPATH环境变量。

export PYTHONPATH = $PYTHONPATH:/home/anna/object_track_xu/3_SiamMask/2_code/Siammask-master/

然后使用如下命令打印 PYTHONPATH环境变量,检查一下siammask代码存放路径是否包含在 PYTHONPATH环境变量 中。

echo $PYTHONPATH

记录运行SiamMask代码时遇到的问题以及解决方法_第4张图片

成功运行测试代码。

3.3 Evaluate performance on VOT的时候报错

bash test_mask_refine.sh config_vot.json SiamM
ask_VOT.pth VOT2016 0
fatal: Not a git repository (or any of the parent directories): .git
python: can't open file '/tools/test.py': [Errno 2] No such file or directory

找不到 /tools/test.py。
tools/test.py是在 siammask这个项目的根目录里面,而不是操作系统的根目录里面。
应该是尝试运行test.py的时候,目录配置有问题。
打开 test_mask_refine.sh,找到出问题的执行test.py的那一行,显示使用了$ROOT。
所以需要确认ROOT的定义是否有问题。

python -u $ROOT/tools/test.py \

找到ROOT的定义,发现是用git命令获取当前仓库的根目录。
但我不是用git命令获取的这个siammask代码,所以当前代码所在目录不是git仓库。
这样获取的ROOT会有问题。

ROOT=`git rev-parse --show-toplevel`

验证:在命令行中,执行上述git命令,果然返回错误提示。

(siammask) anna@anna-TM1801:~/object_track_xu/3_SiamMask/2_code/SiamMask-master/experiments/siammask_sharp$ git rev-parse --show-toplevel
fatal: Not a git repository (or any of the parent directories): .git

问题解决方法:
不使用git命令获取ROOT路径。
而是手动配置ROOT路径。
缺点:修改了测试文件所在目录之后,这个ROOT路径需一起被修改。

成功运行Evaluate performance on VOT2016

(siammask) anna@anna-TM1801:~/object_track_xu/3_SiamMask/2_code/SiamMask-master/experiments/siammask_sharp$ 
(siammask) anna@anna-TM1801:~/object_track_xu/3_SiamMask/2_code/SiamMask-master/experiments/siammask_sharp$ bash test_mask_refine.sh config_vot.json SiamM
ask_VOT.pth VOT2016 0
test_mask_refine.sh: line 8: ./: Is a directory
[2019-07-14 08:18:22,400-rk0-test.py#555] Namespace(arch='Custom', config='config_vot.json', cpu=False, dataset='VOT2016', debug=False, gt=False, log='log_test.txt', mask=True, refine=True, resume='SiamMask_VOT.pth', save_mask=False, video='', visualization=False)
[2019-07-14 08:18:22,677-rk0-features.py# 66] Current training 0 layers:
	
[2019-07-14 08:18:22,678-rk0-features.py# 66] Current training 1 layers:
	
[2019-07-14 08:18:22,728-rk0-load_helper.py# 31] load pretrained model from SiamMask_VOT.pth
[2019-07-14 08:18:26,047-rk0-load_helper.py# 25] remove prefix 'module.'
[2019-07-14 08:18:26,050-rk0-load_helper.py# 18] used keys:356
/home/anna/miniconda3/envs/siammask/lib/python3.6/site-packages/torch/nn/functional.py:1890: UserWarning: nn.functional.upsample is deprecated. Use nn.functional.interpolate instead.
  warnings.warn("nn.functional.upsample is deprecated. Use nn.functional.interpolate instead.")
[2019-07-14 08:18:30,598-rk0-test.py#416] (1) Video: bag          Time: 4.1s Speed: 47.4fps Lost: 0
[2019-07-14 08:18:33,320-rk0-test.py#416] (2) Video: ball1        Time: 2.2s Speed: 47.5fps Lost: 0
[2019-07-14 08:18:34,364-rk0-test.py#416] (3) Video: ball2        Time: 0.9s Speed: 46.8fps Lost: 0
[2019-07-14 08:18:50,754-rk0-test.py#416] (4) Video: basketball   Time: 15.0s Speed: 48.4fps Lost: 1
[2019-07-14 08:19:02,103-rk0-test.py#416] (5) Video: birds1       Time: 7.1s Speed: 47.8fps Lost: 0
[2019-07-14 08:19:15,315-rk0-test.py#416] (6) Video: birds2       Time: 11.2s Speed: 48.0fps Lost: 0
[2019-07-14 08:19:19,976-rk0-test.py#416] (7) Video: blanket      Time: 4.6s Speed: 49.2fps Lost: 0
[2019-07-14 08:19:21,942-rk0-test.py#416] (8) Video: bmx          Time: 1.7s Speed: 45.2fps Lost: 0
[2019-07-14 08:19:30,348-rk0-test.py#416] (9) Video: bolt1        Time: 7.1s Speed: 49.5fps Lost: 0
[2019-07-14 08:19:36,509-rk0-test.py#416] (10) Video: bolt2        Time: 5.9s Speed: 49.9fps Lost: 1
[2019-07-14 08:19:40,048-rk0-test.py#416] (11) Video: book         Time: 3.2s Speed: 54.2fps Lost: 4
[2019-07-14 08:19:43,453-rk0-test.py#416] (12) Video: butterfly    Time: 3.1s Speed: 48.0fps Lost: 0

3.4 No module named ‘custom’

运行demo的时候,报错:[] Traceback (most recent call last): File “…/…/tools/demo.py”, line 26, in from custom import Custom ModuleNotFoundError: No module named ‘custom’ [/code]
然后我pip imstall custom 发现安装不上报错:
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output

custom不是一个公开的按照包,而是siammask作者写的一个python文件。
可以在siammask根目录下搜索“custom”,定位custom文件的路径。
如果搜索到了这个文件,但是运行demo的时候确报错,说“ No module named ‘custom’ ",有可能是某个系统路径没有设置好,存放custom的文件夹没有被添加到demo运行时的搜索路径中。
有可能是PYTHONPATH环境变量配置失败。
记录运行SiamMask代码时遇到的问题以及解决方法_第5张图片检查PYTHONPATH环境变量:

echo $PYTHONPATH

在terminal中输入“echo $PYTHONPATH”,打印出的PYTHONPATH环境变量应该类似于下图,其中应该包含siammask根目录。否则就说明PYTHONPATH环境变量配置失败。
在这里插入图片描述

配置PYTHONPATH环境变量:
参考这个博客的“3.2 ModuleNotFoundError: No module named ‘tools’”。

另外,也可以参考python 环境变量设置PYTHONPATH,了解解决 import 问题的方法,以及 配置PYTHONPATH环境变量的方法。

4. 实验结果

每个视频的目标跟踪框坐标 保存在文件夹:SiamMask-master/experiments/siammask_sharp/test/VOT2018/
log输出保存在文件:SiamMask-master/experiments/siammask_sharp/logs/test_VOT2018.log
使用目标跟踪框坐标 结果计算 评分

python ../../tools/eval.py --dataset VOT2018 --tracker_prefix C --result_dir ./test/VOT2018

记录运行SiamMask代码时遇到的问题以及解决方法_第6张图片

你可能感兴趣的:(记录运行SiamMask代码时遇到的问题以及解决方法)