AIDetectCPU AI推理CPU版

AIDetectCPU 算子使用 cpu 对几类 CNN 神经网络模型进行推理。

说明:RVS 的 GPU/CPU 版本均可使用该算子。

type 功能
MaskRCNN 用于 MaskRCNN 网络的推理,可以获得图像中目标的位置掩码(像素区域)
MaskRCNNClass 用于 MaskRCNNC 网络的推理,可以获得图像中所有目标的位置掩码(像素区域)
同一个类别的所有目标的掩码共用一张输出图像
KeyPoint 用于关键点网络的推理,在 MaskRCNN 网络基础上可以额外获得关键点的像素值

说明: 还有一种RotatedYOLO网络的推理模式,同 MaskRCNN 网络差异较大,需要使用名为 RotatedYOLONode 的算子进行推理。

MaskRCNN

算子参数

  • 类名文件路径/class_name_file_path:类名文件地址,即训练时所用的类名文件。要求文件名以 .txt 结尾。为了兼容旧版本的训练结果,该文件也可以用 .names 结尾,也可以使用训练时所生成的json文件。

  • 权重文件路径/weight_file_path:训练完成后的权重文件地址。

  • 配置文件路径/config_file_path:训练完成后的配置文件地址。对于MaskRCNN 网络在 RVS1.3 及之前旧版本训练的结果,该配置文件参数设为空即可。

  • 物体得分阈值/obj_score_threshold:目标得分阈值,得分低于阈值的目标会被淘汰,取值范围:[0,1] 。默认值:0.75。

  • 重置/reset:参数重置。在执行了一次推理之后,如果对上述参数中的任何一个进行了修改,则还需要勾选该 reset 参数,否则上述参数的更改不会生效。重新触发执行一次算子,该参数会自动由勾选状态重新变为非勾选状态。

  • 停止/stop:停止推理,该参数仅适用于 Ubuntu 版本的 RVS 。在执行推理时,程序底层的神经网络是独立运行的,勾选该参数并触发算子执行,算子底层会杀死对应的神经网络运行程序。

  • 识别结果图像/show_result:设置推理结果示意图在 2D 视图中的可视化属性。

    • icon_visOn 打开推理结果示意图可视化。打开能更直观显示推理结果,利于调试。

    • icon_visOff 关闭推理结果示意图可视化。关闭可视化可以缩短算子对结果图像进行着色处理的时间。

  • Mask列表/mask_list:设置 mask_list 输出端口的图像内容在 2D 视图中的可视化属性。其中每一张图像都是一张灰度图,背景像素为 0,目标区域为 255 。

  • Mask名称列表/mask_names:设置目标对应的类名曝光属性。打开后则可以将 mask_names 输出端口的内容绑定到交互面板上的输出工具表格并输出显示。

    • icon_visOn 打开曝光。

    • icon_visOff 关闭曝光。

数据信号输入输出

输入:

  • image

    • 数据类型:Image

    • 输入内容:需要推理的图像数据

输出:

  • show_result

    • 数据类型:Image

    • 输出内容:图像推理结果的效果示意图

  • mask_list

    • 数据类型:ImageList

    • 输出内容:图像推理后获得的所有目标的掩码图,每个目标在List中的位置同下述mask_names保持一致。各个目标按照对应的得分从高到低排列。

  • mask_names

    • 数据类型:StringList

    • 输出内容:以String形式存放各个目标对应的类名

功能演示

本节将使用 AIDetectCPU 算子的 MaskRCNN 神经网络模型对加载的图像进行推理。获得图像中的目标位置掩码(像素区域)。与 AIDetectGPU 算子的MaskRCNN模块类似,请参照该章节功能演示模块。

MaskRCNNClass

算子参数

  • Mask类别列表/mask_class_list:设置 mask_class_list 输出端口的图像内容在 2D 视图中的可视化属性。其中每一张图像都是一张灰度图,代表某一个类别的所有目标的掩码图。mask_class_list中的类别,按照类名文件中类别的先后顺序进行排序。每张mask图像的背景像素为 0,每一个目标按照得分从大到小的顺序依次使用1、2、3…等像素。比如一张mask图中像素为1的一块区域,代表该类别中得分最高的目标的像素位置。

  • 其余参数:与 MaskRCNN 描述一致。

数据信号输入输出

输入:

  • image

    • 数据类型:Image

    • 输入内容:需要推理的图像数据

输出:

  • show_result

    • 数据类型:Image

    • 输出内容:图像推理结果的效果示意图

  • mask_class_list

    • 数据类型:ImageList

    • 输出内容:图像推理后获得的所有类别目标的掩码图,详细说明见上述“算子参数”—— mask_class_list的介绍。

  • mask_names

    • 数据类型:StringList

    • 输出内容:以String形式存放所有的类名,顺序同类名文件保持一致,并且同上述mask_class_list保持一致。

功能演示

本节将使用 AIDetectCPU 算子的 MaskRCNNClass 神经网络模型对加载的图像进行推理。获得图像中的目标位置掩码(像素区域)。与 AIDetectGPU 算子的MaskRCNN模块类似,请参照该章节功能演示模块。

KeyPoint

算子参数

  • 类名文件路径/class_name_file_path:训练时生成的 json 文件,一般是 annotations.json 。

  • 关键点得分阈值/keypt_score_threshold:关键点的得分阈值,得分低于阈值的关键点会被淘汰。

  • Mask旋转矩阵列表/mask_boxes:设置曝光 mask_boxes 输出端口。打开后则可以将该输出端口的内容绑定到交互面板上的表格并输出显示。

    • icon_visOn 打开曝光。

    • icon_visOff 关闭曝光。

  • 其他参数:与 MaskRCNN 描述一致。

数据信号输入输出

输入:

  • image

    • 数据类型:Image

    • 输入内容:需要推理的图像数据

输出:

  • show_result

    • 数据类型:Image

    • 输出内容:图像推理结果的效果示意图

  • mask_list

    • 数据类型:ImageList

    • 输出内容:图像推理后获得的所有目标的掩码图,每个目标在List中的位置同下述3个List一致。各个目标按照对应的得分从高到低排列。

  • mask_names

    • 数据类型:StringList

    • 输出内容:以String形式存放各个目标对应的类名

  • mask_boxes

    • 数据类型:RotatedRectList

    • 输出内容:以旋转矩形框的形式输出各个目标的外边框

  • keypoint_list

    • 数据类型:ImagePointsList

    • 输出内容:图像推理后获得的所有目标的关键点信息,List中的每一个ImagePoints代表一个目标上的所有关键点。每一个ImagePoints的内容,均按照关键点顺序以”x1 y1 x2 y2 …”的形式依次排列。

功能演示

本节将使用 AIDetectCPU 算子的 KeyPoint 神经网络模型对加载的图像进行推理。获得图像中目标的位置掩码(像素区域)和关键点的像素值。与 AIDetectGPU 算子的KeyPoint模块类似,请参照该章节功能演示模块。