技术标签: 人工智能 jetson agx xavier nvidia
这篇文章主要是结合官方文档,自己的实际验证来讲DeepStream到底是个啥,我开始写的时候我也不知道这是个啥,一步步探索,以一个菜鸟的看法来写这个,如有错误还望大家指点一下。然后所有的操作都是在TX2或Jetson AGX Xavier上完成的。
在英伟达的板子上,TX2、Xavier这些上面,建议是使用jetson sdk直接刷机,刷机的时候选择DeepStream一并刷入可以减少很多的工作量。参考链接:https://blog.csdn.net/weixin_42743099/article/details/107231462
放图 ↓ :DeepStream可以加速不同的模型,高效、实时分析来自相机、传感器、IoT网关等的数据。DeepStream的关键功能之一是边缘和云之间的安全双向通信(图示的Bi-Directional IoT Messaging,这部分我还没了解,挂个官方说明)。
第一排和最后一排比较好理解,第一排就是DeepStream支持Python,C/C++,最后一排就是适用于的几种平台。
来点官方点的说明:deepstream是nvidia官方推出的一个数据流处理工具包,可以很方便的实现对视频的解码、推理等工作,高效的完成图像分类、目标检测、识别和跟踪等任务。
deepstream是在gstreamer的基础上开发的,因此使用deepstream需要一定的c语言基础和gstreamer基础。deepstream可以看成是一个壳,里面集成了gstreamer和tensorrt等工具,我们可以使用deepstream完成视频的解码、传输、神经网络推理、结果的渲染等工作。
放图 ↓ :DeepStream-app是基于GStreamer的解决方案,它由封装了低级API的GStreamer插件集组成,以形成完整的图形。该参考应用程序具有接受来自各种来源(如摄像机,RTSP输入,编码文件输入)的输入的能力,并且还支持多流/源功能。由NVIDIA实现并作为DeepStream SDK的一部分提供的GStreamer插件列表包括:
Stream Muxer插件(Gst-nvstreammux)从多个输入源组成一批缓冲区。
基于NVIDIA TensorRT的插件(Gst-nvinfer)分别用于主要和次要(主要对象的属性分类)检测和分类。
基于OpenCV的跟踪器插件(Gst-nvtracker),用于具有唯一ID的对象跟踪。
Multi Stream Tiler插件(Gst-nvmultistreamtiler)用于形成2D帧数组。
屏幕显示(OSD)插件(Gst-nvdsosd)使用生成的元数据在合成框架上绘制阴影框,矩形和文本。
消息转换器(Gst-nvmsgconv)和消息代理(Gst-nvmsgbroker)插件结合使用,可以将分析数据发送到云中的服务器。
两步搞定
$ cd /opt/nvidia/deepstream/deepstream-5.0/samples/configs/deepstream-app
$ deepstream-app -c source8_1080p_dec_infer-resnet_tracker_tiled_display_fp16_nano.txt //可以尝试运行不同配置文件
deepstream-app文件夹下主要配置文件的描述:(虽然有些官方标注了适用的板子,但是我试了一下感觉都可以用的)
2021.07.15 更新:xavier都可以使用,其他的谨慎,nano运行其他几个直接卡到死机
2021.07.15 更新:
1、DeepStream Sample App /sources/apps/sample_apps/deepstream-app
端到端示例演示了4级联神经网络(1个一级检测器和3个二级分类器)的多相机流,并显示平铺输出。
2、DeepStream Test 1 /sources/apps/sample_apps/deepstream-t
DeepStream Test 2 /sources/apps/sample_apps/deepstream-test2
简单的应用程序,建立在test1之上,显示额外的属性,如跟踪和二级分类属性。
3、DeepStream Test 3 /sources/apps/sample_apps/deepstream-test3
简单的应用程序,建立在test1的基础上,显示多个输入源和批处理使用nvstreammuxer。
4、DeepStream Test 4 /sources/apps/sample_apps/deepstream-test4
这是在Test1示例的基础上构建的,演示了“nvmsgconv”和“nvmsgbroker”插件在物联网连接管道中的使用。对于test4,用户必须修改kafka代理连接字符串才能成功连接。需要安装分析服务器docker之前运行test4。DeepStream分析文档有关于设置分析服务器的更多信息。
5、FasterRCNN Object Detector /sources/objectDetector_FasterRCNN
FasterRCNN物体探测器实例。
6、SSD Object Detector /sources/objectDetector_SSD
SSD目标探测器实例。
2021.07.15 更新:
在优化前先看看配置文件中的内容,文件中都是有备注的
文件中主要的几个信息,需要更改的地方前面都会有标注
[tiled-display] 视频输出
[source0] 视频输入,多路视频就多写几个source,即[source1]、[source2]…
[sink0] 屏幕
[sink1] 视频文件
[sink2] 媒体流
[primary-gie] 物体检测
[tracker] 物体追踪
设置上的优化,原来的配置文件上都是deepstream根据提供的几个demo写的配置,总结一下自己的学到的一些,可以用到自己的模型上。
配置文件位置,以四路1080p的为例子
//此路径下存放的就是demo的配置信息文件
cd /opt/nvidia/deepstream/deepstream-5.0/samples/configs/deepstream-app
sudo gedit source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt
./prebuild.sh
如果上面这个方法不行的,可以直接去github上下载(yolo)。下载完后解压,在cfg文件夹下,用到的是yolov3.cfg和yoloc3-tiny.cfg。权重文件:
wget https://pjreddie.com/media/files/yolov3.weights
wget https://pjreddie.com/media/files/yolov3-tiny.weights
cd /opt/nvidia/deepstream/deepstream-5.0/sources/objectDetector_Yolo
sudo gedit config_infer_primary_yoloV3.txt
//找到下面两处位置,更改配置和权重文件路径,就是上面个两个文件的路径
custom-network-config=
model-file=
Makefile更改CUDA版本,CUDA_VER=10.2
cd nvdsinfer_custom_impl_Yolo
sudo gedit Makefile
编译工程
cd /opt/nvidia/deepstream/deepstream-5.0/sources/objectDetector_Yolo
make -C nvdsinfer_custom_impl_Yolo
运行例程
deepstream-app -c deepstream_app_config_yoloV3.txt
如果要运行tiny,按照上面的过程更改一下config_infer_primary_yoloV3_tiny.txt文件下的配置和权重文件的路径,编译后运行即可
放两张帧率图,在跑yolov3_tiny.weight的时候有60帧,但是在跑yolov3.weight的时候只有9帧,括号中的是五秒内的平均帧率
文章浏览阅读2.2k次,点赞2次,收藏10次。物联网开发技术栈 内容简介作为互联网技术的进化,物联网开发并非孤立的技术栈,而是向上承接了互联网,向下统领了嵌入式硬件开发的一个承上启下的全栈开发技术。虽然我们并不能预测物联网技术栈最终的样子:统一的开发语言是 JavaScript 还是 Python 亦或者其他编程语言;HTTP、WebSockets、MQTT、CoAP 等协议谁会是最后的赢家,并且随着物联网的不断进化,甚至我们..._物联网技术java技术栈
文章浏览阅读674次,点赞10次,收藏11次。Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理,通过Git仓库来存储和管理这些文件,Git仓库分为两种:指的是存储在各个开发人员自己本机电脑上的Git仓库指的是远程服务器上的Git仓库commit:提交,将本地文件和版本信息保存到本地仓库push:推送(上传),将本地仓库文件和版本信息上传到远程仓库pull:拉取(下载),将远程仓库文件和版本信息下载到本地仓库。
文章浏览阅读4.6k次。pprof (gperftools)使用谷歌的工具集,可查看CPU采样结果。pprof (google-perftool),用于来分析程序,必须保证程序能正常退出。使用步骤:1.准备工具,先安装工具包libunwind-1.1.tar.gzgperftools-2.1.tar.gz解压后 configure到系统默认路径即可,之后直接-lprofiler 2.再安装图形工具sudo yum ins..._gperftools pprof
文章浏览阅读118次。JavaScript BOM:Navigator、History、Location
文章浏览阅读6.2k次,点赞16次,收藏66次。在前面通过使用MongoDB在命令窗口操作数据库,而MySQL数据库也同样可以在命令窗口使用sql语句操作数据库,在安装数据库的时候提到可以安装这个图形化工具的,为了节省安装时间和卡顿选择后续安装MongoDB图形化工具,在MySQL数据中同样也有这个MySQL workbench 图形化工具可以选择进行安装;那么本篇就来安装MongoDB的图形化工具 — MongoDBCompass。_mongodb数据库图形化工具
文章浏览阅读1.4k次,点赞13次,收藏10次。未来城市的大模型包括城市总体规划、城市交通运输管理、城市公共安全和应急管理、经济发展和产业园区发展、社区发展、资源承载调控、污染调控、社会资源优化调控、基础设施调控、人口研究等模型。其对城市要素、关键指标、函数、流程、模型、平台、技术、资金、人才、市场、自然环境等内外部因素进行仿真建模。采用物联网、云计算、大数据、数字孪生和人工智能等技术来获取地、物、人、组织、环境、社会、经济、业务逻辑和运营规律等相关数据。、物联网、大数据、云计算、数字孪生、元宇宙、可穿戴生理传感器、分布式新能源等各类新技术。
文章浏览阅读3.6k次。在上一篇文章中,我们知道了如何使用配置文件自定义主题,以允许商店所有者自己更改Shopify主题。 如上所述,这些设置会在用户单击管理面板的在线商店>主题部分中的自定义主题按钮时显示,并在主题开发文件的config / settings_schema.json文件中定义。在这篇文章中,我们将了解如何访问这些设置并在开发主题时调用它们。调用配置要调用模板中的配置信息,需要使用li..._shopify自定义主题
文章浏览阅读2.6k次。1.查看本地分支git branch绿色表示当前分支#######################################################2.查看远程分支git branch -a#######################################################3.切换分支git checkout branch_name..._本地分支 '(no branch)' (远程分支 = '(no branch)') 是无效的。引用名称必须遵循
文章浏览阅读2.2w次,点赞18次,收藏28次。java连接mysql出现The server time zone value '�й���ʱ��' is unrecognized的解决方法在Idea中连接数据库是抛出The server time zone value ‘�й���ʱ��’ is unrecogni错误 原因是因为使用了Mysql Connector/J 6.x以上的版本,然后就报了时区的错误。解决办法在配置url中添..._java.lang.runtimeexception: the server time zone value '嚙請對蕭嚙踝蕭
文章浏览阅读671次,点赞11次,收藏9次。并且在这个固定的serverless服务中去增加这个,应该不是应用元服务开发者有这个加入权限的,应该是要统一解决,类似实现和手机注册验证一样的,直接可以使用或者少量代码配置即可使用。另外就是如果是新的元服务应用,使用的serverless,如果不支持华为账户功能,就没法上架,这个也是比较麻烦的,前面已经使用serverless开发基本完成或者已经完成的,得用其他方式去实现才行吧。对于已经上架的应用和元服务、升级也没法进行。3月1日的时间是快到了。
文章浏览阅读5.7k次,点赞2次,收藏8次。准备工作:安装XAMPP,登陆apache,mysql,并通过phpadmin来创建数据库,新建一个表,插入一些数据:http://localhost/phpmyadmin,最好设置密码,不然后面连接数据库的时候可能会无法访问设置密码方式:修改密码--->一定要使用生成的密码来登陆,包括后面的数据库url也是。我简历的数据如下:这时候就可以在eclipse中编程开发_xammp进入可视化界面
文章浏览阅读119次。转自:http://blog.csdn.net/cailiang517502214/article/details/4797642spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到spring-mock.jar来进行辅助测试,正式应用系统中是用不得这些类的。...