001package net.gdface.mtfsdk;
002
003/**
004 * MTFSDK android/arm平台参数配置接口<br>
005 * SDK初始化时以SPI(Service Provider Interface)机制加载应用层提供的
006 * {@link MtfAndroidConfigProvider}实例,并通过接口实例获取的参数初始化SDK<br>
007 * 参见 {@link MtfAndroidArmBridge}的{@code config}字段.<br>
008 * NOTE:一般情况下无需修改SDK初始化参数.
009 * @author guyadong
010 *
011 */
012public interface MtfAndroidConfigProvider {
013    /**
014         * 人脸检测数据的(double)数组长度
015         */
016        public static final int FDDATA_LEN = 21;
017        /**
018         * 人脸检测数据的(byte)数组长度
019         */
020        public static final int FDDATA_BYTES=FDDATA_LEN*(Double.SIZE/8);
021        /**
022         * 最大检测人脸数目
023         */
024        public static final int MAX_FACE_COUNT = 3;
025        /**
026         * 人脸特征数据数组(double[])长度
027         */
028        public static final int FEATURE_LEN = 128;
029        /**
030         * 人脸特征数据数组(byte[])长度
031         */
032        public static final int FEATURE_BYTES=FEATURE_LEN*(Float.SIZE/8);
033        
034        /**
035         * 默认的人脸检测并发线程数
036         */
037        public static final int DEFAULT_DETECT_THREAD_NUMBER=1;
038        /**
039         * 默认最小人脸检测(宽/高)尺寸(像素)
040         */
041        public static final int DEFAULT_DETECT_MIN_FACE_SIZE=60;
042
043        /**
044         * 指定检测模块并发线程数,返回0使用默认值
045         * @return 
046         */
047        int getDetectThreadNumber();
048        /**
049         * 指定最小人脸检测(宽/高)尺寸(像素),返回0使用默认值
050         * @return
051         */
052        int getMinFaceSize();
053        /**
054         * 指定最大调用并发线程数,返回0使用默认值(CPU核数)
055         * @return
056         */
057        int getConcurrency();
058        /**
059         * 指定是否需要活体检测功能,<br>
060         * 返回{@code false}则关闭活体检测功能,SDK不会初始化活体检测模块,活体检测模块将不可用.
061         * 活体检测模块需要占用较多内存资源,在不需要使用该功能的情况,关闭该功能可以减少内存资源占用.<br>
062         * 默认提供的参数为{@code true},参见{@link DefaultMtfAndroidConfig#needLive()}
063         * @return
064         */
065        boolean needLive();
066        
067}