[论文笔记] Facial Landmark Machines:A Backbone-Branches Architecture with Progressive Representation...

正在参加中山大学的“人工智能与科学计算”夏令营,其中的实验室科研活动就要求我们阅读所给定的论文并写一篇博文。
以下就是我的阅读笔记:

论文题目:Facial Landmark Machines: A Backbone-Branches Architecture with Progressive Representation Learning
论文作者:Lingbo Liu, Guanbin Li, Yuan Xie, Yizhou Yu, Qing Wang and Liang Lin
所属机构:Human Cyber Physical Intelligence Integration Lab (HCP Lab), Sun Yat-Sen University (SYSU).
论文链接:https://arxiv.org/pdf/1812.03887.pdf

(1) 摘要:

2018年12月,HCP Lab 针对 Facial Landmark Localisation 提出了一个基于 FCN 所改进的 BB-FCN 模型(cascaded backbone-branched fully convolutional neural network)。该模型有以下几个特点:属于 two-stage 模型,也是在“由粗到精”(coarse to fine)上进行探究,能给出 full response map,适用于非受控环境(即 unconstrained / in the wild)。

此外,在这篇论文中,HCP Lab 还提出了一个人脸数据集:SYSU16K。该数据集共计 7317 张图像,包括16000张以上的人脸,并进行相应的标注(72 landmarks)。

[论文笔记] Facial Landmark Machines:A Backbone-Branches Architecture with Progressive Representation..._第1张图片

(2) 模型结构:

[论文笔记] Facial Landmark Machines:A Backbone-Branches Architecture with Progressive Representation..._第2张图片

由上图可以看出,BB-FCN 由两部分组成:Backbone 和 Branchs,其中,Branchs 共享相同的网络结构,所含分支个数由预测Landmark 个数所决定(论文中所展示的是 5 Landmark,分别对应五个分支:left eye(LE),right eye(RE),nose(N),left mouth corner(LM),right mouth corner(RM) )。

其中,Backbone 预测较为粗糙的 Landmark,Branch 根据其预测结果对相应位置进行 Crop,并做进一步细粒度的预测。Backbone 所接受的输入为原图,Branchs 接受的输入除了所 Crop 的原图外,还包括 Backbone 所提供的 Response Map。

此外,论文中所提的模型比较小,用的大多是卷积核为 5 x 5 的卷积层,而且 Channel 的升维也与其他常见模型不同,最大的 Channel 才 30,所以这个模型总的来说比较小的。

通常 Facial Landmark Localization 被视为 Regression Problem,但是在这篇论文中,作者将其认为是 Pixel-Labeling Problem,所以作者基于 FCN 进行改进也显得很正常,而这样做的好处就是:能处理任意大小图像,而不需要受到指定人脸框大小的限制,能提供更方便理解的概率热力图。(看这篇论文总给我种在看 Object Detection 的感觉,可能是里面有许多做法比较类似吧)

(3) 实验细节:

关于 Loss Function:

由于这个模型是 two-stage 的,以下分别是训练 Backbone 和 Branchs 的 Loss:

[论文笔记] Facial Landmark Machines:A Backbone-Branches Architecture with Progressive Representation..._第3张图片
[论文笔记] Facial Landmark Machines:A Backbone-Branches Architecture with Progressive Representation..._第4张图片

因为 BB-FCN 并不直接预测离散的 Landmark,而是预测关于 Landmark 的 Response Map,用这样的 Loss Function 会导致一个问题:正负样本比例严重不均衡,极容易出现 easy-negative example 在 loss 中占主导地位的情况,这会导致模型极可能将Ground Truth 预测为负样本(这跟 Kaiming He 在 Focal Loss 那篇文章所指出的情况一致,只不过作者并不在 Loss Function 上做改进,而是在训练方式上做改进)。

关于 Selective Response Map Training:

为了解决正负样本不均衡的问题,作者采取了选择策略:随机选择与 Ground Truth 同样个数的 non-landmark 进行 Loss 计算,以保证正负样本数量均衡;此外,当 Loss 不再下降时,作者将采用 Hard Negative Mining。

关于其他细节:

在训练时,将数据集中的人脸进行裁剪并同一缩放到 32 x 32,再输入到模型中;在测试时,会将目标图像的原图缩放成不同尺寸,以构建图像金字塔,输入到 Backbone 中,对粗糙结果进行 NMS,再输入到 Branchs 中。

训练时,Batch Size 为 40,且训练 Backbone 时,正负样本比例为 1 : 1;训练 Branchs 时,正负样本比例为 4 : 1。正样本从 SYSU16K 中的数据裁剪得到(与原人脸区域的 IOU 超过 0.5),负样本从 Pascal VOC 2012 中 non-facial region 裁剪得到。

[论文笔记] Facial Landmark Machines:A Backbone-Branches Architecture with Progressive Representation..._第5张图片

(4) 总结:
由于时间原因以及之前没接触过相关方向,这篇论文我看的比较粗糙,尤其是没有细看实验结果部分,不好对这篇论文的工作做出全面的评价。

优点:

  • BB-FCN 采取“由粗到精”(coarse to fine)的方式进行预测,且提供 reseponse map。
  • 模型的复杂度可由所需预测精度(即所预测的 Landmark 类型/个数)决定,且整体模型很小。
  • 所使用的场景是 in the wild 的,适应各种非受控环境。

有待改进之处:

  • 由于 BB-FCN 是 two-stage 的,无法做到 end-to-end,可以将尝试同时训练 Backbone 和 Branchs。(对我来说,我是不喜欢 two-stage 的算法的,因为一般来说 two-stage 的算法训练是比较复杂的,很难使其收敛到最好的表现)
  • 可以考虑从 Loss Function 入手解决正负样本不均衡问题,如:Focal Loss,alpha-CE Loss。(虽然不一定有效果)
  • 从结构上看,Branchs 中的分支仅对 Backbone 的预测结果进行微调,但是并没有利用到同一张人脸中其他 Landmark 的信息。(可以尝试利用其他Landmark预测结果对当前 Landmark 的预测结果进行限制)
  • 所用数据集还是不够大,比较难适用在现实场景中。(这一点其实应该算是大部分人脸方向论文的弊病,数据集太难做了,不像大厂那样有足够的资金与动力)

如果你看到了这篇文章的最后,并且觉得有帮助的话,麻烦你花几秒钟时间点个赞,或者受累在评论中指出我的错误。谢谢!

作者信息:
知乎:没头脑
LeetCode:Tao Pu
CSDN:Code_Mart
Github:Bojack-want-drink

你可能感兴趣的:(Paper,CV,Deep,Learning,CV,杂谈)