基于TSM模块的打架斗殴识别技术

目  录

1 引言.... 4

1.1 研究背景与意义.... 4

1.2 研究现状综述.... 5

1.3 研究内容.... 6

1.3.1 图像预处理的优化.... 6

1.3.2 TSM模块的应用.... 6

1.3.3 视频分类的设计与实现.... 6

2 关键技术与方法.... 8

2.1 TSM算法与模型选择.... 8

2.1.1 TSM算法原理.... 8

2.1.2 PP-TSM... 9

2.1.3 mobilenetv2和tsm模块.... 9

2.2 图像预处理优化.... 10

2.2.1 边缘锐化增强.... 10

2.2.2 自适应光照亮度处理.... 11

2.2.3 基于二维伽马函数的自适应光照强度校正算法.... 12

3 系统设计与实现.... 14

3.1 系统设计.... 14

3.2 视频分类的设计理念.... 14

3.2.1 时空特征的综合捕获.... 14

3.2.2 轻量化与实时性.... 15

3.2.3 数据增强与模型鲁棒性.... 15

3.3 数据处理流程.... 15

3.3.1 视频抽帧.... 15

3.3.2 帧筛选和排序.... 16

3.3.3 图像预处理.... 16

3.3.4 特征提取准备.... 16

3.4 关键模块的实现.... 16

3.4.1 算法步骤.... 17

3.4.2实现细节.... 17

4 实验结果与分析.... 18

4.1 实验设置.... 18

4.1.1 环境设置.... 18

4.1.2 参数配置.... 18

4.2 实验结果.... 18

4.3 结果分析.... 19

4.3.1 技术有效性.... 19

4.3.2 存在的局限性.... 19

5 结论与未来工作.... 20

5.1 结论.... 20

5.2 未来研究方向.... 20

致谢.... 22

参考文献.... 23

1 引言

1.1 研究背景与意义

在当前社会环境中,公共安全已成为人们极为关注的问题,其中之一便是如何有效预防和及时响应公共场所的暴力行为,特别是打架斗殴事件。公共安全监控系统作为预防和应对公共安全事件的重要技术手段,其重要性不言而喻。在这一背景下,打架斗殴识别技术的研发和应用显得尤为重要。该技术能够实时监控视频流中的异常行为,一旦检测到打架斗殴行为,便能立即通知安保人员进行干预,从而在很大程度上防止事件的升级,保护公众安全和财产安全。

传统的视频监控系统主要依赖于人工观察,这不仅效率低下,而且容易受到人的主观因素影响,如视觉疲劳等,从而大大降低了识别的准确性和实时性。随着人工智能技术的发展,利用计算机视觉进行自动识别已成为可能。其中,TSM(Temporal Shift Module,时间位移模块)算法作为一种先进的动作识别技术,其在打架斗殴识别中的应用尤为突出。

TSM算法通过在卷积神经网络中引入时间位移操作,使得网络能够在保持计算效率的同时,有效捕捉视频序列中的时间动态信息。这种设计让TSM算法在处理时间序列数据(如视频流)时,既能考虑到时间维度的变化,又能有效利用空间信息,从而在动作识别任务中取得了显著的成果。对于打架斗殴识别来说,TSM算法能够从复杂的视频场景中准确识别出暴力行为的动作特征,即使在光线变化、遮挡等不利条件下也能保持较高的识别准确率。

此外,TSM算法的高效性也使得其在实时视频监控系统中的应用成为可能。它能够在不显著增加计算负担的前提下,实时处理视频流,及时发现并报警打架斗殴行为,这对于提高公共安全监控系统的响应速度和减少人力资源的依赖具有重要意义。

综上所述,打架斗殴识别在公共安全监控系统中的重要性不仅体现在其能够帮助预防和减少公共安全事件的发生,还在于它能够提升事件响应的效率和准确性。TSM算法的应用,以其独特的时间位移机制和高效的处理能力,在此领域中展现出巨大的潜力和价值,为公共安全监控系统提供了一种高效、准确的技术支持。

1.2 研究现状综述

动作识别技术是计算机视觉领域的一个重要研究方向,其目标是让计算机能够自动识别视频或图像序列中的人类动作。随着深度学习技术的迅猛发展,动作识别技术在近年来取得了显著的进展,尤其在视频处理和图像预处理方面的研究成果不断刷新。

一个典型的行为识别系统包含两主要个部分,行为的表征和行为的分类。行为的表征就是通过一些方法将一个视频用一个向量或一系列向量表示,而行为分类则是通过这些向量来进行行为的分类,这和图像识别的方法很像,只不过我们不再是识别单张图片,而是要去识别一个图片序列,而且图片之间具有一定的关系。[1]

在视频处理方面,动作识别技术的核心挑战之一是如何有效捕捉并分析视频数据中的时间信息和空间信息。传统方法依赖于手工提取的特征和简单的时空特征融合策略,但深度学习的引入极大地推动了这一领域的发展。近期,基于卷积神经网络(CNN)和循环神经网络(RNN)的模型已成为主流,其中3D CNN由于能够直接从原始视频帧中学习时空特征,成为动作识别研究的热点。此外,为了更高效地处理时间信息,时间卷积网络(TCN)和时间位移模块(TSM)等新型结构被提出,这些模型通过创新的时间信息处理方式,显著提高了动作识别的准确性和效率。

图像预处理是动作识别中另一个关键环节,其质量直接影响最终识别的效果。为了提高模型对动作的识别准确率,研究者们开发了一系列图像预处理技术,以增强视频帧中的关键信息并减少干扰。例如,边缘检测和图像增强技术可以使动作特征更加突出;而自适应光照校正技术能够改善不同光照条件下的图像质量,提高模型的鲁棒性。最新的研究成果还包括基于深度学习的图像预处理方法,如使用生成对抗网络(GAN)进行数据增强,以及利用自注意力机制自动识别和增强图像中的关键区域。

除了上述进展,转移学习和多任务学习的策略也被广泛应用于动作识别领域,通过利用预训练模型或同时学习相关任务来提高模型的性能和泛化能力。此外,为了解决大规模视频数据处理的挑战,研究者们还在探索更为高效的模型压缩和加速技术,以实现动作识别技术在实际应用中的快速部署。

综上所述,动作识别技术在视频处理和图像预处理方面的研究正快速发展,新的模型结构和算法不断涌现,显著提升了动作识别的准确性、效率和适用性。随着技术的进一步完善,未来动作识别有望在公共安全监控、健康护理、人机交互等更多领域发挥重要作用。

1.3 研究内容

本文主要研究基于TSM模块的打架斗殴识别设计与实现,专注于通过先进的图像预处理技术和时间位移模块(TSM)算法,提高公共安全监控系统中打架斗殴行为识别的准确性和效率。研究的核心目标是通过优化视频处理流程,实现对打架斗殴行为的快速、准确识别,以便及时响应并采取相应的安全措施。本文的主要研究内容和技术路线概括如下:

1.3.1 图像预处理的优化

研究首先聚焦于图像预处理阶段,通过采用边缘锐化增强和自适应光照亮度调整等技术,显著提高了图像质量。边缘锐化增强技术通过增强视频帧中动作的边缘信息,使得动作特征更加明显,从而为后续的动作识别提供了更为清晰的视觉基础。同时,自适应光照亮度调整技术确保了在不同光照条件下,视频帧的亮度得到适当的调整,进一步提高了图像的视觉效果和识别模型的鲁棒性。

1.3.2 TSM模块的应用

本研究选用PPTSSM框架中的mobilenetv2和TSM模块作为核心算法组件,以有效捕获视频中的时间动态信息并实现高效的动作识别。Mobilenetv2作为轻量级的卷积神经网络,其结构适用于移动和嵌入式设备,确保了模型的高效性;而TSM模块通过在时间维度上的位移操作,优化了时间信息的处理,进一步提升了打架斗殴行为识别的准确率。

1.3.3 视频分类的设计与实现

为了实现高效的打架斗殴识别,本文采用了一种基于视频分类的方法。具体来说,对每个6秒长的视频进行处理,均匀抽取6帧作为分析对象。这种方法不仅保证了时间信息的全面覆盖,还大幅度减少了数据处理的复杂度。此外,本研究引入了一种基于二维伽马函数的自适应光照强度校正算法,该算法进一步优化了光照条件对识别效果的影响,确保在各种光照环境下均能获得较高的识别准确率。

综上,本文通过优化图像预处理过程,并结合轻量级的mobilenetv2和TSM模块,实现了一种高效且准确的打架斗殴行为识别系统。该系统不仅能够适应各种光照条件,还能快速处理视频数据,为公共安全监控系统提供了一种可靠的技术支持。

2 关键技术与方法

2.1 TSM算法与模型选择

2.1.1 TSM算法原理

Temporal Shift Module(TSM)是Lin等人在2019年提出的,可以非常高效地提取视频时空特征的行为识别方法[2] 。算法是一种为视频理解任务设计的高效深度学习框架,特别是在动作识别领域表现出了卓越的性能。TSM的核心思想是在网络内部通过时间位移操作,使得不同时间帧的信息能够在网络的前向传播过程中自然融合,从而在不增加计算负担的情况下捕捉时间动态信息。

TSM算法的关键在于它通过对输入特征图的一部分通道进行时间维度上的位移操作,实现了时间信息的有效整合。具体来说,它将一部分通道的特征在时间维度上向前移动一位,另一部分通道的特征在时间维度上向后移动一位,而剩余的通道保持不变。这种操作使得每个时间步的输出都包含了其前后时间步的信息,从而增强了模型对时间序列变化的捕捉能力,而这一切又几乎不增加任何计算成本。

在打架斗殴识别这一具体任务中,TSM算法能够通过捕捉视频序列中的微小动作变化和时间上的细节,有效地识别出暴力行为。例如,一个简单的拳击动作可能只在几个视频帧中有明显的变化,TSM通过在时间上的位移操作,能够让网络捕捉到这种短暂而关键的动作变化,从而实现准确的打架斗殴行为识别。

TSM算法的核心公式可以概括为时间位移操作,假设 为输入特征图,其维度为 ,其中 是批次大小, 是通道数, 是时间维度, 是空间维度。时间位移操作可以表示为:


其中, 示经过时间位移操作后的特征图, 分别代表向前和向后移动的通道集合。这一操作实现了特征在时间上的前后融合,而不需要额外的计算资源。

通过在网络中嵌入TSM模块,打架斗殴识别系统能够更加精确地分析视频序列中的动态信息,实现高效而准确的行为识别。TSM算法的这一优势,使其在视频理解任务中,尤其是需要精细时间信息处理的打架斗殴识别场景下,成为了一个非常有价值的工具。

2.1.2 PP-TSM

PP-TSM(PaddlePaddle Temporal Shift Module)是一个集成了时间位移模块(TSM)的视频动作识别框架,基于百度开源的深度学习平台PaddlePaddle。这个框架专为视频理解任务设计,通过巧妙地在时间维度上对特征进行位移,显著提升动作识别的效率和准确性,而不显著增加计算成本。

PP-TSM继承并优化了TSM的核心概念,利用PaddlePaddle框架的强大功能和灵活性,为视频动作识别提供了一个高效而强大的解决方案。其工作机制主要包括以下几个关键环节:

1、时间位移操作:PP-TSM利用TSM的原理,在处理视频序列数据时对输入特征图的通道进行部分时间维度的位移。这意味着一部分通道会向前移动一个时间步,另一部分则向后移动,而剩余通道保持不变。这样的操作让每个时刻的特征都能融合来自前后时间点的信息,从而捕捉视频中的动态变化。

2、特征融合:通过时间位移,PP-TSM使模型能够在处理每一帧时考虑到前后文的信息,增强了对视频中连续动作的理解和识别能力。这种前后文信息的融合对于识别复杂的动作模式尤为关键。

3、高效计算:PP-TSM的设计允许它在提升模型性能的同时保持高效的计算。时间位移操作仅需要重新组织已有的特征图,而不增加额外的参数或计算量,这使得PP-TSM既能提高动作识别的准确率,又能保持快速的处理速度,非常适合实时应用场景。

2.1.3 mobilenetv2和tsm模块

1、MobileNetV2

在PP-TSM框架中,可以集成不同的卷积神经网络作为特征提取的基础架构,其中MobileNetV2是一个常见且高效的选择。这是因为MobileNetV2的轻量级和高效性使得它非常适合视频处理任务,尤其是在资源受限的环境下。它通过深度可分离卷积(depthwise separable convolution)技术减少模型的参数数量和计算量,同时保持良好的特征提取能力。MobileNetV2的轻量级特性使得PP-TSM模型可以在不牺牲准确性的前提下运行得更快,更适用于实时或移动设备上的视频动作识别任务。

2、TSM模块

TSM模块是PP-TSM中的核心,负责处理视频序列的时间信息。通过在时间维度上对特征图进行简单的位移操作,TSM模块使模型能够有效地捕捉视频帧之间的动态变化,从而提高动作识别的准确性。这种位移操作使每个时间步的特征图都融合了来自相邻时间步的信息,增强了模型对动作序列的理解能力。

3、模块之间的关系

在PP-TSM中,MobileNetV2和TSM模块相互配合,形成一个高效而强大的动作识别系统。MobileNetV2首先从视频帧中提取特征,然后TSM模块对这些特征进行时间维度上的位移和融合,最终输出对视频中动作的识别结果。这种结构不仅充分利用了MobileNetV2的高效性和TSM模块的时间处理能力,而且还保持了模型的轻量级和高性能。

综上所述,PP-TSM可以集成MobileNetV2作为其特征提取的基础网络,并通过TSM模块增强对时间信息的处理能力,从而在视频动作识别任务中实现高效准确的性能。

2.2 图像预处理优化

2.2.1 边缘锐化增强

边缘锐化增强是通过识别图像中的边缘像素并增加其与周围像素的对比度来实现的。这通常通过应用一种高通滤波器完成,如Sobel、Laplacian或Canny边缘检测算法。这些滤波器工作原理是检测图像中亮度变化显著的区域,这些区域通常对应于对象的边缘。通过增强这些边缘,可以使图像中的对象更加突出,更易于识别。

边缘锐化增强技术的实现通常涉及以下步骤:

1、边缘检测:首先,使用边缘检测算法识别出图像中的边缘。这一步是通过计算图像中每个像素点的梯度大小来实现的,梯度大的区域表明这里是边缘区域。

2、增强处理:一旦边缘被检测出来,接下来的步骤是通过调整边缘像素与其周围像素的亮度对比度来增强这些边缘。这可以通过加深边缘像素或是减弱边缘附近非边缘像素的亮度来实现。

3、细化与优化:最后,还可以通过一系列后处理步骤对锐化后的边缘进行细化和优化,以消除可能出现的噪声并提高边缘的清晰度和自然度。

在视频动作识别领域,边缘锐化增强技术尤为重要。它能够帮助模型更准确地捕捉到视频中人体动作的轮廓和特征,尤其是在背景复杂或光线不佳的情况下。通过提高边缘的对比度,模型可以更容易地区分前景和背景,更准确地定位和识别人体部位和动作。此外,边缘锐化增强还有助于改善模型对于动作细节的捕捉能力,如手势或面部表情的微小变化,这对于理解复杂动作和情感状态至关重要。

2.2.2 自适应光照亮度处理

在实际应用中,视频拍摄环境的光照条件可能极其多变,从室内的暗光到户外的直射阳光,不同的光照条件直接影响图像的可见性和质量。不足的光照会使图像过暗,细节丢失;过强的光照可能导致图像过曝,同样损失细节。这对动作识别等需要精细理解图像内容的任务构成了障碍。因此,自适应光照亮度处理成为了确保图像分析准确性的关键步骤。

自适应光照亮度处理技术通过分析图像的亮度分布,动态调整图像的亮度和对比度,以达到改善图像质量的目的。这一过程通常包括以下几个关键步骤:

1、亮度分析:首先评估图像的整体亮度水平,识别图像是否过曝或过暗,以及不同区域的亮度是否均匀。

2、动态范围调整:根据亮度分析的结果,调整图像的动态范围,即最暗和最亮像素之间的差异,使得图像的细节在不同亮度条件下都能得到较好的展示。

3、局部亮度优化:在某些情况下,图像中的不同区域可能由于阴影或光照不均而显示不清。局部亮度优化通过对这些区域进行特定的亮度调整,改善图像的整体可视性。

4、对比度增强:调整图像的对比度,使得图像的主要特征更加明显,有助于提高后续识别任务的准确性。

自适应光照亮度处理不仅能够改善图像的视觉质量,还能够增强图像的信息量,为后续的图像分析任务提供更为准确、鲁棒的基础。在动作识别等复杂的视觉任务中,通过优化图像的光照条件,可以显著提高识别模型对动作的判断能力,尤其是在多变的光照环境下。此外,自适应光照亮度处理技术还有助于减少模型对光照条件的依赖,提高模型在不同应用场景下的通用性和实用性。

2.2.3 基于二维伽马函数的自适应光照强度校正算法

基于二维伽马函数的自适应光照强度校正算法是一种高级图像预处理方法,专门用于改善图像在不同光照条件下的质量,从而提高视频分类和动作识别等视觉任务的准确性。这一算法通过调整图像的局部亮度和对比度,使得图像在广泛的光照环境下都能保持较好的可视性和一致性。

传统的伽马校正通过对图像的每个像素应用非线性变换来实现,变换函数通常表示为:


其中, 是输入图像的亮度值, 是校正后的输出亮度值,而 是伽马值,用于控制亮度调整的程度。

基于二维伽马函数的自适应光照强度校正算法对这一基本原理进行了扩展,引入了二维空间信息,允许算法对图像中的每个区域根据其局部亮度特征进行个性化的亮度调整。这种方法的基本公式可以表示为:


其中, 表示图像中的像素位置, 是一个根据像素位置动态调整的伽马值,允许算法对不同区域进行差异化处理。

该算法的设计重点在于如何确定每个像素的 值,以实现最佳的光照强度校正效果。一种常用的方法是首先对图像进行分块处理,对每个小块独立估计其亮度分布,然后根据亮度分布的特征动态计算该区域的伽马校正参数。这一过程通常涉及图像的局部对比度分析,以及对不同亮度区域的特殊处理,确保在增强图像可视性的同时,避免过度校正导致的细节损失。

在视频分类任务中,基于二维伽马函数的自适应光照强度校正算法可以显著提高视频帧的质量,尤其是在变化的光照条件下。通过对每帧图像进行自适应校正,算法能够确保视频中的关键视觉信息在不同场景下都能被准确捕捉,从而提高分类模型对视频内容的理解能力。这一预处理步骤对于提升视频分类算法在实际应用中的性能和鲁棒性至关重要,尤其是在光照条件多变的户外环境或光线不足的室内环境中。

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

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

相关文章

深度学习-数据预处理

目录 创建一个人工数据集处理缺失的数据插入对inputs中的类别值或离散值,将NaN视为一个类别对inputs和outputs中的数值类型转换为张量格式 创建一个人工数据集 import os import pandas as pd os.makedirs(os.path.join(.., data), exist_okTrue) data_file os.p…

基于Vue+ElementPlus自定义带历史记录的搜索框组件

前言 基于Vue2.5ElementPlus实现的一个自定义带历史记录的搜索框组件 效果如图: 基本样式: 获取焦点后: 这里的历史记录默认最大存储10条,同时右侧的清空按钮可以清空所有历史记录。 同时搜索记录也支持点击搜索,按…

.NET(C#)连接达梦数据库GUID字段被自动加横线的修复方法

因信创的原因项目需要兼容达梦数据库,今天遇到个比较坑爹的问题,简单记录下解决方案。 数据库存的是这样: 通过DataAdapter.Fill拿出来以后变成了这样 纳尼?谁让你加上这些横杠的?(掀桌)导致了…

100个实用电气知识

在当今社会,电力作为日常生活和工作中不可或缺的能源,扮演着越来越重要的角色。为了更好地利用电力资源,了解电气知识成为了越来越多人的需求。在电气领域,有很多实用的知识,这些知识对于从事电气工作的人来说是非常重…

Linux系统安全:从面临的攻击和风险到安全加固、安全维护策略(文末有福利)

1. Linux面临的攻击与风险 1.1. Linux系统架构 Linux系统架构解读: 用户之间隔离内核态与用户态之间隔离用户进程一般以低权限用户运行系统服务一般以特权服务运行用户态通过系统调用进入内核态内核对系统资源进行管理和分配 1.2. Linux系统常见安全威胁 1.2.1.…

OSPF认证方式,ISIS简介,ISIS路由器类型

OSPF:转发,泛洪,丢弃

Docker搭建代码托管Gitlab

文章目录 一、简介二、Docker部署三、管理员使用四、用户使用五、用户客户端 一、简介 GitLab是一个基于Git的代码托管和协作平台,类似于GitHub。 它提供了一个完整的工具集,包括代码仓库管理、问题跟踪、CI/CD集成、代码审查等功能。 GitLab的开源版本…

Go语言并发赋值的安全性

struct并发赋值 type Test struct {X intY int }func main() {var g Testfor i : 0; i < 1000000; i {var wg sync.WaitGroup// 协程 1wg.Add(1)go func() {defer wg.Done()g Test{1, 2}}()// 协程 2wg.Add(1)go func() {defer wg.Done()g Test{3, 4}}()wg.Wait()// 赋值…

2024新算法角蜥优化算法(HLOA)和经典灰狼优化器(GWO)进行无人机三维路径规划设计实验

简介&#xff1a; 2024新算法角蜥优化算法&#xff08;HLOA&#xff09;和经典灰狼优化器&#xff08;GWO&#xff09;进行无人机三维路径规划设计实验。 无人机三维路径规划的重要意义在于确保飞行安全、优化飞行路线以节省时间和能源消耗&#xff0c;并使无人机能够适应复杂…

国内首个48小时大模型极限挑战赛落幕,四位“天才程序员”共同夺冠

4月21日晚&#xff0c;第四届ATEC科技精英赛&#xff08;ATEC2023&#xff09;线下赛落幕。本届赛事以大模型为技术基座&#xff0c;围绕“科技助老”命题&#xff0c;是国内首个基于真实场景的大模型全链路应用竞赛。ATEC2023线下赛采用48小时极限挑战的形式&#xff0c;来自东…

Ts支持哪些类型和类型运算(上)

目录 1、元组 2、接口&#xff08;interface&#xff09; 3、枚举&#xff08;Enum&#xff09; 4、字面量类型 5、keyof 6、in keyof 7、类型的装饰 静态类型系统 就是把 类型检查从运行时提前到了编译时&#xff0c;所以ts类型系统中的许多类型与js并无区别 例如&am…

概率图模型在机器学习中的应用:贝叶斯网络与马尔可夫随机场

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

go语言并发实战——日志收集系统(七) etcd的介绍与简单使用

什么是etcd etcd是基于Go语言开发的一个开源且高可用的分布式key-value存储系统&#xff0c;我们可以在上面实现配置共享与服务的注册与发现。 和它比较相似的还有我们之间所提到的Zookeeper以及consul.(注:后面我们学习微服务的时候etcd和consul会有广泛的使用) etcd有以下几…

网络中其他协议

目录 DNS协议 域名简介 ICMP协议 ICMP功能 ICMP协议格式 ping命令 NAT技术 NATP NAT技术的限制 代理服务器 DNS协议 DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;协议&#xff0c;是一个用来将域名转化为IP地址的应用层协议。 为什么有这个协…

W801学习笔记十二:掌机进阶V3版本之驱动(PSRAM/SD卡)

本次升级添加了两个模块&#xff0c;现在要把他们驱动起来。 一&#xff1a;PSRAM 使用SDK自带的驱动&#xff0c;我们只需要写一个初始化函数&#xff0c;并在其中添加一些自检代码。 void psram_heap_init(){wm_psram_config(0);//实际使用的psram管脚选择0或者1&#xff…

基于Linux系统命令行安装KingbaseES数据库

人大金仓通用性数据库&#xff08;Kingbase&#xff09;下载网址&#xff1a;人大金仓-成为世界卓越的数据库产品与服务提供商 选择“软件版本-数据库”&#xff0c;筛选条件Linux、完整版。找到需要的版本&#xff0c;点击下载。我下载的是KingbaseES_V008R006C008B0014_Lin6…

CyclicBarrier(循环屏障)源码解读与使用

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 1. 前言 2. 什么是CyclicBarrier&#xff1f; 3. CyclicBarrier与CountDownL…

共享单车(一):项目配置

配置文件 对于很多程序中要用的参数如果是可变的&#xff0c;那么最好的处理方式就是通过main函数参数传递&#xff0c;或者从别的地方去获取&#xff0c;这其中之一就是配置文件&#xff0c;但是在一个成熟和架构完善的系统&#xff0c;一般都会做到自动配置&#xff0c;自动…

【刷题】前缀和入门

送给大家一句话&#xff1a; 既然已经做出了选择&#xff0c;最好还是先假定自己是对的。焦虑未来和后悔过去&#xff0c;只经历一个就够了。 – 张寒寺 《不正常人类症候群》 ☆ミヾ(∇≦((ヾ(≧∇≦)〃))≧∇)ノ彡☆ ☆ミヾ(∇≦((ヾ(≧∇≦)〃))≧∇)ノ彡☆ ☆ミヾ(∇≦((ヾ…

算法练习第17天|104.二叉树的最大深度 、559.N叉树的最大深度

104.二叉树的最大深度 104. 二叉树的最大深度 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/maximum-depth-of-binary-tree/description/ 什么是二叉树的深度和高度&#xff1f; 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。最大深度…