BDD100k

摘要

数据集推动视觉进步,但现有的驾驶数据集在视觉内容和支持任务方面都很贫乏,以研究自动驾驶的多任务学习。研究人员通常被限制在一个数据集上研究一小部分问题,而现实世界的计算机视觉应用需要执行各种复杂的任务。我们构建了一个包含100K视频和10个任务的最大的驾驶视频数据集BDD100K ,以评估图像识别算法在自动驾驶上的令人兴奋的进展。该数据集具有地理、环境和天气的多样性,这对于训练不太可能对新条件感到惊讶的模型是有用的。基于这个多样化的数据集,我们构建了一个异构多任务学习的基准,并研究了如何共同解决这些任务。我们的实验表明,现有的模型执行这类异构任务需要特殊的训练策略。BDD100K为未来在这一重要场所的研究打开了大门。

介绍

多样化、大规模的标注视觉数据集,如Image Net [ 8 ]和COCO [ 19 ],一直是计算机视觉中监督学习任务最新进展的推动力。对于一个任务[ 17、28、16 ],典型的深度学习模型需要数以百万计的训练样本才能达到最先进的性能。

然而,对于自动驾驶应用而言,由于缺乏全面的数据集,利用深度学习的力量并不那么简单。现有的自动驾驶[ 15、7、24]数据集在一个或多个显著性方面受到限制,包括场景变化、注释的丰富程度和地理分布。此外,在现有数据集上训练的模型往往会过度拟合特定的领域特征[ 26 ]。现实世界的应用要求执行具有不同复杂度的感知任务的组合,而不仅仅是具有相同预测结构[ 27、38、1、21]的同构多任务。

虽然用简单的标注(如可行驶区域和物体边界框[ 11、19] )来标注大量图像可能是可行的,但获得更复杂的标注(如实例分割[ 3 ] )仍然具有挑战性,更不用说多目标检测和分割跟踪[ 31、22 ]。因此,尽管已经投入了相当大的精力来构建大规模的视觉数据集,但对这些复杂任务的研究仍然局限于小数据集[ 7、15 ]。在生产环境中,如何为各种注释分配资源以支持需要不同输出结构的异构任务的应用也不清楚。

我们的目的是促进对大规模多样视觉数据和多任务的算法研究。我们构建了BDD100K,这是一个新的、多样的、大规模的视觉驾驶场景数据集,并与各种任务一起,以克服这些限制。我们已经能够收集和注释最大的可用的注释驾驶场景数据集,由超过100K个不同的视频片段组成。BDD100K涵盖了更真实的驾驶场景,并捕获了更多的外观变化的 “long-tail” 和不同环境领域中感兴趣类别的姿态配置。我们的基准测试包括10个任务:图像标注、车道线检测、可行驶区域分割、道路目标检测、语义分割、实例分割、多目标检测跟踪、多目标分割跟踪、领域自适应和模仿学习,如图1所示。这些多样化的任务使得异构多任务学习的研究成为可能。在我们的基准测试中,模型可以执行一系列复杂度越来越高的任务。

我们在新的基准上对现有算法进行了广泛的评估。特别关注同构、级联和异构环境下的多任务学习。我们的实验提出了许多新的发现,这些发现可以通过在单一数据集上的多样化任务来实现。我们关于异构多任务学习的基准模型阐明了设计单个模型以支持多个任务的挑战。

在这里插入图片描述
图一:我们的数据集概述。我们的数据集包括不同天气条件、时间和场景类型下的驾驶视频。该数据集还附带了丰富的注释集:场景标注、目标包围盒、车道标记、可行驶区域、全帧语义和实例分割、多目标跟踪、带分割的多目标跟踪。

本文的主要贡献在于:

1 )提供了一个支持多种复杂任务的综合多样的100K驾驶视频数据集,可以作为自动驾驶计算机视觉研究的评估基准;
2 )异质多任务学习和基线研究的基准,以方便未来的研究。

相关工作

在计算机视觉的众多识别任务中,视觉数据集是必不可少的。特别是随着深度学习方法的出现,大规模的视觉数据集,如[ 8、36、40、24],对于学习高层次的图像表示至关重要。它们是通用的,包括数以百万计的带有图像级分类标签的图像。这些大型数据集在图像识别的表示学习中很有用,但现实世界中大多数复杂的视觉理解任务需要更细粒度的识别,例如物体定位和分割[ 11 ]。我们提出的数据集为更深入的视觉推理提供了这些多粒度的注释。此外,我们在视频的上下文中提供了这些注释,这提供了视觉信息的额外维度。虽然大型视频数据集存在[ 5,2,29],但它们通常仅限于图像级别的标签。

近年来,由于自动驾驶技术的普及,驾驶数据集受到了越来越多的关注。目标是了解计算机视觉系统在自动驾驶背景下面临的挑战。其中一些数据集侧重于特定的对象,如行人[ 9、39 ]。Cityscapes [ 7 ]对自己车辆采集的视频采样帧提供实例级语义分割。Robot Car [ 20 ]和KITTI [ 15 ]也提供了LiDAR扫描点等多源数据。由于收集覆盖广泛时间和地点范围的数据非常困难,这些数据集的数据多样性受到限制。Robot Car [ 20 ]和KITTI [ 15 ]也提供了LiDAR扫描点等多源数据。由于收集覆盖广泛时间和地点范围的数据非常困难,这些数据集的数据多样性受到限制。为了使车辆感知系统具有鲁棒性,它需要从众多城市的各种路况中学习。我们的数据来自与[ 33 ]中的视频相同的原始来源。 然而,本文的主要贡献是在异构任务上实现了具有基准的视频标注。Mapillary Vistas [ 24 ]为用户上传的数据提供了细粒度的注释,在位置方面更加多样化。然而,这些图像是一次性的帧,没有被放置在具有时间结构的视频背景中。像Vistas一样,我们的数据是众包的,然而,我们的数据集仅仅来自于驾驶员,每个注释的图像对应一个视频序列,这使得建模时间动态的有趣应用成为可能。

多任务学习旨在通过学习其他任务[ 6、23]来提高某项任务的泛化性。在机器学习[ 6、12]中得到了广泛的研究。对学习任务之间关系的兴趣不断增长,产生了许多多任务和迁移学习的训练基准和挑战。鲁棒视觉挑战[ 1 ]具有6个视觉挑战,其中单个模型有望在多个视觉任务上产生结果。Zamir等人[ 38 ]通过迁移学习研究了26个视觉任务之间的依赖结构。McCann等人[ 21 ]提出了一个具有十个自然语言处理任务的挑战,并提出了一个模型,通过将每个任务形式化为问答来解决所有问题。与McCann等人[ 21 ]类似,现有的多任务和迁移学习设置在输出结构上是同构的。任务可以表述为像素级或低维的分类和回归。BDD100K包含多个任务,包括像素级、基于区域和时间感知的任务,为异构多任务学习打开了大门。

BDDK100

我们的目标是提供一个大规模的多样化驾驶视频数据集,并提供全面的注释,以揭示街道场景理解的挑战。为了实现良好的多样性,我们以众包的方式获取我们的视频,由数万名司机上传,由Nexar 2支持。该数据集不仅包含高分辨率( 720p )和高帧率( 30fps )的图像,还包含GPS / IMU记录,以保存行驶轨迹总的来说,我们从超过50K的车次中收集了100K的驾驶视频(各40秒),覆盖纽约,旧金山湾区和其他地区,如图2所示

该数据集包含城市街道、居民区、高速公路等多种场景类型。此外,在一天中的不同时间,在不同的天气条件下录制了视频。将视频分为训练集( 70K )、验证集( 10K )和测试集( 20K )。每个视频中第10秒的帧被标注用于图像任务,整个序列用于跟踪任务

图像标注

我们对每幅图像采集了6种天气状况、6种场景类型、3种不同的白天时段的图像级标注。视频中包含了大部分的极端天气情况,如雪和雨。它们还包括世界各地数量各异的不同场景。值得注意的是,我们的数据集包含了大约相等数量的白天和夜间视频。这种多样性使我们能够研究领域迁移,并在新的测试集上很好地推广我们的目标检测模型。附录中展示了具有天气、场景和日小时标签的图像的详细分布。我们在图4中提供了使用DLA - 34 [ 37 ]的图像标记分类结果。不同天气和场景的平均分类精度在50 % ~ 60 %左右。

目标检测

定位物体不仅是自动驾驶的基本任务,也是一般视觉识别的基本任务。我们为100K个视频的每个参考帧提供10个类别的边界框标注。实例统计如图3a所示。我们在图3b和图3c中提供了可视性属性,包括"遮挡"和"截断"。

路面车道标示

车道线检测对于基于视觉的车辆定位和轨迹规划至关重要。然而,可用的数据集往往在规模和多样性方面受到限制。例如,加州理工学院车道线数据集[ 4 ]仅包含1,224张图像,道路标线数据集[ 32 ]有1,443张图像标注了11类车道标线。最近的一项工作,VPGNet [ 18 ],由在首尔三周的驾驶过程中拍摄的约20,000张图像组成。

我们的车道线(图5 )标注了8个主要类别:路缘石、人行横道、双白、双黄、双其他色、单白、单黄、单其他色。其他类别在评价时被忽视。我们标注了连续性(饱满的或破碎的)和方向性(平行或垂直)的属性。如表1所示,我们的车道线标注覆盖了一组不同的类。车道线类型和可行驶区域的详细分布见附录。

可行驶区域

单靠车道并不足以决定驾驶的道路承受能力。虽然大多数情况下,车辆应该停留在车道之间,但是没有清晰的车道标线是很常见的。此外,道路区域与其他所有车辆共享,但一条车道如果被占用则无法继续行驶。所有这些超出车道线的条件都指导着我们的驾驶决策,因此对于设计自动驾驶算法是相关的。

我们的可行驶区域分为两种不同的类别:直接可行驶区域和替代可行驶区域。直接可行驶区域是驾驶人当前正在行驶的区域- -也是驾驶人优先于其他汽车或路权的区域。相比之下,可替代驾驶区域是驾驶员目前不在行驶的车道,但可以通过改变车道来实现。虽然直接和可替代的可行驶区域在视觉上难以区分,但它们在功能上是不同的,并且需要算法识别遮挡物和场景上下文。一些例子如图6所示。可行驶区域注释的分布情况见附录。毫不奇怪,在交通状况严格监管的高速公路或城市街道上,可行驶区域大多在车道内,且与道路上的车辆或物体不重叠。然而,在居民区中,车道是稀疏的。我们的注释者可以根据周围的环境找到可驱动的区域。

语义实例分割

我们为从整个数据集中随机抽取的10000个视频片段中的每个视频片段提供了细粒度的像素级注释每个像素被赋予一个标签和一个对应的标识符,表示该对象标签在图像中的实例编号。由于很多类(例如,天空)不能被划分成实例,所以只给类标签的一小部分分配实例标识符。整个标签集合由40个对象类组成,选择这些对象类来捕获道路场景中对象的多样性,并最大化每张图像中的标记像素数量。除了大量的标签外,我们的数据集在场景多样性和复杂性方面超过了先前的工作。整个数据集分为3部分:7K图像用于训练,1K图像用于验证,2K图像用于测试。 语义实例分割数据集中类的分布情况如附录所示。

多目标跟踪

为了理解视频中对象的时间关联,我们提供了一个包含约400K帧的2000个视频的多目标跟踪( Multiple Object Tracking,MOT )数据集每段视频约40秒,标注速度为5帧/秒,每段视频约200帧。 我们在训练集和验证集中观察到总共130.6 K个轨迹恒等式和3.3 M个边界框。数据集分为1400个用于训练的视频,200个用于验证的视频和400个用于测试的视频。表2显示了BDD100K与先前MOT数据集的比较。我们的跟踪基准比之前流行的跟踪数据集MOT17 [ 22 ]大一个数量级。Waymo [ 30 ]最近发布的一个数据集与我们的数据集相比,总的跟踪序列( 1150比2000年)和帧数( 230K和398K)更少。但是 Waymo数据有更多的2D框( 9.9M vs 4.2M),而我们的数据有更好的多样性,包括不同的天气状况和更多的位置。轨迹和包围盒的类别分布见附录。

在这里插入图片描述

BDD100K MOT在对象尺度上具有多样性。图7 (左)绘制了包围盒尺寸的累积分布,对于宽度为w,高度为h的包围盒,定义为√wh。图7 (中间)显示了每个轨道的最大盒子尺寸与最小盒子尺寸之比的累积分布,图7 (右)显示了每个轨道的长度。分布显示,MOT数据集不仅在轨道间和轨道内的视觉尺度上存在差异,而且在每个轨道的时间范围上也存在差异。

在这里插入图片描述
图七:盒子大小的累积分布(左),每个轨道的最大和最小盒子大小之间的比率(中间)和轨道长度(右)。我们的数据集在对象尺度上更加多样化。

我们的跟踪数据中的目标也呈现出复杂的遮挡和再现模式,如图8所示。一个物体可能会被完全遮挡或者运动出帧,然后再重新出现。我们在数据集中观察到49,418次遮挡的发生,或者每3.51个轨迹发生一次遮挡。我们的数据集展示了自动驾驶中目标再识别对跟踪的真正挑战

多目标跟踪与分割

我们进一步提供了一个包含90个视频的多目标跟踪和分割( MOTS )数据集。我们将数据集分为60个训练视频,10个验证视频和20个测试视频

表3展示了BDD MOTS数据集的详细信息以及与现有的多目标跟踪和分割( MOTS )和视频目标分割( VOS )数据集的比较。MOTS旨在对拥挤场景中的多个物体进行分割和跟踪。因此,像KITTI MOTS和MOTS Challenge [ 31 ]这样的MOTS数据集需要每帧更密集的注释,因此比VOS数据集更小。BDD100K MOTS提供了比KITTI和MOTS挑战赛数据集更大的MOTS数据集,标注数量与大规模YouTube VOS [ 34 ]数据集相当。MOTS数据集按类别的详细分布见附录。

模仿学习

在我们的数据集中,GPS / IMU记录显示了给定视觉输入和驾驶轨迹的人类驾驶行为。我们可以使用这些记录作为模仿学习算法的示范监督,并使用困惑度来衡量验证集和测试集上驾驶行为的相似性。我们参考Xu等人[ 33 ]对评估协议的详细介绍。驾驶轨迹的可视化显示在附录中。

多样性

除了视频和比例尺之外,我们数据的一个显著特点是多样性。我们可以研究多样性给现有算法带来的新挑战,以及我们的数据如何补充现有数据集。我们进行了两组关于目标检测和语义分割的实验。在目标检测实验中,我们研究了数据集中的不同域。而在语义分割中,我们考察了我们的数据与Cityscapes [ 7 ]之间的领域。

目标检测

与其他流行的驾驶数据集相比,我们的数据集在多样性方面具有优势我们研究了域差异对目标检测的影响。根据时间和场景类型将整个数据集划分为若干个域。城市街道和白天被选为验证区域。训练集具有相同数量的图像( 30K )。然后在这些领域上训练基于ResNet - 50的Faster - RCNN [ 28 ],并使用COCO API [ 19 ]对结果进行评估。

我们发现来自不同条件的图像集之间确实存在域差异,如表4所示。城市与非城市的差异显著,但白天与夜间的差距更大。虽然这并不完全令人惊讶,但结果表明需要更多的工作来弥合差距

语义分割

我们还比较了在 Cityscapes 和我们的数据集上训练的模型,以了解我们的新数据集和现有的驾驶数据集之间的差异。Cityscapes 数据采集于德国城市,而我们的数据主要来自美国。我们观察到,对于语义分割模型而言,两个数据集之间存在着剧烈的领域转移。当在不同的数据集上进行测试时,模型表现更差。这表明即使对于其他数据集的领域,我们的新数据集也是互补的,从而增加了现有的数据集。图9直观地显示了这种差异。我们可以观察到在市景上训练的模型无法识别美国的交通标志。

多任务学习

BDD100K为研究异构任务的联合求解提供了机会。在这一部分中,我们研究了用同一个基础模型联合建模各种任务的效果。我们研究如何利用简单标签的多样性和数量来提高复杂任务的准确性,例如从目标检测到跟踪。

同质多任务学习

我们首先研究了具有相似输出结构的任务联合执行的效果。BDD100K车道线和可行驶区域数据集共享同一套70K训练图像。可行驶区域标注由2个前景类组成,车道线标注有3个属性(方向性、连续性、范畴性)。我们将可行驶区域的检测定义为分割,车道线的检测定义为轮廓检测。利用结构化边缘检测工具箱[ 10 ],在容差τ = 1,2,10像素的情况下,对3种属性中的每一类,采用均值Io U评价可行驶区域分割,采用最优数据集尺度F-测量( ODS-F )评价车道线标记。在评估过程中,我们对每个得分阈值进行形态学细化。

我们采用DLA - 34 [ 37 ]作为分割任务的基础模型。使用4个3 × 3卷积块执行分割头,然后执行1 × 1卷积生成4倍下采样尺度的分割图,并使用双线性插值将输出上采样到原始尺度。对于车道线标记,我们对这3个属性使用3个分割头。我们使用前景权重为10的加权交叉熵损失作为车道线标记头,并使用基于梯度的非极大值抑制进行后处理。我们用10K、20K和完整的70K图像构建了三个训练集,并在表5中报告了在单个任务和两个任务上训练的模型的评估结果。车道线的完整评价结果见附录。

我们观察到,当仅使用10K张图像进行训练时,与可行驶区域任务联合训练时,车道线预测的平均ODS - F分数从45.41提高到50.40。然而,联合训练在可行驶区域检测任务上的提升,从64.23到64.37,与单独任务相比,提升幅度微乎其微。当我们将训练图像的数量增加到20K和70K时,联合训练和单任务训练之间的差异变得微不足道,尽管性能数值普遍高于在10K图像上训练的结果。

对结果的一个假设是,可行驶区域检测任务和车道线标记任务具有相似的预测结构,被称为同质任务,因此额外的监督可能无法为每个单独的任务带来新的信息。这些结果进一步激励我们在本文中研究具有不同预测结构和标注类型的异构任务的多任务学习。

级联多任务学习

某些任务,如目标跟踪和实例分割,注释起来比较耗时。但是它们可以依赖于简单任务的预测。这种联系被研究为级联多任务学习。例如,更准确的目标检测可以更好地定位目标候选者进行跟踪。一个自然的问题是,是将所有的标注工作都花费在复杂的任务上,还是将一些资源分配在基本的任务上

目标检测和实例分割: BDD实例分割数据集包含7K张图像,而检测数据集包含70K张图像。我们首先研究添加更多的目标检测标注是否可以帮助实例分割。我们使用以ResNet - 50 [ 17 ]为主干的Mask R-CNN [ 16 ],以批量循环的方式训练检测和实例分割。如表6所示,随着联合训练的进行,AP从21.8增加到24.5。实例分割模型能够从具有更丰富多样性的图像和对象实例的检测集中学习到更好的对象外观特征和定位。Zhou等[ 41 ]探索了检测监督中的形状先验,进一步改进了半监督实例分割结果。

MOT和目标检测: BDD100K MOT有来自1400个视频的278K个训练帧,而检测集包含来自70K个视频的70K张图像。对于检测和MOT模型,我们使用了一个修改版本的Faster R-CNN [ 28 ],其共享DLA - 34 [ 37 ]骨干。跟踪模型的实现细节见附录。由表7可知,检测和多目标跟踪联合训练改善了单任务MOT模型,检测AP从28.1增加到30.7,MOTA从55.0增加到56.7,身份切换略有增加。

在这里插入图片描述

语义分割与其他任务: 按照类似的方式,我们通过联合训练语义分割与检测和车道线/可行驶区域来微调基本语义分割模型,如表8所示。我们观察到,使用额外的70K目标检测数据集进行训练,将总体mIoU从56.9提高到58.3,其提高主要归因于目标检测数据集中存在的目标类。当与车道线和可行驶区域集进行联合训练时,虽然所有类的整体IOU降低,但填充类(例如,道路和人行道)的IOU提高。

总而言之,在任务级联中为简单任务添加更多的标注可以帮助提高需要更昂贵标签的复杂任务的性能

异构多任务学习

我们的基准测试的最终目标是研究如何共同执行所有的异构任务以实现自动驾驶。为了理解这个潜力和困难,我们研究了多目标跟踪和分割的联合训练,目标检测、实例分割和多目标跟踪的下游任务。由于MOTS数据集需要在每一帧进行耗时的实例分割标注,因此该数据集在视频多样性方面比较有限,训练集有60个视频的12K帧。我们的目标是通过利用70K视频的70K图像的检测集,1400个视频的278K帧的MOT集和7K视频的7K图像的实例分割集的多样性来提高MOTS任务的性能。我们报告了实例分割AP和多目标跟踪和分割精度( MOTSA ),精度( MOTSP ),以及表9中使用的其他度量。我们首先从上游任务的预训练模型中微调MOTS模型。与从头开始训练MOTS相比,从预训练的实例分割模型中微调,提高了分割AP和MOTSP。另一方面,从预训练的MOT模型中进行微调,减少了身份交换( IDSW )。来自实例分割和MOT数据集的额外训练样本分别改进了分割和盒子传播,从而大幅度地提高了整体MOTSA结果。我们最终通过联合训练四个任务,对表7中提到的联合训练的检测与跟踪模型进行微调。我们实现了23.3的整体分割AP和41.4的MOTSA。

总结

在这项工作中,我们提出了BDD100K,一个面向异构任务的具有广泛标注的大规模驾驶视频数据集。我们建立了一个异构多任务学习的基准,其中的任务具有不同的预测结构,并服务于一个完整的驱动系统的不同方面。我们的实验对不同的多任务学习场景进行了广泛的分析:同质多任务学习和级联多任务学习。实验结果展示了关于多任务学习中注释预算分配的有趣发现。我们希望我们的工作能够促进未来关于异构多任务学习的研究,并对这一重要方向有所启示。

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

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

相关文章

应急物资管理系统|DW-S300构筑现代化战备保障的利器

行业背景 智慧应急物资管理系统(智物资DW-S300)是一套成熟系统,依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID智能仓库进行统一管理、分析的信息化、智能化、规范化的系统。 政府相关部门设立的应急物资库是…

element 表格第一列合并,第二列展开后出现错位情况

展开后发现蓝色一行挤下来&#xff0c;而且还错位了 解决思路&#xff1a;展开行&#xff0c;在dom上其实是新增了一行的高度&#xff0c;合并上新增一个高度就可以 <el-tablev-loading"tabLoading"fitref"oneRef"height"100%":span-method…

JAVA开发 使用Apache PDFBox库生成PDF文件,绘制表格

1. 表格位置定点 2.执行效果展示&#xff08;截取PDF文件图片&#xff09; 3.执行代码 当我们使用Apache PDFBox库在PDF文件中创建带有表格的内容&#xff0c;需要遵循几个步骤。PDFBox本身并没有直接的API来创建表格&#xff0c;但我们可以通过定位文本、绘制线条和单元格矩形…

准橙人工翻译微信小程序,100+专业领域的译者在线帮你翻译!藏语、维吾尔语、哈萨克语、壮语、彝文、蒙古语统统支持人工翻译!

亲爱的朋友们&#xff0c;我们深知每一种语言都承载着独特的文化和历史&#xff0c;为了传承和弘扬这些宝贵的文化遗产&#xff0c;我们诚挚地邀请具备翻译经验并熟练掌握以下任意一门语言的您加入我们的团队&#xff01; 中国少数民族语言&#xff1a;藏语、维吾尔语、哈萨克…

DHCP原理与配置(Linux)

目录 DHCP概念 使用DHCP的好处 DHCP的分配方式 DHCP租约过程 租约过程分4个步骤&#xff08;全过程广播&#xff09; 1. 客户机请求IP&#xff08;Discover&#xff1a;发现&#xff1b;客户端广播 发送一个数据包&#xff0c;其他主机也能接收到&#xff0c;如果是没有安…

StarRocks vs. Trino: 高并发性能背后的技术优势是什么?

Trino&#xff08;之前称 PrestoSQL&#xff09;项目最初由 Meta 开发&#xff0c;旨在让数据分析师能够在广泛的 Apache Hadoop 数据仓库上执行交互式查询。其高效处理大型数据集和复杂查询的能力&#xff0c;以及多数据源连接的灵活性&#xff0c;使其迅速成为大规模组织的首…

bugku题目(带WP)

CTF题型&#xff0c;带WP。根据给出的题目&#xff0c;找到flag。 1、眼见非实 下载实验文件是一个file .zip 解压这个file.zip压缩包&#xff0c;得到眼见为实.docx文件 双击打开这个文件&#xff0c;不能读取。 修改眼见为实.docx的后缀为眼见为实.zip&#xff0c;再进行解压…

蚁群算法的优化计算——旅行商问题(TSP)优化matlab

微♥关注“电击小子程高兴的MATLAB小屋”获得资料 一&#xff0c;理论基础 生物学家研究发现&#xff0c;蚂蚁在寻找食物时&#xff0c;会在其经过的路径上释放一种信息素&#xff0c;并能够感知其他蚂蚁释放的信息素。信息素浓度的大小表示路径的远近&#xff0c;浓度越高&a…

拼房、行程变更、跨月退改?复杂场景对账结算怎么办?

在实际商业场景中&#xff0c;销售渠道多样化、数据关联多方、场景多元化、业务逻辑多变性等都让对账成为一门“技术活”&#xff0c;也成为财务人员面前的“拦路虎”。尤其当面临多成本中心、跨项目和跨月退改的出差费用时。手动拆分费用、协调沟通、以及处理费用归属等问题&a…

多视图变换矩阵与SLAM位姿估计中的地图点投影的几何约束

定义 Homography & projective transform M ( 3 4 ) [ f s x c ′ 0 a f y c ′ 0 0 1 ] [ 1 0 0 0 0 1 0 0 0 0 1 0 ] [ R 3 3 0 3 1 0 1 3 1 ] [ I 3 3 T 3 1 0 1 3 1 ] \underset{(3 \times 4)}{\mathbf{M}}\left[\begin{array}{ccc} f & s & x_c^{\pr…

Servlet基础(续集2)

HttpServletResponse web服务器接收到客户端的http的请求&#xff0c;针对这个请求&#xff0c;分别创建一个代表请求的HttpServletRequest对象&#xff0c;代表响应的一个HttpServletResponse 如果要获取客户端请求过来的参数&#xff1a;找HttpServletRequest如果要给客户端…

MySQL之高级特性(一)

高级特性 外键约束 InnoDB是目前MySQL中唯一支持外键的内置存储引擎&#xff0c;所以如果需要外键支持那选择就不多了。使用外键是有成本的。比如外键通常都要求每次在修改数据时都要在另一张表中多执行一次查找操作。虽然InnoDB强制外键使用索引&#xff0c;但还是无法消除这…

UML精简概述

UML精简概述 UML精简概述 UML精简概述UML的定义常见的关系 在学习设计模式之前&#xff0c;需要掌握一些预备知识&#xff0c;主要包括UML类图和面向对象设计原则&#xff0c;它们是“基础内功”&#xff0c;将为后续的“深入修行”奠定基础。UML类图可用于描述每一个设计模式的…

视频点播系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;客服聊天管理&#xff0c;基础数据管理&#xff0c;论坛管理&#xff0c;公告管理 前台账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;论坛&#xff0c;视…

在群晖上通过Docker部署DB-GPT

最近一直有网友在后台私信&#xff0c;发的内容高度统一&#xff0c;只有后面 8 位数字不一样&#xff0c;都是 &#xff03;22232 xxxxxxxx&#xff0c;有谁知道是什么意思吗&#xff1f;在我印象中&#xff0c;这是第二次这么大规模的发类似的字符串了 什么是 DB-GPT ? DB-G…

C++入门 string常用接口(下)

目录 string类的常用接口说明 string类对象的修改操作&#xff08;修饰符&#xff09; operator & append & push_back assign & insert erase & replace swap & pop_back string类对象的非成员函数 operator relational operators&#xff08;关系…

如何在 ASP.NET Core Web Api 项目中应用 NLog 写日志?

前言 昨天分享了在 .NET Core Console 项目中应用 NLog 写日志的详细例子&#xff0c;有几位小伙伴私信说 ASP.NET Core Web Api 项目中无法使用&#xff0c;其实在 ASP.NET Core Web Api 项目中应用 NLog 写日志&#xff0c;跟 .NET Core Console 项目是有些不一样的&#xf…

TLS指纹跟踪网络安全实践(C/C++代码实现)

TLS指纹识别是网络安全领域的重要技术&#xff0c;它涉及通过分析TLS握手过程中的信息来识别和验证通信实体的技术手段。TLS&#xff08;传输层安全&#xff09;协议是用于保护网络数据传输的一种加密协议&#xff0c;而TLS指纹则是该协议在实际应用中产生的独特标识&#xff0…

1.0 Android中Activity的基础知识

一&#xff1a;Activity的定义 Activity是一个应用组件&#xff0c;它提供了一个用户界面&#xff0c;允许用户执行一个单一的、明确的操作&#xff0c;用户看的见的操作都是在activity中执行的。Activity的实现需要在manifest中进行定义&#xff0c;不让会造成程序报错。 1.…

第一百零四节 Java面向对象设计 - Java内部类成员

Java面向对象设计 - Java内部类成员 内部类可以访问其所有实例成员&#xff0c;实例字段和其封闭类的实例方法。 class Outer {private int value 2014;public class Inner {public void printValue() {System.out.println("Inner: Value " value);}} // Inner …