// SSD定义 #ifndef __SSD_DEFINITION_H__ #define __SSD_DEFINITION_H__ #include #include using namespace std; namespace migraphxSamples { #define SSD_MAX_PRIORBOX_LAYER_NUM 10 // 能够支持的最大检测层数量 // SSD参数 typedef struct _SSDParameter { int numberOfPriorBoxLayer; // 检测层数量 // Model Parameters int convHeight[SSD_MAX_PRIORBOX_LAYER_NUM*2]; int convWidth[SSD_MAX_PRIORBOX_LAYER_NUM*2]; int convChannel[SSD_MAX_PRIORBOX_LAYER_NUM*2]; // PriorBoxLayer Parameters int priorBoxWidth[SSD_MAX_PRIORBOX_LAYER_NUM]; // 每个检测层priorbox的宽 int priorBoxHeight[SSD_MAX_PRIORBOX_LAYER_NUM];// 每个检测层priorbox的高 std::vector> priorBoxMinSize; // 每个检测层priorbox的minsize std::vector> priorBoxMaxSize; // 每个检测层priorbox的maxsize int minSizeNum[SSD_MAX_PRIORBOX_LAYER_NUM]; // 每个检测层priorbox的minsize数量 int maxSizeNum[SSD_MAX_PRIORBOX_LAYER_NUM]; // 每个检测层priorbox的maxsize数量 int srcImageHeight;// 原图大小 int srcImageWidth; int inputAspectRatioNum[SSD_MAX_PRIORBOX_LAYER_NUM];// 每个检测层宽高比的数量 std::vector> priorBoxAspectRatio;// 每个检测层的宽高比 float priorBoxStepWidth[SSD_MAX_PRIORBOX_LAYER_NUM];// 每个检测层步长的宽 float priorBoxStepHeight[SSD_MAX_PRIORBOX_LAYER_NUM];// 每个检测层步长的高 float offset; int flip[SSD_MAX_PRIORBOX_LAYER_NUM]; int clip[SSD_MAX_PRIORBOX_LAYER_NUM]; int priorBoxVar[4]; // SoftmaxLayer Parameters int softMaxInChn[SSD_MAX_PRIORBOX_LAYER_NUM]; int softMaxInHeight; int concatNum; int softMaxOutWidth; int softMaxOutHeight; int softMaxOutChn; // DetectionOutLayer Parameters int classNum;// 类别数(包含背景类) int topK; int keepTopK; int NMSThresh; int confThresh; int detectInputChn[SSD_MAX_PRIORBOX_LAYER_NUM]; int convStride[SSD_MAX_PRIORBOX_LAYER_NUM]; // buffer int *buffer; int *classification[SSD_MAX_PRIORBOX_LAYER_NUM];// 分类数据 int *regression[SSD_MAX_PRIORBOX_LAYER_NUM];// 回归 int *priorboxOutputData; int *softMaxOutputData; int *getResultBuffer; int *dstScore; int *dstRoi; int *classRoiNum; _SSDParameter():srcImageHeight(0), srcImageWidth(0), offset(0.0), softMaxInHeight(0), concatNum(0), softMaxOutWidth(0), softMaxOutHeight(0), softMaxOutChn(0), buffer(NULL), priorboxOutputData(NULL), softMaxOutputData(NULL), getResultBuffer(NULL), dstScore(NULL), dstRoi(NULL), classRoiNum(NULL){} }SSDParameter; typedef struct _QuickSortStack { int min; int max; }QuickSortStack; } #endif