我想实现一个不需要很多训练时间的人脸检测算法。我查看了 Viola-Jones 方法,但训练时间太长。我阅读了有关 LBP 以及它如何用于人脸检测的信息。我想在 Linux 上运行的开发板上用 C 实现。LBP 似乎更适合在微处理器上使用,因为它使用二进制操作,而不是 viola-jones 使用的浮点操作。
我想避免使用 openCV,因为我需要在开发板上使用 C 来实现它。除了论文之外,是否有任何有用的在线资源可以很好地解释 LBP。如果有人能以非常简单的方式解释 LBP,那就太好了。
我想实现一个不需要很多训练时间的人脸检测算法。我查看了 Viola-Jones 方法,但训练时间太长。我阅读了有关 LBP 以及它如何用于人脸检测的信息。我想在 Linux 上运行的开发板上用 C 实现。LBP 似乎更适合在微处理器上使用,因为它使用二进制操作,而不是 viola-jones 使用的浮点操作。
我想避免使用 openCV,因为我需要在开发板上使用 C 来实现它。除了论文之外,是否有任何有用的在线资源可以很好地解释 LBP。如果有人能以非常简单的方式解释 LBP,那就太好了。
我向您推荐我自己对想要做同样事情的人的回答。那个问题包括训练级联和实际运行,我对训练过程进行了总结,并对OpenCV的LBP级联的运行进行了详细的解释。
你有图像补丁。根据您的掩码,您比较成对的像素强度并将其保存在描述符中。
例如,您比较角落像素和中心的强度 - 它是您的蒙版。描述符 = 数组 1x4,比较结果。左上像素比中央亮,desc[0] = 1。右上更暗,desc[1] = 0。右下更亮,desc[2] = 1。左下更亮,desc[3] = 1. 你已经描述了带有 4 位 LBP 的补丁。
Real LBPs有中间归一化步骤,可以使用的不是强度,而是梯度,不同的mask,但基本原理是这样的。
关于LBP的信息,可以参考schopedia: