二值人脸对齐--Binarized Convolutional Landmark Localizers for Human Pose Estimation and Face Alignment

Binarized Convolutional Landmark Localizers for Human Pose Estimation and Face Alignment with Limited Resources
ICCV2017
https://www.adrianbulat.com/binary-cnn-landmarks
Torch7:https://github.com/1adrianb/binary-human-pose-estimation

对于人体姿态估计和人脸对齐问题,使用最新的CNN网络我们可以得到很好的效果,但是这些方法的计算量很大,需要GPU,参数量也很大。难以做到实时计算或部署到移动端。本文提出一个二值CNN网络,可以实现 highly accurate and robust yet efficient and light weight landmark localization

本文和其他二值CNN网络的不同之处主要在以下两点:
1)我们的二值网络应用场景不是图像分类而是特征点定位 human pose estimation and facial alignment,使用全卷积方式输出一个密集的 heatmaps
2)我们主要通过设计新的网络结构来提升二值网络性能,不是改善量化方法

3 Background
ResNet 网络主要包括两个模块:basic and bottleneck,这里我们主要对后者感兴趣,它设计的初衷是用于减少参数量,控制网络模型的内存占用。这里我们使用文献【11】中的“pre-activation”版本。我们的网络主体结构是文献【22】的单个 Hour-Glass (HG) network
二值人脸对齐--Binarized Convolutional Landmark Localizers for Human Pose Estimation and Face Alignment

4 Method
这里主要描述我们的网络结构是怎么进化到我们的最终版本的 binary hierarchical, parallel and multi-scale block
下面的图示
二值人脸对齐--Binarized Convolutional Landmark Localizers for Human Pose Estimation and Face Alignment
二值人脸对齐--Binarized Convolutional Landmark Localizers for Human Pose Estimation and Face Alignment

4.1. Binarized HG
我们从 HG network 的 原始 bottleneck blocks 开始,根据文献【26】,除了第一层和最后一层,其他网络层我们二值化,这么做是为了产生一个 dense output (heatmaps),没有二值化的网络层占网络总体参数量不到0.01%。

直接二值的结果对应性能下降,如下表所示:
二值人脸对齐--Binarized Convolutional Landmark Localizers for Human Pose Estimation and Face Alignment
二值人脸对齐--Binarized Convolutional Landmark Localizers for Human Pose Estimation and Face Alignment

4.2. On the Width of Residual Blocks
图4a 中的原始 bottleneck block 由三个卷积层构成,滤波器尺寸分别是 1 × 1, 3 × 3 and 1×1。网络第一层主要用于控制网络第二次的宽度(通道数),所以模块的参数量很大的压缩。但是这么做是否适用于二值网络我们不清楚。因为二值网络的表示能量是有限的,所以极大的降低通道数量可能减少了网络层之间信息的传递,进而导致性能的下降。为了验证这个想法,我们增加了网络的通道数目。从128变到256,如图4b所示
二值人脸对齐--Binarized Convolutional Landmark Localizers for Human Pose Estimation and Face Alignment

实验发现这么做可以提升网络性能,但是也增加了网络的参数量

4.3. On Multi-Scale Filtering
使用 3×3 and/or 1×1 组合构建的卷积网络层被证明是 both effective and efficient。对于实数值的网络,可学习大量的卷积核,但是对于二值网络,能够学习的二值卷积核数量是有很大限制的。
为了解决二值网络中 3×3 滤波器有限的表示能力,我们参考文献【29】采用如图4c所示的多尺度结构
从Table 2 我们可以得出结论:对于二值网络,采用多尺度滤波器是有帮助的。

4.4. On 1 × 1 Convolutions
上一步我们为了保持网络参数量不变保留了 1 × 1 卷积网络层,这里我们分析一下这个 1 × 1 卷积网络层 对模块性能的影响
这里我们直接网络 图4c 中的所有 1 × 1 卷积网络层 去掉得到 图4d, 我们之所以将所有 1 × 1 卷积网络层 去掉是因为二值的1 × 1滤波器的表示能力是很有限的。它可能会影响有用信息的传递
二值人脸对齐--Binarized Convolutional Landmark Localizers for Human Pose Estimation and Face Alignment
从表2中可以看出 性能提升了 8%,得到的结论是 二值网络中的 1 × 1 convolutional filters 对网络性能的影响是决定性的,应该给去除。

4.5. On Hierarchical, Parallel & Multi-Scale
因为二值网络对梯度消失问题更敏感,我们发现和实数值网络相比较,我们二值网络的梯度减少了 10倍多。为了降低这个梯度消失问题,我们设计了一个
hierarchical, parallel multi-scale structure 得到我们最终的模块网络结构 图4e

7 Comparison with state-of-the-art
二值人脸对齐--Binarized Convolutional Landmark Localizers for Human Pose Estimation and Face Alignment

二值人脸对齐--Binarized Convolutional Landmark Localizers for Human Pose Estimation and Face Alignment

二值人脸对齐--Binarized Convolutional Landmark Localizers for Human Pose Estimation and Face Alignment

我们的算法在单核CPU上应该是可以实时的
to be expected allowing the system to run in real-time on a CPU using a single core