🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄

🌹简历模板、学习资料、面试题库、技术互助

🌹文末获取联系方式 📝

在这里插入图片描述


在这里插入图片描述

从空中图像中检测物体由于以下因素而面临重大挑战:

空中图像通常具有非常大的尺寸,一般有数百万甚至数亿像素,而计算资源是有限的。 小物体尺寸导致有效检测信息不足。
不均匀的物体分布导致计算资源的浪费。

为了解决这些问题,作者提出了YOLC(You Only Look Clusters),这是一个高效且有效的框架,建立在Anchor-Free点目标检测器CenterNet之上。为了克服大规模图像和不均匀物体分布带来的挑战,作者引入了一个局部尺度模块(LSM),该模块自适应搜索聚类区域进行放大以实现精确检测。

此外,作者使用高斯Wasserstein距离(GWD)修改回归损失,以获得高质量的边界框。在检测Head中采用了可变形卷积和细化方法,以增强小物体的检测。作者在两个空中图像数据集上进行了大量实验,包括Visdrone2019和UAVDT,以证明YOLC的有效性和优越性。

1、Introduction

近年来,目标检测取得了显著进展,尤其是随着深度学习的快速发展。目标检测器(如Faster R-CNN,YOLO,和SSD)在自然图像数据集(如MS COCO,Pascal VOC)上取得了卓越成果。然而,它们在航拍图像上的表现,在准确性和效率方面尚未达到满意水平。

航拍图像通常由无人机、飞机和卫星捕获,其鸟瞰视角和广阔的视觉领域与自然图像有所不同。航拍图像中的目标检测更具挑战性,主要基于以下三个原因:

  • 航拍图像通常非常大,超出了当前设备的处理能力。因此,这些图像需要调整到更小的尺寸或分割成小块以进行检测。
  • 微小物体在航拍图像中占据了很大比例,这使得检测器难以识别分辨率和视觉特征有限的小物体。通常,小物体指的是面积小于3232的物体。
  • 航拍图像中的物体分布不均匀。例如,在图1(b)中,一些车辆聚集在交叉路口,而一些车辆或人则零星出现。密集区域内的物体应得到更多关注,而背景则应被忽略。

在这里插入图片描述
早期的工作提出了新颖的多尺度训练策略,如图像金字塔的尺度归一化(SNIP)及其改进版本。这些方法可以有效提升小物体的检测性能,但多尺度训练对计算资源和内存容量提出了较高的要求。另一种方法是提高图像分辨率或特征分辨率。例如,生成对抗网络(GAN)可用于补偿小物体的信息丢失。因此,可以缩小小物体和大物体之间的特征表示差距;但计算成本会很高。最近,一些基于标签分配的方法旨在改善稀有小物体样本的样本分配策略。它们已经提升了小物体的检测性能,但在准确度或效率方面仍有改进空间。

高分辨率航拍图像中小目标的非均匀分布对检测器提出了重大挑战,导致在大规模航拍图像上的效率或准确性降低。为了解决这些问题,一种直接的方法是将图像分割成几个切块并放大,如均匀裁剪所示。然而,这种方法没有考虑到目标的非均匀分布,检测所有切块仍然需要大量的时间。为了解决上述挑战,已经提出了主流解决方案,包括设计专用方案来定位簇区域,这些区域随后可用于检测。ClusDet采用聚类检测网络来检测目标簇。

DMNet建模目标分布并通过密度图生成簇区域。这些策略展现出有希望的结果,因为保留了聚类区域,同时尽可能抑制了背景。然而,每个切块的独立检测降低了推理速度。此外,尽管上述方法生成了簇区域,但某些簇中的目标分布是稀疏的,对最终性能的贡献很小。因此,在航拍图像中的目标检测中实现准确性与效率之间的最佳权衡是一个关键问题。

受作者的观察启发,作者提出了一种创新的无需 Anchor 点的聚类网络,称为“你只需看簇”(YOLC)用于航拍图像中的目标检测。YOLC以CenterNet为基础,以其简洁、可扩展和高推理速度的特点,直接预测目标的中心,不依赖于专用的 Anchor 定框。这使得它成为检测航拍图像中密集和小目标的更合适选项。

值得注意的是,其他研究者已经利用CenterNet框架通过 centerness-aware 网络研究遥感目标或关键点。CenterNet使用密度图(也称为 Heatmap )来估计目标位置。Heatmap 提供了对目标分布的洞察,使作者能够区分簇区域和稀疏区域。基于这一洞察,作者开发了一个局部尺度模块(LSM),它可以自适应地搜索簇区域并将它们调整到适当的尺度,以便检测器有效地运行。

所提出的LSM与现有的图像裁剪策略相比有几个优点。首先,它是一个无监督的模块,这意味着它可以无缝地集成到任何基于关键点的检测器中,而无需额外的簇 Proposal 网络。这简化了训练过程,并减少了检测系统的整体复杂性。其次,LSM易于实现且内存消耗低,这使得它适用于实际应用。最后,与现有工作相比,LSM生成较少的图像切块,并且以高推理速度实现出色的性能。这使得它成为检测大规模航拍图像中目标的实用解决方案。

为了实现更精确的目标检测,作者对CenterNet进行了几项改进。首先,作者修改了回归损失,使用高斯Wasserstein距离(GWD),这对于检测小目标特别合适,但可能导致大目标性能下降。为了解决这个问题,作者提出了GWD+损失,它结合了两种损失函数的优点。

此外,作者通过使用可变形卷积来改进检测Head,以细化边界框回归。作者还设计了一个解耦的 Heatmap 分支,这允许更准确地定位不同物体类别。

总的来说,这些改进使得作者的YOLC模型能够在航拍图像中实现更精确和准确的目标检测。

总结如下,主要贡献如下:

  • 作者提出了一种新颖且高效的 Anchor-Free 目标检测框架YOLC,在两个航拍图像数据集上取得了最先进的表现。与许多现有方法相比,它简单优雅,仅包含一个网络,参数更少,效率更高。
  • 引入了一种轻量级无监督局部尺度模块(LSM),用于自适应搜索聚类区域。
  • 设计了一种基于GWD的改进回归损失函数,这对于小目标检测更有效。
  • 还提出了一个改进的检测Head,它利用可变形卷积进行准确的边界框回归,并设计了一个解耦的 Heatmap 分支,以精确地定位不同类别的物体。
  • 在两个航拍图像数据集上的大量实验证明了所提出方法的有效性及相对于最先进方法的优越性。

2、Related Work

通用目标检测方法可以分为两大类:基于 Anchor 框和 Anchor-Free 框方法。基于 Anchor 框的模型可以根据是否利用候选 Proposal 分为两阶段和单阶段方法。两阶段方法主要包括Faster RCNN,Mask RCNN和R-FCN。另一方面,单阶段检测器直接回归边界框和类别,无需 Proposal 阶段。单阶段方法的代表例子有YOLOs,SSD和RetinaNet。

Anchor-Free 框模型则不需要复杂的手工 Anchor 框。一些 Anchor-Free 框模型,如Foverbox和FCOS,预测位置到边界框四边的距离。或者,其他 Anchor-Free 框方法只预测目标的角点或中心点,包括CornerNet,Cornernet-lite和CenterNet。尽管这些检测器在自然场景中表现良好,但将其应用于航拍图像时,往往无法获得满意的结果。

小目标检测是一个具有挑战性但重要的话题。与通用目标检测不同,小目标检测面临诸如信息丢失、特征表示噪声、边界框扰动容忍度低和样本不足等问题。程等人[30]对小型目标检测方法进行了广泛回顾,将其分为样本导向、尺度感知、基于超分辨率、上下文建模[36]和聚焦-检测等各组别。然而,航拍图像通常包含大量小目标,并且具有大尺寸。在庞大的背景上进行检测会消耗计算资源而效果不佳。在各种方法中,聚焦-检测技术被证明更准确且内存效率更高,尤其优于超分辨率方法。因此,聚焦-检测方法在航拍图像目标检测中得到了广泛的应用,也被称为基于图像裁剪的方法。

航拍图像目标检测由于视角更广和小目标丰富而面临独特的挑战。为了克服这些挑战,图像裁剪策略已被广泛采用。例如,Unel等人证明了统一裁剪对小型目标检测的有效性。和SAHI将高分辨率图像划分为小重叠裁剪区域,然后在这些区域上进行检测。然而,统一裁剪的缺点是许多裁剪区域只包含背景,导致检测效率低下。

为了解决这一限制,ClusDet提出了一种聚类区域 Proposal 网络(CPNet)来获取聚类区域,以及一个尺度估计网络(ScaleNet)来重新调整区域以适应检测器。DMNet和CDMNet使用密度图来检测目标并学习尺度信息。GLSAN使用了全局-局部融合策略和逐步尺度变化网络进行准确检测。与这些方法相比,作者引入了一个局部尺度模块,该模块可以自适应搜索聚类区域并调整其大小以适应检测器,这既简单又高效。

3、Proposed Method

3.1、Preliminary

CenterNet 是一种强大且高效的 Anchor-Free 框目标检测框架。与使用 Anchor 框来预测边界框的传统方法不同,CenterNet 从目标中心点回归出物体的尺寸、方向、姿态和关键点。这是通过一个全卷积网络实现的,该网络生成一个目标中心的heatmap(密度图),然后通过在heatmap中找到局部最大值来定位中心点。在这些峰值位置使用特征,可以推理出物体的尺寸。

由于其简单性,CenterNet 在不依赖于复杂的特征工程的情况下取得了卓越的性能。它是一种快速且有效的目标检测方法,已经在研究界被广泛采用。作为代表性的 Anchor-Free 框检测器,CenterNet 使用高分辨率特征图进行预测,使其对小物体特别友好且高效。

密度图是提供图像中目标分布信息的强大工具。在 CenterNet 中,密度图被用于定位目标。为了提高检测器在检测小物体时的性能,作者使用转置卷积层将特征图上采样到输入图像的大小。此外,作者提出了一种局部尺度模块,该模块利用heatmap自适应地搜索聚类区域,并将它们调整到适合检测器的大小,这可以进一步提高检测精度。

3.2、You Only Look Clusters (YOLC)

提出的YOLC遵循与CenterNet类似的流程,但通过使用不同的基础网络、检测Head、回归方式和损失函数与CenterNet区分开来。特别是,采用HRNet作为基础网络生成高分辨率 Heatmap ,这更有利于检测小物体。

此外,由于航拍图像中物体分布的不平衡,设计了一个局部尺度模块(LSM)以自适应搜索聚类区域。在检测原始图像和裁剪图像后,在密集区域中,将细化结果直接替换为原始图像的结果。在后续章节中,作者将深入探讨YOLC中存在的模块细节。

3.3、High-resolution Heatmap

为了提高密集区域中小目标的检测准确率,YOLC使用了更高分辨率的heatmap。在CenterNet中,每个目标以其边界框中心的一个点来建模,在heatmap中由高斯斑点表示。然而,这个heatmap相对于输入图像被下采样了。这种下采样可能导致小目标在heatmap中坍缩成几个甚至一个点,这使得准确找到它们的中心变得困难。

为了解决这个问题,YOLC采用了一个修改后的流程,使用更高分辨率的heatmap。具体来说,作者在heatmap上增加了一个卷积层和两个转置卷积层,将其扩展到与输入图像相同的大小。这使作者能够捕获到关于小目标的更详细信息,进而导致在密集区域中进行更准确的目标检测。

在解码之前应用高斯滤波有助于减少CenterNet中的假阳性预测。该滤波器平滑了heatmap,并抑制了围绕目标的多个峰值。这种方法有助于提高目标定位的准确性,并减少误分类的可能性。

3.4、Local Scale Module

感兴趣区域 Proposal 方法是基于裁剪的目标检测模型的关键组成部分。然而,在航拍图像中,车辆和行人等目标往往集中在几个聚集区域。图像中的大多数区域是背景,不需要检测。此外,密集区域的有限分辨率可能导致检测性能显著下降。现有的基于裁剪的方法,如DMNet,产生许多裁剪或使用额外的网络,如ClusDet,导致检测速度低且模型参数增加。

为了解决这些问题,作者提出了一个局部尺度模块(LSM),它可以自适应地定位聚集区域。作者的LSM受到AutoScale的启发,但作者对其进行了一些修改,使其适用于航拍图像。首先,LSM不仅仅是搜索单一的最大聚集区域,而是通过排序每个网格中的密度来定位前-K个密集区域。这一点很重要,因为航拍图像通常具有多个聚集区域。其次,AutoScale是为人群计数和定位设计的,仅适用于具有单类别目标的场景。然而,在航拍图像中,存在多个目标类别。

作者还注意到UCGNet使用了DBSCAN和K-Means等聚类方法,从密集区域生成图像裁剪。然而,UCGNet生成的裁剪仍然尺寸较大,并没有考虑不同裁剪之间密度的差异。

以下,作者将详细介绍提出的LSM,其结构如下图所示。
在这里插入图片描述
为了生成候选区域,第一步是生成一个指示目标存在的二值图像。这是通过获取每个图像的 Heatmap 分支产生的 Heatmap ,然后使用经验阈值将 Heatmap 二值化并生成位置 Mask 。二值化的 Heatmap 随后被划分为几个网格(例如,),选择前-K(例如,K=15)个密集网格作为候选区域。对于VisDrone数据集,最佳的超参数是Grid=(16, 10)和top-K=50。为了确保完整目标的捕获,将八邻接密集网格组合成更大的候选区域。这些区域随后扩大1.2倍以避免截断。
在这里插入图片描述
最后,通过从原始图像裁剪密集区域并调整大小以适应检测器,获得个图像块。完整的算法在算法1中说明。

为了加速检测并实现更高的性能提升,作者旨在生成更少的裁剪。对于每张图像,作者将设置为2,并关注较大的密集区域,因为在大裁剪上进行精细检测可以带来更高的性能提升。在随后的实验中,观察到当k从3增加时,性能趋于饱和。因此,LSM利用非常少的优质裁剪进行精确检测,显示出在检测速度和准确性之间取得了良好的平衡。此外,LSM是一个无监督的模块,可以轻松地集成到任何基于关键点的检测器中。

3.5、Loss Function

CenterNet整合了三种损失来优化整个网络
在这里插入图片描述
其中 是CenterNet中修改后的Focal Loss。 是中心点偏移损失。 是大小回归损失。 和 默认分别设为 0.1 和 1 。

CenterNet目前使用 损失 (即平均绝对误差, MAE) 进行大小回归的方法存在局限性。特别是它对物体大小变化敏感, 并且单独回归一个物体的高度和宽度, 导致损失忽略了每个物体坐标之间的相关性。这与基于 IoU的损失优化这些坐标作为整体, 提供更鲁棒的预测形成对比。

此外, 使用 损失可能导致度量与回归损失之间的不一致, 因为较小的训练损失并不保证更高的性能。最后, 具有相同 损失的某些预测边界框可能与匹配的 GT 框之间的loU不同, 进一步突显了 损失在大小回归方面的局限性。

为了解决这个问题, 作者引入了基于高斯Wasserstein距离(GWD)的度量来衡量两个边界框之间的相似性。具体来说, 给定一个边界框 , 其中 表示中心坐标, 和 分别表示宽度和高度。作者首先将其转换成2-D高斯分布。根据GWD, 转换后的高斯分布表述如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.6、Improved Detection Head

为了提高在航拍图像中对小物体的检测能力,作者在回归分支中增强了可变形卷积,因为它可以自适应地调整卷积操作中的采样位置,以更好地捕捉小细节。

此外,为了更好地捕捉不同类别物体的精细细节, Heatmap 分支被分解为多个子分支,每个子分支负责预测一个特定物体类别的 Heatmap 。这不仅减少了同时预测所有 Heatmap 的计算负担,还允许网络专注于学习每个类别的独特特征,提高了检测器的整体性能。图3展示了这些改进后的检测Head结构。
在这里插入图片描述
**回归分支。**在传统的目标检测器中,点特征被用于识别物体,这导致预测不准确。为了克服这一限制,作者在回归分支中采用了可变形卷积。与在固定3×3网格上操作的常规卷积不同,可变形卷积动态调整采样点以适应物体的姿态和形状。具体来说,常规的3×3网格有9个采样点,定义为{(-1, -1), (-1, 0),…, (1, 1)},而可变形卷积估计从常规采样点到动态采样点的偏移量。

在YOLC中, 作者并行预测粗边界框和偏移场。为了确保卷积覆盖整个物体, 作者将偏移限制在粗边界框内, 并在其上应用可变形卷积层。这产生了具有更准确位置和大小的精细边界框。

**Heatmap 分支。**作者通过引入解耦结构来改进 Heatmap 分支,受到YOLOX和DEKR方法的启发。现在模型并行预测不同物体类别的 Heatmap ,这使得检测更高效、更准确。具体来说, Heatmap 分支包括一个标准卷积,两个转置卷积和一个具有组的组卷积,其中每个组对应于一个特定的物体类别。

4、Experiments and analysis

本节介绍了作者在实验中使用的数据集、评估指标和实现细节。然后,作者进行消融研究以验证所提出模块、主干网络和损失函数的有效性。最后,作者从定性和定量两个角度进行对比实验,以证明YOLC与现有最先进方法的优越性。

4.1、Datasets

作者评估了YOLC在两个公开可用的航空图像数据集上的表现:VisDrone 2019 和 UAVDT。这两个数据集的详细信息如下:

VisDrone 包含10,209张高分辨率图像(大约2000×1500像素),分为十个类别:行人、人、自行车、汽车、货车、卡车、三轮车、带篷三轮车、公交车和摩托车。该数据集有6,471张图像用于训练,548张用于验证,3,190张用于测试。由于评估服务器已经关闭,使用验证集进行评估。

UAVDT 由38,327张图像组成,平均分辨率为1,080×540像素。该数据集包括三个类别,即汽车、公交车和卡车。数据集包含23,258张图像用于训练,15,069张用于测试。

4.2、Evaluation Metrics

在这里插入图片描述

4.3、Implementation Details

YOLC使用了开源的MMDetection工具箱1。以CenterNet和Hourglass-104主干网络作为 Baseline 方法。该模型使用SGD优化器进行训练,动量为0.9,权重衰减为0.0001,共训练160个周期。它在GeForce RTX 2080 Ti GPU平台上运行,批处理大小为2。初始学习率设置为0.01,并进行线性预热。对于两个数据集,输入分辨率设置为1024 * 640。

4.4、实验结果

表1和表2分别展示了在VisDrone和UAVDT数据集上与现有最先进方法的定量比较。
在这里插入图片描述
结果显示,YOLC在两个数据集上均一致优于其他方法。特别是,在VisDrone上,由于航拍图像中大量小目标实例和非均匀的数据分布,像Faster R-CNN和CenterNet这样的通用目标检测器表现不佳。然而, Anchor-Free 点检测模型(即CenterNet)比基于 Anchor 点的检测方法(即Faster R-CNN)表现更好,这与前面的分析一致。
在这里插入图片描述
作者提出的YOLC方法即使没有使用LSM,也优于现有方法,如ClusDet和DMNet。然而,在整合了LSM之后,性能进一步得到提升。通过使用优化方案,作者取得了最佳的38.3 AP性能。作者还使用了多尺度测试来评估检测结果,这使AP进一步提高了1.8%。值得注意的是,作者提出的YOLC显著提高了小目标的检测性能,而中大型目标的改进并不明显。这是可以接受的,因为小目标在航拍图像中占多数,提高它们的检测性能可以显著提升整体性能。

此外,YOLC在处理图像数量(#img)相对较少、推理速度(s/img)较快以及框架更简单且参数更少的情况下,取得了最佳的检测结果。这表明了YOLC的有效性和效率。

在UAVDT数据集上的性能评估,如表2所示,与VisDrone [47]数据集得出类似的结论。它表明通用目标检测器无法获得满意的检测结果,而作者的YOLC方法则优于现有模型,并以19.3的AP取得了最高性能。值得注意的是,YOLC一致提高了小、中、大型目标的准确性,这验证了作者专用检测框架的有效性。

作者进一步分析了在VisDrone上的类别AP。

4.5、Ablation Study

为了证明YOLC中各组件的有效性,作者在VisDrone 上进行了消融实验。在作者的框架中,LSM(局部敏感模块)是关键组成部分,它在整体性能上的提升最为显著。

不同的 Backbone 网络。 为了增强航拍图像中小型物体的检测,作者将CenterNet 中的Hourglass Backbone 网络替换为高分辨率网络HRNet。表1显示,这个简单的修改使得性能提高了1.3%,这证明了使用HRNet提取更鲁棒特征的有效性,尤其是对于小型物体。因此,在后续实验中,作者使用HRNet作为作者的 Backbone 网络。

LSM中的超参数。 作者展示了LSM中两个超参数Grid和top-K的消融实验(见图6)。Grid表示网格的大小,top-K表示候选区域的数量。特别地,作者发现初始的超参数配置并非最优。当Grid设置为(16, 10)且top-K为总Grid数量的30%以上时,可以达到最优结果,达到38.3%的mAP。

在这里插入图片描述
不同的损失函数。 为了优化提出的YOLC网络,作者对回归损失进行了几处修改。具体来说,作者将原始的损失替换为GWD损失,并尝试了基于IoU的损失,如GIoU,DIoU和CIoU。作者还使用了修改后的GIoU损失来适应作者的 Anchor-Free 检测器。这些损失函数的选择是为了解决对尺度变化的敏感性和指标与损失之间的不一致性。
在这里插入图片描述
在这里插入图片描述
精细化模块的影响。 为了进一步提升YOLC网络在小型物体上的性能,作者融合了一个可变形卷积模块来细化回归头。这个模块可以动态地提取点特征,为每个物体生成更精确的表示。
在这里插入图片描述
在这里插入图片描述
解耦 Heatmap 分支的影响。 为了提高物体定位精度,作者将 Heatmap 分支解耦为并行分支,其中每个分支独立为相应的物体类别生成 Heatmap 。
在这里插入图片描述
表6的结果表明,这种方法在所有评估指标上均一致地提升,验证了解耦 Heatmap 的有效性。值得注意的是,进一步提升了0.4%,这表明这种技术特别适用于小型物体的检测。

5、 Conclusions

本文介绍了YOLC框架,这是一个旨在解决航空目标检测中两个挑战性问题的 Anchor-Free 网络:检测小物体和应对严重非均匀数据分布。为了解决前一个问题,作者提出了一种基于CenterNet的改进模型,该模型使用转置卷积输出高分辨率特征图,并将 Heatmap 解耦以学习不同目标类别的专有表示。这种方法显著提高了检测性能,尤其是对小物体。对于后一个问题,作者引入了一个局部尺度模块,它自适应地搜索聚集的目标区域并将它们重新缩放以更好地适应目标检测器。

为了进一步提高网络的性能,作者采用了基于GWD的损失函数来替代原始CenterNet中的尺寸回归损失,这使得模型专注于小物体。为了弥补上述损失导致的大物体性能下降,作者提出使用损失辅助GWD损失。

此外,作者还使用可变形模块来细化边界框回归。作者的框架通过LSM平衡了准确性和速度。通过在两个航空图像数据集上进行的大量实验,与现有先进方法相比,作者证明了YOLC的有效性和优越性。

在未来的工作中,作者将努力将YOLC扩展到特征 Level 以进行微小目标检测。例如,模型可以直接学习放大图像的特征,而不是将放大图像输入到主干网络中以获取特征。

参考

[1].YOLC: You Only Look Clusters.


往期热门专栏回顾

专栏描述
Java项目实战介绍Java组件安装、使用;手写框架等
Aws服务器实战Aws Linux服务器上操作nginx、git、JDK、Vue
Java微服务实战Java 微服务实战,Spring Cloud Netflix套件、Spring Cloud Alibaba套件、Seata、gateway、shadingjdbc等实战操作
Java基础篇Java基础闲聊,已出HashMap、String、StringBuffer等源码分析,JVM分析,持续更新中
Springboot篇从创建Springboot项目,到加载数据库、静态资源、输出RestFul接口、跨越问题解决到统一返回、全局异常处理、Swagger文档
Spring MVC篇从创建Spring MVC项目,到加载数据库、静态资源、输出RestFul接口、跨越问题解决到统一返回
华为云服务器实战华为云Linux服务器上操作nginx、git、JDK、Vue等,以及使用宝塔运维操作添加Html网页、部署Springboot项目/Vue项目等
Java爬虫通过Java+Selenium+GoogleWebDriver 模拟真人网页操作爬取花瓣网图片、bing搜索图片等
Vue实战讲解Vue3的安装、环境配置,基本语法、循环语句、生命周期、路由设置、组件、axios交互、Element-ui的使用等
Spring讲解Spring(Bean)概念、IOC、AOP、集成jdbcTemplate/redis/事务等

资料获取,更多粉丝福利,关注下方公众号获取

在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐