AI人脸检测技术

时间:2010-04-15 20:40:12

标签: artificial-intelligence neural-network face-detection

任何人都可以使用面部检测中使用的所有不同技术吗?技术如神经网络,支持向量机,特征脸等等。

其他人在那里?感谢。

3 个答案:

答案 0 :(得分:4)

我要谈的技术更像是一种机器学习导向的方法;在我看来,虽然不是很近,但却非常引人入胜:在Viola和Jones的文章“Robust Real-Time Face Detection”中对它进行了描述。我将OpenCV实现用于大学项目。

它基于类似哈尔的特征,其包括图像的矩形区域内的像素强度的加法和减法。这可以使用称为积分图像的过程非常快速地完成,其中也存在GPGPU实现(有时称为“前缀扫描”)。在线性时间内计算积分图像之后,可以在恒定时间内评估任何类似哈尔的特征。特征基本上是采用图像S的24×24子窗口并计算值特征(S)的函数;三元组(特征,阈值,极性)称为弱分类器,因为

极性*特征(S)<极性*阈值

对某些图像适用,对其他图像则为假;弱分类器预计比随机猜测好一点(例如,它应该具有至少51-52%的准确度)。

极性为-1或+1。

特征空间很大(约160'000个特征),但是有限。

尽管阈值原则上可以是任何数字,但是从训练集的简单考虑中可以看出,如果有N个例子,则必须检查每个极性和每个特征的N + 1阈值以便找到一个保持最佳准确性的人。因此,可以通过穷举搜索三元组空间来找到最佳弱分类器。

基本上,可以通过使用称为“自适应增强”或AdaBoost的算法迭代地选择最佳可能的弱分类器来组装强分类器;在每次迭代中,在前一次迭代中被错误分类的示例被更多地加权。强分类器的特点是它自己的全局阈值,由AdaBoost计算。

几个强大的分类器被组合成一个注意级联的阶段;注意级联背后的想法是在第一阶段丢弃明显不是面部的24x24子窗口;强分类器通常只包含一些弱分类器(如30或40),因此计算速度非常快。每个阶段都应该有很高的召回率,而假阳性率并不是很重要。如果有10个阶段,每个阶段有0.99回忆和0.3个假阳性率,最终级联将有0.9回忆和极低的假阳性率。出于这个原因,通常调整强分类器以增加回忆和误报率。调整基本上涉及降低AdaBoost计算的全局阈值。

进入级联结束的子窗口被视为一个面。

初始图像中的几个子窗口最终重叠,最终在重新缩放图像后,必须进行测试。

再见,希望它很有趣; - )

的Dario

答案 1 :(得分:2)

对包括面部检测在内的广泛视觉问题的一种新兴但相当有效的方法是使用Hierarchical Temporal Memory (HTM) Numenta开发的概念/技术。

非常松散地说,这是一种类似神经网络的方法。这种类型的网络具有树形状,其中节点的数量在每个级别显着减少。 HTM模拟了新皮层的一些结构和算法属性。在[可能]离开新皮层时,在每个节点级别实现的分类算法使用贝叶斯算法。 HTM模型基于脑功能的记忆预测理论,在很大程度上依赖于输入的时间性质;这可以解释它处理视觉问题的能力,因为它们通常是暂时的(或者可以是这样的)并且还要求容忍噪声和“模糊”。

虽然Numemta已经制作了视觉套件和演示应用程序已有一段时间了,但我认为 - {3}}是HTM技术的第一个商业应用,至少在视觉应用领域。

答案 2 :(得分:-1)

如果您不仅需要它作为理论上的东西,但是您真的想要进行面部检测,那么我建议您找到已经实施的解决方案。

有许多针对不同语言的测试库,它们被广泛用于此目的。请查看此SO线程以获取更多信息:Face recognition library

相关问题