OpenImaj - 识别未从面部数据库中获取的给定面部

时间:2016-09-01 10:54:33

标签: face-recognition openimaj

面部分析的OpenImaj教程展示了如何使用面部数据库中的一些测试图像进​​行面部识别 - http://openimaj.org/tutorial/eigenfaces.html

如何识别不是来自face db的新给定图像?你能举个例子吗?

感谢。

1 个答案:

答案 0 :(得分:1)

简单 - 只需修改教程中的代码,这样就不需要循环遍历数据库中的所有面,而只需接收您指定的图像并使用该图像进行搜索:

    FImage face = ...; //you load the face you want to search with here
    DoubleFV testFeature = eigen.extractFeature(face);

    String bestPerson = null;
    double minDistance = Double.MAX_VALUE;
    for (final String person : features.keySet()) {
        for (final DoubleFV fv : features.get(person)) {
            double distance = fv.compare(testFeature, DoubleFVComparison.EUCLIDEAN);

            if (distance < minDistance) {
                minDistance = distance;
                bestPerson = person;
            }
        }
    }

    System.out.println("Best Guess: " + bestPerson);