我的NVIDIA开发者之旅——一文了解DeepStream快速入门及应用介绍

爱做饭的电饭煲 2022-06-09 14:37:03

"我的NVIDIA开发者之旅” | 征文活动进行中.......

1.DeepStream的简介

深度学习应用在很多领域,如视觉、语音、NLP等,有各种各样的学习框架。而在深度学习框架底层,NVIDIA提供了大量的硬件以及相关的软件库的支持,NVIDIA的DeepStream 便是其中一款DeepStream是一套NVIDIA技术组装的智能视频分析(Intelligent Video Analytics)套件,从深度神经网络和其他复杂的处理任务引入到流处理管道中,以此来达到对视频和其他传感器数据的接近实时分析工作。DeepStream应用程序框架具有硬件加速构建块,可将深层神经网络和其他复杂处理任务带入流处理管道。开发者只需专注于构建核心深度学习网络和IP,而不是从头开始设计端到端解决方案。Deep Stream 工作流程 也即实时视频流分析即结构化包含:实时视频解码和NN神经网络进行推理,应用广泛:

img

注:SDK 为 Software Development Kit 的英文缩写,中文意思就是软件开发工具包,特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合都叫做软件开发工具包。

2.安装DeepStream并搭建运行环境

img

Python版本: 3.8 64-bit

1.下载Docker镜像

在NVIDIA官方网址可以选择适合当前系统的版本,这里选择DeepStream 6.0:https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_docker_containers.html

docker pull nvcr.io/nvidia/deepstream:6.0-triton

2.创建并启动容器

下载镜像之后,也就为容器准备了运行环境。下面我们将介绍如何使用镜像启动一个容器

nvidia-docker run --shm-size=12g --ulimit memlock=-1 --ulimit stack=67108864 -it --name ds-demo nvcr.io/nvidia/deepstream:6.0-triton

注:容器中具有ubuntu的运行环境,输出hello docker。只需要一条命令:docker run ubuntu:14.04 echo 'hello docker'

3.安装所需库

apt-get update
apt install -y 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

命令行注释:
apt-get update // 更新源文件,并不会做任何安装升级操作
apt install [package] // 安装指定的包,并同时安装其依赖的其他包。

4.克隆python示例子项目

cd /opt/nvidia/deepstream/deepstream-6.0/sources
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

5.安装gst-python

DeepStream 管道可以使用Gst-Python(GStreamer 框架的 Python 绑定)构建。

cd gst-python
git checkout 1a8f48a
./autogen.sh
make
make install

注:gst-python其他可用资源 https://mirrors.sjtug.sjtu.edu.cn/gentoo/dev-python/gst-python/?sort=time&order=asc

6.安装python-binding

cd /opt/nvidia/deepstream/deepstream-6.0/sources/deepstream_python_apps/bindings
mkdir build
cd build
cmake ..  -DPYTHON_MAJOR_VERSION=3 -DPYTHON_MINOR_VERSION=8
make
pip3 install ./pyds-1.1.0-py3-none*.whl

当然大家也可以参考DeepStream提供的文件 链接 的方法进行改动和自定义。

7.DeepStream SDK

NVIDIA的DeepStream SDK为一整套数据流分析工具包,透过智能视频分析(IVA)和多传感器的数据处理来感知情景和意识。DeepStream应用程序框架具有硬件加速构建块,可将深层神经网络和其他复杂处理任务带入流处理管道。按照官方介绍,我们仅需专注于构建核心深度学习网络和IP即可实现开发。首先安装依赖

sudo apt install libssl1.0.0 libgstreamer1.0-0 gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav libgstrtspserver-1.0-0 libjansson4

接下来就是下载安装,参考示例文件按照完成后,我们可以尝试运行deepstream-app, 即 deepstream 提供的演示 demo

3.尝试利用DeepStream构建应用程序

deepstream-app可能有点难以开始开发。SDK 附带了几个简单的应用程序,我们可以在其中了解 DeepStream 的基本概念,构建一个简单的管道,然后熟练后尝试构建更复杂的应用程序。

img


首先deepstream-test1 开始,堪称DeepStream界 hello world。在这个应用程序中,我们可以学习如何使用各种 DeepStream 插件构建 Streamer 管道。从从文件中获取视频、解码、批处理,然后进行对象检测,最后在屏幕上呈现框。
deepstream-test1 大家可以参考官方教程对每个组分进行探究 ,其管道如下:

img

4.DeepStream应用前景展望

1.智能零售场景应用

在大型商场的摄像头提供了丰富的视频画面资源。利用软件实现实施追踪,得到准确的内部客户流量信息,同时能实现精确的追踪人们在商店的购物偏好和体验。这一点可以通过基于实时AI的视频和图像分析的DeepStream来实现。

img

2.智慧交通场景

使用大量相机的另一个地方是城市。您需要分析数以千计的相机。从这些相机中获取洞察力可以帮助减少我们城市的交通拥堵,并使我们的道路更安全。道路上的异常可以立即被警报机构检测到。此外,由于带宽限制,将数TB的视频数据传输到云可能是不可行的。因此,您需要一种分析边缘像素的解决方案,并仅将重要元数据传输到云或分析服务器以获得进一步的见解。右边是智能城市的解决方案,它可以实现边缘感知,而且只需要元数据到云端,DeepStream及其消息代理插件,提供从边缘设备无缝连接到云的能力。

img

3.电商物流场景应用

电商物流应用包括两大核心:一:在传送带上检测和标记包装。传送带上出现错误的包裹,可以快速生成警报,并且可以在传送带上移走。二:自动化的安全筛查及产品质控:如果产品的质量不行,那么视频识别应做到提示并做出响应。

img


简言之,前途是一片光明滴!先从基础学起,计算机编程走起。

4.结语

1.NVIDIA的DeepStream国内目前已经形成了用户生态群,因此follow大牛的脚步,利用简单项目来练手是不错的入门方法,如GitHub上开源代码deepstream-plugins,利用DeepStream在GPU上进行加速案例

img

2.DeepStream的工作流还是很清晰的,不过内容架构复杂,需要大家时间和精力的投入,其中很有意思的一点便是“目标追踪(track)”,这也是其应用的主要途径之一。DeepStream作为智能视频分析软件框架,其应用场景仅受限于想象,学好Python对于深入学习非常重要。
最后欢迎大家一起学习讨论!!!

...全文
11729 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0_71915712 2022-06-11
  • 打赏
  • 举报
回复
很好
  • 举报
回复
@m0_71915712 感谢肯定!
小糖果637 2022-06-09
  • 打赏
  • 举报
回复 2
一起学习冲冲冲
小糖果637 2022-06-09
  • 打赏
  • 举报
回复 2
👏👏👏👏👏
小糖果637 2022-06-09
  • 打赏
  • 举报
回复 2
加油,不错哦
  • 打赏
  • 举报
回复 5
奋斗吧!少年
  • 举报
回复 2
@甜甜甜果酱呢  学好知识行大运赚大钱
永强998 2022-06-09
  • 打赏
  • 举报
回复 4
👍👍👍
  • 举报
回复 1
@永强998 一起学习冲冲冲
杨Dream One 2022-06-09
  • 打赏
  • 举报
回复 4

能不能利用DeepStream在生物学领域做智能识别,比如生态学大规模监测

  • 举报
回复 2
@杨Dream One 我觉得做检测很好,比如做自然生态鸟群鸟鸣声分类

1,412

社区成员

发帖
与我相关
我的任务
社区描述
NVIDIA 开发者技术交流
人工智能 企业社区
社区管理员
  • nvdev
  • 活动通知
  • AI_CUDA_Training
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧