ICCV 2023|Occ2Net,一种基于3D 占据估计的有效且稳健的带有遮挡区域的图像匹配方法...

news2024/11/23 4:50:39

本文为大家介绍一篇入选ICCV 2023的论文,《Occ2Net: Robust Image Matching Based on 3D Occupancy Estimation for Occluded Regions》, 一种基于3D 占据估计的有效且稳健的带有遮挡区域的图像匹配方法。

36aac781fe1da456cda145cf336000ab.png

论文链接:https://arxiv.org/abs/2308.16160

开源代码:https://github.com/megvii-research/Occ2net/tree/main

总体思路

图像匹配是各种视觉应用中的基础和关键任务,如:同时定位和映射(SLAM),图像检索等,这些任务都需要精确的姿态估计。然而,大多数现存的方法忽视了由相机运动和场景结构引起的对象间的遮挡关系。在本文中,我们提出了一种新颖的图像匹配方法Occ2Net,该方法使用3D占位图模型来描述遮挡关系,并推断出被遮挡区域的匹配点。借助占位估计(OE)模块编码来归纳偏差,它大大简化了构建一个多视图一致的3D表示的过程,同时该表示能够整合多视图信息。再结合遮挡感知(OA)模块,通过引入注意力层和旋转对齐,实现了被遮挡点和可见点的匹配。我们在真实世界和模拟数据集上评估了我们的方法,结果显示其在多项指标上,尤其是在遮挡场景下,优于当前最先进的方法。

任务背景以及解决思路

图像匹配是各种视觉应用中的基础和关键任务,例如SLAM(同时定位与地图创建)和图像检索等。它的目标是在两幅或更多的图像中识别和对应相同或相似的结构/内容。图像匹配可以分为两类:基于特征的方法和密集式方法。基于特征的方法从图像中提取稀疏的关键点和描述符,然后基于相似性指标进行匹配;而密集式方法是估计图像像素或区块之间的密集对应关系。

042439a459b140a23a1fa7d4ce73658b.png

然而,这两种方法都无法很好地应对遮挡情况,遮挡在真实世界环境中是常见的。上图展示了这些挑战的一个例子。由于相机运动,两个图像的视差很大。尽管存在大量的重叠区域,但大的视差导致了遮挡,大大减少了可见匹配对的数量。此外,在这个例子中,场景中的地面和墙壁纹理都比较低,两个可以辨别的显示器被标记为绿色和红色的遮罩,指示在图像(b)中可见但在图像(a)中被遮挡的区域。这些因素使得现有的算法难以提取出足够的匹配对进行相机姿态估计。类似的情况在室内导航或自动驾驶中也很常见。为了解决这些问题,我们提出了一种新的图像匹配方法,称为Occ2Net。它不仅匹配可见的点对,还可以匹配被遮挡的点和可见的点。

基于这个观察,我们设计了Occ2Net来匹配3D点。参照NeRF,我们将每个像素视为从相应相机发出的一条射线。NeRF通过在射线上等间隔采样来获取3D点,并通过可微分渲染学习它们的信息。然而,在匹配算法中,我们在推理时没有姿态信息,所以我们将射线上的采样简化为两个点:一个可见点和一个被遮挡的点。在训练时,我们使用真实深度和姿态来重新投影并确定一个3D点是被遮挡还是可见。

基于这些简化,Occ2Net将可见点之间的匹配扩展到可见点与遮挡点之间的匹配。为了实现带有3D显著性的匹配,我们使用了一个3D占用估计(OE)模块,这大大简化了多视角3D表示方法。由于3D匹配的难度、占用大量存储空间以及占用估计的误差,我们没有使用整个图像的3D占用来估计匹配,而是采用了粗到精的结构。在粗糙的步骤中,我们使用了遮挡感知(OA)模块来获取每个子块之间的匹配,OE模块则用于获取每个子块中的精细匹配。

我们在两个数据集上评估我们的提出的方法:ScanNet[1]和 TartanAir[2],这些数据集包含了各种程度遮挡的现实和模拟场景。我们使用了几种衡量标准,将我们的方法与几种最先进的基于特征的方法以及密集方法进行了比较。实验结果显示,我们的方法在这两个数据集上都取得了优越的准确度,超过了现有方法很多。而且,我们的方法在处理遮挡情况下展示出了高的稳健性和效率。

总的来说,我们提出了一种能够识别遮挡点的图像匹配算法,该算法在真实世界和合成数据集上均优于最先进的方法。具体来说,我们的贡献如下:我们提出了一种新颖的能够识别遮挡的图像匹配算法Occ2Net,该算法使用3D占用模型来描绘物体之间的遮挡关系,并推断出被遮挡区域内匹配点的位置。我们将一个占用估计(Occupancy Estimation, OE)模块和一个遮挡感知(Occlusion-Aware, OA)模块结合起来,使用具有占用估计的粗到精结构,实现可见-被遮挡匹配。我们的实验显示Occ2Net在真实世界数据集ScanNet和模拟数据集TartanAir上都实现了最好的姿态估计精度。

实现方法

51e2a2fa6df15b1131747494d38eb779.png

上图展示了我们的Occ2Net的概述,它通过隐式模拟物体-遮挡关系,帮助在遮挡下进行匹配。我们的方法已经在各种可见-可见和可见-遮挡的情况下进行了广泛的测试,取得了与最新技术方法相当的成果。然而,在这一部分里,我们的主要关注点主要是挑战性较高的可见-遮挡匹配问题。

特征提取模块

我们的特征提取有三个主要功能:粗特征F的提取,精细特征FG的提取,以及生成用于3D占据估计的张量OF和OV。为了匹配可见点和遮蔽点,我们使用了一个大感受野的金字塔结构,并为不同的尺度添加位置编码。由于相机距离的不同,金字塔结构有助于识别不同尺度的同一物体。为了成功地匹配遮蔽区域和可见区域,我们扩大了金字塔结构的感知范围,并在匹配过程中使用了更多周围信息。如图1所示,图像中包含椅子的周边区域,在椅子部分有所不同,但周围区域非常相似。这是一种常见的现象,即匹配到的遮挡区域和可见区域周围的图像特征是相似的。我们还添加了不同尺度的位置编码,这丰富了特征的位置信息,以便从上述相似的周围区域准确推断出遮挡点的偏移量。

OA模块

我们设计了OA模块来实现粗略的匹配。OA模块主要由两部分组成:注意力组件和旋转对齐。注意力组件通过自注意力和交叉注意力,加深了对整个图像结构信息的理解,使得特征更有利于粗略匹配。旋转对齐旨在更好地适应不同视角之间的不同旋转,使得可见和被遮挡的部分更易于匹配。

  • 旋转对齐

c731b256b59186ef14d682fad3b927bf.png

旋转对齐选择具有适当旋转角度的特征。在注意力组件之后,每个特征保留其接受区域的子块信息。左图的特征经过适当的旋转后,会更接近于右图的特征,这进一步可以感知遮挡并使块匹配更加容易。例如,如上图所示,我们想要匹配图(a)和图(b)中由箭头指示的点。图(a)中的点被遮挡,在图(b)中可见。在粗略匹配阶段,我们需要匹配两个绿色的块。然而,由于遮挡区域的存在,两个块的特征会稍有不同。尽管我们在特征提取中扩大了接受野,并引入了更多周围信息,但我们不能消除遮挡的影响。旋转对齐的目标是增加两个块的特征相似性。考虑到我们使用2D旋转来补偿3D相机姿态的差异,图像的不同部分的旋转角度应该不同。为了防止旋转改变匹配块的索引,我们开发了一个局部特征旋转算法,对每个块特征进行局部旋转。由于我们不知道适当的旋转角度,我们使用gumbel softmax来选择最佳匹配的旋转角度。

b639fdb7a8df47725dc44e29d12bfc39.png

2a0a476ea607ffd1d4bbc6106e149b62.png

7257d85f6ddbc24e04bc05ba46737857.png

因为我们不知道真实的旋转角度,根据经验我们选择0度和30度作为旋转角度。

OE模块

在获取粗略级别的子块匹配后,我们利用OE模块进行细致匹配。对于可见子块中的点,我们使用LoFTR子模块生成的热图计算与匹配子块中心的偏移。对于被遮挡子块中的点,根据其周围可见内容推断出匹配点的位置,这些内容是通过特征提取和本地3D占位得到的。OE模块被用来计算精确匹配点的位置。首先,我们设计了一个3D占位估计模块。对每一张图,我们通过特征提取得到两个张量OF和OV。我们计算一个4D张量作为OF和OV的外积,以表示估计的3D占位。

e452c081ccee754638ffd97e68103f75.png

基于真实深度和相机姿势,我们计算真实的3D占用作为监督。我们将在loss部分解释3D占用损失。然后,我们通过注意力模块将估计的3D占用和精细特征相结合。最后,基于两个图像的局部特征和3D占用,我们可以推断出每个匹配点的具体位置。使用粗到精的结构,并且只在精细结构中使用3D占用估计,有两个原因:1. 已经证明粗到精的结构对于可见点之间的匹配是有效的。2. 单眼模型通过3D占用估计是不准确的,而推断遮挡点是困难的。使用粗到精的结构,同时将精细特征与3D占用相结合,使得可以使用从3D占用估计出的3D信息来推断遮挡点的位置。因为先进行了粗匹配,推断的误差可以控制在一定范围内。例如,如上图所示,我们试图匹配左图和右图中的绿色框。匹配点的特征应与3D占用一致。我们可以从3D占用推断出,图中的箭头指示了一个精细匹配对。

loss

  • 粗粒度匹配 loss

我们的网络将以下情况视为有效匹配:可见与可见的子块、可见与遮挡的子块、遮挡与可见的子块。根据真实的相机位置和深度,我们计算左图像块的再投影。当一个子块的投影深度大幅度大于右图像对应的深度时,我们将该子块视为在右图像中被前方的物体遮挡。我们定义图像的遮挡点与像素总数的比率为遮挡比例。我们获取了三组带有监督的子块匹配数据:可见-可见匹配、可见-遮挡匹配和遮挡-可见匹配。

参考LoFTR的loss,有:

5254e2a96d409babcf50f3d3fe0b9683.png

0a1f3cad66792cf3ad5850abe16bc346.png

2c9b63a2fa8d93c6115ea4aa66210593.png

36bb3883f74e79d7094ce62f84eb83a1.png

1423a76c35b403877cf9ff87101212bb.png

a0cbb5095aab14aa109bb3f231eddb78.png

  • 3D占位loss

为了从真实深度和相机姿态中生成真实的3D占用,我们采取了以下步骤:通过结合两张图片的深度和相机姿态,创建一个真实的点云。将点云转化为体素表示,通过将3D空间划分为小立方体单元,并根据其3D占用情况给每个单元分配一个值。使用相机的姿态作为世界坐标系的原点,并将深度分辨率设置为64个体素,将体素表示投影到当前图片上。

64930d46239d098fd7944589a8f7d5d3.png

  • 细粒度匹配Loss

参考LOFTR

3d7f34299b16627418a215a52791ddd2.jpeg

  • 整体Loss

fbea2ef38a72150fefb2ba3a6059628f.png

实验

我们通过在真实数据集ScanNet和模拟数据集Tartanair上的实验来验证我们方法的有效性。虽然MegaDepth[3]是一个常用于图像匹配的数据集,这也是一个真实的数据集,但我们没有采用它,因为它的深度地图误差比ScanNet的大。TartanAir是一个提供真实相机姿态和深度信息的模拟数据集,包括了像MegaDepth一样的室外场景。我们使用ScanNet和TartanAir数据集来展示在深度不准确的情况下,该算法的泛化能力和适应性,以及其在室内和室外场景中的有效性。

我们使用ScanNet来演示我们的姿态估计方法的有效性。ScanNet是一个RGB-D视频数据集,包含来自1500多次扫描的250万视图,这些视图注有3D相机的姿态、表面重构以及实例级的语义分割。参照SuperGlue[4]的评估程序,我们在训练中抽取了230百万的图像对,它们的重叠比例在0.4到0.8之间。图像对的重叠比例是通过使用深度和姿态将一幅图像重新投影到另一幅图像并计算在投影后不超出边界的像素的比例来定义的。我们在测试集中的1500对图像上评估我们的方法。所有的图像和深度图都被调整到了640x480的大小。

TartanAir是一个用于评估SLAM算法的具有挑战性的合成数据集。该数据集包含室内和室外场景,涵盖了各种各样的场景和运动模式。数据是在各种光照条件、天气以及移动物体存在的情况下,在逼真的模拟环境中收集的。与使用物理数据收集平台收集数据的ScanNet不同,TartanAir数据集中的深度和位姿完全准确。我们按照与Droid-SLAM相同的训练测试切分方式构建了测试集,该测试集包含32个场景。在每个场景中,我们随机选取了满足重叠比例在0.4和0.8之间且遮挡比率大于0.3的50对图像,从而得到了包含1600对图像的测试集。

  • 实验结果

dcd6aa039160f526c656469ec4a5d36b.png

上图展示了ScanNet、TartanAir-室内和TartanAir-室外的匹配示例。我们将QuadTree LoFTR [5]与我们的结果进行了比较。绿色和黄色的线分别表示QuadTree LoFTR和Occ2Net的正确匹配,而红色的线则代表错误的匹配(误差超过10像素)。我们用紫色的框突出显示了一些匹配对。蓝色的遮罩标注了正确的匹配区域。图(a)的左图和右图分别包含了讲台1和椅子2的不同视角。图(b)的左图包含了墙壁1和2,而且2部分被显示器遮挡。图(b)的右图仅包含墙壁2。图(c)的左图只有灯光1和2,而右图包含了灯光1、2和3。

我们采用和SuperGlue相同的测试方法,下表中展示了姿态错误AUC在阈值为5度, 10度, 20度下的百分比。这里的姿态错误被定义为旋转中的角度误差和平移中的位移误差的最大值。为了恢复相机的姿态,我们使用RANSAC方法[8]解出预测匹配中的本质矩阵。

2e43dfa256b56d174d7feedfb8b2622d.png

如上表所示,我们的方法在ScanNet和TartanAir上的姿态估计精度上都超过了所有竞争对手,展示了我们的方法在室内外、真实和模拟场景中的有效性。Occ2Net-s是Occ2Net-l的一个缩略版本,它没有明确区分可见和遮挡的点,而且所有匹配都共享权重和张量,参数比QuadTree LoFTR少。

共享权重对最终性能有一定的影响。如我们之前解释过的,准确估计有遮挡的匹配点的确切位置是困难的,所以5度的提升效果并不明显。然而,没有共享权重的模型相当于将有遮挡的匹配点和可见的匹配点加在一起。这两种匹配不会互相影响,而且精度的提升是明显的。TartanAir测试集包含了更多遮挡比例大于40%的图像对,所以匹配效果得到了更大的提升。

  • 遮挡对于位姿估计的有效性

9164c154fcaa43ff146a620a1eb19c66.png

我们为了量化分析遮挡对姿态估计的影响,我们计算了ScanNet测试集中所有图像对的遮挡比率。遮挡比率定义为在一张图像中可见但在另一张图像中被遮挡的像素的比率。接着,我们将累积估计误差R和t作为遮挡比率的函数进行绘图。如图所示,在具有高遮挡比率的图像对中,其他算法在姿态估计方面的误差相对较大,而我们的算法仍能在这些具有挑战性的场景中达到较小的姿态误差。

  • 消融实验

903826f0907a89e8c58dac46f5d22243.png

以上表格各实验含义:1)基准线:QuadTree LoFTR。2)基准线+遮挡损失:仅添加可见-遮挡匹配以进行监督;3)Occ2Net -遮挡损失:使用Occ2Net,而不进行遮挡监督;4)基准线+特征提取:使用我们的特征提取骨干网络,取代LoFTR特征提取骨干网络;5)实验4)+遮挡损失:使用我们的特征提取骨干网络并添加可见-遮挡匹配以进行监督;6)基准线+OA模块:添加旋转对齐方法;7)Occ2Net -占用:Occ2Net不进行3D占用估计;8)Occ2Net:我们的方法。

如表格1)和2)所示,仅增加对可见-遮挡点的监控是无效的。为了实现可见点和遮挡点的匹配,需要设计一个能够意识到遮挡并推断遮挡位置的网络结构。比较3)和8),我们的Occ2Net网络需要与遮挡的概念配合,否则效果提升不明显。比较1)和4),我们的特征提取为3D占用估计提供了张量,并且比QuadTree LoFTR特征提取的参数少,这导致了可见点匹配效果差。比较4)和5),我们的特征提取对于遮挡点匹配是有效的。6)与1)的比较说明,增加旋转对齐对于图像匹配是有帮助的。如8)所示,与7)相比,3D占用估计改进了带有遮挡监控的遮挡点匹配。此外,通过同时匹配遮挡和可见点,也增强了可见-可见匹配,从而改善了整体匹配性能。需要注意的是,表格中的所有方法都不能直接与Occ2Net-s进行比较,因为它们包含的参数数量不同。

结论

我们提出了一种考虑到被其他物体遮挡的点的图像匹配方法。我们设计了一种网络结构,名为Occ2Net,它能在一定程度上感知到被遮挡点的存在。Occ2Net利用特征提取获取多尺度的全局和位置特征,这有助于猜测遮挡信息。OA模块使用注意力和旋转对齐,这对于在后续的粗到精的过程中获取更多正确的匹配对非常有用。OE模块使用3D占用估计来结合细节特征进行精细匹配。实验表明,我们的方法实现了这个目标,并大大提高了姿态估计的准确性。我们认为,我们的工作为未来的研究者探索遮挡场景下更好的图像匹配铺平了道路。

然而,尽管我们的网络可以识别被遮挡的点并将它们与可见点进行匹配,但很难找出这些隐藏点的确切位置。尽管我们首先提出了由可见点和隐藏点组成的光线用于图像匹配的想法,但由于数据限制,我们将光线退化为只有两点。在未来,应考虑涉及多层遮挡的更复杂的场景。

参考文献:

[1] Hongkai Chen, Zixin Luo, Lei Zhou, Yurun Tian, Mingmin Zhen, Tian Fang, David Mckinnon, Yanghai Tsin, and Long Quan. Aspanformer: Detector-free image matching with adaptive span transformer. In European Conference on Computer Vision, pages 20–36. Springer, 2022.

[2] Michał Tyszkiewicz, Pascal Fua, and Eduard Trulls. Disk: Learning local features with policy gradient. Advances in Neural Information Processing Systems, 33:14254–14265, 2020.

[3] Wenbo Li, Zhe Lin, Kun Zhou, Lu Qi, Yi Wang, and Jiaya Jia. Mat: Mask-aware transformer for large hole image inpainting. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition, pages 10758– 10768, 2022.

[4] Paul-Edouard Sarlin, Daniel DeTone, Tomasz Malisiewicz, and Andrew Rabinovich. Superglue: Learning feature matching with graph neural networks. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition, pages 4938–4947, 2020.

[5] Weijing Shi and Raj Rajkumar. Point-gnn: Graph neural network for 3d object detection in a point cloud. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition, pages 1711–1719, 2020.

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

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

相关文章

SQLyog安装教程

安装完MySQL数据库之后,为了便于我们对数据库的操作,所以安装一个用于数据库可视化的软件SQLyog。以下是安装步骤: 1. 解压之后安装。 选择SQLyog.exe或者SQLyog-11.2.4-0.X86。打开安装包之后,需要改安装路径的该安装路径&…

智慧公厕数字技术实现城市公共厕所智能升级

随着城市化进程的不断加快,城市公共厕所作为一个重要的基础设施,扮演着不可忽视的角色。然而,在现实中,很多城市公共厕所的设施陈旧、管理不善,给人们的生活带来了许多不便。为了解决这一问题,智慧公厕数字…

节省草稿纸的方法

问题描述:平时需要写一些简单的算法,手边没有草稿纸怎么办? 问题解决:可以使用一个QQ截图或者其他截图,然后使用画笔在截图上进行简单写画。在进行网上授课时,也可以常用这种方法。 如下图所示&#xff1…

PriorityQueue如何确定构建的是大根堆还是小根堆

PriorityQueue可以自定义传入的Comparator来比较内部元素的大小&#xff0c;Comparator比较时的返回如下&#xff1a; 如果o1 o2 ,返回0 如果o1 < o2 ,即 o1-o2 < 0 ,则返回负数 如果o1 > o2 ,即 o1-o2 > 0 ,则返回正数 如下是PriorityQueue类中新放入元素时执行的…

数据一致性:核心概念与实现策略

在当今的信息时代&#xff0c;数据已经成为了企业的核心资产之一。然而&#xff0c;随着数据量的不断增长和应用场景的不断扩大&#xff0c;如何保证数据的一致性成为了一个重要的挑战。数据一致性不仅关系到系统的正确性和可靠性&#xff0c;也直接影响到用户的体验和企业的业…

nrf52840 DK接口

外部接口 Arduino接口 按键和LED接口 Debugout接口&#xff08;P20&#xff09; Debugout接口&#xff08;P19)

rm误删文件恢复

rm误删文件恢复 问题描述安装extundeleteyum安装extundelete编译安装extundelete 常用参数动作(action)&#xff1a; 尝试数据恢复前置条件卸载磁盘分区查看被删除数据信息 恢复文件恢复指定inode号文件恢复指定文件名恢复指定目录恢复所有可恢复文件恢复指定时间的文件恢复指定…

图像绘制-线段、矩形、圆形、椭圆等

在实际运用中&#xff0c;我们会在图片上添加一些图形&#xff0c;比如目标检测时在物体周围画个矩形框&#xff0c;人脸识别中将人脸的关键点用点&#xff08;圆形&#xff09;标出来。 OpenCV常用的形状绘制方法&#xff1a; 线段的绘制 线段的绘制是使用cv2.line(img, pt…

【数据结构】二叉树的销毁 二叉树系列所有源代码(终章)

目录 一&#xff0c;二叉树的销毁 二&#xff0c;二叉树系列所有源代码 BTee.h BTee.c Queue.h Queue.c 一&#xff0c;二叉树的销毁 二叉树建好了&#xff0c;利用完了&#xff0c;也该把申请的动态内存空间给释放了&#xff0c;那要如何释放呢&#xff1f; 我们还是以…

更适合程序员体质的PPT制作工具——Slidev

Slidev简介 Slidev是什么 Slidev是一款基于Vue.js的现代化幻灯片制作工具&#xff0c;它可以帮助用户快速、高效地制作出美观、专业的幻灯片。 目前市面上有很多功能丰富的、通用的、所见即所得的幻灯片制作工具&#xff0c;例如 微软 PowerPoint 或 苹果 Keynote. 它们在制…

非专业投资者进行现货白银投资,如何开始?

随着现货白银市场的不断发展&#xff0c;现货白银走势在先前一段时间内不断上涨&#xff0c;处于上升趋势&#xff0c;很多投资者顺势做多从中获得利润&#xff0c;近期&#xff0c;现货白银投资不断下跌转为下降趋势&#xff0c;也有很多投资者进行顺势投资。但是对于现货白银…

1、Elasticsearch 8.X 概述与安装

第1章 Elasticsearch 8.X 概述 1.1 Elasticsearch 8.X 距 2019 年 Elasticsearch 上一大版本 7.0 发布至今已经过去了 3 年。2022 年 2 月 11 日&#xff0c;Elasticsearch 发布了全新的 8.0 正式版本&#xff0c;这着实给了我们不 小的惊喜&#xff01;新版本中通过改进 Elas…

“优化”城市出行体验——山海鲸智慧交通解决方案

随着城市化进程的不断加速&#xff0c;城市交通问题也变得日益严重。为了改善城市交通体验、提高出行效率以及减少交通拥堵和环境污染。 山海鲸可视化打造城市智慧交通系列解决方案模板&#xff0c;解决方案以“数字孪生技术”为核心&#xff0c;通过数据分析、人工智能和物联…

[XR-FRAME] 1.O4 文档导览 || XR-FRAME / 让场景更丰富,环境数据

[XR-FRAME] 1.O4 文档导览 || XR-FRAME / 让场景更丰富&#xff0c;环境数据 文档导读&#xff0c;知识点整理。 开始 | 微信开放文档 新引入 标签 <xr-env env-data"xr-frame-team-workspace-day" /><xr-env> 描述&#xff1a;定义环境的标签。…

如何去构建高效软件:耦合、内聚与结构化策略(软件设计师笔记)

&#x1f600;前言 随着软件开发变得越来越复杂&#xff0c;如何有效、有序地构建和维护这些复杂系统成为了每一个开发者和设计师所面临的挑战。对于这一挑战&#xff0c;结构化开发方法为我们提供了答案。这一方法不仅帮助我们理解如何将大型系统分解为小模块&#xff0c;还为…

浅谈智能型电动机保护器在孟加拉水泥厂的应用

摘要&#xff1a;电动机设备是水泥企业中应用较广泛的动力装置&#xff0c;而水泥生产企业属于能耗高、污染大又需要设备连续不间断工作的行业&#xff0c;电动机作为水泥行业设备的动力来源&#xff0c;其安全、稳定可靠的运转对水泥行业的平稳生产起着至关重要的作用。 Abst…

Linux驱动开发笔记

疑问 file_operation中每个操作函数的形参中inode的作用 设备树中compatible属性中厂商和型号如何填写 file_operation定义了Linux内核驱动的所有的操作函数&#xff0c;每个操作函数与一个系统调用对应&#xff0c;对于字符设备来说&#xff0c;常用的函数有&#xff1a;lls…

【Vue.js】使用Element中的Mock.js搭建首页导航左侧菜单---【超高级教学】

一&#xff0c;Mock.js 1.1 认识Mock.js Mock.js是一个用于前端开发中生成随机数据、模拟接口响应的 JavaScript 库。模拟数据的生成器&#xff0c;用来帮助前端调试开发、进行前后端的原型分离以及用来提高自动化测试效率 总结来说&#xff0c;Element中的Mock.js是一个用于…

数据安全态势管理:什么是事实,什么是虚构?

考虑到组织存储大量数据的日益复杂的云环境&#xff0c;数据安全态势管理 ( DSPM )的兴起并不令人意外。使组织能够全面了解云数据资产和敏感数据的安全状况的流程对于当今的安全团队来说非常有价值。 尽管 DSPM 的重要性日益凸显&#xff0c;但人们对于它能为企业做什么和不能…

Qt中额外复制新类到工程中出现无法解析的外部符号

无法解析的外部符号 “public: virtual struct QMetaObject const * __cdecl FormCloudFilter::metaObject(v 错误原因&#xff1a;在C项目中&#xff0c;新添加了类之后&#xff0c;编译出现错误&#xff0c;原因是我们新添加的类未被Qt编译成moc文件。 解决方法&#xff1a; …