码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • windows平台FairMOT的实现


    环境:python3.6+pytorch1.1.0+torchvision0.3.0+cuda9.2+vs2015

    该项目需要装3个c++库(dcn_v2,apex,cython_bbox)特别坑,各种环境不匹配,各种bug。本人c++小白,但是一路摸索总算成功了。下面总结一下:

    一、
    1.先把源码下下来,用git(自己手安)克隆或者直接下载zip文件都可:https://github.com/ifzhang/FairMOT

    2. 安装anaconda3,并用conda搭建虚拟环境:

    1. conda create -n FairMOT python=3.6 #-n 代表环境名字
    2. activate
    3. conda activate FairMOT #激活这个叫FairMOT的环境

    3.安装pytorch1.1.0,在官网上下载https://download.pytorch.org/whl/torch_stable.html,我选择的是:cu100/torch-1.1.0-cp36-cp36m-win_amd64.whl,下载后使用pip安装

    pip install torch-1.1.0-cp36-cp36m-win_amd64.whl

    4.安装对应的torchvision

    pip install torchvision-0.3.0-cp36-cp36m-win_amd64.whl

    5.安装cython,ninja

    1. pip install cython
    2. pip install ninja

    6.安装opencv-python:

    pip install -U opencv-python==4.1.1.26

    7.安装依赖项:

    pip install -r requirements.txt

    8.安装:DCNv2:

    下载:GitHub - maohule/DCNv2

    进入DCNv2-master文件夹运行:

    python setup.py build develop

    在Python下import dcn_v2不报错就安装成功了。

    9.安装cython_bbox,在这里下载cython-bbox · PyPI,运行下面指令安装:

    python setup.py build develop install

    可能报错:

    cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”

    修改如下一行,然后再执行安装即可。

    在Python下import cython_bbox不报错就安装成功了。

    参考:cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”-CSDN博客

    invalid numeric argument '/Wno-cpp' 解决方法-CSDN博客

    10.安装apex:

    git clone https://github.com/NVIDIA/apex.git这个官方的怎么安都报错,于是乎,找了这个博客(apex安装常见的三个报错并成功解决(亲测有效)_安装apex库错误-CSDN博客)的第四种方法,很有效:

    1. git clone https://github.com/ptrblck/apex.git
    2. cd apex
    3. git checkout apex_no_distributed
    4. pip install -v --no-cache-dir ./

    安装后需要将FairMOT代码中的from torch.cuda import amp改为from apex import amp

    在Python下import apex不报错就安装成功了。

    11.修改FairMOT代码FairMOT-master\src\lib\opts.py

    --load_model 设置上一步下载好的模型权重位置

    在opts.py的19行

    0代表第一个gpu

    –input-video要测试视频的位置
    –output-root测试完视频的输出位置

    12.在src文件夹下运行demo.py文件,即可测试:

    python demo.py mot --input-video ../videos/MOT16-03.mp4 --load_model ../models/fairmot_dla34.pth --conf_thres 0.4

    运行时出现如下错误:

    1. Traceback (most recent call last):
    2. File "demo.py", line 14, in
    3. from track import eval_seq
    4. File "C:\Users\93260\FairMOT-master1\src\track.py", line 20, in
    5. import datasets.dataset.jde as datasets
    6. ModuleNotFoundError: No module named 'datasets.dataset'

    解决:将datasets.dataset.jde改为lib.datasets.dataset.jde

    出现错误:找不到models模块

    解决:在models块添加__init__.py文件即可

    出现错误:

    AttributeError: module 'torch' has no attribute 'true_divide'

    发生该错误主要原因是我用低版本的torch,torch1.7就没有这样的错误。

    解决:将torch.true_divide改为 torch.div即可

    二、一些坑的总结:

    1.torch1.1.0+torchvision0.3.0+cuda9.2+vs2015可以成功编译dcn_v2,但是编译apex时候报错,参照Pytorch 安装 APEX 疑难杂症解决方案 - 知乎,大概意思是torch的cuda版本

    torch.version.cuda

    是10.0,但是nvcc --version查到的cuda版本是9.2,所以导致Cuda extensions are being compiled with a version of Cuda that does not错误。因此我按照nvcc查到的版本卸载安装了torch1.2和torchvision0.4即下载安装

    利用pip uninstall 卸载torch和torchvision,再安装

    1. pip install torch-1.2.0+cu92-cp36-cp36m-win_amd64.whl
    2. pip install torchvision-0.4.0+cu92-cp36-cp36m-win_amd64.whl

    这样编译apex就没错了,但是import dcn_v2又报错了。因此安装完apex后又重新卸载安装了torch1.1.0和torchvision0.3.0,重新编译dcn_v2。编译成功后import dcn_v2和import apex均不报错。(遇见flat_hash_map.h错误,没解决,但是通过重安pytorch方法,版本匹配后,就没有这个错误了)

    2.'cl.exe' not found

    首先确保你安装了C++编译工具,我直接安装Microsoft Visual studio 14.0了。一定要选择上C++编译工具。

    配置环境变量:在你的系统添加环境变量,在搜索框输入sysdm.cpl,选择高级,环境变量,系统变量,Path添加:

    3.系统可以同时存在多个版本的cuda,使用哪个更改环境变量即可。比如我安装了cuda9.2和cuda11.2,因此如果要用cuda9.2,在系统变量的Path中将9.2版本的cuda放在11.2前面:

    另外在系统变量中将CUDA_PATH的路径指向9.2:

    4. visual studio c++ build tools时安装缺失问题:

    解决visual studio C++ build tools时安装包缺失或损坏的问题(亲测绝对有用!!!)_visual studio build tools-CSDN博客win10安装visual studio C++ build tools超简单教程(离线适用)_microsoft c++ build tools 离线-CSDN博客

    即百度网盘下载:
    链接:https://pan.baidu.com/s/1msbwwqLleQ0GagZ4ymKvhQ
    提取码:owk0
    下载解压后的文件夹如图所示:

    然后双击VisualCppBuildTools_Full.exe离线安装。

    5.不要卸载setuptools,在安装dcn_v2时,出现错误,根据搜索提示,需要安装低版本的setuptools,我于是卸载了setuptools导致每次运行都会报一个文件出错,于是还重新安装了annaconda。变成低版本的setuptools,只需要直接安装即可,例如:pip install setuptools=59.x.x。如果不小心卸载了setuptools参照以下方法解决:

    手贱,pip uninstall setuptools报错!!!-CSDN博客

    [python]python2.7卸载setuptools导致No module named pkg_resources_python卸载setuptools_FL1623863129的博客-CSDN博客

    6. pip下载安装出现SSLError,解决:关掉翻墙软件。

    解决pip安装报错:(Caused by SSLError(SSLEOFError(8, ‘EOF occurred in violation of protocol (_ssl.c:1129)‘))_sinat_41877285的博客-CSDN博客

    7.conda激活虚拟环境发生错误:CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘。

    解决:在shell环境下应该要先启动conda的base环境

    activate

    再激活虚拟环境:

    conda activate FairMOT1

    参考:CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate‘.简单解决方案_rothschildlhl的博客-CSDN博客

    8.关于apex的一些总结:

    apex安装问题解决_nvidia apex安装_一根黄三的博客-CSDN博客

    Pytorch 安装 APEX 疑难杂症解决方案 - 知乎

    【DEBUG日记】cannot import name ‘amp‘_importerror: cannot import name 'amp-CSDN博客

    9.关于dcn_v2的一些总结:

    解决在windows上DCNv2编译问题(强推!亲测有效!!)_windows编译dcnv2-CSDN博客

    10.flat_hash_map.h总结:

    没办法用人工智障跳鸡你太美让我很伤心! - 哔哩哔哩

    python - flat_hash_map.h : error C3203: 'templated_iterator': unspecialized class template - Stack Overflow

    11.python3.8+pytorch1.7+cuda11.2+vs2019参照:

    FairMOT配置(VS2019+Win10+CUDA11.0)_importerror: cannot import name '_nt_quote_args' f-CSDN博客

    Tracking(目标跟踪):Mot(多目标跟踪系列)-FairMot,快速入门代码、小白都看懂_he_eeeeeeeeeee的博客-CSDN博客

    12.其他的FairMOT的总结:

    https://www.cnblogs.com/huiyanliu/p/14080785.html

    关于在windows上完成目标检测模型Centernet 以及自己数据的训练 - 灰信网(软件开发博客聚合)FairMOT实时多目标跟踪_fairmot dla-CSDN博客关于在windows上完成目标检测模型Centernet 以及自己数据的训练 - 灰信网(软件开发博客聚合)

    FairMOT训练自己的数据集及学习笔记_fairmot修改类别数-CSDN博客

    FairMOT复现-icode9专业技术文章分享

    13.conda如何添加,删除镜像channel,管理虚拟环境,以及其他常见命令

    conda如何添加,删除镜像channel,管理虚拟环境,以及其他常见命令。_conda config --add channels_音程的博客-CSDN博客

  • 相关阅读:
    MS5611大气压强传感器驱动代码(基于GD32F103)
    AVL树性质和实现
    PHP- PHP中与HTML标签的联合使用。注意:<?php 之后的需要有一个空格?>
    搭建 Vite + Vue3 + TypeScript + Electron 项目
    无代码开发部门入门教程
    es字段查询加keyword和不加keyword的区别
    【付费推广】常见问题合集,搜索推广FAQ 1
    java 成员内部类
    Ubuntu上安装配置Nginx
    Mysql数据库--修改root密码的几种方法(忘记密码&知道密码)
  • 原文地址:https://blog.csdn.net/maohule/article/details/133710512
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号