模型后处理

模型后处理类参考(tensorinfer框架)

ImagePreProcessInfo

类说明

用于记录图像类任务中模型前处理中的感兴趣(Region of Interest)区域,提供给模型后处理的坐标还原使用。

相关使用流程请参考后处理

支持的型号

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

公共参数

参数名 数据类型 参数说明
imageWidth uint32_t 图像宽度,默认值为0。
imageHeight uint32_t 图像内存高度,默认值为0。
originalWidth uint32_t 图像原始宽度,默认值为0。
originalHeight uint32_t 图像原始高度,默认值为0。
xRatio float x缩放比例,默认值为1.0。
xBias float x偏移量,默认值为0.0。
yRatio float y缩放比例,默认值为1.0。
yBias float y偏移量,默认值为0.0。
x0Valid float 目标框坐标,默认值为0.0。
y0Valid float 目标框坐标,默认值为0.0。
x1Valid float 目标框坐标,默认值为0.0。
y1Valid float 目标框坐标,默认值为0.0。

ImagePreProcessInfo

函数功能

类构造函数。

函数原型

ImagePreProcessInfo::ImagePreProcessInfo();
ImagePreProcessInfo::ImagePreProcessInfo(uint32_t width, uint32_t height);
ImagePreProcessInfo::ImagePreProcessInfo(uint32_t widthResize, uint32_t heightResize, uint32_t widthOriginal, uint32_t heightOriginal);

参数说明

参数名 输入/输出 说明
width 输入 图像宽。
height 输入 图像高。
widthResize 输入 缩放宽。
heightResize 输入 缩放高。
widthOriginal 输入 原图宽。
heightOriginal 输入 原图高。

~ImagePreProcessInfo

函数功能

ImagePreProcessInfo类的默认析构函数。

函数原型

ImagePreProcessInfo::~ImagePreProcessInfo() {}

PostProcessBase

类说明

模型后处理基类。

支持的型号

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

CheckAndMoveTensors

函数功能

保护成员函数,调用IsValidTensors校验张量无误后将张量内存搬运至Host侧。

函数原型

APP_ERROR PostProcessBase::CheckAndMoveTensors(std::vector<TensorBase> &tensors);

参数说明

参数名 输入/输出 说明
tensors 输入 输入张量。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

DeInit

函数功能

用于模型后处理的去初始化,完成资源释放。

函数原型

virtual APP_ERROR PostProcessBase::DeInit();

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

GetBuffer

函数功能

保护成员函数,获取输入张量中的指定索引的指针。

函数原型

void* PostProcessBase::GetBuffer(const TensorBase& tensor, uint32_t index) const;

参数说明

参数名 输入/输出 说明
tensor 输入 输入张量。
index 输入 待获取张量索引。

返回参数说明

数据结构 说明
void* 输入张量中的指定索引的指针。

GetCurrentVersion

函数功能

返回当前使用的后处理so的整型版本号。(postprocess中所有后处理子类都具备此接口。)

函数原型

virtual uint64_t PostProcessBase::GetCurrentVersion();

返回参数说明

数据结构 说明
uint64_t 当前使用的后处理so的整型版本号。

Init

函数功能

用于完成模型后处理初始化。

[!NOTICE] 若初始化失败,请勿继续调用后续的成员函数。

函数原型

virtual APP_ERROR PostProcessBase::Init(const std::map<std::string, std::string> &postConfig);

参数说明

参数名 输入/输出 说明
postConfig 输入 配置参数。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

JudgeResizeType

函数功能

用于判断图片信息中resize类型是否合法。

函数原型

bool PostProcessBase::JudgeResizeType(const ResizedImageInfo& resizedImageInfo);

参数说明

参数名 输入/输出 说明
resizedImageInfo 输入 输入的图片信息。

返回参数说明

数据结构 说明
bool 图片信息中包含的resize类型是否合法。

LoadConfigData

函数功能

保护成员函数,用于初始化后处理的配置文件。

函数原型

APP_ERROR PostProcessBase::LoadConfigData(const std::map<std::string, std::string> &postConfig);

参数说明

参数名 输入/输出 说明
postConfig 输入 配置参数。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

operator=

函数功能

等号运算符重载,用于PostProcessBase对象之间的赋值。

函数原型

PostProcessBase& operator= (const PostProcessBase& other);

参数说明

参数名 输入/输出 说明
other 输入/输出 PostProcessBase对象。

PostProcessBase

函数功能

类构造函数。

函数原型

PostProcessBase::PostProcessBase() = default;
PostProcessBase::PostProcessBase(const PostProcessBase& other) = default;

参数说明

参数名 输入/输出 说明
other 输入/输出 PostProcessBase对象。

~PostProcessBase

函数功能

PostProcessBase类的默认析构函数。

函数原型

virtual PostProcessBase::~PostProcessBase() = default;

ImagePostProcessBase

类说明

图像类任务后处理的基类,继承自PostProcessBase

支持的型号

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

SetCropRoiBoxes

函数功能

用于设置当前后处理的输入图像在原图中的位置。

函数原型

void ImagePostProcessBase::SetCropRoiBoxes(std::vector<MxBase::CropRoiBox> cropRoiBoxes);

参数说明

参数名 输入/输出 说明
cropRoiBoxes 输入 当前后处理的输入图像(vector)在原图中的位置。

ObjectPostProcessBase

类说明

目标检测类任务后处理的基类,继承自ImagePostProcessBase

支持的型号

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

CoordinatesReduction

函数功能

保护成员函数,用于对坐标数据进行缩放。(该方法为内部调用方法,请用户不要使用。)

函数原型

void ObjectPostProcessBase::CoordinatesReduction(const uint32_t index, const ResizedImageInfo& resizedImageInfo, std::vector<ObjectInfo>& objInfos, bool normalizedFlag = true);
void ObjectPostProcessBase::CoordinatesReduction(std::vector<std::vector<ObjectInfo>> &objInfos, const std::vector<MxBase::ImagePreProcessInfo> &imagePreProcessInfos, bool normalizedFlag = true);

参数说明

参数名 输入/输出 说明
index 输入 指定切分向量的索引。
resizedImageInfo 输入 图片信息(包括原图和缩放后宽高)。
objInfos 输出 输出目标检测的坐标、类型、置信度等信息。
normalizedFlag 输入 是否进行标准化,可选。
imagePreProcessInfos 输入 图片前处理信息。

DeInit

函数功能

用于模型后处理的去初始化,完成资源释放。

函数原型

APP_ERROR ObjectPostProcessBase::DeInit() override;

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

GetObjectConfigData

函数功能

保护成员函数,将从私有成员中获取原始的结果并调用GetSeparateScoreThresh()进行分割。(该方法为内部调用方法,请用户不要使用。)

函数原型

APP_ERROR ObjectPostProcessBase::GetObjectConfigData();

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

GetSeparateScoreThresh

函数功能

获取字符分割后的分数阈值。

函数原型

APP_ERROR ObjectPostProcessBase::GetSeparateScoreThresh(std::string& strSeparateScoreThresh);

参数说明

参数名 输入/输出 说明
strSeparateScoreThresh 输入 未分割的原始字符串。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

Init

函数功能

用于完成模型后处理初始化。

[!NOTICE] 若初始化失败,请勿继续调用后续的成员函数。

函数原型

APP_ERROR ObjectPostProcessBase::Init(const std::map<std::string, std::string> &postConfig) override;

参数说明

参数名 输入/输出 说明
postConfig 输入 配置参数。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

LogObjectInfos

函数功能

保护成员函数,仅用于debug,打印目标检测的坐标、置信度等信息。(该方法为内部调用方法,请用户不要使用。)

函数原型

void ObjectPostProcessBase::LogObjectInfos(const std::vector<std::vector<ObjectInfo>>& objectInfos);

参数说明

参数名 输入/输出 说明
objectInfos 输入 目标检测的坐标、类型、置信度等信息。

ObjectPostProcessBase

函数功能

类构造函数。

函数原型

ObjectPostProcessBase::ObjectPostProcessBase() = default;
ObjectPostProcessBase::ObjectPostProcessBase(const ObjectPostProcessBase & other) = default;

参数说明

参数名 输入/输出 说明
other 输入/输出 ObjectPostProcessBase对象。

~ObjectPostProcessBase

函数功能

ObjectPostProcessBase类的默认析构函数。

函数原型

virtual ObjectPostProcessBase::~ObjectPostProcessBase() = default;

operator=

函数功能

等号运算符重载,用于ObjectPostProcessBase对象之间的赋值。

函数原型

ObjectPostProcessBase& operator= (const ObjectPostProcessBase & other);

参数说明

参数名 输入/输出 说明
other 输入/输出 ObjectPostProcessBase对象。

Process

函数功能

接受模型推理输出张量,输出目标检测结果。后续执行时,需要先执行Init方法。

函数原型

virtual APP_ERROR ObjectPostProcessBase::Process(const std::vector<TensorBase>& tensors, std::vector<std::vector<ObjectInfo>>& objectInfos, const std::vector<ResizedImageInfo>& resizedImageInfos = {}, const std::map<std::string, std::shared_ptr<void>> &configParamMap = {});

参数说明

参数名 输入/输出 说明
tensors 输入 模型后处理的输入张量。
objectInfos 输出 输出目标检测的坐标、类型、置信度等信息。
resizedImageInfos 输入 图片信息(包括原图和缩放后宽高)。
configParamMap 输入 其他配置参数,可选。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

ResizeReduction

函数功能

保护成员函数,用于对目标检测数据进行缩放。(该方法为内部调用方法,请用户不要使用。)

函数原型

void ObjectPostProcessBase::ResizeReduction(const ResizedImageInfo& resizedImageInfo, const int imgWidth, const int imgHeight, std::vector<ObjectInfo>& objInfos);

参数说明

参数名 输入/输出 说明
resizedImageInfo 输入 图片信息(包括原图和缩放后的宽高)。
imgWidth 输入 图片宽度。
imgHeight 输入 图片高度。
objInfos 输出 输出目标检测的坐标、类型、置信度等信息。

ClassPostProcessBase

类说明

分类模型后处理基类。

支持的型号

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

ClassPostProcessBase

函数功能

类构造函数。

函数原型

ClassPostProcessBase::ClassPostProcessBase() = default;
ClassPostProcessBase::ClassPostProcessBase(const ClassPostProcessBase &other) = default;

参数说明

参数名 输入/输出 说明
other 输入/输出 ClassPostProcessBase对象。

~ClassPostProcessBase

函数功能

ClassPostProcessBase类的默认析构函数。

函数原型

virtual ClassPostProcessBase::~ClassPostProcessBase() = default;

Init

函数功能

用于完成模型后处理初始化。

[!NOTICE] 若初始化失败,请勿继续调用后续的成员函数。

函数原型

APP_ERROR ClassPostProcessBase::Init(const std::map<std::string, std::string> &postConfig) override;

参数说明

参数名 输入/输出 说明
postConfig 输入 配置参数。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

DeInit

函数功能

用于模型后处理的去初始化,完成资源释放。

函数原型

APP_ERROR ClassPostProcessBase::DeInit() override;

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

operator=

函数功能

等号运算符重载,用于ClassPostProcessBase对象之间的赋值。

函数原型

ClassPostProcessBase& operator=(const ClassPostProcessBase &other);

参数说明

参数名 输入/输出 说明
other 输入/输出 ClassPostProcessBase对象。

Process

函数功能

接受模型推理输出张量,输出分类结果。

函数原型

virtual APP_ERROR ClassPostProcessBase::Process(const std::vector<TensorBase>& tensors, std::vector<std::vector<ClassInfo>> &classInfos, const std::map<std::string, std::shared_ptr<void>> &configParamMap = {});

参数说明

参数名 输入/输出 说明
tensors 输入 模型后处理的输入张量。
classInfos 输出 输出分类结果。
configParamMap 输入 其他配置参数,可选。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

SemanticSegPostProcessBase

类说明

语义分割类任务后处理的基类,继承自ImagePostProcessBase

支持的型号

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

CoordinatesReduction

函数功能

保护成员函数,根据图片信息,输出降维后的语义分割信息。(该方法为内部调用方法,请用户不要使用。)

函数原型

void SemanticSegPostProcessBase::CoordinatesReduction(const ResizedImageInfo& resizedImageInfo, SemanticSegInfo& semanticSegInfos);

参数说明

参数名 输入/输出 说明
resizedImageInfo 输入 图片信息。图片原始宽高和缩放宽高不能大于8192,缩放比例范围[1/32, 16]。
semanticSegInfos 输出 语义分割像素值,类别映射表等信息。

DeInit

函数功能

用于模型后处理的去初始化,完成资源释放。

函数原型

APP_ERROR SemanticSegPostProcessBase::DeInit() override;

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

GetSemanticSegConfigData

函数功能

保护成员函数,将配置信息写入类别映射表中。(该方法为内部调用方法,请用户不要使用。)

函数原型

APP_ERROR SemanticSegPostProcessBase::GetSemanticSegConfigData();

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

Init

函数功能

用于完成模型后处理初始化。

[!NOTICE] 若初始化失败,请勿继续调用后续的成员函数。

函数原型

APP_ERROR SemanticSegPostProcessBase::Init(const std::map<std::string, std::string> &postConfig) override;

参数说明

参数名 输入/输出 说明
postConfig 输入 配置参数。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

operator=

函数功能

等号运算符重载,用于SemanticSegPostProcessBase对象之间的赋值。

函数原型

SemanticSegPostProcessBase& operator=(const SemanticSegPostProcessBase& other);

参数说明

参数名 输入/输出 说明
other 输入/输出 SemanticSegPostProcessBase对象。

Process

函数功能

接受模型推理输出张量,输出语义分割结果。后续执行时,需要先执行Init方法。

函数原型

virtual APP_ERROR SemanticSegPostProcessBase::Process(const std::vector<TensorBase>& tensors, std::vector<SemanticSegInfo>& semanticSegInfos, const std::vector<ResizedImageInfo>& resizedImageInfos = {}, const std::map<std::string, std::shared_ptr<void>> &configParamMap = {});

参数说明

参数名 输入/输出 说明
tensors 输入 模型后处理的输入张量。
semanticSegInfos 输出 输出语义分割像素值,类别映射表等信息。
resizedImageInfos 输入 图片信息(包括原图和缩放后宽高)。
configParamMap 输入 其他配置参数,可选。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

SemanticSegPostProcessBase

函数功能

类构造函数。

函数原型

SemanticSegPostProcessBase::SemanticSegPostProcessBase() = default;
SemanticSegPostProcessBase::SemanticSegPostProcessBase(const SemanticSegPostProcessBase& other) = default;

参数说明

参数名 输入/输出 说明
other 输入/输出 SemanticSegPostProcessBase对象。

~SemanticSegPostProcessBase

函数功能

SemanticSegPostProcessBase类的默认析构函数。

函数原型

virtual SemanticSegPostProcessBase::~SemanticSegPostProcessBase() = default;

TextGenerationPostProcessBase

类说明

文本生成类模型后处理基类。

支持的型号

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

DeInit

函数功能

用于模型后处理的去初始化,完成资源释放。

函数原型

APP_ERROR TextGenerationPostProcessBase::DeInit() override;

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

Init

函数功能

用于完成模型后处理初始化。

[!NOTICE] 若初始化失败,请勿继续调用后续的成员函数。

函数原型

APP_ERROR TextGenerationPostProcessBase::Init(const std::map<std::string, std::string> &postConfig) override;

参数说明

参数名 输入/输出 说明
postConfig 输入 配置参数。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

operator=

函数功能

等号运算符重载,用于TextGenerationPostProcessBase对象之间的赋值。

函数原型

TextGenerationPostProcessBase& operator= (const TextGenerationPostProcessBase& other);

参数说明

参数名 输入/输出 说明
other 输入/输出 TextGenerationPostProcessBase对象。

Process

函数功能

接受模型推理输出张量,输出文本生成结果。后续执行时,需要先执行Init方法。

函数原型

virtual APP_ERROR TextGenerationPostProcessBase::Process(const std::vector<TensorBase>& tensors, std::vector<TextsInfo>& textsInfos, const std::map<std::string, std::shared_ptr<void>> &configParamMap = {});

参数说明

参数名 输入/输出 说明
tensors 输入 模型后处理的输入张量。
textsInfos 输出 输出文本生成结果。
configParamMap 输入 其他配置参数,可选。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

TextGenerationPostProcessBase

函数功能

类构造函数。

函数原型

TextGenerationPostProcessBase::TextGenerationPostProcessBase() = default;
TextGenerationPostProcessBase::TextGenerationPostProcessBase(const TextGenerationPostProcessBase& other) = default;

参数说明

参数名 输入/输出 说明
other 输入/输出 TextGenerationPostProcessBase对象。

~TextGenerationPostProcessBase

函数功能

TextGenerationPostProcessBase类的默认析构函数。

函数原型

virtual TextGenerationPostProcessBase::~TextGenerationPostProcessBase() = default;

TextObjectPostProcessBase

类说明

文本目标检测类任务后处理的基类,继承自ImagePostProcessBase

支持的型号

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

DeInit

函数功能

用于模型后处理的去初始化,完成资源释放。

函数原型

APP_ERROR TextObjectPostProcessBase::DeInit() override;

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

FixCoords

函数功能

保护成员函数,用于对坐标数据进行修复。该方法为内部调用方法,请用户不要使用。

函数原型

void TextObjectPostProcessBase::FixCoords(uint32_t scrData, float &desData);

参数说明

参数名 输入/输出 说明
scrData 输入 原始坐标数据。
desData 输出 被修复的坐标数据。

Init

函数功能

用于完成模型后处理初始化。

[!NOTICE] 若初始化失败,请勿继续调用后续的成员函数。

函数原型

APP_ERROR TextObjectPostProcessBase::Init(const std::map<std::string, std::string> &postConfig) override;

参数说明

参数名 输入/输出 说明
postConfig 输入 配置参数。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

operator =

函数功能

等号运算符重载,用于TextObjectPostProcessBase对象之间的赋值。

函数原型

TextObjectPostProcessBase& operator= (const TextObjectPostProcessBase& other);

参数说明

参数名 输入/输出 说明
other 输入/输出 TextObjectPostProcessBase对象。

Process

函数功能

接受模型推理输出张量,输出目标检测结果。后续执行时,需要先执行Init方法。

函数原型

virtual APP_ERROR TextObjectPostProcessBase::Process(const std::vector<TensorBase>& tensors, std::vector<std::vector<TextObjectInfo>> &textObjectInfos, const std::vector<ResizedImageInfo>& resizedImageInfos = {}, const std::map<std::string, std::shared_ptr<void>> &configParamMap = {});

参数说明

参数名 输入/输出 说明
tensors 输入 模型后处理的输入张量。
textObjectInfos 输出 输出文本目标框的坐标、置信度等信息。
resizedImageInfos 输入 图片信息(包括原图和缩放后宽高)。
configParamMap 输入 其他配置参数,可选。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

ResizeReduction

函数功能

保护成员函数,用于对输入的图片信息进行缩放。该方法为内部调用方法,请用户不要使用。

函数原型

void TextObjectPostProcessBase::ResizeReduction(const ResizedImageInfo &resizedImageInfo, TextObjectInfo &textObjInfo);

参数说明

参数名 输入/输出 说明
textObjectInfo 输出 输出文本目标框的坐标等信息。
resizedImageInfo 输入 图片信息。

TextObjectPostProcessBase

函数功能

类构造函数。

函数原型

TextObjectPostProcessBase::TextObjectPostProcessBase() = default;
TextObjectPostProcessBase::TextObjectPostProcessBase(const TextObjectPostProcessBase& other) = default;

参数说明

参数名 输入/输出 说明
other 输入/输出 TextObjectPostProcessBase对象。

~TextObjectPostProcessBase

函数功能

TextObjectPostProcessBase类的默认析构函数。

函数原型

virtual TextObjectPostProcessBase::~TextObjectPostProcessBase() = default;

KeypointPostProcessBase

类说明

关键点检测类模型后处理基类。

支持的型号

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

DeInit

函数功能

用于模型后处理的去初始化,完成资源释放。

函数原型

APP_ERROR KeypointPostProcessBase::DeInit() override;

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

GetSeparateScoreThresh

函数功能

保护成员函数,将原始结果分割为float向量类型。该方法为内部调用方法,请用户不要使用。

函数原型

APP_ERROR KeypointPostProcessBase::GetSeparateScoreThresh(std::string& strSeparateScoreThresh);

参数说明

参数名 输入/输出 说明
strSeparateScoreThresh 输入 未分割的原始字符串。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

Init

函数功能

用于完成模型后处理初始化。

[!NOTICE] 若初始化失败,请勿继续调用后续的成员函数。

函数原型

APP_ERROR KeypointPostProcessBase::Init(const std::map<std::string, std::string> &postConfig) override;

参数说明

参数名 输入/输出 说明
postConfig 输入 配置参数。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

KeypointPostProcessBase

函数功能

类构造函数。

函数原型

KeypointPostProcessBase::KeypointPostProcessBase() = default;
KeypointPostProcessBase::KeypointPostProcessBase(const KeypointPostProcessBase &other) = default;

参数说明

参数 输入/输出 说明
other 输入/输出 KeypointPostProcessBase对象。

~KeypointPostProcessBase

函数功能

KeypointPostProcessBase类的默认析构函数。

函数原型

virtual KeypointPostProcessBase::~KeypointPostProcessBase() = default;

LogKeyPointInfos

函数功能

保护成员函数,仅用于debug,打印图片关键点。该方法为内部调用方法,请用户不要使用。

函数原型

void KeypointPostProcessBase::LogKeyPointInfos(const std::vector<std::vector<KeyPointDetectionInfo>>& keyPointInfos);

参数说明

参数名 输入/输出 说明
keyPointInfos 输入 图片关键点向量。

operator=

函数功能

等号运算符重载,用于KeypointPostProcessBase对象间的赋值。

函数原型

KeypointPostProcessBase& operator= (const KeypointPostProcessBase &other);

参数说明

参数 输入/输出 说明
other 输入/输出 KeypointPostProcessBase对象。

Process

函数功能

接受模型推理输出张量,输出关键点结果。后续执行时,需要先执行Init方法。

函数原型

virtual APP_ERROR KeypointPostProcessBase::Process(const std::vector<TensorBase>& tensors, std::vector<std::vector<KeyPointDetectionInfo>>& keyPointInfos, const std::vector<ResizedImageInfo>& resizedImageInfos = {}, const std::map<std::string, std::shared_ptr<void>> &configParamMap = {});

参数说明

参数名 输入/输出 说明
tensors 输入 模型后处理的输入张量。
keyPointInfos 输出 输出关键点结果。
resizedImageInfos 输入 图片信息(包括原图和缩放后宽高)。
configParamMap 输入 其他配置参数,可选。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

postprocess

类说明

支持的型号

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

CrnnPostProcess

CrnnPostProcess模型后处理类,继承自文本生成后处理基类TextGenerationPostProcessBase

重载了TextGenerationPostProcessBase的Init()、DeInit()和Process()接口,具体描述请参见TextGenerationPostProcessBase

重载了PostProcessBase的GetCurrentVersion接口,用以获取当前后处理so的版本号,重载了赋值运算符“=”。

实现了std::shared_ptr<MxBase::CrnnPostProcess> GetTextGenerationInstance()方法用于获取该类的智能指针实例。

CtpnPostProcess

CtpnPostProcess模型后处理类,继承自文本生成后处理基类TextObjectPostProcessBase

重载了TextObjectPostProcessBase的Init()、DeInit()和Process()接口,具体描述请参见TextObjectPostProcessBase

重载了PostProcessBase的GetCurrentVersion接口,用以获取当前后处理so的版本号,重载了赋值运算符“=”。

实现了std::shared_ptr<MxBase::CtpnPostProcess> GetTextObjectInstance()方法用于获取该类的智能指针实例。

Deeplabv3Post

Deeplabv3Post模型后处理类,继承自语义分割后处理基类SemanticSegPostProcessBase

重载了SemanticSegPostProcessBase的Init()、DeInit()和Process()接口,具体描述请参见SemanticSegPostProcessBase

重载了PostProcessBase的GetCurrentVersion接口,用以获取当前后处理so的版本号,重载了赋值运算符“=”。

实现了std::shared_ptr<MxBase::Deeplabv3Post> GetSemanticSegInstance()方法用于获取该类的智能指针实例。

FasterRcnnPostProcess

FasterRcnnPostProcess模型后处理类,继承自目标检测后处理基类ObjectPostProcessBase

重载了ObjectPostProcessBase的Init()、DeInit()和Process()接口,具体描述请参见ObjectPostProcessBase

重载了PostProcessBase的GetCurrentVersion接口,用以获取当前后处理so的版本号,重载了赋值运算符“=”。

实现了std::shared_ptr<MxBase::FasterRcnnPostProcess> GetObjectInstance()方法用于获取该类的智能指针实例。

HigherHRnetPostProcess

HigherHRnetPostProcess模型后处理类,继承自关键点后处理基类KeypointPostProcessBase

重载了KeypointPostProcessBase的Init()、DeInit()和Process()接口,具体描述请参见KeypointPostProcessBase

重载了PostProcessBase的GetCurrentVersion接口,用以获取当前后处理so的版本号,重载了赋值运算符“=”。

实现了std::shared_ptr<MxBase::HigherHRnetPostProcess> GetKeypointInstance()方法用于获取该类的智能指针实例。

MaskRcnnMindsporePost

MaskRcnnMindsporePost模型后处理类,继承自目标检测后处理基类ObjectPostProcessBase

重载了ObjectPostProcessBase的Init()、DeInit()和Process()接口,具体描述请参见ObjectPostProcessBase,重载了赋值运算符“=”。

实现了std::shared_ptr<MxBase::MaskRcnnMindsporePost> GetObjectInstance()方法用于获取该类的智能指针实例。

OpenPosePostProcess

OpenPosePostProcess模型后处理类,继承自关键点后处理基类KeypointPostProcessBase

重载了KeypointPostProcessBase的Init()、DeInit()和Process()接口,具体描述请参见KeypointPostProcessBase

重载了PostProcessBase的GetCurrentVersion接口,用以获取当前后处理so的版本号,重载了赋值运算符“=”。

实现了std::shared_ptr<MxBase::OpenPosePostProcess> GetKeypointInstance()方法用于获取该类的智能指针实例。

PSENetPostProcess

PSENetPostProcess模型后处理类,继承自文本生成后处理基类TextObjectPostProcessBase

重载了TextObjectPostProcessBase的Init()、DeInit()和Process()接口,具体描述请参见TextObjectPostProcessBase

重载了PostProcessBase的GetCurrentVersion接口,用以获取当前后处理so的版本号,重载了赋值运算符“=”。

实现了std::shared_ptr<MxBase::PSENetPostProcess> GetTextObjectInstance()方法用于获取该类的智能指针实例。

Resnet50PostProcess

Resnet50PostProcess模型后处理类,继承自分类任务后处理基类ClassPostProcessBase

重载了ClassPostProcessBase的Init()、DeInit()和Process()接口,具体描述请参见ClassPostProcessBase

重载了PostProcessBase的GetCurrentVersion接口,用以获取当前后处理so的版本号,重载了赋值运算符“=”。

实现了std::shared_ptr<MxBase::Resnet50PostProcess> GetClassInstance()方法用于获取该类的智能指针实例。

RetinaNetPostProcess

RetinaNetPostProcess模型后处理类,继承自目标检测后处理基类ObjectPostProcessBase

重载了ObjectPostProcessBase的Init()、DeInit()和Process()接口,具体描述请参见ObjectPostProcessBase。重载了赋值运算符“=”。

实现了std::shared_ptr<MxBase::RetinaNetPostProcess> GetObjectInstance()方法用于获取该类的智能指针实例。

SsdMobilenetFpnMindsporePost

SsdMobilenetFpnMindsporePost模型后处理类,继承自目标检测后处理基类ObjectPostProcessBase

重载了ObjectPostProcessBase的Init()、DeInit()和Process()接口,具体描述请参见ObjectPostProcessBase

重载了PostProcessBase的GetCurrentVersion接口,用以获取当前后处理so的版本号。重载了赋值运算符“=”。

实现了std::shared_ptr<MxBase::SsdMobilenetFpnMindsporePost> GetObjectInstance()方法用于获取该类的智能指针实例。

SsdMobilenetv1FpnPostProcess

SsdMobilenetv1FpnPostProcess模型后处理类,继承自目标检测后处理基类ObjectPostProcessBase

重载了ObjectPostProcessBase的Init()、DeInit()和Process()接口,具体描述请参见ObjectPostProcessBase

重载了PostProcessBase的GetCurrentVersion接口,用以获取当前后处理so的版本号,重载了赋值运算符“=”。

实现了std::shared_ptr<MxBase::SsdMobilenetv1FpnPostProcess> GetObjectInstance()方法用于获取该类的智能指针实例。

Ssdvgg16PostProcess

Ssdvgg16PostProcess模型后处理类,继承自目标检测后处理基类ObjectPostProcessBase

重载了ObjectPostProcessBase的Init()、DeInit()和Process()接口,具体描述请参见ObjectPostProcessBase

重载了PostProcessBase的GetCurrentVersion接口,用以获取当前后处理so的版本号,重载了赋值运算符“=”。

实现了std::shared_ptr<MxBase::Ssdvgg16PostProcess> GetObjectInstance()方法用于获取该类的智能指针实例。

TransformerPostProcess

TransformerPostProcess模型后处理类,继承自文本生成后处理基类TextGenerationPostProcessBase

重载了TextGenerationPostProcessBase的Init()、DeInit()和Process()接口,具体描述请参见TextGenerationPostProcessBase

重载了PostProcessBase的GetCurrentVersion接口,用以获取当前后处理so的版本号,重载了赋值运算符“=”。

实现了std::shared_ptr<MxBase::TransformerPostProcess> GetTextGenerationInstance()方法用于获取该类的智能指针实例。

UNetMindSporePostProcess

UNetMindSporePostProcess模型后处理类,继承自语义分割后处理基类SemanticSegPostProcessBase

重载了SemanticSegPostProcessBase的Init()、DeInit()和Process()接口,具体描述请参见SemanticSegPostProcessBase

重载了PostProcessBase的GetCurrentVersion接口,用以获取当前后处理so的版本号,重载了赋值运算符“=”。

实现了std::shared_ptr<MxBase::UNetMindSporePostProcess> GetSemanticSegInstance()方法用于获取该类的智能指针实例。

Yolov3PostProcess

YOLOv3模型后处理类,继承自目标检测后处理基类ObjectPostProcessBase

重载了ObjectPostProcessBase中的Init()、DeInit()和Process()接口,具体描述请参见ObjectPostProcessBase

重载了PostProcessBase的GetCurrentVersion接口,用以获取当前后处理so的版本号,重载了赋值运算符“=”。

实现了std::shared_ptr<MxBase::Yolov3PostProcess> GetObjectInstance()方法用于获取该类的智能指针实例。

模型后处理类参考(modelinfer框架)

ModelPostProcessorBase

类说明

该类用于实现推理后处理,用户需要继承该类并实现Init、DeInit、Process等虚函数。

相关使用流程请参考后处理

即将废弃,预计2025年12月正式删除,请使用tensorinfer框架模型后处理类。

支持的型号

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

CheckModelCompatibility

函数功能

保护成员函数,该接口由Init()调用,用于对所读取模型的输出形状进行校验。

函数原型

APP_ERROR ModelPostProcessorBase::CheckModelCompatibility();

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

DeInit

函数功能

用于模型后处理的去初始化,完成资源释放。

函数原型

virtual APP_ERROR ModelPostProcessorBase::DeInit() = 0;

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

GetLabelName

函数功能

根据索引获取类名称。

函数原型

std::string ModelPostProcessorBase::GetLabelName(int index);

参数说明

参数名 输入/输出 说明
index 输入 类索引。

返回参数说明

数据结构 说明
std::string 类名称。

GetModelTensorsShape

函数功能

保护成员函数,该接口由Init()调用,用于获取模型的输入输出张量形状。

函数原型

APP_ERROR ModelPostProcessorBase::GetModelTensorsShape(MxBase::ModelDesc modelDesc);

参数说明

参数名 输入/输出 说明
modelDesc 输入 模型基本信息结构体。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

Init

函数功能

用于完成模型后处理初始化。

[!NOTICE] 若初始化失败,请勿继续调用后续的成员函数。

函数原型

virtual APP_ERROR ModelPostProcessorBase::Init(const std::string& configPath, const std::string& labelPath, MxBase::ModelDesc modelDesc) = 0;

参数说明

参数名 输入/输出 说明
configPath 输入 配置文件路径。
labelPath 输入 标签文件路径。
modelDesc 输出 模型描述信息。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

LoadConfigDataAndLabelMap

函数功能

保护成员函数,该接口由Init()调用,用于实现配置参数的获取。

函数原型

APP_ERROR ModelPostProcessorBase::LoadConfigDataAndLabelMap(const std::string& configPath, const std::string& labelPath);

参数说明

参数名 输入/输出 说明
configPath 输入 配置文件路径。
labelPath 输入 标签文件路径。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

MemoryDataToHost

函数功能

把数据从Device侧拷贝到Host侧用于后处理。

函数原型

APP_ERROR ModelPostProcessorBase::MemoryDataToHost(const int index, const std::vector<std::vector<MxBase::BaseTensor>>& tensors,std::vector<std::shared_ptr<void>>& featLayerData);

参数说明

参数名 输入/输出 说明
index 输入 输出池索引。
tensors 输入 输出Tensor数组。
featLayerData 输出 输出特征数据数组。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

~ModelPostProcessorBase

函数功能

ModelPostProcessorBase类的默认析构函数。

函数原型

virtual ModelPostProcessorBase::~ModelPostProcessorBase() = default;

Process

函数功能

用于推理后处理,获取目标、类型等信息。

函数原型

virtual APP_ERROR ModelPostProcessorBase::Process(std::vector<std::shared_ptr<void>>& featLayerData);

参数说明

参数名 输入/输出 说明
featLayerData 输入 特征数据数组。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

ObjectPostProcessorBase

类说明

该类继承了ModelPostProcessorBase用于目标检测推理后处理,用户可以根据需要继承该类并选择性实现Init、DeInit、Process等虚函数。

相关使用流程请参考后处理

该类即将废弃,预计2025年12月正式删除,请使用tensorinfer框架模型后处理类。

支持的型号

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

CoordinatesReduction

函数功能

保护成员函数,用于对坐标数据进行缩放。该方法为内部调用方法,请用户不要使用。

函数原型

void ObjectPostProcessorBase::CoordinatesReduction(ImageInfo& imgInfo, std::vector<ObjDetectInfo>& objInfos);

参数说明

参数名 输入/输出 说明
objInfos 输出 输出目标检测的坐标、类型、置信度等信息。
imgInfo 输入 图片信息(包括原图和缩放后的宽高)。

DeInit

函数功能

用于模型后处理的去初始化,完成资源释放。

函数原型

APP_ERROR ObjectPostProcessorBase::DeInit() override;

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

GetSeparateScoreThresh

函数功能

保护成员函数,将原始结果分割为float向量类型。该方法为内部调用方法,请用户不要使用。

函数原型

APP_ERROR ObjectPostProcessorBase::GetSeparateScoreThresh(std::string& strSeparateScoreThresh);

参数说明

参数名 输入/输出 说明
strSeparateScoreThresh 输入 未分割的原始字符串。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

Init

函数功能

用于完成模型后处理初始化。

函数原型

APP_ERROR ObjectPostProcessorBase::Init(const std::string& configPath, const std::string& labelPath, MxBase::ModelDesc modelDesc) override;

参数说明

参数名 输入/输出 说明
configPath 输入 配置文件路径。
labelPath 输入 标签文件路径。
modelDesc 输出 模型描述信息。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

NmsSort

函数功能

保护成员函数,根据置信度大小过滤重复目标。该方法为内部调用方法,请用户不要使用。

函数原型

void ObjectPostProcessorBase::NmsSort(std::vector<ObjDetectInfo>& objInfos, float iouThresh, IOUMethod method = UNION);

参数说明

参数名 输入/输出 说明
objInfos 输出 待过滤的目标边角点。
iouThresh 输入 过滤阈值。
method 输入 IOU计算方式:MAX 重叠区域除以两者中面积大的。MIN 重叠区域除以两者中面积小的。UNION 重叠区域除以两者面积并集。DIOU 重叠区域除以两者面积并集减去距离的交并比。

ObjectDetectionOutput

函数功能

保护成员函数,由Process()调用,用于对模型输出进行目标处理,如去重、排序、筛选等。该方法为内部调用方法,请用户不要使用。

函数原型

virtual void ObjectPostProcessorBase::ObjectDetectionOutput(std::vector<std::shared_ptr<void>>& featLayerData,
                                       std::vector<ObjDetectInfo>& objInfos, ImageInfo& imgInfo);

参数说明

参数名 输入/输出 说明
featLayerData 输入 输出特征数据数组。
objInfos 输出 输出对象坐标、类型、置信度等信息。
imgInfo 输入 图片信息。

Process

函数功能

从输出数据中获取检测目标的信息。

函数原型

virtual APP_ERROR ObjectPostProcessorBase::Process(std::vector<std::shared_ptr<void>>& featLayerData, std::vector<ObjDetectInfo>& objInfos,const bool useMpPictureCrop, MxBase::PostImageInfo postImageInfo);

参数说明

参数名 输入/输出 说明
featLayerData 输入 输出特征数据数组。
objInfos 输出 输出对象坐标、类型、置信度等信息。输出单个对象的坐标范围为[0, 8192],类型不能小于0。
useMpPictureCrop 输入 是否还原坐标到目标框坐标上。
postImageInfo 输入 图片信息(包括原图和缩放宽高,目标框坐标)。原图和缩放宽高均不能超过8192,目标框坐标范围为[0, 8192]。

返回参数说明

数据结构 说明
APP_ERROR 程序执行返回的错误码,请参考APP_ERROR说明

SetAspectRatioImageInfo

函数功能

设置后处理图像信息。

函数原型

void ObjectPostProcessorBase::SetAspectRatioImageInfo(const MxBase::AspectRatioPostImageInfo& postProcessorImageInfo);

参数说明

参数名 输入/输出 说明
postProcessorImageInfo 输入 后处理图像信息。