Linkage Based Face Clustering via Graph Convolution Network

Linkage Based Face Clustering via Graph Convolution Network

本文使用图卷积做基于边预测的脸聚类,如果两个点属于同一类,那么这两个点之间就会有一条边连接,最后找出所有的图即找到了所有的簇,也不用事先指定簇的个数。本文只考虑局部信息,即一个节点和它的邻居节点,最后再将所有的子图的聚合,得到所有节点的聚类结果。

问题定义

假设现在有脸图像的特征集合X=[x1,...,xN]TRN×DX=[x_1,...,x_N]^T\in \mathbb{R}^{N\times D},脸聚类的目标是将假的标签yiy_i赋给每一个样本,有相同假标签的样本属于同一类,为了解决这个问题,我们遵循基于连接的聚类,该范式旨在预测实例对之间连接的可能性。因此,所有样本通过边连接便形成了一个一个簇。

整个模型分为三部分:

IPS的构建

Linkage Based Face Clustering via Graph Convolution Network

使用每一个节点作为中枢节点,构建一个中枢节点的子图,即为IPS,IPS是一个以中枢节点p为中心的子图。IPS的构建过程分为三步:

  1. 给定一个中枢p,使用它最多h跳的节点作为IPS的节点,在每一跳中,包括的最近邻的个数可能不同,本文会预先指定好每一跳包含的最近邻的个数。需要注意的是,中枢节点不包含在IPS之中,这时候,高位的邻居节点就可以提供在中枢和邻居之间的局部结构的上下文信息。举例来讲,如果p和他的邻居之一q一直离得很远,那么这两个点之间有一条边相连接的概率就比较小
  2. 之后对每个邻居节点做正则化,其实就是用每一个邻居节点的特征减去中枢节点的特征,这样可以将中枢节点的信息包含到IPS之中
  3. 之后就是添加边,首先找到在最原始图中每个节点的u近邻,如果这两个节点都在上面的子图中,那么这两个节点之间就有一条边,可以得到邻接矩阵A。这个过程可以保证节点的度不会变化太多

IPS的图卷积

本文使用了现在现有的图卷积框架,输入是上面得到的节点特征和邻接矩阵A,每次卷积前会将原始特征和聚合后的邻居节点特征拼接,最后每个节点的输出加上softmax进行分类,计算loss只用一跳的节点,因为一跳的节点中正样本更多,这样正负样本就会更加均衡
Linkage Based Face Clustering via Graph Convolution Network

边融合

为了在许多的脸数据上进行聚类,我们遍历了所有样本,以每个样本为中心节点构建IPS,预测IPS中的节点和中枢节点连接的可能性,最终就可以得到一系列边权重的组合,本文使用label传播的策略切掉一些边形成簇,在每一轮迭代中,算法切掉低于阈值的边,将大小超过预先设定的大小的簇放入队列,下一轮迭代,将边的阈值增加,知道队列为空。
Linkage Based Face Clustering via Graph Convolution Network