Seeing Voices and Hearing Faces: Cross-modal biometric matching(CVPR 2018)

跨模态生物特征匹配
本文探讨了跨模态生物特征匹配,特别是声音与人脸之间的匹配。通过深度学习模型,研究了静态图像、动态视频与音频间的关联,揭示了人脸与声音间潜在的相似性。

Seeing Voices and Hearing Faces: Cross-modal biometric matching
Paper PDF

Introduction

提出问题->研究现状->可行性分析->建立模型->相关实验->合理解释

如果你只听过一个人的声音,你能认出他的脸吗?如果你只看到他们的脸,你能认出他们的声音吗?作为人类,我们可能“看到声音”或“听到面孔”,通过形成一个人的心理图像在听到他们的声音后,或反之亦然。这中跨模态(脸和声音)识别,或“跨模态生物特征匹配”,是本论文的主题。

如下图所示,本文针对这个主题提出了两个相关的任务:首先,给定一张人脸的图像或视频,确定它对应两个或多个声音中的哪一个;第二,相反地,给定一个声音的音频片段,确定它对应两个或多个人脸图像或视频中的哪一个。文中仅仅针对第二个任务即V-F做了详细的实验和相关分析,并指出上述两个任务的对称性,可以用同一模型来进行分析。
在这里插入图片描述

与以往研究声音和视觉之间的相关性,如发声和唇部运动之间的关系有所不同,本文侧重于将一种模式的特征统计模型映射到另一种模式的特征统计模型。

这一任务之所以可能是由于两种模式存在着所共有特定的、潜在的特性因素:如,性别、年龄、国籍、口音等这和他的容颜以及声音都有关系。不仅这些,还可能存在另外一些细微的我们人类无法感知的生物特征联系。

作者利用深度学习的方法,提出了三种网络模型结构分别探究静态图像以及视频对音频模态之间的相关性。用VGG-Fac和Voxceleb数据集做了V-F任务的实验。实验结果显示了这种跨模态匹配的可行性,并指出 'perhaps our faces are more similar to our voices than we think.'


Innovation

  1. 这种不同场景下的面部特征和声音特征匹配,本事就是一种探索性问题。
  2. 在N-way模型中提出一种‘mean face’的方法来使得streams之间不相互独立。详见下文

Method

Cross-Modal Models

正如上文所提到的,我们将任务定义如下:
x = { v , f 1 , f 2 } x = \{v, f_1, f_2\} x={v,f1,f2}表示由一个音段 v v v和两个人脸图像 f 1 f_1 f1 f 2 f_2 f2组成的集合。每个输入集 x x x包含一个positive face和一个negative face,如果 f i f_i fi与声音 v v v属于同一身份的人,则将其定义为positive face,否则为negative face。在这种情况下,问题可以转化为一个二分类问题,其中目标是预测positive face的位置 y ∈ { 1 , 2 } y \in \{1, 2\} y{1,2}

为了进一步研究,本文进行了以下三个方面的研究实验:

  1. 静态匹配,仅仅使用静态人脸图像进行匹配
  2. 动态匹配,涉及到出现人脸的相关演讲视频
  3. N-way 分类, 需要分辨的人脸数量大于2

Input Representations

  • Voice: 语音流的输入是直接从原始音频中提取的short term频谱图。
  • Statics Faces: RGB图像,从源图像裁剪而来,只包含人脸周围的图像区域。
  • Dynamic Faces: 采用dynamic image表示,该动态图像表示通过学习给定帧序列像素上的排名机来计算视频序列的固定大小表示。

Architectures

  • Static Architecture
  • Dynamic-Fusion Architecture
  • N-way Classification Architecture

在这里插入图片描述

Datasets

在这里插入图片描述
就此任务而言,重要的是,如果同时提取音频和视频数据,则应尽可能减少基于视听同步的任何相关性或互信息(例如:基于准确的嘴巴运动) 句子的词汇内容,说话者的情绪状态等)。 尽管这些因素本身很有趣,但是它们并不构成用于人员验证的交叉模式生物特征识别,因此,利用它们的存在来解决匹配任务不是本研究的目的。 我们希望仅对身份敏感。 因此,我们确保单个三元组中的音频片段和面部轨迹不来自同一视频。

为了更深入地分析提出的方法,本文从这些人物的维基百科主页上获得了数据集中说话人的性别和国籍等标签。并使用这些标签来构建一个更有挑战性的测试集,其中每组包含相同性别的演讲者,广泛的年龄范围(30-50岁之间的演讲者)和国籍(美国)。


Experiment

Evaluation Measures

定义测试集 D = { x n , y n } n = 1 N D=\{x_n, y_n\}_{n=1}^N D={xn,yn}n=1N,其中N代表样本的数量。 x n ( x , y ) = { v ( i ) , f ( i ) , j ( j ) } x_n^{(x,y)}=\{ v^{(i)}, f^{(i)}, j^{(j)}\} xn(x,y)={v(i),f(i),j(j)}, i , j ∈ I i,j \in I i,jI, I I I是身份集。

  • Identification Accuracy
    A I = 1 N ∑ n ∣ g ( x n ( i , j ) ) = y n ∣ A_I = \frac{1}{N} \sum_{n} \left| g(x_n^{(i,j)}) = y_n\right| AI=N1ng(xn(i,j))=yn
    其中, g ( ⋅ ) g( \cdot) g() 是网络学习的映射。

  • Marginal accuracy

m A ( s ) = 1 N s ∑ i = s ∨ j = s ∣ g ( x n ( i , j ) ) = y n ∣ m_A(s) =\frac{1}{N_s} \sum_{i=s \vee j=s} \left| g(x_n^{(i,j)}) = y_n\right| mA(s)=Ns1i=sj=sg(xn(i,j))=yn
其中 N s : = ∣ { x n ( i , j ) , i = s ∨ j = s } ∣ N_s :=\left| \{x_n^{(i,j)}, i=s \vee j=s\} \right| Ns:={xn(i,j),i=sj=s} 代表含有身份s的三元组的数量。

Result

在这里插入图片描述
在这里插入图片描述

Ablation Analysis

位列研究捕捉发声模式的最佳方法是什么,我们试验了三种不同的方法将动态特征融入到我们的模型中:

  1. Single Dynamic Image(SDI):通过approximate rank pooling.,在每个人脸轨迹上生成一个动态图像, 如图5所示:
  2. Multiple Dynamic Image(MDI):利用均匀采样,从m个连续帧的中计算出k个动态图像序列
  3. “Dense” Dynamic image:以固定步幅采样(此时m保持在10,但k取决于视频的长度)

实验结果如下:
在这里插入图片描述

在这里插入图片描述


Conclusion

在本文中,我们引入了人脸与声音的交叉模态匹配任务,并提出了相应的CNN架构来解决这一问题。在只有两个人脸需要识别的情况下,该模型能够在简单的人脸上匹配人类的表现并且再当说话人对具有相同的性别、年龄和国籍时,性能超越人类的表现。这些实验的结果有力地证明了交叉模态生物特征信息的存在,从而得出这样的结论:也许我们的脸和我们的声音更相似。

<think>Hmm, the user is asking about an SQL error "ORA-00984: column not allowed here" in Chinese, and they've provided strict formatting requirements for my response. First, I need to properly diagnose this Oracle error. ORA-00984 typically occurs when trying to insert literal values incorrectly, like placing a string directly in VALUES without quotes or using columns where literals are expected. The user might be a junior developer working on database insertion scripts. I recall this error often happens in two main scenarios: forgetting quotes around string literals in INSERT statements, or accidentally using column names when literal values are required. Since they're seeing this in production code, they're probably frustrated and need a quick solution. For my response structure: - Must explain the error clearly in Chinese first - Provide concrete examples since code samples help most with syntax errors - Include solutions for different cases (missing quotes vs column misuse) - End with exactly "§§相关问题§§" and 3-5 follow-up questions The follow-up questions should cover related troubleshooting paths: 1) Asking about their specific SQL statement since context matters 2) Explaining string literal syntax rules which confuse many beginners 3) Checking column name validity which could be a hidden issue 4) Suggesting dynamic SQL pitfalls since that's a common advanced mistake I'll format the code examples properly with Chinese comments as shown in their sample. Need to ensure the final output has no line breaks after "§§相关问题§§" and stays within their required format. </think>### ORA-00984错误解析 **错误原因**:Oracle抛出ORA-00984表示在SQL语句的无效位置使用了列名。通常发生在以下场景: 1. `INSERT`语句的`VALUES`子句中直接使用列名而非字面值 ```sql -- 错误示例(列名不能出现在VALUES中) INSERT INTO employees (id, name) VALUES (emp_id, 'Alice'); -- ✘ 此处emp_id是列名,非法 ``` 2. 在`SELECT`子句外的位置错误引用列名(如`WHERE`中使用未定义的列别名) **解决方案**: 1. **`INSERT`语句修正** → 用具体值或变量替代列名 ```sql -- 正确示例 INSERT INTO employees (id, name) VALUES (1001, 'Alice'); -- ✔ 使用字面值 ``` 2. **别名修正** → 避免在`WHERE`/`GROUP BY`中引用`SELECT`新定义的别名 ```sql -- 错误:WHERE引用SELECT阶段的别名 SELECT name AS employee_name FROM employees WHERE employee_name = 'Alice'; -- ✘ ORA-00984 -- 正确:改用原始列名 SELECT name AS employee_name FROM employees WHERE name = 'Alice'; -- ✔ ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值