当前位置: 首页 > news >正文

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

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

相关文章:

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

AI-Powered Streaming Vision: Transforming Real-Time Decisions with Video Analytics 原著:弗朗西斯科冈萨雷斯|斯特朗(STRONG)公司首席ML科学家 翻译:数字化营销工兵 实时视频分析通过即时处理实时视频数据&…...

Avalon总线学习

Avalon总线学习 avalon总线可以分为: Avalon clock interface Avalon reset interface Avalon Memory mapped interface Avalon iterrupt interface Avalon streaming interface Avalon tri-state conduit interface Avalon conduit interface 1、Avalon c…...

Sentinel(熔断规则)

慢调用比例 慢调用比例( SLOM_REQUEST_RATTo ):选择以慢调用比例作为阈值,需要设置允许的慢调用RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,…...

Hive借助java反射解决User-agent编码乱码问题

一、需求背景 在截取到浏览器user-agent,并想保存入数据库中,经查询发现展示的为编码后的结果。 现需要经过url解码过程,将解码后的结果保存进数据库,那么有几种实现方式。 二、问题解决 1、百度:url在线解码工具 …...

Linux下安装Android Studio及创建桌面快捷方式

下载 官网地址:https://developer.android.com/studio?hlzh-cn点击下载最新版本即可 安装 将下载完成后文件,进行解压,然后进入android-studio-2023.2.1.23-linux/android-studio/bin目录下,启动studio.sh即可为了更加方便的使…...

【析】一类动态车辆路径问题模型和两阶段算法

一类动态车辆路径问题模型和两阶段算法 摘要 针对一类动态车辆路径问题,分析4种主要类型动态信息对传统车辆路径问题的本质影响,将动态车辆路径问题(Dynamic Vehicle Routing Problem, DVRP)转化为多个静态的多车型开放式车辆路径问题(The Fleet Size a…...

从基础入门到学穿C++

前言知识 C简介 C是一门什么样的语言,它与C语言有着什么样的关系? C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解…...

代码随想录算法训练营第二十四天|leetcode78、90、93题

一、leetcode第93题 class Solution { public:vector<string> restoreIpAddresses(string s) {int n s.size();vector<string> res;function<void(string, int, int)> dfs [&](string ss, int idx, int t) -> void {// 终止条件&#xff0c;枚举完&…...

Java学习笔记NO.20

Java流程控制 1. 用户交互 Scanner Java中的Scanner类用于获取用户输入&#xff0c;可以从标准输入&#xff08;键盘&#xff09;读取各种类型的数据。 import java.util.Scanner; public class UserInputExample { public static void main(String[] args) { Scanner sc…...

关系型数据库mysql(1)基础认知和安装

目录 一.数据库的基本概念 1.1数据 1.2表 1.3数据库 1.4 DBMS 数据库管理系统 1.4.1基本功能 1.4.2优点 1.4.3DBMS的工作模式 二.数据库的发展历史 2.1发展的三个阶段 第一代数据库 第二代数据库 第三代数据库 2.2mysql发展历史 三.主流数据库 四.关系型数据库和…...

WanAndroid(鸿蒙版)开发的第三篇

前言 DevEco Studio版本&#xff1a;4.0.0.600 WanAndroid的API链接&#xff1a;玩Android 开放API-玩Android - wanandroid.com 其他篇文章参考&#xff1a; 1、WanAndroid(鸿蒙版)开发的第一篇 2、WanAndroid(鸿蒙版)开发的第二篇 3、WanAndroid(鸿蒙版)开发的第三篇 …...

全国农产品价格分析预测可视化系统设计与实现

全国农产品价格分析预测可视化系统设计与实现 【摘要】在当今信息化社会&#xff0c;数据的可视化已成为决策和分析的重要工具。尤其是在农业领域&#xff0c;了解和预测农产品价格趋势对于农民、政府和相关企业都至关重要。为了满足这一需求&#xff0c;设计并实现了全国农产…...

堆排序(数据结构)

本期讲解堆排序的实现 —————————————————————— 1. 堆排序 堆排序即利用堆的思想来进行排序&#xff0c;总共分为两个步骤&#xff1a; 1. 建堆 • 升序&#xff1a;建大堆 • 降序&#xff1a;建小堆 2. 利用堆删除思想来进行排序. 建堆和堆删…...

使用DMA方式控制串口

本身DMA没什么问题&#xff0c;但是最后用GPIOB点灯&#xff0c;就是点不亮。 回到原来GPIO点灯程序&#xff0c;使用GPIOB就是不亮&#xff0c;替换为GPIOA就可以&#xff0c;简单问题总是卡得很伤。...

ModbusTCP转Profinet网关高低字节交换切换

背景&#xff1a;在现场设备与设备通迅之间通常涉及到从一种字节序&#xff08;大端或小端&#xff09;转换到另一种字节序。大端字节序是指高位字节存储在高地址处&#xff0c;而小端字节序是指低位字节存储在低地址处。在不动原有程序而又不想或不能添加程序下可选用ModbusTC…...

OpenvSwitch VXLAN 隧道实验

OpenvSwitch VXLAN 隧道实验 最近在了解 openstack 网络&#xff0c;下面基于ubuntu虚拟机安装OpenvSwitch&#xff0c;测试vxlan的基本配置。 节点信息&#xff1a; 主机名IP地址OS网卡node1192.168.95.11Ubuntu 22.04ens33node2192.168.95.12Ubuntu 22.04ens33 网卡信息&…...

GPT能复制人类的决策和直觉吗?

GPT-3能否复制人类的决策和直觉&#xff1f; 近年来&#xff0c;像GPT-3这样的神经网络取得了显著进步&#xff0c;生成的文本几乎与人类写作内容难以区分。令人惊讶的是&#xff0c;GPT-3在解决数学问题和编程任务方面也表现出色。这一显著进步引发了一个问题&#xff1a;GPT…...

权限设计种类【RBAC、ABAC】

ACL 模型&#xff1a;访问控制列表 DAC 模型&#xff1a;自主访问控制 MAC 模型&#xff1a;强制访问控制 ABAC 模型&#xff1a;基于属性的访问控制 RBAC 模型&#xff1a;基于角色的权限访问控制 一、简介前三种模型&#xff1a; 1.1 ACL&#xff08;Access Control L…...

C语言经典面试题目(十九)

1、什么是C语言&#xff1f;简要介绍一下其历史和特点。 C语言是一种通用的高级计算机编程语言&#xff0c;最初由贝尔实验室的Dennis Ritchie在1972年至1973年间设计和实现。C语言被广泛应用于系统编程、应用程序开发、嵌入式系统和操作系统等领域。它具有高效、灵活、可移植…...

VSCode 远程调试C++程序打开/dev/tty设备失败的问题记录

概述 因为需要协助同事调试rtklib中的rtkrcv程序&#xff0c;一直调试程序都是用了vscode&#xff0c;这次也不例外&#xff0c;但是在调试过程中&#xff0c;发现程序在打开当前终端(/dev/tty)的时候&#xff0c;总是打开失败&#xff0c;返回的错误原因是“No such device o…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

如何在Windows本机安装Python并确保与Python.NET兼容

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...