2023年11月29日发(作者:)

Pytracking代码运⾏笔记

/visionml/pytracking

clone /visionml/

pytracking/

submodule update --init

4.

bash conda_install_path pytracking

conda_install_path替换为:

which conda

输出anaconda3的路径

即为:

bash /data/anaconda3 pytracking

特别的,关注⼀下强⼤的环境安装脚本⽂件

应⽤脚本安装不成功(conda环境丢失),于是⼿动创建环境,⼿动安装

conda install -y XXX 表⽰确认安装,确认创建

当执⾏:python -c "XXX"时,XXX表⽰要执⾏的命令,例如:

输⼊:python -c "import os; print(able)"

结果为:/usr/bin/python

5.

需要翻墙下载的两个权重模型:

/uc?export=download&id=1aWC4waLv_te-BULoy0k-n_zS-ONms21S 可能不⾏

/uc?export=download&id=1ZTdQbZ1tyN27UIwUnUrjHChQb5ug2sxr 真垃圾不⾏!

/drive/folders/1WVhJqvdu-_JG1U-V0IqfxTUa1SBPnL0O 可以了!

6.

运⾏:python run_ atom default

出现错误:EOFError: Ran out of input

出现错误:

No matching checkpoint file found

需要翻墙下载正确的权重模型。

解决⽅案:

多翻⼀翻issues中的问题和解答,总是有帮助的。

不可以直接对下载的⽂件直接进⾏解压,会报错,因为他是⼀个torch的模型,需要⽤()来导⼊该⽂件。

记得把⽂件名atom_改名为:atom_(直接重命名即可)

7.

python run_ tracker_name parameter_name --dataset_name dataset_name --sequence sequence --debug debug --threads threads

改为:

改为:

model = (model_path, map_location='cpu')

9.

解决完问题8之后,出现问题:pytorch框架下报错cuda驱动版本不满⾜cuda运⾏版本。

问题⽇志如下:

log:

(pytracking) 09534@09534:/data/pzn/pzncode/pytracking/pytracking$ python run_ atom default

VIDEOIO ERROR: V4L: can't open camera by index 0

No CUDA runtime is found, using CUDA_HOME='/usr/local/cuda'

Using /tmp/torch_extensions as PyTorch

Detected CUDA files, patching ldflags

Emitting ninja build file /tmp/torch_extensions/_prroi_pooling/...

Building extension module _

ninja: no work to do.

Loading extension module _

Traceback (most recent call last):

File "run_", line 35, in

main()

File "run_", line 31, in main

run_webcam(r_name, r_param, )

File "run_", line 20, in run_webcam

_webcam(debug)

File "../pytracking/evaluation/", line 94, in run_webcam

_webcam()

File "../pytracking/tracker/base/", line 179, in track_webcam

lize_features()

File "../pytracking/tracker/atom/", line 19, in initialize_features

lize()

File "../pytracking/features/", line 16, in initialize

lize()

File "../pytracking/features/", line 98, in initialize

()

File "/data/anaconda3/envs/pytracking/lib/python3.7/site-packages/torch/nn/modules/", line 265, in cuda

return self._apply(lambda t: (device))

File "/data/anaconda3/envs/pytracking/lib/python3.7/site-packages/torch/nn/modules/", line 193, in _apply

module._apply(fn)

File "/data/anaconda3/envs/pytracking/lib/python3.7/site-packages/torch/nn/modules/", line 193, in _apply

module._apply(fn)

File "/data/anaconda3/envs/pytracking/lib/python3.7/site-packages/torch/nn/modules/", line 199, in _apply

= fn()

make

./deviceQuery

3)对应本机的cuda版本选择合适版本的pytorch

conda/pip3 uninstall pytorch

conda/pip3 install [pytorch-version-link]

09534服务器的cuda版本为9.0,其对应的pytorch版本为:0.4.0

即运⾏以下命令即可:

conda uninstall pytorch

conda install pytorch=0.4.0

10.

出现问题:缺少⾼版本pytorch中的扩展包的头⽂件,所以还是不能选⽤如此低版本的pytorch

⽇志⽂件如下:

logs:

(pytracking) 09534@09534:/data/pzn/pzncode/pytracking/pytracking$ python run_ atom default

VIDEOIO ERROR: V4L: can't open camera by index 0

Using /tmp/torch_extensions as PyTorch

Detected CUDA files, patching ldflags

Emitting ninja build file /tmp/torch_extensions/_prroi_pooling/...

File "", line 219, in _call_with_frames_removed

File "../ltr/models/bbreg/__init__.py", line 1, in

from .atom_iou_net import AtomIoUNet

File "../ltr/models/bbreg/atom_iou_", line 4, in

from _pool import PrRoIPool2D

File "../ltr/external/PreciseRoIPooling/pytorch/prroi_pool/__init__.py", line 12, in

from .prroi_pool import *

File "../ltr/external/PreciseRoIPooling/pytorch/prroi_pool/prroi_", line 14, in

from .functional import prroi_pool2d

File "../ltr/external/PreciseRoIPooling/pytorch/prroi_pool/", line 22, in

verbose=True

File "/data/anaconda3/envs/pytracking/lib/python3.6/site-packages/torch/utils/cpp_", line 501, in load

_build_extension_module(name, build_directory)

File "/data/anaconda3/envs/pytracking/lib/python3.6/site-packages/torch/utils/cpp_", line 582, in _build_extension_module

name, ()))

FAILED: prroi_pooling_gpu.o

RuntimeError: Error building extension '_prroi_pooling': [1/2] c++ -MMD -MF prroi_d -DTORCH_EXTENSION_NAME=_prroi_pooling -I/data/anacon

c++ -MMD -MF prroi_d -DTORCH_EXTENSION_NAME=_prroi_pooling -I/data/anaconda3/envs/pytracking/lib/python3.6/site-packages/torch/lib/inc

compilation terminated.

ninja: build stopped: subcommand failed.

参考⽹站,使⽤该命令进⾏重新安装pytorch

conda install pytorch torchvision cudatoolkit=9.0 -c pytorch

pytorch包下载链接:

/pytorch/linux-64/pytorch-1.1.0-py3.6_cuda9.0.176_cudnn7.5.1_2

查看conda的源:

conda config --show channels

删除conda的指定源:

conda config --remove channels '/anaconda/pkgs/free/'

conda换回默认源:

conda config --remove-key channels

/data/pzn/pzncode/pytracking/ltr/external/PreciseRoIPooling/pytorch/prroi_pool/src/prroi_pooling_gpu.c:12:29: fatal error: torch/extension.h: No such file or directo

由于使⽤conda直接安装,⼜没有添加合适的源会使得下载速度过慢,或者是下载不下来的情况,尝试把下载好的conda安装的pytorch包放到路径anaconda3/pkgs下并

所以采⽤pip直接对pytorch进⾏安装,从官⽹上可知: /

cuda的版本为9.0时,直接使⽤命令:pip install torch torchvision即可。

安装好的pytorch版本仍为:1.1.0

即满⾜⾼版本的pytorch和低版本的cuda driver的需求。

11.

1

python run_ atom default因为调⽤不了摄像头,不能运⾏成功

2

python run_ atom default --dataset otb --sequence Soccer 在序列上运⾏成功

结果保存在:pytracking/pytracking/tracking_results/atom/default/

3

python run_ myexperiments atom_nfs_uav 没有下载这个数据集

python run_ myexperiments otb_test otb数据集上运⾏成功

代码修改:

1)修改了pytracking/pytracking/evaluation/⽂件中的第12⾏:otb_path的路径:

12 line: (fix)

#_path = ''#pang_comment

_path = '/data/pzn/pzncode/pytracking/pytracking/dataset/otb' #pang_add

2)为解决问题8,修改⽂件:

3)为了在整个数据集上的做测试,修改⽂件:

pytracking/pytracking/experiments/⽂件中的第20⾏:增加

line 20: (add)

def otb_test():

# Run ATOM and ECO on the UAV dataset

trackers = [Tracker('atom', 'default', i) for i in range(1)]

dataset = OTBDataset()

return trackers, dataset

为了测试在otb数据集上的结果和表现,结果保存在pytracking/pytracking/tracking_results/atom/default_000/

表现如下:

FPS: 31.433773656093244

Tracker: atom default 0 , Sequence: Human3

FPS: 33.245764078114185

Tracker: atom default 0 , Sequence: Subway

FPS: 29.68875880900868

Tracker: atom default 0 , Sequence: Surfer

FPS: 30.5023

Tracker: atom default 0 , Sequence: Suv

FPS: 31.88824

Tracker: atom default 0 , Sequence: Sylvester

FPS: 31.766

Tracker: atom default 0 , Sequence: Tiger1

FPS: 30.578924915050074

Tracker: atom default 0 , Sequence: Tiger2

FPS: 22.495691874633252

Tracker: atom default 0 , Sequence: Toy

FPS: 30.445

Tracker: atom default 0 , Sequence: Trans

FPS: 28.6514

Tracker: atom default 0 , Sequence: Trellis

FPS: 39.66

Tracker: atom default 0 , Sequence: Twinnings

(1)/data/pzn/pzncode/pytracking/pytracking/evaluation/

line 17: (fix)

#_path = '' #pang_comment

#_path = '/data/pzn/dataset_pang/UAV123' #pang_add #uav123

_path = '/data/pzn/dataset_pang/visdrone2018' #pang_add #drone2018

(2)/data/pzn/pzncode/pytracking/pytracking/evaluation/