【发布时间】:2015-02-07 03:23:52
【问题描述】:
我正在从事多视图人脸检测。我在开发人脸检测方面有两个步骤,
(1)决策树决定运行哪个分类器并
(2) 运行一个选定的分类器来检测人脸的特定方向。
我有 9 个使用 Ada-boost 算法训练的分类器,用于 9 个面部视图。
现在我的问题是用 MB-LBP(多尺度块局部二进制模式)特征训练决策树。 我为不同的 x、y 位置和不同的矩形大小选择了 100 个矩形。 我喜欢使用那些矩形来使用 MB-LBP 提取特征。 我知道如果我们使用 MB-LBP 概念,我们可以为一个矩形添加一个 0-255 的标签。在 OpenCV 中,它被实现为(在第 217 行,cascadedetect.hpp)
inline int Feature :: calc( int _offset ) const
{
int cval = CALC_SUM_(p[5], p[6], p[9], p[10], _offset);
return (CALC_SUM_( p[0], p[1], p[4], p[5], _offset ) >= cval ? 128 : 0) | // 0
(CALC_SUM_( p[1], p[2], p[5], p[6], _offset ) >= cval ? 64 : 0) | // 1
(CALC_SUM_( p[2], p[3], p[6], p[7], _offset ) >= cval ? 32 : 0) | // 2
(CALC_SUM_( p[6], p[7], p[10], p[11], _offset ) >= cval ? 16 : 0) | // 5
(CALC_SUM_( p[10], p[11], p[14], p[15], _offset ) >= cval ? 8 : 0)| // 8
(CALC_SUM_( p[9], p[10], p[13], p[14], _offset ) >= cval ? 4 : 0)| // 7
(CALC_SUM_( p[8], p[9], p[12], p[13], _offset ) >= cval ? 2 : 0)| // 6
(CALC_SUM_( p[4], p[5], p[8], p[9], _offset ) >= cval ? 1 : 0);
}
此代码可以提取标签。从那里,我无法弄清楚如何继续为每个矩形获取有意义的特征。 我在 CascadeTraining 检查了 OpenCV 的代码。这真的很复杂。我可以知道如何使用 MB-LBP 生成有用的功能吗? 谢谢
【问题讨论】:
标签: opencv face-detection feature-detection feature-extraction