相关文章推荐
欢乐的砖头  ·  Python3 ...·  3 天前    · 
忧郁的火腿肠  ·  How to use # inside a ...·  1 年前    · 
行走的剪刀  ·  Android ...·  1 年前    · 
很拉风的石榴  ·  武汉大学药学院·  1 年前    · 


1.Deep_Sort_Pytorch

Deep_Sort_Pytorch是一份PyTorch实现的多目标跟踪的开源库,该代码实现的是广为人知的deep sort多目标跟踪算法,算法原作者的实现是基于TensorFlow的,作者用PyTorch实现了RE-ID(目标重识别)模块,并将目标检测模型从Faster RCNN 替换为YOLOv3。作者提供了预训练模型,不过如果你要自己训练RE-ID模型的话也是支持的。

Pytorch DeepSpeed论文 deepsort pytorch_编译器

2.Window下安装注意事项

1.首先要安装Python3,原来的python2可以不用删除,保证命令行响应的是python3就行了(将python3的位置放置在电脑Path变量的前面就ok,保证首先检索到python3)

Pytorch DeepSpeed论文 deepsort pytorch_编译器_02

2.安装要求的包

pip install -r requirements.txt

推荐采用,防止包安装在python2下面,如果仅安装了一个版本的python则无所谓了。

pip3 install -r requirements.txt

安装torch时需要考虑一下cuda的版本,因为cuda9.2不支持VS2019的编译器,后面无法编译cuda的版本。下图是pytorch官网给的安装指令,可以根据配置自动生成:

Pytorch DeepSpeed论文 deepsort pytorch_github_03

3.依赖的包都安装ok了,然后可以下载一些配置文件,作者也提供了百度网盘的下载地址。

3.编译遇到的问题

安照github的说明,需要运行build.sh文件,如果window下没有安装sh工具,打开该文件,你会发现里面是一条python编译的指令,

Pytorch DeepSpeed论文 deepsort pytorch_python_04


可以进到ext目录下,直接在终端原型里面那句指令,这时候可能会出现以下几个问题。

问题1

torch\lib\site-packages\torch\utils\cpp_extension.py:189: UserWarning: Error checking compiler version for cl: [WinError 2] 系统找不到指定的文件。
warnings.warn('Error checking compiler version for {}: {}'.format(compiler, error))

解决方案:在终端提前运行一下环境配置bat,如果是2019版的可以执行

call "安装地址\VC\Auxiliary\Build\vcvars64.bat"


call完之后,如果出现中文提示,那运行的时候会出现下面一个错误:

问题2

\torch\utils\cpp_extension.py:188: UserWarning: Error checking compiler version for cl: 'utf-8' codec can't decode byte 0xd3 in position 0: invalid continuation byte

这里需要修改cpp_extension.py,该文件在python的安装目录里面,将默认的编码格式换成gbk就能解决该问题。

Pytorch DeepSpeed论文 deepsort pytorch_github_05

问题3

编译因为错误停止,搜索给出的提示信息,你会在里面发现一句:

c10/util/variant.h(1187): error C2872: “std”: 不明确的符号

Pytorch DeepSpeed论文 deepsort pytorch_github_06

这个问题的出现主要是因为VS编译器版本的原因,之前用的是VS15自带的编辑器,之后安装了Microsoft Build Tools for Visual Studio 2019(参看上面提到的另一篇博客),这个问题解决了,但这导致了一个新问题:

Pytorch DeepSpeed论文 deepsort pytorch_github_07

由于电脑安装的CUDA版本是9.2,无法与19版Microsoft Build Tools 兼容,因此没有编译gpu的版本,仅仅编译了cpu的版本。

运行时,在 yolov3_deepsort.py 的目录里面运行:

python yolov3_deepsort.py [VIDEO_PATH]

由于没有gpu,速度感觉有点慢,不过还是可以看出效果的:

Pytorch DeepSpeed论文 deepsort pytorch_编译器_08



3.shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得命令帮助 内部命令help 命令的“--help” 选项 使用man命令阅读手册页 命令行编辑的几个辅助 4.打印机(局域网共享,百度篇) 5.趣解设计模式之《小王看病记》