视觉SLAM数据集(一):TUM DataSet

news/2024/3/29 13:18:32/文章来源:https://blog.csdn.net/qq_42257666/article/details/129113862

首先给出数据集下载地址:TUM Dataset Download。 如果你是第一次做实验,建议下载xyz的数据集,因为它的动作相对很小,只包含桌面上的一小部分。一旦成功测试,就可以试试desk数据集,它包含四张桌子和几个闭环。

数据集目录

  • 一、文件格式
    • 1、彩色图像和深度图
    • 2、真实轨迹
    • 3、Kinect相机的内参标定
  • 二、固有的相机参数
    • 1、彩色摄像机的标定
    • 2、深度图像的标定
    • 3、红外摄像头的标定
    • 4、视觉检验的视频
  • 三、RGB-D 基准测试的有用工具
    • 1、关联颜色和深度图像
    • 2、评估
      • 2.1、绝对轨迹误差 (ATE)
      • 2.2、相对姿势误差 (RPE)
    • 3、从图像生成点云
    • 4、将点云添加到 ROS 包文件
    • 5、在 RVIZ 中可视化数据集
  • 四、详细信息
    • 1、测试和调试
    • 2、手持式SLAM
    • 3、机器人SLAM
    • 4、结构与纹理
    • 5、动态对象
    • 6、3D 物体重建
    • 7、验证文件(无公开的真实值)
    • 8、校准文件

一、文件格式

从Kinect相机拍摄的RGB-D数据集格式如下:

1、彩色图像和深度图

我们提供带时间戳的彩色和深度图像作为一个压缩包文件(tar.gz)。

  • color图像都是640x480的8位RGB图像,格式是PNG。
  • depth图像是640x480的16位单色图像,格式是PNG。
  • color和depth图像已经使用PrimeSense的OpenNI驱动程序进行了预校准,即color图像和depth图像中的像素已经1:1对应。
  • depth图像按因子5000缩放,即深度图像中的像素值5000对应于距相机1米的距离、10000对应于2米的距离等。像素值0表示缺失值/无数据。

2、真实轨迹

我们提供了一个在固定坐标系中包含相机的平移和方向的txt文件作为真实的轨迹。请注意,我们的自动评估工具期望的是这样格式的真实轨迹和预测轨迹。

  • 在txt文件中每一行包含一个位姿
  • 每一行的形式都是“timestamp tx ty tz qx qy qz qw
  • 时间戳(float)表示从Unix时代以来的秒数
  • tx ty tz(3 floats)表示彩色相机的光学中心相对于运动捕捉系统定义的世界原点的位置
  • qx qy qz qw (4 floats)以世界原点的单位四元数的形式给出彩色相机的光学中心的方向。
  • 文件可能包含必须以#开头的注释

3、Kinect相机的内参标定

Kinect基于高级多项式扭曲函数,在相机上存储了出厂校准。OpenNI驱动程序使用此校准来消除图像失真,并将Depth图像(由红外相机拍摄)配准到RGB图像。因此,我们数据集中的深度图像被重新投影到彩色相机的框架中,这意味着深度图和彩色图像中的像素之间存在1:1的对应关系。

从2D图像到3D点云的转换工作如下。注意,每个相机的焦距(fx/fy)、光学中心(cx/cy)、失真参数(d0-d4)和深度校正因子是不同的。下面的Python代码说明了如何根据像素坐标和深度值计算3D点:

fx = 525.0  # focal length x
fy = 525.0  # focal length y
cx = 319.5  # optical center x
cy = 239.5  # optical center yfactor = 5000 # for the 16-bit PNG files
# OR: factor = 1 # for the 32-bit float images in the ROS bag filesfor v in range(depth_image.height):for u in range(depth_image.width):Z = depth_image[v,u] / factor;X = (u - cx) * Z / fx;Y = (v - cy) * Z / fy;

二、固有的相机参数

注意,上面的脚本使用默认(未校准)的内在参数。fr1和fr2数据集中使用的Kinect的固有参数如下:

1、彩色摄像机的标定


我们从rgbd_dataset_freiburg1/2_RGB_acalibration.bag计算了RGB相机的固有参数。
在这里插入图片描述

注意,Freiburg 3序列的彩色图像和红外图像都已经无失真了,因此失真参数都为零。原始失真值可以在tgz文件中找到。
注意:我们建议使用ROS默认数据集(即,无失真),因为预配准的深度图像的失真并不重要。

2、深度图像的标定


我们通过将报告的深度值与RGB标定板估计的深度进行比较来验证深度值。在本实验中,我们发现Kinect报告的深度值偏离了恒定的缩放因子,如下表所示:

Camerads
Freiburg 1 Depth1.035
Freiburg 2 Depth1.031
Freiburg 3 Depth1.000

注意:我们已经对所有序列的深度图像进行了相应的预缩放,因此不需要在您一侧进行任何操作。

3、红外摄像头的标定


我们还提供了红外摄像头的内参。注意我们数据集提供的depth图像已经和rgb图像预配准了。因此,不需要根据内参再校准depth图像。
在这里插入图片描述

注意,Freiburg 3序列的彩色图像和红外图像都已经无失真了,因此失真参数都为零。原始失真值可以在tgz文件中找到。

4、视觉检验的视频

对于单个数据集的视觉检查,我们还提供Kinect(RGB和Depth)和外部摄像机的电影。电影格式是存储在AVI容器中的mpeg4。

三、RGB-D 基准测试的有用工具

我们提供了一组工具,可用于预处理数据集并评估 SLAM/跟踪结果。脚本可以点这里下载。

要使用 Subversion 签出存储库,请运行

svn checkout https://svncvpr.in.tum.de/cvpr-ros-pkg/trunk/rgbd_benchmark/rgbd_benchmark_tools

1、关联颜色和深度图像

Kinect 以不同步的方式提供颜色和深度图像。这意味着来自彩色图像的时间戳集不会与深度图像的时间戳集相交。因此,我们需要某种将彩色图像与深度图像相关联的方法。为此,您可以使用“associate.py”脚本。它从文件和文件中读取时间戳,并通过查找最佳匹配项来联接它们。

usage: associate.py [-h] [--first_only] [--offset OFFSET][--max_difference MAX_DIFFERENCE]first_file second_fileThis script takes two data files with timestamps and associates thempositional arguments:first_file            first text file (format: timestamp data)second_file           second text file (format: timestamp data)optional arguments:-h, --help            show this help message and exit--first_only          only output associated lines from first file--offset OFFSET       time offset added to the timestamps of the second file(default: 0.0)--max_difference MAX_DIFFERENCEmaximally allowed time difference for matching entries(default: 0.02)

2、评估

在估计 Kinect 的相机轨迹并将其保存到文件中后,我们需要通过将其与地面事实进行比较来评估估计轨迹中的误差。有不同的错误指标。两种突出的方法是绝对轨迹误差(ATE)和相对姿势误差(RPE)。ATE 非常适合测量可视 SLAM 系统的性能。相比之下,RPE非常适合测量视觉里程计系统的漂移,例如每秒漂移。

对于这两个指标,我们提供了可在此处下载的自动评估脚本。请注意,我们的网站上还有一个在线版本。 这两个轨迹都必须存储在一个文本文件中(格式:“时间戳 tx ty tz qx qy qy qw”,更多信息)。为了进行比较,我们提供一组轨迹来自 RGBD-SLAM。

2.1、绝对轨迹误差 (ATE)


绝对轨迹误差直接测量真实轨迹点与估计轨迹点之间的差异。作为预处理步骤,我们使用时间戳将估计的姿势与真实姿势相关联。基于这种关联,我们使用奇异值分解来对齐真实轨迹和估计轨迹。最后,我们计算每对姿势之间的差异,并输出这些差异的平均值/中位数/标准偏差。或者,该脚本可以将这两个轨迹绘制到 png 或 pdf 文件中。

usage: evaluate_ate.py [-h] [--offset OFFSET] [--scale SCALE][--max_difference MAX_DIFFERENCE] [--save SAVE][--save_associations SAVE_ASSOCIATIONS] [--plot PLOT][--verbose]first_file second_fileThis script computes the absolute trajectory error from the ground truth
trajectory and the estimated trajectory.positional arguments:first_file            first text file (format: timestamp tx ty tz qx qy qzqw)second_file           second text file (format: timestamp tx ty tz qx qy qzqw)optional arguments:-h, --help            show this help message and exit--offset OFFSET       time offset added to the timestamps of the second file(default: 0.0)--scale SCALE         scaling factor for the second trajectory (default:1.0)--max_difference MAX_DIFFERENCEmaximally allowed time difference for matching entries(default: 0.02)--save SAVE           save aligned second trajectory to disk (format: stamp2x2 y2 z2)--save_associations SAVE_ASSOCIATIONSsave associated first and aligned second trajectory todisk (format: stamp1 x1 y1 z1 stamp2 x2 y2 z2)--plot PLOT           plot the first and the aligned second trajectory to animage (format: png)--verbose             print all evaluation data (otherwise, only the RMSEabsolute translational error in meters after alignmentwill be printed)

2.2、相对姿势误差 (RPE)


为了计算相对姿势误差,我们提供了一个脚本“evaluate_rpe.py”.此脚本计算时间戳对之间的相对运动误差。默认情况下,脚本计算估计轨迹文件中所有时间戳对之间的误差。由于估计轨迹中的时间戳对数在轨迹长度上是二次的,因此将此集合下采样为固定数量 (–max_pairs) 是有意义的。或者,可以选择使用固定窗口大小 (–fixed_delta)。在这种情况下,估计轨迹中的每个姿势都根据窗口大小 (–delta) 和单位 (–delta_unit) 与后面的姿势相关联。此评估技术对于估计漂移很有用。

usage: evaluate_rpe.py [-h] [--max_pairs MAX_PAIRS] [--fixed_delta][--delta DELTA] [--delta_unit DELTA_UNIT][--offset OFFSET] [--scale SCALE] [--save SAVE][--plot PLOT] [--verbose]groundtruth_file estimated_fileThis script computes the relative pose error from the ground truth trajectory
and the estimated trajectory.positional arguments:groundtruth_file      ground-truth trajectory file (format: "timestamp tx tytz qx qy qz qw")estimated_file        estimated trajectory file (format: "timestamp tx ty tzqx qy qz qw")optional arguments:-h, --help            show this help message and exit--max_pairs MAX_PAIRSmaximum number of pose comparisons (default: 10000,set to zero to disable downsampling)--fixed_delta         only consider pose pairs that have a distance of deltadelta_unit (e.g., for evaluating the drift persecond/meter/radian)--delta DELTA         delta for evaluation (default: 1.0)--delta_unit DELTA_UNITunit of delta (options: 's' for seconds, 'm' formeters, 'rad' for radians, 'f' for frames; default:'s')--offset OFFSET       time offset between ground-truth and estimatedtrajectory (default: 0.0)--scale SCALE         scaling factor for the estimated trajectory (default:1.0)--save SAVE           text file to which the evaluation will be saved(format: stamp_est0 stamp_est1 stamp_gt0 stamp_gt1trans_error rot_error)--plot PLOT           plot the result to a file (requires --fixed_delta,output format: png)--verbose             print all evaluation data (otherwise, only the meantranslational error measured in meters will beprinted)

3、从图像生成点云


深度图像已配准到彩色图像,因此深度图像中的像素已与彩色图像中的像素一一对应。因此,生成彩色点云非常简单。示例脚本位于“generate_pointcloud.py”,以彩色图像和深度图为输入,并生成PLY格式的点云文件。这种格式可以被许多3D建模程序读取,例如meshlab。您可以下载适用于Windows,Mac和Linux的meshlab。

usage: generate_pointcloud.py [-h] rgb_file depth_file ply_fileThis script reads a registered pair of color and depth images and generates a
colored 3D point cloud in the PLY format.positional arguments:rgb_file    input color image (format: png)depth_file  input depth image (format: png)ply_file    output PLY file (format: ply)optional arguments:-h, --help  show this help message and exit

在这里插入图片描述

4、将点云添加到 ROS 包文件

在下载页面上,我们已经为RVIZ中的视觉检查数据集提供了ROS包文件,并添加了点云。由于生成的文件很大,我们将这些包文件缩减采样为 2 Hz。如果要生成包含所有图像(30 Hz)的点云的ROS包文件,则可以使用“add_pointclouds_to_bagfile.py”脚本。

usage: add_pointclouds_to_bagfile.py [-h] [--start START][--duration DURATION] [--nth NTH][--skip SKIP] [--compress]inputbag [outputbag]This scripts reads a bag file containing RGBD data, adds the corresponding
PointCloud2 messages, and saves it again into a bag file. Optional arguments
allow to select only a portion of the original bag file.positional arguments:inputbag             input bag fileoutputbag            output bag fileoptional arguments:-h, --help           show this help message and exit--start START        skip the first N seconds of input bag file (default:0.0)--duration DURATION  only process N seconds of input bag file (default: off)--nth NTH            only process every N-th frame of input bag file(default: 15)--skip SKIP          skip N blocks in the beginning (default: 1)--compress           compress output bag file

5、在 RVIZ 中可视化数据集

RVIZ是ROS中的标准可视化工具。它可以很容易地适应显示许多不同的消息。特别是,它可用于显示ROS包文件中的点云。为此,请运行(在三个不同的控制台中)

roscore
rosrun rviz rviz
rosbag play rgbd_dataset_freiburg1_xyz-2hz-with-pointclouds.bag

如果这是第一次启动,则必须启用内置显示(菜单 –>插件 –>选中内置插件的“已加载”)。在显示选项卡中,将“固定帧”设置为“/world”。单击“添加”,然后选择 PointCloud2 显示,并将主题设置为“/camera/rgb/points”。要显示颜色,请在点云显示中将“颜色转换器”更改为“RGB8”,并将“样式”更改为“点”。如果需要,可以将衰减时间设置为合适的值(例如 5 秒),以便在点进入时累积查看器中的点。然后,结果应如下所示:

在这里插入图片描述
名称为*_validation这些序列不包含基本事实。他们只能使用在线工具进行评估。

四、详细信息

1、测试和调试

freiburg1_xyz
在这里插入图片描述
对于此序列,Kinect 指向办公环境中的典型办公桌。此序列仅包含沿 Kinect 主轴的平移运动,而方向(大部分)保持固定。此序列非常适合调试目的,因为它非常简单。
freiburg1_rpy
在这里插入图片描述
对于此序列,Kinect 指向办公环境中的典型办公桌。当我们保持位置固定时,我们沿所有三个主轴旋转 Kinect(RPY=滚动-俯仰-偏航)。此序列非常适合调试目的,即检查方向估计/跟踪是否有效。
freiburg2_xyz
在这里插入图片描述
此序列包含用于调试翻译的非常干净的数据。Kinect 沿主轴在 x、y 和 z 方向上非常缓慢地移动。慢速相机运动基本上确保数据中(几乎)没有运动模糊和滚动快门效果。
freiburg2_rpy
在这里插入图片描述
此序列包含用于调试旋转的非常干净的数据。Kinect 在原地非常缓慢地绕主轴转动(RPY 代表滚动俯仰偏航)。慢速相机运动基本上确保数据中(几乎)没有运动模糊和滚动快门效果。

2、手持式SLAM

freiburg1_360
在这里插入图片描述
此序列包含典型办公环境中的 360 度转弯。
freiburg1_floor
在这里插入图片描述
简单地扫过办公室的木地板。地板包含几个结孔,使用SIFT或SURF等视觉特征检测器可以轻松跟踪。此外,大部分场景(地板)都是平面的,除了一把办公椅在一段时间后变得可见。
freiburg1_desk
在这里插入图片描述
此序列包含典型办公环境中对四张办公桌的多次扫描(在相同的四张办公桌中还有第二个序列称为 desk2)。
freiburg1_desk2
在这里插入图片描述
此序列包含典型办公环境中对四张办公桌的多次扫描(类似于办公桌,但第二次录制)。
freiburg1_room
在这里插入图片描述
对于这个序列,我们沿着整个办公室的轨迹拍摄。它从四张桌子开始(参见办公桌和办公桌2的顺序),但继续围绕房间的(外)墙,直到环闭合。此序列非常适合评估 SLAM 系统应对闭环的能力。
freiburg2_desk
在这里插入图片描述
对于这个序列,我们录制了一个典型的办公室场景,有两张桌子、一台电脑显示器、键盘、电话、椅子等。Kinect 在两个表周围移动,以便闭合循环。在freiburg2_person中也有类似的序列,其中还有一个人坐在其中一张桌子上,他在录制过程中移动了各种物体。
freiburg3_long_office_household
在这里插入图片描述
华硕Xtion传感器在家庭和办公室场景中沿着大圆圈移动,具有许多纹理和结构。轨迹的终点与起点重叠,因此有一个大的环闭合。

3、机器人SLAM

freiburg2_pioneer_360
在这里插入图片描述
这个序列是从安装在先锋机器人顶部的 Kinect 录制的。先锋当场操纵了(超过)360度转弯。袋子文件还包含机器人的激光扫描和测程数据。

4、结构与纹理

freiburg3_nostructure_texture_far
在这里插入图片描述
华硕Xtion沿着纹理平面移动了两米高。纹理具有高度的辨别性,因为它由几张会议海报组成。

5、动态对象

freiburg3_sitting_static
在这里插入图片描述
两个人坐在桌子前,说话,打了个手势。华硕Xtion传感器已手动固定到位。该序列旨在评估视觉 SLAM 和测程算法对缓慢移动的动态对象的鲁棒性。
freiburg3_sitting_rpy
在这里插入图片描述

两个人坐在桌子前,说话,打了个手势。华硕Xtion传感器已在同一位置沿主轴(滚动-俯仰-偏航)旋转。该序列旨在评估视觉 SLAM 和测程算法对缓慢移动的动态对象的鲁棒性。

6、3D 物体重建

freiburg3_teddy
在这里插入图片描述
华硕Xtion传感器在不同的高度绕着泰迪熊移动了两轮。泰迪熊有柔软的皮毛,穿着黄色光滑的衬衫。

7、验证文件(无公开的真实值)

freiburg1_desk2_validation
在这里插入图片描述
此序列包含典型办公环境中对四张办公桌的多次扫描(类似于办公桌,但第二次录制)。
freiburg3_sitting_rpy_validation
在这里插入图片描述
两个人坐在桌子旁,说话,打了个手势。华硕Xtion传感器已在同一位置沿主轴(滚动-俯仰-偏航)旋转。该序列旨在评估视觉 SLAM 和测程算法对缓慢移动的动态对象的鲁棒性。

8、校准文件

freiburg1_rgb_calibration
在这里插入图片描述
此序列包含棋盘格校准期间 Kinect 的颜色和深度图像。棋盘角的边长为0.02m。此序列旨在验证校准和重新校准。我们将此序列用于 (1) 查找动作捕捉系统和 Kinect 光学帧之间的外部摄像机参数,以及 (2) 估计动作捕捉系统和 Kinect 之间的时间戳延迟。

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

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

相关文章

C语言的学习小结——数组

一、一维数组的创建与初始化 1、格式: type_t arr_name[const_n];//type_t 是指数组的元素类型 //const_n 是一个常量表达式,用来指定数组的大小 注: 数组是使用下标来访问的,下标从0开始。 数组的大小可以通过计算得到&…

电商平台商品详情接口的应用场景

API接口的定义价格、库存量、发货地点等。此外,它还可以提供商品的详细信息,包括商品的图片、详细描述、规格参数、售后服务等。这些信息可以帮助用户更好地了解商品,从而更好地选择商品。其次,电商平台商品详情接口的实现原理是基…

使用Chemistry Development Kit (CDK) 来进行化学SMILES子结构匹配

摘要 SMILES是一种用于描述化合物结构的字符串表示法,其中子结构搜索是在大规模化合物数据库中查找特定的结构。然而,这种搜索方法存在一个误解,即将化合物的子结构视为一个独立的实体进行搜索,而忽略了它们在更大的化合物中的上…

极光笔记 | 埋点体系建设与实施方法论

PART 01 前 言随着网络技术的发展,从粗犷型到精细化运营型,再到现在的数字化运营,数据变得越来越细分和重要,不仅可以进行策略调整,还可以实现自动化的精细化运营。而数据价值的起点就是埋点,只有合理地埋点…

lammps教程:Ovito选择特定晶粒的方法

大家好,我是小马老师。 本文介绍如何使用ovito提取特定的晶粒。 在多晶的lammps模拟中,可能会对某一个特定晶粒的变形情况进行分析,此时,需要找到这个晶粒,并进行单独分析。 ovito有专用的晶粒识别命令,…

【系统分析师之路】2022上案例分析历年真题

【系统分析师之路】2022上案例分析历年真题 【系统分析师之路】2022上案例分析历年真题【系统分析师之路】2022上案例分析历年真题2022上案例分析历年真题第一题(25分)2022上案例分析历年真题第二题(25分)2022上案例分析历年真题第…

RocketMQ 5.x新版本部署优化一览

​ RocketMQ从2022年9月份开始推出了新的5.x大版本。相比于之前的4.x版本,5.x版本向云原生前进了一大步。在增强原因功能的基础上,更是支持多语言客户端,周边生态也进行了补强和完善,明显可以看到离Kafka老大哥又近了很大一步。 …

由Geoscene Enterprise 2.1 升级至Geoscene Enterprise 3.1

文章目录一、升级前工作二、升级Geoscene portal三、升级Web Adaptor(针对portal门户)四、升级Server 站点(作为门户托管服务器)五、升级Web Adaptor(针对server)六、升级Data Store需求:由GeoS…

springboot自定义starter时使用@AutoConfigureBefore、@AutoConfigureAfter的细节问题

正常利用springboot的自动装配 ConfB Configuration(proxyBeanMethodsfalse) public class ConfB {public ConfB(){System.out.println("ConfB构造方式执行...");} }不加spring.factories 项目包结构 此时resources中没有spring.factories 执行结果 2023-02-24…

教你用反射机制如何几分钟搭建完后端

如果想快速搭建后台跨域使用这些技术 反射mybatis-plusjson 反射可以实现动态数据的传输 一般对数据库进行操作肯定离不开这些代码 如果我们用反射机制只需要这一个就行 而说到反射的好处,一般情况下我们做增删改查需要大量的接口才能完成,而用反射我…

通过操作Cortex-A7核,串口输入相应的命令,控制LED灯进行工作

1.通过操作Cortex-A7核,串口输入相应的命令,控制LED灯进行工作 例如在串口输入led1on,开饭led1灯点亮 2.例如在串口输入led1off,开饭led1灯熄灭 3.例如在串口输入led2on,开饭led2灯点亮 4.例如在串口输入led2off,开饭led2灯熄灭 5.例如在串口输入led…

LabVIEW主VI前面板中显示或使用多个子VI

LabVIEW主VI前面板中显示或使用多个子VI想在程序中连接一个或多个子VI的前面板,但是当调用它们时,每个子VI在计算机屏幕上显示为一个新窗口。那么怎么能让每个子VI作为主VI前面板的一部分进行显示,而不是在屏幕上显示多个窗口?正在…

Malware Dev 00 - Rust vs C++ 初探

写在最前 如果你是信息安全爱好者,如果你想考一些证书来提升自己的能力,那么欢迎大家来我的 Discord 频道 Northern Bay。邀请链接在这里: https://discord.gg/9XvvuFq9Wb我会提供备考过程中尽可能多的帮助,并分享学习和实践过程…

mysql 内存架构

1. 背景 从 innodb 的整体架构中可以知道 innodb 的内存架构中分为 buffer pool 缓存区, change pool 修改缓冲区, adaptive hash index 自适应哈希索引, 和 log buffer 日志缓冲区. 2. buffer pool buffer pool 是用于缓冲磁盘页的数据,mysql 的80%的内存会分配给…

GroupDocs.Merger for Java

GroupDocs.Merger for Java GroupDocs.Merger for Java是一个文档操作API,可帮助您合并、拆分、交换或删除文档页面。API通过启用或禁用密码提供保护,并允许开发人员加入PDF、Microsoft Word、Excel和Powerpoint文档。 支持的文件格式 Microsoft Office格…

内存管理框架---Slab(二)

站在Arnold Lu南京大佬的肩膀,俯瞰内存管理之slab 文章目录slab层的由来slab/slub/slobslab层的设计思想slab相关数据结构创建slab描述符分配slab对象释放slab对象销毁缓存在内核栈上的静态分配高端内存的映射永久映射临时映射每个CPU的分配新的每个CPU接口编译时的…

为什么需要这个岗位,软件测试是干什么

目录 一、软件测试概念 二、软件测试目的 三、软件测试基本原则 四、软件测试主要工作内容 五、软件测试方法 六、测试工程师的职责 七、为什么要软件测试这个岗位 一、软件测试概念 软件测试:为了发现软件错误和缺陷(统称bug)而执行…

浅谈liunx init.d 和 rc.local 两种起动方式

浅谈liunx init.d 和 rc.local 两种起动方式 以rabbitmq 举例 (一).init.d 方式 开机自动重启设置 1.在/etc/init.d 目录下新建一个 rabbitmq [rootlocalhost init.d]# vi rabbitmq具体脚本如下所示: #!/bin/bash # # chkconfig: 2345 …

全球智慧能源解决方案服务商「雄韬股份」牵手企企通,谱写采购数字化变革之路

近日,全球知名智慧能源解决方案服务商「深圳市雄韬电源科技股份有限公司」(以下简称“雄韬股份”)与企企通达成合作。本次合作,企企通将为雄韬股份提供专业的采购数字化解决方案,推动企业采购更加智能、高效、透明&…

计算机网络(2)从十六进制的ip数据报中得到详细字段信息

本博文介绍如何将十六进制的ip报文拆分出具体的字段信息。社会计算机网络和网络协议分析的初学者参考(今天看了网络协议分析期末复习重点的最后一个大题,竟然一头雾水,然后快马加鞭翻阅各种资料,然后差不多学会 了)wir…