【读点论文】PP-YOLOE: An evolved version of YOLO,面向友好部署的模型设计,为项目后续产业落地提供了更加有效的参考

这篇具有很好参考价值的文章主要介绍了【读点论文】PP-YOLOE: An evolved version of YOLO,面向友好部署的模型设计,为项目后续产业落地提供了更加有效的参考。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PP-YOLOE: An evolved version of YOLO

Abstract

  • 在本报告中,我们介绍了PP-YOLOE,一种具有高性能和友好部署的工业最先进的目标探测器。我们在之前的PP-YOLOv2的基础上进行优化,采用无锚模式,更强大的骨干和颈部配备CSPRepResStage, ET-head和动态标签分配算法TAL。我们为不同的实践场景提供s/m/l/x模型。结果,pp - yoloe - 1在COCO测试开发上实现了51.4 mAP,在Tesla V100上实现了78.1 FPS,与之前的先进工业车型PP-YOLOv2和YOLOX相比,分别实现了(+1.9 AP, +13.35%提速)和(+1.3 AP, +24.96%提速)的显著提升。在TensorRT和fp16精度下,PP-YOLOE推理速度达到149.2 FPS。我们还进行了大量的实验来验证我们设计的有效性。源代码和预训练模型可在PaddleDetection PaddlePaddle/PaddleDetection: Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection. (github.com)。
  • 论文地址:[2203.16250] PP-YOLOE: An evolved version of YOLO (arxiv.org)
  • 首先PP-YOLOE-l 在COCO数据集上达到了51.4mAP。相比较PP-YOLOv2提升1.9AP和13.35%的速度,相比较YOLOX提升1.3AP和24.96%的速度。PP-YOLOE中主要的改进点是:anchor-free,powerful backbone and neck,TAL动态label assign,ET-head
  • 该检测器的设计机制包括Anchor free无锚盒机制,可扩展的backbone和neck,由CSPRepResStage(CSPNet+RMNet)构成,使用Varifocal Loss(VFL)和Distribution focal loss(DFL)的头部机制ET-head,动态标签分配算法Task Alignment Learning(TAL)

Introduction

  • 单级目标检测器由于具有良好的速度和精度平衡,在实时应用中很受欢迎。单级探测器中最突出的结构是YOLO系列。自YOLOv1以来,YOLO系列目标检测器在网络结构、标签分配等方面发生了巨大的变化。目前,YOLOX在Tesla V100上以68.9 FPS的速度实现了50.1 mAP的速度和精度的最佳平衡。

  • YOLOX引入了先进的无锚方法,配备了动态标签分配,提高了探测器的性能,在精度上明显优于YOLOv5。受YOLOX的启发,我们进一步优化了之前的作品PP-YOLOv2。PP-YOLOv2是一款高性能一级探测器,在特斯拉V100上具有49.5 mAP, 68.9 FPS的速度。在PP-YOLOv2的基础上,提出了YOLO的演进版本,命名为PP-YOLOE。PP-YOLOE避免使用可变形卷积和矩阵NMS等算子,以便在各种硬件上得到很好的支持。此外,PPYOLOE可以轻松扩展到具有不同计算能力的各种硬件的一系列模型。这些特点进一步推动了PP-YOLOE在更广泛的实际场景中的应用。

  • 如图所示,PP-YOLOE在速度和精度权衡方面优于YOLOv5和YOLOX。具体而言,pp - yoloe - 1以 78.1 FPS的速度在640 × 640分辨率的COCO上实现了51.4 mAP,比pp - yolo2 和yolox - 1分别高出1.9%和1.3% AP。此外,PP-YOLOE有一系列型号,可以像YOLOv5一样通过宽度乘倍器和深度乘倍器进行简单配置。我们的代码已经在PaddleDetection上发布,支持TensorRT和ONNX。

    • 【读点论文】PP-YOLOE: An evolved version of YOLO,面向友好部署的模型设计,为项目后续产业落地提供了更加有效的参考,论文笔记,YOLO,部署落地,计算机视觉

    • PP-YOLOE与其他先进型号的比较。pp - yoloe - l在COCO测试开发上实现了51.4 mAP,在Tesla V100上实现了78.1 FPS,比pp - yoloe - v2获得了1.9 AP和9.2 FPS的提升。

  • PP-YOLOv2的总体情况包括:(1)backbone:具有可变形卷积的ResNet50-vd;(2)neck:具有SPP层的PAN,DropBlock;(3)head:轻量级的IoU感知;(4)激活函数:在backbone中使用ReLU激活,neck中使用Mish激活;(5)标签分配:为每个ground truth目标分配一个anchor box;(6)损失:分类损失、回归损失、目标损失,IoU损失和IoU感知损失;

  • PP-YOLOE是基于PP-YOLOv2的卓越的单阶段Anchor-free模型,超越了多种流行的YOLO模型。PP-YOLOE有一系列的模型,即s/m/l/x,可以通过width multiplier和depth multiplier配置。PP-YOLOE避免了使用诸如Deformable Convolution或者Matrix NMS之类的特殊算子,以使其能轻松地部署在多种多样的硬件上

  • PPYOLOE中的anchor free方法,主要就是将之前anchor base中预测相较于anchor的xywh,改进为预测ltrb(left,top,right,bottom),并将ltrb结果乘上当前特征图的stride。

Method

  • 在本节中,我们将首先回顾我们的基线模型,然后从网络结构、标签分配策略、头部结构和损失函数等方面详细介绍PP-YOLOE的设计(下图)。

    • 【读点论文】PP-YOLOE: An evolved version of YOLO,面向友好部署的模型设计,为项目后续产业落地提供了更加有效的参考,论文笔记,YOLO,部署落地,计算机视觉

    • 我们PP-YOLOE的模型架构。主干是CSPRepResNet,颈部是Path Aggregation Network (PAN),头部是Efficient Task-aligned head (ET-head)。

A Brief Review of PP-YOLOv2

  • PP-YOLOv2的整体架构包括具有可变形卷积的ResNet50-vd 主干、具有SPP层和DropBlock的PAN主干和轻量级IoU感知头。在PPYOLOv2中,主干使用ReLU激活函数,颈部使用mish激活函数。继YOLOv3之后,PP-YOLOv2只为每个 GT 值对象分配一个锚框。除了分类损失、回归损失和对象损失外,PP-YOLOv2还使用IoU损失和IoU感知损失来提高性能。

Improvement of PP-YOLOE

  • Anchor-free。如上所述,PP-YOLOv2以基于锚点的方式分配基础真理。然而,锚定机制引入了许多超参数,并且依赖于手工设计,这可能不能很好地推广到其他数据集。基于以上原因,我们在PP-YOLOv2中引入无锚法。根据FCOS[26]在每个像素上贴合一个锚点,我们为三个检测头设置上下限,将ground truth分配给相应的feature map。然后,计算边界框的中心,选择最接近的像素作为正样本。根据YOLO序列,预测一个四维向量(x, y, w, h)进行回归。这个修改使模型更快了一点,损失了0.3 AP,如表2所示。虽然根据PPYOLOv2的锚点尺寸仔细设置了上界和下界,但基于锚点和无锚点的赋值结果仍然存在一些小的不一致,这可能导致精度下降不大。PPYOLOE解析1 Backbone - 飞桨AI Studio (baidu.com)

  • Backbone and Neck。残差连接和密集连接在现代卷积神经网络中得到了广泛的应用。残差连接引入了解决梯度消失问题的捷径,也可以看作是一种模型集成方法。密集连接集合了具有不同接收域的中间特征,在目标检测任务中表现出良好的性能。CSPNet利用跨级密集连接来降低计算负担而不损失精度,这种方法在YOLOv5、YOLOX等有效的目标检测器中很流行。VoVNet和随后的TreeNet在对象检测和实例分割方面也表现出优异的性能。受这些作品的启发,我们提出了一种结合残差连接和密集连接的新型RepResBlock,用于我们的Backbone and Neck。

  • 源自TreeBlock,我们的RepResBlock在训练阶段如下图(b)所示,在推理阶段如下图©所示。首先,我们对原始TreeBlock进行简化(下图(a))。然后,我们用元素相加操作代替连接操作(下图(b)),因为RMNet在某种程度上显示了这两种操作的近似。因此,在推理阶段,我们可以将RepResBlock重新参数化为ResNet-34以RepVGG风格使用的基本残差块(下图©)。

    • 【读点论文】PP-YOLOE: An evolved version of YOLO,面向友好部署的模型设计,为项目后续产业落地提供了更加有效的参考,论文笔记,YOLO,部署落地,计算机视觉

    • 我们的RepResBlock和CSPRepResStage的结构

  • 我们使用所提出的RepResBlock来构建Backbone and Neck。与ResNet类似,我们的主干名为CSPRepResNet,包含一个由三个卷积层组成的主干,以及由我们的RepResBlock堆叠的四个后续阶段,如上图(d)所示。在每一步中,采用跨阶段部分连接,避免了大量 3 × 3 卷积层带来的大量参数和计算负担。ESE(有效挤压和提取)层也用于在构建主干时在每个CSPRepResStage中施加信道注意。我们在PP-YOLOv2之后使用所提出的RepResBlock和CSPRepResStage构建颈部。与主干不同的是,主干去掉了RepResBlock中的残差链接和CSPRepResStage中的ESE层。

  • 我们使用宽度乘法器α和深度乘法器β像YOLOv5一样对基本 Backbone and Neck 进行联合缩放。因此,我们可以得到一系列具有不同参数和计算量的检测网络。基本骨干宽度设置为[64,128,256,512,1024]。除主干外,基本主干的深度设置为[3,6,6,3]。基本颈宽设置为[192,384,768],深度设置为3。下表给出了不同模型的宽度乘法器α和深度乘法器β的规格。

    • 【读点论文】PP-YOLOE: An evolved version of YOLO,面向友好部署的模型设计,为项目后续产业落地提供了更加有效的参考,论文笔记,YOLO,部署落地,计算机视觉

    • 宽度乘法器α和深度乘法器β规范的一系列网络

  • 这样的修改使AP性能提高了0.7%,即49.5%,如下表所示。

    • 【读点论文】PP-YOLOE: An evolved version of YOLO,面向友好部署的模型设计,为项目后续产业落地提供了更加有效的参考,论文笔记,YOLO,部署落地,计算机视觉

    • pp - yoloe - l在COCO val上的烧蚀研究。我们使用640×640分辨率作为输入,采用fp32精度,在特斯拉V100上进行测试,不进行后处理。

  • 任务一致性学习(TAL)。为了进一步提高准确性,标签分配是另一个需要考虑的方面。YOLOX使用SimOTA作为标签分配策略来提高性能。然而,为了进一步克服分类和定位的错位,在 TOOD 中提出了任务对齐学习(task alignment learning, TAL),它由动态标签分配和任务对齐损失组成。动态标签分配意味着预测/损失意识。根据预测,为每个真值分配动态的正锚点个数。通过显式地对齐这两个任务,TAL可以同时获得最高的分类分数和最精确的边界框。在PP-YOLOE训练时,前5个epoch是使用ATSS中的分配方式,后续的epochs才使用TAL作为label assign方式。主要原因是TAL需要模型具有一定表现的基础上,才能具有比较好的分配效果。

  • 比较值得注意的是,往常我们在计算class分支的loss时候,使用BCEloss时候,输入分别是pred_score和label_one_hot向量。而在PP-YOLOE中,将label_one_hot向量替换成了TAL分配时的alignment metric。alignment metric中分数越高,就意味着越是高质量样本,模型希望高质量样本拥有更高的class score。

  • 对于与任务对齐的损失,TOOD使用一个归一化的 t,即 t ^ \hat{t} t^ 来代替损失中的目标。它采用每个实例中最大的IoU作为规范化。分类的二进制交叉熵(Binary Cross Entropy, BCE)可以重写为:

    • L c l s − p o s = ∑ i = 1 N p o s B C E ( p i , t i ^ ) , ( 1 ) L_{cls-pos}=\sum_{i=1}^{N_{pos}}BCE(p_i,\hat{t_i}),(1) Lclspos=i=1NposBCE(pi,ti^),(1)
  • 我们研究了使用不同标签分配策略的性能。本文以CSPRepResNet为骨干,在上述改进的模型上进行了实验。为了快速得到验证结果,我们只在COCO train2017上训练了36个epoch,并在COCO val上进行验证,如下表所示,TAL达到了最佳的45.2% AP性能。我们使用TAL替代标签分配,如FCOS样式,并实现0.9% AP改进- 50.4% AP,如上表所示。

    • 【读点论文】PP-YOLOE: An evolved version of YOLO,面向友好部署的模型设计,为项目后续产业落地提供了更加有效的参考,论文笔记,YOLO,部署落地,计算机视觉

    • 不同的标签分配在基本模型上。我们使用CSPRepResStage作为主干和颈部,一个1×1 conv层作为头部,在COCO train2017上只训练了36个epoch。

  • 高效任务对齐头(ET-head)。在目标检测中,分类与定位之间的任务冲突是一个众所周知的问题。许多文献都提出了相应的解决方案。YOLOX的解耦头吸取了大多数一级和二级检测器的经验,并成功应用于YOLO模型,提高了精度。但是,解耦的头部可能会使分类和定位任务分离和独立,缺乏针对任务的学习。在TOOD的基础上,我们改进了头,提出了以速度和精度为目标的ET-head。如图上所示,我们使用ESE取代了tod中的层关注,将分类分支的对齐简化为shortcut,将回归分支的对齐替换为分布焦损(distributed focal loss, DFL)层。通过上述变化,ET-head在V100上增加了0.9ms。

  • 对于分类和定位任务的学习,我们分别选择了变焦损失(VFL)和分布焦损失(DFL)。PP-Picodet成功地将VFL和DFL应用于目标检测器,并获得了性能提升。对于VFL,与[Generalized focal loss]中的质量焦点损失(quality focal loss, QFL)不同,VFL使用目标分数来加权阳性样本的损失。这种实现使得高IoU的阳性样本对损失的贡献相对较大。这也使得模型在训练时更加关注高质量的样本,而不是那些低质量的样本。相同的是,两者都使用IACS作为预测的目标。这可以有效地学习分类分数和定位质量估计的联合表示,使训练和推理之间具有较高的一致性。对于DFL,为了解决边界框表示不灵活的问题,[Generalized focal loss]提出使用一般分布来预测边界框。我们的模型由损失函数监督:

    • L o s s = α ⋅ L o s s V F L + β ⋅ L o s s G I O U + γ ⋅ L o s s D F L ∑ i N p o s t ^ , ( 2 ) Loss=\frac{\alpha·Loss_{VFL}+\beta ·Loss_{GIOU}+\gamma ·Loss_{DFL}}{\sum^{N_{pos}}_i\hat t},(2) Loss=iNpost^αLossVFL+βLossGIOU+γLossDFL,(2)

    • 其中, t ^ \hat t t^表示归一化目标得分,见式(1)。如上表所示,ET-head获得0.5% AP改善- 50.9% AP

  • 分类分支:VFL提出了非对称的加权操作。正负样本有不平衡的问题,同样在正样本中也有不等权的问题,意思就是要更多的发现有价值的正样本。在为负样本的时候,不同的负样本的weight主要由当前pred_score决定,pred_score越大,weight越大,loss越大。而在为正样本的时候,weight为gt_score,而gt_score来源于TAL assign时。这也就达到了①正样本和负样本权重计算方式不同,②每个正负样本在计算loss时的权重都是不同的,达到了非对称的加权操作

  • 回归分支:目标检测任务中做回归一般是直接预测某个回归值,或者预测相较于anchor的比例,而distribution focal loss (DFL)作者认为之前的bbox regression 采用的表示不够灵活,没有办法建模复杂场景下的uncertainty。用直接回归一个任意分布来建模框的表示可以有更好的效果。在PP-YOLOE中,将回归看作是一个分布预测任务

Experiment

  • 在本节中,我们给出了实验的细节和结果。所有实验都在MS COCO-2017训练集上进行训练,该训练集有80个类,118k张图像。对于消融研究,我们在5000张图像的MS COCO-2017验证集上使用具有单一尺度的标准COCO AP度量。我们使用MS COCO-2017 test-dev报告最终结果。

Implementation details

  • 我们使用随机梯度下降(SGD),动量= 0.9,权重衰减= 5e-4。我们使用余弦学习率计划,总epochs为300次,热身次数为5次,基本学习率为0.01。在8 × 32 G V100 GPU设备上,总批大小默认为64个,我们遵循线性缩放规则来调整学习率。在训练过程中也采用衰减= 0.9998的指数移动平均(EMA)策略。我们只使用一些基本的数据增强,包括随机裁剪、随机水平翻转、颜色失真和多尺度。特别地,输入大小均匀地从320绘制到768,步幅为32。

Comparsion with Other SOTA Detectors

  • 下表显示了MS-COCO测试分裂与其他最先进的目标检测器的结果比较。我们使用官方代码库重新评估YOLOv5和YOLOX,因为它们有非预定的更新。我们比较了批处理大小= 1(没有数据预处理和非最大抑制)的模型推理速度。而PP-YOLOE系列采用桨叶推理引擎。此外,为了公平比较,我们还在相同的环境下测试了基于tensorRT 6.0的FP16精度速度。应该强调的是,PaddlePaddle2正式支持用于模型部署的tensorRT。因此,PPYOLOE可以直接使用带有tensorRT的桨叶推理,其他测试遵循官方指南。

    • 【读点论文】PP-YOLOE: An evolved version of YOLO,面向友好部署的模型设计,为项目后续产业落地提供了更加有效的参考,论文笔记,YOLO,部署落地,计算机视觉

    • 不同目标检测器在COCO 2017测试开发中的速度和精度比较。标注“+”的结果为官方发布的更新结果。用“*”标记的结果在我们的环境中使用官方代码库和模型进行测试。在验证和速度测试中,YOLOv5的输入大小不是640 × 640的平方,所以我们在表中跳过它。默认精度的速度是FP32的无trt和FP16的有trt。此外,我们为YOLOX w/o trt场景提供了FP32和FP16, FP32的速度在分割线的左侧,FP16的速度在右侧。PP-YOLOE+使用在Objects365数据集上预训练的模型。

Conclusion

  • 在本报告中,我们提出了PPYOLOv2的几个更新,包括可扩展的主干颈架构,高效的任务对齐头,先进的标签分配策略和改进的目标损失函数,形成了一系列高性能的目标检测器,称为PP-YOLOE。同时,我们提出了s/m/l/x模型,可以覆盖不同的实际场景。此外,在PaddlePaddle官方支持下,这些模型可以顺利过渡到部署。我们希望这些令人鼓舞的设计可以为开发人员和研究人员提供灵感。

  • Backbone 翻译为主干网络的意思,既然说是主干网络,就代表其是网络的一部分,那么是哪部分呢?翻译的很好,主干部分,哈哈哈哈,文字游戏了哈。这个主干网络大多时候指的是提取特征的网络,其作用就是提取图片中的信息,共后面的网络使用。这些网络经常使用的是resnet VGG等,而不是我们自己设计的网络,因为这些网络已经证明了在分类等问题上的特征提取能力是很强的。在用这些网络作为backbone的时候,都是直接加载官方已经训练好的模型参数,后面接着我们自己的网络。让网络的这两个部分同时进行训练,因为加载的backbone模型已经具有提取特征的能力了,在我们的训练过程中,会对他进行微调,使得其更适合于我们自己的任务。(14 封私信 / 80 条消息) 深度学习网络中backbone是什么意思? - 知乎 (zhihu.com)

SAHI:超大图片中对小目标检测的切片辅助超推理库

  • 目标检测和实例分割是迄今为止计算机视觉中最重要的应用领域。然而,小物体的检测和大图像的推理仍然是实际使用中的主要问题。切片推理的概念基本上是;对原始图像的较小切片执行推理,然后合并原始图像上的切片预测。可以用下图表示:

    • 【读点论文】PP-YOLOE: An evolved version of YOLO,面向友好部署的模型设计,为项目后续产业落地提供了更加有效的参考,论文笔记,YOLO,部署落地,计算机视觉
  • 为了提高你的模型在小目标上的性能,推荐以下技术:medium.com

    • 提高图像采集的分辨率
    • 增加模型的输入分辨率
    • tile你的图像
    • 通过增强生成更多数据
    • 自动学习模型anchors
    • 过滤掉无关的类别
  • 检测小物体的另一个重要策略是将图像切割后形成batch,这个操作叫做tile,作为预处理步骤。tile可以有效地将检测器聚焦在小物体上,但允许你保持所需的小输入分辨率,以便能够运行快速推断。文章来源地址https://www.toymoban.com/news/detail-613479.html

到了这里,关于【读点论文】PP-YOLOE: An evolved version of YOLO,面向友好部署的模型设计,为项目后续产业落地提供了更加有效的参考的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于PP-YOLOE-SOD实现遥感场景下的小目标检测

    本项目基于百度飞桨AI Studio平台进行实现,百度出品的深度学习平台飞桨(PaddlePaddle)是主流深度学习框架中一款完全国产化的产品,与Google TensorFlow、Facebook Pytorch齐名。2016 年飞桨正式开源,是国内首个全面开源开放、技术领先、功能完备的产业级深度学习平台。相比国内

    2024年02月13日
    浏览(37)
  • C# Onnx 百度飞桨开源PP-YOLOE-Plus目标检测

    目录 效果 模型信息 项目 代码  下载 C# Onnx 百度飞桨开源PP-YOLOE-Plus目标检测 Inputs ------------------------- name:image tensor:Float[1, 3, 640, 640] name:scale_factor tensor:Float[1, 2] --------------------------------------------------------------- Outputs ------------------------- name:multiclass_nms3_0.tmp_0 tensor:Fl

    2024年02月04日
    浏览(40)
  • Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of

    问题原因 idea 中的 kotlin 插件版本比 pom 中的低,导致无法启动 解决方式 把项目 pom 中的版本降低 或 升级下idea插件的版本 实际解决 pom 中的一般我们没有办法轻易改动,这里选择升级idea 中的插件,共两种方式 第一种(推荐) : 通过左上角菜单进入 settings 或者 直接快捷键

    2024年02月07日
    浏览(51)
  • 超越所有Anchor-free方法!PP-YOLOE-R:一种高效的目标检测网络

    点击下方 卡片 ,关注“ 自动驾驶之心 ”公众号 ADAS巨卷干货,即可获取 点击进入→ 自动驾驶之心【目标检测】技术交流群 后台回复 【PPYOLO】 获取论文、代码等更多资料! 超越所有Anchor-free方法!PP-YOLOE-R:一种高效的目标检测网络 PP-YOLOE-R是基于PP-YOLOE的高效anchor-free旋转

    2024年02月08日
    浏览(40)
  • 解决Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of ..

    今天在启动项目时,项目启动不起来,报错: Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.5.1, expected version is 1.1.13. 如下图所示: 经过分析,发现是ideade Kotlin版本过低导致,有两种解决方式:     一是将项目中的 Kotlin 版本降低;

    2024年01月18日
    浏览(62)
  • Module was compiled with an incompatible version of Kotlin.The binary version of its metadata is....

    解决Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.7.1, expected version is 1.5.1.的问题。 出现此问题是因为kotlin的版本不一致,下载的版本可以从提示的错误信息中定位到下载kotlin的位置,打开后可以找到很多版本,结合错误信息说:元数据是1.7.1,

    2024年02月12日
    浏览(62)
  • Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of its

    报错:         Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.7.1, expected version is 1.1.16. 解决方案: 非常简单:Build---Rebuild project,再运行就没问题了。 如果不行可以尝试:         在项目的构建文件(如 pom.xm

    2024年02月07日
    浏览(53)
  • 问题:module was compiled with an incompatible version of kotlin

    不同模块使用不一致的kotlin版本编译,导致最后merge的时候版本冲突出错了 临时解决 build-rebuild project 永久解决 项目不使用kotlin,关闭插件kotlin enable-disable

    2024年02月12日
    浏览(44)
  • Kotlin: Module was compiled with an incompatible version of Kotlin

    背景: 使用intellij-idea工具,spring boot项目,使用的maven 问题: 项目中没有依赖Kotlin,结果报错Kotlin版本问题,如下 Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.7.1, expected version is 1.1.15. 解决方案: Just go to the Build menu and click on the rebuild

    2024年02月06日
    浏览(52)
  • 解决Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version ...

      百度出来基本上都是说要升级Kotlin插件版本(结尾有彩蛋) 需要关注才能看的帖子,比较详细,但是对我无效 解决Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of .._念兮为美的博客-CSDN博客 网上方法一大堆,我也试错了许多,这里就不一 一展示了

    2024年02月07日
    浏览(100)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包