Java中的人脸识别

时间:2009-10-20 15:20:57

标签: java image-processing face-recognition

任何人都可以建议我使用Java开源面部识别框架吗?

3 个答案:

答案 0 :(得分:17)

您可以尝试使用一些开源的Face Recognition Java系统,但不要期望太多,因为我正在寻找相同的东西,但我仍然在寻找更好的选择!

请注意,在图像中查找任何面部称为“面部检测”,任何面部称为“面部跟踪”,并且确定检测到的面部的身份称为“面部识别”。我告诉你这个,因为你可能不得不使用不同的软件和算法来做每一个! Paul的答案告诉你,OpenCV可以轻松地进行人脸检测(Haar Cascade Detector),但不能轻易进行人脸识别(实际上它确实有一种方法可以进行特征脸识别),这听起来你需要人脸识别,所以OpenCV不是因为你使用Java,所以一定是你最好的选择。

你可以尝试在Java中同时进行人脸检测和人脸识别的FAINT,但它几乎没有记录。还有“http://darnok.org/programming/face-recognition/”,但我似乎无法从中获得好结果。面部识别还有“http://uni.johnsto.co.uk/faces/”,脸部识别/检测也有“神经病”。

如果您找到了一个好的解决方案,请告诉我“draw3d@shervinemami.co.cc” 祝好运! Shervin Emami

答案 1 :(得分:6)

结帐OpenCV。 Viola& amp; amp; amp; amp; amp; amp;琼斯已经实施,称为哈尔级联。

完整的教程 - 从培训到实验 - is available here。请注意,您实际上不需要进行培训; OpenCV捆绑了几个功能级联,包括一些用于面部检测的功能级别。

答案 2 :(得分:3)

准确的面部识别是一项可以分为几个步骤的任务:

  1. 面部检测
  2. 面部地标点发现
  3. 使用您的地标进行旋转,裁剪,对齐和缩放
  4. 面部描述符点发现(这些不是人类可读的)
  5. 与已知面孔进行比较以找到最接近的匹配
  6. 这可以通过几个库来完成,但需要OpenCV和Caffe的bytedeco包装器以及ND4j等库来进行矩阵比较。

    OpenCV具有用于面部检测的HAAR级联,并且可以使用flandmark进行面部点识别。这将允许您执行步骤1-3。

    可以使用Caffe和VGG Face Descriptor库(http://www.robots.ox.ac.uk/~vgg/software/vgg_face/)的bytedeco包装器完成面部描述符发现

    最后,Nd4j可用于比较图像。如果您有足够的图像按个人分类,也许您可​​以使用库中的神经网络进行分类。