您可以向应用程序添加实时虚拟体验,以便用户远程检查和分析物理站点。 我将解释如何使用开源软件和 Jetson Nano 运行 Linux 将 4k 视频流式传输到另一台通过 Wi – Fi 使用 Rtsp 的计算机。 此技术还可以调整为添加 WebRTC 服务器,供多人在网页上查看流。您可以使用标准网络摄像头或树莓派 v2 相机和 Linux 机器或树莓派浏览许多示例。

提供的例子来自一个活跃的在线 开发者社区讨论。 感谢许多为我们克服的问题提供解决方案的人。

360° 视频流的优势

单台 360° 摄像机可提供四面八方的无缝观看体验。您不会错过任何东西,也不会错过伺服器移动标准相机。 您可以转过头并立即更改视图,或使用网页中的鼠标旋转实时场景。 当您将场景传送给观众时,他们会获得所有内容,并立即获得所有内容。

在许多情况下,AI 正在分析场景。 智能应用程序可以分析每个帧中的整个场景。 它将看到一切,并分析每个帧上的每一个对象。

开始使用消费 360° 摄像机

与昂贵的多摄像机设备与外部图像拼接软件,我们使用消费者360°相机在我们的低成本项目。 360° 摄像机使用廉价的 Linux 计算机作为中继机,以 30fps 的速度以 30fps 的速度提供上、下、右、前部和背面的无缝视图,延迟 400 毫秒。

我们使用开源 libuvc 将相机连接到 Linux 计算机,并使用 gstreamer 来管理视频流。为了增强流,我们使用 OpenCV 和检测网自动分析空间,供人们进一步分析 当我提到”Linux计算机”时,它通常是JetsonNano,它是100美元没有电源支持和微SD卡。

在下面的图像中,左侧视图是机器人的人工操作员所看到的。 场景可以即时向任何方向移动。 如果机器人移动缓慢,360° 摄像机流可用于驾驶下面的机器人。 即使在不到 500ms 的延迟下,消费 360° 摄像机的技术仍与工业相机处于同一水平。对于许多商业项目来说,当前的延迟可能太高。 本示例中的机器人用于教育目的,不用于工业用途。

大多数人不是简单地使用视频源来流式传输体验,而是使用 Linux 计算机向视频源添加对象检测。

下面的示例使用 OpenCV 和 Python 来标识与 Canny 的边缘。

下面的示例使用检测网进行对象检测。

这些演示是基于开源项目与社区一起构建的,并在最近的 360° 视频流在线聚会中显示。

源代码和附加信息,供您自己构建这些演示,可在这里 获得。 如果您没有 360° 摄像头,可以使用标准网络摄像头,或连接到 NVIDIA Jetson 的 CSI 端口的树莓派 v2 摄像机。 如果您没有 NVIDIA Jetson,您可以使用树莓派或 x86 Linux 计算机。

虽然树莓派 4 比 NVIDIA Jetson Nano 更便宜、 更受欢迎, 但 Nano 具有更好的 4K H 硬件加速 在我们的测试中,我们无法使用树莓派进行 4K 流式处理。 您绝对可以使用树莓派与标准的 USB 摄像头或树莓派相机。 但是,它并不能与我们在项目中使用的 RICOH THETA 360° 摄像机一起使用。

将 360° 实时视频转换为标准透视

社区成员 Jaap 提供了一个解决方案, 使用 OpenCV 实时将 360° 视频流的部分转换为标准透视。  这里是 Jaap 庇护在他的地下室和黑客 360° 视频流。

解决方案只是部分完成,因为我们仍在尝试使用具有 OpenCV 的 NVIDIA Jetson 的 CUDA 加速来处理 cv.cuda.remap 调用。 目前,该解决方案仅适用于较小的部分。 我们大多数人使用的相机是理光的 Theta V 或 Z1 ,在 4k 式传输 30fps 。这给小型板式计算机的处理提出了很大的需求。

重新映射解决方案旨在使我们能够将标准深度学习模型与公共图像数据库一起使用。 360° 视频流的等角视角对非鱼眼图像模型提出了挑战。

帮助人们与等角视频互动

虽然计算机可以处理等角视频帧,但更喜欢在 360° 视频中导航的方式,类似于 Google 地图或 Google 街景体验。

一个简单的技术是将 360° 视频流转换为 MotionJPEG,然后使用 A 帧显示实时流。来自RIT的洛克希德·马丁·阿米莉亚无人机项目的成员为RICOH THETA制作了一个开源驾驶舱。 讨论和代码可在此 获得。直接链接到 GitHub存储库。

这是测试耳机的 RIT 团队成员之一。 视频源使用专门的无线电发射机,因为他们的项目是基于一个飞行无人机。

我使用 RIT 团队使用测试教育机器人构建的开源项目,并在标准 Web 浏览器中显示视图。

IP 网络视频传输

尽管我们使用的相机运行 Android OS 内部,并可以直接流式传输到另一台设备,但最灵活的选择是使用 USB 电缆将 360° 摄像机连接到 Jetson Nano,然后将源中再中继到另一台设备。

我们大部分的努力都集中在使用 gstreamer上。 我们仍然有一些问题使用 Ffmpeg 与里科泰塔。

从 x86 Linux 计算机,以下 gstreamer 管道应与标准网络摄像头以及 RICOH THETA 一起使用。

Java

 

1
gst-启动-1.0 解码宾jpegencrtpjpegpayudpsink主机=192.1682.100端口=5000qos=sync同步 =

管道将在 192.168.2.100 将流发送到另一台计算机。 您需要将 IP 地址更改为要查看流的计算机。

我查看流的计算机是 Jetson 。 我用过这条管道

Java

 

x
1
1
gst-启动-1.0udpsrc端口=5000 应用程序/x-rtp,编码-名称+JPEG有效负载=26rtpjpegdepayjpegdec视频缩放视频/x-原始宽度=640,高度=320nveglglessink

如果您正在查看流的计算机是 x86 计算机,则应将 nveglglessink 更改为自动视频墨。

社区成员 zdydek 贡献了 另一个管道使用

RTSP 可以从许多玩家(包括 VLC)查看。 您需要将 VLC 指向计算机的 IP 地址,并连接网络摄像头。

网络与贾努斯

社区成员Hugues 贡献了一个教程 ,使用树莓派流WebRTC到网络浏览器使用开源 JanusWebRTC服务器

这是他用来他的检测机器人的建筑。

总结

我们的开发人员社区在 360° 直播项目中正大张大潮。AI 和对象检测技术正在进入主流业务仓库和工厂。标准摄像机在视图中留下间隙,这可能会损害分析和决策。价格低廉的消费 360° 摄像机可以流式传输整个视图,并使用与标准摄像机相同的 USB 连接接口。

已建立的开源视频传输项目(如 gstreamer)是稳定的,并且使用 360° 视频非常有效。由于 360° 摄像机可用作 USB 网络摄像头,您可以使用现有的网络摄像头或廉价的树莓派相机尝试相同的概念。

如果您有任何问题,或关于360°视频流的想法,你可以张贴在本文的底部或在我们的免费 和开放的360°相机开发人员社区。这是一个令人兴奋的时刻,每周都会有新的发展。请加入该操作。

Comments are closed.