DeepStream: 新一代智能城市视频分析
在Jetson TX2上试用TensorRT
https://jkjung-avt.github.io/tensorrt-cats-dogs/
NVIDIA提供了一个名为TensorRT的高性能深度学习推理库。它可以用来加速Jetson TX2上的深度学习推理(以每秒帧数衡量),与原始caffe + cudnn相比,增加几倍。在撰写本文时,TensorRT-2.1.2可用于Jetson TX2,并随JetPack-3.1自动安装。同时,可以在以下网址找到最新版本的TensorRT文档:http://docs.nvidia.com/deeplearning/sdk/tensorrt-user-guide/index.html
当我学习在Jetson TX2上使用TensorRT时,我想确保我可以使用TensorRT来加速我之前在Jetson TX2上训练的deeplearning-cats-dogs-tutorial模型。所以我首先在Jetson TX2上下载并运行了jetson-inference代码。
2018年01月25日 21:05:20 图波列夫 阅读数:2902 标签: DeepLearningNVIDIADeepStreamGPU 更多
个人分类: GPUDeepLearningDeepStream
以下主体内容翻译自:DeepStream: Next-Generation Video Analytics for Smart Cities
试想一下每个家长最糟糕的噩梦:一个孩子在拥挤的商场里迷路。现在想象一下,建筑物内部署的摄像机网络在几分钟之内就可以找到这个孩子的位置,并实时记录、检索和分析所有的视频。这只是视频分析领域提供的许多可能性之一。
虽然传统的视频分析使用基于计算机视觉的方法,但下一代解决方案愈发依赖深度学习技术。在GPU上运行这些算法可提供前所未有的准确性、功能和速度。实现视频分析潜力的关键在于构建可以经济高效扩展的应用程序。
NVIDIA新推出的DeepStream SDK借助NVIDIA Tesla GPU的硬件特性(包括卓越的解码性能,通过降低精度进行高速推理以及低功耗),帮助开发人员快速构建高效、高性能的视频分析应用程序。本博文将提供DeepStream SDK的概述,说明如何使用它来满足性能和可伸缩性需求,并基于目标检测示例展示其易用性。
为什么使用DeepStream?
DeepStream视频分析工作流程
这些模块紧密集成在一起,以确保在正确使用数据传输和软件同步的同时获得最大的硬件并发性。
DeepStream User API
要构建流水线,可以通过调用createDeviceWorker()
来创建device worker的实例:
// Create a deviceWorker on a GPU device, the user needs to set the channel number.
IDeviceWorker *pDeviceWorker = createDeviceWorker(g_nChannels, g_devID);
然后,通过定义用于解码的输入编解码器类型、预处理阶段要输出的颜色格式以及推理模型的网络细节,来启用和配置流水线的预定义阶段。
// Add decode task, the parameter is the format of codec. pDeviceWorker->addDecodeTask(cudaVideoCodec_H264);// Add post processing task and define color format for inference
pDeviceWorker->addColorSpaceConvertorTask(BGR_PLANAR);// Enable inference module and define model details
pDeviceWorker->addInferenceTask(preModule_infer, deployFile, modelFile, meanFile,inputLayerName, outputLayerNames);
//finally, start the pipeline!
pDeviceWorker->start();
自定义流水线
专为 Tesla P4/P40 而打造
IDeviceWorker *createDeviceWorker(const int nChannels, const int deviceId);
这一目的是让更高层的软件根据使用情况、利用率和服务质量等因素来创建和管理各种流水线,并在适当的GPU上调度视频流。
目标检测示例
示例流水线
图 4 显示了目标检测样本的端到端流水线。
图 4 目标检测示例流水线
//per thread injection of packets into pipeline
pDeviceWorker->pushPacket(pBuf, nBuf, laneID);
Profiling
[DEBUG][11:51:33] Video [0]: Decode Performance: 718.89 frames/second || Decoded Frames: 500
[DEBUG][11:51:33] Video [1]: Decode Performance: 711.68 frames/second || Decoded Frames: 500
[DEBUG][11:51:33] Video [0]: Decode Performance: 762.77 frames/second || Decoded Frames: 1000
[DEBUG][11:51:33] Video [1]: Decode Performance: 748.20 frames/second || Decoded Frames: 1000
分析器报告结果的速率可根据DecodeProfiler
类中的定义进行配置,DecodeProfiler
类实现了处理分析结果的逻辑。
在屏幕上显示
性能
$ nvidia-smi -i 0 -q -d UTILIZATION
GPU 0000:05:00.0UtilizationGpu : 96 %Memory : 41 %Encoder : 0 %Decoder : 56 %
改为等效(但较小)的Resnet-10网络可以以30 fps处理多达30个信道。以下nvidia-smi输出显示解码器利用率达到100%,表明应用程序是解码限制的。
$ nvidia-smi -i 0 -q -d UTILIZATION
GPU 0000:05:00.0UtilizationGpu : 76 %Memory : 56 %Encoder : 0 %Decoder : 100 %
由于较高的计算成本,使用较大网络的应用程序在相对较低的信道数下受到推断限制。最佳做法是在网络功能和性能方面进行最佳折衷,充分修剪网络,并使用INT8推断实现最大信道数,并榨取GPU中所有可用性能。
立即尝试DeepStream!
我们欢迎您在DeepStream开发者论坛上提出您的问题和意见。我们的目标是根据您的反馈继续扩展和发展DeepStream,所以请让我们了解您的想法。发掘你的视频告诉你的一切从未如此简单!
许可证
DeepStream SDK仅支持datacenter GPU。
“The following files are for use with datacenter GPUs such as Tesla P4 and P40.”
网页连接的 NVIDIA DeepStream SDK 1.5 Software License Agreement为deepstream-sdk-eula-pdf,但是在网站上打不开。
NVIDIA DeepStream SDK 1.5
目前DeepStream SDK 1.5已经发布,其特性为:
- 所有新的功能借助于NVIDIA CUDA 9.0,NVIDIA TensorRT 3.0和cuDNN 7
- 支持可变的批量大小,以最大限度地提高所有用例的吞吐量
- 通过TensorRT 3.0支持TensorFlow模型
- 智能解码仅解码用于分析的帧,以显着提高通过GPU的信道密度
快速启动指南
- 验证您的系统上是否安装了以下软件
1. Ubuntu 16.04 LTS(带GCC 5.4)
2. NVIDIA显示驱动程序版本384
3. NVIDIA VideoSDK 8.0
4. cuDNN 7和TensorRT 3.0
5. NVIDIA CUDA 9.0 - 下载DeepStream 1.5 tar文件
- 在您选择的位置提取软件包
- 按照下载包中的Deepstream_User_guide.pdf的使用说明进行操作。
上述系统要求与Deepstream_User_guide.pdf并不一致,软件包自带文档中为:
- Ubuntu 16.04 LTS(带GCC 5.4)
- NVIDIA显示驱动程序版本375
- NVIDIA VideoSDK 7.14
- cuDNN 6 & TensorRT 2.1
- NVIDIA CUDA 8.0
DeepStream: 新一代智能城市视频分析相关推荐
- 使用DeepStream 2.0加速视频分析开发
翻译自:https://devblogs.nvidia.com/accelerate-video-analytics-deepstream-2/ 智慧城市的规模令人难以置信.全球将部署数十亿的传感器, ...
- NVIDIA DeepStream 5.0构建智能视频分析应用程序
NVIDIA DeepStream 5.0构建智能视频分析应用程序 无论是要平衡产品分配和优化流量的仓库,工厂流水线检查还是医院管理,要确保员工和护理人员在照顾病人的同时使用个人保护设备(PPE),就 ...
- 视频智能分析系统EasyCVR视频流媒体安防监控云服务实现城市视频智能化应用
在互联网.物联网.大数据.人工智能引领新经济发展时,智慧城市成了城市发展破冰前行的利刃.而随着经济发展的需求和科学技术的进步,传统的电视监控因其具有不够精确等特点,已被新型的智能视频监控技术逐渐替代. ...
- 海康威视浅淡智能视频分析技术及产品的应用 智能视频分析技术的应用与发展
近年来,随着网络带宽.计算机处理能力和存储容量的迅速提高,以及各种视频信息处理技术的出现,全程数字化.网络化的视频监控系统优势愈发明显,其高度的开放性.灵活性为视频监控系统和设备的整体性能提升创造了必 ...
- 数字化城管智能视频分析应用系统 助力非现场高效执法
方案背景 为了维护市容市貌,城市管理队伍一直奔波在城市街头,监督处理城市环境.卫生等问题.然而自有城管执法以来,执法人员与商贩商户之间的矛盾纠纷日益激烈,这给执法工作带来了巨大阻力,面对城管执法各种难 ...
- 浅析TSINGSEE智能视频分析网关的AI识别技术及应用场景
一.行业背景 1)AI技术在安防领域大量落地应用 随着近几年人工智能的快速发展,深度学习方法及性能日益提升,计算机视觉.图像处理.视频结构化和大数据分析等技术也不断完善,使得安防产品逐步走向智能化.在 ...
- 苏州交管局领导参观闪马智能,考察视频分析交通领域应用
近日,苏州交管局领导来访闪马智能上海总部,调研视频异常行为分析在交通领域的应用.来访领导有苏州市公安局交通管理局局长高昶.副局长刘芳.交通指挥中心主任马金冬.科研所所长沈勤等一行人. 闪马智能对苏州交 ...
- 智能视频分析系统 PVG-VA
智能视频分析系统 PVG-VA 智能视频分析系统 PVG-VA 系统概述 视频应用的早期阶段,用户关注的是摄像机数量的建设,并逐步通过数字化和网络实现视频的联网和存储,但随着视频资源 的逐步增多,用户 ...
- “智慧”引领视频监控新时代_智能视频分析
"智能和高清"是智能高清监控系统中不可分割的两部分,而智能分析就是让监控系统"有智慧",随着智能分析技术的逐渐发展,其未来也必将在视频监控系统中扮演重要的角色. ...
最新文章
- Redis混合存储产品与架构介绍
- 为什么数据挖掘很难成功?
- Codeforces Round #200 (Div. 1)A. Rational Resistance 数学
- 关于类模板怎么用的简单介绍
- 【Python-ML】SKlearn库线性回归器LinearRegression
- Python爬虫学习(1)
- Centos7.0安装tensorflow
- php中round函数能给整数用吗,PHP四舍五入、取整、round函数使用
- 白板机器学习笔记 P3-P8 高斯分布
- html静态化和动态页面,web动态页面静态化,伪静态
- matlab 线性规划求最大值,MATLAB求解线性规划(含整数规划和01规划)问题.pdf
- 基于OHCI的USB主机 —— USB设备其它数据结构
- 江西省吉安市永丰县市政花园(市政服务大楼[厅])工程质量问题简述报告
- 用计算机算加班,加班工资计算器
- Simple allow copy使用Chrome插件复制网站文字
- 局域网打印机共享设置
- html表格中加背景,css表格怎么添加背景颜色?
- Unity操作文件对话框
- Elasticsearch 搜索入门技术之一
- Java编程入门先学什么?Java零基础学习路线分享!
热门文章
- freebsd mysql删_FreeBSD 下 mysql 的相关问题
- word转pdf图片模糊怎么办_迅捷PDF转换器如何将word转为长图?word转图片方法
- 计算机科学概论各章总结,计算机科学概论(原书第5版)读书笔记
- Web API与JWT认证
- vue.js+socket.io打造一个好玩的新闻社区
- SpringBoot之前端文件管理
- WebLogic集群配置
- [BZOJ1106/POI2007]Tet立方体大作战
- 为WPF和Silverlight的Grid添加边框线(zz)
- 使用Mahout搭建推荐系统之入门篇3-Mahout源码初探