NVIDIA所提供的开发资源,大多属于库(library)或API级别,包括CUDA、CUDNN、CuFFT、CuBLAS、TensorRT等,需要具备足够的C++/Python编程语言基础的开发人员,才有能力发去挥GPU/CUDA的并行计算优势,这个特性某种程度限制了并行计算相关应用的普及。
DeepStream是一套集NVIDIA最尖端技术精髓于一身的智能视频分析(Intelligent Video Analytics)套件,从深度神经网络和其他复杂的处理任务引入到流处理管道中,以实现对视频和其他传感器数据的接近实时分析工作。
DeepStream在很多的城市管理项目中,扮演最核心的视频分析角色。上图左方是部署在家庭、街道、停车场、购物中心、仓库、工厂中的上百万个摄像头,通过深度学习的智能技术,快速提取特定的信息并回传至控制中心,能在指定范围中提供安全监控机制,也能提高总体营运的效率。
目前已实现的应用包括访问控制、防止丢失、自动结帐、监视、安全、自动检查(QA)、包裹分类(智能物流)、交通控制/工程、工业自动化等。
要解决上述繁杂场景的效率问题,不仅每个环节的性能要发挥到极致,更重要的是工作流上每个节点的平衡,因为这牵涉到总体性能的分配问题。
下图是DeepStream标准工作流,表示在“单一设备”上所执行的8个步骤,每一步骤都需要配套的计算资源进行处理,任何一段的处理不当都会影响总体性能,因此“平衡”是非常关键的考量。
下面简单介绍一下每个步骤的工作重点(依照从左至右的顺序):
以上是完成单机应用的工作流,如果满足于单一设备的应用,那么下图所提供的技术,就能协助您通过互联网技术,将分散在各地的DeepStream应用端所获取的特定(物件)信息汇到控制中心,甚至由控制中心对指定(组)DeepStream设备下达动作指令,这才是真正AIOT的完整架构。
对于实际的IVA应用程序/服务部署,应用程序的远程管理和控制至关重要,DeepStream SDK可以在任何云和边缘运行,这使得它成为处理物联网需求的强大SDK,如边缘和云之间的有效双向消息传递、安全、智能记录和空中AI模型更新。
结合以上的技术,能实现智能视频分析的网上应用托管任务,并且可以轻松部署、升级DeepStream的应用环境。
因此DeepStream不仅追求单机上的极致性能,还添加以下实现AIOT应用的支撑技术,主要包括以下两大部分:
1.双向通讯与云服务:
(1) 支持Kafka、MQTT和AMQP等物联网集成接口
(2) 支持AWS物联网和Microsoft Azure物联网的交钥匙功能。
(3) 通信安全机制:提供基于SSL证书的双向TLS认证和基于公钥认证的加密通信
(4) 使用双向物联网消息传递功能触发使用DeepStream的特定事件记录
(5) 通过边缘和云之间的双向消息传递,可以添加对用例的更大控制,例如用于事件记录的远程触发器、更改操作参数和应用程序配置或请求系统日志。
2.应用部署与管理:
(1) OTA空中更新:从任何云注册中心对整个应用程序或单个人工智能模型,进行无缝更新。
(2)可以使用NVIDIA NGC容器构建的高性能DeepStream云本机应用程序。
(3) 通过使用DeepStream,可以大规模部署并使用Kubernetes和Helm Charts管理容器化应用程序
(4) DeepStream应用程序中的智能记录功能允许通过选择性记录在边缘上节省宝贵的磁盘空间,从而实现更快的搜索能力。可以使用云到边缘消息快速触发来自云的录制。
下图是DeepStream的软件栈(software stack)图,底层CUDA-X部分负责处理单机上的计算性能,中间DEEPSTREAM SDK的部分则更加重视“通讯”与“部署”两大部分,最上层的可以看出目前主要提供的接口有Python与C/C++两种。
对于初学者的最大好消息是,即便不懂Python或C/C++开发语言,也能很轻松地使用这套视频分析工具。下一篇文章就会带您在NVIDIA Jetson Nano 2GB开发套件中,无需任何编程代码的能力,就可以体验DeepStream强大的功能。
好文章,需要你的鼓励
临近年底,苹果公布了2024年App Store热门应用和游戏榜单,Temu再次成为美国下载量最多的免费应用。
云基础设施市场现在已经非常庞大,很难再有大的变化。但是,因为人们可以轻松地关闭服务器、存储和网络——就像开启它们那样,预测全球云基础设施开支可能非常困难。