PeLK: 大卷积核强势回归,高达101 × 101,提出了外围卷积

paper:https://arxiv.org/pdf/2403.07589

code:暂无

目录

0. 摘要

1. 引言

2. 相关工作

2.1. Large Kernel Convolutional Networks

2.2. Peripheral Vision for Machine Learning

3. 密集卷积优于条纹卷积

4. 参数高效的大核卷积神经网络

4.1. 外围卷积

4.2. 核位置嵌入

4.3. 局部外围卷积

4.4.架构规范

5. 实验


0. 摘要

        近期,一些大卷积核卷积网络以其高效且高性能强势杀回。然而,因为其卷积的平方复杂度,增大卷积核会带来巨大的参数量增长,而急剧增长的的参数量又会带来很多优化问题。由于这个问题,导致最近的CNN 以条纹卷积(即 51 × 5 + 5 × 51)的形式扩展到 51 × 51,而且随着内核大小的持续增长已经开始趋于饱和。在本文中,我们深入研究了这些关键问题,并探索我们是否可以继续扩大内核以获得更高的性能增益。受人类视觉的启发,我们提出了一种类似人类的外围卷积,它通过参数共享有效地减少了超过 90% 的密集网格卷积的参数计数,并设法将内核大小扩大到非常大。我们的外围卷积的行为与人类高度相似,在不损失性能的情况下,将卷积的复杂度从 O(K2) 降低到 O(log K)。在此基础上,我们提出了参数高效的大核网络(PELK)。我们的 PELK 在 ImageNet 分类、ADE20K 上的语义分割和 MS COCO 上的对象检测等各种视觉任务中都优于 Swin、ConvNeXt、RepLKNet 和 SLaK 等现代视觉转换器和 ConvNet 架构。我们首次成功地将 CNN 的内核大小扩展到前所未有的 101 × 101,并展示了一致的改进。

1. 引言

        卷积神经网络 (CNN) 几十年来在机器学习中发挥着关键作用 [17, 20, 21, 39]。然而,近年来,视觉Transformer (ViTs) [6, 13, 25, 46, 51] 极大地挑战了它们的优势。一些工作[36,48]将VITS的强大性能归因于它们的大感受野:受益于自注意力机制,ViT 可以从大空间范围内捕获上下文信息并建模远程依赖关系。受此启发,CNN [12, 24, 26] 的最新进展表明,当配备大内核大小(例如 31 × 31)时,纯 CNN 架构可以在各种视觉任务上的表现与最先进的 ViT 相当甚至更好。

        尽管大核卷积网络表现出强大的性能和吸引人的效率,但存在一个致命的问题:核大小为 K时,其复杂度就是 O(K2)。由于这个问题,直接扩大内核会带来大量的参数。例如,31 × 31 内核的参数比 ResNet [17] 中典型的 3 × 3 对应物的参数大 100 倍,比 ConvNeXt [26] 中使用的 7 × 7 内核的参数大约 20 倍。增殖的参数随后会导致严重的优化问题,使其无用甚至不利于直接扩大内核大小[12,24,26]。为了解决这个问题,RepLKNet[12]重新参数化一个平行于大内核的5×5内核,以弥补优化问题,SLaK[24]妥协使用条纹卷积将复杂度降低到线性,并缩放到51 × 51(即51 × 5 + 5 × 51)。然而,对于下游任务的分辨率(例如,ADE20K 上的 2048 × 512),这仍然是一个有限的交互范围,更重要的是,条纹卷积缺乏密集卷积的范围感知,因此我们推测它可能会破坏模型的空间感知能力。

        在本文中,我们首先在统一的现代框架(即 SLaK [24])下对卷积形式进行了全面剖析。我们凭经验验证了我们的猜想,即密集网格卷积优于条带卷积,在多个内核大小上有一致的改进。这种现象不仅适用于分类任务,而且对下游任务更为明显,表明密集卷积相对于条纹形式的基本优势。然而,如上所述,大密集卷积的平方复杂度导致参数激增,导致模型尺寸迅速增加,优化难度更大,从而阻止了它进一步增大。这就自然引出了一个问题:是否有一种方法可以在减少所需参数的同时保留密集网格卷积的形式。如果是这样,我们是否就可以进一步扩大密集网格卷积以获得更高的性能收益?

        与卷积或自注意力的密集计算不同,人类视觉具有更有效的视觉处理机制,称为外围视觉 [22]。具体来说,人类视觉将整个视野划分为中心区域和外围区域,条件是注视中心的距离,中心区域的光感受器细胞(锥和杆)的数量超过外围区域[40]的100倍。这种生理结构为人类提供了模糊感知的特征:我们有强烈的感知,在中心区域清晰地看到,识别形状和颜色;而在外围区域,视野模糊,分辨率降低,因此我们只能识别抽象的视觉特征,如运动和高级上下文。这种机制使我们能够在视野的一小部分(< 5%)内感知重要的细节,同时最小化剩余部分(> 95%)中不必要的信息,从而促进人脑的高效视觉处理[2,10,11,28,37,38,52,54]。

        受人类视觉和回答上述问题的启发,我们提出了一种新颖的外围卷积,在保持密集计算形式的同时,将卷积的参数复杂度从 O(K2) 降低到 O(log K)。我们的外围卷积由三个设计组成:i) 焦点和模糊机制。我们在卷积核的中心区域保持细粒度参数,并在外围区域使用广泛的参数共享; ii) 增加共享粒度。我们的共享网格以指数级增长的方式增长,这比固定粒度更有效; iii) 内核位置嵌入。我们引入了核位置嵌入来解决由宽范围外围共享以优雅且廉价的方式引起的细节模糊问题。由于我们的外围卷积显着减少了大内核的参数(超过 90%),我们能够设计出性能强的大型密集内核卷积网络。

        基于上述外围卷积,我们提出了参数高效的大核网络(PELK),这是一种新的纯CNN架构,具有有效感受野(ERF)随参数呈指数增长。由精心设计的参数共享机制促进,PELK以非常小的参数成本扩大内核大小,实现了非常大的密集内核(例如,51 × 51, 101 × 101),并有一致的改进。我们的 PELK 在各种视觉任务中实现了最先进的性能,在配备非常大的内核大小时表现出纯 CNN 架构的潜力。

        PELK被证明能够覆盖比以前的大内核范式更大的ERF区域,更有趣的是,我们的分析和消融表明,外围卷积的最佳设计原则与人类视觉有着惊人的相似之处,这表明生物启发的机制可能是设计强大现代网络有希望的候选者。

2. 相关工作

2.1. Large Kernel Convolutional Networks

        从深度学习的早期开始,大核卷积网络可以追溯到一些早期模型[20,42,43]。在 VGG-Net [39] 之后,使用一堆小内核(例如 1 × 1 或 3 × 3)来获得的大感受野已成为过去十年间常见的做法。全局卷积网络 (GCN) [34] 通过使用条纹卷积 (1×M + M×1) 的组合来改进语义分割任务,将内核大小扩大到 15。然而,据报道所提出的方法会损害 ImageNet 的性能。最近,大型内核卷积网络以吸引人的性能返回[12,24,26,47]。ConvMixer [47] 使用 9 × 9 深度卷积来替换 ViT [13] 和 MLP-Mixer [44] 的空间混合器(即自注意力块和全连接块)。ConvNeXt[26]与Swin[25]的设计理念相一致,以探索一个强大的现代CNN架构,配备了7 × 7深度卷积。RepLKNet [12] 通过重新参数化与其平行的小内核(例如 5 × 5)并的性能与 Swin Transformer [25] 相当,令人印象深刻的将内核大小扩展到 31 × 31。我们的工作也受到LargeKernel3D[5]的启发,它将大内核设计引入到3D网络中,并扩展到17 × 17 × 17。相比之下,我们探索了2D通用卷积的极端,在类人模式下扩展到更大的101 × 101。SLaK[24]将分解后的卷积与动态稀疏性相结合,以条纹卷积的形式将核扩展到51×51(例如,51×5+5×51)。然而,随着内核大小的持续增长,它开始饱和。与现有技术不同,我们研究了哪种卷积形式在大型内核设计中更有效。更重要的是,我们探索了非常大的密集内核的设计,并测试了它是否可以带来进一步的收益。

2.2. Peripheral Vision for Machine Learning

        人类视觉具有特殊的视觉处理系统,称为外围视觉[22]。它根据到中央凹的距离将整个视野划分为多个轮廓区域,每个区域都有不同的分辨率粒度进行识别。Rosenholtz[37]的工作讨论了深度重要发现和现有的关于周边视觉的神话,表明了外围视觉对人类在不同任务上的感知比以前认为的更为关键。在此之后,许多研究 [2, 10, 11, 28, 38, 54] 致力于揭示周边视觉机制的基本原理和深度影响。由于周边视觉在人类视觉中起着至关重要的作用,许多开创性的工作[11,14 -16,29,50]挖掘周边视觉与机器视觉(如cnn)之间的联系。[49]引入了一种受生物学启发的机制,以提高神经网络对小扰动的鲁棒性。FoveaTer [19] 使用径向极坐标池化区域将更多的固定/计算资源动态分配给更具挑战性的图像。PerViT [33] 建议将外围位置编码合并到多头自注意力层中,以将视觉场划分为不同的外围区域,表明网络学习感知视觉数据,类似于人类视觉的方式。继续之前的研究,本文探讨了将人类周边视觉与大核卷积网络混合,并引入了一种新的外围卷积来有效地减少密集卷积的参数。

3. 密集卷积优于条纹卷积

        我们首先研究密集网格卷积是否优于条纹卷积。我们采用统一的现代框架 SLaK [24] 进行研究。根据RepLKNet[12],大核卷积比ImageNet分类更能促进下游任务。因此,我们不仅在 ImageNet-1K 上进行评估,还在 ADE20K 上进行评估作为我们的基准。本文采用MegEngine[1]开发的高效大卷积核实现。

        仿照 SLaK [24] ,我们在 ImageNet 上训练所有模型 120 个 epoch 。数据增强、正则化和超参数都采用相同设置。然后我们使用预训练模型作为 ADE20K 上的主干。具体来说,我们使用MMSegmentation[7]实现的UperNet[56]和80K迭代训练计划。我们不使用任何高级技术或自定义算法,因为我们只寻求评估主干。

        SLaK 引入了一个两步方法,用于将内核扩展到51 × 51: 1)将一个大核分解为两个矩形并行核; 2)利用动态稀疏性和扩展更多的宽度。为了彻底分析卷积形式的效果,我们对 w/ 和 w/o 稀疏性进行了实验。默认情况下,我们重新参数化 5 × 5 卷积以简化 SLaK 和 RepLKNet 所采取的优化问题。表 1 的结果表明,无论动态稀疏性如何,密集网格卷积都超过条纹卷积。

        我们进一步在不同的内核大小下探索了卷积形式(即 K×K vs.K×N) 。具体来说,我们将 SLaK 的条形 conv 的较短边固定为 5 作为默认设置 (N=5),然后逐渐将 K 从 51 减少到 7。我们不使用动态稀疏性来完全消融卷积形式。如图 2 所示,密集网格卷积在多个内核大小之间始终优于条带卷积,增益随着内核大小的增加而增加,证明了密集网格大内核卷积的基本优势。

        然而,如第 1 节所述,密集网格卷积的平方复杂度可以带来激增的参数。例如,如图 2 所示,将内核从 7 缩放到 51 只会为条纹 conv 带来大约 7.3 倍的参数,而对于密集 conv 则为 53.1 倍。鉴于人类的周边视觉在外围区域只有少量的光感受器细胞,我们认为密集参数对于外围相互作用不是必需的。受此启发,我们试图通过引入外围视觉机制来降低参数复杂度,同时保留密集计算以保持密集卷积的强大性能。

4. 参数高效的大核卷积神经网络

4.1. 外围卷积

        形式上,标准的 2D 卷积核由一个 4D 向量组成:w \in \mathbb R^{c_{in} \times c_{out} \times k \times k},其中 c_in 代表输入通道,c_out 是输出通道,k 表示空间核维度。我们试图通过空间参数共享用更小的核w_\theta \in \mathbb R^{c_{in} \times c_{out} \times k' \times k'}参数化w,其中0 < k '≤k。首先,我们定义共享网格 S = [s0, s1,..., sk′ -1],其中 Pk′ -1i=0 si = k。根据 S,我们将 k×kposition 划分为 k′ × k′ 区域:对于 a, b = 0, 1,。.., k′ − 1,

通过这种方式,我们可以利用一个小内核来参数化更大的内核,实现空间参数共享。图 1a 描述了这种设计的说明。

        接下来,我们详细阐述了外围卷积的关键设计。我们将 w_θ 的内核半径表示为 r。为了便于理解,这里我们将共享网格重新表述为轴对称形式:S=[\bar{s}_{-r}, \bar {s}_-r+1,...,\bar s_0, \bar s_1,...,\bar s_{r-1}, \bar s_{r}],其中r = (k' -1 ) / 2。

类似于人类的外围视觉,我们的外围卷积的共享网格主要由两个核心设计组成:

        i) 焦点和模糊机制。如图1b所示,我们在卷积核中心区域保持细粒度参数,其中共享网格设置为 1(即不共享)。对于外围区域,我们利用远程参数共享来利用外围视觉的空间冗余。我们在第 5.4 节中证明,中心区域的细粒度至关重要,而外围区域可以在不损失性能的情况下承受广泛的参数共享;

        ii) 指数增加的共享粒度。人类视觉以准指数模式[35]下降。受此启发,我们设计了我们的共享网格以指数级增长的方式增长。这种设计可以优雅地将卷积的参数复杂度从 O(K2) 降低到 O(log K),从而可以进一步扩大密集卷积的内核大小。具体来说,共享网格 S 由下面构成:

其中rc是中心细粒度区域的半径,mis是指数增长的基础,m默认设置为2。

4.2. 核位置嵌入

        尽管所提出的外围卷积有效地减少了密集卷积的参数,但大量的参数共享可能会带来另一个问题:外围区域的局部细节模糊。特别是当内核大小以外围卷积的形式扩展到超过 50 甚至 100 时,当单个参数需要处理 8 × 8 甚至 16 × 16 外围区域时,这种现象会进一步放大。

        为了解决这个问题,我们提出了内核位置嵌入。形式上,给定一组输入特征 X,我们通过核权重的卷积来处理这些特征。我们用trunc normal[53]初始化位置嵌入h \in \mathbb R^{c_{in} \times k \times k}。输出位置 (x, y) 处的卷积过程可以表示为:

其中 Y 是输出。rw 是内核 w 的半径, r_w = (k - 1) / 2.

        如图 3 所示,通过引入内核的位置嵌入,我们可以区分共享区域中的特定位置,从而弥补共享引起的模糊局部细节问题。实际上,这可以看作是向输入特征添加相对位置信息的偏差。值得注意的是,阶段中的所有内核共享相同的位置嵌入 h,因此 h 带来的附加参数可以忽略不计。这种设计以廉价和优雅的方式共享权重来解决位置不敏感问题,特别是对于非常大的内核,例如 51 × 51 和 101 × 101。

4.3. 局部外围卷积

        大内核卷积网络已被证明具有高通道冗余[57],并且非常适合稀疏性[24]。由于我们的外围卷积使我们能够设计更大的密集卷积,具有更强的空间感知能力,我们希望进一步利用大卷积的通道冗余。我们引入了 Inception 风格的设计,其中只有特征图的部分通道将通过卷积处理。我们遵循一个简单的理念:更多的身份映射来利用通道冗余。具体来说,对于输入 X,我们将其沿通道维度分为两组,

其中 g 是卷积分支的通道数,默认情况下设置为 \frac{3}{8} C_{in}。然后将拆分的输入分别输入到外围卷积和恒等映射中,

最后,将两个分支的输出连接起来以恢复原始形状, 

        这种设计可以看作是 Inceptionstyle 结构的一个特例,例如 Inception [41]、Shufflenet [30, 61] 和 InceptionNeXt [57]。他们在并行分支中使用不同的运算符,而我们采用了更简单的理念:只有外围卷积和身份映射。我们凭经验发现,这种设计非常适合具有非常大内核的外围卷积,显着减少了 FLOPs,而不会损失性能。

4.4.架构规范

        基于上述设计和观察,我们现在详细阐述了我们的参数高效大内核网络 (PELK) 的架构。我们主要遵循 ConvNeXt 和 SLaK 来构建具有多个大小的模型。具体来说,PelK 也采用了 4 阶段的框架。我们使用具有 4 × 4 内核和 4 个步幅的卷积层构建词干。小尺寸的块数为 [3, 3, 9, 3],小/基尺寸的块数为 [3, 3, 3, 27, 3]。PELK不同阶段的内核大小默认为[51,49,47,13]。对于 PELK101,内核大小扩大到 [101、69、67、13]。

        默认情况下,我们将中心 5 × 5 区域保持细粒度。对于 PELK-101,我们将中心区域扩大到 7 × 7 以调整增加的内核。在 SLaK 之后,我们还使用动态稀疏性来增强模型容量。所有超参数都设置相同(1.3×宽度,40% 稀疏度)。我们在第 5.4 节中对内核配置进行了彻底的消融。

5. 实验

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

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

相关文章

RabbitMQ知识点总结(一)

为什么要使用RabbitMQ? 异步&#xff0c;解耦&#xff0c;削峰。 异步 提高效率&#xff1b;一个挂了&#xff0c;另外的服务不受影响。 解耦 增加或减少服务比较方便。 削峰 每天0点到16点&#xff0c;A系统风平浪静&#xff0c;每秒并发数量就100个。结果每次到了16点到…

STM32修改主频的方法

大家都知道STM32F103C8T6的主频是72M&#xff0c;那怎么样才能在程序中获得这个主频的值呢&#xff1f;怎么样才能更改主频的值呢&#xff1f; 如图找到主频的变量&#xff0c;然后显示这个变量就是显示主频了。 #include "stm32f10x.h" // Device…

含匹配扰动的多智能体领航跟随一致性Matlab仿真

文章目录 [TOC](文章目录) 前言一、问题描述二、基于LQR的观测器和控制器设计1.观测器设计2.控制器设计 三、数值仿真四、参考文献总结 前言 ​本文探讨了带有匹配扰动的多智能体领航跟随一致性控制方法&#xff0c;并提供了相应的Matlab仿真代码。 具体的设计步骤如下&#…

Mysql的索引与事务理解

目录 一、Mysql索引 1、索引的概念 2、索引的特点 3、索引使用场景 4、Mysql有关索引的操作 &#xff08;1&#xff09;查询表具有的索引 &#xff08;2&#xff09;增加索引 &#xff08;3&#xff09;删除索引 5、索引实现原理 &#xff08;1&#xff09;B树 &…

【java数据结构之八大排序(上)-直接插入排序,希尔排序,选择排序,堆排序,向下调整(大根堆,小根堆)等知识详解】

&#x1f308;个人主页&#xff1a;努力学编程’ ⛅个人推荐&#xff1a;基于java提供的ArrayList实现的扑克牌游戏 |C贪吃蛇详解 ⚡学好数据结构&#xff0c;刷题刻不容缓&#xff1a;点击一起刷题 &#x1f319;心灵鸡汤&#xff1a;总有人要赢&#xff0c;为什么不能是我呢 …

深度学习之基于YOLOv5的山羊行为识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 基于YOLOv5的山羊行为识别系统是一个结合了深度学习和目标检测技术的项目&#xff0c;旨在通过图像或视频实现对山羊…

DELL PowerEdge服务器通过iDRAC升级BIOS遇到的问题

本文对PowerEdge 12G系统&#xff0c;也就是iDRAC 7版本升级BIOS中遇到的几个问题做个总结&#xff0c;对于其他版本理论上应该也是适用的。如果还遇到其他问题&#xff0c;可以添加VX&#xff0c;VX号为 StorageExpert 进行进一步的分析探讨。 第一个问题&#xff0c;成功下载…

C#调用skiasharp实现绘制并拖拽图形

SkiaSharp是基于.net的跨平台二维图形库&#xff0c;封装的谷歌的Skia库&#xff0c;SkiaSharp支持在以下平台或运行时中使用&#xff0c;能够在图片中绘图&#xff0c;也提供控件在Winform、WPF等使用。本文学习skiasharp在Winform的基本用法&#xff0c;并参照参考文献5实现绘…

【Unity动画系统】详解Root Motion动画在Unity中的应用(一)

Root Motion动画与普通动画的区别 普通动画&#xff1a;动画文件里记录的是物体的绝对坐标和方向&#xff0c;在播放动画时&#xff0c;Unity会根据Animation中记录的值&#xff0c;直接修改游戏对象的坐标和方向&#xff0c;每一帧的坐标和方向都是通过插值计算得出来的&…

【Camera KMD ISP SubSystem笔记】Request 流转与Bubble机制

ISP中断类型 SOF: 一帧图像数据开始传输 EOF: 一帧图像数据传输完成 REG_UPDATE: ISP寄存器更新完成(每个reg group都有独立的这个中断) EPOCH: ISP某一行结尾(默认20)就会产生此中断 BUFFER DONE: 一帧图像数据ISP完全写到DDR了 管理Isp request的几个List st…

锂电池SOH预测 | 基于CNN的锂电池SOH预测(附matlab完整源码)

锂电池SOH预测 锂电池SOH预测完整代码锂电池SOH预测 锂电池的SOH(状态健康度)预测是一项重要的任务,它可以帮助确定电池的健康状况和剩余寿命,从而优化电池的使用和维护策略。 SOH预测可以通过多种方法实现,其中一些常用的方法包括: 容量衰减法:通过监测电池的容量衰减…

AMBA-CHI协议详解(二)

《AMBA 5 CHI Architecture Specification》 文章目录 2.1 Channels综述2.2 Channel域段2.2.1 request fields2.2.2 Response fields2.2.3 Snoop request fields2.2.4 Data fields 2.3 事务结构2.3.1 Read transactions2.3.1.1 Allocating Read2.3.1.2 Non-allocating Read 2.…

字符串类型漏洞之updatexml函数盲注

UPDATEXML 是 MySQL 数据库中的一个函数&#xff0c;它用于对 XML 文档数据进行修改和查询。然而&#xff0c;当它被不当地使用或与恶意输入结合时&#xff0c;它可能成为 SQL 注入攻击的一部分&#xff0c;从而暴露敏感信息或导致其他安全漏洞。 在 SQL 注入攻击中&#xff0…

通过Cmake官网下载.gz文件安装最新版本的CMAKE、适用于debian

1.前往官网下载最新版本debian https://cmake.org/download/ 2.选他 3. 通过XFTP传输到服务器 4. 解压文件 #cd 进入对应目录&#xff0c;然后执行下面命令解压 $ tar -zxvf cmake-3.29.2.tar.gz5.执行这个文件 $ ./bootstrap6.完成之后再执行这个 $ make7.然后&#xff…

C语言--贪吃蛇小游戏

目录 一、Win32API介绍 1.1Win32API 1.2控制台程序 1.3控制台屏幕上的坐标COORD 1.4GetStdHandle 1.5GetConsoleCursorInfo 1.6 CONSOLE_CURSOR_INFO 1.7 SetConsoleCursorInfo 1.8SetConsoleCursorPosition 1.9GetAsyncKeyState 二、贪吃蛇游戏设计与分析 2.1地图 …

双重注意力模块 DoubleAttention | A2-Nets: Double Attention Networks

论文名称&#xff1a;《 A 2 A^2 A2-Nets: Double Attention Networks》 论文地址&#xff1a;https://arxiv.org/pdf/1810.11579.pdf 学习捕捉远距离关系对于图像/视频识别是基础性的。现有的CNN模型通常依靠增加深度来建模这些关系&#xff0c;这在很大程度上效率低下。在这…

数字旅游打造个性化旅行体验,科技让旅行更精彩:借助数字技术,旅行者可以定制专属旅行计划,享受个性化的旅行体验

目录 一、引言 二、数字旅游的兴起与发展 三、数字技术助力个性化旅行体验 1、智能推荐系统&#xff1a;精准匹配旅行者需求 2、定制化旅行计划&#xff1a;满足个性化需求 3、实时互动与分享&#xff1a;增强旅行体验 四、科技提升旅行便捷性与安全性 1、移动支付与电…

boot https ssl 使用http协议访问报错

在springboot中配置ssl以后&#xff0c; 再次使用http访问对应的接口就会报错 可以考虑如下设置&#xff0c;将http访问的端口重定向到https对应的端口 import org.apache.catalina.Context; import org.apache.catalina.connector.Connector; import org.apache.tomcat.util…

图像处理ASIC设计方法 笔记18 轮廓跟踪算法的硬件加速方案

目录 1排除伪孤立点&#xff08;断裂链表&#xff09;方法1 限制链表的长度方法2 增加判断条件排除断裂链表方法3 排除不必要跟踪的轮廓&#xff08;推荐用这个方法&#xff09; P129 轮廓跟踪算法的硬件加速方案 1排除伪孤立点&#xff08;断裂链表&#xff09; 如果图像中某…

探索开源的容器引擎--------------Docker容器操作

目录 一、Docker 容器操作 1.1容器创建 1.2查看容器的运行状态 1.3启动容器 1.4创建并启动容器 1.4.1当利用 docker run 来创建容器时&#xff0c; Docker 在后台的标准运行过程是&#xff1a; 1.4.2在后台持续运行 docker run 创建的容器 1.4.3创建容器并持续运行容器…