在面部图像数据库中检测给定的面部


110

我正在做一个小项目,通过他们的个人资料图片涉及Twitter用户的面孔。

我遇到的一个问题是,在我滤除了清晰的人像照片以外的所有图像之后,一小部分但相当多的Twitter用户使用Justin Bieber的图片作为个人资料图片。

为了将它们过滤掉,我如何以编程方式判断一张照片是否是贾斯汀·比伯的照片?


17
您的开发平台是什么?在.NET中,这可以轻松完成,因为它优于所有其他编程环境。只需调用Page.EradicateBieber()函数。Microsoft预见了这一需求,并在.NET 4.5中为我们开箱即用地提供了它。(你们那些使用旧版本的人将不得不等待。)(当然,所有这些都是嘲讽的。)

32
我想我可以肯定地说SO不需要[justin-bieber]标签。
skaffman

2
我可以肯定地说,与关闭选项(值得投票的选项)相比,人们在评论和此问题上花费更多的赞成票。

20
贾斯汀·比伯(Justin Bieber)音频过滤器也将很好

Answers:


49

更好的主意可能是将出现在一个以上用户的提要中的所有图像都丢弃掉-无需识别。


2
是的,在拒绝照片之前,可以将阈值设置为2-4个可能的重复项(以处理新生婴儿的情况)。我想这取决于您对照片的处理方式。
马克·贝西

3
简单,优雅的解决方案。+1。
罗伯特·哈维

13
人们可以使用同一个人的不同图片。
Rebecca Chernoff

(+1)在Rebecca和(-1)@ PPPPPP:这正好解决了问题。
steffen 2011年

4
它们可以,但是在大多数情况下,它们将从相对较小的图像池中进行选择,因此它可能仍然可以工作。该死的箱子该死-无论如何你知道我的照片还是我叔叔的。
naught101 2012年


11

由于您只能过滤那些清晰的人像照片,因此我假设您具有某种特征生成方法,可以将原始图像转换为对机器学习有用的特征。如果是真的,您可以尝试通过为分类算法提供一堆已知的Bieber照片以及一堆已知的非Biebers来训练分类算法(其中有很多:神经网络等)。训练完模型后,就可以用来预测新图像是否为Bieber。

这种有监督的学习技术确实需要您拥有知道正确答案的数据(无论是否有比伯),但是这些数据很可能可以通过Google图片搜索找到。它还要求您具有正确的功能,而我对图像处理或算法的了解还不足以知道这是否是主要缺点。


2
不幸的是,该功能生成步骤既最难和最重要的一个:(。
斯特芬

@steffen有人建议OP弄乱了面孔,所以有一些描述符生成器。

@mpq:我毫不怀疑,但是,如果OP每个像素没有一个功能,那么他必须找到有意义的聚合级别。我没有拒绝投票,我只是想指出这个答案背后的复杂性(当然,这是正确的)。
steffen 2011年

1
正确,特征生成步骤很困难。我以为OP可以做到这一点,因为他已经有了一些处理图像的机制。即使他这样做,尽管它们可能仅是用于检测人脸/而不是人脸而不是Bieber /不是Bieber的有用功能,但这实际上取决于这些功能。
Michael McGowan

7

您可以使用eigenfaces之类的方法,http://en.wikipedia.org/wiki/Eigenface。以下内容很好地介绍了该过程以及与不同实现的链接。

http://www.pages.drexel.edu/~sis26/Eigenface%20Tutorial.htm

从这里开始,通常将其用于分类方法,训练模型然后预测案例。您可以通过对一群知名名人进行培训来做到这一点,如果您将Twitter的面孔预测为经过培训的名人模型中的面孔,则将其删除。与此类似http://blog.cordiner.net/2010/12/02/eigenfaces-face-recognition-matlab/

这遭受了不断的修正。很快会有一个新的贾斯汀·比伯(Justin Bieber)不在您的训练模型中,因此您无法对其进行预测。还有像惠特尼·休斯顿(Whitney Houston)的情况,您可能从未想过要加她,但几周以来,出于尊重和钦佩,她可能是一个共同的形象。但是,您将不会遇到上面提到的婴儿图片的缺点。为了解决这些问题,您可以使用更多的分层聚类方法。如果除去前几组集群,如果它们达到一定的支持水平,它们会非常接近,则第一个集群有15个项目,然后再构建第二个集群。现在,您不必担心培训模型中的谁,但您会陷入婴儿图片问题。




3

您需要使用一种算法来检测图片所指的人。您可以基于名人的不同肖像图片建立模型,并使用分类器确保该图片引用您的数据库图片之一。您需要根据喜欢的脸部的不同参数(例如眼睛之间的距离或其他参数)使用特定的分类器,以提高模型的准确性。还有皮肤分析。最重要的是建立一个好的分类器。此方法可能很容易受到攻击。

但是还有一个很好的人脸识别项目http://opencv-code.com/Opencv_Face_Detection


1
AFAIK OpenCV和链接站点仅实现人脸检测(图片中是人脸?),这只是朝向人脸识别(是谁的脸?)的
第一步

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.