net.facelib.live.FaceLiveAndroid Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of facelive-android-base Show documentation
Show all versions of facelive-android-base Show documentation
detect live face for video stream
package net.facelib.live;
import static net.gdface.utils.ConditionChecks.checkNotNull;
import java.util.concurrent.atomic.AtomicReference;
import net.facelib.akcore.LicenseManager;
import net.gdface.image.BaseLazyImage;
import net.gdface.image.ImageErrorException;
import net.gdface.image.MatType;
import net.gdface.sdk.FRect;
/**
* 活体检测 android/arm平台(线程安全)
* @author guyadong
*
*/
public abstract class FaceLiveAndroid extends BaseFaceLive{
protected FaceLiveAndroid() {
}
/**
* 执行活体检测
* @param matType 图像矩阵类型
* @param matData 图像矩阵
* @param width 图像宽度
* @param height 图像高度
* @param rect 人脸检测方法返回的人脸检测信息原始数据
* @return 0--非活体,1--活体,2--缓存标志,3--未知,<0 错误代码
* @deprecated 兼容要求保持,replaced by {@link #liveProcess(MatType, byte[], int, int, FRect, AtomicReference)}
*/
public int nativeLiveProcess(MatType matType, byte[] matData, int width, int height, double[] rect){
return nativeLiveProcess(matType,matData,width,height,rect,null);
}
/**
* 执行活体检测
* @param matType 图像矩阵类型
* @param matData 图像矩阵
* @param width 图像宽度
* @param height 图像高度
* @param rect 人脸检测方法返回的人脸检测信息原始数据
* @param score [out]活体检测得分,可为{@code null}
* @return 0--非活体,1--活体,2--缓存标志,3--未知,<0 错误代码
* @deprecated 兼容要求保持,replaced by {@link #liveProcess(MatType, byte[], int, int, FRect, AtomicReference)}
*/
public abstract int nativeLiveProcess(MatType matType, byte[] matData, int width, int height,double[] rect, AtomicReferencescore);
/**
* 执行活体检测
* @param matType 矩阵类型:RGB,BGR,RGBA,NV21
* @param matData 图像矩阵
* @param width 矩阵宽度
* @param height 矩阵高度
* @param rect 人脸检测方法返回的人脸检测信息原始数据
* @return 0--非活体,1--活体,2--缓存标志,3--未知,<0 错误代码
* @deprecated 兼容要求保持,replaced by {@link #liveProcess(MatType, byte[], int, int, FRect, AtomicReference)}
*/
public int nativeLiveProcess( String matType,byte[] matData,int width, int height, double[] rect){
return nativeLiveProcess(matType,matData,width,height,rect,null);
}
/**
* 执行活体检测
* @param matType 矩阵类型:RGB,BGR,RGBA,NV21
* @param matData 图像矩阵
* @param width 矩阵宽度
* @param height 矩阵高度
* @param rect 人脸检测方法返回的人脸检测信息原始数据
* @param score [out]活体检测得分
* @return 0--非活体,1--活体,2--缓存标志,3--未知,<0 错误代码
* @deprecated 兼容要求保持,replaced by {@link #liveProcess(MatType, byte[], int, int, net.gdface.sdk.FRect, AtomicReference)}
*/
public int nativeLiveProcess( String matType,byte[] matData,int width, int height, double[] rect,AtomicReferencescore){
return nativeLiveProcess(MatType.valueOf(matType),matData, width, height,rect, score);
}
/**
* 执行活体检测
* @param matType 矩阵类型:RGB,BGR,RGBA,NV21
* @param matData 图像矩阵
* @param width 矩阵宽度
* @param height 矩阵高度
* @param rect 人脸检测方法返回的人脸检测信息原始数据
* @param score [out]活体检测得分
* @return 0--非活体,1--活体,2--缓存标志,3--未知,<0 错误代码
* @deprecated 兼容要求保持,replaced by
*/
public abstract int liveProcess(MatType matType, byte[] matData, int width, int height, FRect rect, AtomicReferencescore);
/**
* 执行活体检测
* @param platformImage 当前平台的图像对象,对于android平台,类型为Bitmap,对于通用JDK,类型为BufferedImage
* @param rect 人脸检测方法返回的人脸检测信息原始数据
* @param score [out]活体检测得分,可为{@code null}
* @return 0--非活体,1--活体,2--缓存标志,3--未知,<0 错误代码
* @deprecated 兼容要求保持,
*/
public int liveProcess(Object platformImage,FRect rect,AtomicReferencescore){
try {
BaseLazyImage lazyImage = BaseLazyImage.getLazyImageFactory().create(platformImage);
return liveProcess(getNativeMatType(),toNativeMat(lazyImage),lazyImage.getWidth(),lazyImage.getHeight(),rect,score);
} catch (ImageErrorException e) {
throw new RuntimeException(e);
}
}
/**
* @return 返回SDK的授权信息管理实例,如果SDK不需要授权返回{@code null}
*/
public abstract LicenseManager getLicenseManager();
/**
* 返回默认实例,为空抛出异常
* @return FaceLiveAndroid instance
*/
public static FaceLiveAndroid getInstance() {
return (FaceLiveAndroid)(checkNotNull(BaseFaceLiveSupport.INSTANCE,"default instance is null"));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy