您的位置:首页 > 汽车 > 时评 > 徐州网站推广_深圳龙岗今天新闻头条_爱站网使用体验_百度推广员工工资怎么样

徐州网站推广_深圳龙岗今天新闻头条_爱站网使用体验_百度推广员工工资怎么样

2024/12/23 20:32:34 来源:https://blog.csdn.net/SharbbyBai/article/details/144435560  浏览:    关键词:徐州网站推广_深圳龙岗今天新闻头条_爱站网使用体验_百度推广员工工资怎么样
徐州网站推广_深圳龙岗今天新闻头条_爱站网使用体验_百度推广员工工资怎么样

一、引言

  1. 配置:
    ubuntu24.04+CUDA11.7+torch1.13.0+torchvision0.14.0(失败)
    win11+CUDA11.6(成功)
  2. 参考链接:
    1). 商汤PySot的配置使用(1)
    2). 商汤PySot的配置使用(2)
    3). 使用Pysot框架遇到的问题
  3. 项目地址:https://github.com/STVIR/pysot

二、配置环境

这里我没有重新配置环境,而是使用的之前配置的一个环境,详细过程在这里,只需要重新安装一个 tensorboardX 库:

pip install tensorboardX

三、demo

1. 添加路径

用 pycharm 打开项目并在终端中输入下面的命令,并检查是否添加成功:

export PYTHONPATH=$PWD:$PYTHONPATH
echo $PYTHONPATH

win 添加路径的方式:

# 配置临时环境变量
set PYTHONPATH=C:\path\to\dir
# 打印环境变量检查是否配置成功
echo %PYTHONPATH%
# 配置成功有如下输出
C:\path\to\dir

PS: 临时添加路径,每次都要添加。

2. stup.py

编译 stup.py 文件,生成 build 文件夹:

python setup.py build_ext --inplace

3. 下载模型

官方链接:PySOT Model Zoo
百度云链接:https://pan.baidu.com/s/1GB9-aTtjG57SebraVoBfuQ 密码:j9yb
感谢大佬的分享。
在这里插入图片描述
将模型下载下来,将里面各个文件夹的 model.pth 文件,分别复制到 pysot 工程文件 experiments 对应的文件夹里。不要直接替换文件夹,里面的 config.yaml 文件不一样。直接替换的话,后面运行程序会报错。

4. demo.py

根据我个人的习惯,我在 demo.py 的 parser 中添加了 config、snapshot、video 的默认路径:
在这里插入图片描述
或者按照大佬的介绍在菜单栏 Run–>Edit configurations 中输入:

--config
../experiments/siamrpn_alex_dwxcorr/config.yaml
--snapshot
../experiments/siamrpn_alex_dwxcorr/model.pth
--video
../demo/bag.avi

在这里插入图片描述
或者在终端中输入都可以。
然后运行 demo.py,用鼠标框个框,回车:
在这里插入图片描述

四、test

1. 错误1

在Ubuntu24.04中打开 test.py 文件,就有一个醒目的错误:Cannot find reference region in __init__.py
使用了非常多的方法都没有用,setup.py 文件改了又改,错误还是存在。而且 build 文件夹也顺利生成了,到底是什么原因呢?这里我在运行 setup.py 文件时还出现了两个警告:
Warning: Extension name toolkit.utils.region does not match fully qualified
toolkit/utils/region.pyx: cannot find cimported module 'c_region'
我最终的解决方案:
File→Settings→Editor→Inspections→在右侧框中选择python→Unresolved references
将Unresolved references后的“√”勾掉。。。

2. 错误2

FutureWarning: Cython directive ‘language_level’ not set, using 2 for now (Py2)

解决方案:
在 setup.py 文件的开头第一行加上:

# cython: language_level=3

或者在 anaconda3/envs/环境名称/lib/python3.7/site-packages/Cython/Compiler/Main.py 的第 757 行将 2 改为 3.
win11中没有出现错误。

3. 准备数据集(以 OTB100 为例)

  1. 下载 .json 文件
    官方链接:https://pan.baidu.com/s/1js0Qhykqqur7_lNRtle1tA?at=1734357740544#list/path=/
  2. 配置数据集
    将CVRP13.json,OTB100.json,OTB50.json放在OTB100数据集目录中(您需要将Jogging复制到Jogging-1和Jogging-2,并将Skating2复制到Skating2-1和Skating2-2或使用软链接,将 Human4 文件夹修改为 Human4-2
    在这里插入图片描述

4. 编辑 test

在这里插入图片描述
运行 test.py。
在这里插入图片描述
会将测试结果保存在 ./results 下面,后面的评估需要测试结果。

五、eval

1. 编辑配置

在编辑配置中输入:

--tracker_path
../tools/results
--dataset
OTB100
--num
1
--tracker_prefix
model
--show_video_level

点击运行。

2. 经典问题:

在ubuntu24.04中出现:

ImportError: cannot import name 'calculate_failures' from 'toolkit.utils' (unknown location)

感觉可能还是 setup 运行的时候出了问题?我在 win11 中就没有遇到这个问题,运行 eval.py 非常顺利:
在这里插入图片描述
所以到底是怎么回事。后面我没有继续在Ubuntu24.04中配置了,只在win11中进行了下面的配置步骤。

五、安装 LaTeX

参考链接:
Latex安装教程

1. 安装 Texlive

  1. 下载地址:
    win官方链接:https://tug.org/texlive/windows.html
    清华镜像源:https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/
  2. 下载
    在这里插入图片描述
  3. 安装
    解压 ISO 文件,右键 install-tl-windows.bat ,以管理员身份运行:
    在这里插入图片描述
    修改安装位置,路径中不能含有中文,然后点击 advance:
    在这里插入图片描述
    安装语言只选择了英文、中文:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    点击确定,开始安装
    在这里插入图片描述
  4. 检测安装结果
    在终端中输入:
tex -v
latex -v
xelatex -v
pdflatex -v

看是否显示版本号。若不显示则需添加环境变量,但一般应该是自动添加的。

2. 安装 TeXstudio

  1. 下载地址
    win官方链接:https://texstudio.sourceforge.net/
    清华镜像源:https://mirrors.tuna.tsinghua.edu.cn/github-release/texstudio-org/texstudio/
  2. 下载
    在这里插入图片描述
  3. 安装
    安装路径需全英文
    在这里插入图片描述
  4. 配置
    1). 这里我打开就是中文版的,所以没有设置语言。
    2). 设置编译环境
    选项–>设置TeXstudio–>构建–>默认编译器–>XeLaTeX
    在这里插入图片描述
    写中文论文—>XeLaTeX,英文论文PdfLaTex
  5. 测试效果
    新建文件,编辑如下代码:
\documentclass{article}
% 这里是导言区
\begin{document}
Hello, world!
\end{document}

点击构建并查看:
在这里插入图片描述

3. 更改eval.py的内容

参考链接

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literalsimport os
import argparsefrom glob import glob
from tqdm import tqdm
from multiprocessing import Pool
from toolkit.datasets import OTBDataset, UAVDataset, LaSOTDataset, \VOTDataset, NFSDataset, VOTLTDataset
from toolkit.evaluation import OPEBenchmark, AccuracyRobustnessBenchmark, \EAOBenchmark, F1Benchmark
from toolkit.visualization import draw_success_precision, draw_eao, draw_f1
parser = argparse.ArgumentParser(description='tracking evaluation')
parser.add_argument('--tracker_path', '-p', type=str,help='tracker result path')
parser.add_argument('--dataset', '-d', type=str,help='dataset name')
parser.add_argument('--num', '-n', default=1, type=int,help='number of thread to eval')
parser.add_argument('--tracker_prefix', '-t', default='',type=str, help='tracker name')
parser.add_argument('--show_video_level', '-s', dest='show_video_level',action='store_true')
parser.add_argument('--vis', dest='vis', action='store_true')
parser.set_defaults(show_video_level=False)
args = parser.parse_args()def main():tracker_dir = os.path.join(args.tracker_path, args.dataset)trackers = glob(os.path.join(args.tracker_path,args.dataset,args.tracker_prefix+'*'))trackers = [os.path.basename(x) for x in trackers]assert len(trackers) > 0args.num = min(args.num, len(trackers))root = os.path.realpath(os.path.join(os.path.dirname(__file__),'../testing_dataset'))root = os.path.join(root, args.dataset)if 'OTB' in args.dataset:dataset = OTBDataset(args.dataset, root)dataset.set_tracker(tracker_dir, trackers)benchmark = OPEBenchmark(dataset)success_ret = {}with Pool(processes=args.num) as pool:for ret in tqdm(pool.imap_unordered(benchmark.eval_success,trackers), desc='eval success', total=len(trackers), ncols=100):success_ret.update(ret)precision_ret = {}with Pool(processes=args.num) as pool:for ret in tqdm(pool.imap_unordered(benchmark.eval_precision,trackers), desc='eval precision', total=len(trackers), ncols=100):precision_ret.update(ret)benchmark.show_result(success_ret, precision_ret,show_video_level=args.show_video_level)if args.vis:for attr, videos in dataset.attr.items():draw_success_precision(success_ret,name=dataset.name,videos=videos,attr=attr,precision_ret=precision_ret)elif 'LaSOT' == args.dataset:dataset = LaSOTDataset(args.dataset, root)dataset.set_tracker(tracker_dir, trackers)benchmark = OPEBenchmark(dataset)success_ret = {}with Pool(processes=args.num) as pool:for ret in tqdm(pool.imap_unordered(benchmark.eval_success,trackers), desc='eval success', total=len(trackers), ncols=100):success_ret.update(ret)precision_ret = {}with Pool(processes=args.num) as pool:for ret in tqdm(pool.imap_unordered(benchmark.eval_precision,trackers), desc='eval precision', total=len(trackers), ncols=100):precision_ret.update(ret)norm_precision_ret = {}with Pool(processes=args.num) as pool:for ret in tqdm(pool.imap_unordered(benchmark.eval_norm_precision,trackers), desc='eval norm precision', total=len(trackers), ncols=100):norm_precision_ret.update(ret)benchmark.show_result(success_ret, precision_ret, norm_precision_ret,show_video_level=args.show_video_level)if args.vis:draw_success_precision(success_ret,name=dataset.name,videos=dataset.attr['ALL'],attr='ALL',precision_ret=precision_ret,norm_precision_ret=norm_precision_ret)elif 'UAV' in args.dataset:dataset = UAVDataset(args.dataset, root)dataset.set_tracker(tracker_dir, trackers)benchmark = OPEBenchmark(dataset)success_ret = {}with Pool(processes=args.num) as pool:for ret in tqdm(pool.imap_unordered(benchmark.eval_success,trackers), desc='eval success', total=len(trackers), ncols=100):success_ret.update(ret)precision_ret = {}with Pool(processes=args.num) as pool:for ret in tqdm(pool.imap_unordered(benchmark.eval_precision,trackers), desc='eval precision', total=len(trackers), ncols=100):precision_ret.update(ret)benchmark.show_result(success_ret, precision_ret,show_video_level=args.show_video_level)if args.vis:for attr, videos in dataset.attr.items():draw_success_precision(success_ret,name=dataset.name,videos=videos,attr=attr,precision_ret=precision_ret)elif 'NFS' in args.dataset:dataset = NFSDataset(args.dataset, root)dataset.set_tracker(tracker_dir, trackers)benchmark = OPEBenchmark(dataset)success_ret = {}with Pool(processes=args.num) as pool:for ret in tqdm(pool.imap_unordered(benchmark.eval_success,trackers), desc='eval success', total=len(trackers), ncols=100):success_ret.update(ret)precision_ret = {}with Pool(processes=args.num) as pool:for ret in tqdm(pool.imap_unordered(benchmark.eval_precision,trackers), desc='eval precision', total=len(trackers), ncols=100):precision_ret.update(ret)benchmark.show_result(success_ret, precision_ret,show_video_level=args.show_video_level)if args.vis:for attr, videos in dataset.attr.items():draw_success_precision(success_ret,name=dataset.name,video=videos,attr=attr,precision_ret=precision_ret)elif args.dataset in ['VOT2016', 'VOT2017', 'VOT2018', 'VOT2019']:dataset = VOTDataset(args.dataset, root)dataset.set_tracker(tracker_dir, trackers)ar_benchmark = AccuracyRobustnessBenchmark(dataset)ar_result = {}with Pool(processes=args.num) as pool:for ret in tqdm(pool.imap_unordered(ar_benchmark.eval,trackers), desc='eval ar', total=len(trackers), ncols=100):ar_result.update(ret)benchmark = EAOBenchmark(dataset)eao_result = {}with Pool(processes=args.num) as pool:for ret in tqdm(pool.imap_unordered(benchmark.eval,trackers), desc='eval eao', total=len(trackers), ncols=100):eao_result.update(ret)ar_benchmark.show_result(ar_result, eao_result,show_video_level=args.show_video_level)elif 'VOT2018-LT' == args.dataset:dataset = VOTLTDataset(args.dataset, root)dataset.set_tracker(tracker_dir, trackers)benchmark = F1Benchmark(dataset)f1_result = {}with Pool(processes=args.num) as pool:for ret in tqdm(pool.imap_unordered(benchmark.eval,trackers), desc='eval f1', total=len(trackers), ncols=100):f1_result.update(ret)benchmark.show_result(f1_result,show_video_level=args.show_video_level)if args.vis:draw_f1(f1_result)if __name__ == '__main__':main()

4. 修改 eval.py 的 configurations

添加一行“–vis”:

--tracker_path
...\results
--dataset
OTB100
--num
1
--tracker_prefix
model
--show_video_level
--vis

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com