ECCV2022|时尚领域的多模态预训练预训练模型FashionViL,在五个下游任务中SOTA!

ECCV2022 多目标跟踪(MOT)汇总 我们提出了一种统一的方法,称为Unicorn,它可以用相同的模型参数同时解决四个跟踪问题(SOT、MOT、VOS、MOTS)。由于对象跟踪问题本身的分散定义,大多数现有的跟踪器被开发用于解决单个或部分任务,并对特定任务的特征进行过度专门化。相比之下,Unicorn提供了一个统一的解决方案,在所有跟踪任务中采用相同的input, backbone, embedding和head。第一次,我们完成了跟踪网络架构和学习范式的巨大统一。在8个跟踪数据集中,Unicorn的表现与特定任务的对手相当或更好。 阅读详情

ECCV2022 | 时尚领域的多模态预训练预训练模型FashionViL,在五个下游任务中SOTA!代码已开源!

【写在前面】

用于表示学习的大规模视觉和语言 (V+L) 预训练已被证明在促进各种下游 V+L 任务方面是有效的。然而,当涉及到时尚领域时,现有的 V+L 方法是不够的,因为它们忽略了时尚 V+L 数据和下游任务的独特特征。在这项工作中,我们提出了一种新颖的以时尚为中心的 V+L 表示学习框架,称为 FashionViL。它包含两个新颖的特定于时尚的预训练任务,专门设计用于利用时尚 V+L 数据的两个内在属性。首先,与 V+L 数据点仅包含单个图像-文本对的其他域相比,时尚域中可能有多个图像。因此,作者提出了一个多视图对比学习任务,用于将一个图像的视觉表示拉近到另一个图像+文本的组合多模态表示。其次,时尚文本(例如产品描述)通常包含丰富的细粒度概念(属性/名词短语)。为了利用这一点,引入了伪属性分类任务来鼓励相同概念的学习单模态(视觉/文本)表示相邻。此外,时尚 V+L 任务独特地包括不符合常见单流或双流架构的任务(例如,文本引导的图像检索)。因此,作者提出了一种灵活、多功能的 V+L 模型架构,该架构由与模态无关的 Transformer 组成,以便它可以灵活地适应任何下游任务。大量实验表明,本文的 FashionViL 在五个下游任务中实现了最新的技术水平。

1. 论文和代码地址

FashionViL: Fashion-Focused Vision-and-Language Representation Learning

论文地址:https://arxiv.org/abs/2207.08150

代码地址:https://github.com/brandonhanx/mmf

2. 动机

最近,视觉和语言(V+L)预训练受到越来越多的关注。目标是从大规模的图像-文本对中学习多模态表示,以改进各种下游单模态或多模态任务。由于两个主要因素,这些模型已被证明是非常有效的:(i)网络上有大量的图像-文本对免费提供丰富的训练数据(不需要额外的注释),以及(ii)基于 Transformer 的模型架构已被广泛用于学习多模态输入的上下文表示。

在这项工作中,作者专注于时尚领域,V+L 预训练似乎特别适合。首先,时尚V+L数据不仅数量多,而且质量高。在线时尚购物越来越普遍;在电子商务网站上,每个产品详细信息页面 (PDP) 都包含产品图像和文本,两者的质量都非常高(即通常由领域专家生成)。其次,在实际应用中,有很多下游任务,比其他领域多,从多模态产品理解、跨模态检索到文本引导的图像检索。然而,当应用于时尚领域时,可以观察到现有的 SOTA V+L 预训练方法与其他领域相比效果较差。作者认为这是因为它们并非旨在利用时尚 V+L 数据和下游任务的某些独特特征。

特别是,在大多数现有的通用域 V+L 数据集(例如,COCO 和 Flickr30k)中,每个数据点都是单个图像-文本对,并且文本通常很简短中。相比之下,时尚数据集主要是从电子商务网站上的 PDP 收集的,因此有两个特点:(i)**通常有多个图像与给定文本相关联。**一个示例如上图所示。服装“长裙”以三种不同的视图呈现,以便在线购物者可以从不同角度查看该服装。(ii) **文本描述中有更多细粒度的概念,因为文本作为产品描述。**如上图所示,时尚文本更侧重于服装本身,用非常详细的形容词和名词,在标题、款式和描述中描述其外观。为了证明这在统计上是正确的,作者计算了四个组合时尚数据集和两个组合通用数据集的比率。发现时尚字幕中 82% 的单词是形容词或名词,而通用字幕的这一比例仅为 59%。现有的 V+L 模型中没有一个能够利用时尚数据中的这些特性。

时尚下游任务也比通用领域的任务更加多样化,对 V+L 预训练模型架构设计提出了挑战。更具体地说,在通用 V+L 域中,现有模型是单流或双流,具体取决于预期的下游任务。例如,对图像和文本标记的连接进行操作的单流模型适用于多模态融合任务,例如 VQA、VCR 和 RefCOCO。相比之下,双流模型通常设计用于高效的跨模态检索任务。然而,在时尚领域,除了图文融合和跨模态检索下游任务外,还有一些任务既不适合单流也不适合双流架构。例如,文本引导的图像检索任务不仅需要对参考图像和修改后的文本进行高质量的融合,而且还需要在融合的多模态表示和候选图像之间进行有效匹配。由于时尚下游任务的多样性,现有的模型,无论是单流还是双流,都不具备所需的灵活性和多功能性。

为了克服现有时尚模型的局限性,作者引入了一种新颖的以时尚为中心的 V+L 表示学习框架,称为 FashionViL。提出了两个以时尚为重点的预训练任务,以充分利用时尚数据的特点。第一个任务是多视图对比学习(MVC)。给定具有多个图像/视图和一个文本描述的时尚数据项,作者认为每种模态(无论是单模态还是多模态)在语义上都应该彼此相似,因为它们都指的是同一个产品。因此,除了常见的图像-文本匹配之外,作者提出最小化(a)其视图和文本之一的多模态表示与(b)其他视图之间的距离。第二个任务是伪属性分类(PAC),旨在利用描述中丰富的细粒度时尚概念。具体来说,作者从时尚数据集中提取那些常见的属性/名词短语,并构建一个伪属性集。然后,该模型会在预训练期间显式地学习预测这些属性。 PAC 鼓励将具有相同属性的时尚物品聚集在一起,以便学习的表示变得更具辨别力。作者证明了这些新的预训练任务是有效的,并且是对传统预训练任务的补充,例如图像-文本对比学习 (ITC) 和蒙面语言建模 (MLM)。

此外,作者还设计了一个灵活且通用的模型架构,使预训练的模型能够轻松适应各种下游任务。新设计保留了单流模型的优越融合能力和双流模型的可扩展性。至关重要的是,它还迎合时尚领域的独特任务,例如文本引导的图像检索和服装互补项目检索。具体来说,本文的模型由一个图像编码器和一个模态无关的 Transformer 模块组成,它可以用作文本编码器或多模态融合编码器。因此,它可以很容易地针对三个不同的下游用例进行微调:(i)用于联合表示学习的早期融合单流模式,例如多模态分类; (ii) 用于单模态表示学习的后期融合双流模式,例如跨模态检索; (iii)用于组合表示学习的early-fusion双流架构,例如文本引导的图像检索。

本文的贡献如下:(1)专门针对时尚领域提出了一种新颖的 V+L 预训练框架,该框架可以通过两个新的 V+L 预训练任务来利用时尚数据的特殊性。 (2) 采用共享文本编码器和融合编码器引入灵活的架构设计,可以轻松适应一组多样化的时尚下游任务。 (3) 为了证明 FashionViL 的泛化性,作者在 5 个时尚 V+L 任务上评估本文的模型:图像到文本检索、文本到图像检索、文本引导图像检索 、(子)类别识别和装备互补项目检索。实验表明,FashionViL 实现了新的最先进技术 (SOTA),在每个下游任务中都具有一致且显着的性能提升。

3. 方法

3.1 Model overview

FashionViL 的模型架构如上图(a) 所示,它由一个图像编码器 (IE) 和一个可用于文本编码器 (TE) 和融合编码器 (FE) 的Transformer 模块组成。具体来说,图像编码器使用 ConvNet 作为其主干,通过光栅化最终特征图的网格特征,将原始像素转换为视觉嵌入序列。对于文本编码器,作者按照 BERT将输入句子标记为 WordPieces。每个 sub-word token 的 embedding 是通过将其 word embedding 和可学习的 position embedding 相加得到的,然后是 LN。

模型设计的一个新颖之处在于 TE 和 FE 的共享 Transformer,这能够灵活地构建各种多模态模型架构,每种模型架构都适用于不同类型的下游任务。例如,上图(b) 显示了一个早期融合模型架构,其中原始句子和计算的图像嵌入被联合输入到多模态融合编码器中。当使用 Transformer 作为融合编码器时,作者将进一步将模态嵌入添加到视觉嵌入和词嵌入中,帮助模型区分模态类型。这种架构和之前很多预训练作品中著名的单流模型一模一样。然后在上图© 中,作者展示了一个后期融合的双流模型架构,其中我们应用可共享的 Transformer 作为文本编码器。图像编码器和文本编码器的输出与一个简单的点积进行交互,以计算两种模态之间的相似性。这种架构已被广泛用于高效的大规模跨模态检索。此外,可以将此共享 Transformer 微调为更复杂的双流架构变体,如上图(d) 所示。这里,一个流以早期融合方式运行,而另一个流是图像编码器。

这种架构对于一些具有多模式查询的以时尚为中心的检索任务是必需的,例如,文本引导的图像检索。注意,以上三种架构中的所有FE和TE其实都是同一个Transformer,区别仅仅在于它的输入。

给定一个图像-文本对,将其原始视觉输入表示为 v i = { v i 1 , … , v i K } \mathbf{v}_{i}=\left\{\mathbf{v}_{i}^{1}, \ldots, \mathbf{v}_{i}^{K}\right\} vi​={vi1​,…,viK​}, 其输入词为 w i = { w i c l s , w i 1 , … , w i T } \mathbf{w}_{i}=\left\{\mathbf{w}_{i}^{\mathrm{cls}}, \mathbf{w}_{i}^{1}, \ldots, \mathbf{w}_{i}^{T}\right\} wi​={wicls​,wi1​,…,wiT​}, 其中下标 i 表示数据集中的第 i 对。在文本序列的开头插入一个额外的特殊 [CLS] token,以及连接模态时的多模态序列。在将模型应用于下游任务时,遵循常见的预训练 + 微调 pipeline。

3.2 Pre-training tasks

首先介绍两个新的预训练任务。接下来是框架中采用的其他常规预训练任务。

Multi-view contrastive learning (MVC)

每个时尚项目通常与多个视图相关联,以提供产品的全面概览。为了利用不同视图之间的互惠信息,作者通常在 (a) 原始视图 v 的视觉表示和 (b) 另一个视图 d 和文本 w 的组合表示之间建立相关性。如果产品只有一个视图,作者会通过随机裁剪或水平翻转给定视图来增加另一个视图。如上图(d)所示,原始视图的视觉表示由图像编码器提取,而合成表示以早期融合的方式计算。因此,多模态输入[w; d]和 v 可以计算为:

s ( [ w i ; d i ] , v j ) = g θ ( d i a v g ∣ w i ) T g θ ( v j a v g ) , s\left(\left[\mathbf{w}_{i} ; \mathbf{d}_{i}\right], \mathbf{v}_{j}\right)=g_{\theta}\left(\mathbf{d}_{i}^{\mathrm{avg}} \mid \mathbf{w}_{i}\right)^{T} g_{\theta}\left(\mathbf{v}_{j}^{\mathrm{avg}}\right), s([wi​;di​],vj​)=gθ​(diavg​∣wi​)Tgθ​(vjavg​),

其中 g 表示将平均池化特征投影到归一化低维潜在空间中的线性变换。接下来,作者应用两个对称的 InfoNCE 损失来拉近共享潜在空间中匹配的组合表示和视觉表示:

L InfoNCE  ( x , y ) = − E ( x , y ) ∼ B log ⁡ exp ⁡ ( s ( x , y ) / τ ) ∑ y ^ ∈ B ^ exp ⁡ ( s ( x , y ^ ) / τ ) , \mathcal{L}_{\text {InfoNCE }}(x, y)=-\mathbb{E}_{(x, y) \sim B} \log \frac{\exp (s(x, y) / \tau)}{\sum_{\hat{y} \in \hat{B}} \exp (s(x, \hat{y}) / \tau)}, LInfoNCE ​(x,y)=−E(x,y)∼B​log∑y^​∈B^​exp(s(x,y^​)/τ)exp(s(x,y)/τ)​,

L M V C = 1 2 [ L InfoNCE  ( [ w ; d ] , v ) + L InfoNCE  ( v , [ w ; d ] ) ] \mathcal{L}_{\mathrm{MVC}}=\frac{1}{2}\left[\mathcal{L}_{\text {InfoNCE }}([\mathbf{w} ; \mathbf{d}], \mathbf{v})+\mathcal{L}_{\text {InfoNCE }}(\mathbf{v},[\mathbf{w} ; \mathbf{d}])\right] LMVC​=21​[LInfoNCE ​([w;d],v)+LInfoNCE ​(v,[w;d])]

其中 τ 是一个可学习的温度, B ^ \hat{B} B^包含正样本 y 和 ∣ B ^ ∣ − 1 |\hat{B}|-1 ∣B^∣−1 个从mini-batch 中抽取的负样本。

Pseudo-attribute classification (PAC)

作者发现时尚描述中有大量细粒度的属性。作者提出从所有可用的文本信息中挖掘伪属性概念,包括标题、描述和元信息。具体来说,作者通过 NLTK tokenizer 提取所有名词和形容词,只保留出现次数超过 100 次的名词和形容词,从而得到 2,232 个属性的列表。作者在上图中展示了前 50 个伪属性的直方图。可以观察到,它们都与时尚领域真正高度相关。

然后作者探讨如何利用这些挖掘出来的概念。本文的目标是让模型在预训练阶段学会显式识别这些伪属性。我们将此任务建模为一个多标签分类问题,称为伪属性分类 (PAC)。如图 2© 所示,作者会将 PAC 应用于视觉和文本模态,以便两个编码器都可以学习捕获细粒度的概念。由于这是一个弱监督学习设置,考虑到挖掘的标签可能是嘈杂的,作者利用标签平滑来生成标签 。作者使用 A 表示整个 2,232 个伪属性集,并使用 a 作为每个类的平滑软目标。例如,如果一个样本在位置 0 和 1 有两个真实标签,则 a 0 = a 1 = 0.5 a_{0}=a_{1}=0.5 a0​=a1​=0.5 而 a i = 0 ( i ≠ 0 , 1 ) a_{i}=0(i \neq 0,1) ai​=0(i=0,1)。目标如下:

L P A C = − E ( w , v ) ∼ D E a ∼ A [ a log ⁡ P θ ( a ∣ w ) + a log ⁡ P θ ( a ∣ v ) ] \mathcal{L}_{\mathrm{PAC}}=-\mathbb{E}_{(\mathbf{w}, \mathbf{v}) \sim D} \mathbb{E}_{a \sim A}\left[a \log P_{\theta}(a \mid \mathbf{w})+a \log P_{\theta}(a \mid \mathbf{v})\right] LPAC​=−E(w,v)∼D​Ea∼A​[alogPθ​(a∣w)+alogPθ​(a∣v)]

其中 θ θ θ 是可学习的参数,每一对 ( w , V ) (\mathbf{w}, \mathbf{V}) (w,V)都是从整个训练集 D 中采样的。

Masked patch feature classification (MPFC)

虽然简单的蒙版特征回归已被证明在 V+L 预训练中没有帮助,但实验发现本文的蒙版patch建模版本在​​时尚领域是有效的。具体来说,作者忽略了每个掩码patch的特征重建,而是预测离线图像标记器给出的补丁标签。为此,作者首先训练一个离散的 VAE作为具有感知损失的时尚图像的图像标记器。作者还采用指数移动平均(EMA)来更新码本,这被证明对提高码字的利用率很有用。作者通过分块掩蔽策略将 25% 的patch特征随机替换为零。由于现在每个patch都有离散标签,因此可以通过优化训练模型来预测每个掩码patch v m \mathbf{v}_{\mathbf{m}} vm​的标签,给定剩余的patch v \ m \mathbf{v} \backslash \mathbf{m} v\m:

L M P F C = − E ( w , v ) ∼ D log ⁡ P θ ( v m t ∣ v \ m , w ) \mathcal{L}_{\mathrm{MPFC}}=-\mathbb{E}_{(\mathbf{w}, \mathbf{v}) \sim D} \log P_{\theta}\left(\mathbf{v}_{\mathbf{m}}^{\mathbf{t}} \mid \mathbf{v} \backslash \mathbf{m}, \mathbf{w}\right) LMPFC​=−E(w,v)∼D​logPθ​(vmt​∣v\m,w)

其中 v m t \mathbf{v}_{\mathbf{m}}^{\mathbf{t}} vmt​是掩码patch的估计目标标签。

Image-text contrastive learning (ITC)

作者还使用 ITC 来鼓励两个单模态表示在潜在空间中接近。如图2© 所示,w 和 v 的相似性是通过两个线性变换 f 和 g 投影到潜在空间后的平均池化特征的点积来衡量的: s ( w i , v j ) = f θ ( w i avg  ) T g θ ( v j avg  ) s\left(\mathbf{w}_{i}, \mathbf{v}_{j}\right)=f_{\theta}\left(\mathbf{w}_{i}^{\text {avg }}\right)^{T} g_{\theta}\left(\mathbf{v}_{j}^{\text {avg }}\right) s(wi​,vj​)=fθ​(wiavg ​)Tgθ​(vjavg ​) 。ITC 损失为:

L I T C = 1 2 [ L I n f o N C E ( w , v ) + L InfoNCE ⁡ ( v , w ) ] \mathcal{L}_{\mathrm{ITC}}=\frac{1}{2}\left[\mathcal{L}_{\mathrm{InfoNCE}}(\mathbf{w}, \mathbf{v})+\mathcal{L}_{\operatorname{InfoNCE}}(\mathbf{v}, \mathbf{w})\right] LITC​=21​[LInfoNCE​(w,v)+LInfoNCE​(v,w)]

Masked language modeling (MLM)

在 MLM 中,作者以 15% 的概率随机屏蔽掉输入词,并将属于被屏蔽词 w m \mathbf{w} _{\mathbf{m}} wm​的所有子词替换为特殊标记 [MASK]。 MLM 的目标是通过对周围单词 w \ m \mathbf{w} \backslash \mathbf{m} w\m 和所有图像块 v 的观察,通过最小化负对数似然来预测这些掩码子词:

L M L M = − E ( w , v ) ∼ D log ⁡ P θ ( w m ∣ w \ m , v ) \mathcal{L}_{\mathrm{MLM}}=-\mathbb{E}_{(\mathbf{w}, \mathbf{v}) \sim D} \log P_{\theta}\left(\mathbf{w}_{\mathbf{m}} \mid \mathbf{w} \backslash \mathbf{m}, \mathbf{v}\right) LMLM​=−E(w,v)∼D​logPθ​(wm​∣w\m,v)

Image-text matching (ITM)

在 ITM 中,输入是图像-文本对,目标是二进制标签 z ∈ {0, 1},指示每个输入对是否匹配。作者从 ITC 计算的相似矩阵 s ( w i , V j ) s\left(\mathbf{w}_{i}, \mathbf{V}_{j}\right) s(wi​,Vj​)中对难负对进行采样,然后制作一个包含 50% 负对的小批量 H。在最后一层提取 [CLS] 的隐藏输出来表示两种模态的联合表示,然后将其输入 FC 层进行二分类。作者对 ITM 应用交叉熵损失:

L I T M = − E ( w , v ) ∼ H log ⁡ P θ ( z ∣ w , v ) \mathcal{L}_{\mathrm{ITM}}=-\mathbb{E}_{(\mathbf{w}, \mathbf{v}) \sim H} \log P_{\theta}(z \mid \mathbf{w}, \mathbf{v}) LITM​=−E(w,v)∼H​logPθ​(z∣w,v)

4.实验

用于预训练的数据集的统计信息。

使用 KaleidoBERT 中使用的协议在 FashionGen 上进行跨模态检索的结果

FashionGen上的跨模态检索全面评估结果。

FashionIQ 上的文本引导图像检索结果。

FashionGen 上的类别/子类别识别结果。

PolyvoreOutfits 上的服装互补物品检索结果。

使用 ITR、TIR、TGIR、SCR 和 OCIR 作为下游任务对预训练任务进行评估。

从 FashionViL 学习到的视觉/文本/联合表示的 T-SNE。

5. 总结

作者提出了 FashionViL,这是一种新颖的端到端大规模预训练框架,用于时尚领域的 V+L 表示学习。作者还提出了两个有效的特定于时尚的预训练任务,并引入了一种新颖的与模态无关的文本/融合编码器,用于灵活且通用的多模态架构。本文的 FashionViL 在 5 个流行的时尚相关任务上以卓越的效率实现了新的 SOTA 性能。

【项目推荐】

面向小白的顶会论文核心代码库:https://github.com/xmu-xiaoma666/External-Attention-pytorch

面向小白的YOLO目标检测库:https://github.com/iscyy/yoloair

面向小白的顶刊顶会的论文解析:https://github.com/xmu-xiaoma666/FightingCV-Paper-Reading

“点个在看,月薪十万!”

“学会点赞,身价千万!”

模型微调与应用:如何将预训练模型应用于下游任务 1.背景介绍 在深度学习领域,预训练模型已经成为了一种常见的实践。这些模型在大规模数据集上进行预训练,然后在特定任务上进行微调,以达到更好的性能。这种方法的优点在于,预训练模型可以捕获大量的通用特征,而微调则可以将这些特征适应到特定任务上。本文将详细介绍模型微调的概念,原理,以及如何将预训练模型应用于下游任务。 阅读详情

相关推荐

1、ECCV 2022:计算机视觉领域的盛会回顾

ECCV 2022 是在疫情背景下成功举办的国际计算机视觉盛会,采用线上线下结合形式,共收到5804份投稿,接收1645篇。会议通过严格的双盲评审机制和专业的组织架构,保障了学术质量。博文详细回顾了会议筹备、投稿接收、评审流程、组织结构及技术程序委员会成员,并探讨了其在学术交流、产业合作和领域发展方面的深远影响,同时总结经验并提出未来改进方向。

ik67890123的博客 143

《FashionViL: Fashion-Focused Vision-and-Language Representation Learning》中文校对版

大规模视觉-语言(V+L)表示学习的预训练已被证明在提升各种下游V+L任务上非常有效。然而,在时尚领域,现有的V+L方法存在不足,因为它们忽略了时尚V+L数据和下游任务的独特特性。在本研究中,我们提出了一个专注于时尚的V+L表示学习框架,称为FashionViL。该框架包含两个专为时尚V+L数据设计的新颖预训练任务,以充分利用时尚数据的两个内在属性。首先,与其他领域的V+L数据点仅包含单一图文对相比,时尚领域可能包含多张图片。

buyaotutou的博客 2259

zabbix 监控EMC存储

经过搜索,找到了脚本地址,该项目应该是模板原作者创建的,该项目也有zabbix模板,和上面的应该是相同的,我用的是上面的模板。./unity_get_state.py --api_ip='X.X.X.X' --api_port='443' --api_user='zabbix' --api_password='PASSWORD' --storage_name="zabbix web前端配置的主机名" --discovery。修改权限,给zabbix用户执行权限,模板调用时以zabbix用户执行。

wangyfde的专栏 3753

Fashion-MNIST模型tensorflow实现

Fashion-MNIST 数据集介绍 """Loads the Fashion-MNIST dataset. This is a dataset of 60,000 28x28 grayscale images of 10 fashion categories, along with a test set of 10,000 images. This dataset can be used as a drop-in replacement for MNIST. The class labels are:

qq_51324662的博客 374

安信可TB蓝牙模组系列 实战Ble Mesh智能照明系统搭建

本文详细介绍了如何使用安信可TB蓝牙模组系列搭建Ble Mesh智能照明系统。从硬件准备、固件烧录到手机APP组网全流程,提供了实战步骤和优化建议,特别适合智能家居开发者入门。Ble Mesh的自组网能力解决了蓝牙传输距离限制,实现全屋灯光智能控制。

weixin_30856725的博客 352

STM32的GPS数据提取程序设计说明——基于NMEA0183协议

一、硬软件平台 本次程序实现效果为对GPS信号穿送来的数据进行筛选,并将筛选后的信息通过上位机显示出来,所以此次设计所需硬件包括STM32F407、RS232转TTL、CH340USB转串口模块,注意该模块在使用前,对应的系统需要安装驱动,否则串口调试助手无法识别,另外还包括JLink下载器。 本次代码设计软件为KEIL5并结合F4固件包,上位机系统为WIN7,主机系统为WIN10。 二、算法总体思路设计 由于GPS通过RS232将数据传送给板子,因此使用两个串口资源(串口1和串口2),其中一个用来

小景的博客 6180

精读 Recommending Outfits from Personal Closet

精读 Recommending Outfits from Personal Closet研究成果1. 研究背景与意义2. 国内外研究现状3. 本文研究过程3.1 数据收集3.2 数据清洗3.3 P/N样本创建3.4 Train/Test数据集划分3.5 服装分类流程3.6 模型设置4. 研究结果 论文链接:Recommending Outfits from Personal Closet 研究成果 本文可以对任意item组成的一套服装进行打分,并基于测试用例可以达到84%的准确率; 基于人为评估也可以达到

一扣解千愁的博客 983

软考高级网络规划设计师教程(第3版)

"本书是由工业和信息化部教育与考试中心组织编写的考试用书,依据《网络规划设计师考试大纲》(2026年审定通过)编写。本书分为两篇:第一篇为网络规划与设计综合知识,其中第1章介绍计算机网络基础知识,第2章介绍网络互连与互联网,第3章介绍网络规划与设计的知识和方法,第4章介绍网络资源设备,第5章介绍网络安全技术,第6章介绍标准化和网络安全法规;第二篇为案例实践,其中第7章介绍网络规划案例,第8章介绍网络故障分析与处理案例,第9章介绍网络安全部署案例,第10章介绍网络规划与设计论文写作的指导思想和写作技巧。

鹿鸣天涯 3931

Weakly Supervised Video Representation Learning with Unaligned Text for Sequential Videos

序列视频理解,作为一项新兴的视频理解任务,由于其目标导向的特性,吸引了大量研究者的关注。本文研究了弱监督序列视频理解,其中不提供精确的时间戳级别的文本-视频对齐。我们通过借鉴CLIP的思想来解决这个任务。具体来说,我们使用一个转换器(transformer)来聚合帧级别的特征以形成视频表示,并使用一个预训练的文本编码器来分别编码每个动作和整个视频对应的文本。

weixin_46687145的博客 1146

Algorithm:【算法进阶之路】之算法面试刷题集合—数据结构的简介、最强学习路线(逻辑结构【数组-链表-栈和队列/树-图-哈希】、物理结构【元素/关系】、数据运算【十大排序/四大查找-图三大搜索-

​ Algorithm:【算法进阶之路】之算法面试刷题集合—数据结构的简介、最强学习路线(逻辑结构【数组-链表-栈和队列/树-图-哈希】、物理结构【元素/关系】、数据运算【十大排序/四大查找-图三大搜索-树三大遍历】、高级算法【枚举/回溯/递归/分治/动规/贪心】)、问题为导向的十大类刷题算法总结之详细攻略 目录 相关文章 数据结构思维导图 基本术语 一、数据结构的概述 二、数据的逻辑结构 三、数据的物理结构 四、数据的运算

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 6848

全覆盖路径规划开源项目Clean-robot-turtlebot3原理及流程概括总结

本系列文章主要介绍全覆盖路径规划开源项目Clean-robot-turtlebot3的相关内容,包含如下四篇文章,分别介绍了开源项目Clean-robot-turtlebot3流程的概括总结、ROS坐标系常用坐标及其变换、Clean-robot-turtlebot3关键函数解析等内容。

慕羽★的博客 6102

开源项目常见问题解决方案:时尚搭配兼容性学习

开源项目常见问题解决方案:时尚搭配兼容性学习 1. 项目基础介绍 该项目是一个基于深度学习的时尚搭配兼容性研究项目,主要实现了学习类型感知嵌入(Type-Aware Embeddings)来评估时尚搭配的兼容性。项目使用PyTorch框架编写,是一个用于学术研究和开发的开源项目。 2. 主要编程语言 该项目主要使用Python编程语言,基于PyTorch深度学习库。 3. 新手常见问题及解决方案 ...

gitblog_00577的博客 431

【LLM评估篇】Ceval | GAIA | MMLU benchmarks

- 一些大模型的评估模型: - 多轮:MTBench - 关注评估:agent bench - 长文本评估:longbench,longeval - 工具调用评估:toolbench - 安全评估:cvalue,safetyprompt等 本文还介绍了其他主流的大模型评估指标等及其使用

发现问题,并解决问题,批判性思维 6943

探索时尚的无限可能:Polyvore Dataset深度解析与应用探索

--- ## 项目介绍 在时尚界与AI技术的交汇点,有一款引人注目的数据集——**Polyvore Dataset**。源自于ACM MM'17的一篇重要论文“通过双向LSTM学习时尚兼容性”[[阅读论文]](https://arxiv.org/pdf/1707.05691.pdf),该数据集成为了研究时尚搭配与人工智能融合的重要基石。其原始来源为已归SSense所有的时尚网站Polyvore...

gitblog_01022的博客 826

YOLOv11改进策略【注意力机制篇】| SE、CBAM、ECA、CA、Swin Transformer等注意力机制全面解析与应用

本文详细介绍了五种主流的注意力机制及其在YOLOv11中的应用。通过合理的模块选择和位置部署,注意力机制能够显著提升目标检测性能。

QQ_778132974的博客 873

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

ECCV2022 | BEVFormer原文翻译

三维视觉感知任务,包括基于多摄像头图像的三维检测和地图分割,对于自动驾驶系统至关重要。在这项工作中,我们提出了一个名为 BEVFormer 的新框架,它利用时空变换器学习统一的 BEV 表征,以支持多种自动驾驶感知任务。简而言之,BEVFormer 通过预定义的网格状 BEV 查询与空间和时间进行交互,从而利用空间和时间信息。为了聚合空间信息,我们设计了空间交叉关注,使每个 BEV 查询都能从跨摄像头视图的感兴趣区域提取空间特征。对于时间信息,我们提出了时间自关注,以反复融合历史 BEV 信息。

usernameisnotexist的博客 1743

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ECCV2022 论文最全汇总!附下载

大家好,我整理了CVPR2022 和ECCV2022 的代码和论文https://github.com/DWCTOD/CVPR2022-Papers-with-Code-Demohttps://github.com/DWCTOD/ECCV2022-Papers-with-Code-Demo我将 CVPR2022 所有论文汇总并上传到网盘上,受到挺多小伙伴的喜欢,下载的人数不少。最近有小伙伴在问...

zero的博客 4284

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【论文简述】FlowFormer:A Transformer Architecture for Optical Flow(ECCV 2022)

【论文简述】FlowFormer:A Transformer Architecture for Optical Flow(ECCV 2022)

qq_43307074的博客 2787

探索未来的视界:时间无感知VQGAN与时间敏感Transformer——长视频生成框架(ECCV 2022)

探索未来的视界:时间无感知VQGAN与时间敏感Transformer——长视频生成框架(ECCV 2022) 去发现同类优质开源项目:https://gitcode.com/ 在视觉艺术的数字化时代,我们不断追求创新和突破。而这个名为TATS的项目,就是一次对长视频生成领域的大胆尝试,它为创建高质量、长时间的视频内容开辟了新的可能。该项目利用时间无感知VQGAN(Vector Quantized ...

gitblog_00035的博客 468

ECCV2022-RIFE 开源项目教程

ECCV2022-RIFE 项目的目录结构如下: ``` ECCV2022-RIFE/ ├── checkpoints/ ├── configs/ ├── dataset/ ├── demo/ ├── inference_video.py ├── LICENSE ├── models/ ├── README.md ├── requirements.txt ├── setup.py ├── tra...

gitblog_01197的博客 527

ECCV2022论文列表(中英对照)

ECCV2022论文列表(中英对照)

dovings的博客 1万+

新鲜出炉!ECCV2022 107个开源数据集合辑,全球 AI 研究热点一网打尽

今天小编从数据集的角度入手,给大家精选了ECCV2022发布的8个数据集,囊括了庞大的标注数据和新奇又有趣的任务,欢迎大家速速来围观!

OpenDataLab的博客 1770

如何看待与评价ECCV2022的审稿结果?

hzwer(旷视科技算法研究员)回答:现在中一篇论文挺不容易的,研究一点小问题几年就过去了。我们这篇 RIFE 成文于 20 年 11 月,是我本科毕业论文的扩展,star 都攒了 2.5k 了,投了第五次才投中。改了 n 个版本 pre-rebuttal 得分 224 惊险过线 。GitHub - hzwer/ECCV2022-RIFE: Real-Time Inte...

weixin_40920183的博客 1098

什么是人工智能领域的“下游任务”

这些大型预训练模型通常是在大量无标注或弱标注的数据上通过自监督学习(self-supervised learning)的方式预先训练得到的,目的是捕获语言或数据中的通用表示(representations)。此外,预训练模型还允许研究人员和开发者利用有限的标注数据来训练模型,降低了对大规模标注数据的依赖。这些任务通常需要利用预训练模型学到的通用表示,通过微调(fine-tuning)或特征提取(feature extraction)的方式,来适应特定的应用场景。

记录个人日常所学所思 1015

CV中的上游任务和下游任务是什么?

上游任务是研究者,下游任务是应用者。上游在研究模型,为用户提供模型;下游在研究如何提升模型在具体应用中的各项性能指标。

qq_45026637的博客 2322

预训练模型

预训练模型是一种深度学习的方法(强化学习中就基本没有预训练方法),它利用大量的无标注数据来训练一个通用的模型,然后在特定的任务上进行微调,以适应不同的场景和需求。比如NLP中的BERT,CV中的ResNet、Swin Transformer。预训练模型可以学习到语言的通用知识和特征,提高模型的泛化能力和鲁棒性。预训练-微调方法指的是首先在大数据集上训练得到一个具有强泛化能力的模型(预训练模型),然后在下游任务上进行微调的过程。

qq_44722189的博客 644
上一篇: 为什么面对读博大家都那么悲观?
下一篇: 天才少年稚晖君 | 【保姆级教程】个人深度学习工作站配置指南
FightingCV
博客等级 码龄9年 154粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值