AIGC音视频工具分析和未来创新机会思考

编者按:相较于前两年,2023年音视频行业的使用量增长缓慢,整个音视频行业遇到瓶颈。音视频的行业从业者面临着相互竞争、不得不“卷”的状态。我们需要进行怎样的创新,才能从这种“卷”的状态中脱离出来?LiveVideoStack 2023上海站邀请到了PPIO边缘云的创始人王闻宇,和我们分享了他针对这一问题进行的思考。本次分享包括近年音视频行业的分析、国外4款AIGC应用工具介绍、最新论文情况介绍,以及王闻宇对行业的看法和展望,以期为音视频从业者提供更具广度的行业视角。

文/王闻宇

整理/LiveVideoStack

大家好,今天有幸再次来到LVS的讲台给大家做分享。今天主要分享国外比较出名的音视频工具及理论依据,以及一些视频AIGC相关最新论文的情况,还有我对行业情况的思考。

我是王闻宇,现任PPIO边缘云联合创始人和CTO。从业音视频行业多年、之前PPTV网络电视创业团队成员,也是架构师。现在在做PPIO边缘云,是以提供算力为核心的服务,主要服务音视频传输,转码,云端渲染和AIGC等业务。下面这张图片是我用AIGC做的照片。

56109679dc7e45a40e93e7260b49c1a3.png

-01-

发生了什么

首先,2023年发生了什么事?

这张图摘自《2023中国网络视听发展研究报告》。可以明显看到,整个音视频行业的使用量已经达到了增长缓慢的极限。比起22年底,21年底用户人数只增加了一个百分点。22年产业的市场规模的增长速度也只有4.4个百分点。整个音视频行业遇到了瓶颈,开始进入一个很缓慢的时代。

这是我们音视频行业的从业者面临着“卷”的根源,大家都在相互竞争。我们怎么样创新才能从这种“卷”中出来?

ab3507c2037edeabed23515d021ada40.png

过去一年,世界发生了什么?请看下图,这是ChatGPT,它达到一个亿的用户只用了两天的时间,超过了历史上所有的APP,甚至包括Tiktok,Instagram,Snapchat,Facebook等。

d7fe63f417c85363848824e9b81a3843.png

再看下图,Stable Diffusion成为历史上增速最快的项目。和它对标的项目是比特币、以太坊、kafka、spark等知名项目。而且,Stable Diffusion基本上是垂直的线,一天时间就达到了几万关注。

这就是这次的十倍变化要素,AI的魅力。

这里回溯一下AI的发展过程:①在20世纪50年代,就有了基于规则的少量数据处理;后来80年代,基于统计学发展出了机器学习;②21世纪后,伴随显卡的性能提升,神经网络,深度学习逐步得到应用;③特别是2014-2017年,神经网络得到一系列的发展,包括CNN卷积神经网络RNN、循环神经网络、VAE、GAN生成对抗网络等,AI在很多领域有了落地的应用。④直到2017年,Transfarmer的伟大发明,带领我们进入了今天大语言模型的时代。⑤后来在2020年,Diffusion的发明,非常惊艳的生成图片效果,点燃了AIGC绘画的的浪潮。

那么视频在什么时代呢?我的看法是视频可能离走过这个鸿沟还有一定距离,这是在我分析过国外的APP后得出的想法。

3735d3a143e91c3ba733e77a23a034a1.png

接下来我给大家分享4款AIGC的应用。

-02-

音视频应用AIGC在萌芽

第一款应用是D-ID,它的核心是实现面部的动画。

2d0122d2642a827361ffce798fe9636a.png

2b554d99b2f747cbda02e7988d71008b.png

这是对他们公司做的分析,包括融资和创始人的经历。国外音视频的创业者并不都是名校毕业生。中国人只要再努力一下,是很容易超越国外的产品的。

d563e9898a4e26cf6564fa2ac21a4102.png

关于技术的实现,在他们CEO的一篇演讲中有提到如何将声音和嘴型进行对齐的内容,还提到了一种音频驱动人脸的全神经辐射的技术。

它的本质是把一个图像从2D生成3D的建模过程,但是文章中没有提到具体是怎么做的,我们根据AD-NeRF进行相关的假设。

AD-NeRF这篇资料讲述了音频驱动人脸的技术原理。AD-NeRF是一种由语音信号直接生成说话人视频的算法,仅需要目标人物几分钟的说话视频,该方法即可实现对该人物超级逼真的形象复刻和语音驱动。首先利用人脸解析方法将整个训练画面分为三部分,分别是背景、头部和躯干。其次,通过头部的前景和背景的后景去训练头部部分模型。然后,通过头部部分隐函数生产的图像和背景作为后景,再把躯干作为前景,去训练躯干部分的模型。

同时,声音部分也作为AD-NeRF模型的一个新的特征输入,通过DeepSpeech的方法,将声音转化成29维的特征数据,输入到AD-NeRF模型当中。

在生成图像的时候,通过对头部模型和躯干模型输入相同的特征,其中包括音频特征和姿态特征,来完成AD-NeRF模型的推理。在最终立体渲染图像的过程当中,首先采用头部模型积累像素的采样密度和RGB值,把渲染好的头部图像贴到静态背景上,然后躯干模型通过预测躯干区域的前景像素来填充缺失的躯干部分。通过以上的方法,AD-NeRF实现了音频驱动人脸当中头部与上身运动一致,并让产生动作与表情非常自然。

5198aaf26ca73d14332be4d2b20e9295.png

第二个分享的是Wonder Studio AI。它的两位创始人不是计算机工程师,一个是艺术家,一个是《头号玩家》的演员。它是在电影中或视频中,把一个真实的人换成另一个真实的人或数字人。

2655125950dc74c67b01a898f8dc221b.png

这个项目的融资不多,但做的东西非常惊艳。两位创始人都是电影制片人,还有一些顾问共同实现这个体系。有两篇文章提到他们项目的实现方法,一篇是他们的官方文章,另一篇是国内一位博主对他们进行的分析。

要做到视频内CG角色的实时替换,首先利用Opnepose等人体姿态估计算法对人物的3D姿态进行捕捉,并将其与建模好的CG模型进行绑定。其次,由于选定人物与CG模型在视频中所占的空间环境不同,因此需要对选定人物的轮廓进行精准识别,并经过一定的处理让选定人物仿佛在原视频中没有出现过一般,这里需要采用人物擦除算法。

f08afb1f5af50124bf1f92d7ddf5dabe.png

目前,由清华团队提出的Inpaint Anything能够轻松实现这一需求。该算法基于Meta开源语义分割算法Segment Anything Model(SAM)对目标人物轮廓进行精准识别,生成Mask,再利用图像生成算法LaMa或stable Diffusion能够实现对Mask的图像内容进行自定义填充。

d76a223633262cb691335454a54435ae.png

但Wonder Studio官方没有提到他们的方案具体是怎么实现的,以上是我就这个技术本身做的想法。

c5d7943a764c86ec72a24043037ff48b.png

第三个工具是AIGC的官方应用,叫做Runway,它的定位是新一代的艺术,也是一个2c的产品。它提供了一个平台,可以对视频进行风格编辑,还有一系列的工具。它分为两代:Gen1和Gen2。Gen1只能视频转化成视频,视频加上文字最后转化为视频。

6cd1cf5f1af6bda3b7c397145efe84bb.png

这家公司的融资背景非常深厚,在过去几年紧跟AIGC的浪潮及爆发性场景的应用。值得注意的是,它的三位创始人员都是艺术家。而我们国内创业或公司创新的人都是工程师或者学术方面的人员。这家公司都是艺术家创业,可见他们更注重做出来的东西的感受。这也体现了东西方文化上的差异。

ef6d51f4d0b757f41c0f7bb4a05afdac.png

已有的研究中表明CLIP的图像embedding对图像内容在图像中的位置和形态不敏感,而更关注内容本身,因此它是与深度这一结构信息较为“正交”的,使得Gen-1可以将图像解耦为彼此干扰较小的结构信息和内容信息。

Gen-1和Stable Diffusion路径很像,把中间的竖线去掉,基本上就是Stable Diffusion的架构。它把一个原始的视频形成画面,图像的深度图作为结构信息、CLIP编码器的图像embedding作为内容信息,在隐空间进行扩散模型的训练。生成的时候也是把输入的文本通过CLIP方式转化回去,最后再进行干预,就能呈现视频的结果。不同的是,它还运用了图片的模式转化,即MiDaS,把图片生成一个框架,再干预这个环节。大概的技术原理是用文本干预视频的过程,从而得出最后的效果。

https://arxiv.org/abs/2302.03011这篇论文是他们的官方论文。这个应用思路其实比较简单,如果大家要做也不会很困难。

7aeaa2ef8ea8bbbedbe4e6cac6cce8f4.png

第四个工具是Rewind。这个工具特别厉害,很遗憾的是它只能在苹果电脑上使用。它把大家日常工作的内容全部录下来,整理后再通过GTP进行对接。这个工具严格来说不是完整的视频应用,但它是个类视频应用,我是它的重度用户。可以通过回拉里面的进度条得知自己今天做的任何事,里面的文本也是可以摘出来的。

dcb684d825d4c3bd95b7a14ac404e865.png

这个公司很有意思,Altman投了2轮,种子轮和天使轮,另外还拿到了很多知名的投资。

c86237fe0af1fa98dfe8d8cb3ca5063a.png

这个工具很有创意,它和音视频技术关系不大。核心点是调用了苹果的M1和M2芯片的接口,对显示的内容做OCR,再把OCR后的内容用文本方式存起来,

另外,官方宣称它用了H.264技术进行压缩,来同时把视频录制了下来。(但是这里我是持怀疑的,能把视频大小压缩到70倍,但我觉得H.264的技术还有些挑战)

最后,再把OCR的文本通过向量工程的方式和Chatgpt对接,从而具备了智能能力。当你问它(Rewind)你做了什么,它通过向量工程向Chatgpt调API来完成这一过程,所以它基本可以帮你总结出你每天都做了什么,你之前遇到了什么问题。它能够对你的日常工作进行归类,这是我用这个工具的原因。

其实AIGC视频工具还有很多,我这里讲的4个是比较典型的使用场景。

-03-

视频生成研究最新趋势

另外谈谈我对视频生成技术的学习和研究。

f3a7e8ece13cc2d29ae6eb024a721014.png

生成的本质是什么?我认为生成的本质是高维空间建立映射,不论是文字、图片,还是视频、音频,最终都会转化为数学问题,并在高维空间中建立起映射。而人脑正是因为能够建立起这种高维的映射,才能形成一定的智能。

6d7f62c2aa83abcb02b9cac8e507881d.png

前面也提到的,CLIP是非常关键的技术,是StableDiffusion的子模型,打通了文本和图像的映射关系。CLIP的原理是对文本和图片分别通过Text Encoder和Image Encoder输出对应的特征,然后在这些输出的文字特征和图片特征上进行对比学习,再将它进行映射。

为了训练CLIP,OpenAI从互联网收集了共4个亿的文本-图像对,论文称之为WIT(Web Image Text)。WIT质量很高,而且清理得非常好,其规模相当于JFT-300M,这也是CLIP如此强大的原因之一。

7274f833ecc2d1e0223479a42097ae85.png

这是谷歌的一篇论文,讲的是视频的Diffusion Model,它可以理解为是StabDiffusion的变种,它在StableDiffusion的每个过程中都引入了一个时间维度t,以实现时间注意力机制,使得它生成的画面之间有一定的联系。

为了使扩散模型适用于视频生成任务,这篇论文提出了3D UNet,该架构使用到了space-only 3D卷积和时空分离注意力。具体来说,该架构将原UNet中的2D卷积替换成了space-only 3D卷积(space-only 3D convolution)。随后的空间注意块仍然保留,但只针对空间维度进行注意力操作,也就是把时间维度flatten为batch维度。在每个空间注意块之后,新插入一个时间注意块(temporal attention block),该时间注意块在第一个维度即时间维度上执行注意力,并将空间维度flatten为batch维度。论文在每个时间注意力块中使用相对位置嵌入(relative position embeddings),以便让网络能够不依赖具体的视频帧时间也能够区分视频帧的顺序。这种先进行空间注意力,再进行时间注意力的方式,就是时空分离注意力。

这种时空分离注意力的UNet可以应用在可变序列长度上,这种时空分离注意力的方式有一个好处是可以对视频和图片生成进行联合建模训练。就是说可以在每个视频的最后一帧后面添加随机的多张图片,然后通过掩码的方式来将视频以及各图片进行隔离,从而让视频和图片生成能够联合训练起来。

ba78e160f3a8b2077213e06311b369c8.gif

但是这个机制其实比较弱,只能生成一些非常简单的画面。

近期有两篇论文值得一提,一个是Diffusion over Diffusion,这篇论文的定位是关于生成长视频的思考。Diffusion over Diffusion主要解决的问题是长视频之间前后关联的问题。之前的视频基本都是自回归的架构,生成得比较慢,因为它是串行的。

1ad446e173d06733439db6a9e410b1ba.png

它的特点是什么?它为什么要Diffusion over Diffusion?因为它是一种分层结构的扩散模型,通过一层层扩散生成视频。

Diffusion over Diffusion的视频生成过程是一个“从粗到细”的视频生成过程,先通过在全局扩散模型(Global Diffusion)中输入文字来生成整个时间范围内的关键帧,然后在局部扩散模型(Local Diffusion)中输入文字和上一层Diffusion生成的两张图片,递归地生成填充附近帧之间的内容,最终生成长视频。

这种分层结构的设计使模型能够直接在长视频上进行训练,不仅消除了视频生成领域中训练短视频与推理长视频之间差距,也确保了视频情节的连续性,同时也能极大的提升了生成效率。

通过官网的演示资料可以看到,它下面写的是一个prompt演讲,根据prompt生成一个稍微长一点的视频内容。在prompt换了之后,它又能生成一个稍微更长点的、更多样化的(内容)。这就是它的演示结果。

aed43c4085ff4c489a1029a90fa4bbf2.png

下面这篇论文的名字叫Any-to-Any,这是一篇综合图像、语音、视频和文本的多模态论文。其中Any to any的含义是,你能将上述模态数据进行任意组合的输入,得到任意组合的输出。例如输入的时候可以根据图片、文本、声音,最后生成一个带语音的视频。

40e47ab20a444660c22e97a53112d099.png

这篇论文提出了模型可组合扩散(Composable Diffusion,CoDi),这是第一个能够同时处理和生成任意组合模态的模型。它具体是怎么做的?

首先这篇论文为了对齐不同模态之间的特征,设计了Bridging Alignment(特征桥接对齐)方式,采用CLIP为基准,冻结CLIP文本编码器权重,再使用对比学习在文本-音频、文本-视频数据集上进行训练,使得音频、视频编码器提取的特征能对齐CLIP预训练模型中文本编码器提取的文本特征。

第二步,为每种模态(例如文本、图像、视频和音频)训练一个潜变扩散模型(Latent Diffusion Model,LDM)。这些模型可以独立并行训练,利用广泛可用的特定模态训练数据(即具有一个或多个模态作为输入和一个模态作为输出的数据)确保出色的单模态生成质量。

最后,通过为每个扩散器添加交叉注意力模块和一个环境编码器V来实现的,将不同LDM的潜变量投影到共享的潜空间。之后再固定LDM的参数,只训练交叉注意力参数和V。由于不同模态的环境编码器是对齐的,LDM可以通过插值表示的V与任何组合的共同生成模态进行交叉注意力。这使得CoDi能够无缝地生成任何模态组合,而无需对所有可能的生成组合进行训练。

b0bd79fe7ca588dd5e59995961ce402c.gif

官网的演示很震撼。例如这三个是带有声音的视频。

9a409a63e2f390250eb5508968be2308.gif

这三个分别是文本、图片、下雨的声音。这三个结合起来,就生成了一个泰迪熊在雨中过街的画面。网上有一些评论,说这篇论文真正运用的时候差距很大,因为多模态需要大量的数据支持才可能做好。它还是学术级,离跨越鸿沟还有很远的距离。

-04-

未来音视频创新机会在哪

我接下来的思考是,未来音视频AIGC成熟且能大规模应用在什么时候?

b873ce8f8f09cd9eea66b4b05655c8c0.png

这个图摘自红杉的报告。红色部分属于很不成熟的,黄色部分属于正在发展的,绿色部分就是成熟的。在这个预测里可以看到,文本和code在2023年能够做到很成熟,但是图片可能要到25年才能做到非常可控、可产品化,3D和视频预测要到2030年才能成熟。

不管是应用还是论文,基本上都是基于Diffusion的改良,甚至很多模型都是基于Diffusion模型的一种扩散,今天的很多更高级的视频、3D的生成框架,也离不开扩散。如果某天视频真的要参与化的时候,是不是需要有一种更原生的底层逻辑的突破、比扩散还高一个维度的突破才能做到?但是今天我们基于已有的技术,加上一些工程化的努力,我相信应该可以做很多东西了。

关于音视频的应用,如果和行业数据相关,我认为用好开源,加上一些工程上的产品级创新,再结合大模型,把向量工程、提示工程做好,基本就能解决大量的需求了。

-05-

关于PPIO边缘云

最后介绍一下我们的PPIO边缘云。PPIO 于 2018年由 PPTV 创始人姚欣和我联合创立,作为中国领先的独立边缘云服务提供商,PPIO在全国30多个省,超过1000多个县市及区域,为客户提供符合低时延、高带宽、海量数据分布处理需求的边缘云计算服务和解决方案。

ad234113e0f5f6c89e6906268ade285f.png

PPIO的核心是以算力为本。这个图是运营商的骨干图,能够帮助理解边缘带宽。图中拿移动来举例,我们覆盖的范围并不是很大很多,而是相对分散的一些节点,但是这种节点的SOA也是可保证的。

6bea895ca6b63f4f79972ea0d1c48ffd.png

从城域网的角度看,备用节点覆盖在BRAS这一层,甚至会放置在MEC。

把算力资源放下后,就能做一些边缘的推理服务。我们可以提供基于裸金属和GPU容器的的服务,同时也能提供上面调度的逻辑。另外我们还可以支持推理加速的框架,例如Oneflow、AITemplate、TensorRT等。

8b0ddd676630ffa9dcec981e5b718118.png

基于 PPIO 在边缘算力上的优势,我们构建了专门适用于 AI 推理场景的架构。它主要包含三个层面的服务:裸金属,容器,推理网关。

• 裸金属服务,主要适用于大模型的场景,例如:一个大语言模型的推理服务需要占用 4~10 张显卡,甚至要多机联合推理的情形。客户可以直接通过 IaaS 控制台或 OpenAPI 来申请、启动、停止和释放裸金属机。

• 容器服务,主要适用于可以灵活调度的场景,一般这类模型相对较小,一个推理服务实例只需要 1 张左右显卡,例如 StableDiffusion 的推理。容器服务实例由 PPIO k8s@Edge 系统管理,该系统保持与原生 k8s 兼容,可以满足客户按需弹性调度的需求。

• 推理网关服务,是上层用户请求层的智能调度服务,它可以根据后端推理实例的负载情况,动态地将用户的请求调度到最合适的实例上,并且它支持客户设置个性化的调度策略。另外当部分节点或实例故障时,该网关也可以智能地将其剔除,避免用户请求打到该实例上,对于已经调度到这些实例上的请求,网关将自动将这些请求重新转发到其他健康实例上去处理,整个过程对于请求方完全无感。

此外,在服务客户的过程中,我们发现有些时候显卡在接受较大的用户请求时,偶尔会出现显存不足的情况。比如 在 3090 24G 上,刚好有一个模型要跑 30G 多一些怎么办?这时候很容易想到,将一部分内存来“充当”那显存使用,临时性地将显存的内容搬运到内存里,当这些显存的内容需要被访问时再搬回去,这样可以让上层的应用勉强能跑起来。为此我们基于 Nvidia 的 Unifed Memory 和 Cuda 劫持技术,构建了用户态的虚拟 GPU,实现了这一功能。该项技术使得推理服务在处理用户的较大请求过程中,显存的问题得到了极大的缓解。但是该技术也会使得显存和内存之间的 swap 操作变多,从而影响性能,因此在对性能有较高要求的场景,不建议设置太大的虚拟显存。

15a99eb174a54ac07247ead738120d50.png

我们也有基于 Stable Diffusion WebUI 的一些应用,采用界面和算力分离的架构,不用 GPU,不用安装 WebUI,入门门槛低,也容易整合到用户自有的工作流中。用户也不用下载和维护模型,一方面我们已经集成了很多模型了,另一方面用户还可以添加自己的模型。

b92e6875e02ab6d9cc92ebdba76057e0.png

我们还提供了基于 Stable Diffusion 的 AI 图片生成和图片编辑的 API 平台,基本上从工程阶段已经做到了快、便宜,同样也能够支持各种模型,也能实现 文生图,图生图,ControlNet,Upscaling,Inpainting,Outpainting,抠图,和擦除等系列功能,可以满足游戏素材生成,电商图片的修改等场景。

7ce5f76ad7f5835b4fd933a2e5030fbe.png

另外,我们也针对一些场景实现了主体固定的解决方案,就是能生成一系列图片,但保持主体不变、背景变换,特别适合当前流行的儿童插画,小说配图生成等场景。

最后,我最近经常也在思考,我们人类为什么有智能。再看看 AI 的高速发展,距离我们人类越来越近了,现在AI的原理越来越和我们的大脑近似,也是类似的矩阵、向量的计算,所以我顿时感觉人类的智慧没有想象中那么伟大。

或者再过十年,计算机超越人类是完全有可能的。而我们作为音视频行业从业者,需要积极拥抱新的技术创造更大的价值。


3db1a1fbfe90a950ef95d42944d323dd.jpeg

LiveVideoStackCon是每个多媒体技术人的舞台,如果您在团队、公司中独当一面,在某一领域或技术拥有多年实践,并热衷于技术交流,欢迎申请成为LiveVideoStackCon的出品人/讲师。

扫描下方二维码,可查看讲师申请条件、讲师福利等信息。提交页面中的表单完成讲师申请。大会组委会将尽快对您的信息进行审核,并与符合条件的优秀候选人进行沟通。

c7c240c1739a0a26f4e4a037a43edfc9.jpeg

扫描上方二维码 

填写讲师申请表单

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

扩散模型实战(四):从零构建扩散模型

推荐阅读列表: 扩散模型实战(一):基本原理介绍 扩散模型实战(二):扩散模型的发展 扩散模型实战(三):扩散模型的应用 本文以MNIST数据集为例,从…

基于Mysql+Vue+Django的协同过滤和内容推荐算法的智能音乐推荐系统——深度学习算法应用(含全部工程源码)+数据集

目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境MySQL环境VUE环境 模块实现1. 数据请求和储存2. 数据处理计算歌曲、歌手、用户相似度计算用户推荐集 3. 数据存储与后台4. 数据展示 系统测试工程源代码下载其它资料下载 前言 本项目以丰富的网易云音乐数据为基…

一文彻底理解时间复杂度和空间复杂度(附实例)

目录 1 PNP?2 时间复杂度2.1 常数阶复杂度2.2 对数阶复杂度2.3 线性阶复杂度2.4 平方阶复杂度2.5 指数阶复杂度2.6 总结 3 空间复杂度 1 PNP? P类问题(Polynomial)指在多项式时间内能求解的问题;NP类问题(Non-Deterministic Polynomial)指在…

深入理解分布式架构,构建高效可靠系统的关键

深入探讨分布式架构的核心概念、优势、挑战以及构建过程中的关键考虑因素。 引言什么是分布式架构?分布式架构的重要性 分布式系统的核心概念节点和通信数据分区与复制一致性与一致性模型负载均衡与容错性 常见的分布式架构模式客户端-服务器架构微服务架构事件驱动…

python从入门到精通——完整教程

阅读全文点击《python从入门到精通——完整教程》 一、编程入门与进阶提高 Python编程入门 1、Python环境搭建( 下载、安装与版本选择)。 2、如何选择Python编辑器?(IDLE、Notepad、PyCharm、Jupyter…) 3、Pytho…

JetBrains IDE远程开发功能可供GitHub用户使用

JetBrains与GitHub去年已达成合作,提供GitHub Codespaces 与 JetBrains Gateway 之间的集成。 GitHub Codespaces允许用户创建安全、可配置、专属的云端开发环境,此集成意味着您可以通过JetBrains Gateway使用在 GitHub Codespaces 中运行喜欢的IDE进行…

JavaWeb-Listener监听器

目录 监听器Listener 1.功能 2.监听器分类 3.监听器的配置 4.ServletContext监听 5.HttpSession监听 6.ServletRequest监听 监听器Listener 1.功能 用于监听域对象ServletContext、HttpSession和ServletRequest的创建,与销毁事件监听一个对象的事件&#x…

面试热题(不同的二分搜索树)

给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 经典的面试题,这部分涉及了组合数学中的卡特兰数,如果对其不清楚的同学可以去看我以前的博客卡特兰数 …

安防监控/视频集中存储/云存储平台EasyCVR v3.3增加首页告警类型

安防监控/视频集中存储/云存储EasyCVR视频汇聚平台,可支持海量视频的轻量化接入与汇聚管理。平台能提供视频存储磁盘阵列、视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、平台级联、H.265自动转码等…

开学有哪些好用电容笔值得买?ipad触控笔推荐平价

因为有了Apple Pencil,使得iPad就成了一款便携的生产力配件,其优势在于,电容笔搭配上iPad可以让专业的绘画师在iPad上作画,而且还能画出各种粗细不一的线条,对于有书写需求的学生党来讲,还是很有帮助的。但本人不敢想像…

基于CNN卷积神经网络的口罩检测识别系统matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ............................................................ % 循环处理每张输入图像 for…

PHP基础

PHP&#xff08;外文名:PHP:Hypertext Preprocessor&#xff0c;中文名&#xff1a;“超文本预处理器”&#xff09;是一种免费开源的、创建动态交互性站点的强有力的服务器端脚本语言 <h1>My Name is LiSi!</h1> <script>console.log("This message is…

星际争霸之小霸王之小蜜蜂(四)--事件监听-让小蜜蜂动起来

目录 前言 一、监听按键并作出判断 二、持续移动 三、左右移动 总结&#xff1a; 前言 今天开始正式操控我们的小蜜蜂了&#xff0c;之前学java的时候是有一个函数监听鼠标和键盘的操作&#xff0c;我们通过传过来不同的值进行判断&#xff0c;现在来看看python是否一样的实现…

深度学习最强奠基作ResNet《Deep Residual Learning for Image Recognition》论文解读(上篇)

1、摘要 1.1 第一段 作者说深度神经网络是非常难以训练的&#xff0c;我们使用了一个残差学习框架的网络来使得训练非常深的网络比之前容易得很多。 把层作为一个残差学习函数相对于层输入的一个方法&#xff0c;而不是说跟之前一样的学习unreferenced functions 作者提供了…

SRM系统询价竞价管理:优化采购流程的全面解析

SRM系统的询价竞价管理模块是现代企业采购管理中的重要工具。通过该模块&#xff0c;企业可以实现供应商的询价、竞价和合同管理等关键环节的自动化和优化。 一、概述 SRM系统是一种用于管理和优化供应商关系的软件系统。它通过集成各个环节&#xff0c;包括供应商信息管理、询…

算法leetcode|72. 编辑距离(rust重拳出击)

文章目录 72. 编辑距离&#xff1a;样例 1&#xff1a;样例 2&#xff1a;提示&#xff1a; 分析&#xff1a;题解&#xff1a;rust&#xff1a;二维数组&#xff08;易懂&#xff09;滚动数组&#xff08;更加优化的内存空间&#xff09; go&#xff1a;c&#xff1a;python&a…

MySQL 数据库存储引擎

一、存储引擎概念 数据库存储引擎是数据库底层软件组件&#xff0c;数据库管理系统--DBMS使用数据引擎进行创建、查询、更新和删除数据操作。不同得存储引擎提供不同得存储机制、索引技巧、锁定水平等功能&#xff0c;使用不同得存储引擎&#xff0c;还可以获得特定的功能。现…

快解析Linux搭建FTP服务器:轻松实现文件传输

在Linux操作系统中&#xff0c;搭建FTP服务器是一种常见且重要的操作。快解析提供了便捷的解决方案&#xff0c;帮助用户快速搭建FTP服务器&#xff0c;实现高效的文件传输和共享。本文将介绍Linux搭建FTP服务器的定义、作用以及其独特的优势&#xff0c;助您了解并利用这一强大…

A - Bone Collector(01背包)

Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to the grave … The bone collector had a big bag with a volume of V ,and along his tr…