mirror of
https://github.com/geekwenjie/SmartJavaAI.git
synced 2026-09-10 03:28:49 +00:00
1、OCR:新增表格识别模型
2、OCR:新增9个通用模型 3、OCR:支持批量检测识别 4、OCR:新增更多参数,使用更加灵活 5、人脸识别:支持ID查询及分页获取人脸信息 6、活体检测:视频检测支持设置最大帧数
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
<maven.compiler.source>11</maven.compiler.source>
|
||||
<maven.compiler.target>11</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<smartjavaai.version>1.0.19</smartjavaai.version>
|
||||
<smartjavaai.version>1.0.20</smartjavaai.version>
|
||||
<!--如果打包运行,需要替换成你的main-->
|
||||
<exec.mainClass>smartai.examples.face.facedet.FaceDetDemo</exec.mainClass>
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ import cn.smartjavaai.face.model.facerec.FaceRecModel;
|
||||
import cn.smartjavaai.face.utils.SimilarityUtil;
|
||||
import cn.smartjavaai.face.vector.config.MilvusConfig;
|
||||
import cn.smartjavaai.face.vector.config.SQLiteConfig;
|
||||
import cn.smartjavaai.face.vector.entity.FaceVector;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -360,6 +361,53 @@ public class FaceRecDemo {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取人脸信息
|
||||
*/
|
||||
@Test
|
||||
public void getFaceInfo(){
|
||||
//使用ID获取人脸信息
|
||||
try (FaceRecModel faceRecModel = getFaceRecModelWithSQLiteConfig()){
|
||||
//等待加载人脸库结束
|
||||
while (!faceRecModel.isLoadFaceCompleted()){
|
||||
Thread.sleep(100);
|
||||
}
|
||||
//ID需改为你需要查询的ID
|
||||
R<FaceVector> faceInfoResult = faceRecModel.getFaceInfoById("9c4c316d53a74b1184195c1714c250c4");
|
||||
if(faceInfoResult.isSuccess()){
|
||||
log.info("人脸信息:{}", JSONObject.toJSONString(faceInfoResult.getData()));
|
||||
}else{
|
||||
log.info("获取人脸信息失败:{}", faceInfoResult.getMessage());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取人脸信息
|
||||
*/
|
||||
@Test
|
||||
public void listFaces(){
|
||||
//使用ID获取人脸信息
|
||||
try (FaceRecModel faceRecModel = getFaceRecModelWithDbConfig()){
|
||||
//等待加载人脸库结束
|
||||
while (!faceRecModel.isLoadFaceCompleted()){
|
||||
Thread.sleep(100);
|
||||
}
|
||||
//ID需改为你需要查询的ID
|
||||
R<List<FaceVector>> faceInfoResult = faceRecModel.listFaces(1, 10);
|
||||
if(faceInfoResult.isSuccess()){
|
||||
log.info("人脸信息:{}", JSONObject.toJSONString(faceInfoResult.getData()));
|
||||
}else{
|
||||
log.info("获取人脸信息失败:{}", faceInfoResult.getMessage());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -79,6 +79,8 @@ public class LivenessDetDemo {
|
||||
这个数量相当于多帧识别结果融合的融合的帧数。当输入的帧数超过设定帧数的时候,会采用滑动窗口的方式,返回融合的最近输入的帧融合的识别结果。
|
||||
一般来说,在10以内,帧数越多,结果越稳定,相对性能越好,但是得到结果的延时越高。*/
|
||||
config.setFrameCount(LivenessConstant.DEFAULT_FRAME_COUNT);
|
||||
//视频最大检测帧数
|
||||
config.setMaxVideoDetectFrames(LivenessConstant.DEFAULT_MAX_VIDEO_DETECT_FRAMES);
|
||||
//指定人脸检测模型
|
||||
config.setDetectModel(getFaceDetModel());
|
||||
return LivenessModelFactory.getInstance().getModel(config);
|
||||
@@ -103,6 +105,8 @@ public class LivenessDetDemo {
|
||||
这个数量相当于多帧识别结果融合的融合的帧数。当输入的帧数超过设定帧数的时候,会采用滑动窗口的方式,返回融合的最近输入的帧融合的识别结果。
|
||||
一般来说,在10以内,帧数越多,结果越稳定,相对性能越好,但是得到结果的延时越高。*/
|
||||
config.setFrameCount(LivenessConstant.DEFAULT_FRAME_COUNT);
|
||||
//视频最大检测帧数
|
||||
config.setMaxVideoDetectFrames(LivenessConstant.DEFAULT_MAX_VIDEO_DETECT_FRAMES);
|
||||
//指定人脸检测模型
|
||||
config.setDetectModel(getFaceDetModel());
|
||||
return LivenessModelFactory.getInstance().getModel(config);
|
||||
|
||||
Reference in New Issue
Block a user