|
@@ -38,7 +38,6 @@ public class FaceTest {
|
|
|
faceMonitor.loadFaceDataset(dataset);
|
|
|
databaseSize = faceMonitor.getDatabaseSize();
|
|
|
System.out.printf(Locale.CHINA, "new data num: :%d\n", databaseSize);
|
|
|
-
|
|
|
//监控视频帧,这里为了简单演示,传入静态图片
|
|
|
//target
|
|
|
String registerData = "./data/0.jpg";
|
|
@@ -46,9 +45,8 @@ public class FaceTest {
|
|
|
//vistor
|
|
|
registerData = "./data/5.jpg";
|
|
|
watchFrame(faceMonitor, registerData);
|
|
|
-
|
|
|
//获取目标人识别结果,分值比较高的
|
|
|
- RecogResult recogResult = faceMonitor.finishMonitorWithRes(1); //1代表最后一次,0代表中间结果
|
|
|
+ RecogResult recogResult = faceMonitor.finishMonitorWithRes(1);//1代表最后一次,0代表中间结果
|
|
|
|
|
|
//访客的结果,分值比较低的
|
|
|
RecogResult curVisitorResResult = faceMonitor.faceRecogGetCurVisitorRes();
|
|
@@ -66,12 +64,14 @@ public class FaceTest {
|
|
|
recogInfo.getPersonIdOther()[0], recogInfo.getFaceRecogScoreOther()[0]);
|
|
|
}
|
|
|
|
|
|
+ int topN = 2;
|
|
|
//视频里的命中结果
|
|
|
- FaceRecogRetrieveResult faceRecogRetrieveResult = faceMonitor.faceRecogRetrieveFaceDataset(dataset[1]);
|
|
|
+ FaceRecogRetrieveResult faceRecogRetrieveResult = faceMonitor.faceRecogRetrieveFaceDataset(dataset[1], topN);
|
|
|
System.out.printf(Locale.CHINA, "query hit top person id: : %d score: %f\n",
|
|
|
faceRecogRetrieveResult.getOnePredictIds()[0], faceRecogRetrieveResult.getOnePredictScores()[0]);
|
|
|
System.out.printf(Locale.CHINA, "query hit top person id: : %d score: %f\n",
|
|
|
faceRecogRetrieveResult.getOnePredictIds()[1], faceRecogRetrieveResult.getOnePredictScores()[1]);
|
|
|
+ faceMonitor.releaseEngine();
|
|
|
}
|
|
|
|
|
|
public static FaceModel[] extractFeature(FaceMonitor faceMonitor) {
|
|
@@ -87,7 +87,11 @@ public class FaceTest {
|
|
|
|
|
|
public static RecogResult watchFrame(FaceMonitor faceMonitor, String dataPath) {
|
|
|
Image image = faceMonitor.readImage(dataPath);
|
|
|
- return faceMonitor.faceRecogMonitor(image);
|
|
|
+ RecogInfo recogInfo = new RecogInfo();
|
|
|
+ recogInfo.setCameraId(0);//摄像头id
|
|
|
+ recogInfo.setFrameId(1);//帧号
|
|
|
+ recogInfo.setMillisec(faceMonitor.getTimeMillisec());//这个是当前服务器时间,不传也没事,主要是上边两个
|
|
|
+ return faceMonitor.faceRecogMonitor(image, recogInfo);
|
|
|
}
|
|
|
|
|
|
/**
|