1.一种大规模人脸数据集的双阶段噪声清洗方法,其特征在于,包括如下步骤:S1、构建初始人脸数据集D1;
S2、检测数据集D1中的闭集噪声样本及对应的真实类别,输出含有闭集噪声的闭集噪声list文件;
S3、完成闭集噪声的重利用,生成数据集D2;
S4、将数据集D2作为输入继续进行训练,输出含有开集噪声的开集噪声list文件;
S5、根据步骤S4中的开集噪声list文件将数据集D2中的开集噪声进行删除,最终生成清洗后的干净数据集;
所述步骤S2中检测数据集D1中的闭集噪声样本及对应的真实类别具体是:将数据集D1输入到ResNet50网络中并进行训练,利用BoundaryF1 Loss函数对闭集噪声进行检测;
所述步骤S3中的完成闭集噪声的重利用,生成数据集D2,具体是:根据步骤S2输出的闭集噪声list文件,在数据集D1中将闭集噪声样本移动至对应的类别目录内,完成闭集噪声的重利用,并生成数据集D2;
所述步骤S4中输出含有开集噪声的开集噪声list文件具体是:将数据集D2输入到ResNet50网络中继续进行训练,使用NoiseDropLoss损失函数训练,训练过程中保存下每个样本的特征层与权重中心层的向量积,令样本所属类对应的向量值为cosθ,使用一个固定大小的队列不断的保存最新的cosθ以及丢弃最后的cosθ,随着训练的进行,保存下最终的队列,通过高斯混合模型拟合这组数据,并将子模型的个数设为3,得到三个高斯分布的参数,将第二个高斯分布的均值作为判断的阈值,低于该阈值的样本视为开集噪声样本,输出为开集噪声list文件;
所述的BoundaryF1 Loss函数公式如下:where if max{cos(θl+m)for all l≠yi}‑cos(θyi)>0∶yi=l;
其中,N表示一个批次中样本的数量,i表示一个批次内的第i个样本,yi和j均表示某个样本标签的类别,且yi与该第i个样本的标签对应,n表示训练集的类别总数,s为缩放因子,l代表代表所有和i样本不同的类,m为惩罚项,θyi表示第i个样本的特征向量与第yi类的类中心特征向量之间的夹角;θj表示第i个样本的特征向量与第j类的类中心特征向量之间的夹角,在归一化后的超球面上体现为测地距离;
所述NoiseDropLoss损失函数如下:其中,L代表一个批次样本的损失函数,T是一个调制函数,基于d进行判断,对不同的样本分配不同的值。
2.根据权利要求1所述的大规模人脸数据集的双阶段噪声清洗方法,其特征在于:所述步骤S1的初始人脸数据集D1是已经标注标签、进行了人脸的检测和对齐后的数据集。
3.根据权利要求1所述的大规模人脸数据集的双阶段噪声清洗方法,其特征在于:所述的高斯混合模型的概率函数如下:
其中,x代表一次观测数据,θ代表模型的所有参数,k代表第k个子模型,K代表子模型的个数,αk代表观测数据属于第k个子模型的概率,φ(x|θk)代表第k个子模型的高斯分布密度函数。