@RestController public class FaceApiSpringController extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
DESCRIPTION |
| Constructor and Description |
|---|
FaceApiSpringController() |
| Modifier and Type | Method and Description |
|---|---|
FaceApiSpringController.Response |
compare2Face(FaceApiSpringController.Compare2FaceArgs args)
对人脸图像提取特征码,返回比较相似度结果
imgData1和imgData2相等或imgData2为 null时,即比较同一张图像中的两张人脸的相似度
调用该方法时假设图像(imgData1和imgData2)能正常解码,所以当对图像解码出现异常时,将 ImageErrorException异常对象封装到RuntimeException抛出任何参数为 null则抛出IllegalArgumentException |
FaceApiSpringController.Response |
compareCode(FaceApiSpringController.CompareCodeArgs args)
特征码比对
参数为 null或长度不一致则抛出IllegalArgumentException异常,返回两个特征码之间的相似度(0.0~1) |
FaceApiSpringController.Response |
compareCodes(FaceApiSpringController.CompareCodesArgs args)
特征码比对1:N
返回对应的特征码相似度数组 |
FaceApiSpringController.Response |
compareFaces(FaceApiSpringController.CompareFacesArgs args)
|
FaceApiSpringController.Response |
compareFeatures(FaceApiSpringController.CompareFeaturesArgs args)
特征码比对1:N
|
protected FaceApi |
delegate() |
FaceApiSpringController.Response |
detectAndCompare2Face(FaceApiSpringController.DetectAndCompare2FaceArgs args)
对两个图像指定范围(
FRect)进行人脸检测,找到并提取唯一的人脸特征码,然后比较相似度,返回相似度结果imgData1和imgData2相等或imgData2为 null时,
即比较同一张图像中的两张人脸的相似度,这种情况下detectRect1和detectRect2都不能为nullimgData1和imgData2不相等且都不为 null时,detectRect1和detectRect2被忽略 |
FaceApiSpringController.Response |
detectAndGetCodeInfo(FaceApiSpringController.DetectAndGetCodeInfoArgs args)
先对图像数据
imgData进行人脸检测,然后提取人脸特征码返回所有成功提取特征码的 CodeInfo数组,
与#getCodeInfo(byte[], int, CodeInfo[])的返回结果有差别,返回结果中不包含检测到人脸但提取特征码失败的对象 |
FaceApiSpringController.Response |
detectCenterFace(FaceApiSpringController.DetectCenterFaceArgs args)
检测最中心的人脸
返回人脸位置数据对象 CodeInfo |
FaceApiSpringController.Response |
detectFace(FaceApiSpringController.DetectFaceArgs args)
|
FaceApiSpringController.Response |
detectMaxFace(FaceApiSpringController.DetectMaxFaceArgs args)
检测最大的人脸
返回人脸位置数据对象 CodeInfo |
FaceApiSpringController.Response |
getCodeInfo(FaceApiSpringController.GetCodeInfoArgs args)
根据
facePos提供的人脸信息位置, 在imgData图像中提取特征码与 #detectAndGetCodeInfo(byte[], int)不同, 本方法不对图像数据imgData进行人脸检测,假设 facePos是 #detectFace(byte[])或 #detectFaceAgain(byte[], FRect[]) 的返回结果返回facePos,如果没有提取到特征码,则对应元素 CodeInfo.getCode()返回null |
FaceApiSpringController.Response |
getCodeInfo(FaceApiSpringController.GetCodeInfoSingleArgs args)
|
FaceApiSpringController.Response |
getFeature(FaceApiSpringController.GetFeatureArgs args)
多张人脸提取特征(用于多张人脸合成一个特征的算法)
返回人脸特征数据 #multiFaceFeature()返回false时代表此方法未被实现,执行会抛出异常 |
FaceApiSpringController.Response |
hasFace(FaceApiSpringController.HasFaceArgs args)
判断图像是否能提取到人脸特征码
为 true则能检测到人脸并能提取特征码 |
FaceApiSpringController.Response |
isLocal()
返回当前接口实现方式
false WebService类型 true 本地实现 |
FaceApiSpringController.Response |
matDetectAndGetCodeInfo(FaceApiSpringController.MatDetectAndGetCodeInfoArgs args)
先对图像矩阵数据
imgData进行人脸检测,然后提取人脸特征码返回包含人脸特征数据的 CodeInfo数组 |
FaceApiSpringController.Response |
matDetectFace(FaceApiSpringController.MatDetectFaceArgs args)
对图像矩阵进行人脸检测
返回人脸信息对象列表,没有检测到人脸返回空表 |
FaceApiSpringController.Response |
matDetectMaxFace(FaceApiSpringController.MatDetectMaxFaceArgs args)
检测最大的人脸
返回人脸位置数据对象 CodeInfo |
FaceApiSpringController.Response |
matGetCodeInfo(FaceApiSpringController.MatGetCodeInfoArgs args)
根据facePos提供的人脸信息位置, 在图像矩阵中提取特征码
包含人脸特征数据的facePos |
FaceApiSpringController.Response |
matGetCodeInfo(FaceApiSpringController.MatGetCodeInfoSingleArgs args)
|
FaceApiSpringController.Response |
matHasFace(FaceApiSpringController.MatHasFaceArgs args)
判断图像矩阵是否能提取到人脸特征码
返回为 true则能检测到人脸并能提取特征码 |
FaceApiSpringController.Response |
matSearchFaces(FaceApiSpringController.MatSearchFacesArgs args)
1:N 人脸图像搜索
对 facePos指定的人脸位置提取特征码,然后在数据库中搜索相似的人脸返回搜索结果。返回包含相似度计算结果的FseResult数组 相似度值通过 FseResult.getSimilartys() 获取 对应的人脸特征ID由 FseResult.getFeatureIds()获取 |
FaceApiSpringController.Response |
matWearMask(FaceApiSpringController.MatWearMaskArgs args)
检测指定的人脸是否戴口罩
返回值有三种状态: true 戴口罩返回
false 未戴口罩返回
null 不知道
|
FaceApiSpringController.Response |
sdkCapacity()
返回当前SDK特性(能力)描述,已定义字段:
SDK_VERSION [string]SDK版本号 MULTI_FACE_FEATURE [boolean]算法是否支持多人脸合成特征 FACE_LIVE [boolean]是否支持活体检测 WEAR_MASK [boolean]是否支持口罩检测 FDDATA_SIZE [int]人脸检测数据的(byte)长度 FEATURE_SIZE [int]人脸特征数据(byte)长度 MAX_FACE_COUNT [int]最大检测人脸数目 FSE_ENABLE [boolean]是否支持特征内存搜索引擎 CODEINFO_RELOCATE [boolean]是否支持CodeInfo对象重定位 LOCAL_DETECT [boolean] 人脸检测是否为本地实现,未定义则为false 以上字段名常量定义参见 CapacityFieldConstant |
FaceApiSpringController.Response |
searchFaces(FaceApiSpringController.SearchFacesArgs args)
1:N 人脸图像搜索
对 facePos指定的人脸位置提取特征码,然后在数据库中搜索相似的人脸返回搜索结果。返回包含相似度计算结果的FseResult数组 相似度值通过 FseResult.getSimilartys() 获取 对应的人脸特征ID由 FseResult.getFeatureIds()获取 |
FaceApiSpringController.Response |
searchFeatures(FaceApiSpringController.SearchFeaturesArgs args)
1:N 人脸特征搜索
搜索与 code相似度大于similarty的记录(最多返回前rows个结果)返回包含相似度计算结果的 FseResult数组,返回结果以相似度降序排列相似度值通过 FseResult#getSimilartys() 获取对应的人脸特征ID由 FseResult#getFeatureIds()获取 |
static void |
setInstanceSupplier(FaceApiSpringController.InstanceSupplier instanceSupplier) |
FaceApiSpringController.Response |
wearMask(FaceApiSpringController.WearMaskArgs args)
检测指定的人脸是否戴口罩
返回值有三种状态: true 戴口罩返回
false 未戴口罩返回
null 不知道
|
public static java.lang.String DESCRIPTION
public FaceApiSpringController()
public static void setInstanceSupplier(FaceApiSpringController.InstanceSupplier instanceSupplier)
instanceSupplier - 要设置的 instanceSupplier@ResponseBody
@RequestMapping(value="/FaceApi/compare2Face",
method=POST)
public FaceApiSpringController.Response compare2Face(@RequestBody
FaceApiSpringController.Compare2FaceArgs args)
null时,即比较同一张图像中的两张人脸的相似度
调用该方法时假设图像(imgData1和imgData2)能正常解码,ImageErrorException异常对象封装到RuntimeException抛出null则抛出IllegalArgumentExceptionimgData1 - 图像1数据(jpg,png...)字节数组facePos1 - 检测到的人脸/眼睛位置imgData2 - 图像1数据(jpg,png...)字节数组facePos2 - 检测到的人脸/眼睛位置NotFaceDetectedExceptionnet.gdface.image.ImageErrorException#getCodeInfo(byte[], int, CodeInfo[]),
#compareCode(byte[], byte[])@ResponseBody
@RequestMapping(value="/FaceApi/compareCode",
method=POST)
public FaceApiSpringController.Response compareCode(@RequestBody
FaceApiSpringController.CompareCodeArgs args)
null或长度不一致则抛出IllegalArgumentException异常,返回两个特征码之间的相似度(0.0~1)code1 - 待比对的特征码code2 - 待比对的特征码@ResponseBody
@RequestMapping(value="/FaceApi/compareCodes",
method=POST)
public FaceApiSpringController.Response compareCodes(@RequestBody
FaceApiSpringController.CompareCodesArgs args)
code1 - 待比对的特征码codes - 包含人脸特征的CodeInfo数组@ResponseBody
@RequestMapping(value="/FaceApi/compareFaces",
method=POST)
public FaceApiSpringController.Response compareFaces(@RequestBody
FaceApiSpringController.CompareFacesArgs args)
code - 人脸特征数据imgData - 待比对的图像(jpg,png...)(可能有多张人脸)faceNum - 参见 #getCodeInfo(byte[], int, CodeInfo[])CompareResult实例NotFaceDetectedException - 没有检测到人脸net.gdface.image.ImageErrorException#compareCodes(byte[], CodeInfo[]),
#detectAndGetCodeInfo(byte[], int)@ResponseBody
@RequestMapping(value="/FaceApi/compareFeatures",
method=POST)
public FaceApiSpringController.Response compareFeatures(@RequestBody
FaceApiSpringController.CompareFeaturesArgs args)
code1 - 人脸特征数据codes - 一组人脸特征@ResponseBody
@RequestMapping(value="/FaceApi/detectAndCompare2Face",
method=POST)
public FaceApiSpringController.Response detectAndCompare2Face(@RequestBody
FaceApiSpringController.DetectAndCompare2FaceArgs args)
FRect)进行人脸检测,找到并提取唯一的人脸特征码,然后比较相似度,返回相似度结果null时,
即比较同一张图像中的两张人脸的相似度,这种情况下detectRect1和detectRect2都不能为nullnull时,detectRect1和detectRect2被忽略imgData1 - 图像1数据(jpg,png...)字节数组,为null则抛出IllegalArgumentExceptiondetectRect1 - 图片检测范围,为null时全图检测imgData2 - 图像2数据(jpg,png...)字节数组detectRect2 - 图片检测范围,为null时全图检测net.gdface.image.ImageErrorExceptionNotFaceDetectedException#detectAndGetCodeInfo(byte[], int),
#compareCode(byte[], byte[])@ResponseBody
@RequestMapping(value="/FaceApi/detectAndGetCodeInfo",
method=POST)
public FaceApiSpringController.Response detectAndGetCodeInfo(@RequestBody
FaceApiSpringController.DetectAndGetCodeInfoArgs args)
imgData进行人脸检测,然后提取人脸特征码CodeInfo数组,
与#getCodeInfo(byte[], int, CodeInfo[])的返回结果有差别,返回结果中不包含检测到人脸但提取特征码失败的对象imgData - 图像数据(jpg,png...)字节数组,为null则抛出IllegalArgumentExceptionfaceNum - 参见 #getCodeInfo(byte[], int, CodeInfo[])CodeInfo数组net.gdface.image.ImageErrorExceptionNotFaceDetectedException - 没有检测人脸或提取到特征码的人脸数目不是要求的人脸数目(faceNum>0)@ResponseBody
@RequestMapping(value="/FaceApi/detectCenterFace",
method=POST)
public FaceApiSpringController.Response detectCenterFace(@RequestBody
FaceApiSpringController.DetectCenterFaceArgs args)
CodeInfoimgData - 图像数据(jpg,png...)字节数组,为null则抛出IllegalArgumentExceptionCodeInfoNotFaceDetected - 没有检测到人脸ImageError - 图像读取错误@ResponseBody
@RequestMapping(value="/FaceApi/detectFace",
method=POST)
public FaceApiSpringController.Response detectFace(@RequestBody
FaceApiSpringController.DetectFaceArgs args)
imgData - 图像数据(jpg,png...)字节数组,为null则抛出IllegalArgumentExceptionCodeInfo数组net.gdface.image.ImageErrorException - 图像读取错误@ResponseBody
@RequestMapping(value="/FaceApi/detectMaxFace",
method=POST)
public FaceApiSpringController.Response detectMaxFace(@RequestBody
FaceApiSpringController.DetectMaxFaceArgs args)
CodeInfoimgData - 图像数据(jpg,png...)字节数组,为null则抛出IllegalArgumentExceptionCodeInfoNotFaceDetected - 没有检测到人脸ImageError - 图像读取错误@ResponseBody
@RequestMapping(value="/FaceApi/getCodeInfo",
method=POST)
public FaceApiSpringController.Response getCodeInfo(@RequestBody
FaceApiSpringController.GetCodeInfoArgs args)
facePos提供的人脸信息位置, 在imgData图像中提取特征码#detectAndGetCodeInfo(byte[], int)不同, 本方法不对图像数据imgData进行人脸检测,facePos是 #detectFace(byte[])或 #detectFaceAgain(byte[], FRect[]) 的返回结果CodeInfo.getCode()返回nullimgData - 图像数据(jpg,png...)字节数组,为null则抛出 IllegalArgumentExceptionfaceNum - 要求返回的人脸特征码数目faceNum,则抛出NotFaceDetectedExceptionfacePos - 检测到的人脸位置对象列表null或数组长度为0时抛出IllegalArgumentExceptionnull,则跳过NotFaceDetectedException - 提取特征码的人脸数目为0或没有提取到指定数目(faceNum大于0时)的特征码@ResponseBody
@RequestMapping(value="/FaceApi/getCodeInfoSingle",
method=POST)
public FaceApiSpringController.Response getCodeInfo(@RequestBody
FaceApiSpringController.GetCodeInfoSingleArgs args)
imgData - 图像数据(jpg,png...)字节数组,为null则抛出 IllegalArgumentExceptionfacePos - 人脸位置信息对象,为null则抛出异常CodeInfo or null@ResponseBody
@RequestMapping(value="/FaceApi/getFeature",
method=POST)
public FaceApiSpringController.Response getFeature(@RequestBody
FaceApiSpringController.GetFeatureArgs args)
#multiFaceFeature()返回false时代表此方法未被实现,执行会抛出异常faces - 人脸图像数据(jpg,png...)与人脸位置信息对象的映射NotFaceDetectedException@ResponseBody
@RequestMapping(value="/FaceApi/hasFace",
method=POST)
public FaceApiSpringController.Response hasFace(@RequestBody
FaceApiSpringController.HasFaceArgs args)
true则能检测到人脸并能提取特征码imgData - 图像数据(jpg,png...)字节数组,为null则抛出IllegalArgumentExceptiontrue则能检测到人脸并能提取特征码net.gdface.image.ImageErrorException#detectAndGetCodeInfo(byte[], int)@ResponseBody
@RequestMapping(value="/FaceApi/isLocal",
method=POST)
public FaceApiSpringController.Response isLocal()
@ResponseBody
@RequestMapping(value="/FaceApi/matDetectAndGetCodeInfo",
method=POST)
public FaceApiSpringController.Response matDetectAndGetCodeInfo(@RequestBody
FaceApiSpringController.MatDetectAndGetCodeInfoArgs args)
imgData进行人脸检测,然后提取人脸特征码CodeInfo数组matType - 图像矩阵类型matData - 图像矩阵width - 图像宽度height - 图像高度faceNum - 参见 #getCodeInfo(byte[], int, CodeInfo[])CodeInfo数组NotFaceDetectedException@ResponseBody
@RequestMapping(value="/FaceApi/matDetectFace",
method=POST)
public FaceApiSpringController.Response matDetectFace(@RequestBody
FaceApiSpringController.MatDetectFaceArgs args)
matType - 图像矩阵类型matData - 图像矩阵width - 图像宽度height - 图像高度@ResponseBody
@RequestMapping(value="/FaceApi/matDetectMaxFace",
method=POST)
public FaceApiSpringController.Response matDetectMaxFace(@RequestBody
FaceApiSpringController.MatDetectMaxFaceArgs args)
CodeInfoimgData - 图像数据(jpg,png...)字节数组,为null则抛出IllegalArgumentExceptionCodeInfoNotFaceDetected - 没有检测到人脸@ResponseBody
@RequestMapping(value="/FaceApi/matGetCodeInfo",
method=POST)
public FaceApiSpringController.Response matGetCodeInfo(@RequestBody
FaceApiSpringController.MatGetCodeInfoArgs args)
matType - 图像矩阵类型matData - 图像矩阵width - 图像宽度height - 图像高度facenum - 要求返回的人脸特征码数目faceNum,则抛出NotFaceDetectedExceptionfacePos - 人脸位置信息对象,不可为nullNotFaceDetectedException - 提取特征码的人脸数目为0或没有提取到指定数目(faceNum大于0时)的特征码@ResponseBody
@RequestMapping(value="/FaceApi/matGetCodeInfoSingle",
method=POST)
public FaceApiSpringController.Response matGetCodeInfo(@RequestBody
FaceApiSpringController.MatGetCodeInfoSingleArgs args)
matType - 图像矩阵类型matData - 图像矩阵width - 图像宽度height - 图像高度facePos - 人脸位置信息对象,为null则抛出异常CodeInfo or null@ResponseBody
@RequestMapping(value="/FaceApi/matHasFace",
method=POST)
public FaceApiSpringController.Response matHasFace(@RequestBody
FaceApiSpringController.MatHasFaceArgs args)
true则能检测到人脸并能提取特征码matType - 图像矩阵类型matData - 图像矩阵,为null则抛出IllegalArgumentExceptionwidth - 图像宽度height - 图像高度true则能检测到人脸并能提取特征码@ResponseBody
@RequestMapping(value="/FaceApi/matSearchFaces",
method=POST)
public FaceApiSpringController.Response matSearchFaces(@RequestBody
FaceApiSpringController.MatSearchFacesArgs args)
facePos指定的人脸位置提取特征码,然后在数据库中搜索相似的人脸返回搜索结果。matType - 图像矩阵类型matData - 图像矩阵width - 图像宽度facePos - 人脸位置对象null时,先做人脸检测再提取特征码null时,直接在指定的位置提取特征码similarty - 相似度阀值rows - 最多返回的记录数目FseResult数组NotFaceDetectedException - -net.gdface.image.ImageErrorException - -java.lang.UnsupportedOperationException - 没有人脸识别算法(FaceApi实例)支持#getCodeInfo(byte[], int, CodeInfo[]),
#searchFeatures(byte[], double, int)@ResponseBody
@RequestMapping(value="/FaceApi/matWearMask",
method=POST)
public FaceApiSpringController.Response matWearMask(@RequestBody
FaceApiSpringController.MatWearMaskArgs args)
true 戴口罩返回false 未戴口罩返回null 不知道matType - 图像矩阵类型matData - 图像矩阵width - 图像宽度height - 图像高度faceInfo - 人脸位置信息@ResponseBody
@RequestMapping(value="/FaceApi/sdkCapacity",
method=POST)
public FaceApiSpringController.Response sdkCapacity()
CapacityFieldConstant@ResponseBody
@RequestMapping(value="/FaceApi/searchFaces",
method=POST)
public FaceApiSpringController.Response searchFaces(@RequestBody
FaceApiSpringController.SearchFacesArgs args)
facePos指定的人脸位置提取特征码,然后在数据库中搜索相似的人脸返回搜索结果。imgData - 图片字节数组facePos - 人脸位置对象null时,先做人脸检测再提取特征码null时,直接在指定的位置提取特征码similarty - 相似度阀值rows - 最多返回的记录数目FseResult数组NotFaceDetectedException - -net.gdface.image.ImageErrorException - -java.lang.UnsupportedOperationException - 没有人脸识别算法(FaceApi实例)支持#getCodeInfo(byte[], int, CodeInfo[]),
#searchFeatures(byte[], double, int)@ResponseBody
@RequestMapping(value="/FaceApi/searchFeatures",
method=POST)
public FaceApiSpringController.Response searchFeatures(@RequestBody
FaceApiSpringController.SearchFeaturesArgs args)
code相似度大于similarty的记录(最多返回前rows个结果)FseResult数组,返回结果以相似度降序排列FseResult#getSimilartys() 获取FseResult#getFeatureIds()获取feature - 要搜索的特征码similarty - 相似度阀值rows - 最多返回的记录数目FseResult数组java.lang.UnsupportedOperationException - 没有人脸识别算法(FaceApi实例)支持@ResponseBody
@RequestMapping(value="/FaceApi/wearMask",
method=POST)
public FaceApiSpringController.Response wearMask(@RequestBody
FaceApiSpringController.WearMaskArgs args)
true 戴口罩返回false 未戴口罩返回null 不知道imgData - 图像数据(jpg,png...)字节数组,为null则抛出 IllegalArgumentExceptionfaceInfo - 可见光图像人脸信息net.gdface.image.ImageErrorExceptionCopyright © 2020. All rights reserved.