2017-04-05 170 views
1

所以我想统计出多少人出现在脸书个人资料图片中。 通常有0-2人(有时候有4-5人,但更为罕见)。FaceBook个人资料图片中有多少人?

的样本数据集(和使用python几次尝试),可以在这里找到:

https://github.com/yoniker/FaceDetect

我尝试了不同的方法,他们没有给出合理的结果(所有的这些方法是最错误的的时间),我已经试过如下:

- 面部检测 - http://docs.opencv.org/trunk/d7/d8b/tutorial_py_face_detection.html

它通常不会找到任何人(即发生在大约75%的图片) - 我已经尝试了不同的哈尔FILT ers和参数。

-Pedestrian Detection http://www.pyimagesearch.com/2015/11/09/pedestrian-detection-opencv/ 大多数情况下,它仍然没有找到人。

OpenFace:可能这种脸部识别算法并不能真正帮助人脸检测(请参阅https://groups.google.com/forum/#!topic/cmu-openface/X6erXKckk0Q)。

最后我看了不同的StackOverflow问题,如 Count the number of people in the video但它们都不相关!

我已经尝试了半天现在 - 所以帮助将超级赞赏!

+0

很明显,人脸检测应该是这个问题的一个解决方案。但如果你只是说你尝试失败,没有人会告诉你你做错了什么,以及如何解决它... 提供了一个图像,显示你做了什么,你期待的结果和你得到的结果 – Piglet

+0

显示结果将涉及共享许多JPG文件。我说的是,我提到的任何方法在任意设置中都不会面临任何问题(实际上我不太确定那些设置工作正常)。如果你发现其中的任何一个做得好,请让我知道哪一个。再说一遍:我说大多数时候,这些都是错误的(大多数时候没有找到有人的时候找到某个人,比如检测到0/1或者1/2的人脸)。 –

回答

2

对我来说,dlib比使用OpenCV的haar人脸检测器给出了更好的结果。它也有python绑定。你可以找到快速启动代码来做脸部检测here

如果您发布的图像中未正确检测到面部,它将有可能更好地帮助您。

话虽如此,以提高人脸检测除了使用DLIB,你可以用这些思想实验:把它传递给面部检测器之前的灰度图像

  • 使用直方图均衡化(equalizeHist上OpenCV的)。 (即预处理您的图像)
  • 如果脸部向左或向右倾斜,则更常见的脸部检测失败。要解决此问题,请将图像以5度为单位旋转至30度并应用脸部检测。在每次旋转时,您可能会检测到新面孔。
  • 大多数未使用深度学习的人脸检测器主要检测正面。除了使用深度学习或使用HOG或HAAR功能训练自己的侧面轮廓面部检测器之外,没有什么可以做的。

希望这可以帮助你改善你的脸部检测。

+0

谢谢,我会给它一个镜头,但是我必须说,在Facebook Profile的真实世界中,许多面孔都不是“正面”。我想在另一个问题上训练我的网络,所以我希望能够使用别人的网络来检测人员:)任何建议? (我正在看openface,但看到我发布的链接 - 那个特定的网络在检测方面做得不好!)。 –

+0

是的,关于正面是这样的。然后深入的学习是我想要走的路。试试这个https://github.com/quanhua92/darknet/。我自己并没有使用过它,但我记得我的一位朋友告诉我这是为了检测脸部。我猜这应该工作。祝你好运! – harshkn

+0

谢谢,你对dlib的工作比HAAR好得多!不过,正如你所建议的,这还远远不够完美,我已经上传了一个小数据集,以便你可以在https://github.com/yoniker/FaceDetect中看到它的确切位置。我会检查出黑网现在让你知道,无论哪种方式,你已经非常有帮助:) –

0

OpenCV中始终存在级联分类器,以满足您的所有人脸检测需求。如果你可以给它提供一些很好的功能,它会给你所有的结果。