detection_segmentation

目标检测和实例分割(OBJECT_DETECTION AND INSTANCE SEGMENTATION)

文章目录

  • 目标检测和实例分割(OBJECT_DETECTION AND INSTANCE SEGMENTATION)
    • 一. 计算机视觉(AI VISION)
      • 1. 图像分类
      • 2. 目标检测与定位
      • 3. 语义分割和实例分割
      • 目标检测算法可以分为两大类:
    • R-CNN
      • 生成候选区域(Region Proposal)
      • 对每个区域进行CNN特征提取
      • 使用SVM分类器,判断是否属于该类
      • 使用回归器修正候选框位置
    • SPPNET
    • Fast R-CNN
      • R-CNN缺点:
      • SPPNet缺点:
      • 从上图我们可以知道Fast R-CNN相较于R-CNN和SPPNet的优点:
      • Fast R-CNN的架构:
    • 端到端 (END TO END)
      • 在介绍FASTER R-CNN之前,我们首先介绍一个概念端到端(end to end).
    • Faster R-CNN
      • RPN网络
        • RPN网络的工作流程就是
        • anchor
        • Loss Funtion
    • 总结

在本篇开始之前我推荐一个很好的图片The Modern History of Object Recognition — Infographic

强力推荐大家看一下,这里因为csdn原因无法将图片贴上来。

本篇文章将介绍目标检测和实例分割的经典网络模型 (从R-CNN,SPPNet,Fast R-CNN,Faster R-CNN)!让我们来一起探索这些伟大的模型是如何一步步改进完善的!

一. 计算机视觉(AI VISION)

在介绍目标检测和实例分割之前我们先介绍一下计算机视觉的任务分类以及最新的神经网络模型(来源讯飞星火AI):

  • 1. 图像分类

    图像分类是指将图像分到预定义类别中的任务。例如,给定一张图片,算法需要判断这张图片中是否包含某种物体,如猫或狗。这个我们就太熟悉了在之前的文章中以及介绍过了经典网络模型和精读了它们的论文。

    • ConvNeXt和CrossViT是当前在图像分类任务上表现突出的最新模型。ConvNeXt通过改进卷积网络结构来优化性能,而CrossViT结合了CNN和Transformer的优势,提高了分类准确性
  • 2. 目标检测与定位

    目标检测不仅要识别图像中的物体,还要精确地标定其位置,通常通过边界框来实现。传统的目标检测方法依赖于滑动窗口和手工设计的特征,但这种方法在计算量和准确性上存在限制。随着深度学习的发展,基于CNN的方法显著改善了检测效果。

    • Yolov7和Swin Transformer是两种最新的目标检测模型。Yolov7通过新的网络结构和增强算法提升了检测速度和精度,而Swin Transformer利用分层建模能力处理不同尺寸的对象。
  • 3. 语义分割和实例分割

    语义分割任务将图像中的每个像素分类到特定类别,这适用于场景理解等应用。实例分割则更进一步,需要区分同一类别的不同个体。

    • SETR和Mask2Former是最新的分割模型。SETR利用Transformer的全局信息来提升分割精度,而Mask2Former则在同一个Transformer框架内同时解决目标检测和实例分割任务。

下面我们将用一张图充分的理解分类(Image classification),检测(Object localization),语义分割(Semantic segmentation)和实例分割(Instance Segmentation)之间的区别

在这里插入图片描述

从图中我们可以看到分类,检测,分割的区别很明显不明显的是语义分割和实例分割。

  • 图像分类(classification):

    • 就是对图像判断出所属的分类,比如在学习分类中数据集有人(person)、羊(sheep)、狗(dog)和猫(cat)四种,图像分类要求给定一个图片输出图片里含有哪些分类,比如上图的例子是含有person、sheep和dog三种。
  • 目标检测(object detection):

    • 有什么,在哪里。比分类多了一个定位,需要确定目标的位置用矩形框将目标框出。
  • 语义分割(semantic segmentation):

    • 就是需要区分到图中每一点像素点,而不仅仅是矩形框框住了。但是同一物体的不同实例不需要单独分割出来。对下图左,标注为人,羊,狗,草地。而不需要羊1,羊2,羊3,羊4,羊5等。
  • 实例分割(instance segmentation):

    • 实例分割其实就是目标检测和语义分割的结合。相对目标检测的边界框,实例分割可精确到物体的边缘;相对语义分割,实例分割需要标注出图上同一物体的不同个体(羊1,羊2,羊3…)
  • 全景分割(Panoramic segmentation):

    • 全景分割是语义分割和实例分割的结合。跟实例分割不同的是:实例分割只对图像中的object进行检测,并对检测到的object进行分割,而全景分割是对图中的所有物体包括背景都要进行检测和分割。

目标检测算法可以分为两大类:

  • 一类是基于Region Proposal(区域推荐)的R-CNN系算法(R-CNN,FAST R-CNN,Faster R-CNN等),这些算法需要two-stage,即需要先算法产生目标候选框,也就是目标位置,然后对候选框做分类与回归。
  • 另一类是Yolo,SSD这类one-stage算法,仅仅使用一个卷积神经网络CNN直接预测不同目标的类别与位置。

接下来我们开始本篇重点基于Region Proposal(区域推荐)的R-CNN系算法。两阶段(two-stage)

R-CNN

论文地址Rich feature hierarchies for accurate object detection and semantic segmentation
在这里插入图片描述

在这里插入图片描述

输入图像通过类似聚类的方法找到初始的(颜色,纹理,大小,形状相似度比较一致的)分割区域,然后对区域进行加权合并得到不同层次的2000个候选框!

在这里插入图片描述

在这里插入图片描述

  • 使用回归器修正候选框位置

黄色框表示候选区域 Region Proposal,绿色窗口表示实际区域Ground Truth(人工标注的),红色窗口表示 Region Proposal 进行回归后的预测区域,这里就跟机器学习中的回归预测房价类似。

在这里插入图片描述

缺点:

  • (1) R-CNN将所有输入图片缩放至(227*227)大小会影响原图的比例,导致模型检测精度下降。尺寸归一化导致物体变形,纵横比特征丢失。
  • (2) 步骤繁琐,需要对每一张候选区域提取特征。

提出问题:

  • (1) 能否改进从而可以使喂入全连接层的图片大小不固定?
  • (2) 能否只提取一次特征,然后找到候选区域对应的特征图?

SPPNET

论文地址Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

在这里插入图片描述

从上图我们可以知道
R-CNN:image–>裁剪,变换(crop/warp)–>卷积–>全连接层–>输出结果。
SPPNET:image–>卷积–>空间金字塔池化(spatial pyramid pooling)–>全连接层–>结果。

改进了最主要的两个点:

  • 直接将整幅图片喂入CNN,然后在特征图上找到大约2000个候选区域。
  • 使用空间金字塔池化。

下面我们将介绍这两点:

在这里插入图片描述

作者发现,卷积后对应的位置并不会发生改变,每个卷积层会匹配响应的区域。如上图所示(a)图为输入的照片,(b)为第5层卷积层之后提取的特征图,©为测试集中能使该特征图激活最大的一些图片:
车轮在原图中的位置在特征图上也会出现在响应的位置
这样在目标检测使可以根据特征图画出该物体的位置,也就可以画出具体的框了。

在这里插入图片描述

上图就是SPPNET最核心的部分:空间金字塔池化层。

分别将特征图划分1×1、2×2、4×4大小的子块(显然,在不同的划分模式下子块大小是不一致的,输入特征图尺寸不一致时子块大小也不一样),然后对每个子块进行最大池化,即将不同大小的子块都转化为一个值,将池化之后的结果进行拼接即可得到一个大小固定为21维的输出。如此一来,无论输入特征图的尺寸发生如何变化,Spatial Pyramid Pooling均可将其转化为固定大小的尺寸进行输出。
特点: 空间金字塔池化的池化核的步长和大小是动态变化的过程,上边提到的1 * 1,2 * 2,4 * 4都是输出的大小,例如(对于44的输出,输入1313的图像, s i z e = 13 / 4 向上取整 = 4 , s t r i d e = 13 / 4 向下取整 = 3 size = 13/4 向上取整=4,stride = 13/4 向下取整=3 size=13/4向上取整=4stride=13/4向下取整=3)。

总结:

  • 空间金字塔池化(spatial pyramid pooling layer),解决了R-CNN输入图片大小固定的问题
  • 只提取一次特征,直接在特征图上找到候选区域,避免了裁剪,变形,提高了检测精度。
  • 使用共享卷积运算(所有候选框共享这一次卷积的feature map),大大提高了计算效率。

缺点:

  • 无法通过反向传播来进行微调,离端到端的的检测还差很多
  • 分类和回归是分开进行的,需要分别训练

提出问题:

  • 能否把SVM和边界框去掉,由CNN直接得到类别和边框可不可以?

Fast R-CNN

论文地址Fast R-CNN

在介绍Fast R-CNN之前,我们先介绍以下RCNN和SPPNet的缺点,如下图所示:

在这里插入图片描述

R-CNN缺点:

  • 训练是一个多阶段的(training is a multi-stage pipeline)

R-CNN首先需要通过CNN网络提取特征,再通过SVM网络对提取到的特征进行分类,最后需要通过bounding-box回归修正预选框。

  • 训练消耗大量的空间和时间(training is expensive in space and time)

SVM需要每一张图片上的每一个候选框区域的特征,所以CNN提取到的特征需要存储到磁盘中,所以将耗费大量的空间去存储,大量的时间去提取特征。

  • 目标检测速度非常慢(object detection is slow)

因为R-CNN每一张照片都要生成2000个候选框,这就导致在测试阶段使用VGG16处理一张图片将消耗47秒。

所以SPPNet使用共享计算来解决R-CNN对一张图片生成2000候选框再喂入网络造成计算效率低下的问题。

在这里插入图片描述

SPPNet缺点:

  • 同R-CNN一样,同R-CNN一样是多阶段的训练
  • 无法更新金字塔池化之前的卷积层,这就限制了非常深网络的准确性。

是由于 SPP做fine-tuning时输入是多个不同的图片,这样对于每一个图片都要重新产出新的feature map,效率很低,而Fast-RCNN对其进行了改进。

从上图我们可以知道Fast R-CNN相较于R-CNN和SPPNet的优点:

  • 有更高的检测精度
  • 训练是单阶段,使用多任务损失函数

把不同模型整合为一个网络:损失函数使用多任务损失函数 multi-task loss,将边框回归bounding box regression 直接加入CNN网络中训练。

  • 训练可以更新所有层的网络参数

用反向传播训练所有网络权重是Fast R-CNN的重要能力。首先,让我们阐明为什么SPPnet无法更新低于空间金字塔池化层的权重。
根本原因是当每个训练样本(即RoI)来自不同的图像时,通过SPP层的反向传播是非常低效的,这正是训练R-CNN和SPPnet网络的方法。低效的部分是因为每个RoI可能具有非常大的感受野,通常跨越整个输入图像。由于正向传播必须处理整个感受野,训练输入很大(通常是整个图像)。
我们提出了一种更有效的训练方法,利用训练期间的特征共享。在Fast RCNN网络训练中,随机梯度下降(SGD)的小批量是被分层采样的,首先采样N个图像,然后从每个图像采样R/N个 RoI。关键的是,来自同一图像的RoI在向前和向后传播中共享计算和内存。减小N,就减少了小批量的计算。例如,当N=2和R=128时,得到的训练方案比从128幅不同的图采样一个RoI(即R-CNN和SPPnet的策略)快64倍。
这个策略的一个令人担心的问题是它可能导致训练收敛变慢,因为来自相同图像的RoI是相关的。这个问题似乎在实际情况下并不存在,当N=2和R=128时,我们使用比R-CNN更少的SGD迭代就获得了良好的结果。
上面是论文中的翻译,个人理解:采用类似于批标准化,不再是1张1张的喂入图片而是将N张图片喂入网络中,然后从每个图像采样R/N个,利用权重共享来加快训练。个人感觉这个微调思路很费看看Faster R-CNN论文。

  • 特征缓存不需要磁盘存储
  • 使用简化的空间金字塔池化,ROI池化

什么是ROI池化就是简化的空间金字塔池化,空间金字塔池化是固定池化输出为1 * 1,2 * 2,4 * 4(在CNN中说到过,不同大小的子块感受野不同)的聚合,而ROI就是固定池化输出为一个大小例如(7 * 7).
这种固定大小的映射可能导致信息的损失或扭曲,特别是对于较小或较大的目标区域

Fast R-CNN的架构:

在这里插入图片描述

Fast R-CNN流程是:
输入一张图片–> 通过CNN提取特征图 --> 通过ROI projection(依旧采用SS提取2000个候选框)得到候选区域 --> 通过ROI Pooling将候选区域映射到固定大小的特征图 --> 通过全连接层 --> 在最后并行两个全连接层用于进行softmax分类和bounding-box回归。

端到端 (END TO END)

在介绍FASTER R-CNN之前,我们首先介绍一个概念端到端(end to end).

什么是端到端呢?

在目标检测领域,端到端指的是 能否直接从输入的图像数据获得最终的检测结果,而 不需要人为的特征选择或其他手动设计的功能。这类模型的训练和推理过程更加直接和高效。

例如: 相对于深度学习,传统机器学习的流程往往由多个独立的模块组成,比如在一个典型的自然语言处理(Natural Language Processing)问题中,包括分词、词性标注、句法分析、语义分析等多个独立步骤,每个步骤是一个独立的任务,其结果的好坏会影响到下一步骤,从而影响整个训练的结果,这是非端到端的。

首先我们关注的是在目标检测领域满足那点的为端到端:

  • 能否 直接(不需要人为的特征选择或其他手动设计的功能)从输入的图像数据获得最终的检测结果。

接下来我们就分析R-CNN,SPPENT,FAST R-CNN:

  • R-CNN:它通过选择性搜索算法生成区域建议,然后对每个区域建议独立提取CNN特征,最后利用SVM分类器进行分类和回归器精修边界框。显然,R-CNN是一个 多阶段的处理流程,需要人为的特征选择和多个分离的步骤才能得到结果,因此它不是端到端的。
  • SPPNET:针对R-CNN重复计算卷积图的问题进行了改进,引入了空间金字塔池化层,允许不同大小的区域建议在特征图上直接映射并池化为固定尺寸的输出,从而一次性完成特征提取。尽管SPPNet减少了重复计算,但依然保留了R-CNN的 多阶段特点,即先提取特征后进行 分类和回归,所以也不是端到端系统。
  • FAST R-CNN:在R-CNN和SPPNet的基础上进行了进一步优化,提出了RoI池化层,并将分类和回归合并为一个多任务目标,使得整个网络可以联合训练。虽然Fast R-CNN实现了多任务学习,但它仍然 依赖于外部的区域建议生成方法如选择性搜索算法,因此整体流程并非完全端到端。
  • FASTER R-CNN:引入了区域建议网络(RPN),使得区域建议的生成可以直接在网络内部完成,从而实现了端到端的检测流程。

Faster R-CNN

论文地址Faster R-CNN: Towards Real-Time Object
Detection with Region Proposal Networks

在前面我们已经讲过了,Fast R-CNN在最后并行两个全连接层用于进行softmax分类和bounding-box回归,较大的提升了计算效率但是FAST R-CNN依旧依赖于SS提取候选框(依赖于CPU)并不能像CNN一样使用GPU这种高效的计算,这就导致处理一张图片需要2秒钟。于是FASTER R-CNN提出RPN网络用于提取候选框,将一部分也用GPU运行。这就可以实时检测图片!增加实用性。

在这里插入图片描述

从上图我们可以看到FASTER R-CNN的流程图

  • 输入一张图片–> 通过CNN提取特征图 --> 通过RPN网络对特征图提取候选框 --> 通过ROI Pooling将候选区域映射到固定大小的特征图 --> 通过全连接层 --> 在最后并行两个全连接层用于进行softmax分类和bounding-box回归。

我们可以看到FASTER R-CNN跟FAST R-CNN的区别就是用RPN网络替换掉了SS直接在特征图上提取候选框。 接下来我们详细介绍一下RPN网络!

RPN网络

在这里插入图片描述

RPN网络的工作流程就是

通过(3 * 3)小网络扫描特征图,产生256维的一个低维特征,然后分别喂入分类层(cls layer)和回归层(reg layer)这里解释以下图中为什么是4kcoordinate,2kscores这里4:中心点加上宽和奥就能确定一个矩形框的位置,但是预测出的候选框跟实际框会有差距,这时候就需要判断框中是否含有目标值所以为2kscores。k:anchor。

anchor

当你利用特征图并不是凭空产生候选框的并且凭空产生的候选框也不准确所以会事先定义参考框,最后输出的是每个参考框的偏移量。

我们在特征图中找一个点,就可以在原图中找到对应的一个像素点,以该像素点为中心,画出9个不同大小和长宽比的框,称为anchor 。如下图所示,这些anchor里面可能包含目标,也可能没有目标。因为我们在一张图中想找的的目标的大小和长宽比并不是固定的,所以这里用9个不同大小和长宽比的anchor来进行预测。

在这里插入图片描述

本文使用的Anchor的大小和比例是事先预定好的。大小为 ( 12 8 2 , 25 6 2 , 51 2 2 ) (128^2,256^2,512^2) (1282,2562,5122),比例是 ( 1 : 2 , 1 : 1 , 2 : 1 ) ( 这里的指定策略:矮胖的用于检测车,马之类的,瘦高的可以表示人,之类的等等 ) (1:2,1:1,2:1) (这里的指定策略:矮胖的用于检测车,马之类的,瘦高的可以表示人,之类的等等) (121121)(这里的指定策略:矮胖的用于检测车,马之类的,瘦高的可以表示人,之类的等等)
在之后的YOLO和SSD中是自适应的候选框,提升了检测精度和泛化能力。

Loss Funtion

预测值和实际值的偏差,对于每一个anchor,RPN网络输出的2 4就是预测值那么作者是如何定义anchor的真实值的呢??

将正标签分配给两种anchor:

  • 具有最大IOU重叠的anchor
  • 具有大于0.7的IOU重叠的anchor

这样就可以保证至少有一个anchor被分配为正标签,
而负标签分配给具有IOU重叠小于0.3的anchor。

总结

在这里插入图片描述

参考同济子豪兄
Faster R-CNN最全讲解
CV之DL之FastR-CNN:Fast R-CNN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

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

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

相关文章

Linux系统:揭开它神秘面纱的科普之旅

在这个数字化时代,电脑和手机成了我们生活中不可或缺的一部分。而提到这些设备的操作系统,大家可能首先想到的是Windows、macOS或是Android。 但你知道吗,在技术的海洋里,还有一个强大而灵活的操作系统家族,它就是Lin…

python-多任务编程

2. 多任务编程 2.1 多任务概述 多任务 即操作系统中可以同时运行多个任务。比如我们可以同时挂着qq,听音乐,同时上网浏览网页。这是我们看得到的任务,在系统中还有很多系统任务在执行,现在的操作系统基本都是多任务操作系统,具备…

JVM--HostSpot算法细节实现

1.根节点枚举 定义: 我们以可达性分析算法中从GC Roots 集合找引用链这个操作作为介绍虚拟机高效实现的第一个例 子。固定可作为GC Roots 的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(例如 栈帧中的本地变量表&a…

时间序列预测方法概述

这里写目录标题 时间序列预测方法概述1.统计方法1.1 ARIMA (AutoRegressive Integrated Moving Average)1.2 State Space Models1.3 Exponential Smoothing 2.机器学习方法2.1 SVM (Support Vector Machines)2.2 RF (Random Forest)2.3 KNN (K-Nearest Neighbors) 3. 深度学习方…

latex \left{ \right} 环境不能自动换行

latex \left{ \right} 环境不能自动换行 1. 问题描述2.解决方法 1. 问题描述 可以看到 V { v 1 , v 2 , . . . , v g } V\left\{v_1, v_2, ..., v_g \right\} V{v1​,v2​,...,vg​}没有自动换行。 2.解决方法 在合适换行的位置加入\right.\\ \left.,手动换行。…

连锁收银系统一定需要具备会员营销功能

连锁收银系统不只是一个收银工具,它需要具备会员营销功能,这取决于连锁店的经营策略和目标群体。会员营销功能通常用于吸引和留住忠实客户,通过积分、折扣、专属优惠等方式提升客户的消费频率和金额。连锁店的经营模式侧重于会员制度或者目标…

Golang | Leetcode Golang题解之第257题二叉树的所有路径

题目: 题解: func binaryTreePaths(root *TreeNode) []string {paths : []string{}if root nil {return paths}nodeQueue : []*TreeNode{}pathQueue : []string{}nodeQueue append(nodeQueue, root)pathQueue append(pathQueue, strconv.Itoa(root.V…

PDF文件压缩怎么弄?这3个方法轻松解决

PDF文件压缩怎么弄?PDF文件压缩在日常办公和学习中扮演着至关重要的角色,它不仅仅是减少文件占用的磁盘空间那么简单,更是提升了文件在云存储、电子邮件发送以及跨设备传输时的效率与便捷性。通过压缩,我们能够更快地共享大型文档…

【初阶数据结构】掌握二叉树遍历技巧与信息求解:深入解析四种遍历方法及树的结构与统计分析

初阶数据结构相关知识点可以通过点击以下链接进行学习一起加油!时间与空间复杂度的深度剖析深入解析顺序表:探索底层逻辑深入解析单链表:探索底层逻辑深入解析带头双向循环链表:探索底层逻辑深入解析栈:探索底层逻辑深入解析队列:探索底层逻辑深入解析循环队列:探索…

【Django+Vue3 线上教育平台项目实战】Celery赋能:优化订单超时处理与自动化定时任务调度

文章目录 前言⭐✨💫🔥📖一、Celery⭐1.基本概念及介绍:✨2.使用步骤💫 二、订单超时 取消订单(Celery)🔥具体实现流程📖 前言⭐✨💫🔥📖 在构建复…

GIT命令学习 二

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 ☁️运维工程师的职责:监…

开源智能助手平台Dify是什么?

1.背景 对于国内小公司,怎样通过Ai 将内部流程、产品重新做一次,从而提高人效、给客户带来价值,这是老板们在考虑的问题 ? 当前市面上的你大模型例如:通义千问、文心一言、kimi、智谱清言、盘古 等,底层能…

JavaWeb服务器-Tomcat(Tomcat概述、Tomcat的下载、安装与卸载、启动与关闭、常见的问题)

Tomcat概述 Tomcat服务器软件是一个免费的开源的web应用服务器。是Apache软件基金会的一个核心项目。由Apache,Sun和其他一些公司及个人共同开发而成。 由于Tomcat只支持Servlet/JSP少量JavaEE规范,所以是一个开源免费的轻量级Web服务器。 JavaEE规范&…

python-网络并发模型

3. 网络并发模型 3.1 网络并发模型概述 什么是网络并发 在实际工作中,一个服务端程序往往要应对多个客户端同时发起访问的情况。如果让服务端程序能够更好的同时满足更多客户端网络请求的情形,这就是并发网络模型。 循环网络模型问题 循环网络模型只能…

逻辑回归损失函数

文章目录 1.基础简析交叉熵损失函数(Cross-Entropy Loss)对数似然损失函数(Log-Likelihood Loss) 2.关键步骤3.案例 1.基础简析 逻辑回归(Logistic Regression)是一种广泛应用于分类问题的统计模型&#x…

C++进阶 继承

目录 继承的概念及定义 继承概念 继承定义 定义格式 继承关系和访问限定符 继承基类成员访问方式的变化 基类和派生类对象赋值转换 继承中的作用域 派生类的默认成员函数 构造函数 拷贝构造函数 赋值运算符重载 析构函数 总结 继承与友元 继承与静态成员 浅谈复杂…

Scott Brinker:消除噪音越来越难?这是一个越来越有效的营销渠道

合作伙伴成为更有效的渠道 对于普通读者来说,我看好生态系统并不奇怪。我一直主张,平台生态系统可以解决不断变化、高度多样化的市场格局中的许多挑战。这也是我在HubSpot和公司的技术合作伙伴生态系统所关注的。 在本月早些时候的文章中,我…

SpringMVC源码深度解析(中)

接上一遍博客《SpringMVC源码深度解析(上)》继续聊。最后聊到了SpringMVC的九大组建的初始化,以 HandlerMapping为例,SpringMVC提供了三个实现了,分别是:BeanNameUrlHandlerMapping、RequestMappingHandlerMapping、RouterFunctio…

AI一站式科研写作利器:PaperPal

文章目录 在线编辑Word 插件 在线编辑 PaperPal是一款面向科研人员的写作工具,支持在线编辑以及Word插件。下面以在线编辑为例,详述PaperPal的润色功能。 进入网页后,点击【新建在线文档】,即可开启润色功能,界面如下…

《昇思25天学习打卡营第24天|基于 MindSpore 实现 BERT 对话情绪识别》

1. BERT 模型概述 BERT(Bidirectional Encoder Representations from Transformers)是一个预训练的语言表示模型,可以应用于多种自然语言处理任务,包括对话情绪识别。BERT 通过双向 Transformer 编码器,能同时考虑句子…