49 lines
2.1 KiB
C
Raw Normal View History

2024-07-15 10:31:26 +08:00
#ifndef _DNNINFER_H_
#define _DNNINFER_H_
#include <stdio.h>
#include "DnnDefine.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
//<2F><>ʼ<EFBFBD><CABC>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>־
void DnnInfer_InitGlobalLog();
//<2F>ر<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>־
void DnnInfer_UnInitGlobalLog();
//ֱ<>Ӵ<EFBFBD><D3B4>ļ<EFBFBD><C4BC><EFBFBD>ȡmodel<65><6C>Ϣ
bool DnnInfer_GetInferParamFormModelFile(const char* pstrFileName, InferenceParameterEx* pInferParam);
//ֱ<><D6B1><EFBFBD>޸<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
bool DnnInfer_SetInferParamToModelFile(const char* pStrFileName, InferenceParameterEx* pInferParam);
//<2F><>ȡ<EFBFBD><EFBFBD><E8B1B8>Ϣ
bool DnnInfer_GetDeviceInfo(GpuDeviceInfo* pGpuDeviceInfo);
//<2F><>ʼ<EFBFBD><CABC>ѵ<EFBFBD><D1B5>,<2C><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>train<69><6E><EFBFBD><EFBFBD>,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);
//<2F><>ȡģ<C8A1><C4A3><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD>=0<><30><EFBFBD><EFBFBD>λ=1<><31><EFBFBD>ָ<EFBFBD>=2,<2C>ն<EFBFBD><D5B6><EFBFBD>=-1<><31>
int DnnInfer_GetModelType(void* pObject);
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
const char* DnnInfer_GetErrorString(void* pObject);
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool DnnInfer_Cls_InferDatum(void* pObject, Datum* pInputDatum, Datum* pOutputDatum);
bool DnnInfer_Cls_Infer(void* pObject, Datum* pInputDatum,int* iLabelArray, float* fpProbalityArray);
//Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD>ֵ0.4<EFBFBD><EFBFBD>nms<EFBFBD><EFBFBD>ֵ0.6
bool DnnInfer_Det_Infer(void* pObject, Datum* pInputDatum, DetResult* pDetResult, int iInArraySize, int& iUseArraySize);
//ʹ<><CAB9><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>nms<6D><73>ֵ
bool DnnInfer_Det_InferV2(void* pObject, Datum* pInputDatum, DetResult* pDetResult, int iInArraySize, int& iUseArraySize, float scoreTheshold, float nmsTheshold);
//<2F><>ʼ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>
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