自动(智能)驾驶 | 4D雷达的数据集

news2024/11/18 15:23:18

上篇文章分享了关于Oculii 4D雷达的两篇报告。数据集是一个非常重要的研究工具,对于4D雷达领域来说,处于一个研究前沿的位置,鲜有公开的数据集,目前能找到的数据集有: 

  这些文章中的数据集有不少博主也写过,但往往都是对于作者原文的翻译,实际的获取和使用基本没有涉猎,本文将更加深入和具体地说明这几个数据集,并给出获取的方法、使用方法及注意事项等。

目录

1. Astyx数据集: 时间2019

2. VoD数据集 2022

3.  RADIal 数据集

4.TJ4DRadSet (2022) 目前并未开源

总结:


1. Astyx数据集: 时间2019

原文:Automotive Radar Dataset for Deep Learning Based 3D Object Detection

文中写到其获取方式为:www.astyx.net (我打开后并未发现该数据集入口)

目前的获取方式:https://github.com/under-the-radar/radar_dataset_astyx

数据集比较小,直接获取即可。

接下来简单介绍一下这个数据集:

 作者建立这个数据集的目的在于为研究界提供高分辨率的雷达数据,促进和促进利用雷达传感器数据的算法研究。因为鲜有关注到雷达的数据集,在那个时候唯一含有雷达数据的自动驾驶数据集是nuScense数据集,但是其中的雷达数据是2D的而且很稀疏(约100),本数据集中的点云可以达到约1000点,采集该数据集使用了的设备是:

 雷达在目前看来性能一般,测距范围100m,视场角110*10;激光雷达使用的是威力登16线而相机则采用的是8bit的120W像素的灰点相机。

标定采用的是经典棋盘格和角反的方式,内参的标定都是离线进行的。外参的标定都是两两的标定的。

对于GT box的标注:激光雷达反映真实物理坐标精度在其中是最高的,相机很重要,这里作者将其视作对于激光的一个fine-tune;对于雷达来说,激光雷达的角分辨率以及探测距离限制,远距离的目标可能不会出现在传感器的“共视区”(这点和kitti中的don't care比较类似)这里只要雷达和相机能共视到就会进行标注。如下图:

 同时,也会对invisible进行标注,这意味着那些实物没有任何激光雷达或相机测量,但在雷达数据中清晰可见(例如,通过在其他汽车下面传播的多路径反射),并且可以通过时间参考联系起来——在数据记录期间之前或之后变得可见。(意思是对于确实存在,但相机和激光雷达无法捕捉而雷达通过一些方法能发现的物体也做了标注)。

作者从自动预标记的数据N帧中提取网络对其决策最不确定的数据,通过手动微调来纠正这些数据,从而在下一轮训练和预标记回合中最大限度地提高网络的信息增益。(自动标注+人工)

 本数据集一共提供了7个类别:Bus, Car, Cyclist, Motorcyclist, Person, Trailer, Truck

 标注的目标属性有:

 标注的储存格式为txt。

目标的 激光雷达和雷达的点数分布:(不同帧对应多个目标以及大小)

 数据分布:

 可以看出还是非常的不均衡,右图可以看出三辆车的帧是最多的。场景也较为简单。

 汽车car的朝向分布:

 下图可以看出lidar对于AB两车已经不可看见了,根据图像和雷达点云,根据朝向进行区分。

 评估(并未提及用何种网络):随机分割数据集到训练和测试数据使用4:1的比率,训练两个网络(雷达相机和激光雷达相机)22k次迭代,mini-batch为16和评估结果的分类、定位和定位精度通过使用IoU阈值为0.5。

评估结果:

 对于car,radar+camera的结果甚至要好过Lidar+Camera的结果。

通过查看数据集可以发现该数据集非常小,只有546个带注释的短片段帧,每个剪辑包含少于10帧。

整体的结构是:

 其中相机数据格式为jpg,lidar数据格式为txt,包含六个维度的信息(xyz、反射性、来自那个激光头以及时间戳),雷达的数据同样也通过txt给出,包含五个维度的信息(xyz,速度,以及mag(应该是强度))此外就是标定信息由json形式给出每一帧的变换。GT标注同样也使用的是json格式,内容实例:

{
    "frame_flag": "",
    "frame_index": 0,
    "header": "Astyx Version_01_00",
    "objects": [
        {
            "center3d": [
                15.28,
                4.24,
                -0.46
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                3.66,
                1.8,
                1.45
            ],
            "label_certainty": 2,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                0.7020386802113796,
                -0.03287019905010674,
                0.005682565197980395,
                0.711357118439284
            ],
            "score": -1.0
        },
        {
            "center3d": [
                57.75593697820277,
                -8.95030337350099,
                1.7819997024076009
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                4.34,
                1.81,
                1.5098232605535091
            ],
            "label_certainty": 0,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 0,
            "orientation_quat": [
                0.7194398517786975,
                -0.03301020608906757,
                0.0048577576720212606,
                0.6937528581252859
            ],
            "score": -1.0
        },
        {
            "center3d": [
                11.73,
                4.59,
                -0.64
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                4.15,
                1.8,
                1.45
            ],
            "label_certainty": 2,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                0.7058035625491359,
                -0.03289943574160317,
                0.005508833819764444,
                0.7076217993891781
            ],
            "score": -1.0
        },
        {
            "center3d": [
                9.145197640200534,
                5.274276650959328,
                -0.7580683445170724
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                3.77,
                1.8,
                1.45
            ],
            "label_certainty": 1,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                0.7199364568101033,
                -0.03300232389003559,
                0.004846831272768512,
                0.6932379483266801
            ],
            "score": -1.0
        },
        {
            "center3d": [
                6.479817221419508,
                5.247589043270934,
                -0.9141820375574657
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                4.48395807023072,
                1.8,
                1.45
            ],
            "label_certainty": 1,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                0.6898415239772513,
                -0.004692602780714069,
                -0.033023180724797714,
                -0.72319162108718
            ],
            "score": -1.0
        },
        {
            "center3d": [
                9.994624230481369,
                -6.017542527527623,
                -0.1464149366341636
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                3.77,
                1.8,
                1.3121440590076265
            ],
            "label_certainty": 1,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                0.7130302072899429,
                -0.03295292607233075,
                0.005173472708666147,
                0.7003393915348938
            ],
            "score": -1.0
        },
        {
            "center3d": [
                13.167237991660787,
                -6.162813630332312,
                -0.04708915908300637
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                3.9561293466010117,
                1.8,
                1.3121440590076265
            ],
            "label_certainty": 1,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                0.6950121632719635,
                -0.004933161718357779,
                -0.03298636965611393,
                -0.7182239596646692
            ],
            "score": -1.0
        },
        {
            "center3d": [
                18.42,
                -6.81,
                0.14
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                3.96,
                1.8,
                1.31
            ],
            "label_certainty": 2,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                0.7151992798301935,
                -0.03296572963883116,
                0.005076129151335868,
                0.6981242609396919
            ],
            "score": -1.0
        },
        {
            "center3d": [
                20.97984695193026,
                -6.536436330155294,
                0.23764169100863264
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                3.96,
                1.8,
                1.37
            ],
            "label_certainty": 2,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                0.7151992798301935,
                -0.032965729638831244,
                0.005076129151335691,
                0.6981242609396919
            ],
            "score": -1.0
        },
        {
            "center3d": [
                25.99999984503129,
                -6.413659054009911,
                0.3289432028830479
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                3.96,
                1.8,
                1.37
            ],
            "label_certainty": 2,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                -0.7068649813345358,
                0.03289508407018742,
                -0.005475805274628736,
                -0.7065619768736047
            ],
            "score": -1.0
        },
        {
            "center3d": [
                28.57,
                -6.72,
                0.47
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                3.96,
                1.8,
                1.41
            ],
            "label_certainty": 2,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                -0.7071073056108934,
                0.005505677989137722,
                0.03288670936708505,
                0.7063196232645582
            ],
            "score": -1.0
        },
        {
            "center3d": [
                17.9417990603285,
                4.047919592487037,
                -0.4298381193087091
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                3.66,
                1.8,
                1.4034827588118874
            ],
            "label_certainty": 2,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                0.7061942370819255,
                -0.005447702826512753,
                -0.03290636115848807,
                -0.7072320647718813
            ],
            "score": -1.0
        },
        {
            "center3d": [
                20.45,
                4.51,
                -0.31
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                4.18,
                2.0,
                1.5
            ],
            "label_certainty": 2,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                0.7072691145493584,
                -0.032907514186323296,
                0.005445972583162032,
                0.706157090523962
            ],
            "score": -1.0
        },
        {
            "center3d": [
                24.182930691745177,
                3.957377988250483,
                -0.21057144426054156
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                3.9935178142256045,
                1.8765534659735825,
                1.3706025545077207
            ],
            "label_certainty": 2,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                0.7072691145493584,
                -0.032907514186323296,
                0.005445972583162032,
                0.706157090523962
            ],
            "score": -1.0
        },
        {
            "center3d": [
                26.56403718760992,
                3.4141810443770053,
                -0.07728835626150013
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                3.99,
                1.88,
                1.37
            ],
            "label_certainty": 2,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                0.7072691145493584,
                -0.032907514186323296,
                0.005445972583162032,
                0.706157090523962
            ],
            "score": -1.0
        },
        {
            "center3d": [
                28.9087287526382,
                2.7749496885068696,
                0.061472400426277635
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                3.99,
                1.88,
                1.37
            ],
            "label_certainty": 2,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                0.7072691145493584,
                -0.032907514186323296,
                0.005445972583162032,
                0.706157090523962
            ],
            "score": -1.0
        },
        {
            "center3d": [
                31.80376110462618,
                2.413184128432301,
                0.20248894322203623
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                4.025175213620685,
                1.9424920472975067,
                1.37
            ],
            "label_certainty": 2,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                0.7072691145493584,
                -0.032907514186323296,
                0.005445972583162032,
                0.706157090523962
            ],
            "score": -1.0
        },
        {
            "center3d": [
                69.01,
                0.68,
                1.73
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                4.39,
                1.83,
                1.62
            ],
            "label_certainty": 2,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                -0.7174576529992662,
                0.03299615793779559,
                -0.0049519706657062896,
                -0.695802592479113
            ],
            "score": -1.0
        },
        {
            "center3d": [
                42.98202899707613,
                -7.929520596676596,
                0.993298589588324
            ],
            "classname": "Car",
            "created_by": "g.kuschk",
            "dimension3d": [
                3.7507295994605845,
                1.8,
                1.4635864010778035
            ],
            "label_certainty": 2,
            "measured_by": {
                "Camera": 1,
                "Lidar": 1,
                "Radar": 1
            },
            "object_id": -1,
            "occlusion": 1,
            "orientation_quat": [
                -0.7071073056108926,
                0.005505677989137767,
                0.032886709367085126,
                0.706319623264559
            ],
            "score": -1.0
        }
    ]
}

使用的时候可以通过:https://github.com/wzan0001/Astyx-radar-dataset-convert-to-kitti-format

将该数据集转换为kitti格式使用,该方法实现了对于radar的转换

补充:值得注意的是本作者利用该数据集使用AVOD网络将相机和雷达融合的文章为:

 Deep learning based 3D object detection for automotive radar and camera.

2. VoD数据集 2022

 原文:Multi-Class Road User Detection With 3+1D Radar in the View-of-Delft Dataset

目前的获取方式:https://docs.google.com/forms/d/e/1FAIpQLSdKvkuKbzmJTn8raJBAWgekAJCpaQLS_ED63sUS89Ezo61RCQ/viewform

填写表单申请,需要是学生邮箱,科研用途。符合要求作者会将数据集链接发送到你的邮件中下载即可。可以说是目前能拿到的做的比较好的数据集了,介绍在官网,非常的详尽:The View of Delft dataset | Documentation and development kit

阐述了下一代雷达(4D)会在自动驾驶领域领域有较为重大的意义,在消融研究中,作业也探讨了多级道路用户检测中额外的高度信息(elevation),以及多普勒、雷达截面、时间积累的好处。还对于激光雷达和雷达的点云形式做了对比。

该数据集包含8693帧同步和标定的64线激光雷达、双目相机和3+1D雷达在复杂的城市交通中获取的数据。它由123106个移动和静态物体的三维边界框注释组成,包括26587个行人,10800个自行车手和26949个汽车标签。结果表明,对64线激光雷达数据的目标探测仍然优于3+1D雷达数据,但添加高程信息和连续雷达扫描的集成有助于缩小这一差距。

对于多普勒信息的应用,当把多普勒通道加入PointNet++中有一定的提升。

多普勒维度可以有利于三维对象检测在两个方面:

1)分类,因为类可能有不同的速度模式;

2)在方向估计,作为一个对象的一般速度(移动方向)与其方向高度相关。

数据集对比:

本文三个贡献:

1. 作者同样使用PointPillars作为baseline测试了雷达Doppler维度、RCS以及俯仰角维度的加入对结果的影响;

2. 对比了激光雷达与雷达在目标检测上的性能,结果表明激光雷达仍然要好一些,但是可以预见的是未来radar检测还是很有潜力的,并且对于速度维度的检测雷达是独一份的;

3. 提出VoD数据集。

接下来是对数据集的说明:

 主要包含了威力登的64线激光雷达、IDS的双目相机(230W像素),以及采埃孚(ZF)的4D雷达,配合IMU、GPS以及RTK服务以及轮速器。

提供的是与Kitti一样的同步后以帧形式的:由激光雷达点云、校正的mono图像、雷达点云和变换信息。选择激光雷达时间戳作为lead(主要的),选取原则是最近邻的时间戳,最大容差为50毫秒(误差不算小)。这些帧的时间顺序为10Hz(同步后),它们被组织成平均长度为∼40秒的片段。激光雷达是做过运动补偿的系统的定义也是参考Kitti,包括坐标系的定义以及文件的组织。除了这个同步版本的数据集,还提供“原始”(raw)异步记录数据,包括所有13 Hz的雷达扫描,以及从左右相机获得的30 Hz的校正相机图像。这可以有利于研究人员寻找更丰富的时间数据,用于检测、跟踪、预测或其他任务。

标注规则:在激光雷达传感器50米内,部分或全部在相机视场内(水平视场:±32°,垂直视场:±22°)都用6个自由度(6自由度)3D边界框标注。一共有13个类别,对于每个对象还提供了两种类型的遮挡(“空间”和“照明”)和一个活动属性(“停止”、“移动”、“停车”、“推”、“坐”)的遮挡级别。

 (9+4个类别)

标注是由 https://understand.ai, a subsidiary of DSpace.完成的

使用PointPillars作为Baseline,对于点的encoding,取p = [x, y, z, vrel, RCS], 其中速度是经过补偿的绝对速度。时间合并点云,以激光雷达为标准,合并(merge)到最后一帧。也提出了常规的数据增强可能并不适用,例如RCS和速度维度与空间位置实际上有一定的关系而不能随意的去增强。

对于该数据集性能的测试,作者只选取了三个类别:car、pedestrian、cyclist。将数据集以59%/15%/26%的比例分割为训练、验证和测试集,这样来自同一剪辑的帧将只在一个片段中出现(根据不同片段合理划分)。

评估指标采用了和kitti一样的两个AP以及AOS(一个评估分类一个评估角度),car大目标IoU采用的是50%,而行人和骑行者则采用0.25的IoU。结果来源于 1)整个注释区域(相机视野50米)和2)更安全相关区域称为“驾驶走廊”,定义为一个矩形的地面前[−4m<x<+4m,z<25m]相机坐标。

 可以看出当维度全的时候一般都获得了最好的效果,并且当积累5个scan结果要好一些,作者只做了3和5类似的还可以多做几组。baseline是激光雷达的PP,可以看出激光雷达效果更好一点。随着距离整体的AP还是下降的。

对于cyclist来说,所有的有RCS属性的效果都是最好的,车轮和踏板的圆周运动,再加上靠近中心的高反射性金属框架,产生了一个清晰和独特的反射模式,雷达可以更可靠地探测到。

 错误检测的例子: (a)合并小对象(两个行人作为一个骑自行车,(b)大的对象分成小的(一个骑自行车是两个行人),(c)强烈的反射和杂乱附近(金属极和高限制)和(d)遥远的物体反射太少(遥远的行人)。

数据集:

3.  RADIal 数据集

原文:Raw High-Definition Radar for Multi-Task Learning

数据集获取方式:GitHub - valeoai/RADIal

下载方式为Google Drive:(提醒:数据集较大包含持续时间为1到4分钟的91个片段,共2小时。)https://drive.google.com/drive/folders/1vCis5mvO5qg7QlM69MqJ3Ni-gFunm5uz?usp=sharing

该数据集时法雷奥公司做的(他们还做过WoodScape数据集)。

提出了一个模型FFT-RadNet,以及两个小时长度的原始数据集(raw,camera、laser、HD radar)RADIal for “Radar, LiDAR et al

 可以看出该数据集的特色是保留了原始的数据,不同的处理方法后的结果都有。.RADIal是唯一提供高清雷达的数据集,结合相机,激光雷达和测程,同时提出检测和自由空间分割任务的数据集。

数据集中分类:

  设备信息:

4.TJ4DRadSet (2022) 目前并未开源

原文:TJ4DRadSet: A 4D Radar Dataset for Autonomous Driving

与本文强相关的文章为(建议一块阅读)3D Object Detection for Multi-frame 4D Automotive Millimeter-wave Radar Point Cloud

获取链接(目前尚未公开):GitHub - TJRadarLab/TJ4DRadSet: TJ4DRadSet: A 4D Radar Dataset for Autonomous Driving

 文章的工作主要是使用了Oculii的4D雷达,制作了一个数据集,通过其他文章可以看出该课题组依照这个数据集发表了几篇延伸性的文章。

 TJ4DRadSet共包含40K帧的同步数据,其中7757帧,44个序列具有高质量注释的3D边界框和跟踪id。三维标注系统采用联合多传感器标注和多轮手动检查标注。

平台如下:激光雷达(通过参数对比及图片可以确定为Velodyne-32C激光雷达)、4D雷达(Oculii Eagle)以及一个计算平台,有使用惯导并且配有RTK。

 然后使用PointPillars作为Baseline测试了一下,结果:

补充:RadarScenes 2021

原文:RadarScenes: A Real-World Radar Point CloudData Set for Automotive Application

获取链接:RadarScenes - RadarScenes

 正如其名称,由多个场景构成。它由11个对象类别、5个大型主要类别和总共7000多道路参与者组成,100公里的不同街道场景上被手动标记组成。粗略的为:汽车、大型车辆、两轮车、行人组和行人五个类别。不同的场景列结合了诸如天气条件、交通密度或道路类别(高速公路、郊区、市中心)等因素,并且列的序列数据表明是否有时间相干序列可用。

传感器配置:4个77GHz的雷达:

 标注了11个类别car, large vehicle, truck, bus, train, bicycle, motorized two-wheeler, pedestrian, pedestrian group, animal, and other

 

 数据集的分布:

 

总结:

总的来说数据集还是比较缺乏的,特别是高质量的数据集,上述四个数据集从不同角度做出了其贡献,在使用数据集的同时分析数据集采集的科学性、以及底层原理的科学性也尤为重要。后续如果有相应更新也会更新到文章中。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

S1000D规范导读

S1000D最初是由欧洲航空工业联盟开发的技术出版物规范&#xff0c;它主要为具有较长生命的复杂产品运行和维修而设计。这些年不断发展&#xff0c;已经扩展到这些行业的产品&#xff1a;国防系统 - 包括海、陆、空的产品&#xff0c;民用航空产品&#xff0c;基建行业产品和船舶…

15/365 java static final

1.static属性,方法 类内属性或方法用static修饰&#xff0c;表示该属性或方法属于类&#xff0c;不依赖于实例对象&#xff0c;所以不需要用对象调用&#xff0c;而是直接用类名调用。 static方法只能调用其他static方法&#xff0c;而普通方法可以调用其他的普通方法和stati…

Vue3商店后台管理系统设计文稿篇(二)

记录使用vscode构建Vue3商店后台管理系统&#xff0c;这是第二篇&#xff0c;主要记录Vue3中生命周期钩子&#xff0c;模板语法&#xff0c;以及相关的代码 文章目录一、Vue3生命周期二、Vue3模板语法三、代码展示正文内容&#xff1a; 一、Vue3生命周期 每个 Vue 实例在被创建…

拆机详解2:比Macintosh还早?苹果Lisa拆解

hello大家好&#xff0c;我是每天&#xff08;实际并不是每天&#xff0c;你们点的赞太少了&#xff0c;每人点一个赞我就日更&#xff09;给你们讲解的Eric_Bells.这里感谢博主半身风雪的支持&#xff0c;我会更新的&#xff01;看到的麻烦点个关注谢谢拉 今天唠唠一台比Maci…

【蓝桥杯基础题】2017年省赛—九宫幻方

&#x1f451;专栏内容&#xff1a;&#x1f449;蓝桥杯刷题&#x1f448;⛪个人主页&#xff1a;&#x1f449;子夜的星的主页&#x1f448;&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录一、题目背景二、题目描述1.问题描述2.输入格式3.输出格式4.一个例…

CAN通信----(创芯科技)CAN分析仪使用----CANTest安装和驱动安装

前言 我在调试CAN通信时&#xff0c;使用的是在淘宝买的CAN分析仪。 CAN分析仪的实物如下&#xff1a; 使用CAN分析仪&#xff0c;调试CAN通信&#xff0c;PC电脑端需要使用CANTest测试软件&#xff0c;还需要安装驱动。 一、创芯科技 CAN分析仪资料包下载 步骤1&#xff1…

测开-基础篇

一、软件测试的生命周期 先来回顾软件的生命周期 &#x1f351;软件的生命周期 需求分析--》计划--》设计--》编码--》测试--》运营维护 需求分析&#xff1a;进行市场分析&#xff0c;这个需求量大不大&#xff1f;投入与盈利的占比&#xff1f;技术上 能否实现或者说实现的…

深度学习 10 神经网络简介

1. 深度学习和机器学习的主要区别在于对数据的处理, 机器学习主要通过算法直接进行推断, 而深度学习主要通过神经网络对各种算法进行加权, 然后汇总得出结论. 2. 常用的激活函数: tanh函数relu函数leaky relu函数1.1 深度学习介绍 1.1.1 区别 机器学习的特征工程步骤是要靠手…

Effective Objective-C 2.0学习记录(五)

23.通过委托和数据源协议进行对象间通信 使用委托模式&#xff1a;获取网络数据的类含有一个“委托对象”&#xff0c;在获取完数据后&#xff0c;它会回调这个委托对象。 利用协议机制&#xff0c;很容易就 能以OC代码实现此模式&#xff0c;在图中演示的情况下。可以这样定义…

【Java AWT 图形界面编程】Container 容器总结

文章目录一、AWT 简介二、AWT 核心类继承体系三、Container 容器类子类四、Container 容器常用 API五、Frame 窗口示例六、Panel 示例七、窗口中文乱码处理八、ScrollPane 可滚动容器示例一、AWT 简介 Java 中 使用 AWT 和 Swing 进行 图形界面开发 , AWT 是 抽象窗口工具集 , …

线程安全问题(3)

线程不安全:在多线程的调度情况下&#xff0c;导致出现了一些随机性&#xff0c;随机性是代码中出现了一些BUG&#xff0c;导致我们的线程是不安全的 造成线程不安全的原因: 1)操作系统抢占式执行&#xff0c;线程调度随机&#xff0c;这是万恶之源&#xff0c;我们无能为力 2)…

Web进阶:Day7 响应式、BootStrap、实战演练

Web进阶&#xff1a;Day7 Date: January 10, 2023 Summary: 响应式、BootStrap、实战演练 响应式 媒体查询 目标&#xff1a;能够根据设备宽度的变化&#xff0c;设置差异化样式 媒体特性常用写法 媒体特性常用写法&#xff1a; max-width&#xff08;从小到大&#xff0…

transformers包介绍——nlp界最顶级的包——可以不用 但不能不知道——python包推荐系列

背景1 现在在AI行业&#xff0c;什么最火&#xff1f;计算机视觉还是自然语言处理&#xff1f;其实不得不说&#xff0c;现在nlp很火。还有人记得上个月很多科技爱好者都在玩的chatgpt么&#xff1f;那个就是nlp技术的一大应用。现在都在觉得AI赚钱&#xff0c;工资高&#xf…

深度学习 12 正则化

1. 对于高方差(过拟合)&#xff0c;有以下几种方式&#xff1a; 获取更多的数据&#xff0c;使得训练能够包含所有可能出现的情况 正则化&#xff08;Regularization&#xff09; 寻找更合适的网络结构 2. 对于高偏差(欠拟合)&#xff0c;有以下几种方式&#xff1a; 扩大网…

【C语言进阶】只看此篇,让你学会动态内存管理

目录 前言 一、为什么存在动态内存分配 二、动态内存函数的介绍 1 、malloc和free 2、 calloc 3 、realloc 三、常见的动态内存错误 四、动态内存管理笔试题 1 题目1&#xff1a; 2 题目2&#xff1a; 3 题目3&#xff1a; 4 题目4&#xff1a; 五、C/C程序的…

5.10回溯法--圆排列问题--排列树

圆排列问题描述 给定n个大小不相等的圆&#xff0c;要将这n个大小不相等的圆排进一个矩形框中&#xff0c;且要求个个圆都与矩形框的最底边相切。要找出最小长度的圆排列。 问题分析 排列排列&#xff0c;解空间是一个排列树。 设开始时&#xff0c;a[n]储存n个圆的半径&…

笔试强训48天——day26

文章目录一. 单选1.在单处理器系统中&#xff0c;如果同时存在有12个进程&#xff0c;则处于就绪队列中的进程数量最多为&#xff08;&#xff09;2.在系统内存中设置磁盘缓冲区的主要目的是&#xff08;&#xff09;3.下列选项中&#xff0c;会导致进程从执行态变为就绪态的事…

时间复杂度空间复杂度

算法效率数据结构算法时间复杂度大O的渐进表示法三种时间复杂度几道例题一.简单递归二结合代码来判断时间复杂度空间复杂度我们程序猿开始的时候肯定听了不少的:数据结构和算法,那么阿涛就给大家说说自己的拙见吧.数据结构 数据结构就是我们用来组织数据的方式,比如我们可以把…

JVM-【面试题】-垃圾收集算法+垃圾收集器,以后就不用担心对象那些事了

一、垃圾收集算法在jvm里对可回收的对象在不同的垃圾收集器里&#xff0c;有不同的回收算法&#xff0c;具体的可以分为这四种&#xff1a;分代收集算法、复制算法、标记清除算法、标记整理算法1.1 分代收集算法当前虚拟机的垃圾收集都采用分代收集算法&#xff0c;这种算法没有…

【NI Multisim 14.0操作实例——最小锁存器电路】

目录 序言 &#x1f525;1.设置工作环境 &#x1f525;2.设置原理图图纸 &#x1f525; 3.设置图纸的标题栏 &#x1f525; 4. 增加元器件 &#x1f525; 5. 放置总线 &#x1f525; 6. 添加总线分支 序言 NI Multisim最突出的特点之一就是用户界面友好。它可以使电路…