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

jetsonxaviernx上部署运⾏pytracking

概览:

⼀、Martin Danelljan作品集pytrackingjetson xavier nx上的安装

1. conda环境下安装pytracking

jetson xavier nx是不能安装anaconda的,但是有⼀个⾮常⼩巧的替代品,可谓⿇雀虽⼩五脏俱全:miniforge。具体的安装渠道及

⽅法可参考博⽂ ,其中的换源部分也可使⽤清华源、阿⾥云源等,有了miniforge就可以轻松创建虚拟环境啦~

2. 直接安装pytracking

⾃⼰在使⽤miniforge时,⼀般是⾮常顺利的,但也有可能遇到意想不到的问题,⽐如类似:核⼼指令已转储,⼤概率是nx下和虚拟

环境中同时存在某包的不同版本并找不到其需要的版本导致的,这在当时困扰了我很久,最后⽤gdb python⼀步步调试发现的。若想

直接在jetson xavier nx上安装pytracking依赖,各种依赖包可参照官⽅教程 ,这⾥不细讲。其中需要注意的是torch和torchvision

的安装,它们有相对严格的版本对应关系以及不同的安装⽅式,具体步骤可参考博⽂ 。

⼆、RuntimeError: Error building extension '_prroi_pooling’的解决⽅法之⼀

1. ⾸先,放置测试数据集(以UAV123为例):

在run_所在⽂件夹下,此时需要在pytracking/evalution/和pytracking/evalution

放置好数据集

/⾥

添加数据集路径

2. 下载好跟踪算法super_dimp的模型⽂件,放在pytracking/evalution/和pytracking/evalution/的指定模

型位置;

3. 在run_所在⽂件夹⾥打开终端,并输⼊如下命令:

python3 run_ dimp super_dimp --debug 1 --use_visdom True

在浏览器中输⼊⽹址:,在另⼀个终端⾥输⼊(确保已安装),若安装成功,即可看到

Building extension module _prroi_pooling...

Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)

##

此处省略部分

FAILED: prroi_pooling_gpu_impl.cuda.o

##

此处省略部分

/bin/sh: 1: :/usr/local/cuda/bin/nvcc: not found

##

此处省略部分

FAILED: prroi_pooling_gpu.o

#

此处省略部分

In file included from /home/pytracking/ltr/external/PreciseRoIPooling/pytorch/prroi_pool/src/prroi_pooling_gpu.c:15:0:

/usr/local/lib/python3.6/dist-packages/torch/include/ATen/cuda/CUDAContext.h:5:10: fatal error: cuda_runtime_api.h: 没有那个⽂件或⽬录

#include

^~~~~~~~~~~~~~~~~~~~

compilation terminated.

ninja: build stopped: subcommand failed.

##

此处省略部分

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

##

此处省略部分

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

return prroi_pool2d(features, rois, self.pooled_height, self.pooled_width, self.spatial_scale)

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

_prroi_pooling = _import_prroi_pooling()

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

verbose=True

File "/usr/local/lib/python3.6/dist-packages/torch/utils/cpp_", line 974, in load

keep_intermediates=keep_intermediates)

File "/usr/local/lib/python3.6/dist-packages/torch/utils/cpp_", line 1179, in _jit_compile

with_cuda=with_cuda)

File "/usr/local/lib/python3.6/dist-packages/torch/utils/cpp_", line 1279, in _write_ninja_file_and_build_library

error_prefix="Error building extension '{}'".format(name))

File "/usr/local/lib/python3.6/dist-packages/torch/utils/cpp_", line 1529, in _run_ninja_build

raise RuntimeError(message)

RuntimeError: Error building extension '_prroi_pooling'

5. 解决办法:

上述问题报错⽆法编译⽂件中的某⼀操作,似乎是没有找到⽂件导致的,但去查找了⼀下这个⽂件,它确实是存在

cuda_runtime_api.h

的。⽽且jetson xavier nx⾃带CUDA,不过需要先把它加⼊环境变量,可参考博⽂ ,这⾥不细讲。检查了很长时间看着配置没有问

题并且在⽹上找了各种类似错误的解决办法,都没有奏效。⽆奈之下想了想,出现的问题是找不到已存在的CUDA,就直接在终端输

⼊:(jetpack 4.4⾃带CUDA10.2[可以⽤命令nvcc -V查看版本哦]),喔嚯!问题被解决

export CUDA_HOME = /usr/local/cuda-10.2

了!简直惊喜~

1.

『Nvidia Jetson AGX Xavier笔记』Xavier(arrch64架构)安装anaconda.

2.

pytracking的github链接.

3.

NVIDIA Jetson NX配置深度学习环境(Pytorch、torchvision)超级详细,torchvision安装避坑总结.

4.

带你玩转Jetson Xavier NX系列教程 | Xavier NX 环境变量配置,风扇控制以及Jtop安装..