1.jetson nano 环境配置

基本环境配置

1. 检查 nvcc

jetson nano 是原装了 CUDA 的,但是需要用户导入环境变量(导入相关的路径)才可以使用,只有环境变量导入成功后,方可在命令行使用 nvcc -V

sudo vim .bashrc

在最后添加这三行

#选择一个即可

export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda/bin:$PATH


export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存后退出,执行 source ~/.bashrc,使得环境变量生效。

在命令行输入 nvcc -V 如果正常输出,说明 CUDA 路径配置成功

image-20220225161019891

2. 安装 torch 和 vision(可忽略)

参考资料

安装好后测试如图:

image-20220223224621637

安装 pytorch,首先 CUDA 的步骤得过一下可以看到 nvcc -V

安装 pytorch 跟 CUDA 的版本要对应​​

image

网上找了个 1.6.0 的安装包通过 winscp 上传到 jetson 后离线安装下,该离线包可以到资料 5、常用库和模型中获取

sudo pip3 install torch-1.6.0a0+b31f58d-cp36-cp36m-linux_aarch64.whl

sudo pip3 install torchvision

sudo pip install boto3

终端输入 python3 进入到 python3 的运行环境中测试下,import torch,我遇到的报错是 ImportError:libopenblas.so.0:无法打开共享对象文件或目录,看了下这个教程:https://www.cnpython.com/qa/77454

尝试安装了 OpenBlas 系统库问题解决了

sudo apt-get install libopenblas-dev

到 python 环境中

import torch

print(torch.version)

查看安装的版本

image-20220222141236206

接下来继续在 python3 环境中测试下 pytorch 的功能

from future import print_function

import torch

x = torch . rand(5, 3)

print(x)

输出

tensor([[0.3380, 0.3845, 0.3217],

[0.8337, 0.9050, 0.2650],

[0.2979, 0.7141, 0.9069],

[0.1449, 0.1132, 0.1375],

[0.4675, 0.3947, 0.1426]])

另外,要检查你的 GPU 驱动程序和 CUDA 是否启用,并通过 PyTorch 访问,运行以下命令返回是否启用 CUDA 驱动程序

import torch

torch.cuda.is_available()

测试完毕后接下来再安装 torchvision,根官网介绍,pytorch1.6 吻合的 torch 版本为 0.7.0

image-20220222141251282

sudo apt-get install libjpeg-dev zlib1g-dev

git clone --branch v0.7.0 https://github.com/pytorch/vision torchvision

cd torchvision

export BUILD_VERSION=0.7.0

sudo python3 setup.py install

注意:安装可能会确实一些文件,这个可以安装相应的文件来解决,例如笔者遇到的是确实一下三个文件所以按了一下三个包

image-20220222141306843

sudo apt install libavcodec-dev

sudo apt install libavformat-dev

sudo apt install libswscale-dev

重新 sudo python3 setup.py install

到 python 环境中输入下代码可以查看版本是否对应

import torchvision

print(torchvision.version)

image-20220222141316874

jetson nao 其他配置

1. 更新镜像源

1.1. apt

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list.bak
ggVG  全选
dG		删除
  • 源:
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
sudo apt-get update 		//更新

1.2. pip

sudo apt-get install python3-pip python3-dev
sudo apt-get install python-pip python-dev
  • pip 换源
$ sudo mkdir .pip		#创建隐藏文件夹
$ ls -a  						#查看所有文件
$ cd .pip						#进入文件夹
$ sudo touch pip.conf
$ sudo vim pip.conf
  • :
[global]
timeout = 6000
index-url = http://pypi.doubanio.com/simple/
trusted-host = pypi.doubanio.com

1.3. docker

cat /etc/issue  #查看ubantu版本

查看 Ubuntu 系统版本号

根据 Ubuntu 的版本号,配置相关的源镜像。跳转到源文件所在的目录

cd  /etc/apt/

可以试用文件编辑工具打开 sources.list 文件

sudo gedit /etc/apt/sources.list

直接用以下内容替换 sources.list 文件中的所有内容即可。

deb https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse

更新了源文件之后,保存退出

sudo apt-get update

2. 安装 pytorch 和 torchvison

image

$ sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
$ pip3 install Cython
$ pip3 install numpy torch-1.8.0-cp36-cp36m-linux_aarch64.whl # (按照自己torch1.8.0包的下载路径修改,此过程较慢)
$ sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
$ git clone --branch v0.9.0 https://github.com/pytorch/vision torchvision
$ cd torchvision
$ export BUILD_VERSION=0.9.0
$ python3 setup.py install --user #时间较长
  • 检查环境
python3
import torch
import torchvision
print(torch.__version__)
print(torchvision.__version__)
torch.cuda.is_available()

image-20220226195653355

3. miniforge 包管理(选)

‼️ <font color='red'>此内容为可非必要配置,因为 jetson 是 arm 版本无法直接安装 anaconda 环境,如果需要在 jetson 上安装 anaconda 可以接着往下看,若不需要,请跳过</font>

3.1. miniforge 简介

conda 是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换。搞深度学习的应该都十分熟悉 anaconda,但是 NVIDIA Jetson Xavier NX 是 arm 架构的,anaconda 及其精简版 miniconda 并不支持 arm64 架构。现在主流的 CPU 架构分为 Intel 的 x86/x64 架构和 ARM 的 ARM/ARM64 两种,平常用的电脑大部分都是 x86/x64 的(苹果除外),Xavier 使用的是 ARM64,所以很多在 x86/x64 上能用的的东西到了它这里就不能用了。这一点请谨记,如果你在 Jetson 上遇到什么奇奇怪怪的例如“No such file or directory”之类的问题,第一时间要考虑是不是版本不是 ARM64 的版本
在 ARM64 上的 anaconda 替代品是 miniforge,miniforge 与 miniconda 的区别在于 miniforge 的下载通道是 conda-forge,其他基本没什么不同。

3.2. 安装 miniforge

  1. 我下载的是 Miniforge-pypy3-4.11.0-0-Linux-aarch64.sh,,代表适用于 arrch64 架构下的 Linux 系统。(ARM64 对应 32 位和 64 位分为 arrch32 和 arrch64)
  2. 进入到 miniforge 的 sh 文件所在目录,右键打开 Terminal,输入以下命令进行安装:
sh Miniforge-pypy3-4.10.3-3-Linux-aarch64.sh
  1. 安装完毕后,添加环境变量,否则会出现 bash:conda Command not found 的错误。顺便提一下 vim 编辑器按 a 是进入编辑模式,编辑完毕后按 ESC 退出编辑模式,再输入:wq!是保存并退出。
# 编辑环境变量
vim ~/.bashrc
# 增加环境变量, 将<username>换成你的用户名
export PATH=/home/<username>/miniforge-pypy3/bin:$PATH
# 激活环境变量
source ~/.bashrc
# 显示(base)
source activate
  1. 更换清华源
conda config --prepend channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --prepend channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

3.3. 安装 pytorch、torchvision

3.4. 安装新的虚拟环境

conda create -n pytorch python=3.6	#创建环境
conda activate pytorch							#激活环境

  • 其他操作(看即可)
conda deactivate										#退出环境
conda remove -n pytorch --all

conda info -e												#查看已有环境

激活成功会换名字

image-20220222141336662

3.5. pytorch1.8

直接输入命令安装 PyTorch,pip3 是 python3 的 pip,如果没装,就换成 pip

pip3 install -U future psutil dataclasses typing-extensions pyyaml tqdm seaborn
wget https://nvidia.box.com/shared/static/p57jwntv436lfrd78inwl7iml6p13fzh.whl -O torch-1.8.0-cp36-cp36m-linux_aarch64.whl
pip3 install torch-1.8.0-cp36-cp36m-linux_aarch64.whl

如果网络不好的话,也可以先把 PyTorch 的 whl 文件下载下来,NVIDIA 官方网址是:https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-9-0-now-available/72048

  • **==**​ **<font color='red'>issue:**​ **</font>**​ ==

如果出现 Illegal instruction (core dumped) 的错误,这是由于 numpy 1.19.5 和 OpenBLAS 冲突引起的,修改其中一项即可。选择以下两种做法之一:
(1)降低 numpy 版本

pip3 install -U "numpy==1.19.4"

(2)设置 OpenBLAS

vim ~/.bashrc

加入

export OPENBLAS_CORETYPE=ARMV8

然后激活.bashrc

source ~/.bashrc

3.6. orchvision v0.9.0

4. 查看 jetson 信息 (jtop)

sudo pip3 install jetson-stats
sudo jtop

5. 风扇自动控制

git clone https://gitee.com/yin-qiyu/jetson-fan-ctl.git
cd /jetson-fan-ctl #进入文件夹
sudo apt install python3-dev
sudo ./install.sh

现在你的风扇就可以按照温度自动调整运行速度了
风扇的一些设置在 /etc/automagic-fan/config.json 目录下。

vim /etc/automagic-fan/config.json
{undefined
“FAN_OFF_TEMP”:20,
“FAN_MAX_TEMP”:50,
“UPDATE_INTERVAL”:2,
“MAX_PERF”:1
}
~
~

6. 增加 Swap 分区大小

  • 先查看初试交换分区大小:

image-20220222141405289

  • 生成 swapfile 文件操作如下
#1)新增swapfile文件大小自定义
sudo fallocate -l 6G /var/swapfile
#2)配置该文件的权限
sudo chmod 600 /var/swapfile
#3)建立交换分区
sudo mkswap /var/swapfile
#4)启用交换分区
sudo swapon /var/swapfile
  • 设置为自动启用 swapfile
sudo bash -c 'echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab'

设置成功后:

image-20220222141420401

7. nomachine(虚拟网络控制台)

官网:NoMachine - Free Remote Desktop For Everybody

  • 主机上正常安装

  • jetson 上

    • 下载好对应版本用 SFTP 传到 jetson
    • sudo dpkg -i nomachine_7.6.2_3_arm64.deb
      
  • 在同一局域网下即可连接

image-20220403144934094

image-20220403145033336

8. VNC(虚拟网络控制台)

  • 编辑文件
sudo vim /usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml
  • 滑到文末添加下段内容格式如图片所示
<key name="enabled" type="b">
   <summary>Enable remote access to the desktop</summary>
   <description>
    If true, allows remote access to the desktop via the RFB
    protocol. Users on remote machines may then connect to the
    desktop using a VNC viewer.
   </description>
   <default>false</default>
  </key>

image-20220226204438666

  • 编译文件
sudo glib-compile-schemas /usr/share/glib-2.0/schemas

完成以上步骤,正常来说就可以打开桌面共享的图标了。

image-20220222141452790

设置好后(不设置也可以)

image

  • 配置 vnc 设置
$ gsettings set org.gnome.Vino prompt-enabled false
$ gsettings set org.gnome.Vino require-encryption false
  • 设置密码(可以不要)
$ gsettings set org.gnome.Vino authentication-methods "["vnc"]"
$ gsettings set org.gnome.Vino vnc-password $(echo -n "请输入你的密码"|base64)
  • 配置 vnc 自启
$ gsettings set org.gnome.Vino enabled true
$ mkdir -p ~/.config/autostart
$ vi  ~/.config/autostart/vino-server.desktop

添加下面内容

[Desktop Entry]

Type=Application

Name=Vino VNC server

Exec=/usr/lib/vino/vino-server

NoDisplay=true
  • 重启生效
$ sudo reboot

9. TensoRT

9.1. TensoRT 介绍:

模型加速越来越成为深度学习工程中的刚需了,最近的CVPR和ICLR会议中,模型的压缩和剪枝是受到的关注越来越多。毕竟工程上,算法工程师的深度学习模型是要在嵌入式平台跑起来,投入应用的。在模型的推理(inference)过程中,计算速度是很重要的。比如自动驾驶,如果使用一个经典的深度学习模型,很容易就跑到200毫秒的延时,那么这意味着,在实际驾驶过程中,你的车一秒钟只能看到5张图像,这当然是很危险的一件事。所以,对于实时响应比较高的任务,模型的加速时很有必要的一件事情了。

如果你使用英伟达的产品,比如 PX2,那么在平台上部署模型投入应用,很多时候就需要用到专门的模型加速工具 —— TensorRT。

TensorRT 下的模型是在做什么?

TensorRT 只负责模型的推理(inference)过程,一般不用 TensorRT 来训练模型的哈。

TensorRT 能加速模型吗?

能!根据官方文档,使用 TensorRT,在 CPU 或者 GPU 模式下其可提供 10X 乃至 100X 的加速。本人的实际经验中,TensorRT 提供了 20X 的加速。

TensorRT 为什么能提升模型的运行速度?

TensorRT 是英伟达针对自家平台做的加速包,TensorRT 主要做了这么两件事情,来提升模型的运行速度。

  1. TensorRT 支持 INT8 和 FP16 的计算。深度学习网络在训练时,通常使用 32 位或 16 位数据。TensorRT 则在网络的推理时选用不这么高的精度,达到加速推断的目的。
  2. TensorRT 对于网络结构进行了重构,把一些能够合并的运算合并在了一起,针对 GPU 的特性做了优化。现在大多数深度学习框架是没有针对 GPU 做过性能优化的,而英伟达,GPU 的生产者和搬运工,自然就推出了针对自己 GPU 的加速工具 TensorRT。一个深度学习模型,在没有优化的情况下,比如一个卷积层、一个偏置层和一个 reload 层,这三层是需要调用三次 cuDNN 对应的 API,但实际上这三层的实现完全是可以合并到一起的,TensorRT 会对一些可以合并网络进行合并。

image

9.2. 检查自带 TensorRT 环境(选)

cd /usr/src/tensorrt/samples
sudo make		#编译大约7分钟
../bin/sample_mnist

image-20220222141611316

image-20220312212555390

9.3. jetson inference 库安装(选)

参考资料

sudo apt update
sudo apt autoremove
sudo apt upgrade
sudo apt install cmake
mkdir ~/workspace
cd workspace
git clone https://gitee.com/weikun-xuan/jetson-inference.git
cd jetson-inference
git submodule update --init

start

一、获取源码
首先打开终端运行如下代码:

sudo apt-get update

sudo apt-get install git cmake libpython3-dev python3-numpy

git clone --recursive https://gitee.com/weikun-xuan/jetson-inference.git

上面仓库源我全都自己换了,下载会比 GitHub 快很多。

二、换源
进入到 tools 文件下:

cd jetson-inference/tools

换下源,依次运行以下代码(均在 tools 文件下):

1)模型下载国内源:

$ sed -in-place -e 's@https://nvidia.box.com/shared/static@https://bbs.gpuworld.cn/mirror@g' download-models.sh

2)pytorch 国内源:

$ sed -in-place -e 's@https://nvidia.box.com/shared/static@https://bbs.gpuworld.cn/mirror@g' install-pytorch.sh

$ sed -in-place -e 's@https://github.com/pytorch/vision@https://gitee.com/vcan123/pytorch@g' install-pytorch.sh

$ sed -in-place -e 's@https://github.com/dusty-nv/vision@https://gitee.com/vcan123/dusty-nv@g' install-pytorch.sh

三、编译安装

在 jetson-infernce 文件下执行如下操作:

mkdir build

cd build

cmake ../

接着就会出现:

模型包安装

此步为安装模型包,本人建议【全部取消】,不然会有些慢,之后我们可以去官网手动下载。

我们继续:

pytorch 安装

安装 pytorch。这时应该只有一个 for python 3.6 版本,选上然后 ok。

完成后还是在 build 文件下依次执行如下操作:

$ make

$ sudo make install

$ sudo ldconfig

完成。

10. 安装 jupyter 和 jetcam

  1. 安装 nodejs 和 npm
pip3 install --upgrade pip	#更新pip
sudo apt install nodejs npm

但是用直接用上面这个命令安装后的版本是比较低的后续要安装 jupyterlab 插件可能会报错,用一下版本可以查看,至少要 12.3.0 版本的 node

node -v
npm -v

安装 n 模块,用这个模块来更新或者指定安装 node 的版本

sudo npm install -g n

先说明下这个模块的功能,一下命令了解下先,不用操作

清除 npm 缓存:npm cache clean -f

安装 n 模块:npm install -g n

安装官方稳定版本:n stable

安装最新官方版本:n latest

安装某个指定版本:n 11.6.0

查看已安装的 node 版本: n

查看当前 node 版本:node -v

删除指定版本:n rm 7.5.0

好的,了解完 n 模块的功能后来安装对应版本的 node,也可以安装最新版的例如以下,

sudo n latest

安装好后,node -v 查看下版本,如果版本没有变,那么可以尝试重启下,如果还是没有变,执行

sudo n

会出现一个画面,可以看到我们安装过的 node 版本名,例如我们这里是 v15.0.1,通过上下方向按键控制光标选择这个版本,然后回车镜像安装,然后查看下版本,如果还是没有变,一般再重启下就可以了。

  1. 安装 jupyterlab:(警告忽略,失败多次执行即可)
sudo pip3 install jupyter jupyterlab

sudo jupyter labextension install @jupyter-widgets/jupyterlab-manager

sudo jupyter labextension install @jupyterlab/statusbar

生成相应配置文件:(如果某个文件报权限问题,可以尝试用 sudo chmod 777 赋予权限)

jupyter lab --generate-config

设置进入 notebook 的密码(这里会要设置两次,第二次为确认输入的密码):

jupyter notebook password

当第一次登录使用 notebook 时需要输入你在这里设置的密码才能进入,请务必记住的当前设置的密码!

设置开机自启动 jupterlab,create_jupyter_service.py 文件

运行 create_jupyter_service.py 文件产生 jupyter_service.service 文件

python3 create_jupyter_service.py

然后将产生的该服务文件移动至系统服务

sudo mv nano_jupyter.service /etc/systemd/system/nano_jupyter.service

使能该服务

sudo systemctl enable nano_jupyter.service

手动开启该服务

sudo systemctl start nano_jupyter.service
  1. 安装 jetcam

JetCam 是用于 NVIDIA Jetson 的易于使用的 Python 相机界面。使用 Jetson 的 Accelerated GStreamer 插件可与各种 USB 和 CSI 摄像机配合使用。轻松读取图像作为 numpy 数组 image = camera.read()。设置相机以 running = True 将回调附加到新框架。JetCam 使在 Python 中创建 AI 项目的原型变得容易,尤其是在 JetCard 中安装的 Jupyter Lab 编程环境中。

接下来开始安装:

git clone https://github.com/NVIDIA-AI-IOT/jetcam

cd jetcam

sudo python3 setup.py install

详细的使用即函数可以到 https://github.com/NVIDIA-AI-IOT/jetcam 查看

11. darknet 框架(选)

git clone https://github.com/AlexeyAB/darknet.git #下载darknet框架
$ cd darknet

$ sudo vim Makefile   #修改Makefile
  • Makefile 的前三行修改一下

image-20220222141647174

  • 和如图所示的 nvcc 位置(若前面配置了环境变量则无需这一步操作)

image-20220222141654527

  • 修改好猴按 esc 左下角出现冒号后 wq 保存退出
  • 在 darknet 路径下编译
$ make -j4

编译完成如图

image-20220224143750683

在命令行下输入 ./darknet

image-20220224143905042

在 yolo 官网下载 yolov4 和 yolov4-tiny 的权重文件放入文件夹

#Yolov4图片的检测
./darknet detect cfg/yolov4.cfg yolov4.weights data/dog.jpg # 简写版

./darknet detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights data/dog.jpg # 完整版


#Yolov4-tiny图片的检测
./darknet detect cfg/yolov4-tiny.cfg yolov4-tiny.weights data/dog.jpg # 简写版

./darknet detector test cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights data/dog.jpg # 完整版


# 改变检测阈值
# 默认情况下,YOLO仅显示检测到的置信度为.25或更高的对象。您可以通过将-thresh标志传递给yolo命令来更改此设置。

#例如,要显示所有检测,您可以将阈值设置为0.1:
./darknet detect cfg/yolov4-tiny.cfg yolov4-tiny.weights data/dog.jpg -thresh 0.1

#Yolov4摄像头实时检测方法:
./darknet detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights /dev/video1

#Yolov4-tiny摄像头实时检测方法:
./darknet detector demo cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights /dev/video1

#Yolov4视频的检测(github下来的data里面并没有该视频文件,需要用户自行上传要检测的视频文件到data文件夹下)
./darknet detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights data/123.mp4

#Yolov4-tiny视频的检测
#Yolov4-tiny视频的检测(github下来的data里面并没有该视频文件,需要用户自行上传要检测的视频文件到data文件夹下)

./darknet detector demo cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights data/xxx.mp4

  • 若要调用 csi 摄像头需要 gstream 的支持
./darknet detector demo cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights "nvarguscamerasrc ! video/x-raw(memory:NVMM), width=1280, height=720, format=NV12, framerate=30/1 ! nvvidconv  ! video/x-raw, width=1280, height=720, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink"

解决 Jetson Nano 使用 CSI 摄像头在 Darknet 下实时检测绿屏_

Nvidia Jetson Nano 安装 GStreamer

sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo apt-get update
sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev

1. 配置 GStreamer 管道

首先说一下思路:由于 yolov3 本身不支持 csi 摄像头,因此需要通过 GStreamer 来对 csi 摄像头获取的视频进行预处理,然后提交给 yolov3 进行识别判定,而这一过程重点就是 GStreamer 管道的配置,以下是博主的管道配置

# 仅适用于jetson-nano运行yolov4-tiny demo。注意请在darknet的文档页下打开terminal输入

./darknet detector demo cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights "nvarguscamerasrc ! video/x-raw(memory:NVMM), width=1280, height=720, format=NV12, framerate=30/1 ! nvvidconv flip-method=2 ! video/x-raw, width=1280, height=720, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink"


./darknet detector demo cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights "nvarguscamerasrc ! video/x-raw(memory:NVMM), width=1280, height=720, format=NV12, framerate=30/1 ! nvvidconv flip-method=2 ! video/x-raw, width=1280, height=720, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink"

原版:

./darknet detector demo ok/new.data ok/yolov4-tiny-new.cfg ok/yolov4-tiny-new_last.weights "nvarguscamerasrc ! video/x-raw(memory:NVMM), width=1280, height=720, format=NV12, framerate=30/1 ! nvvidconv flip-method=2 ! video/x-raw, width=1280, height=720, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink"

口罩

./darknet detector demo cfg/obj.data cfg/yolov4-tiny-masks.cfg yolov4-tiny-obj_last.weights "nvarguscamerasrc ! video/x-raw(memory:NVMM), width=1280, height=720, format=NV12, framerate=30/1 ! nvvidconv flip-method=2 ! video/x-raw, width=1280, height=720, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink"

yolo:

./darknet detector demo cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights "nvarguscamerasrc ! video/x-raw(memory:NVMM), width=1280, height=720, format=NV12, framerate=30/1 ! nvvidconv flip-method=2 ! video/x-raw, width=1280, height=720, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink"

sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo apt-get update
sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev
官方:
./darknet detector demo ok/new.data ok/yolov4-tiny-new.cfg ok/yolov4-tiny-new_last.weights "nvarguscamerasrc ! video/x-raw(memory:NVMM), width=1280, height=720, format=NV12, framerate=30/1 ! nvvidconv flip-method=2 ! video/x-raw, width=1280, height=720, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink"

// 仅适用于jetson-nano运行yolov3-tiny demo。注意请在darknet的文档页下打开terminal输入
./darknet detector demo cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights "nvarguscamerasrc ! video/x-raw(memory:NVMM), width=1280, height=720, format=NV12, framerate=30/1 ! nvvidconv flip-method=2 ! video/x-raw, width=1280, height=720, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink"


./darknet detector demo cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights "nvarguscamerasrc ! video/x-raw(memory:NVMM), width=1280, height=720, format=NV12, framerate=30/1 ! nvvidconv flip-method=2 ! video/x-raw, width=1280, height=720, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink"


./darknet detector demo cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights "nvarguscamerasrc ! video/x-raw(memory:NVMM), width=1280, height=720, format=NV12, framerate=30/1 ! nvvidconv flip-method=2 ! video/x-raw, width=1280, height=720, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink"

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...