体育运动直播中的智能运动跟踪和动作识别系统 - 视频分析如何协助流媒体做出实时决策

AI-Powered Streaming Vision: Transforming Real-Time Decisions with Video Analytics

原著:弗朗西斯科·冈萨雷斯|斯特朗(STRONG)公司首席ML科学家

翻译:数字化营销工兵

实时视频分析通过即时处理实时视频数据,彻底改变决策,为安全、零售、制造和体育等行业提供变革性见解。然而,将尖端视频分析模型转化为实际应用带来了重大挑战。我们的探索深入构建实时视频分析应用程序的复杂世界,机器学习和流媒体技术的融合为直播注入了智能。

在接下来的部分中,我们将介绍设计和实现实时视频分析系统时的基本组件和注意事项。从了解流媒体技术的基本原理到深入研究在边缘计算和云计算之间进行选择的细微决策过程,我们系统地解开了构成强大而智能的视频分析解决方案的各个层。

为了说明这些原则的实际应用,我们提出了一个引人注目的案例研究,探讨了在体育直播中构建智能运动员跟踪和动作识别系统。最后,我们讨论了我们对人工智能如何重塑视频流的看法。

什么是流式处理?

设想2024年的一个典型日子。你可以参加Zoom会议,与全国各地的同事建立联系,开始你的工作日。稍后,您将收听您参加的在线会议的主题演讲。也许你会收到门铃摄像头的通知,说有包裹送到了你家门口。随着夜晚的临近,你决定一边做饭,一边在平板电脑上观看公牛队比赛的最后几分钟。

实时视频流已经无缝集成到我们的日常应用程序中。尽管具体实现方式各不相同,但无论是网络会议中的点对点流媒体还是大型体育赛事中的一对多流媒体,每个应用程序都有一个共同的目标:将视频内容从其源传输到最终用户的设备。尽管结构各不相同,但底层架构统一解决了确保高效视频内容交付的根本挑战。

在实践中,通过互联网提供实时视频遵循相同的核心流程:

贡献作用 contribution

通常被称为“第一英里”,管道的初始阶段确保视频内容从其来源贡献或上传。这可能源于各种设备,例如零售和安全应用中典型的IP摄像头,或体育赛事中使用的直播设备。贡献阶段使用RTMP、RTSP、SRT或WebRTC等协议对原始视频内容进行编码,以确保高效传输。

处理和分发 Processing and Distribution

一旦现场视频被发出,它就进入处理和分发阶段。这里,视频内容经历必要的编码、代码转换和其他处理任务,以优化它以实现高效传递。然后,处理后的内容被分发到战略性地放置的服务器,以处理传入的请求。根据应用程序的规模和需求,可以使用内容交付网络(Content delivery Network - CDN)来增强分发能力。

交付 Delievery

传送管道的最后阶段,有时被称为“最后一英里”,涉及将处理后的视频内容交付给最终用户的设备。这包括高效的流媒体以适应实时观看,最大限度地减少延迟并确保流畅的播放体验。根据应用程序类型、规模和延迟要求,可以使用不同的传输协议,如HLS、MPEG-DASH或WebRTC。

在贡献或交付阶段选择何种协议在很大程度上取决于应用。在构建实时视频分析应用程序时,了解每种应用程序的优点和局限性至关重要。当我们深入研究最常见的协议时,我们会发现延迟不一定是每个应用程序的主要驱动因素。

实时流协议 RTSP - Real time Streaming Protocol

RTSP是一种多功能协议,旨在控制两个端点之间的音频/视频传输,实现互联网上流媒体内容的低延迟传输。虽然RTSP曾经与RTMP一起占据主导地位,但由于其简单性,RTSP现在主要用于监控、CCTV,并作为IP摄像机的首选协议。在应用层操作,它通过暂停/播放功能命令流媒体服务器,依靠RTP和RTCP进行数据移动。凭借对音频和视频代码的广泛支持,RTSP提供了低延迟和在IP摄像机中广泛使用的优势,尽管在播放支持和可扩展性方面存在限制,通常需要转换。因此,RTSP通常用于IP摄像机的第一英里贡献,随后被重新打包以用于最后一英里的交付和播放。

实时消息协议 RTMP- Real Time Messaging Protocol

RTMP是流媒体早期的基石,它是一种基于TCP的协议,专注于维护持久、低延迟的连接,以获得流畅的流媒体体验。RTMP曾经是Adobe Flash Player背后的核心技术,但在编码器和媒体服务器中仍得到广泛支持。然而,它在现代浏览器和设备上的播放面临挑战,限制了其兼容性。尽管RTMP在最后一英里交付中的作用有所减弱,但它仍然是第一英里工作流中内容贡献的热门选择。与RTSP类似,RTMP流被转码为HLS或DASH等自适应格式,以实现高效和可扩展的最后一英里交付。

Web实时通信 WebRTC – Web Real-time Communication

WebRTC不是一个单一的协议,而是标准、协议和JavaScript API的融合。它是交互式直播的关键技术。凭借其原生浏览器支持,它无需外部应用程序或插件。其超低延迟和基于浏览器的特性使其非常适合要求近实时体验的应用程序,如现场拍卖、游戏、电子竞技和远程医疗。然而,在基于浏览器的对等场景之外,在可扩展性和灵活性方面出现了挑战。为了获得最佳性能,建议50岁或以下的观众使用WebRTC,并且扩展需要流媒体服务器的帮助来确保视频质量。一种常见的工作流程是使用具有WebRTC功能的自定义CDN将代码转换为HLS或DASH等自适应格式,以牺牲延迟为代价进行可扩展分发。

安全可靠传输 SRT – Secure Reliable Transport

SRT是一种开源协议,是RTMP的替代方案,它利用UDP的速度,同时结合了TCP的纠错功能。这种融合带来了低延迟、高质量的视频传输,使SRT在直播中脱颖而出。SRT支持与编解码器无关的音频和视频,提供可调延迟,通常在3秒以下,具有通过次优网络进行可靠传输的优势。但是,它的播放支持是有限的。当在不可靠的网络上进行流传输时,SRT变得非常宝贵,可以解决数据包丢失、抖动和带宽变化等问题。SRT以其低延迟和纠错的独特组合而闻名,并正在慢慢取代RTSP,增加IP摄像机的本地支持。

基于HTTP的协议(HLS-HTTP Live Streaming和Dynamic Adaptive Streaming over HTTP -DASH)

基于HTTP的协议,如HLS(HTTP实时流媒体)和DASH(基于HTTP的动态自适应流媒体),已成为最后一英里交付的主要参与者,尤其是视频点播(VOD)和OTT服务。这些协议利用了无处不在的HTTP基础设施,允许通过常规web服务器进行无缝交付。虽然基于HTTP的协议在可扩展性和对各种设备的适应性方面表现出色,但在直播场景中引入了更高的延迟,限制了它们在时间关键型应用程序中的使用。

设计注意事项 Design Consideration

构建实时视频分析解决方案需要对系统需求给予细致关注,并对当前流媒体架构进行全面评估。当在现有流设置的范围内工作时,集成智能层需要在这些范围内导航,可能会面临次优性能。如果从头开始构建,这是一个很好的时机,可以就使用专用硬件做出明智的决定,确保针对特定任务定制的最佳性能。在这里,我们深入探讨一些设计考虑因素,这些考虑因素将有助于指导决策过程,并为成功实施奠定基础。

延迟 latency

任何将视频数据从A点移动到B点并使用机器学习和计算机视觉算法进行处理的系统都会经历一定程度的延迟。在这一点上,需要考虑的两个主要问题是:

- 实时处理真的有必要吗?

- 我的应用程序可以接受多少延迟?

通常,利益相关者可能会发现,每隔几分钟提供一次的见解与几秒钟内提供的见解同样有价值。例如,检测流量模式的系统可能只需要在异常持续超过10分钟的情况下报告异常,从而在延迟方面具有一定的灵活性。

第一英里硬件 First-mile hardware

第一英里硬件是指将原始视频数据转换为适当的传输协议所需的相机传感器和编码硬件。相机硬件的选择在很大程度上取决于应用程序的特定需求和目标。要问的一些问题是:

- 我们是否仅限于IP摄像机或特定广播摄像机等现有硬件?

- 这是单摄像头还是多摄像头解决方案?

- 选择相机时,哪些功能很重要?决议帧速率?低光性能?

- 对于户外部署,我们应该考虑哪些耐久性和环境因素?

除了相机的选择,还有编码硬件的选择。IP摄像机往往支持开箱即用的RTSP编码,有些现在支持SRT。其他类型的相机,如广播相机,通常需要编码硬件。目前的主要目标是了解视频数据在传输以进行进一步处理和分析之前是如何被捕获和编码的。

可扩展性 Scalability

这里的目标是建立当前和计划的可扩展性需求。需要考虑的一些问题可能包括:

- 单个系统实现需要多少个摄像头?

- 系统和工作负载的动态性如何?

- 有多少最终用户将与直播及其分析进行互动?

在设计视频分析系统时,保持可扩展性处于最前沿是很重要的。构建一个分析单个IP摄像机视频数据的解决方案是一回事。确保同一解决方案适用于数十台、数百台甚至数千台相机,每台相机都是动态联机的,需要一种完全不同的方法。

分析深度 Depth of Analysis

建立分析的深度通常需要从以下问题开始回溯:

- 我试图通过视频分析实现什么目标?

有些目标通过视频分析比其他目标更容易实现。例如,考虑停车管理系统的两个不同目标:

- 目标1:统计开放停车位的数量

- 目标2:检测、跟踪和编目车辆,以确保那些有适当通道的车辆停在动态分配的停车位

第一个目标很简单,可以通过在低功耗边缘设备上运行的久经考验的图像处理算法来解决。第二个目标将需要实时多对象跟踪算法与两个或多个深度学习模型协同工作,所有模型都在GPU上运行。虽然两者都可以通过视频分析来解决,但分析的深度对延迟、相机硬件和计算硬件的选择有着真正的影响。

边缘或云计算 Edge or cloud computing

在边缘计算和云计算之间进行选择也高度依赖于应用程序目标。边缘处理在具有严格的低延迟要求的场景中是理想的,尤其是在面临带宽限制或不可靠网络的环境中。这种方法确保实时处理发生在离数据源更近的地方,最大限度地减少延迟。

另一方面,当视频分析任务需要大量计算资源时,云计算成为一种强大的选择。云非常适合具有动态工作负载的应用程序,提供按需扩展功能,以有效处理各种处理需求。然而,在实践中,混合方法通常被证明是有效的,利用边缘计算进行即时、实时处理,并选择性地将相关数据转发到云端进行进一步分析。

将视觉智能添加到流媒体 Adding vision intelligence to streaming

机器学习和计算机视觉算法是智能视频分析的核心。添加这一层智能为从实时视频数据中提取有价值的见解开辟了一个可能性领域。虽然这项技术已经部署在安全、零售和制造等各个行业,但在体育和游戏直播中,对视频智能的需求越来越大。

智能视频分析通过促进对象检测、跟踪和视频理解,在增强直播流方面发挥着关键作用。该领域的两项著名技术是NVIDIA DeepStream SDK和AWS Kinesis视频流。在本节中,我们将探讨如何以及何时使用每种方法。

英伟达深度流 NVIDIA DeepStream

NVIDIA DeepStream SDK是一个全面的框架,用于构建边缘和云基础设施上的高性能、托管视频分析应用程序。它有助于创建可管理的视频分析管道,支持图像处理和GPU加速的深度学习推理。

对于大规模部署,云原生DeepStream应用程序可以使用Docker和Kubernetes进行容器化和编排。边缘部署利用NVIDIA Jetson设备,通过Kafka等消息代理与云或本地硬件进行通信。高级分析和可视化通常在云的下游处理。

在幕后,DeepStream是广泛使用的GStreamer框架的插件集合,专门用于深度学习视频分析,并为GPU硬件的最佳性能量身定制。关键插件包括用于TensorRT引擎执行的Gst-nvinfer、用于多对象跟踪的Gst-nvtracker和Gst-nvstreammux高效多流批处理等。

典型的DeepStream管道在流应用程序的第一英里贡献阶段之后立即运行,直接从相机或编码硬件接收编码的视频数据。这种配置在实时处理方面具有显著优势,主要是因为它靠近数据源。距离近可确保增强响应能力。这对于快速响应时间至关重要的边缘应用尤其有益,尤其是在与附加硬件交互的系统中,例如工业自动化中使用的硬件。

AWS Kinesis视频流

AWS Kinesis视频流(KVS)简化了从连接设备到AWS的视频流的安全传输,以满足播放、分析、机器学习和其他处理需求。KVS提供了基础设施的自动供应和弹性扩展,可以有效地处理来自无数设备的流式视频数据。它提供了可通过用户友好的API访问的视频数据的持久存储、加密和索引。KVS支持实时和点播视频观看,支持利用计算机视觉和视频分析快速开发应用程序。在直播视频流传输管道的背景下,KVS作为处理和分发阶段的解决方案脱颖而出。

随着最近的更新,KVS还通过与AWS Rekognition、AWS SageMaker或其他自定义媒体处理应用程序的集成,增强了用于分析视频数据的可扩展机器学习管道的构建。

在典型的视频分析解决方案中,在第一英里贡献阶段运行的KVS Producer SDK将视频数据分割成片段,并将片段发送到KVS服务,在那里对其进行索引并存储在AWS S3中。对于机器学习推理工作流,KVS服务被配置为以指定的采样间隔和图像质量从源视频数据片段生成图像。这些图像也被放置在S3存储桶(数据存储斗)中,在那里它们可以用于下游分析。

与DeepStream不同,DeepStreak实时对视频数据进行推理,KVS提供了一套工具来索引和存储视频数据,以便在每张图像的基础上进行下游分析。虽然这可能会引入延迟,但这种方法允许在规模上进行更深入的分析。最终,在直播设置中添加智能层的位置取决于整体应用程序和目标。

个案研究

在最近的一次合作中,斯特朗(Strong)公司与一家体育和游戏公司合作,该公司希望通过智能视频分析实现几个裁判流程的自动化。与足球中的视频助理裁判系统类似,该系统将通过自动检测和跟踪运动员,并通过自动动作识别确保运动员遵守规定,从而加强现有的裁判实践。

问题设置

该解决方案需要轻松扩展到多个场地,从而消除了自定义摄像机设置的使用,而是选择直接从单个PTZ广播摄像机接收直播。出于同样的原因,边缘计算被排除在外,取而代之的是易于扩展的云计算。此外,必须在几秒钟内公布结果,以便对时间紧迫的主裁判有用。

解决方案

斯特朗(Strong)公司建立了一个与现有流媒体基础设施集成的实时视频分析管道,直接从交付管道的第一英里贡献阶段接收SRT流。智能视频分析层由一组在配备GPU的AWS EC2实例上运行的精心编排的服务组成,用于加速模型推理。在管道内,SRT流被解码并提供给多个TensorRT推理引擎,所有这些引擎都并行运行,用于检测和跟踪运动员以及执行动作识别。Kafka消费者服务控制推理执行,以实现事件之间的无缝转换。然后通过API将结果发布到仪表板上,供官员审查。

该解决方案实时产生可操作的结果,并自动化了以前繁琐的执法过程,在提高准确性的同时节省了最终用户的时间。根据设计,视频分析管道完全在云中执行,允许快速进入新的场馆,并允许多个场馆同时举办活动进行有效扩展。

结论和资源

智能视频分析应用程序是从视觉数据中提取洞察力的强大方法。随着从安全、制造到体育和零售等行业的广泛应用,很可能存在一些问题需要通过视频分析来解决。

原文出处

AI-Powered Streaming Vision: Transforming Real-Time Decisions with Video AnalyticsDiscover how AI-enhanced streaming is changing decision-making. Explore the convergence of machine learning and video analytics in real-time applications.icon-default.png?t=N7T8https://www.strong.io/blog/ai-for-real-time-video-streams

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/469948.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【故障排查】10分钟解决Quartz重复调度的疑难杂症

我司使用Apache DolphinScheduler作为调度框架很久了,感兴趣的小伙伴可以看看这些干货文章: 因为之前监控到会出现重复的调度的问题,所以此文记录排查重复调度问题的全过程,希望对社区其他的小伙伴能够起到抛砖引玉的作用&#x…

1.中医学习-总论

目录 1.为什么要学中医 2.什么是中医 介绍 中医例子1: 中医例子2: 中医最高境界“大道至简” 中医讲究的是本质 中医核心:阴阳、表里、寒热、虚实 ​编辑医不叩门 3.阴阳 1.一天中的阴阳 2.一年中的阴阳 3.阴阳之间的关系 4.阴阳四季的变化 …

JetBrains学生包续期

Pycharm进入显示your license has expired 这个意思是你的许可过期了,重新输入最新的激活码就可以了。 1. 说明我的JetBrains学生包需要进行续期了。首先登录JetBrains官网打开个人主页,点击Renew my Education Pack 2. 然后填写一系列信息,…

户用光伏OA管理系统——光伏企业管理的新利器

随着全球对可再生能源的重视和推广,光伏行业得到了快速的发展,为人们提供了清洁、可再生能源。户用光伏作为光伏行业中应用最为广泛的发电系统,可以安装在居民住宅等地。越来越多的人们对户用光伏的发展给予支持,给光伏企业管理带…

PHP+MySQL开发组合:多端多商户DIY商城源码系统 带完整的搭建教程以及安装代码包

近年来,电商行业的迅猛发展,越来越多的商户开始寻求搭建自己的在线商城。然而,传统的商城系统往往功能单一,无法满足商户个性化、多样化的需求。同时,搭建一个功能完善的商城系统需要专业的技术团队和大量的时间成本&a…

OpenCV4.9.0在windows系统下的安装

返回:OpenCV系列文章目录(持续更新中......) 上一章:将 OpenCV 与 Eclipse 结合使用(插件 CDT) 下一章:未发表 警告: 本教程可以包含过时的信息. 此处的描述已在 Windows 7 SP1 上…

FMQL45 XADC

通过PL自带的XADC可以读写温度,电压等,但是总是读的不对。开始查找FM_QL_bsp里面少了一个部分就是pl!添加,在ewp已经修改了,但是文件不存在,现在给补上了,有点奇怪,有的项目会自动生…

ConKI: Contrastive Knowledge Injection for Multimodal Sentiment Analysis

文章目录 ConKI:用于多模态情感分析的对比知识注入文章信息研究目的研究内容研究方法1.总体结构2.Encoding with Knowledge Injection2.1 Pan-knowledge representations2.2 Knowledge-specific representations 3.Hierarchical Contrastive Learning4.损失函数5.训…

发布镜像到阿里云仓库

发布上一篇Dockerfile实战-自定义的centos镜像。 1、登录阿里云 2、找到容器镜像服务 3、创建命令空间 4、创建镜像仓库 5、点击进入这个镜像仓库,可以看到所有的信息 6、根据操作指南测试推送发布 6.1登录阿里云 [rootzhoujunru home]# docker login --usernam…

【问题记录】自定义Prometheus exporter收集数据,Prometheus显示收集到数据,grafana未显示数据出来

问题背景: 使用golang编写Prometheus exporter,获取指定API Url返回值中的data值,把它做为自定义指标。 1、exporter 500ms自动更新一次data值 2、Prometheus的Graph界面输入自定义指标可以查询到值的变化 3、自定义指标最小时间是ms级别&…

es 集群安全认证

参考文档:Configure security for the Elastic Stack | Elasticsearch Guide [7.17] | Elastic ES敏感信息泄露的原因 Elasticsearch在默认安装后,不提供任何形式的安全防护不合理的配置导致公网可以访问ES集群。比如在elasticsearch.yml文件中,server…

数据在内存中的的存储

1.数据类型介绍 内置类型 char , short , int , long , float , double , long long (C99) long 类型的大小是 4 / 8 个字节,元素C语言规定 sizeof(long)> sizeof(int)就行。在32位平台上,long为4个字…

完整指南:如何使用 Stable Diffusion API

Stable Diffusion 是一个先进的深度学习模型,用于创造和修改图像。这个模型能够基于文本描述来生成图像,让机器理解和实现用户的创意。使用这项技术的关键在于掌握其 API,通过编程来操控图像生成的过程。 在探索 Stable Diffusion API 的世界…

循环链表的用法

7.设 数 组 data[m] 作 为 循 环 队 列 SQ 的 存 储 空 间 ,front 为 队 头 指 针 ,rear 为 队 尾 指 针 ,则 执 行 出 队 操 作 后 其 头 指 针 front 值 为 ( ) A.frontfront1 B.front(front1…

上位机图像处理和嵌入式模块部署(qmacvisual自己编写算法插件)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们说过,qmacvisual本身支持52个控件,但是指望这52个控件可以cover所有的应用场景,这也不太现实。另外&am…

【DBC专题】-11-使用Cantools将CAN/CANFD DBC自动生成C语言代码

目录 1 安装Python和Cantools 1.1 查看Python已安装的Package包 1.2 在Python中安装Cantools插件包 1.3 获取更多Cantools工具的更新动态 2 经典CAN/CANFD DBC自动生成C语言代码 2.1 批处理文件CAN_DBC_To_C.bat内容说明 2.2 经典CAN/CANFD DBC文件要求 2.3 如何使用生…

腾讯云k8s容器服务

1、新建一个集群 这个网址: 登录登录 - 腾讯云 2、选择第一个 3、名字随便起一个,然后基本默认就行 4、 组件配置直接跳过,信息确认,等待集群初始化,等10分钟左右(容器服务需要充点钱才行) 5…

瑞_JVM虚拟机_类的生命周期_初始化阶段 <clinit>

文章目录 1 JVM虚拟机概述2 类的生命周期2.1 加载阶段2.2 连接阶段2.3 初始化阶段\<client> ★★★★★2.3.1 案例一2.3.1.1 案例描述2.3.1.2 解析字节码指令 2.3.2 案例二2.3.3 小结2.3.4 代码中触发类的初始化的方式2.3.4.0 设置打印出加载并初始化的类2.3.4.1 方式一2…

three.js 鼠标左右拖动改变玩家视角

这里主要用到了 一个方法 obj.getWorldDirection(); obj.getWorldDirection()表示的获取obj对象自身z轴正方向在世界坐标空间中的方向。 按下 W键前进运动&#xff1b; <template><div><el-container><el-main><div class"box-card-left…

redis学习-List类型相关命令以及特殊情况分析

目录 1. lpush key value1 value2 ... 2. lrange key start end 3. lpop key num 4. rpush key value1 value2 ... 5. rpop key num 6. lindex key index 7. llen key 8. lrem key num value 9. rpoplpush key1 key2 10. lset key index value 11. linsert key before/after…