7.《Robust Real-time Face Detection》(IJCV 2004)
这篇文章重点并不在特征上而是Adaboost的应用,但基于它的名气也放在这里吧,在深度学习没火起来之前应该算是最最常用的人脸检测算法了。
核心思路如下:
- 求取图像积分图(快速计算);
- 采用Adaboost算法选择特征:每一次迭代选择一个最优Haar特征(弱分类器),多次迭代的Haar特征进行组合(强分类器);
- 通过预设的检测率、误识率等参数进行多次2步骤,将强分类器级联;
- 滑窗方法检测,多尺度通过对图像大小进行尺度变换得到。
值得注意的地方:
- Haar特征非常适用于Adaboost这类型的组合算法,因为一张图的Haar特征非常非常多
- 将多种特征进行组合的算法,如Boosting, Bootstrap这类都属于框架算法,里面具体的特征可以任意使用
- Adaboost算法目的是获得强分类器,而将强分类器进行级联,可以在保证检测率的基础上降低误识率(单个分类器很难做到如此精确)
- 积分图思想很是常用,图像中需要重复多次计算的都能用积分图加速(个人感觉和动态规划里的Memoization思想类似)
非常经典的一篇人脸检测论文,但是感觉并不是非常好懂,尤其是中间很大篇幅第一次看感觉都是云里雾里的,逻辑关系不大好弄清楚。不过网上解析的博客什么的很多,对理解很有帮助的。