OpenImaj - 识别不是从人脸数据库中获取的给定人脸
OpenImaj - recognize given face which is not taken from the face database
用于人脸分析的 OpenImaj 教程展示了如何使用人脸数据库中的一些测试图像进行人脸识别 - http://openimaj.org/tutorial/eigenfaces.html
如何识别不是来自人脸数据库的新给定图像?能举个例子吗?
谢谢。
简单 - 只需修改教程中的代码,这样它就不会遍历数据库中的所有面孔,而是只获取您指定的图像并使用该图像进行搜索:
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);
用于人脸分析的 OpenImaj 教程展示了如何使用人脸数据库中的一些测试图像进行人脸识别 - http://openimaj.org/tutorial/eigenfaces.html
如何识别不是来自人脸数据库的新给定图像?能举个例子吗?
谢谢。
简单 - 只需修改教程中的代码,这样它就不会遍历数据库中的所有面孔,而是只获取您指定的图像并使用该图像进行搜索:
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);