论文阅读笔记(audio-visual相关)—Co-Separating Sounds of Visual Objects

本文是2019 ICCV的文章。
论文地址:http://vision.cs.utexas.edu/projects/coseparation/coseparation-iccv2019.pdf
Code:https://github.com/rhgao/co-separation
本文作者还有一篇文章是投在CVPR 2019的,用的是相同的框架,但是解决的问题不同,可以参考来看。
论文:http://openaccess.thecvf.com/content_CVPR_2019/papers/Gao_2.5D_Visual_Sound_CVPR_2019_paper.pdf
Code:https://github.com/facebookresearch/2.5D-Visual-Sound

下面来说一下这篇论文的主体思想。
这篇文章主要采用的方法以视觉信息作为指导监督信息,完成混合音频中的声音分离。

主体框架: 在这里插入图片描述
问题定义:
视频V中含有N个object,即 V = { O 1 … , O N } V=\{O_1…,O_N\} V={O1,ON}。作者假定每一个视频中的物体都是发声的,即都是声源,即V的音频信号 x ( t ) = ∑ n = 1 N s n ( t ) x(t)=\sum\limits_{n=1}^N s_n (t) x(t)=n=1Nsn(t)是这样构成的。任务目标就是将对应于 O n O_n On的音频信号 s n ( t ) s_n (t) sn(t)分离出来。
目前对于声源分离的任务,自监督的普遍做法就是采用“混合-分离”这样的训练策略。

网络计算的整体步骤为:
给出两个视频输入 V 1 V_1 V1 V 2 V_2 V2,对应的音频信号为 x 1 ( t ) x_1 (t) x1(t) x 2 ( t ) x_2 (t) x2(t)。作者采用预训练的目标检测模型来找到两个视频中的物体。然后混合两个音频: x m ( t ) = x 1 ( t ) + x 2 ( t ) x_m (t)=x_1 (t)+x_2 (t) xm(t)=x1(t)+x2(t),最后将混合的音频转为频谱图。这是音频部分的输入。视觉部分的输入是通过resnet18网络,提取之前目标检测模型得到的物体的视觉特征,之后再经过处理,得到视频部分的输入。这就是分离网络的两部分输入信息。视觉部分的输入和音频部分输入经过下采样过程后数据进行连接,再计算上采样过程,最终得到掩膜。将掩膜与原始频谱图相乘,得到分离出的频谱,再经过istft变为波形。

具体细节部分:
视觉部分:网络采用resnet18模型作为物体视觉信息的特征提取器。网络的输入是224×224×3的标注图像输入格式,采用经过四个残差块计算后的feature作为提取的feature。此时feature map的大小为(H/32)×(W/32)× D,即7×7×512。然后将feature map经过conv1×1降低维度,得到7×7×128,再将feature打平,经过一层FC,得到512维的特征向量。
音频部分:网络采用的是7层的U-NET结构,经过前面的下采样过程,得到音频部分的feature map是512×2×2的。为了对应音频部分和视觉部分,将视觉的特征向量复制2×2倍,然后进行连接(512+512)×2×2。再进行上采样过程,得到掩膜M。
以上为声音分离器的计算过程。
网络的训练采用的是“混合-分离”模式。
输入两个视频,对应的音频分别为:
在这里插入图片描述
这是在时域中的形式,但是在频域中会存在一些干扰,因此假设有以下的频域中的关系:
在这里插入图片描述
X V 1 X^{V_1} XV1 表示的是V1的频谱图,每一个混合音频的频谱图是由每个发生物体的声音转换为频谱之后叠加而成的。这种关系是一种近似关系,原因就是实际会存在一些干扰。
每个发声物体的频谱是由声音分离器来得到的。在训练中,为了评价这种分离的效果,引入了下面的共分离损失函数:
在这里插入图片描述
通过最小化这个损失,就可以使得分离的发生物体的声音叠加之和更接近混合的声音。
形式上又可以近似为:
在这里插入图片描述
这里的含义为:
在这里插入图片描述
作者在文中有说明,这两个loss其含义上是一样的效果,这是因为频谱就是由掩膜参与计算后分离出来的。但是实际在训练过程中第二个掩膜形式的loss更容易学习。这里我觉得是因为多了一次计算的问题,产生了误差。
作者除了采用这样的一个loss之外,还引入了另一个物体一致性的loss。这是因为,作者认为,如果发声物体的声音能够被很好的分离,那么针对于其频谱的声音分类应该与指导频谱分离的视觉特征的类别是一致的。具体是引入了另一个resnet18的模型作为声音分类器使用。这个resnet18是在imagenet上预训练的,只是为了加快收敛速度。声音频谱经过resnet计算后,再经过FC得到对于各类别的输出。最终的损失是采用的交叉熵:
在这里插入图片描述
这里的C表示的是类别数目。作者表示这些声音的分类是在训练过程中发现的,而不是将模型通过预训练模型给出的。
最终的loss为:
在这里插入图片描述
加入了超参数来平衡两个损失。

训练过程:
在这里插入图片描述
在MIT MUSIC 数据集上的结果:
在这里插入图片描述
在AudioSet上的结果:
在这里插入图片描述

总结:
这篇文章新颖的地方在于跨模态信息的利用方式,视觉信息是结合在音频信息经过encoder之后的位置,之前的方法中我还没有看到有类似的做法。而作者也证明了这种结合方法是有效地。
这篇文章的框架在之后的工作中也有被使用到,比如the sound of motions这篇文章,以及2020年的Music Gesture for Visual Sound Separation。这些文章都有借鉴这种结合的时机,但是结合的方式上都有做出了改进,毕竟这种直接concatenate的方式显得有些粗糙。
以上仅是自己一些粗浅的理解,有不对之处还请大家不吝指出。
谢谢。

另外,说一下code的问题,我通过复现作者的代码后发现,文章在分离solo+solo的数据时,效果还可以,但是直接分离MIT MUSIC中的duet数据时,效果就没有那么理想了。可能也是因为训练时duet的数据没有GT的缘故。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值