Windows10环境下⾃⼰配置Pytracking详细流程(有参考博客)
关于pytracking以及配置前的⼀些准备
Pytracking是⼀个基于pytoch的⽤于视觉对象跟踪和视频对象分割的通⽤的python框架。
1.1 配置前的准备
windows系统下预装⽀持VS的CUDA10.0以及对应的cuDnn
下载及安装参考博客:
注:(1)最好使⽤cuda10.0,否则需要⾃⼰在⼀些地⽅重新编译。会很⿇烦,windows只适合⽤来跑demo,训练的话还是推荐ubuntu (2)并且电脑需要安装VS2015
2.配置过程
2.1 创建环境并激活
conda create --name pytracking python=3.7
conda activate pytracking
第⼆种⽅法不推荐:是按照以下⽅式进⾏⾃动安装(但是我⽤这种⽅法默认下载的是cpu版本的torch,故我使⽤第⼀种⽅法进⾏安装)conda install -y pytorch torchvision cudatoolkit=10.0-c pytorch
2.3 安装各种依赖库
pip install matplotlib pandas jpeg4py
pip install opencv-python visdom tb-nightly
matplotlib是⼀个2D绘图库;
pandas是⼀种数据分析⼯具;
jpeg4py是⼀种快速读取jpg图⽚的⼯具;
OpenCV是⼀个基于BSD许可(开源)发⾏的跨平台计算机视觉库,⽽opencv-python是OpenCV的python的API接⼝;
visdom是python的可视化⼯具;
最后⼀个不是很清楚
pip install cython pycocotools
cython是⼀种编程语⾔,它使Python语⾔的C扩展像Python本⾝⼀样简单,此处⽬的是⽤来编译COCO⼯具包;
pycocotools:python api tools of coco
python默认安装路径2.4 安装Pricise ROI pooling
(1)DiMP和ATOM需要Precise ROI pooling模块,可以直接,将解压后的pytorch⽂件夹拷贝到路径
E:\Codes\PyCharm\pytracking-master\ltr\external\PreciseRoIPooling\
(2)下载prroi_pool.pyd⽂件
这个⽂件是使⽤C++⽣成的库⽂件,DIMP和ATOM算法会⽤到,下载地址作者已提供:(有时候需要科学上⽹才可以下载),下载周将其保存到路径:D:\Python\Anaconda_install\envs\pytracking\Lib\site-packages
(3)添加环境变量(到⽤户变量)
路径如下:***\envs\pytracking\Lib\site-packages\torch\lib
图⽚上传总是失败,但是按照这个路径就可以
(4)添加代码
打开pytracking\ltr\external\PreciseRoIPooling\pytorch\prroi_pool\functional.py,添加如下代码:
def_import_prroi_pooling():
global _prroi_pooling
#load the prroi_pool module
import imp
file, path, description = imp.find_module('prroi_pool')
with file:
_prroi_pooling = imp.load_module('prroi_pool',file, path, description)
添加完成之后应该是这样的:
import torch
import torch.autograd as ag
__all__ =['prroi_pool2d']
_prroi_pooling =None
def_import_prroi_pooling():
global _prroi_pooling
#load the prroi_pool module
import imp
file, path, description = imp.find_module('prroi_pool')
with file:
_prroi_pooling = imp.load_module('prroi_pool',file, path, description)
if _prroi_pooling is None:
try:
from os.path import join as pjoin, dirname
from torch.utils.cpp_extension import load as load_extension
root_dir = pjoin(dirname(__file__),'src')
_prroi_pooling = load_extension(
'_prroi_pooling',
[pjoin(root_dir,'prroi_pooling_gpu.cpp'), pjoin(root_dir,'prroi_pooling_gpu_impl.cu')],
verbose=True
)
except ImportError:
raise ImportError('Can not compile Precise RoI Pooling library.')
return _prroi_pooling
(5)创造配置⽂件(此处参考博客)
在⼯程路径下新建createlocalfiles.py,(这⾥的路径要与pytracking和ltr保持同级,通过右键第⼆个pytracking-master新建python⽂件即可) 并写⼊如下代码:
import vironment as ltrae
import vironment as pyee
运⾏之后,会在\pytracking\evaluation\路径和\ltr\admin\路径下⽣成local.py,打开这两个⽂件可以配置⼀些我们的实验参数。如指定数据集路径和预训练模型路径等。
(7)打开服务可视化(参考博客)
python -m visdom.server
(8)打开另⼀个终端运⾏(参考博客)
activate pytracking
python pytracking/run_tracker.py atom default --dataset_name otb --sequence Soccer --debug 1--threads 0
atom是需要运⾏的跟踪器名字
default是参数设置,在pytracking/parameter/atom路径下有很多参数可选。
otb是需要运⾏的数据集名称
Soccer是需要运⾏的视频序列名字
debug控制可视化等级
threads运⾏的线程数
报错:
File “pytracking…\pytracking\utils\load_text.py”, line 14, in load_text_numpy
raise Exception(‘Could not read file {}’.format(path))
Exception: Could not read file E:\OTB100/BlurCar1/
博客中提到这事由于读取格式不对应造成的,解决⽅法按照博客修改就可以的
打开pytracking/utils/load_text.py更改函数:
def load_text_numpy(path, delimiter, dtype)
改为:
def load_text_numpy(path, delimiter, dtype):
if isinstance(delimiter,(tuple,list)):
for d in delimiter:
try:
# ground_truth_rect = np.loadtxt(path, delimiter=d, dtype=dtype)
# to deal with different delimeters
import io
with open(path,'r')as f:
ground_truth_rect=np.loadtxt(io.ad().replace(',',' ')))
return ground_truth_rect
except:
pass
raise Exception('Could not read file {}'.format(path))
else:
ground_truth_rect = np.loadtxt(path, delimiter=delimiter, dtype=dtype)
return ground_truth_rect
(9)再次运⾏,报错
File “
博客中说到这事由于作者提供的prroi_pool.pyd与系统不兼容,需要使⽤VS编译来⽣成依赖库prroi_pool.pyd,我想下载博主⾃⼰编译的prroi_pool.pyd尝试了⼀下。、
调试成功

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。