Video retrieval based on deep convolutional neural network 论文阅读
《Video retrieval based on deep convolutional neural network》论文中采用CNN提取高级语义特征,输入的三个视频共享一个cnn参数,经过cnn得到三个视频各自的特征([batch,16,Nd]),根据我的理解,FC1的上一层是各视频特征的压缩,由[batch,16,Nd]压缩到了[batch,16*Nd]。此时的特征再经过一个FC1层,输出的特征的维度由[batch,16*Nd]转化为[batch,bits],bits就是hash的bit数,再将这些特征经过sigmoid层(FC1后面的层)将特征值转到值域[0,1],如果使用阈值就可以将[0,1]值域内的数转变为0,1的二值化hash值,可以应用在检索阶段。但在训练的过程中没有直接将这些值二值化,使用三个视频的sigmoid的输出得到了triplet loss,triplet loss可以加大类间间距,通过triplet loss的约束同类的距离相对不同类的距离更近。将binary-like的特征值通过FC2,特征维度由[batch,bits]转换到了[batch,cls],得到category loss,它的作用和triplet loss的作用类似。总的loss是:
alpha、beta分别是triplet loss和category loss的权重。
在检索的阶段,把视频encode为二值化的hash值就可以了,与datasets中的数据比较hamming距离,距离最近的topk个可以作为检索的结果。