49 lines
2.1 KiB
C
49 lines
2.1 KiB
C
#ifndef _DNNINFER_H_
|
||
#define _DNNINFER_H_
|
||
|
||
#include <stdio.h>
|
||
#include "DnnDefine.h"
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif /* __cplusplus */
|
||
//初始化全局日志
|
||
void DnnInfer_InitGlobalLog();
|
||
//关闭全局日志
|
||
void DnnInfer_UnInitGlobalLog();
|
||
//直接从文件读取model信息
|
||
bool DnnInfer_GetInferParamFormModelFile(const char* pstrFileName, InferenceParameterEx* pInferParam);
|
||
//直接修改模型文件参数
|
||
bool DnnInfer_SetInferParamToModelFile(const char* pStrFileName, InferenceParameterEx* pInferParam);
|
||
//获取设备信息
|
||
bool DnnInfer_GetDeviceInfo(GpuDeviceInfo* pGpuDeviceInfo);
|
||
|
||
//初始化训练,返回一个train对象,infermode 0: cpu 1:gpu
|
||
void* DnnInfer_Init(const char* pstrFileName,int iBatchSize,int iInferMode, int iDeviceIndex = 0);
|
||
bool DnnInfer_InitV2(DnnInferInfo* pDnnInferInfo, void** pInferObject, YYErrorMsg* pYyErrorMsg);
|
||
bool DnnInfer_GetInputInfo(void* pObject,int* piWidth, int* piHeight, int* piChannel, int* piBatchSize,int* piClassNum);
|
||
//获取模型类型(分类=0,定位=1,分割=2,空对象=-1)
|
||
int DnnInfer_GetModelType(void* pObject);
|
||
//得到错误信息
|
||
const char* DnnInfer_GetErrorString(void* pObject);
|
||
//开始分类推理
|
||
bool DnnInfer_Cls_InferDatum(void* pObject, Datum* pInputDatum, Datum* pOutputDatum);
|
||
bool DnnInfer_Cls_Infer(void* pObject, Datum* pInputDatum,int* iLabelArray, float* fpProbalityArray);
|
||
//默认置信度阈值0.4,nms阈值0.6
|
||
bool DnnInfer_Det_Infer(void* pObject, Datum* pInputDatum, DetResult* pDetResult, int iInArraySize, int& iUseArraySize);
|
||
//使用自定义的置信度阈值,和nms阈值
|
||
bool DnnInfer_Det_InferV2(void* pObject, Datum* pInputDatum, DetResult* pDetResult, int iInArraySize, int& iUseArraySize, float scoreTheshold, float nmsTheshold);
|
||
|
||
//开始分割推理
|
||
bool DnnInfer_Seg_Infer(void* pObject, Datum* pInputDatum, Datum* pOutputDatum);
|
||
bool DnnInfer_Seg_InferV2(void* pObject, Datum* pInputDatum, Datum* pOutputLabel, Datum* pOutputProb);
|
||
bool DnnInfer_Seg_InferV3(void* pObject, Datum* pInputDatum, SegResult* segResult);
|
||
|
||
void DnnInfer_Close(void* pObject);
|
||
bool DnnInfer_GetLabelName(void* pObject, char* pstrLabelNames, int iLabelIndex);
|
||
int DnnInfer_GetClassNum(void* pObject);
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif /* __cplusplus */
|
||
#endif
|