Robust Face Detection via Learning Small Faces on Hard Images
基于难图像小人脸学习的鲁棒人脸检测
本文在训练阶段动态地给每张训练图像赋予difficulty score,以判定每张图像是否已被很好的检测 or 被选作继续训练,在每个epoch训练前,根据difficulty score重采样生成hard images子集,模型就仅需在生成的子集上训练即可,这种操作就可以凸显出那些检测效果不好的hard images,检测效果好的easy images不参与下阶段的训练。
使用所有训练图像集D中的子集D'(D' 包含hard images)来训练模型,在每个epoch开始前,基于前一个epoch生成的difficulty scores构建D',初始化阶段,D'= D,也即训练集中的所有图像都参与到模型的训练,在第一个epoch中,所有图像都参与到模型的训练。
A(I)+:图像 I 对应的正样本anchor集合,anchor与gt bbox的IoU > 0.5;
函数 l():分类概率;
l(I ; Θ)a,1:anchor被判定为前景的logit;
l(I ; Θ)a,0:anchor被判定为背景的logit;
训练集中的所有图像被初始化为hard image,任意图像的WPAS > th时(文中设置th = 0.85)就会被认为是easy image(即对所有正样本anchor做分类,理论上希望模型将所有正样本anchor都被判为前景,此时模型真的判断为前景,这张图像就可以认为是一个easy image)。
在每个epoch开始时,先对训练集图像做随机重排,生成training list 用于当前epoch的训练,如果在上个epoch中,某张image_i的WPAS被判定为easy image,则image_i有 p (文中设置p = 0.7)的概率从training list D中被剔除,剩余的training list就更专注于hard images,用于在当前epoch内训练。