public abstract class BaseFeatureSearchEngine extends java.lang.Object
FseJniBridge
拆分开主要是为了便于生成c header文件Modifier and Type | Class and Description |
---|---|
static class |
BaseFeatureSearchEngine.FeatureSeImpl
|
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_INITIAL_CAPACITY |
static float |
DEFAULT_LOAD_FACTOR |
static int |
DEFAULT_MODE |
static int |
DEFAULT_OVERBLOCK_CAPACITY |
protected static java.lang.String |
ENV_FSE |
protected static java.lang.String |
FSE_LIBNAME |
protected static boolean |
libraryLoaded
动态库是否加载标志
子类在成功加载动态库后,须将此标志置为true |
protected static java.lang.String |
PROP_FSE |
protected static java.lang.String |
PROP_LIBNAME |
Modifier | Constructor and Description |
---|---|
protected |
BaseFeatureSearchEngine() |
Modifier and Type | Method and Description |
---|---|
static boolean |
addFeature(byte[] id,
byte[] code,
java.lang.String imgMD5)
添加一条特征码到内存表
输入参数 id, code 为null 时抛出IllegalArgumentException |
static void |
clearAll()
删除内存表中所有特征数据
|
static CodeBean |
getFeature(byte[] id)
根据特征码ID在表中查找指定的记录
|
protected static java.lang.String |
getFseHome()
查找 fse_home变量
优先在系统变量定义中查找'fse_home',如果找不到,再在环境变量中查找'FSE_HOME' 如果都找不到则返回 null |
protected static java.lang.String |
getFseLibname() |
protected static void |
init()
用缺省值初始化
|
static void |
init(int mode,
int initCapacity,
float loadFactor,
int overBlockCapacity)
JNI接口初始化
|
static boolean |
isLibraryLoaded() |
protected static void |
loadLibrary(java.lang.String libdir,
java.lang.String libname)
加载名为
libname 的动态库,
如果libdir 为null 则调用System.loadLibrary(String) 在系统搜索路径下查找动态库,
否则调用System.load(String) 加载libdir 指定路径下的动态库 |
static void |
release()
释放所有资源
|
static boolean |
removeFeature(byte[] id)
根据特征码ID中表中删除指定的记录
|
static CodeBean[] |
searchCode(byte[] code,
double sim,
int rows,
java.util.Collection<java.lang.String> imgMD5Set,
net.gdface.utils.TimeCostProbe timeCost)
|
static CodeBean[] |
searchCode(byte[] code,
double sim,
int rows,
java.util.Set<java.lang.String> imgMD5Set,
net.gdface.utils.TimeCostProbe timeCost)
特征码
code 与数据库中的特征码比对,以相似度降序返回比对结果 |
static CodeBean[] |
searchCode(byte[] code,
double sim,
int rows,
java.lang.String[] imgMD5Set)
在内存表中根据比对相似度进行特征码搜索
|
static int |
size() |
static java.lang.String |
statInfo() |
protected static final java.lang.String ENV_FSE
protected static final java.lang.String PROP_FSE
protected static final java.lang.String PROP_LIBNAME
protected static final java.lang.String FSE_LIBNAME
public static final int DEFAULT_INITIAL_CAPACITY
public static final float DEFAULT_LOAD_FACTOR
public static final int DEFAULT_OVERBLOCK_CAPACITY
public static final int DEFAULT_MODE
protected static boolean libraryLoaded
protected BaseFeatureSearchEngine()
protected static void loadLibrary(java.lang.String libdir, java.lang.String libname)
libname
的动态库,
如果libdir
为null
则调用System.loadLibrary(String)
在系统搜索路径下查找动态库,
否则调用System.load(String)
加载libdir
指定路径下的动态库libdir
- libname
- protected static final java.lang.String getFseHome()
null
protected static final java.lang.String getFseLibname()
protected static void init()
public static final CodeBean[] searchCode(byte[] code, double sim, int rows, java.util.Set<java.lang.String> imgMD5Set, net.gdface.utils.TimeCostProbe timeCost)
code
与数据库中的特征码比对,以相似度降序返回比对结果code
- sim
- rows
- imgMD5Set
- timeCost
- CodeBean
数组searchCode(byte[], double, int, String[])
public static final CodeBean[] searchCode(byte[] code, double sim, int rows, java.util.Collection<java.lang.String> imgMD5Set, net.gdface.utils.TimeCostProbe timeCost)
code
- sim
- rows
- imgMD5Set
- timeCost
- searchCode(byte[], double, int, Set, TimeCostProbe)
public static boolean isLibraryLoaded()
public static void init(int mode, int initCapacity, float loadFactor, int overBlockCapacity)
mode
- 指定运行模式(opencl,sse),默认为0(自动识别)initCapacity
- 内存表初始化容量loadFactor
- 内存表扩容因子overBlockCapacity
- 过载表容量public static void release()
public static CodeBean[] searchCode(byte[] code, double sim, int rows, java.lang.String[] imgMD5Set)
code
- 要比对的特征码sim
- 相似度阀值rows
- 最大返回的记录数imgMD5Set
- 比对的图片范围public static CodeBean getFeature(byte[] id)
id
- 特征码ID,为null
时抛出IllegalArgumentException
public static boolean addFeature(byte[] id, byte[] code, java.lang.String imgMD5)
id, code
为null
时抛出IllegalArgumentException
id
- 特征码ID(MD5校验码)code
- 特征码字节数组imgMD5
- 特征码所在图像的MD5校验码,可为null
public static boolean removeFeature(byte[] id)
id
- 特征码MD5校验码public static void clearAll()
public static int size()
public static java.lang.String statInfo()
Copyright © 2020. All rights reserved.