当前位置: 首页 > article >正文

【论文笔记】Towards Online Continuous Sign Language Recognition and Translation

🍎个人主页:小嗷犬的个人主页
🍊个人网站:小嗷犬的技术小站
🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。


基本信息

标题: Towards Online Continuous Sign Language Recognition and Translation
作者: Ronglai Zuo, Fangyun Wei, Brian Mak
发表: EMNLP 2024
arXiv: https://arxiv.org/abs/2401.05336

基本信息

摘要

研究连续手语识别(CSLR)对于弥合聋人和听力正常人士之间的沟通差距至关重要。

许多先前的研究已经使用连接主义时间分类(CTC)损失来训练他们的模型。

在推理过程中,这些基于CTC的模型通常需要整个手语视频作为输入来做出预测,这个过程被称为离线识别,它存在高延迟和大量内存使用的问题。

在本工作中,我们迈出了在线CSLR的第一步。我们的方法包括三个阶段:

  1. 开发手语字典;
  2. 在字典上训练孤立手语识别模型;
  3. 对输入手语序列采用滑动窗口方法,将每个手势片段输入到优化后的模型进行在线识别。

此外,我们的在线识别模型可以通过集成词义到文本网络来扩展以支持在线翻译,并可以增强任何离线模型的表现。

通过这些扩展,我们的在线方法在三个流行的基准测试中实现了新的最先进性能,涵盖了各种任务设置。

代码和模型可在https://github.com/FangyunWei/SLRT找到。

Illustration of (a) the offline recognition scheme and (b) the proposed online framework

主要贡献

  • 一个框架。我们提出了一种创新的在线CSLR框架,该框架将ISLR模型滑动到手语视频流上。为了增强ISLR模型的训练,我们进一步提出了几种技术,如手语增强、gloss-level训练和显著性损失。
  • 两个扩展。首先,我们通过集成 wait- k k k gloss-to-text 网络实现了在线SLT。其次,我们通过一个轻量级适配器扩展了在线CSLR框架,以提升离线CSLR模型的表现。
  • 性能。我们的在线方法以及两个扩展在三个广泛采用的基准测试中建立了新的最先进结果:Phoenix-2014、Phoenix-2014T和CSL-Daily,在各种任务设置下。

方法

Overview of our methodology

Dictionary Construction

Sign Segmentor

采用预训练的CSLR模型作为Sign Segmentor,将每个连续的手语视频分割成其组成的独立手语,称为伪真实值。

Sign Augmentation

通过裁剪每个伪真实值周围的片段来创建增强手语。然后,分割的独立手语(伪真实值)和增强手语都被纳入我们的词典中。

ISLR Model

根据TwoStream-SLR,主干网络由两个并行的S3D网络组成,分别建模RGB手语视频和人体关键点。输入手语视频跨越 W W W 帧。

Mini-Batch Formation

在传统的分类任务中,从训练集中随机选择实例以形成小批量。这种采样策略被称为instance-level sampling。在本工作中,我们通过实证发现,gloss-level sampling(我们的默认策略)能获得更好的性能。

如图2b所示,我们最初从词典中采样 M M M 个gloss。对于每个gloss,我们再采样 K K K 个实例以形成一个迷你批次,从而得到一个有效的批次大小为 M × K M \times K M×K

在我们的实现中,每个gloss采样的 K K K 个实例可以是伪真实值手语或其增强。

我们的技术与 batch augmentation (BA) 具有相似的精神,后者多次增强一个迷你批次。

我们的gloss-level sampling通过在伪真实值手语周围使用“时间抖动”的实例来形成训练批次,而不是像BA那样直接增强伪真实值。

尽管如此,我们的采样策略仍然保留了BA的好处,例如减少方差降低。

Loss Functions

这段话的翻译如下,并用LaTeX表示其中的符号:

损失函数。给定一个大小为 M × K M \times K M×K 的小批量,令 p j i p_{j}^{i} pji 表示具有gloss索引 i ∈ [ 1 , M ] i \in [1, M] i[1,M] 和实例索引 j ∈ [ 1 , K ] j \in [1, K] j[1,K] 的样本的后验概率。

我们ISLR模型的分类损失由两部分组成:

  1. M × K M \times K M×K 个实例上应用的实例级交叉熵损失( L c e I \mathcal{L}_{ce}^{I} LceI);
  2. M M M 个gloss上应用的gloss级交叉熵损失( L c e G \mathcal{L}_{ce}^{G} LceG),以学习更具区分性的表示。

这两个损失可以公式化为:

L c e I = − 1 M × K ∑ i = 1 M ∑ j = 1 K log ⁡ p j i \mathcal{L}_{ce}^{I} = -\frac{1}{M \times K} \sum_{i=1}^{M} \sum_{j=1}^{K} \log p_{j}^{i} LceI=M×K1i=1Mj=1Klogpji

L c e G = − 1 M ∑ i = 1 M log ⁡ 1 K ∑ j = 1 K p j i \mathcal{L}_{ce}^{G} = -\frac{1}{M} \sum_{i=1}^{M} \log \frac{1}{K} \sum_{j=1}^{K} p_{j}^{i} LceG=M1i=1MlogK1j=1Kpji

Saliency Loss

我们的ISLR模型处理具有固定长度的手势片段,但这些片段中的前景区域可能会有所不同。

为了解决这个问题,我们设计了一种显著性损失(Saliency Loss),鼓励模型优先处理前景手势,忽略背景手势(共发音)。

提出的显著性损失的示意图如图2c所示。

具体来说,对于一个训练样本 s ^ = ( V , t ^ b , t ^ e , g ) \hat{s} = (\mathbf{V}, \hat{t}_b, \hat{t}_e, g) s^=(V,t^b,t^e,g),它是伪真实值 s = ( V , t b , t e , g ) s = (\mathbf{V}, t_b, t_e, g) s=(V,tb,te,g) 的增强实例,我们将其输入到我们的 ISLR 模型中。

这一过程生成了其编码特征 f ∈ R T s / α × C \boldsymbol{f} \in \mathbb{R}^{T_s/\alpha \times C} fRTs/α×C,其中 T s = t ^ e − t ^ b + 1 T_s = \hat{t}_e - \hat{t}_b + 1 Ts=t^et^b+1 是片段长度, α = 8 \alpha = 8 α=8 是神经网络的下采样因子, C C C 表示通道维度。

接下来,我们将 f \boldsymbol{f} f 上采样到 f u ∈ R β T s / α × C \boldsymbol{f}_u \in \mathbb{R}^{\beta T_s/\alpha \times C} fuRβTs/α×C,使用上采样因子 β \beta β(默认 β = 4 \beta = 4 β=4)。

总体缩放因子因此变为 β / α \beta/\alpha β/α

不失一般性,假设 t ^ b ≤ t b ≤ t ^ e ≤ t e \hat{t}_b \leq t_b \leq \hat{t}_e \leq t_e t^btbt^ete,前景区域从第 t b t_b tb 帧开始,到第 t ^ e \hat{t}_e t^e 帧结束。

然后,我们可以通过沿时间维度池化 f u [ ⌈ β t b / α ⌉ : ⌊ β t ^ e / α ⌋ , : ] \boldsymbol{f}_u[\lceil \beta t_b / \alpha \rceil : \lfloor \beta \hat{t}_e / \alpha \rfloor, :] fu[⌈βtb/α:βt^e/α,:] 来生成前景特征 f f ∈ R C \boldsymbol{f}_f \in \mathbb{R}^C ffRC

最后,显著性损失 L s \mathcal{L}_s Ls 实现为从 f f \boldsymbol{f}_f ff 生成的概率上的交叉熵损失。

Overall Loss Function

整体的损失函数实现为实例和gloss级别上的分类损失和显著性损失的总和:

L = L c e I + L c e G + L s I + L s G . \mathcal{L} = \mathcal{L}_{ce}^I + \mathcal{L}_{ce}^G + \mathcal{L}_s^I + \mathcal{L}_s^G. L=LceI+LceG+LsI+LsG.

Online Inference

如图2d所示,在线推理是通过滑动窗口策略实现的,步长为 S S S

通常,滑动窗口方法会产生重复预测,因为它们可能会多次扫描相同的手势。

因此,后处理总是必要的。我们在线后处理的伪代码:

Post-processing for online inference

该算法有两个关键功能:

  1. 基于投票的去重(第 12 行)
  2. 背景消除(第 13 行)

Extensions

Online Sign Language Translation

如图3所示,我们在在线 CSLR 模型上附加了一个额外的gloss-to-text网络,并采用了 wait- k k k 策略,以实现在线 SLT。

Appending a gloss-to-text network with the  wait-k policy onto our online CSLR model enables online SLT

这个 wait- k k k 策略在看到 k k k 个gloss后( k = 2 k=2 k=2)启用文本预测。

在推理阶段,由我们的在线 CSLR 模型生成的gloss预测被依次输入到优化良好的gloss-to-text网络中,以生成翻译结果。

Promote Offline Models with Online Model

我们的在线 CSLR 模型也可以提升离线模型的性能。

如图4所示,考虑两个优化良好的 CSLR 模型:我们的在线模型和一个现有的离线模型。

Boosting an offline model with our online  model

f ^ \hat{\boldsymbol{f}} f^ f ~ \tilde{\boldsymbol{f}} f~ 分别表示由在线模型和离线模型提取的特征。

为了首先对齐这两个特征的维度,我们在在线模型上附加了一个轻量级适配器网络,该网络包括一个下采样层和一个两层 MLP。

这个网络将 f ^ \hat{\boldsymbol{f}} f^ 投影到 f ~ \tilde{\boldsymbol{f}} f~,匹配 f ~ \tilde{\boldsymbol{f}} f~ 的维度。

然后,我们使用加权求和操作融合 f ^ \hat{\boldsymbol{f}} f^ f ~ \tilde{\boldsymbol{f}} f~ f f u s e = λ ⋅ f ^ + ( 1 − λ ) ⋅ f ~ \boldsymbol{f}_{fuse} = \lambda \cdot \hat{\boldsymbol{f}} + (1 - \lambda) \cdot \tilde{\boldsymbol{f}} ffuse=λf^+(1λ)f~,其中 λ \lambda λ 是一个默认设置为 0.5 的权衡超参数。

最后, f f u s e \boldsymbol{f}_{fuse} ffuse 被输入到一个分类头中,该分类头由 CTC 损失监督。

训练过程非常高效,因为在线和离线模型的参数都被冻结。

我们采用 TwoStream-SLR作为离线模型,因为其卓越的性能。

实验

主实验

Comparison with other online CSLR methods across three benchmarks

Comparison with other online SLT methods  on two benchmarks

Comparison with other offline CSLR methods

Comparison with offline/online TwoStreamSLR in latency and memory cost (GB) on the P-2014T  dev set

消融实验

Ablation studies for the major components

Study on sign segmentor

Study on sign augmentation strategies

Study on fusion weight λ

总结

在此工作中,我们开发了一个实用的在线CSLR框架。

首先,我们构建了一个与目标数据集词汇表相匹配的手语字典。

为了丰富训练数据,我们通过裁剪每个手语周围的片段来收集增强手语。

为了实现在线CSLR,我们在字典上训练了一个ISLR模型,使用标准分类损失和引入的显著性损失。

在推理过程中,我们通过实时将每个滑动窗口输入到优化良好的ISLR模型中,进行在线CSLR。

引入了一种简单而高效的后期处理算法,以消除重复预测。

此外,还提出了两个扩展,分别用于在线SLT和增强离线CSLR模型。

随着扩展,我们的框架在三个基准测试中实现了在各种任务设置下的SOTA性能。


http://www.kler.cn/a/417114.html

相关文章:

  • 亚马逊API拿取商品详情
  • 什么是默克尔树(Merkle Tree)?如何计算默克尔根?
  • YOLOv9改进,YOLOv9引入TransNeXt中的ConvolutionalGLU模块,CVPR2024,二次创新RepNCSPELAN4结构
  • ununtu源source的个人笔记
  • 【算法day4】链表:应用拓展与快慢指针
  • 如何使用ST7789展现图片?[ESP--4]
  • 【JAVA进阶篇教学】第二十篇:如何高效处理List集合数据及明细数据
  • 刷LeetCode hot100--1.哈希表
  • 【系统架构设计师】高分论文:论信息系统的安全与保密设计
  • 智能化图书馆导航系统方案之系统架构与核心功能设计
  • 总结贴:Servlet过滤器、MVC拦截器
  • 安装MySQL 5.7 亲测有效
  • Android开发仿qq详情下拉头像变大
  • 力扣215:数组中第K大的元素
  • 聊聊Flink:这次把Flink的触发器(Trigger)、移除器(Evictor)讲透
  • Ozone的元数据系统架构演进和优化
  • hint: Updates were rejected because the tip of your current branch is behind!
  • 小程序跳转到本页面并传参
  • 【Zookeeper】三,Zookeeper的安装与基本操作
  • 40分钟学 Go 语言高并发:pprof性能分析工具详解
  • Pytest框架学习18--conftest.py
  • Java 虚拟机:承载 Java 生态的神奇魔盒
  • AWS CLI 操作指南
  • 腾讯阅文集团Java后端开发面试题及参考答案
  • Redis和MySQL保持一致性的延迟双删(Delay Double Delete)策略
  • docker compose 快速搭建Nacos单节点测试环境(mysql 版)