模型后处理介绍
模型后处理为与模型一一对应的配套操作,在SDK中其主要工作是用于对模型推理插件传入的推理结果张量进行处理,如在目标检测任务中,需要对目标框进行去重,排序,筛选等,最后将处理结果写入目标信息的类对象中,传递回给目标检测后处理插件进行写入元数据以传递给下游插件。目前SDK所支持的模型均已开发相应的后处理动态库,具体请参见表1。请用户根据实际情况选择现有后处理插件或自行开发适配所需模型,具体操作步骤请参见后处理类开发步骤。
已支持模型名称 |
后处理类名称 |
推理插件使用的后处理动态库 |
---|---|---|
YOLOv3 |
Yolov3PostProcess |
modelpostprocessors/libyolov3postprocess.so |
YOLOv3-tiny |
||
ResNet-50 |
Resnet50PostProcess |
modelpostprocessors/libresnet50postprocess.so |
Faster Rcnn |
FasterRcnnPostProcess |
modelpostprocessors/libfasterrcnnpostprocess.so |
SSD-VGG16 |
Ssdvgg16PostProcess |
modelpostprocessors/libssdvgg16postprocess.so |
SSD MobileNet v1 FPN |
SsdMobilenetv1FpnPostProcess |
modelpostprocessors/libssdmobilenetv1fpnpostprocess.so |
CRNN |
CrnnPostProcessor |
modelpostprocessors/libcrnnpostprocess.so |
一般情况下,后处理需要一个配置文件和一个标签文件。
- 标签文件需将所有类别的名称按类别ID顺序逐行输入(#开头的行不会被读取),填写示例参考如下:
# This is modified from https://gist.github.com/yrevar/942d3a0ac09ec9e5eb3a unknown type tench, Tinca tinca goldfish, Carassius auratus great white shark, white shark, man-eater, man-eating shark, Carcharodon carchariasB tiger shark, Galeocerdo cuvieri ……
- 每个模型所需要的配置参数一般不相同,用户可自行定义增加。后处理基类中已经读取“CHECK_MODEL”参数,当值为“true”时会对模型的输出张量形状进行校验,并拦截后处理不兼容的模型,当值为“false”时会跳过模型校验。当前SDK已支持的模型输出张量形状与配置文件参数请见已有模型支持。
父主题: 新框架模型后处理