🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中一起航行,共同成长,探索技术的无限可能。

🚀 探索专栏:学步_技术的首页 —— 持续学习,不断进步,让学习成为我们共同的习惯,让总结成为我们前进的动力。

🔍 技术导航:

  • 人工智能:深入探讨人工智能领域核心技术。
  • 自动驾驶:分享自动驾驶领域核心技术和实战经验。
  • 环境配置:分享Linux环境下相关技术领域环境配置所遇到的问题解决经验。
  • 图像生成:分享图像生成领域核心技术和实战经验。
  • 虚拟现实技术:分享虚拟现实技术领域核心技术和实战经验。

🌈 非常期待在这个数字世界里与您相遇,一起学习、探讨、成长。不要忘了订阅本专栏,让我们的技术之旅不再孤单!

💖💖💖 ✨✨ 欢迎关注和订阅,一起开启技术探索之旅! ✨✨

文章目录

  • 1. 背景介绍
  • 2 相关工作
      • 多模态预训练(Multimodal Pre-training)
      • 无监督文本风格迁移(Unsupervised Text Style Transfer)
  • 3 方法
    • 3.1 任务定义
    • 3.2 总体框架
    • 3.3 多模态文本风格迁移模型
      • 指令风格差异
      • 掩码-恢复机制
      • 模型结构
      • 训练目标
    • 3.4 VLN Transformer
      • 指令编码器
      • 视图编码器
      • 跨模态编码器
      • 动作预测器
  • 4 实验
    • 4.1 数据集
    • 4.2 评估指标
    • 4.3 结果与分析
  • 5 结论

1. 背景介绍

Zhu W, Wang X E, Fu T J, et al. Multimodal text style transfer for outdoor vision-and-language navigation[J]. arXiv preprint arXiv:2007.00229, 2020.

🚀以上学术论文翻译由ChatGPT辅助。

自然语言处理(NLP)中最具挑战性的问题之一是视觉-语言联合理解与推理。户外视觉语言导航(Outdoor VLN)正是这样一项任务:智能体需要根据自然语言指令,在真实的城市环境中完成导航。然而,由于缺乏详细描述复杂城市场景的人类注释数据,户外 VLN 仍是一项难以解决的问题。

本文提出了一种**多模态文本风格迁移(Multimodal Text Style Transfer, MTST)**学习方法,借助外部多模态资源缓解户外导航任务中的数据稀缺问题。我们的做法包括两部分:

  • 指令风格增强:我们首先将 Google Maps API 自动生成的导航文本,迁移为更接近人类语言风格的自然语言指令,从而扩展和丰富导航数据;
  • 多模态预训练:我们在增强后的外部户外导航数据集上对导航模型进行预训练,以提升模型在真实任务中的泛化能力。

实验结果表明,MTST 是一种模型无关(model-agnostic)的方法,可直接集成到现有 VLN 系统中,并显著提升导航性能。在测试集上,MTST 相比基线模型在任务完成率上取得了 8.7% 的相对提升,验证了该方法在缓解数据稀缺、提升导航智能体表现方面的有效性。

人工智能研究面临的一项关键挑战,是从静态观察性数据动态行为与增量决策过程转变(Fenton et al., 2020)。户外视觉语言导航(Outdoor VLN)正是这样一项挑战性任务:智能体需在城市环境中,根据自然语言指令,结合视觉场景完成导航,如图 1 所示。为了生成正确的动作序列,导航智能体必须理解指令并推理当前视觉环境。

不同于已有大量研究的室内导航任务(Anderson et al., 2018;Wang et al., 2018;Fried et al., 2018 等),户外导航发生在更复杂的城市街景中(Mirowski et al., 2018;Chen et al., 2019),这导致搜索空间巨大,导航路径更长,视觉目标种类也更丰富。这要求指令内容更加充实以适应复杂的场景。然而,收集由人类编写的细致导航指令代价极高,数据稀缺问题严重限制了导航模型的性能。

为解决这一问题,Fried et al.(2018)曾提出 Speaker 模型,自动合成训练样本。但在复杂城市环境中,仅从视觉信号生成自然语言指令是非常困难的。相比之下,Google Maps API 可提供基于模板的导航指令,易于获取,具有潜在的辅助价值。然而,这些指令仅包含街道名称与方向提示,而缺乏对真实街景中视觉目标的提及,与人类注释指令在风格上差异巨大,从而限制了它们的直接利用价值。

针对这一问题,本文提出了一种全新的多模态文本风格迁移(Multimodal Text Style Transfer, MTST)方法,用于缩小外部模板指令与真实人类指令之间的风格差异。我们将外部数据中的模板指令转换为“类人风格”的指令,使其具备方向提示与街景物体描述的结合表达能力(见图 1),以此增强训练样本中的视觉-语言对齐信息,从而缓解数据不足问题。

此外,本文还提出了一种新型的VLN Transformer 模型,用于在户外 VLN 中执行导航预测。实验表明,利用 Google Maps API 提供的外部导航数据进行预训练,能够显著提升在 Touchdown 数据集(Chen et al., 2019)上的导航效果。进一步地,在预训练中使用 MTST 方法生成的“风格增强”指令,可进一步提升鲁棒性与性能。

综上,本文的主要贡献包括:

  • 提出一种多模态文本风格迁移(MTST)方法,有效缓解户外 VLN 的数据稀缺问题;
  • 构建并公开Manh-50 辅助数据集,其中包含风格迁移后的导航指令,支持模型训练;
  • 设计一种新颖的VLN Transformer 模型,实现对复杂指令与场景的更好建模;
  • 实验证明:使用经过 MTST 处理的外部资源进行预训练,可使任务完成率在测试集上相对提升 8.7%

2 相关工作

视觉-语言导航(Vision-and-Language Navigation, VLN)是一项要求智能体在三维环境中,根据自然语言指令完成目标导航的任务。除了已有研究广泛探讨的泛化能力问题(Wang et al., 2018, 2019;Tan et al., 2019;Zhang et al., 2020),数据稀缺问题同样是该任务中的关键挑战,尤其在真实的户外环境中更为严重(Chen et al., 2019;Mehta et al., 2020;Xiang et al., 2020)。

Fried et al.(2018)提出使用 Speaker 模型对导航轨迹进行反向翻译,从而构建大量伪指令以增强训练数据。然而,由于该模型缺乏大规模语料的泛化能力优化,其生成质量可能引发误差累积问题。大多数现有研究在测试阶段采用路径逐步选择策略,但 Majumdar et al.(2020)则提出在测试时转换为路径分类问题,即在已探索环境中对一组候选路径进行选择,该方法在室内 VLN 表现良好,但不适用于复杂结构差异较大的户外导航图。

多模态预训练(Multimodal Pre-training)

为提升多模态任务表现,Transformer 架构已成为主流方案,广泛应用于编码图像与文本特征(Tan & Bansal, 2019;Lu et al., 2019;Chen et al., 2020;Sun et al., 2019;Li et al., 2019;Huang et al., 2020b;Luo et al., 2020;Li et al., 2020;Zheng et al., 2020;Wei et al., 2020;Tsai et al., 2019)。这些方法通过预训练任务(如 Masked Language Modeling、Masked Region Modeling、图文匹配)学习跨模态表征能力,从而在下游任务中展现出良好性能。

Majumdar et al.(2020)进一步使用 Web 上的大规模图文对来预训练 VLN-BERT,一种类 BERT 的视觉语言模型。Hao et al.(2020)提出使用 Transformer 架构用于室内 VLN,但我们的方法与其存在若干差异:

  • 预训练目标不同:Hao 等人仅在 VLN 原始数据上进行训练;而我们通过 MTST 方法,构建增强型风格迁移数据集,并在此基础上进行预训练;
  • 导航目标优化方式不同:我们依赖于简单的导航损失函数,而对方使用 MLM 任务增强表示学习;
  • 模型输入粒度不同:我们进行句级别编码以处理 Touchdown 中的长指令,而对方使用整句特征;
  • 历史编码策略不同:我们模型编码的是整个轨迹历史,而对方仅编码当前位置的全景图像。

无监督文本风格迁移(Unsupervised Text Style Transfer)

风格迁移是一种应对缺乏平行训练语料的有效方式。部分工作采用 VAE(变分自编码器)将文本编码为隐向量,并在隐空间中进行风格操作(Shen et al., 2017;Hu et al., 2017;Yang et al., 2018),常配合判别器进行训练。另一些工作则构建编码-解码结构进行风格迁移(John et al., 2019;Fu et al., 2018)。

此外,还有研究通过回译生成伪平行语料(Artetxe et al., 2018;Lample et al., 2018a,b;Zhang et al., 2018)来扩充训练集。我们的 MTST 方法可视为结合了风格迁移与外部数据增强的一种有效实践,其生成过程同时参考了导航环境中的视觉对象和语言结构,确保风格迁移后的指令具备导航性与可读性。

3 方法

3.1 任务定义

在视觉-语言导航(VLN)任务中,智能体需要根据一组自然语言指令 X = { s 1 , s 2 , … , s m } X = \{s_1, s_2, \dots, s_m\} X={s1,s2,,sm} 找到通往目标位置的正确路径。导航过程被视为一系列决策过程。在每个时间步 t t t,导航环境提供一个图像视角 v t v_t vt。结合指令 X X X 和视角 v t v_t vt,智能体需从动作集合 A A A 中选择一个动作 a t ∈ A a_t \in A atA。城市环境中的动作集合通常包含:左转、右转、前进和停止。

3.2 总体框架

我们提出的多模态文本风格迁移(MTST)学习方法由两个主要模块组成:多模态文本风格迁移模型 和 VLN Transformer。如图 2 所示,MTST 方法利用风格迁移模型缩小人类标注导航指令与外部机器生成指令之间的差异。风格迁移模型在真实户外导航数据上训练,用于为外部资源轨迹生成风格调整后的指令。VLN Transformer 则是导航智能体,采用两阶段训练流程:首先在带有风格迁移指令的外部数据上预训练,然后在真实户外导航数据上进行微调。

3.3 多模态文本风格迁移模型

指令风格差异

如表 1 所示,Google Maps API 生成的导航指令为模板化结构,强调街道名称与方向。而人工标注的指令更关注视觉环境中的物体,如交通灯、车辆、遮阳篷等。风格迁移的目标是将更多物体相关信息注入机器生成的指令中,同时保持导航引导信号的准确性。

掩码-恢复机制

我们采用“掩码与恢复”(masking-and-recovering)机制(Zhu et al., 2019;Liu et al., 2019;Donahue et al., 2020;Huang et al., 2020a)训练风格迁移模型:对人类指令中的物体词、机器指令中的街道词进行掩码,再尝试借助剩余上下文与轨迹恢复这些内容。我们使用 NLTK(Bird et al., 2009)实现词语掩码,连续多个 token 会被替换为单一 [ MASK ] [\text{MASK}] [MASK] token。指导词如 “turn left” 不会被掩码,确保导航引导性不被破坏。

模型结构

模型基于 Fried et al.(2018)提出的 Speaker 模型,增加了文本注意力机制。输入包括轨迹视图特征与掩码指令骨架 X ′ X' X。每个视图表示为 v t ′ = [ v v ′ ; v α ′ ] v'_t = [v'_v; v'_\alpha] vt=[vv;vα],其中 v v ′ ∈ R 512 v'_v \in \mathbb{R}^{512} vvR512 是由 ResNet18(He et al., 2016)输出的视觉特征, v α ′ ∈ R 64 v'_\alpha \in \mathbb{R}^{64} vαR64 是通过重复 [ sin ⁡ α , cos ⁡ α ] [\sin\alpha, \cos\alpha] [sinα,cosα] 构建的方向编码(参考 Fried et al., 2018)。

  • 视觉注意力计算如下:

attn v t , i = softmax ( ( W v h t − 1 ) T v i ′ ) \text{attn}_{v_t,i} = \text{softmax}((W_v h_{t-1})^T v'_i) attnvt,i=softmax((Wvht1)Tvi)

v ^ t = ∑ i = 1 8 attn v t , i v i ′ \hat{v}_t = \sum_{i=1}^{8} \text{attn}_{v_t,i} v'_i v^t=i=18attnvt,ivi

  • 文本特征通过句子平均嵌入表示,文本注意力计算如下:

attn s t , j = softmax ( ( W s h t − 1 ) T s j ′ ) \text{attn}_{s_t,j} = \text{softmax}((W_s h_{t-1})^T s'_j) attnst,j=softmax((Wsht1)Tsj)

s ^ t = ∑ j = 1 M attn s t , j s j ′ \hat{s}_t = \sum_{j=1}^{M} \text{attn}_{s_t,j} s'_j s^t=j=1Mattnst,jsj

其中 M M M 为最大句子数。

  • 最终隐藏状态为:

h t = LSTM ( [ v ^ t ; s ^ t ; v t ′ ] ) h_t = \text{LSTM}([\hat{v}_t; \hat{s}_t; v'_t]) ht=LSTM([v^t;s^t;vt])

训练目标

采用教师强制(teacher-forcing)训练策略(Williams & Zipser, 1989),解码器基于掩码指令 X ′ X' X 与轨迹生成完整指令,训练目标为最小化如下交叉熵损失:

L ( x 1 , x 2 , … , x n ∣ X ′ , v 1 ′ , … , v N ′ ) = − log ⁡ ∏ j = 1 n P ( x j ∣ x 1 , … , x j − 1 , X ′ , v 1 ′ , … , v N ′ ) L(x_1, x_2, \dots, x_n | X', v'_1, \dots, v'_N) = - \log \prod_{j=1}^{n} P(x_j | x_1, \dots, x_{j-1}, X', v'_1, \dots, v'_N) L(x1,x2,,xnX,v1,,vN)=logj=1nP(xjx1,,xj1,X,v1,,vN)

其中 x 1 , … , x n x_1, \dots, x_n x1,,xn 为原始指令 token, N N N 为轨迹视图数量。


3.4 VLN Transformer

VLN Transformer 是导航智能体,结构包括:指令编码器、轨迹编码器、跨模态编码器与动作预测器(如图 4 所示)。

指令编码器

使用预训练的 BERT-base(Devlin et al., 2019),将每条指令按句点分割,计算第 i i i 个句子 s i = { x i , 1 , … , x i , l i } s_i = \{x_{i,1}, \dots, x_{i,l_i}\} si={xi,1,,xi,li} 的嵌入:

w i , j = BERT ( x i , j ) ∈ R 768 w_{i,j} = \text{BERT}(x_{i,j}) \in \mathbb{R}^{768} wi,j=BERT(xi,j)R768

h s i = FC ( 1 l i ∑ j = 1 l i w i , j ) ∈ R 256 h_{s_i} = \text{FC}\left(\frac{1}{l_i} \sum_{j=1}^{l_i} w_{i,j} \right) \in \mathbb{R}^{256} hsi=FC(li1j=1liwi,j)R256

视图编码器

采用与 Chen et al.(2019)相同策略:每个全景图像被切分为 8 张图片并投影为透视图,使用 ResNet18 提取每张图的 128 × 100 × 58 128 \times 100 \times 58 128×100×58 特征,然后拼接为 128 × 100 × 464 128 \times 100 \times 464 128×100×464 特征图。以航向 α t \alpha_t αt 为中心裁剪并平均得到 100 × 100 100 \times 100 100×100 的全景特征 $ \hat{I}_t $。最后通过三层 CNN 提取视图特征 h v t ∈ R 256 h_{v_t} \in \mathbb{R}^{256} hvtR256

跨模态编码器

用于融合语言与视觉模态信息,采用 8 层 Transformer,隐藏维度为 256,包含掩码机制,避免访问未来轨迹。

输入为:

[ h s 1 , … , h s M ; h v 1 , … , h v t − 1 ] [ h_{s_1}, \dots, h_{s_M}; h_{v_1}, \dots, h_{v_{t-1}} ] [hs1,,hsM;hv1,,hvt1]

每个输入加上位置嵌入与段落嵌入,表示其属于语言或视觉模态。

动作预测器

一个全连接层,根据当前时间步前的融合特征预测动作:

h concat = h s 1 ∣ ∣ … ∣ ∣ h s M ∣ ∣ h v 1 ∣ ∣ … ∣ ∣ h v t h_{\text{concat}} = h_{s_1} || \dots || h_{s_M} || h_{v_1} || \dots || h_{v_t} hconcat=hs1∣∣∣∣hsM∣∣hv1∣∣∣∣hvt

a t = arg ⁡ max ⁡ ( FC ( T ( h concat ) ) ) a_t = \arg\max(\text{FC}(T(h_{\text{concat}}))) at=argmax(FC(T(hconcat)))

其中 T T T 为 Transformer 编码器,训练时采用交叉熵损失优化。

4 实验

4.1 数据集

户外 VLN 数据集
在户外 VLN 任务中,我们在 Touchdown 数据集(Chen 等,2019;Mehta 等,2020)上进行实验。该数据集基于 Google 街景视图,涵盖纽约曼哈顿地区的 29,641 个街景全景图,通过 61,319 条无向边连接。数据集中包含 9,326 条导航轨迹,每条轨迹都配有人类编写的指令。训练集包含 6,526 个样本,验证集和测试集分别包含 1,391 和 1,409 个样本。

外部资源
我们采用 StreetLearn 数据集作为户外 VLN 任务的外部辅助资源(Mirowski 等,2018)。StreetLearn 同样基于 Google 街景图,涵盖纽约和匹兹堡两座城市,共包含 114k 个全景图。其中,纽约图包含 56k 个节点和 115k 条边,匹兹堡图包含 57k 个节点和 118k 条边。该数据集共计提供了曼哈顿地区 580k 个样本和匹兹堡地区 8k 个样本。

由于 StreetLearn 的每条轨迹平均包含更多全景图,其配套的指令比 Touchdown 更短。为便于实验,我们从 StreetLearn 中提取了一个子集,命名为 Manh-50,该子集仅包含不超过 50 个全景图的导航轨迹,共计 31k 个训练样本。我们为 Manh-50 生成了风格迁移后的指令,用作辅助数据集,用于导航模型的预训练。详细内容见附录。

4.2 评估指标

我们使用以下指标评估 VLN 模型性能:

  • 任务完成率(Task Completion, TC):成功完成导航任务的准确率。若智能体最终位置是目标点或其相邻节点,则视为成功(Chen et al., 2019)。
  • 最短路径距离(Shortest-Path Distance, SPD):智能体最终位置与目标点之间的环境图距离均值。
  • 编辑距离加权成功率(Success weighted by Edit Distance, SED):智能体路径与参考路径的 Levenshtein 编辑距离归一化指标,仅对成功导航进行评估。
  • 路径覆盖度加权得分(Coverage weighted by Length Score, CLS):评估智能体路径与参考路径之间的匹配程度。
  • 归一化动态时间规整(Normalized Dynamic Time Warping, nDTW):智能体路径与参考路径之间的最小累积距离,归一化后取负指数。
  • 成功样本动态时间规整(Success weighted DTW, SDTW):nDTW 的成功样本加权版本。

其中,TC、SPD 和 SED 来自 Chen et al. (2019);CLS 来自 Jain et al. (2019);nDTW 和 SDTW 来自 Ilharco et al. (2019)。我们调整了 nDTW 的归一化因子,将其设为参考路径长度平方根的倒数,以获得路径长度无关性(参考 Mueen 和 Keogh,2016)。

4.3 结果与分析

户外 VLN 表现
我们将 VLN Transformer 与基线模型 RCONCAT(Chen et al., 2019)和 GA(Chen et al., 2019)进行比较。两者均采用 LSTM 编码轨迹与指令,并使用 Hogwild! 进行监督训练。表 2 显示了在 Touchdown 验证集和测试集上的导航结果,VLN Transformer 在大多数指标上优于基线模型,除了 SPD 和 CLS。

在 Manh-50 上进行预训练能部分提升导航表现。三种模型在 TC、SED、SDTW 等与成功率相关的指标上均获得提升,但由于 Manh-50 与 Touchdown 指令风格差异较大,预训练会导致 Transformer 模型的 SPD 表现下降。

与此相比,我们的 MTST 学习方法能更有效地利用外部资源,并进一步提升所有指标下的导航性能。预训练时使用风格迁移后的指令在三种模型中均带来稳定收益,说明 MTST 是模型无关的通用方法。

表 4 对比了成功与失败样本中的 SPD 值。VLN Transformer 在成功样本中表现更优,但失败样本中路径偏长,降低了整体 CLS 指标。不过在实际导航中,失败时多探索区域未必是坏事,这可作为未来研究方向。

多模态文本风格迁移在 VLN 中的作用
我们评估了不同风格迁移模型生成的指令对 VLN 性能的影响。如表 3 所示,仅使用 Speaker 生成的指令会误导导航;加入文本注意力略有改进;而使用 MTST 模型生成的风格迁移指令可显著提升导航指标,验证了 MTST 的有效性。

指令质量评估
我们使用五种自动化文本生成指标(BLEU、ROUGE、METEOR、CIDEr、SPICE)评估生成指令的质量,并引入引导信号匹配率(Match Rate, MR)以及注入词数量(#infill)指标。结果显示,MTST 模型在全部七项指标上表现最优,说明“掩码-恢复”机制有助于注入更多与视觉对象相关的信息,从而生成更高质量的指令。

人工评估
我们在 Amazon Mechanical Turk 上进行人工评估,从 Touchdown 验证集中抽取 170 对指令进行配对比对。结果显示,MTST 模型生成的指令在指导性和语义对齐性方面均优于其它模型。

案例分析
图 5 展示了两组指令生成示例。Speaker 模型存在幻觉现象(hallucination),即提及轨迹中不存在的对象;加入文本注意力后方向指导性提高但视觉信息不足;而我们的 MTST 模型能准确保留导航引导语,并融合更多对象信息(如“红绿灯”、“脚手架”)。

5 结论

本文提出了一种用于户外 VLN 的多模态文本风格迁移(MTST)学习方法,能够充分利用域外导航样本并丰富原有导航推理训练过程。实验表明,MTST 方法对模型结构无依赖,能有效缓解数据稀缺问题,且在多个导航性能指标上优于现有基线模型。未来工作中,我们计划:

  • 探索构建端到端的指令迁移与导航统一框架;
  • 进一步提升风格迁移后指令的生成质量;
  • 提出量化指标,用于衡量风格迁移指令与轨迹之间的一致性。

🌟 在这篇博文的旅程中,感谢您的陪伴与阅读。如果内容对您有所启发或帮助,请不要吝啬您的点赞 👍🏻,这是对我最大的鼓励和支持。

📚 本人虽致力于提供准确且深入的技术分享,但学识有限,难免会有疏漏之处。如有不足或错误,恳请各位业界同仁在评论区留下宝贵意见,您的批评指正是我不断进步的动力!😄😄😄

💖💖💖 如果您发现这篇博文对您的研究或工作有所裨益,请不吝点赞、收藏,或分享给更多需要的朋友,让知识的力量传播得更远。

🔥🔥🔥 “Stay Hungry, Stay Foolish” —— 求知的道路永无止境,让我们保持渴望与初心,面对挑战,勇往直前。无论前路多么漫长,只要我们坚持不懈,终将抵达目的地。🌙🌙🌙

👋🏻 在此,我也邀请您加入我的技术交流社区,共同探讨、学习和成长。让我们携手并进,共创辉煌!
在这里插入图片描述

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

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

相关文章

黑马程序员新版Linux学习笔记——第二部分 基础命令

一、Linux目录结构 二、命令基础 三、ls 列目录内容 3.1 命令 3.2 参数 3.3 总结 四、cd 切换工作目录 4.1命令 五、pwd 查看当前工作目录 5.1命令 六、相对路径、绝对路径、特殊路径符 七、mkdir 创建目录命令 7.1命令 八、touch、cat、more 文件操作命令 8.1 touch 8.2c…

日常运维问题汇总-25

76.销售订单交货单状态更新 实务中偶有发生交货已完成,无需开票或开票已经完成,交货单状态为:处理中,且仍然出现在VF04中,如下图所示: 解决方法: T-CODE:VL_COMPLETE,可对错误的DN状态进行更新…

【2025 年】软件体系结构考试试卷-期末考试

2025 年软件体系结构考试试卷 考试学期:2025 考试形式:闭卷 考试时间:120 分钟 年级:______ 专业:软件工程 班级:______ 一、单选题(每小题 1.5 分,共 24 分) 关于策略…

4.查看、删除数据库

1.显示所有数据库 SHOW DATABASE 2.显示数据库创建语句 SHOW CREAT DATABASE db_name 例如想查看某个数据库是怎样创建的,用的什么字符集啥的。 3.数据库删除语句【慎用】 DROP DATABASE [IF EXISTS] db_name 删除某个数据库之前一定要确定是否进行了备份。

设计模式 - 原型模式

原型模式(Prototype),在制造业种通常是指大批量生产开始之前研发出的概念模型,并基于各种参数指标对其进行检验,效果达到了质量要求,即可参照这个原型进行批量生产。即,原型模式可以用对象创建对…

MySQL数据库基础:从零开始的第一步【Linux】

前言 各位小伙伴们,好久不见!近期,我的文章更新频率确实有些缓慢,在此诚挚地向大家道歉。这个月是我的期末考试月,正处于紧张的复习(也可以说是重新学习)阶段。尽管学业繁忙,但我依然…

502 Bad Gateway:服务器作为网关或代理时收到无效响应处理方式

502 Bad Gateway 错误是 Web 开发和服务器管理中常见的问题,通常表示网关或代理服务器收到无效响应。这种错误可能由多种原因引起,包括后端服务故障、网络问题或配置错误等。了解502错误的原因及其处理方式,对于维护网站的可用性和用户体验至…

Abel 变换,离散型分部积分

文章目录 零、引入:分部积分一、Abel 变换1.1 Abel 变换1.2 证明 二、一些比较浅显的应用2.1 等差 乘 等比型求和2.2 平方求和公式2.3 不等式证明 三、一些算法题的式子优化3.1 3500.将数组分割为子数组的最小代价3.2 D. Array Splitting3.3 300. 任务安排1 零、引入…

火山 RTC 引擎12----合流转推 集成

一、火山、网易 合流转推集成 1、 首次先要startPush,要不然,推不了流 void NRTCEngine::PushToCDN(std::string taskID, std::string url) {if (m_video == nullptr) return;bytertc::IMixedStreamConfig* config = getMixedStreamConfig(url);int ret = m_video->star…

基于STM32设计的物联网疫苗冷链物流监测系统

文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】项目硬件模块组成【4】设计意义【5】国内外研究现状(1)国内研究现状(2)国外研究现状(3)技术演进趋势分析(4)现存技术缺口(5)关键案例技术对比表【6】摘要1.2 设计思路1.3 系统功能总结1.4 开…

音频中采样率和帧是什么?怎么理解?

视频中的“帧”是指一张图片,那么在音频中,“帧”的含义就完全不同了。理解音频中的“帧”概念,对做音视频处理、流媒体开发非常关键。 一、声音是怎么采集的? 音频采集是指通过麦克风等设备捕捉周围环境中的声波,并…

第三方检测护航软件登记:企业合规的技术通行证与市场信任基石

一、软件产品登记测试:合规化的必经之路 根据《软件产品管理办法》,所有上市软件必须通过第三方检测机构的专业评估,确保功能、性能、安全性等指标符合国家标准(如GB/T 25000系列)。这一强制性要求不仅规避了法律风险…

产品页不被收录的6个技术原因(非重复内容/爬虫限制类)

页面未被收录的原因可能藏在代码架构或服务器配置中 比如爬虫无法“看懂”你的动态内容,或是某个参数设置错误导致页面被判定为重复。 本文从技术排查角度出发,整理6个最易被忽视但直接影响收录的实操问题。 页面加载速度拖慢爬虫抓取 例如&#xff0…

如何在FastAPI中打造一个既安全又灵活的权限管理系统?

title: 如何在FastAPI中打造一个既安全又灵活的权限管理系统? date: 2025/06/16 08:17:05 updated: 2025/06/16 08:17:05 author: cmdragon excerpt: FastAPI权限系统通过依赖注入实现三级验证:身份认证、角色验证和权限校验。数据库模型包括用户、角色和权限注册表,支持…

通过Radius认证服务器实现飞塔/华为防火墙二次认证:原理、实践与安全价值解析

引言:数字化转型中的身份认证挑战 在数字化转型加速的今天,企业网络边界日益模糊,混合云架构、远程办公、物联网设备接入等场景对网络安全提出全新挑战。传统防火墙基于IP/端口的访问控制已无法满足动态安全需求,如何构建"持…

golang--context的使用指南与核心特性

Go 语言 context 包:使用指南与核心特性 一、context 的本质与设计目的 context 是 Go 语言中管理请求生命周期的核心机制,它提供了一套统一的方式来: 传递请求范围数据(如用户认证信息)控制跨 goroutine 的生命周期…

耗时3小时,把这两天做好的爬虫程序,用Python封装成exe文件

先执行命令如下: pip install pyinstaller py -m PyInstaller --log-levelDEBUG --add-data "config.ini;." nmpa_gui.py很快在dist目录下就有生成一个nmpa_gui文件夹,运行 nmpa_gui.exe,报错: 1️⃣初始化爬虫… 程序…

Linux下nginx访问路径页面

第一步:通过Xshell在虚拟机中下载nginx sudo apt-get install nginx 第二步:进入nginx配置页面 cd /etc/nginx 我这里创建了一个html文件夹 在进入去创建页面并且重新加载 boahuboahu-VMware-Virtual-Platform:/$ cd /etc/nginx boahuboahu-VMware-Vir…

三维视频融合怎么弄?三步实现精准投射与自由修剪

分享大纲: 1、场景引入:为什么你的三维场景视频融合效果不理想? 2、解决方案:捷码视频融合三步操作指南 3、捷码平台:低代码构建动态三维视界 在智慧城市中的安防领域,将实时视频与三维场景融合已是大势需求…

探索阿里云网络与CDN产品:解锁高效网络体验

阿里云网络产品概述 在云计算蓬勃发展的当下,网络作为连接计算、存储与用户的关键纽带,其重要性不言而喻。阿里云作为全球知名的云计算服务提供商,凭借其丰富且强大的网络产品体系,为企业数字化转型筑牢了坚实的网络根基&#xf…