基于yolov5+fastreid+deepsort的TensorRT目标跟踪(C++版)复现过程

2023-05-16

基于yolov5+fastreid+deepsort的TensorRT目标跟踪

大部分的多目标跟踪项目都是用Python写的,但是C++版本能够用TensorRT进行加速,适合在边缘端部署,所以公司要求用C++版。
这个博客复现了GitHub上一个C++版的yolov5+fastreid+deepsort的TensorRT项目,通过复现这个项目来得到一点启发。
项目地址:yolov5+fastreid+deepsort+tensorrt

我在自己的目录下新建了一个文件夹来存放项目:
在这里以 /test 代称:
首先将项目克隆到服务器:
在/test目录下执行:

sudo git clone https://github.com/linghu8812/yolov5_fastreid_deepsort_tensorrt.git

创建项目运行环境,根据项目的GitHub地址中README.md文件指导:

第一步:创建镜像

在/test目录执行指令:

cd  test-yolo-deep-fast
docker build -t tensorrt_tracker:0.1.0_rc .

以下是踩坑记录,中间有的操作是无用功,正在解决方法会用加粗提示
不想看踩坑记录的直接往下翻找到我修改后的DockerFIle文件复制过去就行
踩坑原因是对docker镜像和相关指令不熟悉的原因。

问题1:出现了:bash: curl: command not found错误
但是我查看curl的版本他有显示,说明是有curl的,所以我就猜测是版本的问题,所以就更新了curl版本。
在这里插入图片描述
Linux–wget、curl command not found解决方案
在这里插入图片描述
【Error】解决curl: command not found

乱改了一通还是不行,就问了学姐,最后学姐告诉我这个curl报错是因为,在docker里没有curl指令,而我查到的curl版本和更新curl版本都是在虚拟机上进行的,所以我再怎么折腾docker里都没有,最后只要在# apt-get 安装这部分加一个curl即可。
所以有的时候还是要多问,本来很简单的问题浪费了一个上午的时间,可惜。
问题一解决方法:# apt-get 安装这部分加一个curl即可
在这里插入图片描述
问题2:在解压用curl 指令下载的zip文件出现以下问题:
在这里插入图片描述
出现这个问题主要原因是下载的zip文件其实只是一个网页文件,并不是真正的zip文件,如下图所示,我用vim查看了改文件发现是404NotFound,离大谱。请添加图片描述
针对这个问题我查了很多博客,主要是有两种解决方法,但是对我都不适用,先记录下这两种解决方法:

  1. 用curl -L 重定向End-of-central-directory signature not found
  2. 用 jar xvf 指令:装入归档文件时出现了一个错误,End-of-central-directory signature not found.

使用jar操作文件
ubuntun下使用:sudo apt-get install -f jar,
centos使用 yum -y install java-1.6.0-openjdk-devel
安装jar工具。
当jar工具安装完成后,再次执行:jar xvf

真正解决问题的博客:一种可能的原因 gzip: stdin: not in gzip format
看了这个博客我才知道为什么下载的zip文件是网页文件而不是真正的zip文件,因为我们的curl 指令把整个html page当成压缩包下载下来了。所以我们下载zip文件时的下载连接应该用压缩包的链接而不是网页链接。
我对比了原作者的Dockerfile文件中下载opencv步骤的代码和我更改后的代码发现了两个不同,
第一要用curl -OL 指令而不是curl -O
第二,下载链接复制的文件名是什么就是什么,不能更改。

问题2解决方法:修改DockerFile文件中安装opencv部分的代码
改成以下指令:

RUN bash -xc "curl -OL https://gitee.com/mirrors/opencv/repository/archive/4.x.zip  && ls /home/install/ && unzip 4.x.zip && ls /home/install/ && mv opencv-4.x opencv && \
    curl -OL https://gitee.com/orzchenyuming/opencv_contrib/repository/archive/master.zip && unzip master.zip  && ls /home/install/ && mv opencv_contrib-master opencv_contrib && \
    pushd opencv>&1 > /dev/null && mkdir build && pushd build>&1 > /dev/null && \
    cmake -D WITH_QT=ON \
          -D WITH_CUDA=ON \
          -D BUILD_TIFF=ON \
          -D BUILD_TESTS=OFF \
          -D BUILD_PERF_TESTS=OFF \
          -D OPENCV_GENERATE_PKGCONFIG=ON \
          -D CMAKE_INSTALL_PREFIX=/usr/local \
          -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules/ \
          -D BUILD_opencv_xfeatures2d=OFF  .. && \
    make -j4 && make -j4 install && pkg-config --cflags opencv4 && echo '/usr/local/lib' > /etc/ld.so.conf.d/opencv.conf && \
    popd 2>&1 > /dev/null && popd 2>&1 > /dev/null && rm -rf 4.x.zip && rm -rf master.zip"

主要修改的地方就是第一、二行的curl指令部分和最后一行的 rm 指令部分。
在这里插入图片描述
看到这里说明opencv成功安装了,激动!!!

问题3:pip的安装问题
关于pip的安装出现了一些问题,当时忘记记录具体问题了,大概是访问太慢导致下载不成功,参考了很多博客之后将 RUN pip3 指令修改成如下:
(具体参考的博客也忘记记录了,如果以后找到了再补上)
问题3解决方法:修改DockerFile文件中安装pip3部分的代码
改成以下指令:

RUN pip3 --default-timeout=100 install -U pip && pip3 install torch torchvision mxnet-cu102 onnx-simplifier -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com\
    && pip3 --default-timeout=100 install --ignore-installed -U PyYAML

问题4:安装tensorrt出现的问题
原来的DockerFile中是用curl指令下载tensorrt的deb包,但是仍然产生了同问题2一样的错误,即下载的deb文件实际上是HTML文件。我试了很多方法都不能下载正确的deb文件。
然后看了很多博客,看到说要下载到本机再传到虚拟机中,我当时感觉这个方法不适用于在docker中,因为我的宿主机也无法下载正确的deb文件。走头无路的我又重新看了一下docker部署镜像的相关指令,看到了COPY指令能够将宿主机的文件传到docker镜像中,我仿佛看到了希望。

问题3解决方法:
第一步:先想办法实现Win和linux的文件互传
Windows与Linux之间互传文件的方法
救命了的博客!!!

下载了WinSCP能够实现Win和linux的文件互传

第二步:在win中下载tensorrt的deb包将它传到linux中

第三步:修改DockerFile文件中安装tensorrt部分的代码
改成如下:

# tensorrt 安装
COPY nv-tensorrt-repo-ubuntu1804-cuda10.2-trt7.1.3.4-ga-20200617_1-1_amd64.deb /home/install/nv-tensorrt-repo-ubuntu1804-cuda10.2-trt7.1.3.4-ga-20200617_1-1_amd64.deb
RUN bash -xc " ls /home/install/ && \
    dpkg -i nv-tensorrt-repo-ubuntu1804-cuda10.2-trt7.1.3.4-ga-20200617_1-1_amd64.deb \
    && apt-key add /var/nv-tensorrt-repo-cuda10.2-trt7.1.3.4-ga-20200617/7fa2af80.pub && apt-get update\
    && apt-get -y install tensorrt && rm -rf nv-tensorrt-repo-ubuntu1804-cuda10.2-trt7.1.3.4-ga-20200617_1-1_amd64.deb"

其中COPY指令是将宿主机中deb文件挂载到docker镜像中。

这四个问题解决了之后再执行

docker build -t tensorrt_tracker:0.1.0_rc .

就能成功构建项目环境镜像

终于构建成功了,热泪盈眶
在这里插入图片描述

在这里放上我更改后的DockerFile文件:

FROM nvidia/cuda:10.2-cudnn8-devel-ubuntu18.04
RUN sed -i s:/archive.ubuntu.com:/mirrors.tuna.tsinghua.edu.cn/ubuntu:g /etc/apt/sources.list
RUN cat /etc/apt/sources.list
RUN apt-get clean
RUN apt-get -y update --fix-missing
WORKDIR /home/install/

# apt-get 安装
RUN apt-get update
RUN apt-get install software-properties-common -y
RUN add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
RUN rm /etc/apt/sources.list.d/cuda.list /etc/apt/sources.list.d/nvidia-ml.list && \
    apt-get update && apt-get -y upgrade && apt-get -y install ssh vim build-essential cmake git libgtk2.0-dev pkg-config \
    libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev \
    libjasper-dev libdc1394-22-dev qtbase5-dev qtdeclarative5-dev python3-pip zip curl fastjar rar unzip unrar 

# opencv 安装
RUN bash -xc "curl -OL https://gitee.com/mirrors/opencv/repository/archive/4.x.zip  && ls /home/install/ && unzip 4.x.zip && ls /home/install/ && mv opencv-4.x opencv && \
    curl -OL https://gitee.com/orzchenyuming/opencv_contrib/repository/archive/master.zip && unzip master.zip  && ls /home/install/ && mv opencv_contrib-master opencv_contrib && \
    pushd opencv>&1 > /dev/null && mkdir build && pushd build>&1 > /dev/null && \
    cmake -D WITH_QT=ON \
          -D WITH_CUDA=ON \
          -D BUILD_TIFF=ON \
          -D BUILD_TESTS=OFF \
          -D BUILD_PERF_TESTS=OFF \
          -D OPENCV_GENERATE_PKGCONFIG=ON \
          -D CMAKE_INSTALL_PREFIX=/usr/local \
          -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules/ \
          -D BUILD_opencv_xfeatures2d=OFF  .. && \
    make -j4 && make -j4 install && pkg-config --cflags opencv4 && echo '/usr/local/lib' > /etc/ld.so.conf.d/opencv.conf && \
    popd 2>&1 > /dev/null && popd 2>&1 > /dev/null && rm -rf 4.x.zip && rm -rf master.zip"

# pip3 安装
RUN pip3 --default-timeout=100 install -U pip && pip3 install torch torchvision mxnet-cu102 onnx-simplifier -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com\
    && pip3 --default-timeout=100 install --ignore-installed -U PyYAML

# tensorrt 安装
COPY nv-tensorrt-repo-ubuntu1804-cuda10.2-trt7.1.3.4-ga-20200617_1-1_amd64.deb /home/install/nv-tensorrt-repo-ubuntu1804-cuda10.2-trt7.1.3.4-ga-20200617_1-1_amd64.deb
RUN bash -xc " ls /home/install/ && \
    dpkg -i nv-tensorrt-repo-ubuntu1804-cuda10.2-trt7.1.3.4-ga-20200617_1-1_amd64.deb \
    && apt-key add /var/nv-tensorrt-repo-cuda10.2-trt7.1.3.4-ga-20200617/7fa2af80.pub && apt-get update\
    && apt-get -y install tensorrt && rm -rf nv-tensorrt-repo-ubuntu1804-cuda10.2-trt7.1.3.4-ga-20200617_1-1_amd64.deb"

第二步:在镜像中部署运行项目

我们在第一步中已经成功构建了项目的环境镜像,现在在镜像中部署运行项目。
由于我对docker 基本没有了解所以踩坑过程非常多,先在这里放我运行成功的指令,再一步步记录我的踩坑过程。

docker run -itd --gpus all --network host --v {项目在宿主机中位置}:{挂载到镜像中位置} tensorrt_tracker:0.1.0_rc bash

比如我的是:

docker run -itd --gpus all --network host --v {项目在宿主机中位置}:{挂载到镜像中位置} tensorrt_tracker:0.1.0_rc bash

这些参数会在我的踩坑过程中一个个解释和记录。

由于我对docker基本上没什么了解所以查询了docker -run的参数
【docker】docker run命令详解

后来在公司关于容器的资料里看到:
在这里插入图片描述

  1. 先执行如下指令启动容器并进入容器
docker run -it tensorrt_tracker:0.1.0_rc bash

进去之后,由于容器中没有我们需要运行的项目代码,所以我又去了解docker跑本地项目代码地方步骤,了解到 docker run -v指令能够将宿主机的一个目录挂载到容器中,于是我的docker -run指令扩充成了:


docker run -it -v /root/cxy/test-yolo-deep-fast/yolov5_fastreid_deepsort_tensorrt/:/home/install/ tensorrt_tracker:0.1.0_rc bash

其中 -v 指令的格式如下:

docker run -it -v /宿主机目录:/容器目录 镜像名 /bin/bash

参考博客:docker run中-v参数的用法解释

docker的安装以及跑本地项目代码步骤说明
这个博客是最开始点醒我要用到-v指令的。
博客里写道:
如何使用docker跑本地的项目代码
镜像里面的内部东西分为两种:A.只包括运行环境 B.包括运行环境和项目代码
对于A这钟情况来说,需要使用者自行下载项目的源代码放在本地目录上,进而pull命令拉镜像下载,从而将本地项目代码挂载-v在镜像目录当中。最后run。
具体图片和操作指令看上面的博客。

成功将宿主机目录挂载进容器之后,我就进行了cmake 和 make指令;
在Dockerfile文件中我们指定了工作目录/home/install,所以进入docker中就进入了:/home/install,我在这个目录下新建了一个test目录,将项目代码放在test目录中,所以最终我的项目存放在/home/install/test目录下:
所以在/home/install/test目录下执行指令:

make build && cd build
cmake ..
make -j

我能够cmake成功并且也make成功,生成了可执行的二进制文件object_tracker,但是我在运行这个文件的时候报了下面的错
请添加图片描述
在学姐的指导下,我查看了CUDA和cudnn的版本,发现cudnn的版本查不到,问了学姐后发现在docker run 的时候要加 --gups all
在这里插入图片描述
在这里插入图片描述
再次运行时报错:
在这里插入图片描述
这个之前查到过是GPU被占用了,所以要更改docker run指令,指定使用空闲的GPU。
在指定空闲GPU之前要先看哪个GPU是空闲的,用下面指令:

nvidia-smi

在这里插入图片描述
可以看到有两个GPU,第一个编号为0的GPU内存已经满了,第二个比较空闲,可以使用。
所以docker -run最终指令如下:

docker run -itd --gpus '"device=1"' -v /root/cxy/test-yolo-deep-fast/yolov5_fastreid_deepsort_tensorrt/:/home/install/ tensorrt_tracker:0.1.0_rc bash

第三步 运行项目
第二步成功构建容器之后,就能在容器中跑项目
在/home/install/test目录下执行指令:

make build && cd build
cmake ..
make -j

遇到了很多缺少安装包错误
ModuleNotFoundError: No module named ‘cv2’

 pip install opencv-python

ModuleNotFoundError: No module named ‘pandas’

pip install pandas -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

ModuleNotFoundError: No module named ‘tqdm‘

pip install tqdm

ModuleNotFoundError: No module named ‘matplotlib’

pip install matplotlib
pip install matplotlib -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

ModuleNotFoundError: No module named ‘seaborn’

pip install seaborn -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

ModuleNotFoundError: No module named ‘yacs’

pip install yacs -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

ModuleNotFoundError: No module named ‘termcolor’

pip install termcolor -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

解决完上述问题之后,就能正常运行项目了

./object_tracker ../configs/config.yaml ../samples/test.mp4

其中

../configs/config.yaml

是项目的配置文件,指明了yolo和fastreid的一些配置参数

../samples/test.mp4

是测试视频存放地址

我自己新建了一个results文件夹,将最后处理好的结果存放到该文件夹中。

至此,该项目成功部署运行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于yolov5+fastreid+deepsort的TensorRT目标跟踪(C++版)复现过程 的相关文章

  • 算法落地思考:如何让智能运维更智能

    嘉宾 王鹏 整理人 西狩xs 出品 CSDN云原生 AIOps是人工智能与运维的结合 xff0c 能够基于已有的运维数据 xff0c 利用人工智能算法 xff0c 通过机器学习的方式帮助企业提升运维效率 xff0c 解决自动化运维无法管理的
  • Python 实现用网页展示多个结果表数据

    Python 实现用网页展示多个表格的数据 前言 一 效果图 二 代码 1 引入库 2 函数定义 3 主程序 前言 实现方法是利用pandas to html 与表格展示的美化相结合 使数据展示更美观 一 效果图 示例 二 代码 本文将使用
  • ubuntu桌面翻转怎么设置成正常?

    有一次在ubuntu设置中 xff0c 脑残在桌面设置里把桌面翻转了 xff0c 虽然有撤回按钮 xff0c 但是桌面翻转了 xff0c 鼠标不受控制 这里介绍一种办法 xff1a Ctrl 43 Alt 43 T 打开终端 xrandr
  • ubuntu20运行VINS-Fusion报错

    ubuntu20运行VINS Fusion报错 Ubuntu20运行VINS Fusion xff0c catkin make报错可以csdn解决 xff1b 但是启动vins node节点的时候 xff0c 就会显示 段错误 xff0c
  • 谷粒学院自学笔记

    谷粒学院自学笔记 day01上午一 MyBatis Plus的入门配置 下午 day02day03day04 Day05Day06Day07Day08Day09Day10Day11Day12Day13Day14Day15Day16Day17
  • CPU 任务调度算法

    摘录自 TSN网络中时间同步精度提升与可靠性研究 董林峰 可参考文章 xff1a https blog csdn net qq 38216239 article details 80374539 多任务操作系统按调度策略的差别可以细分为抢占
  • 安装Docker详细步骤总结

    一 安装Docker 1 下载关于Docker的依赖环境 在Xterm中输入以下代码安装依赖环境 回车 yum y install yum utils device mapper persistent datalvm2 使用yum工具下载
  • MobaXterm连接报错Network error: Connection timed out

    今天打开MobaXterm远程连接我VMware虚拟机的时候出现以下界面 xff0c 问题详情如下 xff1a Network error Connection timed out Session stopped Press lt retu
  • 拉丁超立方抽样

    拉丁超立方 xff08 LHS xff09 适用于样本数量少的情况 xff0c 主要思想是概率分布的分层 xff0c 一层一个样本 xff08 每层的样本是随机的 当且仅当每一行和每一列只有一个样本时 xff0c 才能称为拉丁方格 LHS可
  • 银河麒麟用x11vnc实现远程桌面

    1 安装x11vnc 插入x11vnc的命令 sudo apt span class token operator span get update sudo apt span class token operator span get in
  • Vins-mono细节描述--相机imu外参标定

    vins mono能够在初始化的时候 自动标定相机和imu的外参 这个强大的功能其实并没有想象中那么复杂 一起来看看 1 在vins mono的配置文件中 就可以找到参数 来选择 是否需要估计参数 Extrinsic parameter b
  • lvi-sam的深度匹配策略

    在lvi sam中 xff0c 作者通过视觉处理的时候 xff0c 利用lidar的深度信息 xff0c 得到了更稳定的估计 那在代码里是怎么实现的呢 xff1f 一起来看看看呗 1 在lvi sam的feature tracker nod
  • 路由器硬件组成

    和其他计算机一样 xff0c 运行着baiIOS的路由器也包含了一个 中央处理器 CPU 不同系列和型号的路由器 xff0c CPU也不尽相同 路由器的处理器负责执行处理数据包所需的工作 xff0c 比如维护路由和桥接所需的各种表格以及作出
  • 系统调用与库函数的关系

    系统调用与库函数 1 系统调用 操作系统负责管理和分配所有的计算机资源 为了更好地服务于应用程序 xff0c 操作系统提供了一组特殊接口 系统调用 通过这组接口用户程序可以使用操作系统内核提供的各种功能 例如分配内存 创建进程 实现进程之间
  • FPGA中关于“后仿真正常,但上板测试出错”的问题

    FPGA中关于 后仿真正常 xff0c 但上板测试出错 的问题 求助帖 做的是矩阵键盘的扫描程序 xff0c 后仿真的扫描波形正常 xff1a 但上板子测试的时候用chipscope看扫描的波形却是这个样子的 xff1a 有带佬分析一下是什
  • 一张图搞懂数据结构体系——数据结构脑图

    基本概念 xff1a 数据 xff1a 数据是信息的载体 xff0c 是计算机程序加工的原料 数据元素 xff1a 是数据的基本单位 xff0c 也称元素 结点 数据结构 xff1a 是数据之间的相互关系 xff0c 是数据的组织形式 xf
  • 【入门篇】ESP8266直连智能音箱(天猫精灵)控制智能灯

    本系列博客学习由非官方人员 刘一周 潜心所力所写 xff0c 仅仅做个人技术交流分享 xff0c 不做任何商业用途 如有不对之处 xff0c 请留言 xff0c 本人及时更改 本系列博客内容是通过乐鑫ESP8266直连天猫精灵 xff0c
  • 如何进行CAN总线高效测试?

    CAN总线自BOSCH公司发明以来 xff0c 在汽车通信网络中的应用得到了广泛认可 随着汽车电子技术的发展 xff0c 车上的电子模块越来越多 xff0c 汽车内部的CAN总线节点也随之增多 一般汽车内部CAN节点少则10个 xff0c
  • keil5 中文注释

    keil5 中文注释 点击 Edit gt configuration 如下图 xff1a 在Editor界面中选择Encoding xff0c 如下图 xff0c 这三个均可显示中文注释 xff0c 推荐第一个 xff0c 保持Keil代
  • 【CMake学习】list使用

    添加链接描述 一 介绍 cmake的list命令即对列表的一系列操作 xff0c cmake中的列表变量是用分号 分隔的一组字符串 xff0c 创建列表可以使用set命令 xff08 参考set命令 xff09 xff0c 例如 xff1a

随机推荐

  • 【ros+movros安装与飞控连接测试,pixhawk2.4.8】

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 ros安装二 mavros总结 前言 记一下装ros和movros的过程顺便把一些重要的链接保存一些 提示 xff1a
  • 使用docker发布.net应用

    步骤 xff1a 创建 NET应用样例 创建包含生成 NET镜像所需引导的Dockerfile 构建一个镜像并基于此创建一个容器 设置容器数据卷和网络设置 使用Docker Compose编排容器 使用容器构建开发坏境 创建镜像 先决条件
  • python计算机视觉--全景图像拼接

    目录 一 RANSAC算法 1 1 RANSAC算法简介 1 2 算法基本思想和流程 1 3 RANSAC求解单应性矩阵 二 图像映射与全景拼接 2 1 简介 2 2 计算第二张图像与第一张图像之间的变换关系 2 3 将第二张图像叠加到第一
  • px4自带教程offboard下的gazebo多无人机编队仿真

    px4自带教程offboard下的gazebo多无人机编队仿真 主要教程参考这篇文章 xff0c offboard代码也源自下面链接 xff0c 增加了其他文件的配置细节 xff0c 链接如下 xff1a https blog csdn n
  • rotors_simulator与sitl_gazebo冲突导致报错“gzserver....”

    rotors simulator与sitl gazebo冲突导致报错 gzserver 创建时间2021 04 14 报错图片详见2021 04 14屏幕截图 总是出现gzserver symbol lookup error home zy
  • 安装ROS、gazebo、PX4基础细节及offboard控制

    新手参考教程安装ROS gazebo PX4基础细节及offboard控制 1 安装ROS 参考教程 2 安装PX4 参考教程 注 xff1a 1 在编译px4 Firmware前会经过安装步骤 xff0c 安装需要去github上git
  • 无人机模型记录

    今天看了这篇知乎 xff0c 收获非常大 xff0c 实现了一个非常基础的无人机动力学以及运动学模型 xff0c 包括公式推导等 xff0c 也解决了困扰我很久的问题 xff0c 在此基础上就可以加入控制算法 xff0c 设置轨迹等 htt
  • VMware安装Ubuntu20.04.5常见问题及解决方案

    文章目录 使用Xftp连接ubuntu系统ubuntu上安装指定版本nodejsubuntu设置连网ubuntu安装Java8ubuntu安装 deb格式软件ubuntu卸载 deb格式软件ubuntu中electron框架安装的缓存在如下
  • 无人机控制输入、PID控制

    无人机控制输入 PID控制 最近思路比较乱 xff0c 看到很多东西 xff0c 因为有各种控制 xff0c 需要在这里记录总结 控制输入 结合以下两个链接理解虚拟控制输入U1 U2 U3 U4 1 https blog csdn net
  • FreeRTOS学习(3)——任务创建和删除(静态)

    本代码是基于正点原子的STM32Mini板子 xff0c 结合其FreeRTOS课程进行学习 实验一 xff1a 设计4个任务 xff1a start task task1 task2 task3 start task任务 xff1a 用来
  • 华三交换机配置定时重启任务

    组网及说明 1 配置需求或说明 1 1 适用产品系列 本案例适用于如S7006 S7503E S7506E S7606 S10510 S10508等S7000 S7500E S10500系列 xff0c 且软件版本是V7的交换机 1 2 配
  • RTK差分通讯链路---Ntrip DTU(支持千寻位置,CORS站、自建站)

    在之前的博客中提到RTK差分通讯链路 电台 RTK技术的关键在于其获取了载波相位的观测量 xff0c 通过架设基准站和移动站 xff0c 利用电台的通讯方式 xff0c 使得移动站通过差分方式消除观测数据误差实现高精度 还有一种通讯方式 x
  • 北斗/GPS如何处理定位漂移?

    漂移是北斗 GPS导航时需要处理的问题之一 xff0c 漂移主要有两个方面 xff0c 第一 xff0c 速度过快 xff0c 以至于北斗 GPS的响应时间短于当前运行速度 xff0c 出现漂移 xff1b 第二 xff0c 在高大建筑密集
  • Jetson nx批量复制

    Jetson NX 批量克隆教程 文章目录 Jetson NX 批量克隆教程一 批量克隆是什么 xff1f 二 克隆步骤1 准备材料2 备份镜像3 克隆新SD卡 解压失败问题参考 一 批量克隆是什么 xff1f 辛辛苦苦在Jetson Xa
  • FreeRTOS一些常识笔记之快速上手

    一 为啥要用实时多任务操作系统 real time Operate System 简称有 xff1a RTOS xff0c 有如下的好处 用户无需关心时间信息 内核负责计时 xff0c 并由相关的API完成 xff0c 从而使得用户的应用程
  • Prometheus+node_exporter+grafana监控部署(上)

    目录 一 部署Prometheus 二 部署node exporter 三 把node exporter加载进Prometheus 四 部署grafana 一 部署Prometheus 1 从官网下载好Prometheus的安装包 2 解压
  • Zookeeper入门篇

    Zookeeper特性 xff1a Zookeeper xff1a 一个领导者 xff08 Leader xff09 xff0c 多个跟随者 xff08 Follower xff09 组成的集群 集群中只要有半数以上 xff08 不包括半数
  • 源码编译ROS的导航包navigation、编译navigation、也有安装navigation二进制包方式

    1 创建工作空间 span class token function mkdir span nav ws src p span class token function cd span nav ws src catkin init work
  • 深度无人机的视觉检测与跟踪神经网络:性能基准

    Unmanned Aerial Vehicle Visual Detection and Tracking using DeepNeural Networks A Performance Benchmark 深度无人机的视觉检测与跟踪神经网
  • 基于yolov5+fastreid+deepsort的TensorRT目标跟踪(C++版)复现过程

    基于yolov5 43 fastreid 43 deepsort的TensorRT目标跟踪 大部分的多目标跟踪项目都是用Python写的 xff0c 但是C 43 43 版本能够用TensorRT进行加速 xff0c 适合在边缘端部署 xf