TIP-2021《SRGAT: Single Image Super-Resolution With Graph Attention Network》

推荐深蓝学院的《深度神经网络加速:cuDNN 与 TensorRT》,课程面向就业,细致讲解CUDA运算的理论支撑与实践,学完可以系统化掌握CUDA基础编程知识以及TensorRT实战,并且能够利用GPU开发高性能、高并发的软件系统,感兴趣可以直接看看链接:深蓝学院《深度神经网络加速:cuDNN 与 TensorRT》
在这里插入图片描述


核心思想分析

论文提出了一种基于图注意力网络(Graph Attention Network, GAT)的单幅图像超分辨率(Single Image Super-Resolution, SISR)方法,称为 SRGAT。其核心思想是利用图像内部的 patch-recurrence(小块重复性)特性,通过图神经网络(GNN)挖掘低分辨率(LR)图像中不同 patch 之间的结构相似性和互补信息,从而增强高分辨率(HR)图像的重构质量。

  • Patch-Recurrence 特性:自然图像中,相似的小块(patch)在不同区域重复出现,这些 patch 可能具有不同的分辨率或丢失不同的细节信息(见论文图 1)。SRGAT 通过构建 patch 间的图结构,捕捉这些相似性,并利用 GAT 进行信息聚合,增强纹理和结构细节。
  • 图注意力机制:与传统基于卷积神经网络(CNN)的 SISR 方法不同,SRGAT 在特征空间中构建图,将每个 patch 视为节点,利用 GAT 学习 patch 之间的关系,避免直接替换 patch 带来的不一致问题。
  • 并行分支设计:SRGAT 结合了 图相似性分支(Graph Similarity Branch)和 内容分支(Content Branch),分别负责挖掘结构信息和纹理细节,通过特征融合提升重建效果。

目标函数分析

SRGAT 的目标函数基于 L 1 L_1 L1 范数损失,旨在最小化超分辨率图像 I S R I^{SR} ISR 与真实高分辨率图像 I H R I^{HR} IHR 之间的像素级差异。目标函数定义如下:

L ( θ ) = 1 l ∑ i = 1 l ∥ I i S R − I i H R ∥ 1 L(\theta) = \frac{1}{l} \sum_{i=1}^{l} \| I_i^{SR} - I_i^{HR} \|_1 L(θ)=l1i=1lIiSRIiHR1

  • 变量说明

    • θ \theta θ:SRGAT 模型的参数。
    • l l l:训练集中的图像对数量。
    • I i S R I_i^{SR} IiSR:第 i i i 张低分辨率图像经过 SRGAT 生成的超分辨率图像。
    • I i H R I_i^{HR} IiHR:对应的真实高分辨率图像。
    • ∥ ⋅ ∥ 1 \|\cdot\|_1 1 L 1 L_1 L1 范数,计算像素级绝对差的和。
  • 特点

    • 简单性:论文仅使用 L 1 L_1 L1 损失,未引入复杂的对抗损失(如 GAN)或感知损失(如 VGG 特征损失),却依然取得竞争性结果,体现了模型设计的有效性。
    • 鲁棒性 L 1 L_1 L1 损失对噪声和异常值较为鲁棒,适合 SISR 任务中像素级的精确重建。
    • 局限性 L 1 L_1 L1 损失可能导致生成图像过于平滑,缺乏高频细节。论文通过图相似性分支挖掘 patch 间的结构信息,部分弥补了这一不足。

目标函数的优化过程

SRGAT 的优化过程通过最小化上述 L 1 L_1 L1 损失函数,使用 ADAM 优化器 进行梯度下降训练。具体优化步骤如下:

  1. 初始化

    • 初始学习率设为 1 0 − 4 10^{-4} 104,ADAM 参数设置为 β 1 = 0.9 \beta_1 = 0.9 β1=0.9 β 2 = 0.999 \beta_2 = 0.999 β2=0.999 ϵ = 1 0 − 8 \epsilon = 10^{-8} ϵ=108
    • 训练数据集为 DIV2K,包含 800 张训练图像,100 张验证图像和 100 张测试图像。
  2. 数据预处理

    • 从高分辨率图像中裁剪 patch,通过双三次插值(bicubic)下采样生成对应的低分辨率 patch。
    • 数据增强包括缩放、翻转和旋转(90°、180°、270°)。
  3. 训练过程

    • 每个训练 batch 包含 16 个 40 × 40 40 \times 40 40×40 的低分辨率 patch。
    • 训练共 1000 个 epoch,每个 epoch 包含 1000 次反向传播迭代。
    • 学习率每 200 个 epoch 减半,以保证收敛。
  4. 反馈机制

    • SRGAT 采用反馈连接(feedback connections),在特征映射块中通过 T T T 次迭代( t ≤ T t \leq T tT)利用高层信息精炼低层特征表示。特征映射块的数学表达为:
      F M t o u t = [ f G ( F M t i n ) ∥ f C ( F M t i n ) ] , 1 ≤ t ≤ T F_{M_t}^{out} = \left[ f_G(F_{M_t}^{in}) \| f_C(F_{M_t}^{in}) \right], \quad 1 \leq t \leq T FMtout=[fG(FMtin)fC(FMtin)],1tT
      其中, f G ( ⋅ ) f_G(\cdot) fG() f C ( ⋅ ) f_C(\cdot) fC() 分别表示图相似性分支和内容分支的操作, ∥ \| 表示特征拼接, F M t i n F_{M_t}^{in} FMtin 为第 t t t 次迭代的输入特征:
      F M t i n = { f E ( I L R ) , t = 1 [ F M t − 1 o u t ∥ f E ( I L R ) ] , 1 < t ≤ T F_{M_t}^{in} = \begin{cases} f_E(I^{LR}), & t = 1 \\ \left[ F_{M_{t-1}}^{out} \| f_E(I^{LR}) \right], & 1 < t \leq T \end{cases} FMtin={fE(ILR),[FMt1outfE(ILR)],t=11<tT
      f E ( ⋅ ) f_E(\cdot) fE() 为特征提取块的操作。
  5. 实现细节

    • 使用 PyTorch 框架,在 NVIDIA 1080Ti GPU 上训练。
    • 模型能够在 0.2 秒内处理一张 256 × 256 256 \times 256 256×256 的图像( × 4 \times 4 ×4 尺度)。

主要贡献点

  1. 引入 GNN 到 SISR

    • 首次将图神经网络(GNN)应用于单幅图像超分辨率,通过在特征空间构建 patch 图,挖掘 patch 间的结构相似性,降低对精确 patch 匹配的依赖。
  2. 图注意力机制(GAT)的应用

    • 使用 GAT 学习 patch 间的关系,通过自注意力机制为重要特征分配更大权重,增强了模型对复杂结构(如边缘、角点)的建模能力。
  3. 并行分支设计

    • 提出图相似性分支和内容分支的并行结构,分别聚焦结构信息和纹理细节,通过特征融合提升重建质量。
  4. 鲁棒的 patch-recurrence 利用

    • 利用图像内部 patch 的冗余性,通过图结构传播互补信息,生成更鲁棒的超分辨率估计,尤其在复杂场景(如 Urban100)和高度相关 patch 场景(如 Manga109)中表现优异。
  5. 优异的实验表现

    • 在五个基准数据集(Set5、Set14、BSD100、Urban100、Manga109)上,SRGAT 在 × 2 \times 2 ×2 × 3 \times 3 ×3 × 4 \times 4 ×4 尺度下均超越或匹敌最先进方法,PSNR 和 SSIM 指标表现突出。

实验结果分析

数据集
  • 训练数据集:DIV2K(800 张训练图像,100 张验证图像,100 张测试图像)。
  • 测试数据集
    • Set5、Set14、BSD100:自然场景图像。
    • Urban100:城市场景,包含复杂频率细节。
    • Manga109:日本漫画,具有高度相关的 patch 模式。
  • 评估指标:PSNR(峰值信噪比)和 SSIM(结构相似性),在 YCbCr 空间的亮度通道(Y 通道)上计算。
定量结果
  • 比较方法:与 13 种最先进方法比较,包括 SRCNN、VDSR、LapSRN、DRCN、DRRN、MemNet、EDSR、SRMDNF、CARN、FRSR、RNAN、USRNet 和 OISR-RK3。
  • 结果亮点(见表 I,论文页面 4911):
    • × 2 \times 2 ×2 尺度下,SRGAT 在 Set5(38.20/0.9610)、Set14(33.93/0.9201)、Urban100(32.90/0.9359)上取得最高 PSNR/SSIM。
    • × 3 \times 3 ×3 × 4 \times 4 ×4 尺度下,SRGAT 在大多数数据集上表现最佳或次佳,尤其在 Urban100 和 Manga109 上优势明显(例如, × 4 \times 4 ×4 尺度下 Urban100 的 PSNR 为 26.76/0.8052)。
    • 与 EDSR、RNAN、OISR-RK3 相比,SRGAT 使用较少的滤波器(64 vs. 256)和参数,却依然达到竞争性性能(见图 4,论文页面 4912)。
  • 运行时间(表 II,论文页面 4911):
    • SRGAT 的速度略慢于 CARN,但优于 EDSR,且性能更佳。例如,处理 256 × 256 256 \times 256 256×256 图像耗时约 0.2 秒( × 4 \times 4 ×4 尺度)。
定性结果
  • 视觉效果(图 7-9,论文页面 4913-4915):
    • SRGAT 在自然场景(Set5、Set14)、城市场景(Urban100)和漫画场景(Manga109)上能精确重构直线、网格和复杂纹理(如建筑窗户边缘、漫画线条)。
    • 相比传统方法(VDSR、LapSRN、DRRN),SRGAT 生成的图像更清晰,伪影更少。
消融实验
  • 图相似性分支的作用(表 III,论文页面 4916):
    • 去除 GAT 的 SRGAT(SRGAT w/o GAT)在所有数据集上的 PSNR/SSIM 下降,尤其在 Urban100(0.22)和 Manga109(0.24)上差距更大,证明 GAT 在复杂场景中的重要性。
  • GNN 类型比较(表 IV,论文页面 4916):
    • GAT 优于 Chebyshev 和 GCN,因为自注意力机制能更好分配权重。
  • Patch 大小与特征维度(表 V,论文页面 4916):
    • Patch 大小影响较小,特征维度为 64 时在性能和训练时间间取得平衡。
  • 邻居节点数 k k k(表 VI,论文页面 4916):
    • k = 5 k=5 k=5 时性能和计算成本平衡最佳, k ≥ 5 k \geq 5 k5 后性能提升有限。

算法实现过程详细解释

SRGAT 的算法实现基于一个三阶段的网络架构(见图 2,论文页面 4908),包括 特征提取块(E)特征映射块(M)重构块(R)。以下是详细的实现过程:

1. 特征提取块(E)
  • 功能:从低分辨率图像 I L R I^{LR} ILR 中提取初始特征。
  • 实现
    • 输入:低分辨率图像 I L R I^{LR} ILR
    • 结构:一组卷积层,生成维度为 h × w × d h \times w \times d h×w×d 的低分辨率特征,其中 h h h w w w 是输入图像的空间维度, d d d 是特征通道数(论文中设为 64)。
    • 输出: F E = f E ( I L R ) F_E = f_E(I^{LR}) FE=fE(ILR),作为后续特征映射块的输入。
  • 细节:为加速收敛,添加长跳跃连接(long skip connection),将上采样的 I L R I^{LR} ILR 直接传递到输出。
2. 特征映射块(M)
  • 功能:通过并行的图相似性分支和内容分支精炼特征,利用反馈机制迭代优化。
  • 结构
    • 输入:在第 t t t 次迭代,输入特征 F M t i n F_{M_t}^{in} FMtin 定义为:
      F M t i n = { f E ( I L R ) , t = 1 [ F M t − 1 o u t ∥ f E ( I L R ) ] , 1 < t ≤ T F_{M_t}^{in} = \begin{cases} f_E(I^{LR}), & t = 1 \\ \left[ F_{M_{t-1}}^{out} \| f_E(I^{LR}) \right], & 1 < t \leq T \end{cases} FMtin={fE(ILR),[FMt1outfE(ILR)],t=11<tT
    • 输出:通过图相似性分支 f G ( ⋅ ) f_G(\cdot) fG() 和内容分支 f C ( ⋅ ) f_C(\cdot) fC() 的特征拼接:
      F M t o u t = [ f G ( F M t i n ) ∥ f C ( F M t i n ) ] F_{M_t}^{out} = \left[ f_G(F_{M_t}^{in}) \| f_C(F_{M_t}^{in}) \right] FMtout=[fG(FMtin)fC(FMtin)]
    • 反馈机制:通过 T T T 次迭代,利用前一次迭代的输出 F M t − 1 o u t F_{M_{t-1}}^{out} FMt1out 精炼当前特征。
图相似性分支(Graph Similarity Branch)
  • 功能:利用 GAT 挖掘 patch 间的结构相似性,恢复边缘、角点等结构信息。
  • 实现
    1. 构建图
      • 输入特征 F M t i n F_{M_t}^{in} FMtin(维度 h × w × d h \times w \times d h×w×d)通过卷积层(步幅 s s s,核大小 p × p p \times p p×p)处理,输出维度为 h / s × w / s × d h/s \times w/s \times d h/s×w/s×d
      • 将特征图重塑为 n × d n \times d n×d 矩阵( n = h / s × w / s n = h/s \times w/s n=h/s×w/s),每行表示一个 patch 节点,构成图的节点集 h = { h ⃗ 1 , h ⃗ 2 , … , h ⃗ n } \mathbf{h} = \{ \vec{h}_1, \vec{h}_2, \ldots, \vec{h}_n \} h={h 1,h 2,,h n} h ⃗ i ∈ R d \vec{h}_i \in \mathbb{R}^d h iRd
      • 边连接:为每个节点选择 k k k 个最近邻节点(基于 patch 中心欧几里得距离, k = 5 k=5 k=5)。
    2. GAT 层(见图 3,论文页面 4909):
      • 线性变换:对每个节点特征 h ⃗ i \vec{h}_i h i 应用共享权重矩阵 W ∈ R d ′ × d \mathbf{W} \in \mathbb{R}^{d' \times d} WRd×d d ′ = d d' = d d=d)。
      • 自注意力机制:计算节点 i i i j j j 的注意力系数:
        e i j = a ( W h ⃗ i , W h ⃗ j ) = LeakyReLU ⁡ ( a ⃗ T [ W h ⃗ i ∥ W h ⃗ j ] ) e_{ij} = a(\mathbf{W} \vec{h}_i, \mathbf{W} \vec{h}_j) = \operatorname{LeakyReLU}(\vec{\mathbf{a}}^T [\mathbf{W} \vec{h}_i \| \mathbf{W} \vec{h}_j]) eij=a(Wh i,Wh j)=LeakyReLU(a T[Wh iWh j])
        其中, a a a 是一个参数化的前馈神经层, a ⃗ ∈ R 2 d ′ \vec{\mathbf{a}} \in \mathbb{R}^{2d'} a R2d
      • 归一化:通过 Softmax 归一化注意力系数:
        α i j = exp ⁡ ( e i j ) ∑ l ∈ n exp ⁡ ( e i l ) \alpha_{ij} = \frac{\exp(e_{ij})}{\sum_{l \in n} \exp(e_{il})} αij=lnexp(eil)exp(eij)
      • 特征更新:聚合邻居节点信息,更新节点特征:
        h ⃗ i ′ = σ ( ∑ j ∈ k α i j W h ⃗ j ) \vec{h}_i' = \sigma \left( \sum_{j \in k} \alpha_{ij} \mathbf{W} \vec{h}_j \right) h i=σ jkαijWh j
        其中, σ \sigma σ 为非线性激活函数。
    3. 输出处理
      • GAT 层输出维度仍为 n × d n \times d n×d,重塑为 h / s × w / s × d h/s \times w/s \times d h/s×w/s×d
      • 通过反卷积上采样至 h × w × d h \times w \times d h×w×d,与内容分支输出拼接。
内容分支 CDP(Content Branch)
  • 功能:基于反馈块(Feedback Block)恢复纹理细节。
  • 实现
    • 结构:包含多个投影组(projection groups),每个组由 1 × 1 1 \times 1 1×1 卷积、上采样反卷积和下采样卷积组成,组间通过密集跳跃连接(dense skip connections)增强特征传递。
    • 输出:维度保持为 h × w × d h \times w \times d h×w×d,与图相似性分支输出拼接。
3. 重构块(R)
  • 功能:将特征映射块的输出上采样并生成残差图像,最终合成超分辨率图像。
  • 实现
    • 结构:包含反卷积层(用于上采样)和卷积层(生成残差图像)。
    • 输出:超分辨率图像通过以下公式计算:
      I S R = f R ( F M T o u t ) + I L R ↑ I^{SR} = f_R(F_{M_T}^{out}) + I^{LR}\uparrow ISR=fR(FMTout)+ILR
      其中, f R ( ⋅ ) f_R(\cdot) fR() 表示重构块操作, I L R ↑ I^{LR}\uparrow ILR 为上采样的低分辨率图像。
4. 训练与优化
  • 损失函数:使用 L 1 L_1 L1 损失(公式 4),通过 ADAM 优化器最小化。
  • 训练细节:如前所述,1000 epoch,初始学习率 1 0 − 4 10^{-4} 104,每 200 epoch 减半,batch 大小为 16。

总结

SRGAT 是一种创新的单幅图像超分辨率方法,通过引入图注意力网络充分利用图像内部 patch 的重复性,结合并行分支设计和反馈机制,显著提升了重建质量。其 L 1 L_1 L1 损失函数简单有效,优化过程通过 ADAM 和反馈机制保证收敛。实验结果表明,SRGAT 在多个基准数据集上超越或匹敌最先进方法,尤其在复杂场景中表现优异。算法实现清晰,图相似性分支和内容分支的协同工作为其高效性和鲁棒性提供了保障。

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

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

相关文章

大语言模型与多模态模型比较

一、核心差异&#xff1a;输入数据类型与模态融合 输入数据类型 LLM&#xff1a;仅处理文本数据&#xff0c;例如文本分类、机器翻译、问答等任务&#xff0c;通过大规模语料库学习语言规律。 LMM&#xff1a;支持文本、图像、音频、视频等多种模态输入&#xff0c;例如根据图…

Apache HttpClient 5 用法-Java调用http服务

Apache HttpClient 5 核心用法详解 Apache HttpClient 5 是 Apache 基金会推出的新一代 HTTP 客户端库&#xff0c;相比 4.x 版本在性能、模块化和易用性上有显著提升。以下是其核心用法及最佳实践&#xff1a; 一、添加依赖 Maven 项目&#xff1a; <dependency><…

基于 Spark 的流量统计

一、引言 在互联网行业&#xff0c;流量统计是分析网站或应用用户行为、评估业务表现、优化资源分配以及制定营销策略的关键环节。借助 Apache Spark 强大的分布式数据处理能力&#xff0c;我们可以高效地对大规模的流量数据进行统计分析&#xff0c;获取有价值的洞察。本文将…

Python模块化编程进阶指南:从基础到工程化实践

一、模块化编程核心原理与最佳实践 1.1 模块化设计原则 根据企业级项目实践&#xff0c;模块化开发应遵循以下核心原则&#xff1a; ​​单一职责原则​​&#xff1a;每个模块只承担一个功能域的任务&#xff08;如用户认证模块独立于日志模块&#xff09;​​接口隔离原则…

锐捷交换机STP环路日志信息解读

因公司网络组建使用锐捷全系列交换机&#xff0c;近期设备巡检时发现部分日志提示信息&#xff0c; 接入交换机NBS3100-24GT4SFP-V2&#xff0c;设备频繁打出STP Blocking的日志信息。 误以为是环路导致&#xff0c;故进行实验测试&#xff0c;来验证环路情况下会如何报日志。…

使用Python调用DeepSeek的示例

使用Python调用DeepSeek API的示例代码,包括API密钥的获取、基本请求的发送以及响应处理。请确保你已经注册了DeepSeek账号并获取了API密钥。 文章目录 前言一、获取API密钥二、python示例代码三、代码说明四、注意事项五、扩展功能总结前言 提示:这里可以添加本文要记录的大…

mysql的not exists走索引吗

在MySQL中&#xff0c;​NOT EXISTS子句是否使用索引取决于子查询中关联字段是否建立了合适的索引。以下是关键点总结&#xff1a; ​索引的作用​&#xff1a; 当子查询的关联字段&#xff08;例如B.a_id&#xff09;存在索引&#xff08;如普通B-tree索引&#xff09;时&…

Python线性回归:从理论到实践的完整指南

Python线性回归&#xff1a;从理论到实践的完整指南 线性回归是数据科学和机器学习中最基础且最重要的算法之一。本文将深入探讨如何使用Python实现线性回归&#xff0c;从理论基础到实际应用&#xff0c;帮助读者全面理解这一重要的统计学和机器学习方法。 什么是线性回归&a…

鸿蒙OSUniApp 实现的二维码扫描与生成组件#三方框架 #Uniapp

UniApp 实现的二维码扫描与生成组件 前言 最近在做一个电商小程序时&#xff0c;遇到了需要扫描和生成二维码的需求。在移动应用开发中&#xff0c;二维码功能已经成为标配&#xff0c;特别是在电商、社交和支付等场景下。UniApp作为一个跨平台开发框架&#xff0c;为我们提供…

Westlake-Omni 情感端音频生成式输出模型

简述 github地址在 GitHub - xinchen-ai/Westlake-OmniContribute to xinchen-ai/Westlake-Omni development by creating an account on GitHub.https://github.com/xinchen-ai/Westlake-Omni Westlake-Omni 是由西湖心辰&#xff08;xinchen-ai&#xff09;开发的一个开源…

uv python 卸载

又是查了半天 官网wiki没有 网上一堆傻子胡说 uv提示也不对 AI还在这尼玛胡编乱造 开始 我原来装了这几个环境 uv python list 现在python3.7.7不需要了&#xff0c;卸载&#xff0c;直接 uv python uninstall 3.7.7 去找你自己要卸载的版本号&#xff0c;不需要整个包名复制…

使用哈希表封装myunordered_set和myunordered_map

文章目录 使用哈希表封装myunordered_set和myunordered_map实现出复用哈希表框架&#xff0c;并支持insert支持迭代器的实现constKey不能被修改unordered_map支持[ ]结语 我们今天又见面啦&#xff0c;给生活加点impetus&#xff01;&#xff01;开启今天的编程之路&#xff01…

后端框架(2):Java的反射机制

什么是java反射机制&#xff1f; 回顾之前java程序如何使用类 1.分析&#xff0c;确定类名&#xff0c;属性名&#xff0c;方法......创建类 2.创建类的对象 3.使用 一切都是已知的。 在程序开发中&#xff0c;在哪儿需要使用哪个类的对象&#xff0c;就在那儿创建这个类对象…

ch10 课堂参考代码

ch10 最小生成树 生成树&#xff1a;对于 n 个结点 m 条边的无向图 G&#xff0c;由全部 n 个结点和其中 n - 1 条边构成的无向连通子图称为 G 的一棵生成树。 如果图 G 原本就不连通&#xff0c;则不存在生成树&#xff0c;只存在生成森林。 最小生成树&#xff08;Minimum…

费曼技巧及提高计划

费曼技巧及提高计划 一、什么是费曼技巧&#xff1f; 费曼技巧&#xff08;Feynman Technique&#xff09;由诺贝尔物理学奖得主理查德费曼提出&#xff0c;是一种通过“以教代学”来彻底理解复杂概念的学习方法。其核心逻辑是&#xff1a; “如果你不能简单解释一件事&#x…

LongRefiner:解决长文档检索增强生成的新思路

大语言模型与RAG的应用越来越广泛&#xff0c;但在处理长文档时仍面临不少挑战。今天我们来聊聊一个解决这类问题的新方法——LongRefiner。 背景问题&#xff1a;长文档处理的两大难题 使用检索增强型生成&#xff08;RAG&#xff09;系统处理长文档时&#xff0c;主要有两个…

5月16日复盘-目标检测开端

5月16日复盘 一、图像处理之目标检测 1. 目标检测认知 ​ Object Detection&#xff0c;是指在给定的图像或视频中检测出目标物体在图像中的位置和大小,并进行分类或识别等相关任务。 ​ 目标检测将目标的分割和识别合二为一。 ​ What、Where 2. 使用场景 目标检测用于…

MySQL基础面试通关秘籍(附高频考点解析)

文章目录 一、事务篇&#xff08;必考重点&#xff09;1.1 事务四大特性&#xff08;ACID&#xff09;1.2 事务实战技巧 二、索引优化大法2.1 索引类型全家福2.2 EXPLAIN命令实战 三、存储引擎选型指南3.1 InnoDB vs MyISAM 终极对决 四、SQL优化实战手册4.1 慢查询七宗罪4.2 分…

Word图片格式调整与转换工具

软件介绍 本文介绍的这款工具主要用于辅助Word文档处理。 图片排版功能 经常和Word打交道的人或许都有这样的困扰&#xff1a;插入的图片大小各异&#xff0c;排列也参差不齐。若不加以调整&#xff0c;遇到要求严格的领导&#xff0c;可能会让人颇为头疼。 而这款工具能够统…

工业巡检机器人 —— 机器人市场的新兴增长引擎

摘要 在机器人产业蓬勃发展的当下&#xff0c;不同类型机器人的市场表现差异显著。工业机械臂虽市场规模庞大&#xff0c;但已趋近饱和&#xff0c;陷入红海竞争&#xff1b;人形机器人因技术瓶颈仍多停留于实验室阶段&#xff0c;距离大规模商用尚有较长距离。与之形成鲜明对比…