deepstream-python安装

安装deepstream-docker

在这边文章中deepstream-docker详细介绍了如何在Ubuntu下安装deepstream-docker,安装完成之后,为了快速入门deepstream,我们可以安装deepstream-python库,通过阅读相应的例子来快速搭建一个应用。

安装deepstream-python

在安装完成deepstream-docker之后,新建容器,在容器内部可以通过如下步骤进行deepstream-python的安装,过程如下:

查看deepstream的版本

deepstream-app -v

需要基于C++的deepstream版本安装对应python版本库,基本上在deepstream-python的readme都能看到如下的版本要求。在这里插入图片描述

安装依赖库

在编译安装deepstream-python库之前,需要运行如下命令,安装相应的依赖库,以便后续编译正确运行。

apt-get update apt install python3-gi python3-dev python3-gst-1.0 python-gi-dev git python-dev \ python3 python3-pip python3.8-dev cmake g++ build-essential libglib2.0-dev \ libglib2.0-dev-bin python-gi-dev libtool m4 autoconf automake

下载项目

通常情况下,大家都习惯将deepstream-python的源码下载到如下路径进行安装。

cd /opt/nvidia/deepstream/deepstream/sources 

通过如下命令,可以下载deepstream-python对应的源文件。

export GIT_SSL_NO_VERIFY=true
git clone https://github.com/NVIDIA-AI-IOT/deepstream_python_apps.git 

cd deepstream_python_apps # git submodule update --init

编译gst-python

由于网络问题通常情况下,3rdparty文件夹下依赖的第三方库无法clone下来,因此需要我们单独进行下载,并checkout到指定的版本下,然后进行编译安装。

cd deepstream_python_apps/3rdparty 
rm-rf *
git clone https://gitee.com/qst1998/gst-python.git 
cd gst-python 
git checkout 1a8f48a
 # 编译
 ./autogen.sh 
 make 
 make install

编译pybind11

如下图所示,deepstream通过pybind11提供python接口,因此,我们首先需要编译安装pybind11。
在这里插入图片描述
安装pybind11的过程如下,同样在3rdparty文件夹下,先下载pybind11源码然后进行编译安装。

git clone https://gitee.com/qst1998/pybind11.git
cd ../pybind11

git checkout 3b1dbeb
 #编译 
 python3 setup.py install

编译python-binding

之后就是deepstream-python对应的bindings安装过程,编译时需要指定python的版本。

cd /opt/nvidia/deepstream/deepstream-6.1/sources/deepstream_python_apps/bindings 
mkdir build 
cd build 
cmake .. -DPYTHON_MAJOR_VERSION=3 -DPYTHON_MINOR_VERSION=8 
make -j

安装pyds

最后就是安装生成的pip whl轮子文件。

pip3 install pyds-1.1.4-py3-none-linux_x86_64.whl

测试

经过上述过程就完成deepstream-python库的安装,通过如下命令就能简单测试库是否正确安装

cd /opt/nvidia/deepstream/deepstream-6.1/sources/deepstream_python_apps/apps/deepstream-test1
python3 deepstream_test_1.py /opt/nvidia/deepstream/deepstream-6.1/samples/streams/sample_720p.h264

丰富的例子

deepstream-python项目中提供丰富的应用例子,大家可以根据自己的需求找到对应的app,然后修改app内容完成自己的功能
在这里插入图片描述

总结

在本文中,进一步介绍了如何在deepstream-docker环境下安装deepstream-python库,方便大家快速入门deepstream。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/242865.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

认识loader和plugin

在 webpack 中,专注于处理 webpack 在编译过程中的某个特定的任务的功能模块,可以称为插件。它和 loader 有以下区别: 1loader 是一个转换器,将 A 文件进行编译成 B 文件,比如:将 A.less 转换为 A.css&…

IDEA之设置项目包的结构层级为eclipse默认样式

idea默认项目包的结构层级如下: 想修改成eclipse默认的那种样式,设置步骤如下: 1.点击下图中红框图标进行设置 2.选择 Tree Appearance,取消勾选 Compact Middle Packages 3.勾选红框里的两个选项,Flatten Packages 和 Hide Empty Middle Pa…

HTML插入视频和音频(详解)

📍文章目录📍 🧀一,简介🧀二,视频(video)🍧1,普通的视频插入🍧2,在html5中嵌入视频网站视频 🧀三,音频(audio) 🧀一&#…

50mA、24V、超低 IQ、低压降稳压器

一、Description The TPS715 low-dropout (LDO) voltage regulators offer the benefits of high input voltage, low-dropout voltage, low-power operation, and miniaturized packaging. The devices, which operate over an input range of 2.5 V to 24 V, are stable wit…

Wordle 游戏实现 - 使用 C++ Qt

标题:Wordle 游戏实现 - 使用 C Qt 摘要: Wordle 是一款文字猜词游戏,玩家需要根据给定的单词猜出正确的答案,并在限定的次数内完成。本文介绍了使用 C 和 Qt 框架实现 Wordle 游戏的基本思路和部分代码示例。 引言:…

jmeter简单压测kafka

前言 这也是一个笔记,就是计划用jmeter做性能测试,但是这里是只要将数据放到kafka的topic里,后面查看下游业务处理能力。 一、方案 因为只要实现数据放到kafka,参考了下博友的方案,可行。 二、方案验证 详细过程就不…

CNN 卷积神经网络之 DenseNet 网络的分类统一项目(包含自定义数据集的获取)

1. DenseNet 网络介绍 本章实现的项目是DenseNet 网络对花数据集的五分类,下载链接: 基于迁移学习的 DenseNet 图像分类项目 DenseNet 网络是在 ResNet 网络上的改进,大概的网络结构如下: 1.1 卷积的简单介绍 图像识别任务主要…

计算机速成课Crash Course - 10. 早期的编程方式

今天继续计算机速成课Crash Course的系列讲解。 更多技术文章,关注公众号 “摸鱼IT” 锁定 -上午11点 - ,感谢大家关注、转发、点赞! 10. 早期的编程方式 前几集我们把重点放在计算机的原理,怎么从内存读写数据,执行…

js基础:函数、对象、WebAPIs-DOM

一、函数和对象 1、函数概述 🤖chatgpt:什么是函数?为什么要有函数? 函数是一种可重复使用的代码块,它们可以接受输入(参数)、执行特定的任务,并返回结果。 JavaScript中函数是非常…

鸿蒙OS应用开发之按钮组件(2)

前面学习了简单的按钮添加到程序里,并且使用了简单的布局排列来放置。其实按钮还有很多种形式,会在不同的场合来使用。 默认的按钮外形,跟前面例子的程序是一样的: 包含着图片的按钮: 不同外形的按钮:

Python编程进阶:轻松掌握多线程和多进程

大家好,今天我们将讨论如何利用Python执行多线程和多进程任务。它们提供了在单个进程或多个进程之间执行并发操作的方法,并行和并发执行可以提高系统的速度和效率。在讨论多线程和多进程的基础知识之后,我们还将讨论使用Python库实现它们的实…

利用poi实现将数据库表字段信息导出到word中

研发文档对于开发人员来说都不陌生了,而研发文档里重要的一部分就是表结构设计,需要我们在word建个表格把我们数据库中的表字段信息填进去,表多的话靠我们手动去填非常累人!!! 因此作为开发人员可不可以写…

计算机网络应用层(期末、考研)

计算机网络总复习链接🔗 目录 DNS域名服务器域名解析过程分类递归查询(给根域名服务器造成的负载过大,实际中几乎不用)迭代查询 域名缓存(了解即可)完整域名解析过程采用UDP服务 FTP控制连接与数据连接 电…

Flutter Dart FFI Pointer<Uint8>类型如何转成数组或String

前言 继上一次发布的 Flutter 直接调用so动态库,或调用C/C源文件内函数 内容,最终我选择了第二种方式,直接把整个 Native C 的项目源代码放进了 Flutter 工程里编译(放在iOS的目录是因为它不支持自定义源码路径,Andro…

Linux免密实现文件拷贝(建立机器之间的SSH密钥认证)

背景: 在之前的工作中,我需要在我的shell脚本中实现将机器A的文件拷贝至机器B,然后去执行一系列的操作。由于我将我想要执行的动作完全写入了shell脚本中,并且不想每次执行时都去输入密码,因此这里,我们需要…

大数据机器学习与深度学习——过拟合、欠拟合及机器学习算法分类

大数据机器学习与深度学习——过拟合、欠拟合及机器学习算法分类 过拟合,欠拟合 针对模型的拟合,这里引入两个概念:过拟合,欠拟合。 过拟合:在机器学习任务中,我们通常将数据集分为两部分:训…

HBase 高可用集群详细图文安装部署

目录 一、HBase 安装部署 1.1 Zookeeper 正常部署 1.2 Hadoop 正常部署 1.3 HBase 安装 1.4 HBase 的配置文件 1.4.1 hbase-env.sh 1.4.2 hbase-site.xml 1.4.3 regionservers 1.4.4 创建目录 1.5 HBase 远程发送到其他节点 1.6 HBase 服务的启动 1.6.1 单点…

Linux---创建、删除文件及目录命令

1. 创建、删除文件及目录命令的使用 命令说明touch 文件名创建指定文件mkdir 目录名创建目录(文件夹)rm 文件名或者目录名删除指定文件或者目录rmdir 目录名删除空目录 touch命令效果图: mkdir命令效果图: rm命令效果图: rm删除目录效果图 说明: rm命令想要删除目录需要加上…

CSS实现鼠标移动到图片上显示遮罩层效果

这是一张图片&#xff0c;我希望鼠标移动到上面的时候显示一个遮罩层&#xff0c;层级上有两个按钮&#xff0c;一个查看&#xff0c;一个删除 首先是要写一个大盒子包裹两个部分&#xff0c;一个是图片部分&#xff0c;一个是遮罩层部分&#xff0c;然后再用CSS样式控制 <e…

C# 提取PDF中指定文本、图片的坐标

获取PDF文件中文字或图片的坐标可以实现精确定位&#xff0c;这对于快速提取指定区域的元素&#xff0c;以及在PDF中添加注释、标记或自动盖章等操作非常有用。本文将详解如何使用国产PDF库通过C# 提取PDF中指定文本或图片的坐标位置&#xff08;X, Y轴&#xff09;。 ✍ 用于…