TOFU: A Two-Step Floorplan Refinement Framework for Whitespace Reduction

news2024/11/15 14:06:20

TOFU: A Two-Step Floorplan Refinement Framework
for Whitespace Reduction

目录

  • 摘要
  • 一、简介
  • 二、准备工作
    • 2.1 布局规划
    • 2.2 基于约束图的合法化
  • 3 提出的算法
    • A 概况
    • B 平面图合法化
      • 1)约束图构造:
    • C 两步空白删除框架
      • 1.基于位置的模块
      • 2. 基于区域重新分配:
  • 实验结果
    • A 删除空白的有效性
    • B 预放置模块的精化
  • 结论

摘要

平面规划作为实体设计的早期步骤,将极大地影响后期阶段的PPA。为了在保持相对相同的芯片尺寸的同时实现更好的性能,所生成的布图规划的利用率需要高,并且应当遵守与设计规则、可布线性、功率相关的约束。在本文中,我们提出了一个两步的框架,称为TOFU,平面图的空白减少固定轮廓和软/预置/硬模块建模。首先通过迭代地细化模块的位置来减少空白。然后,靠近空白的模块将被改变成直线形状,以进一步提高利用率。为了保证中间布图规划在精化过程中的合法性和质量,提出了一种基于约束图的合法化器和一种新的约束图构造方法。实验结果表明,Corblivar [1]生成的初始布图规划的空白平均可以减少约70%,在某些情况下可以减少高达90%。此外,由于更高的利用率,所得到的线长也缩短了3%。

一、简介

平面规划是现代建筑设计流程中最重要的环节之一。具有相同的芯片尺寸,具有更高利用率和更短线长的体面布图规划通常会导致具有更好功率、性能和面积(PPA)的更紧凑的设计。为了适应现实世界的物理实现需求,更多的约束已经被添加到经典的布局规划问题。如[2]中所述,具有预定轮廓的布图规划更实用,因为它能够为日益复杂的电路实现分层设计。此外,现代布图规划算法应该考虑预置模块(PPM)。经验表明,固定轮廓和预置模块约束会使算法更难产生具有高利用率和短互连的法律的布图规划[3]。因此,在这项工作中,我们将主要讨论实现具有固定轮廓和PPM的高利用率法律的布图规划。
近年来,[4],[5]等分析方法已经显示出处理PPM的固定轮廓布图规划问题的良好潜力。经常使用两阶段流程,包括全局分配和合法化步骤。在全球分布阶段,模块将被分布在固定的轮廓,同时最大限度地减少总的线长。因此,通常存在模块重叠和越界模块,这些模块在合法化步骤中处理。Zhan等人[4]解决了一个无约束优化问题,以消除现有的模块重叠,并惩罚那些违反固定轮廓约束的模块。然而,随着大型硬模块的出现,他们的方法可能无法获得法律的布图规划。在文献[5]中,引入了一个推-拉模型,用于全局分布,其结果后来通过基于约束图的方法合法化。它们还明确地解决了PPM的存在,并利用直线形状来修复相关的重叠。然而,在他们提出的合法化步骤中,用于约束图提取的方法不够鲁棒,这可能(i)误解两个模块的相对位置或(ii)具有不受约束的节点对。这些因素可能导致模块之间的重叠和更长的线长。模块相对位置的误解将在第III-B节中具体讨论。最重要的是,上述作品都没有明确地将空白作为优化目标。
为了进一步提高利用率的初步布图,我们提出TOFU,一个有效的布图细化框架,是知道的固定轮廓和预置模块的限制。我们的贡献可归纳如下。

  • 我们提出了一个两步框架的平面图空白删除与固定轮廓和预放置模块的限制意识。它可以用作任何布局规划方法的后处理步骤,以进一步提高其解决方案的利用率。
  • 引入了一种鲁棒有效的约束图提取方法,以改进[5]中提到的方法。与原方法相比,我们可以更好地模拟两个模块的相对位置下的PPM,硬模块,超大型模块的存在。
  • 针对不同的场景提出了两种方法来减少模块之间的空白。首先使用基于模块重定位的方法来解决初始解不佳和构建约束图时对相对位置的误解所导致的空白。然后,使用基于区域重新分配的方法来处理矩形形状无法去除的空白。

本文的其余部分组织如下。第二节介绍了一些与布图规划相关的方法,并定义了布图规划细化问题。第三节描述了我们提出的布局优化框架。第四节介绍了我们的实验设置和结果。第五节总结了我们的工作。

二、准备工作

2.1 布局规划

布图规划作为逻辑综合与物理设计之间的“桥梁”,一直是学术界研究的热点。给定网表和约束,布局规划问题用于确定模块的形状和位置,使得空白空间和线长最小化。请注意,可布线性可以通过具有接近零空白空间布局方案的馈通[6]来实现。在实践中,工程师还使用通道布线[7],在允许的模块面积减少范围内在模块之间挖掘通道。布局规划中的约束可以分为以下类型。

  • 模块属性约束:有三种类型的模块:(1)软模块,(2)硬模块,(3)预置模块(PPM)。对于软模块,形状和位置都可以改变,而对于硬模块,只能改变位置。至于PPM,它们的形状和位置应该保持不变。
  • 固定轮廓约束:固定轮廓是一个直线区域,其中模块只能放置在内部。这种约束通常用于分层设计中,其中模块应该留在其父层次结构中的模块的边界内。

布局优化,类似于布局问题中的详细布局,对现代布局规划流程至关重要。不同的布图规划细化方法也可以很容易地用作任何布图规划方法的插件,以进一步提高质量或消除约束违反。

2.2 基于约束图的合法化

给定矩形形状(模块、单元、设备等)的初始放置,合法化问题是确定每个矩形的高度、宽度和位置,使得不存在约束违反并且目标度量被优化。给定的合法化输入为通常被认为是接近法律的解决方案。因此,矩形之间的相对位置应该被尊重,并且通常使用基于约束图的合法化来实现这一点。一个约束图包括两个有向无环图,记为 G v G_v Gv G h G_h Gh。图中的每个节点 n i n_i ni表示第 i i i个矩形 m i m_i mi和一条从节点 n i n_i ni到节点 n j n_j nj的边 e i j ∈ G h ( e i j ∈ G v ) e_{ij}\in G_{h}(e_{ij}\in G_{v}) eijGh(eijGv)表示 m j m_j mj应该在 m i m_i mi的右边(底部)。合法化可用公式表示:
在这里插入图片描述

其中, x i x_i xi, y i y_i yi, w i w_i wi, h i h_i hi a i a_i ai分别表示第i个矩形的左下角坐标、宽度、高度和面积。

3 提出的算法

A 概况

如图1所示,我们的算法由三个部分组成:(1)平面图合法化,(2)基于模块位置的空白删除,以及(3)基于区域重新分配的空白删除。在第一步中,提出了一种基于约束图的布图合法化方法,以确保满足所有约束,提高利用率。在整个算法过程中,它将被多次调用。在第二步中,调整空白附近的模块的位置,以处理由模块的初始位置引起的空白。在第三步中,从底部区域开始,模块将从矩形变为直线形状以填充空白。我们的合法化方法和空白删除框架的细节将分别在第III-B节和第III-C节中讨论。

B 平面图合法化

在平面图合法化过程中,我们需要确定每个模块的形状和位置,以便满足所有约束。使用第II-B节中提到的基于约束图的方法,公式如下。
在这里插入图片描述

其中, x i x_i xi, y i y_i yi, w i w_i wi, h i h_i hi a i a_i ai a r i ar_i ari分别表示第i个矩形的左下角坐标、宽度、高度和面积和最大纵横比。轮廓的宽度和高度由(W,H)表示。目标是最小化实际轮廓(W,H)和固定轮廓(W,H)之间的差异。实际轮廓由每个模块的右上角确定,如等式(2b)和(2c)所示。模块面积和纵横比的约束在等式(2d)和(2 e)中建模。最后,等式(2f)和(2g)确保只要适当地构建约束图,就不存在模块重叠。我们的约束图构造方法的细节将在下面的部分中介绍。注意,与[5]不同,我们在求解方程(2)时固定PPM的位置/形状和硬模块的形状。方程(2)可以通过二阶锥规划(SOCP)[5]或拉格朗日松弛[8]求解。在我们的实现中,为了便于集成,我们使用Guidance [9]将方程作为SOCP问题求解。

1)约束图构造:

我们的约束图(CG)构造方法是基于[5]中提到的方法。首先,使用Delaunay三角剖分(DT)方法来找到模块之间的相邻信息。 D T DT DT图中连接的任何两个节点表示彼此相邻的两个模块。将在 G v G_v Gv G h G_h Gh中构造一条边来表示它们的相对位置。然而,[5]中从 D T DT DT图构造 C G CG CG的方法有两个主要缺点,如第I节所讨论的。

在这里插入图片描述
图2显示了两个模块的相对位置如何被误解的两个示例。在图2a中, m i m_i mi m j m_j mj是分开的,因为 ( x j c − x i c ) (x^c_j - x^c_i) xjcxic小于 ( y j c − y i c ) (y^c_j- y^c_i) yjcyic,所以给 G v G_v Gv添加了一条边。图2b示出了两个重叠的模块 m i m_i mi m j m_j mj的示例,由于重叠区域的高度大于宽度,因此边缘被添加到 G v G_v Gv。为了克服这些缺点,我们的方法如下确定两个模块 m i m_i mi m j m_j mj的几何关系:

  • 一个完全被另一个覆盖:不失一般性,我们假设 m i m_i mi完全被 m j m_j mj覆盖。我们选择一个方向,我们可以将 m i m_i mi m j m_j mj中移出,使得距离最小化。去除重叠后两者的相对位置决定了它们在CG中的连接方式。
  • 否则:设 p i x , p i y ( p j x , p j y ) p^x_i,p^y_i(p^x_j,p^y_j) pixpiypjxpjy m i ( m j ) m_i(m_j) mimj在X轴(Y轴)上的投影。如果它们的投影在两个轴上没有重叠,我们将遵循[5]中的规则。否则,如果Y轴(X轴)上的重叠长度较长,则将边缘添加到 G h ( G v ) G_h(G_v) GhGv

在使用我们的方法从DT图构建CG之后,约束图可能不足以移除所有重叠。首先,使用[10]中的方法构建表示CG中所有模块对的相对位置的两个矩阵。然后,对于CG中没有关系的任何两个模块,我们将使用前面提到的方法向相应的CG添加边。

C 两步空白删除框架

给定一个合法的布局,我们的两步空白消除框架将尝试通过重新定位和重塑空白附近的模块来提高利用率。在本节中,我们将介绍如何在我们的方法中识别目标空白,以及如何通过我们的方法减少它们。

为了识别给定布局中的空白,首先将布局分解为宽度和高度分别为 m m m n n n 2 D 2D 2D网格 G G G。然后对于任何网格单元 g i j ∈ G g_{ij} ∈ G gijG,我们将通过遍历每个模块及其覆盖的网格单元来标记与它重叠的模块。经过这种预处理后,我们可以通过从左下角逐行扫描网格来轻松找到矩形空白。具体地说,对于一个空的网格单元 g i j g_{ij} gij,我们将找到最大的矩形空白 w k w_k wk,其左下角是 g i j g_{ij} gij,使得所有 g p q ∈ w k g_{pq} ∈ w_k gpqwk都是空的。请注意,由于长而窄的通道通常会导致可路由性问题,因此我们将跳过具有大纵横比(在我们的实现中为9)的空白。

我们的空白删除框架的总体思想是将整个平面图压缩到左下角。我们的框架的第一步是消除由初始位置不佳引起的空白,而第二步则针对那些无法通过矩形模块解决的空白。这两个步骤的细节将在接下来的部分中讨论。注意,在本节的示例中,PPM被表示为 f i f_i fi并以灰色标记,而其他PPM被假设为软模块。

在这里插入图片描述

1.基于位置的模块

如图1所示,在整个空白细化过程中,将使用基于约束图的合法化来确定每个模块的形状和位置。合法化的结果主要取决于模块的初始位置,这是表示为一个约束图的合法化。一些大的空白可能是由约束图误解或不良的初始位置引起的,这在生成实际的布图规划之前很难观察到。例如,如图3a所示, f 1 、 m 1 、 m 2 f_1、m_1、m_2 f1m1m2之间的水平约束连同 m 2 、 f 3 m_2、f_3 m2f3之间的垂直约束将引起大的空白。这种空白可以很容易地通过重新定位附近的模块来解决。因此,在我们的空白消除框架的第一步,我们将通过重新定位空白附近的模块来提高利用率。
在这里插入图片描述
我们的基于模块重定位的方法是一个迭代过程,如算法1所示。当我们试图将模块推到轮廓的左下角时, w i j w_{ij} wij下面的模块将被跳过,并且所选模块 M i j M_{ij} Mij将按照它们与 w i j w_{ij} wij的相对位置进行处理,也就是说,我们将首先考虑 w i j w_{ij} wij顶部的模块,然后是右侧,最后是左侧。请注意,在第7行,当我们尝试将一个模块 m i j m_{ij} mij放入 w ′ i j w′ _{ij} wij时,我们会将 m i j m_{ij} mij重新整形为与 w ′ i j w′_{ij} wij相同的长宽比,并对齐它们的左下角。如果 m i j m_{ij} mij和其他地区的重叠面积小于其面积的10%,则认为搬迁成功。图3示出了算法1的示例。首先识别空白 w 3 w_3 w3,但由于其纵横比太大而跳过。然后处理 w 1 w_1 w1,并选择模块 m 1 m_1 m1作为要重定位的模块。从布局中删除 m 1 m_1 m1后, w 1 w_1 w1将扩展为一个更大的矩形,如图3b所示,其中可以成功放置 m 1 m_1 m1。如图3c和3d所示, m 2 m_2 m2将类似地重新定位到 w 2 w_2 w2。最后,这些模块将通过第III-B节中提到的合法化方法进行完善。

2. 基于区域重新分配:

在重新定位空白周围的模块之后,由于矩形形状的限制,仍然有一些空白无法删除。因此,在这个阶段,一些矩形模块将被转换为直线形状,以进一步减少空白。
在这里插入图片描述

我们的基于区域重新分配的方法的细节在算法2中示出。与基于模块重定位的方法类似,重新整形和布局合法化被迭代地调用以提高利用率。当选择最佳模块来填充空白 w i w_i wi时,我们将以与基于模块重定位的方法中提到的相同的方式考虑其相邻模块。对于白空间 w i w_i wi的任何候选模块 m i m_i mi,它们的公共边越长, m i m_i mi越优选。为了避免在模块的边界上产生“毛刺”,如果 m i m_i mi w i w_i wi之间的公共边的长度小于 m i m_i mi的接触边的20%,则 m i m_i mi将不会被视为填充 w i w_i wi的候选。例如,在图4a中,当处理 w 1 w_1 w1时, m 1 m_1 m1由于其与 w 1 w_1 w1的短公共边缘而被跳过。当使用 m i m_i mi填充 W f W_f Wf m i m_i mi的区域时,首先将直线区域水平地切割成矩形,如图4b所示。然后,这些矩形从底部填充 m i m_i mi的面积,如图4c所示。

在这里插入图片描述

由于我们用许多规则限制非矩形模块的形状,使模块成为相对规则的形状,并且馈通[6],引脚分配和通道布线[7]遵循布图规划以实现可布线性,因此非矩形模块对全局布线和细节布线的影响很小。

实验结果

我们的布局优化框架是用C++实现的,所有的实验都是在一个Linux服务器上进行的,该服务器具有3.00 GHz的Intel Xeon CPU(60个线程可用)。为了证明所提出的框架的有效性和可扩展性,我们使用GSRC [11],MCNC [12]和IBM-HB+ [13]基准套件进行了一系列实验。Corblivar [1],[14],我们可以得到一种最先进的基于SA的布图规划器,用于生成一组法律的解决方案1,在本文的其余部分中将其称为基本布图规划。请注意,所提出的框架不假设特定的布图规划解决方案作为输入,允许其被广泛的布图规划方法采用作为后处理步骤。根据学术界通常的假设[3],[5],我们假设所有引脚都位于每个模块边界框的中心,IO焊盘的坐标会随着实际轮廓缩小,并将所有软模块的最大纵横比设置为3。HPWL基于每个模块的中心计算。

A 删除空白的有效性

我们首先使用我们提出的框架上的基础平面图生成的Corblivar。定量结果见表II。我们可以看到我们的框架产生具有小得多的空白空间的布图规划,同时能够减少总的线长,特别是对于仅具有软模块的情况。对于像ibm01、ibm03和ibm07这样的大型情况,这是第一次实现如此低的空白级别。据我们所知,最低报告的空白比例分别为13%,14%和12%[15]。图5(图6)显示了案例n300(ibm01)优化前后的布图,其中红色和蓝色分别用于标记软模块和硬模块。可以观察到,所得到的布图规划更紧凑,导致前述的线长减少。此外,我们提出的框架在175秒内完成了最耗时的情况(ibm04),这只是Corblivar运行时间的15%。因此,我们提出的框架的可扩展性证明。
在这里插入图片描述

B 预放置模块的精化

然后,我们展示了TOFU的能力,处理预先放置的模块(PPM)在非法的平面图。对于这个实验,我们使用GSRC和MCNC基准。由于原始基准不包括任何PPM,我们需要自己生成它们,这将在下面讨论。为了显示我们的方法的鲁棒性,我们随机选择一些模块,使得预先放置的模块占所有模块的20%。关于PPM的一个假设是,它们通常放置在良好的位置。否则,布局利用率永远无法提高,因为轮廓是由那些放置不佳的模块决定的。在我们的实验中,我们注意到,合法化后的结果是足够好的设置PPM的位置。因此,这部分实验如下进行。
1)把Corblivar的结果合法化。
2)选择要修复的模块。
3)根据认证结果确定PPM的位置。
4)扰动可移动模块的位置。

运行我们的方法来验证其鲁棒性和有效性。表I中示出了实验结果,其表明即使使用PPM,我们也可以检索法律的布图规划。同时,仍然可以生成紧凑的布图规划,如图7b所示。

结论

在本文中,我们提出了一个两步的空白消除框架,它可以用作任何布局规划工具的后处理步骤。已经提出了几种方法来减少固定轮廓和预放置模块约束下的空白。实验结果表明,我们的方法是实用和可扩展的。未来的工作可能包括建模更多的PPA相关的约束,如路由拥塞,定时等,此外,一个算法,以产生一个接近法律的解决方案与直线形状模块建模将有助于进一步提高当前的布图规划工具链的性能。最后但并非最不重要的是,分析方法仍然需要调查,以更好地建模布图规划的具体特征,例如直线形状,可变矩形形状,最终布图规划的间隙等。

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

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

相关文章

利用二分法及不动点迭代求解非线性方程(MatLab)

一、问题描述 利用二分法及不动点迭代求解非线性方程。 二、实验目的 掌握二分法及不动点迭代的算法原理;能分析两种方法的收敛性;能熟练编写代码实现利用二分法及不动点迭代来求解非线性方程。 三、实验内容及要求 二分法 (1) 编写代码计算下列数字…

华为配置小型网络WLAN 的基本业务示例

配置小型网络WLAN基本业务示例 组网图形 图1 配置小型网络WLAN基本业务组网图 小型WLAN网络简介配置注意事项组网需求数据规划配置思路操作步骤配置文件 小型WLAN网络简介 本文介绍的WLAN网络是指利用频率为2.4GHz或5GHz的射频信号作为传输介质的无线局域网,相对于有…

Vue-43、Vue中组件自定义事件

1、给学生绑定atguigu事件 2、在组件内触发事件 第二种写法 传多个参数。 解绑 解绑一个事件 解绑多个自定义事件 this.$off([xxx1,xxx2]);解绑所有事件 this.$off();总结

一文速学-selenium高阶操作连接已存在浏览器

前言 不得不说selenium不仅在自动化测试作为不可或缺的工具,在数据获取方面也是十分好用,能够十分快速的见到效果,这都取决于selenium框架的足够的灵活性,甚至在一些基于web端的自动化办公都十分有效。 通过selenium连接已经存在…

【活动回顾】CMeet 成都:转鸿蒙 对应用开发来说是否是职业发展新机会 - 圆满结束!

文章目录 前言一、活动介绍二、精彩分享内容及活动议程2.1、《COC 成都社区情况和活动介绍》2.2、“匿”问我答,现场互动2.3、《话题一:升职加薪》2.4、《话题二:说说鸿蒙》2.5、2023 CSDN 1024 程序员节成都站贡献人物表彰2.6、《话题三&…

谁说后端不能画出美丽的动图?让我来给大家拜个年!

今天我们要介绍的是Python的内置库——小海龟(turtle),它是一个非常实用的绘画工具,不仅可以帮助我们绘制图形,还能让我们查看整个绘画过程。即使对绘画一窍不通的人也能够使用它来创作出生动、形象的gif动图。现在正是…

AIGC项目——Meta:根据对话音频生成带动作和手势的3d逼真数字人

From Audio to Photoreal Embodiment: Synthesizing Humans in Conversations From Audio to Photoreal Embodiment:Synthesizing Humans in Conversations 从二元对话的音频中,我们生成相应的逼真的面部、身体和手势。 概括性:角色是由作者的声音驱动的(而不是模…

【获奖必看2.0】美赛小技巧之一秒输入一个公式

大家好呀,美赛开赛还有四天的时间,今天给大家带来的是美赛论文写作时非常实用的一个小技巧——快速输入任何复杂公式。 相信很多小伙伴在论文写作的时候都有一个小烦恼,那就是在面对比较复杂的公式的时候,应该怎么进行快速输入呢…

12.2 关键点提取——SIFT

一、理论 文章看了以下博文:Sift中尺度空间、高斯金字塔、差分金字塔(DOG金字塔)、图像金字塔-CSDN博客 该文章对SIFT写的很详细,所以在这里我直接抄过来作为笔记。如果以后作者变为付费文章可以提醒我删除。 1.图像金字塔 图像…

酒店|酒店管理小程序|基于微信小程序的酒店管理系统设计与实现(源码+数据库+文档)

酒店管理小程序目录 目录 基于微信小程序的酒店管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员模块的实现 (1) 用户信息管理 (2) 酒店管理员管理 (3) 房间信息管理 2、小程序序会员模块的实现 (1)系统首页 &#xff0…

Spring Boot + security + jwt 测试安全策略

一、测试概述 主要目的是测试security的用法。因测试搭建mysql和redis比较麻烦,所以我这里将自定义的jwt和用户信息缓存到程序的内存中。 本人测试的项目比较混乱,Spring Boot父类只标出有用的依赖。其子类用的版本为jdk11。后续会继续深入oauth2&#x…

微服务-微服务Alibaba-Nacos注册中心实现

1. 系统架构的演变 俗话说, 没有最好的架构,只有最合适的架构。 微服务架构也是随着信息产业的发展而出现的最有普 遍适用性的一套架构模式。通常来说,我们认为架构发展历史经历了这样一个过程:单体架构——> 垂直架构 ——&g…

Java后端须知的前端知识

Java后端须知的前端知识 HTML &#xff08;超文本标记语言&#xff09; W3C标准 结构&#xff1a;HTML表现&#xff1a;CSS行为&#xff1a;JavaScript 快速入门 <html><head><title></title></head><body><font color"red&q…

【linux】复制cp和硬连接、软连接的区别? innode 关系?

1.命令&#xff1a; cp -r [源文件或目录] [目的目录] #复制 ln -s [被链接的文件] [链接的目录/名称] #软连接 ln [被链接的文件] [链接的目录/名称] #硬连接 注&#xff1a;cp -r 会把所有source当作普通文件&#xff08;regular文件&#xff09;&#x…

vue3.0 + 动态加载组件 + 全局注册组件

首先 vue 动态加载组件使用的是 component 标签&#xff0c;并通过设置组件的is 属性来指定要渲染的组件。例如&#xff1a; <component :is"currentComponent"></component>其中&#xff0c;currentComponent 是一个变量&#xff0c;它的值可以是以下几…

BP图片降噪MATLAB代码

BP(Back Propagation)神经网络是一种常用的深度学习模型,可以用于图像降噪。主要步骤包括: 构建BP神经网络模型。包括输入层、隐藏层和输出层。输入层大小与图像大小相同,输出层大小也与输入图像大小相同。隐藏层根据图像复杂度设定。 准备训练数据。使用干净图像作为输入,加…

数字图像处理(实践篇)三十八 OpenCV-Python实现ORB特征检测实践

​ 目录 一 涉及的函数 二 实践 ​ ORB(Oriented FAST and Rotated BRIEF)是一种特征点检测和描述算法,它结合了FAST关键点检测和BRIEF描述子。ORB算法具有以下优势: ①实时性:能够在实时应用中进行快速的特征点检测和描述。

基于Vue uniapp和java SpringBoot的汽车充电桩微信小程序

摘要&#xff1a; 随着新能源汽车市场的迅猛发展&#xff0c;汽车充电桩的需求日益增长。为了满足市场需求&#xff0c;本课题开发了一款基于Java SpringBoot后端框架和Vue uniapp前端框架的汽车充电桩微信小程序。该小程序旨在为用户提供一个简洁高效的充电服务平台&#xff0…

【pytest系列】- assert断言的使用

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

海外云手机运营Instagram攻略

Instagram是世界著名的社交媒体平台&#xff0c;有着10亿实时用户&#xff0c;是跨境电子商务的优质流量来源。平台以女性用户为主&#xff0c;购物倾向高&#xff0c;转化率好。它被公认为外贸行业的优质社交媒体流量池。那么&#xff0c;如何使用海外云手机吸引Instagram上的…