胶囊网络、MobileNet、坐标注意力机制的应用

文章目录

  • 摘要
  • Abstract
  • 1.胶囊网络
    • 1.1 动态路由
  • 2.坐标注意力机制
  • 3.MobileNet
    • 3.1 深度卷积
    • 3.2 逐点卷积
    • 3.3 深度可分离卷积
      • 3.3.1 深度可分离卷积与标准卷积的对比
      • 3.3.2 卷积操作的代码实现
        • 3.3.2.1 函数原型
        • 3.3.2.2 标准卷积
        • 3.3.2.3 分组卷积
        • 3.3.2.4 深度可分离卷积
    • 3.4 MobileNetV1
    • 3.5 MobileNetV2
  • 4.论文总结
  • 5.总结

摘要

本周学习了一篇“基于注意力机制和预训练卷积胶囊网络的EEG情感识别”模型的论文。该论文中模型以基线校正的EEG信号为输入,首先通过坐标注意力模块加强重要特征区域的关注度,再通过预训练的MobileNet提取深度特征。MobileNet利用深度可分离卷积降低计算成本,保持模型性能;而胶囊网络凭借其敏感的位置信息保持和多维度向量输出,能够有效保留数据的结构信息并提升情感识别的准确性。该方法在DEAP数据集上的被试依赖实验中表现出高精度(93.89%、95.04%、95.08%),并且由于其不依赖大规模数据集训练,有望解决EEG样本不足的问题,为脑机接口和情感计算领域提供了新的发展思路。

Abstract

This week I studied a paper on “EEG Emotion Recognition Based on Attentional Mechanisms and pre-trained Convolutional capsule Networks” model. In this paper, the model takes baseline EEG signals as input, first enhances the attention of important feature areas through coordinate attention module, and then extracts depth features through pre-trained MobileNet. MobileNet uses detachable convolution to reduce computational costs and maintain model performance. With its sensitive location information retention and multi-dimensional vector output, capsule network can effectively retain the structural information of data and improve the accuracy of emotion recognition. The proposed method shows high accuracy (93.89%, 95.04%, 95.08%) in the subject-dependent experiments on DEAP datasets, and is expected to solve the problem of insufficient EEG samples because it does not rely on large-scale dataset training, providing a new development idea for BCI and affective computing.

以下是本周的学习笔记:

1.胶囊网络

相比于Neuron网络输出的是一个值,而胶囊网络输出的是一个向量。
胶囊网络最初是为了解决cnn的不足,特别是空间位置的保留问题。卷积神经网络在平移不变性和特征提取上表像良好,但是在处理位置信息关系(旋转、缩放)和对象姿态上存在局限。胶囊可以在特征图中通过卷积操作提取空间信息,同时保留对象姿态和空间关系信息。
在这里插入图片描述
在卷积网络中,过滤器用于提取特征,并生成特征图。在胶囊网络中,可以直接将卷积过滤器替换为胶囊单元,使得每一个胶囊单元都具有多维输出,而不仅仅是一个标量值。
在这里插入图片描述

一个neuron只能判断一种具体的pattern,其向量的长度代表这个pattern是否存在
Capsule网络的具体工作方式:
在这里插入图片描述
u 1 = W 1 v 1 u 2 = W 2 v 2 u^1=W^1v^1\quad u^2=W^2v^2 u1=W1v1u2=W2v2

对于Squash(s)只会改变s的长度,不会改变s的方向
v = ∥ s ∥ 2 1 + ∥ s ∥ 2 s ∥ s ∥ v=\frac{\|s\|^2}{1+\|s\|^2}\frac s{\|s\|} v=1+s2s2ss
上述c1,c2是由动态路由决定的

1.1 动态路由

从上图中,从u到s的过程中,其就是反映了整个动态路由的过程
在这里插入图片描述
对更新cij通过压缩后处理得到aj与所有的uj相比的特征更像,就增加对应uj的权重cij+1,下面是对于T=3的情况,其过程类似于RNN
在这里插入图片描述
对于动态路由更新过程公式如下:
b 1 0 = 0 , b 2 0 = 0 , b 3 0 = 0 F o r r = 1 t o T d o c 1 r , c 2 r , c 3 r = s o f t m a x ( b 1 r − 1 , b 2 r − 1 , b 3 r − 1 s r = c 1 r u 1 + c 2 r u 2 + c 3 r u 3 a r = S q u a s h ( s r ) b i r = b i r − 1 + a r ⋅ u i \begin{aligned} &b_{1}^{0}=0,b_{2}^{0}=0,b_{3}^{0}=0 \\ && For && r=1 &&to&&T&&do \\ &c_{1}^{r},c_{2}^{r},c_{3}^{r}=softmax(b_{1}^{r-1},b_{2}^{r-1},b_{3}^{r-1} \\ &s^{r}=c_{1}^{r}u^{1}+c_{2}^{r}u^{2}+c_{3}^{r}u^{3} \\ &a^{r}=Squash(s^{r}) \\ &b_{i}^{r}=b_{i}^{r-1}+a^{r}\cdot u^{i} \end{aligned} b10=0,b20=0,b30=0c1r,c2r,c3r=softmax(b1r1,b2r1,b3r1sr=c1ru1+c2ru2+c3ru3ar=Squash(sr)bir=bir1+aruiForr=1toTdo

胶囊网络的输出通常是一个高级胶囊层,通过进行分类和目标检测。在经典的CapsNet中,输出层使用了动态路由,用于确定底层胶囊和高层胶囊之间的连接强度。
在这里插入图片描述
使用胶囊网络识别数字1的流程,通过每一个胶囊得到的特征的长度来判断是属于哪一个数字。
capsnet在minist数据集上的应用:
在这里插入图片描述

  1. 对于第一层,输入一张28 * 28大小的minist灰度图像,只有一个通道,使用256个9 * 9的卷积核大小,s=1,得到输出特征图大小为20*20,每个位置有256个特征图。这一层主要负责提取低级特征,如边缘、线条等,为下一层胶囊网络提供基础特征信息。

  2. 对于第二层(主胶囊层–将256个特征图通过卷积转换成32个胶囊,每个胶囊对应8个维度),对于上一层的输出20* 20 * 256,卷积核大小为9 * 9,s=2,得到输出大小为6 * 6 * (32 * 8)=1152*8

  3. 第三层,DigitCaps是一个全连接的胶囊层,用于分类任务。输入为1152 * 8 输出为16 * 10;也就是将输入传递到一个包含10个数字胶囊的层中,每个胶囊表示一个数字类别(0-9),每个数字胶囊的维度为16。每个类别输出表示网络对该类别的概率估计,通常使用L2范数作为类别的置信度。最终稿选出最大的类别作为预测结果。

有一个问题就是为什么构成32*8维的胶囊,是出于以下几个考虑:

  1. 减少了参数数量,减低计算复杂度,同时增强网络对不同特征模式的表达能力。
  2. 每一个8维胶囊代表了图像中一个特定区域的复杂特征,这些胶囊可以看作低层次特征的压缩。有效的对输入特征进行空间降维,并保留与特征相关的重要信息,还为后续的DigitCaps传递了更抽象的特征信息。
  3. 主胶囊层能够学习到更丰富的特征表达,不同的胶囊分别表示不同特征和对象的属性,为后续的动态路由机制提供更充足的信息。

2.坐标注意力机制

在这里插入图片描述
为了提高精确位置信号的捕获能力以及重要特征关注度,CA模块可以将图像中的空间信息建模到通道中,是网络在仅增加很小一部分参数量与计算量的同时,提升模型对重要特征区域的关注程度。坐标注意力机制使用空间、通道两个方向的一维特征编码进行建模,一个用来保留空间方向的原始信息,一个用来丰富的位置信息。然后结合通道、空间两个维度的并联信息,增强模型对重要特征的关注程度。

3.MobileNet

3.1 深度卷积

深度卷积dw不同于寻常卷积操作,深度卷积中一个卷积只有一维的,负责一个通道,一个通道只被一个卷积核卷积;常规卷积每个卷积核的维度核输入维度相同,每个通道单独做卷积运算后相加。深度卷积完成后的输出特征图通道数于输入层的通道数相同,无法扩展通道数。对于通道数独立进行卷积运算,没有有效利用不同通道在相同位置空间的特征信息。需要逐点卷积来将生成的特征图进行组合生成新的特征图。

3.2 逐点卷积

逐点卷积pw的运算于标准卷积运算相似。逐点卷积卷积核大小为11m(m为输入数据的维度)每次卷积一个像素点的区域。逐点卷积云散将上一层的特征图的通道在方向上加权组合,生成新的特征图,新的特征图的大小与输入数据大小一致(这种卷积被用来混合通道之间的信息

3.3 深度可分离卷积

其是由一层深度卷积与一层逐点卷积组合而成,每一层卷积之后都紧跟着批规范化(BN)和ReLu激活函数。跟标准卷积的区别就是精度基本不变的情况下,参数与计算量都明显减少
在这里插入图片描述
深度可分离卷积 = 深度卷积 + 逐点卷积

3.3.1 深度可分离卷积与标准卷积的对比

在这里插入图片描述
参数量比值:
深度可分离卷积 标准卷积 = D K × D K × M + M × N D K × D K × M × N = 1 N + 1 D K 2 \frac{\text{深度可分离卷积}}{\text{标准卷积}}=\frac{D_K\times D_K\times M+M\times N}{D_K\times D_K\times M\times N} = \frac1N + \frac1{D_K ^2} 标准卷积深度可分离卷积=DK×DK×M×NDK×DK×M+M×N=N1+DK21
计算量比值:
深度可分离卷积 标准卷积 = D K × D K × M × D F × D F + M × N × D F × D F D K × D K × M × N × D F × D F = 1 N + 1 D K 2 \frac{\text{深度可分离卷积}}{\text{标准卷积}}=\frac{D_K\times D_K\times M\times D_F\times D_F+M\times N\times D_F\times D_F}{D_K\times D_K\times M\times N\times D_F\times D_F} = \frac{1}{N} + \frac{1}{{D_K}^2} 标准卷积深度可分离卷积=DK×DK×M×N×DF×DFDK×DK×M×DF×DF+M×N×DF×DF=N1+DK21
上述N(输出通道数)一般较大,1/N可以忽略不计,Dk表示卷积核的大小,通常使用的3*3的卷积核,也就是说深度可分离卷积的参数量和计算量下降到原来的1/9.

3.3.2 卷积操作的代码实现

3.3.2.1 函数原型
torch.nn.Conv2d(in_channels, 
                out_channels, 
                kernel_size, 
                stride=1, 
                padding=0, 
                dilation=1, 
                groups=1, 
                bias=True, 
                padding_mode='zeros', 
                device=None, 
                dtype=None)

参数groups用来表示卷积的分组,in_channels和out_channels都要被groups整除。当groups设置不同时,可以区分分组卷积或深度可分离卷积:

  1. groups=1时,表示标准卷积
  2. groups<in_channels时,表示普通的分组卷积。例如,当groups=2时,该分组卷积有两组并列的卷积,每组看到一半的输入通道,并产生一半的输出通道,最后将两组的结果连接起来。
  3. groups=in_channels时,表示深度可分离卷积,每一个通道都有自己的过滤器。
3.3.2.2 标准卷积
import torch.nn as nn
import torch
from torchsummary import summary


class Conv_test(nn.Module):
    def __init__(self, in_ch, out_ch, kernel_size, padding, groups):
        super(Conv_test, self).__init__()
        self.conv = nn.Conv2d(
            in_channels=in_ch,
            out_channels=out_ch,
            kernel_size=kernel_size,
            stride=(1, 1),
            padding=padding,
            groups=groups,
            bias=False
        )

    def forward(self, input):
        out = self.conv(input)
        return out

# 标准卷积,(3, 64, 64) -> (4, 64, 64)
# 参数量: in_ch * (k*k) * out_ch,则3x(3x3)x4 = 108 
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
conv = Conv_test(3, 4, 3, 1, 1).to(device)
print(summary(conv,  input_size=(3, 64, 64)))

3.3.2.3 分组卷积
# 分组卷积层,(4, 64, 64) -> (6, 64, 64)
# 参数量: groups * (in_ch//groups) * (k*k) * (out_ch//groups),则2x2x(3x3)x3 = 108
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
conv = Conv_test(4, 6, 3, padding=1, groups=2).to(device)
print(summary(conv,  input_size=(4, 64, 64)))
3.3.2.4 深度可分离卷积
import torch.nn as nn

class myModel(nn.Module):
    def __init__(self):
        super(myModel, self).__init__()
        self.dwconv = nn.Sequential(
            nn.Conv2d(3, 3, kernel_size=3, stride=2, padding=1, groups=3, bias=False),
            nn.BatchNorm2d(3),
            nn.ReLU(inplace=True),
            nn.Conv2d(3, 9, kernel_size=1, stride=1, padding=0, bias=False),
            nn.BatchNorm2d(9),
            nn.ReLU(inplace=True),
        )

3.4 MobileNetV1

MobileNet网络拥有更小的体积,更少的计算量,更高的精度。在轻量级网络中拥有极大的优势。
其核心思想是使用深度可分离卷积来降低计算量核参数量,同时保持模型性能。
深度可分离卷积将标准卷积分解为两个部分:

  1. Depthwise Convolution(逐通道卷积):每个卷积核只作用于输入的一个通道,不跨通道混合。
  2. Pointwise Convolution(点卷积,1*1 卷积):使用1x1卷积将不同通道的信息组合,从而实现特征融合。
    上面这种结构减少了大约8-9倍的计算量,使得MobileNet在保持精度的同时大幅度降低了模型的计算成本。

在这里插入图片描述
这段重复5次的深度可分离卷积操作主要作用于中间层,其设计的目的可以有如下:

  1. 提取更丰富的特征:随着网络层数的增加,模型能够逐步提取到更加抽象、复杂的特征。重复的深度可分离卷积层能够不断捕获空间信息核通道信息,以便对输入数据进行多层次的特征提取。
  2. 减少计算开销:深度可分离卷积相比传统卷积计算量更低,即使重复5次,计算开销依然比使用标准卷积要小。在这保持较高特征能力提取的前提下,极大地降低了计算成本。
  3. 提高模型深度与表达能力:通过层层堆叠深度可分离卷积,模型在空间维度上进一步压缩,同时在通道维度上逐步增加,增加了网络的深度,提升了模型的非线性表达能力。
    上面每一个卷积层(包含常规卷积、深度卷积、逐点卷积)之后都紧跟着批规范化BN和ReLu激活函数。最后一层全连接层不使用激活函数。-----这种组合的作用主要为了加速模型训练、增强模型的稳定性以及提升模型的非线性表达能力

下面是在基于注意力机制和预训练卷积胶囊网络的EEG情感识别模型中MobileNet在特征提取的框架图。
在这里插入图片描述

特性作用
深度可分离卷积替代常规卷积操作,减少参数量,减少计算量
宽度因子α灵活调整每一层的卷积通道数,从而控制模型的计算量和参数规模
分辨率因子β控制输入图像和特征图的分辨率,从而影响模型的空间尺寸
批规范化BN加快训练收敛速度,提升准确率

3.5 MobileNetV2

相比于V1主要引入线性瓶颈结构反向残差结构。MobileNetV2网络模型中共有17个Bottleneck层(每个Bottleneck包含两个逐点卷积层和一个深度卷积层),线性瓶颈和反向残差结构优化了网络,使得网络层次更深了,但是模型体积更小,速度更快。

  1. 反向残差网络
    在传统的残差模块中,输入通常先被压缩到较低维度,再通过卷积得到特征。MobileNetV2中的残差模块则先扩展到高维度(通过1*1的卷积),然后通过深度可分离卷积进行计算,最后再压缩到低维度。当输入和输出的维度一致时(s=1),采用残差连接,即将输入加到输出上,这样既有助于梯度传播,也能减少信息丢失。

  2. 线性瓶颈
    传统的网络结构通常在激活函数加一个非线性变换。但在MobileNetV2,在低维空间上去掉最后的飞线性变换,能有效避免特征失真,同时在压缩特征的同时保留特征信息,提高模型表达能力。

4.论文总结

在"EEG emotion recognition based on the attention mechanism and
pre-trained convolution capsule network"中,提出了一种基于注意力机制和预训练卷积胶囊网络的EEG情感识别模型,该模型显著提高了基于EEG的情感识别准确率。该模型以基线校正的EEG信号作为输入,加入坐标注意力模块,并通过预训练的MobileNet提取深度特征。最后,使用双层胶囊网络进行情感识别。胶囊网络对位置信息敏感,能够保持更多的数据结构信息和细节信息,有助于提高情感识别的精度。所提出的模型不需要大量数据进行训练,从而解决了网络训练成本高和EEG样本不足之间的矛盾,为脑机接口的发展提供了新思路。在DEAP数据集上进行了大量实验。在依赖被试的实验中,准确率分别达到了93.89%、95.04%和95.08%

5.总结

该论文提出了一种结合注意力机制与预训练卷积胶囊网络的EEG情感识别方法,通过一系列特征提取和优化策略显著提升了EEG情感识别的准确性。该方法首先通过坐标注意力模块嵌入空间位置信息,提升模型对重要特征的关注度。接着,利用预训练的MobileNet进行深度特征提取,以深度可分离卷积替代标准卷积,显著减少参数量和计算量。最后,双层胶囊网络利用其对位置信息的敏感性,通过动态路由机制保留更多数据结构信息,实现了高效的情感识别。实验结果显示,在DEAP数据集上,该模型在被试依赖实验中达到了93%以上的准确率。该模型的优势在于其对大规模数据集的依赖较小,训练效率较高,这有效地缓解了EEG数据采集难度大、样本不足的问题,为未来人机交互技术的发展奠定了基础。

下面是这篇论文不足之处:
1.跨被试性能有待提高:跨个体识别效果仍有限,个体差异影响模型泛化性。
2.模型复杂度较高:使用预训练网络和胶囊网络增加了计算开销,影响实际应用。
3.数据集单一:仅在DEAP数据集上测试,数据多样性不足,限制了普适性。
4.缺乏特征可解释性分析:未深入分析EEG特征与情感的关联,欠缺可解释性。

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

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

相关文章

一个开源、免费(MIT License)、功能强大、可扩展的电动汽车充电控制器和家庭能源管理系统(带私活源码)

项目介绍 evcc是一个开源、免费&#xff08;MIT License&#xff09;、功能强大、可扩展的电动汽车充电控制器和家庭能源管理系统&#xff0c;支持广泛的设备和品牌&#xff0c;提供简单的用户界面和强大的功能。 功能特点 用户界面&#xff1a;简单且清晰的用户界面。 充电器…

Pr 视频过渡:沉浸式视频

效果面板/视频过渡/沉浸式视频 Video Transitions/Immersive Video Adobe Premiere Pro 的视频过渡效果中&#xff0c;沉浸式视频 Immersive Video效果组主要用于 VR 视频剪辑之间的过渡。 自动 VR 属性 Auto VR Properties是所有 VR 视频过渡效果的通用选项。 默认勾选&#x…

[OpenGL]使用OpenGL实现硬阴影效果

一、简介 本文介绍了如何使用OpenGL实现硬阴影效果&#xff0c;并在最后给出了全部的代码。本文基于[OpenGL]渲染Shadow Map&#xff0c;实现硬阴影的流程如下&#xff1a; 首先&#xff0c;以光源为视角&#xff0c;渲染场景的深度图&#xff0c;将light space中的深度图存储…

成都睿明智科技有限公司抖音电商服务效果如何?

在这个短视频风起云涌的时代&#xff0c;抖音电商以其独特的魅力&#xff0c;成为了众多商家竞相追逐的新蓝海。而在这片波澜壮阔的商海中&#xff0c;成都睿明智科技有限公司犹如一艘稳健的航船&#xff0c;引领着无数企业驶向成功的彼岸。今天&#xff0c;就让我们一起揭开成…

uniapp 实现瀑布流

效果演示 组件下载 瀑布流布局-waterfall - DCloud 插件市场

集合进阶(JAVA笔记第二十九期)

p.s.这是萌新自己自学总结的笔记&#xff0c;如果想学习得更透彻的话还是请去看大佬的讲解 集合基础看这里 目录 集合体系结构单列集合Collection各个方法的注意事项add()remove()contains() Collection三种遍历方式迭代器遍历增强for遍历lambda表达式遍历匿名内部类遍历 Lis…

使用LlamaIndex框架构建RAG应用的基础实践指南

前言 上一篇文章[检索增强生成 Retrieval-Augmented Generation]介绍了什么是 RAG &#xff0c;并详细对比了和大模型微调方式的区别。 目前实现 RAG 的主流框架就是 [LangChain] 和 [LlamaIndex]&#xff0c;LangChain 更适合需要复杂对话流程、上下文管理、以及多步骤任务的…

小程序开发进阶之路-AI编程助手

之前&#xff0c;我独自一人开发了一个名为“心情追忆”的小程序&#xff0c;旨在帮助用户记录日常的心情变化及重要时刻。从项目的构思、设计、前端&#xff08;小程序&#xff09;开发、后端搭建到最终部署&#xff0c;所有环节都由我一人包办。经过一个月的努力&#xff0c;…

Typora导出pdf手动分页和设置字体样式

手动分页 <div style"page-break-after: always;"></div>鼠标点击代码才会显示&#xff0c;不点击会隐藏。导出pdf时&#xff0c;该位置会分页 设置字体大小、加粗、居中、空格 <p style"font-size:30px; font-weight: bold; text-align: cen…

【GCN】 代码详解 (1) 如何运行【pytorch】可运行版本

Graph Convolutional Networks 代码详解 前言0.引言1.环境配置2. 代码的运行2.1 报错处理2.2 运行结果 3.总结 前言 在前文中&#xff0c;已经对图卷积神经网络&#xff08;Graph Convolutional Neural Networks, GCN&#xff09;的理论基础进行了深入探讨。接下来的章节将会进…

基于 PyTorch 从零手搓一个GPT Transformer 对话大模型

一、从零手实现 GPT Transformer 模型架构 近年来&#xff0c;大模型的发展势头迅猛&#xff0c;成为了人工智能领域的研究热点。大模型以其强大的语言理解和生成能力&#xff0c;在自然语言处理、机器翻译、文本生成等多个领域取得了显著的成果。但这些都离不开其背后的核心架…

做口播博主:真人出镜还是用数字人

做口播博主&#xff1a;真人出镜还是用数字人&#xff1f; 背景&#xff1a;数字人“风口”与流量的冷现实 数字人生成的视频逐渐流行&#xff0c;但真正拥有爆款流量的案例却寥寥无几&#xff1b;另一方面&#xff0c;真人出镜的创作又面临镜头感不足和成本高的难题。创作者究…

【C++篇】在秩序与混沌的交响乐中: STL之map容器的哲学探寻

文章目录 C map 容器详解&#xff1a;高效存储与快速查找前言第一章&#xff1a;C map 的概念1.1 map 的定义1.2 map 的特点 第二章&#xff1a;map 的构造方法2.1 常见构造函数2.1.1 示例&#xff1a;不同构造方法 2.2 相关文档 第三章&#xff1a;map 的常用操作3.1 插入操作…

基于Redis缓存机制实现高并发接口调试

创建接口 这里使用的是阿里云提供的接口服务直接做的测试&#xff0c;接口地址 curl http://localhost:8080/initData?tokenAppWithRedis 这里主要通过参数cacheFirstfalse和true来区分是否走缓存&#xff0c;正常的业务机制可能是通过后台代码逻辑自行控制的&#xff0c;这…

STM32ZET6-USART使用

一、原理说明 STM32自带通讯接口 通讯目的 通信方式&#xff1a; 全双工&#xff1a;通信时可以双方同时通信。 半双工&#xff1a;通信时同一时间只能一个设备发送数据&#xff0c;其他设备接收。 单工&#xff1a;只能一个设备发送到另一个设备&#xff0c;例如USART只有…

深度学习-张量相关

一. 张量的创建 张量简介 张量是pytorch的基本数据结构 张量&#xff0c;英文为Tensor&#xff0c;是机器学习的基本构建模块&#xff0c;是以数字方式表示数据的形式。 例如&#xff0c;图像可以表示为形状为 [3, 224, 224] 的张量&#xff0c;这意味着 [colour_channels, h…

图片表格文字模糊转电子版Excel的解决之道

在面对图片中的表格文字需要转化为电子版Excel或其它格式文本时&#xff0c;当前的主流方法是借助OCR&#xff08;光学字符识别&#xff09;技术。然而&#xff0c;OCR技术的识别效果深受成像质量&#xff0c;即图像文字的清晰度影响。图像越模糊&#xff0c;识别的难度越大&am…

LC:二分查找——杂记

文章目录 268. 丢失的数字162. 寻找峰值 268. 丢失的数字 LC将此题归类为二分查找&#xff0c;并且为简单题&#xff0c;下面记一下自己对这道题目的思考。 题目链接&#xff1a;268.丢失的数字 第一次看到这个题目&#xff0c;虽然标注的为简单&#xff0c;但肯定不能直接排…

增删改查基础项目总结

上篇中主要负责后端部分完成了一个简单的学习辅助系统部分界面&#xff0c;主要针对增删改查进行了练习&#xff0c;过程中遇到了一些细节上的问题以及当时做的时候去查阅的一些之前没有太注意到的额外知识&#xff0c;所以还需要进行进一步梳理&#xff0c;像登录校验的方法以…

YOLOv11融合[ECCV2024]自调制特征聚合SMFA模块及相关改进思路|YOLO改进最简教程

YOLOv11v10v8使用教程&#xff1a; YOLOv11入门到入土使用教程 YOLOv11改进汇总贴&#xff1a;YOLOv11及自研模型更新汇总 《SMFANet: A Lightweight Self-Modulation Feature Aggregation Network for Efficient Image Super-Resolution》 一、 模块介绍 论文链接&#xff1…