Jetson Nano上如何自己编译deepstream-app

这篇博客介绍了如何在Ubuntu环境下编译Deepstream的json-glib库,以及如何修改和编译Deepstream-app以添加自定义功能。首先,通过安装meson和ninja构建json-glib,然后修改Deepstream-app的Makefile并添加相关路径。在完成源码修改后,使用make命令编译deepstream-app,并将新编译的二进制文件替换系统原有版本,以便直接运行自定义版本。

      Deepstream安装后除了提供了编译好的二进制版的deepstream-app(安装在/usr/bin/下)外还在在samples下提供了deepstream-app等sample app的源码,平时如果只需直接使用deepstream-app跑跑做实验的话(例如查看Deepstream的版本,执行deepstream-app --version),直接执行deepstream-app -c <config-file>即可把deepstream-app跑起来,但是如果需要在deepstream-app里做自己的修改增加某些功能实验或者借助在deepstream-app增减代码或者增加打印代码来理解deepstream的工作原理,就需要自己编译出deepstream-app,如果想直接执行时执行的是自己编译出来的deepstream-app,那么还需要把自己编译出来的deepstream-app拷贝到/usr/bin/下覆盖Deepstream安装的原版deepstream-app。

      Deepstream里使用了json-glib,而json-glib在Ubuntu下没有可以安装的deb包,所以需要自己编译,而编译json-glib又需要meson和ninja的支持,所以可能需要按照一下步骤执行: 

sudo apt-get update && sudo apt-get install meson ninja-build

git clone https://github.com/ebassi/json-glib
cd json-glib
mkdir _build && meson _build .
ninja -C _build
ninja -C _build test
ninja -C _build install

然后 cd /opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-app,修改这个目录下的Makefile文件,增加gs

### Jetson Nano B01 DeepStream 安装配置 使用指南 #### 一、概述 Jetson Nano 是一款功能强大的嵌入式开发板,适用于边缘计算场景中的计算机视觉和人工智能应用。DeepStream 是 NVIDIA 提供的一个流分析工具包,用于构建高性能视频理解管道。本文档将详细介绍如何在 Jetson Nano B01 上安装和配置 DeepStream--- #### 二、硬件与软件需求 ##### 所需硬件 - **Jetson Nano Developer Kit (B01)**:确保设备型号为 B01 版本[^3]。 - USB 摄像头或其他输入源(可选)。 ##### 软件环境 - **操作系统**:推荐使用 JetPack 工具刷写 L4T 系统镜像至 Jetson Nano。当前支持的最高版本为 JetPack 4.5.1[^2]。 - **DeepStream SDK**:兼容 JetPack 的 DeepStream 版本应不超过 6.0.1[^2]。 - Python 和其他依赖库可根据具体项目需求额外安装。 --- #### 三、安装步骤 ##### 1. 刷录 JetPack 镜像 通过 NVIDIA 提供的 SDK Manager,在 Ubuntu 18.04 主机上完成 Jetson Nano 的系统刷录工作。选择适合的目标平台以及所需的驱动程序集合[^1]。 ##### 2. 安装 DeepStream 下载并解压对应版本的 DeepStream SDK Bundle 文件。执行以下命令以初始化环境变量: ```bash export DEEPSTREAM_SDK_ROOT=<path_to_sdk> source $DEEPSTREAM_SDK_ROOT/samples/config/deepstream_paths.sh ``` 验证安装是否成功可以通过运行预定义样例脚本来实现: ```bash cd $DEEPSTREAM_SDK_ROOT/sources/apps/sample_apps/deepstream-app/ ./deepstream-app -c deepstream_app_config_yoloV5.txt ``` 此过程会加载指定配置文件启动演示应用程序[^4]。 ##### 3. PyTorch 及 TorchVision 设置 为了后续能够顺利迁移 YOLOv5 或其他神经网络模型到 TensorRT 中去,有必要预先准备好基础框架支撑结构。依据官方指导手册逐步引入必要的 pip 包管理器资源列表[^1]: ```bash pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu102 ``` ##### 4. 将 PyTorch 模型转成 WTS 格式 利用 `export.py` 脚本导出训练完毕后的权重参数集成为 `.wts` 类型数据形式以便进一步加工处理[^1]: ```python import argparse from models.experimental import attempt_load from utils.torch_utils import select_device, time_synchronized def main(): parser = argparse.ArgumentParser() parser.add_argument('--weights', required=True, help='Path to weights file') args = parser.parse_args() device = select_device('cpu') # Force CPU usage during conversion model = attempt_load(args.weights, map_location=device) with open(f"{args.weights.split('.')[0]}.wts", 'w') as f: f.write("{}\n".format(len(model.state_dict().keys()))) for k, v in model.state_dict().items(): vr = v.reshape(-1).cpu().numpy() f.write("{} {} ".format(k, len(vr))) for vv in vr: f.write(" ") f.write(struct.pack(">f", float(vv)).hex()) f.write("\n") if __name__ == '__main__': main() ``` ##### 5. 构建 TensorRT 引擎 借助专门设计好的解析工具把前述生成出来的中间产物再转化成最终可供 GPU 加速调用的形式即 TRT Engine[^1]: ```bash trtexec --onnx=model.onnx --saveEngine=model.engine ``` ##### 6. 自定义插件编译 针对某些特殊算法可能还需要单独编写扩展模块并与现有体系集成起来共同运作。参照给出的例子调整路径指向实际存在的 C++ 实现部分重新制作共享对象动态链接库[^1]: ```makefile NVDSINFER_PLUGIN_PATH ?= /usr/lib/aarch64-linux-gnu/trt_infer_plugins/libnvdsinfer_custom_impl_Yolo.so $(info Building plugin library...) mkdir -p build && cd build \ && cmake .. \ && make clean all sudo cp lib*.so $(NVDSINFER_PLUGIN_PATH) ``` ##### 7. 测试整体效果 最后确认一切设置无误之后便可尝试播放一段本地存储或者实时捕获的画面片段加以检验成果质量高低程度差异之处所在了[^4]. --- #### 四、总结 以上便是关于怎样正确地于 Jetson Nano 平台上布置好完整的 DeepStream 开发套件及其关联组件的一系列操作指引说明文档内容摘要介绍结束语句结尾处标注出处编号[^1][^2][^3][^4]。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arnold-FY-Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值