目标检测论文阅读:GaFPN算法笔记

news2025/5/28 3:51:09

标题:Construct Effective Geometry Aware Feature Pyramid Network for Multi-Scale Object Detection
会议:AAAI2022
论文地址:https://ojs.aaai.org/index.php/AAAI/article/view/19932

文章目录

  • Abstract
  • 1. Introduction
  • 2. Related Work
    • 2.1. Object Detectors
    • 2.2. Mapping Strategy
    • 2.3. Predictor Heads
  • 3. Method
    • 3.1. Geometry-aware Mapping Module
    • 3.2. Geometry-aware Predictor Head
  • 4. Experiments
    • 4.1. Dataset and Evaluation Metrics
    • 4.2. Implementation Details
    • 4.3. Main Results
    • 4.4. Ablation Study
    • 4.5. Runtime Analysis
  • 5. Conclusion

Abstract

特征金字塔网络(FPN)被广泛用于发挥多尺度特征来解决目标检测中的尺度变化。然而,目前大多数FPN方法的固有缺陷导致其难以适应不同几何目标的特征。为了解决这个问题,我们在FPN中引入几何先验,以获得更具识别力的特征。本文提出了几何感知特征金字塔网络(Geometry-aware Feature Pyramid Network,GaFPN),该网络主要由新颖的几何感知映射模块(Geometry-aware Mapping Module)和几何感知预测头(Geometryaware Predictor Head)组成。几何感知映射模块是为了充分利用所有的金字塔特征,通过权重生成子网络获得更好的建议特征。权重生成子网络利用建议的几何信息为每一层的建议特征生成融合权重。几何感知预测头通过嵌入的生成网络将几何先验引入预测头,从而加强特征表示,用于分类和回归。我们的GaFPN可以很容易地扩展到其它具有特征金字塔的两阶段目标检测器和用于实例分割任务。在MS COCO数据集上,GaFPN相比于各种基线检测器显著提高了检测性能。

1. Introduction

特征金字塔网络(FPN)是一种经典且有效的多尺度目标检测方法。它首先构建一个特征金字塔,然后通过启发式引导的映射机制为每个proposal选择一个单层特征。最后,每个proposal的特征通过RoI Align层输入到预测头中。
在这里插入图片描述
尽管FPN大幅提升了多尺度目标检测的性能,但其潜力尚未得到充分挖掘,如图1所示。我们总结了两个潜在的改进如下:
①几何引导的建议映射机制。 目标proposal通过启发式规则分配到某个层的特征图中,如proposal的面积。虽然目标proposal的面积相似,但它们的纵横比可能存在显著差异。例如,一个1000×10的目标和一个10×1000的目标被分配到同一个特征图。该问题导致了一个严重缺陷,即基于启发式引导的最优特征可能难以获得。同时,最近的研究表明,只选择单层特征可能会产生次优结果,因为这种方式忽略了其它层未选择特征的有效信息。通过使用来自特征金字塔的多层特征的几何引导建议映射机制可以缓解这些问题。
②几何特征嵌入。 proposal的几何信息是分类和定位细化的关键先验知识。一方面,额外的几何先验特征可以促进两个语义相似的proposal的分类学习,从而容易区分它们。另一方面,回归值可能根据额外的几何先验特征动态变化。然而,经过特征映射后,每个目标proposal通过RoI Align层提取7×7个特征。然后将提取到的特征输入由全连接层组成的检测器头部进行分类和回归。经过上述过程,proposal的几何信息在很大程度上被忽略和破坏。因此,如何将几何特征嵌入到proposal的特征中以生成更准确的结果是一个亟待解决的问题。
这些改进启发我们提出几何感知特征金字塔网络(GaFPN),这是一种简单有效的特征金字塔网络,用于改进多尺度目标检测的特征表示。首先,几何感知映射模块充分利用所有金字塔特征,以获得更好的proposal特征,并通过权重生成子网络减少启发式引导映射的影响。权重生成子网络利用proposal的几何信息为不同层的每个proposal生成融合权重。其次,利用几何感知预测头,通过嵌入生成网络将几何特征引入分类和回归分支。它处理几何先验缺失问题,生成更具识别力的特征。嵌入生成网络利用proposal的几何信息为每个proposal生成几何嵌入值,然后通过乘法操作将几何嵌入值嵌入到proposal的特征中。在MS COCO数据集上,GaFPN相比于各种基线检测器都提高了检测性能。
我们的贡献有三方面:①我们系统地研究了FPN检测器。我们的研究揭示了限制检测性能的两个缺陷。②为了解决这些问题,我们提出了一个新的特征金字塔网络GaFPN,它结合了新的组件:几何感知映射模块和几何感知预测头。③我们在MS COCO上验证了所提出的配备有各种探测器、主干和任务的GaFPN,并且与基于FPN的探测器相比,它始终获得了显著的改进。

2. Related Work

2.1. Object Detectors

介绍了一些两阶段和单阶段的目标检测器。

2.2. Mapping Strategy

为每个proposal选择FPN中合适的特征是一个关键问题。FASF在训练时根据最小的实例损失层动态选择金字塔特征进行分配。PANet制定映射策略,为每个proposal选择所有金字塔级别的特征独立地输入全连接层,并通过元素级最大化操作将其融合。为了更好地挖掘不同层的特征,AugFPN根据学习到的权重为两阶段检测器融合所有层的特征。这些方法与我们的工作有一个明显的区别,即我们提出了一种几何感知策略,根据proposal的外部抽象几何信息而不是proposal本身的卷积特征来获取权重。

2.3. Predictor Heads

近年来提出了许多提高分类和定位精度的预测头。Cascade R-CNN采用不同交并比(IoU)阈值的多阶段R-CNN头,逐阶段获得更精确的结果。Fitness NMS设计子网络来预测定位概率。IoU-Net提出了一个IoU预测模块来预测每个proposal的IoU。后两种方法都想根据定位质量(IoU)来优化分类置信度,但IoU的预测比较困难,需要引入复杂的结构。另一个努力的方向是将分类和定位解耦。Double-Head R-CNN采用全连接头进行分类,卷积头进行回归。TSD将分类和定位与proposal和特征提取器解耦。与它们不同的是,我们的方法将几何特征嵌入到预测头中,以弥补RoI Align层造成的几何信息缺失。

3. Method

在这一部分,我们介绍几何感知特征金字塔网络(GaFPN)。我们的框架如图2所示。GaFPN由3个部分组成:几何感知映射模块(GMM)、几何感知预测头(GPH)和特征增强金字塔(FAP)。
在这里插入图片描述
首先,将backbone中的内在特征层次结构记为 { C 2 , C 3 , C 4 , C 5 } \{C_2,C_3,C_4,C_5\} {C2,C3,C4,C5}。然后将这些特征通过一个1×1的卷积减少到同一通道,记为 { M 2 , M 3 , M 4 , M 5 } \{M_2,M_3,M_4,M_5\} {M2,M3,M4,M5}。同一通道特征采用ASPP启发的特征增强和注意力机制来增强特征,构建特征增强金字塔。将新生成的特征记为 { P 2 , P 3 , P 4 , P 5 } \{P_2,P_3,P_4,P_5\} {P2,P3,P4,P5}。最后,将新特征输入GMM和GPH中进行分类和回归。GMM根据几何信息自适应地融合proposal的多层特征。GPH将几何信息嵌入到proposal的特征中。

3.1. Geometry-aware Mapping Module

传统的FPN中,每个proposal的特征层都是基于proposal的面积来映射的。这可能会产生次优结果。同时,其他层的特征可能有利于目标的分类或回归。这些发现启发我们探索几何引导的proposal映射机制,并利用多层特征来获得更好的proposal特征。
我们提出几何感知映射模块(GMM),它自适应地利用每个金字塔层的特征来丰富特征表示,而不是仅使用启发式指导的一个层的特征。自适应机制通过使用权重生成子网络为每一层生成权重来实现。该子网络直接将proposal的几何信息作为输入。
几何特征生成: 我们首先对每个proposal的坐标 ( x 1 , y 1 , x 2 , y 2 ) (x1,y1,x2,y2) (x1,y1,x2,y2)进行归一化,其计算公式如下:
x 1 ′ = x 1 W ,   y 1 ′ = y 1 H ,   x 2 ′ = x 2 W ,   y 2 ′ = y 2 H x_1^{\prime}=\frac{x_1}{W},~y_1^{\prime}=\frac{y_1}{H},~x_2^{\prime}=\frac{x_2}{W},~y_2^{\prime}=\frac{y_2}{H} x1=Wx1, y1=Hy1, x2=Wx2, y2=Hy2其中, W W W H H H表示训练图像的尺寸,作为归一化项。
然后利用归一化后的坐标生成宽度、高度、长宽比( r r r)和面积( a a a)等额外的几何特征,计算公式如下:
w = x 2 ′ − x 1 ′ ,   h = y 2 ′ − y 1 ′ ,   r = w h ,   a = w × h w=x_2^{\prime}-x_1^{\prime},~h=y_2^{\prime}-y_1^{\prime},~r=\frac{w}{h},~a=w×h w=x2x1, h=y2y1, r=hw, a=w×h最后,将这些特征concatenate在一起作为权重生成子网络的输入 X ∈ R 8 \mathbf{X}\in\mathbb{R}^8 XR8,其可以表示为:
X = C A T ( w , h , r , a , x 1 ′ , y 1 ′ , x 2 ′ , y 2 ′ ) \mathbf{X}=\mathrm{CAT}(w,h,r,a,x_1^{\prime},y_1^{\prime},x_2^{\prime},y_2^{\prime}) X=CAT(w,h,r,a,x1,y1,x2,y2)权重计算: 在几何特征生成阶段之后,我们为每层特征金字塔中的每个proposal计算权重。我们首先使用仅由全连接层和ReLU组成的权重生成子网络对几何特征进行变换。几何特征表示经过该变化而得到增强。然后利用变换后的特征通过sigmoid运算为不同层生成不同的权重,其定义如下:
w = σ ( M L P W G ( X ) ) = σ ( δ W 4 ( δ W 3 ( δ W 2 ( δ W 1 ( X ) ) ) ) ) \begin{align*} \mathbf{w}&=\sigma(\mathrm{MLP_{WG}}(\mathbf{X}))\\ &=\sigma(\delta\mathbf{W_4}(\delta\mathbf{W_3}(\delta\mathbf{W_2}(\delta\mathbf{W_1}(\mathbf{X}))))) \end{align*} w=σ(MLPWG(X))=σ(δW4(δW3(δW2(δW1(X)))))其中, δ \delta δ表示线性整流函数(ReLU), σ \sigma σ是Sigmoid函数。 M L P W G ( ⋅ ) \mathrm{MLP_{WG}}(·) MLPWG()是权重生成子网络。 W 1 \mathbf{W_1} W1是维度增加层, W 2 \mathbf{W_2} W2 W 3 \mathbf{W_3} W3 W 4 \mathbf{W_4} W4是维度减少层。输出权重 w = [ w 1 , w 2 , w 3 , w 4 ] ∈ R 4 \mathbf{w}=[w_1,w_2,w_3,w_4]\in\mathbb{R}^4 w=[w1,w2,w3,w4]R4。权重生成子网络的详细结构如图3a所示。
在这里插入图片描述
特征聚合: 最后,我们通过对每个proposal进行自适应多层加权聚合得到一个合并特征 V \mathbf{V} V。将RoI Align层提取的多层proposal特征记为 { P 2 ′ , P 3 ′ , P 4 ′ , P 5 ′ } \{P_2^{\prime},P_3^{\prime},P_4^{\prime},P_5^{\prime}\} {P2,P3,P4,P5},合并特征计算如下:
V = ∑ i = 2 5 w i − 1 ⋅ P i ′ \mathbf{V}=\sum_{i=2}^5w_{i-1}·P_i^{\prime} V=i=25wi1Pi其中, V ∈ R 7 × 7 × 256 \mathbf{V}\in\mathbb{R}^{7×7×256} VR7×7×256 P i ′ ∈ R 7 × 7 × 256 P_i^{\prime}\in\mathbb{R}^{7×7×256} PiR7×7×256
这样,我们充分利用金字塔特征来丰富特征表示,而不是仅使用启发式引导的单层特征。GMM将刚性的启发式映射策略软化为可以通过反向传播来与检测器进行联合训练的自适应策略。

3.2. Geometry-aware Predictor Head

在FPN中,每个proposal被RoI Align层提取为固定大小7×7×256的特征,并输入到预测头。经过上述过程,几何信息在很大程度上被忽略和破坏。
为了解决这个问题,我们提出几何感知预测头(GPH),它通过嵌入生成子网络学习生成几何感知特征。几何感知特征弥补了RoI Align层导致的几何信息缺失。此外,为了缓解分类和回归共享特征的副作用,针对不同的任务生成不同的嵌入特征。
具体来说,嵌入生成子网络类似于GMM的映射权重生成子网络。上式中的几何特征 V \mathbf{V} V在这里作为输入 X \mathbf{X} X来得到嵌入特征。
嵌入值生成: 在获得几何特征后,我们首先使用嵌入生成子网络为每个proposal生成嵌入值。该子网络仅由全连接层和ReLU组成。嵌入值的定义如下:
E = M L P E G ( X ) = W 3 ( δ W 2 ( δ W 1 ( X ) ) ) \mathbf{E}=\mathrm{MLP_{EG}}(\mathbf{X})=\mathbf{W_3}(\delta\mathbf{W_2}(\delta\mathbf{W_1}(\mathbf{X}))) E=MLPEG(X)=W3(δW2(δW1(X)))其中, δ \delta δ表示线性整流函数(ReLU), M L P E G ( ⋅ ) \mathrm{MLP_{EG}}(·) MLPEG()是嵌入生成子网络。 W 1 \mathbf{W_1} W1是维度增加层, W 2 \mathbf{W_2} W2 W 3 \mathbf{W_3} W3是维度减少层。输出嵌入值 E = [ E 1 , E 2 ] ∈ R 2 \mathbf{E}=[E_1,E_2]\in\mathbb{R}^2 E=[E1,E2]R2
特征嵌入: 最后,结合嵌入值和来自分和回归分支的特征( U c l s \mathbf{U_{cls}} Ucls U r e g \mathbf{U_{reg}} Ureg)来生成嵌入特征( U c l s ′ \mathbf{U_{cls}^{\prime}} Ucls U r e g ′ \mathbf{U_{reg}^{\prime}} Ureg),计算公式如下:
U c l s ′ = E 1 ⋅ U c l s ,   U r e g ′ = E 2 ⋅ U r e g \mathbf{U_{cls}^{\prime}}=E_1·\mathbf{U_{cls}},~\mathbf{U_{reg}^{\prime}}=E_2·\mathbf{U_{reg}} Ucls=E1Ucls, Ureg=E2Ureg其中, U c l s , U r e g , U c l s ′ , U r e g ′ ∈ R 1024 \mathbf{U_{cls}},\mathbf{U_{reg}},\mathbf{U_{cls}^{\prime}},\mathbf{U_{reg}^{\prime}}\in\mathbb{R}^{1024} Ucls,Ureg,Ucls,UregR1024
嵌入生成子网络的详细结构如图3b所示。值得注意的是,嵌入生成子网络没有在最后经过sigmoid激活,这与权重生成子网络不同。GPH通过反向传播来与检测器联合训练。这样一来,几何特征被嵌入到proposal特征中,丰富了特征表示,提高了分类和回归性能。

4. Experiments

4.1. Dataset and Evaluation Metrics

介绍了数据集和评价指标。

4.2. Implementation Details

介绍了实现细节。

4.3. Main Results

在这里插入图片描述
如表1所示,在不同主干、检测器甚至不同任务上的实验表明,GaFPN可以获得一致的性能提升。这些结果充分说明了GaFPN的鲁棒性和泛化能力。我们相信本文提出的方法也可以应用到其它计算机视觉任务中。具体的实验结论可以参照原文。

4.4. Ablation Study

在这里插入图片描述
各个组件的有效性,这三个部分是相辅相成的,处理不同的问题。具体的实验结论可以参照原文。
在这里插入图片描述
GMM模块的消融实验,具体的实验结论可以参照原文。
在这里插入图片描述
为了分析GMM产生的不同层的融合权重,我们基于启发式引导映射策略将COCO val2017上的proposal映射到4层。对于每个proposal,我们首先获得4个特征层对应的4个权重。然后,我们计算每层proposal的平均权重。4个金字塔层对应的结果如图4所示。我们可以观察到,原始映射到金字塔层 P 2 P_2 P2的proposal需要更多来自更高层的特征,并且需求的重要性随着金字塔层的增加而减弱。与此同时,原始映射到 P 3 − P 5 P_3-P_5 P3P5的proposal需要更多来自较低和较高金字塔层的特征。总而言之,来自多层的特征共同促进了每个proposal更强大的特征生成。这些结果表明来自其它层的特征也有利于分类和回归。
在这里插入图片描述
GPH的消融实验。通过以上分析,我们对GPH中的两个分支采用非共享特征嵌入和乘积嵌入类型。这些结果表明GPH有利于分类和回归分支产生更有识别力的特征。具体的实验结论可以参照原文。
在这里插入图片描述
对FPN其它变体的通用性。我们相信本文提出的方法可以用于其它类似的检测器。最后,我们在图5中展示了一些检测结果的例子,与基于FPN的基线相比,GaFPN产生了更准确的结果。具体的实验结论可以参照原文。
在这里插入图片描述

4.5. Runtime Analysis

在这里插入图片描述
GaFPN及其各个组件并没有带来太多的FLOPs、Params,推理速度也相当。具体的实验结论可以参照原文。

5. Conclusion

在本文中,我们重新审视了基于FPN的检测器的训练过程,并在模型结构方面提出了一些改进。基于这些观察,本文提出了一种新的特征金字塔网络GaFPN,用于进一步增强多尺度目标检测的特征表示。GaFPN由3个部分组成:几何感知映射模块、几何感知预测头和特征增强金字塔。通过配备这些简单但有效的组件,GaFPN在具有挑战性的MS COCO数据集上与各种检测器和任务相比带来了巨大的提升。

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

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

相关文章

探索 Google 的 Bard AI 的强大功能

谷歌最近推出了名为“Bard AI”的新人工智能项目。 该项目旨在改善人工智能的语言和创造力,是谷歌旨在推进人工智能发展的更大“红色代码”计划的一部分。 该项目的主要目标是开发一种可以生成创意写作的语言模型。 什么是巴德人工智能? Bard AI 是一种…

Python 数据库开发实战 - Python与Redis交互篇- 缓存新闻数据至redis

实现新闻缓存功能 - “news_dao.py” - 从数据库提取明确的新闻数据保存至 redis - search_cache() 方法 只有在新闻被管理员审批通过的时候,新闻才可以缓存到 redis 里面。 管理员在 “审批新闻” 的时候是可以获得到 “被审批通过的新闻” 的 id,所以…

Allegro如何用Label Tune功能自动调整丝印到器件中心

Allegro如何用Label Tune功能自动调整丝印到器件中心 在做PCB设计的时候,调整丝印是比较费时的工作,如果需要把整板的丝印位号调整到器件的中心做装配图使用,Allegro的Label Tune功能支持快速把丝印位号居中到器件中心。 以下图为例,快速把所有丝印位号居中 调整前 调整后…

若依框架 --- 偶发的el-select无法选择的问题

👏作者简介:大家好,我是小童,Java开发工程师,CSDN博客博主,Java领域新星创作者 📕系列专栏:前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…

RBCD深度利用之“烂番茄”

1.RBCD简介 本篇文章是在基于资源的约束委派的基础上的一个利用,篇幅会比较短,但个人认为利用面还是挺广泛的。于是就写一下。 首先,需要了解的是RBCD的基础知识: 简单回顾一下: 基于资源的约束委派(RBCD) 只支持2…

微电网两阶段鲁棒优化经济调度方法[3]【升级优化版本】(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑…

【论文速递】NAACL2022-DEGREE: 一种基于生成的数据高效事件抽取模型

【论文速递】NAACL2022-DEGREE: 一种基于生成的数据高效事件抽取模型 【论文原文】:DEGREE A Data-Efficient Generation-Based Event Extraction Mode 【作者信息】:I-Hung Hsu , Kuan-Hao Huang, Elizabeth Boschee &#xff…

【总结】1591- 从入门到精通:使用 TypeScript 开发超强的 CLI 工具

作为一名开发者,掌握 CLI 工具的开发能力是非常重要的。本文将指导你如何使用 TypeScript 和 CAC 库开发出功能强大的 CLI 工具。快速入门首先,需要先安装 Node.js 和 npm(Node Package Manager),然后在项目目录中创建…

【正点原子FPGA连载】第七章程序固化实验摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

第七章程序固化实验 在前面的几个实验中,我们都是通过JTAG接口将FPGA配置文件和应用程序下载到MPSOC器件中。接下来我们将尝试把程序存储在非易失性存储器中,在上电或者复位时让程序自动运行,这个过程需要启动引导程序(Boot Load…

【STM32笔记】HAL库UART串口配置及重定向(解决接收中断与scanf不能同时工作的问题)

【STM32笔记】HAL库UART串口配置及重定向&#xff08;解决接收中断与scanf不能同时工作的问题&#xff09; 首先 要使用printf和scanf 必不可少的就是 #include <stdio.h>这里需要做的就是配置单片机的UART 并且使其能够被printf和scanf调用 打开异步工作模式 并且选择…

openGauss单机版升级示例(2.0.1—>3.1.1)

文章目录前言一、升级前的准备工作二、升级主要步骤1、查看当前数据库版本2、创建临时目录用于存放安装文件3、下载最新需要升级的版本并解压4、执行前置脚本 openGauss的 gs_preinstall5、执行升级操作6、升级检查7、提交升级&#xff1a;三、附本期小知识前言 数据库版本升级…

你的自动化框架如何设计的?为什么感觉面试官总是不满意,到底问题出在哪?

前言去面试自动化测试岗位&#xff0c;尤其是接口自动化岗位&#xff0c;面试官总会问&#xff1a;说下你的自动化框架如何设计的&#xff1f;为什么回答后&#xff0c;面试官对你的框架设计总是感觉不满意&#xff1f;自动化测试实现的几种方式对于不同的公司来说&#xff0c;…

iOS16灵动岛横屏视频播放适配(ZFPlayer)

项目场景&#xff1a; 手机为iphone14Pro 版本iOS16.0.3 Xcode版本14.2 视频播放第三方库ZFPlayer 问题描述 使用视频时&#xff0c;视频播放自动横屏控制层的返回按钮和暂停按钮都点不到&#xff0c;上图错误、下图正确&#xff08;控制按钮距离屏幕左右减小50、视频全屏不做…

Maven:基础知识

Maven概念图生命周期目录工程创建测试常用命令COMPILATION ERROR : 不再支持目标选项 5。请使用 7 或更高版本。问题解决pom.xml文件properties配置示例scope配置详解概念图 依赖管理构建项目Maven 的底层核心实现项目的构建和管理必须通过插件完成&#xff0c;但插件本身并不包…

VC++打开或关闭目标进程的声音(扬声器)(附源码)

VC常用功能开发汇总&#xff08;专栏文章列表&#xff0c;欢迎订阅&#xff0c;持续更新...&#xff09;https://blog.csdn.net/chenlycly/article/details/124272585C软件异常排查从入门到精通系列教程&#xff08;专栏文章列表&#xff0c;欢迎订阅&#xff0c;持续更新...&a…

一刷代码随想录——单调栈

每日温度739题目描述&#xff1a;给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0c;下一个更高温度出现在几天后。如果气温在这之后都不会升高&#xff0c;请在该位置用 0 来…

spring security 核心类 和请求登陆过程

核心类图2. 执行登陆 首先请求被拦截器 UsernamePasswordAuthenticationFilter 拦截 看源代码可以看出默认拦截的是 /login 请求地址 当然这个地址是可以被配置的 private static final AntPathRequestMatcher DEFAULT_ANT_PATH_REQUEST_MATCHER new AntPathRequestMatche…

DFS深度优先算法 —— AcWing 842. 排列数字AcWing 843. n-皇后问题

一、了解dfs1、DFS&#xff08;Depth First Search&#xff09;DFS在我看来就是一条路走到黑&#xff0c;直到无路可走的情况下&#xff0c;才会选择回头&#xff0c;然后重新选择一条路&#xff08;官方说法即“优先考虑深度”&#xff09;整个进程反复进行直到所有节点都被访…

Allegro如何添加ICT操作指导

Allegro如何添加ICT操作指导 当PCB板需要做飞针测试的时候,通常需要在PCB设计的时候给需要测试的网络添加上ICT。 如图: Allegro支持给网络添加ICT,具体操作如下 首先在库中创建一个阻焊开窗的过孔,比如via10-ict一般阻焊开窗的尺寸比盘单边大2mil 在PCB中选择Manufacture…

Linux基础命令1(常见的系统进程、状态命令)

目录 Linux命令格式 Linux快捷按键 常用系统命令 man 查看命令的帮助信息 echo 输出信息&#xff08;将信息输出到屏幕上面&#xff09; date 查看系统的日期、时间 timedatectl 设置系统时间&#xff0c;主要是时区&…