个人论文阅读笔记
论文地址:https://arxiv.org/pdf/2104.02691.pdf
项目地址:https://www.robots.ox.ac.uk/~vgg/research/lvs/
摘要
主要目标: 在没有标注的情况下,在视频中定位可视的声源
主要工作:
- 通过训练网络来显式地区分有挑战性的图片片段,可以显著提高定位效果
- 引入了一个benchmark VGG-Sound Source
结果:在Flicker SoundNet和VGG-SS上取得state-of-the-art
背景
利用音视频之间自然的共现关系来学习声源定位已经有很多的工作。
- 传统的方法利用比较浅的概率模型或CCA来解决定位问题
- 深度学习方法一般用一个双流网络,利用对比损失来训练来学习音视频之间的对应关系或同步性。
- 另外还有一些方法通过声源分离(结合视听)来实现,但是这类方法依赖于单声源的视频。
之前方法定位结果基本比较粗糙
本文解决思路: 显式地在视频帧中寻找声音的空间定位
这和目标检测有一定的相似性,整个图像一般只有一小块区域包含我们需要的发声物体,其他大部分都是和声音无关的背景。想要学习到一个精确的检测器,需要显式地处理难负样本。
不过不同的是定位问题多缺少监督,以及最后追求的是一个图片区域的分割所以不需要用bounding box。
由于缺少监督,作者提出了一种自动背景挖掘技术,把和给定声音相关性低的区域作为负集以用来对比学习。
对于bounding box的问题,不再用这种硬边界,一些区域可以是“不确定的”,引入Tri-map
Benchmark
方法
大致流程:先将音视频对输入双流网络得到特征 f 和 g, 然后计算他们之间的余弦相似性得到一个heatmap。然后应用软阈值得到positive和negative区域。图上的(c)展示了最终的Tri-map和不确定区域。
学习的过程是利用对比学习,就需要构造正样本和负样本。
一个比较弱的负样本可以通过关联声音和其他不相关的视频中的位置得到
一个难的负想本可以通过关联声音和他所在的视频中的背景或不发声的区域得到
但是获取难负样本很困难,因为没有标注,没法知道那个区域是正样本(发声)和负样本(不发声)
如果在有标注的情况下
训练集记为
D
=
{
d
1
,
d
2
,
.
.
.
,
d
k
}
D=\{d_1, d_2,...,d_k\}
D={d1,d2,...,dk}
其中
d
i
=
(
X
i
,
m
i
)
d_i = (X_i,m_i)
di=(Xi,mi)
X
i
X_i
Xi表示一个音频对
(
I
i
,
a
i
)
(I_i,a_i)
(Ii,ai)
m
i
m_i
mi是一个分割的mask(大小h,w),即对于发声区域值为1,不发声区域值为0
在训练过程中,先通过双流网络获得视觉特征
V
i
V_i
Vi(大小c,h,w)和音频特征
A
i
A_i
Ai(大小c)
然后计算它们之间的余弦相似性
S
i
→
i
S_{i \rightarrow i}
Si→i,利用InfoNCE对比损失进行优化
Loss:
L
=
−
1
k
∑
i
=
1
k
[
l
o
g
e
x
p
(
P
i
e
x
p
(
P
i
)
+
e
x
p
(
N
i
)
]
L=-\frac{1}{k} \sum_{i=1}^k[log\frac{exp(P_i}{exp(P_i)+exp(N_i)}]
L=−k1∑i=1k[logexp(Pi)+exp(Ni)exp(Pi]
自监督的情况下(无标注)
训练集记为
D
=
{
X
1
,
X
2
,
.
.
.
,
X
k
}
D=\{X_1, X_2,...,X_k\}
D={X1,X2,...,Xk},没有标注
m
i
m_i
mi
依然可以算音视频特征之间的相关图
S
i
→
i
S_{i \rightarrow i}
Si→i
然后构造一个pseudo-ground-truth mask
但是这是个阶跃函数不可微,所以还要对它进行平滑
由于构造的是一个伪标签,所以很可能是存在噪声的,所以除了“正”区域和“负”区域外,还设置了“忽视”区域,即不确定的区域。在图像分割领域经常被叫做Tri-map。
训练目标:
ϵ
p
>
ϵ
n
\epsilon_p > \epsilon_n
ϵp>ϵn
假设
ϵ
p
=
0.6
,
ϵ
n
=
0.4
\epsilon_p=0.6,\epsilon_n=0.4
ϵp=0.6,ϵn=0.4, 意味着相关性分数大于0.6的是正区域,小于0.4的是负区域,之间的是不确定区域
Benchmark
之前(Flickr SoundNet)存在的问题:
- 总的数据量和类别都比较少
- 不是对整个视频片段都有标注
- 没有提供目标的类别标注
作者提出了新的VGG-SS,半自动得标注bounding boxes,具体咋标注的详见论文
实验&结果
实验数据集: Flickr SoundNet和VGG-SS
训练的时候选取视频中间的视频帧(单帧+音频段)
评价指标:cIoU,AUC
定量结果
在Flicker SoundNet testset上的结果
消融实验:
再VGG-SS144K训练,在VGG-SS testset上测试的结果:
定性结果
对比:
泛化性
总结
-
本文解决的问题是什么?
视频帧中的声源定位不够精确 -
本文解决问题的技术手段是什么?
利用对比学习训练,构建正样本和难负样本,并引入不确定区域,使模型更加灵活
迁移到自监督学习,由于没有标注,利用可微阈值构造伪标签
引入新的benchmark -
结果怎么样?
效果好于之前的方法,定位更精准了 -
其他问题
目前好几篇文章都是利用单帧做的,没有考虑motion,引入motion是否能有好的结果?(存疑)