论文题目:《Octuplet Loss:Make Face Recognition Robust to Image Resolution》
论文地址:https://arxiv.org/pdf/2207.06726v1.pdf
代码地址:https://github.com/martlgap/octuplet-loss
1.概述
一般来说,在图像分辨率方面,可以分为两种人脸识别场景:
- 低分辨率人脸验证:考虑两个相同低分辨率的人脸图像
- 跨分辨率人脸验证:考虑两个不同分辨率的人脸图像
对于低分辨率图像,两种常见处理方法:
- Transformation-Based Approaches. 图像维度(超分)
- Non-Transformation-Based Approaches. 特征维度(损失)
贡献:
- 我们提出了一种称为八元组损失的新颖损失函数,它利用四个三元组损失项来捕获高分辨率和低分辨率人脸之间的关系。
- 引入了微调策略,该策略可以轻松应用于现有网络,以提高其对图像分辨率的鲁棒性,同时在高分辨率图像上保持类似的性能。
- 我们证明,使用我们提出的八元组损失对几个最先进的网络进行微调可以显着改进众多流行数据集上的跨分辨率和低分辨率人脸验证。
2.方法
2.1. Triplet Loss
2.2. Hard Sample Mining
一个batch严格包含两个随机选择的相同身份的图像,每个 batch的id数是 B/2。 对于每个A,对应一个 P 和B-2个N。然而大多数三元组对损失没有贡献,因此在负样本的选择上加以限制。
2.3. Octuplet Loss
3. 实验
3.1. 细节
由于缺乏包含低分辨率和高分辨率图像的大型人脸识别训练数据集,我们通过将图像综合下采样到特定分辨率 r ∈ 7、14、28 并随后进行上采样来恢复图像,从而模拟较低的图像分辨率。对于这两种操作,我们都应用了bicubic kernel(在图像超分领域,经常使用Bicubic双三次插值法来实现下采样生成低分辨图片)和anti-aliasing(将图形边缘的“锯齿”缓和,边缘更平滑)。 使用这种图像退化方法,我们将每个batch 的大小加倍,使其包含 B 个高分辨率图像 B 与其对应的低分辨率图像 Blr。
由于我们的条件是一个batch中的每个身份必须恰好出现两次,我们采用了一种创建batch的算法。 根据每个身份的未选择图像数量从整个数据集中选择图像。 通过在每个batch之后更新潜在的概率分布,我们确保即使在每个时期结束时也有不同的批次。