前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在NVIDIA Jetson Orin NANO上搭建Web化操作界面

如何在NVIDIA Jetson Orin NANO上搭建Web化操作界面

作者头像
GPUS Lady
发布2023-07-08 14:59:17
4190
发布2023-07-08 14:59:17
举报
文章被收录于专栏:GPUS开发者
为边缘智能设备开发Web远程监控与管理界面,是发展行业应用的一个重要里程碑,毕竟绝大部分最终用户并不具备足够丰富的网络技术,指令类的远程控制方法或者RTP/RTSP转发的方式,对他们来说是困难的。因此在规划产品功能时,必须为最终用户提供最轻松的“浏览器访问或管理”的方式,这样就不局限在台式机、笔记本这些设备,甚至在手机上也能进行操作,这会让您开发的产品得到更高的实用价值。

在jetson-inference项目中集成了一个全双工的WebRTC 服务器,同时具备输入与输出的功能,主要具备以下特性:

  1. 启动一个内置的网络服务器;
  2. 通过jetson-utils接口与DNN推理管道无缝协作;
  3. 通过jetson-utils调用GStreamer硬件加速视频编码和解码,性能非常好;
  4. 支持同时发送多个流,并接收来自多个客户端的流;
  5. 用于远程查看视频流,而无需构建您自己的前端。

在这个全双工模式的屏幕截图中,笔记本电脑的网络摄像头通过WebRTC流式传输到Jetson上进行解码,然后使用特定深度学习识别(例如detectNet)执行智能推理,然后重新编码输出,并再次将其发送回浏览器WebRTC用于播放,所以这个功能很单纯就是个输入输出的功能。

现在就用Jetson-Inference的容器来进行这项任务,执行步骤非常简单,如下:

系统安装: 用docker容器来执行这个项目是非常简单的,只要执行以下指令就可以:

代码语言:javascript
复制
$ git  clone  --recursive  https://github.com/dusty-nv/jetson-inference
$ cd  jetson-inference
$ docker/run.sh

配置HTTPS / SSL安全策略: 陪WebRTC配置安全策略很简单,只要执行下面四个步骤就行:

代码语言:javascript
复制
$ cd /jetson-inference/data
$ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365 -nodes -subj '/CN=localhost'
$ export SSL_KEY=/jetson-inference/data/key.pem
$ export SSL_CERT=/jetson-inference/data/cert.pem

注意:由于这里启动的容器使用 --rm 参数,表示每次离开之后就会删除这个执行容器,因此每次执行 docker/run.sh 之后,都需要执行上面三个步骤,才能顺利启动WebRTC服务器。

执行各种应用的输出: 为了提高显示效果,我们复制一个国外健身操的公开短视频作为输入源,在Jetson上执行detectNet.py与poseNet.py这两种推理实验,然后在我台式电脑上的浏览器观看输出结果,执行如下:

代码语言:javascript
复制
$ cd  build/aarch/bin
# 执行姿态识别,从浏览器上看结果:
$ posenet.py /jetson-inference/data/Pose.mp4  webrtc://@:8554/mytest

下面是在台式机上的浏览器输入”https://IP_OF_JETSON:8554”,例如本示例的Jetson IP为 ”10.11.11.18”,完整的输入就是 ”https://10.11.11.18:8554”,第一次登录时会出现类型以下的信息:

只要按照正常方式进行授权就可以,然后就在台式机浏览器上看到以下的视频流:

可以看到在浏览器最下方出现这次示例的相关信息。 现在再用detecNet.py 对同一个视频执行物件识别功能,指令如下:

代码语言:javascript
复制
$ detectnet.py /jetson-inference/data/Pose.mp4  webrtc://@:8554/mytest

同样在台式机的浏览器上检测推理结果,下图就是其中的一帧截屏。

请自行尝试其他各种推理算法,并且使用不同的输入源(例如CSI摄像头、USB摄像头、RTP/RTSP输入源)进行测试,使用原理都是一样。

  1. 其他扩展的Web框架:

这个项目基于WebRTC服务器上,另外还提供以下四种实用性相当高的框架:

  • HTML / JavaScript
  • Flask + REST
  • Plotly Dashboard
  • Recognizer (Interactive Training)

不过最后两个到目前为主还有些问题,作者仍在尽量改善,对于熟悉这些框架的读者,可以自行访问https://github.com/dusty-nv/jetson-inference/#webapp-frameworks,根据不同功能进入项目分支,然后进行调试与修改。【完】

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档