TensorRT 10.8.0
nvinfer1::INMSLayer 类参考

网络定义中的非极大值抑制层。 更多...

#include <NvInfer.h>

nvinfer1::INMSLayer 的继承关系图
nvinfer1::ILayer nvinfer1::INoCopy

公共成员函数

void setBoundingBoxFormat (BoundingBoxFormat fmt) noexcept
 设置图层的边界框格式参数。 更多...
 
BoundingBoxFormat getBoundingBoxFormat () const noexcept
 获取图层的边界框格式参数。 更多...
 
void setTopKBoxLimit (int32_t limit) noexcept
 设置图层的 TopK 框限制参数。 更多...
 
int32_t getTopKBoxLimit () const noexcept
 获取图层的 TopK 框限制参数。 更多...
 
void setInput (int32_t index, ITensor &tensor) noexcept
 使用特定的张量追加或替换此图层的输入。 更多...
 
- 从 nvinfer1::ILayer 继承的公共成员函数
LayerType getType () const noexcept
 返回图层的类型。 更多...
 
void setName (char const *name) noexcept
 设置图层的名称。 更多...
 
char const * getName () const noexcept
 返回图层的名称。 更多...
 
int32_t getNbInputs () const noexcept
 获取图层的输入数量。 更多...
 
ITensorgetInput (int32_t index) const noexcept
 获取与给定索引对应的图层输入。 更多...
 
int32_t getNbOutputs () const noexcept
 获取图层的输出数量。 更多...
 
ITensorgetOutput (int32_t index) const noexcept
 获取与给定索引对应的图层输出。 更多...
 
void setInput (int32_t index, ITensor &tensor) noexcept
 使用特定的张量替换此图层的输入。 更多...
 
void setPrecision (DataType dataType) noexcept
 在弱类型网络中设置此图层的首选或必需的计算精度。 更多...
 
DataType getPrecision () const noexcept
 获取此图层的计算精度 更多...
 
bool precisionIsSet () const noexcept
 是否已为此图层设置计算精度 更多...
 
void resetPrecision () noexcept
 重置此图层的计算精度 更多...
 
void setOutputType (int32_t index, DataType dataType) noexcept
 在弱类型网络中设置此图层的输出类型。 更多...
 
DataType getOutputType (int32_t index) const noexcept
 获取此图层的输出类型 更多...
 
bool outputTypeIsSet (int32_t index) const noexcept
 是否已为此图层设置输出类型 更多...
 
void resetOutputType (int32_t index) noexcept
 重置此图层的输出类型 更多...
 
void setMetadata (char const *metadata) noexcept
 为此图层设置元数据。 更多...
 
char const * getMetadata () const noexcept
 获取图层的元数据。 更多...
 

保护成员函数

virtual ~INMSLayer () noexcept=default
 
- 从 nvinfer1::ILayer 继承的保护成员函数
virtual ~ILayer () noexcept=default
 
- 从 nvinfer1::INoCopy 继承的保护成员函数
 INoCopy ()=default
 
virtual ~INoCopy ()=default
 
 INoCopy (INoCopy const &other)=delete
 
INoCopyoperator= (INoCopy const &other)=delete
 
 INoCopy (INoCopy &&other)=delete
 
INoCopyoperator= (INoCopy &&other)=delete
 

保护属性

apiv::VNMSLayer * mImpl
 
- 从 nvinfer1::ILayer 继承的保护属性
apiv::VLayer * mLayer
 

详细描述

网络定义中的非极大值抑制层。

NMS 算法迭代处理一组边界框及其置信度分数,按分数降序排列。如果框的分数高于给定的阈值,并且它们与先前选定的框的交并比 (IoU) 小于或等于给定的阈值,则选择这些框。此层实现每个批次项和每个类别的 NMS。

对于每个批次项,框最初按分数排序,不考虑类别。仅考虑最多 TopK 限制的框进行选择(每个批次)。在选择期间,仅比较同一类别的重叠框,以便不同类别的重叠框不会相互抑制。

对于每个批次项,具有相同分数的候选边界框的顺序未指定,但对于相同的输入,不同运行之间的顺序将是一致的。

该层具有以下输入,按输入索引顺序排列

  • Boxes 包含输入边界框。它是 kFLOAT 或 kHALF 类型的线性张量。如果框是按类别划分的,则其形状为 [batchSize, numInputBoundingBoxes, numClasses, 4],如果相同的框用于每个类别,则其形状为 [batchSize, numInputBoundingBoxes, 4]。
  • Scores 包含每个框的分数。它是与 Boxes 类型相同的线性张量。其形状为 [batchSize, numInputBoundingBoxes, numClasses]。
  • MaxOutputBoxesPerClass 是每个批次项每个类别的最大输出框数。它是 kINT32 类型的标量(0D 张量)。
  • IoUThreshold 是选定框的最大 IoU。它是范围 [0.0f, 1.0f] 内的 kFLOAT 类型的标量(0D 张量)。它是可选输入,默认值为 0.0f。
  • ScoreThreshold 是框分数必须超过才能被选中的值。它是 kFLOAT 类型的标量(0D 张量)。它是可选输入,默认值为 0.0f。

该层具有以下输出,按输出索引顺序排列

  • SelectedIndices 包含选定框的索引。它是 kINT32 类型的线性张量。其形状为 [NumOutputBoxes, 3]。每行包含一个 (batchIndex, classIndex, boxIndex) 元组。输出框按 batchIndex 递增的顺序排序,然后在每个 batchIndex 内按分数递减的顺序排序。对于每个 batchIndex,具有相同分数的输出框的顺序未指定。如果 MaxOutputBoxesPerClass 是一个常量输入,则最大输出框数为 batchSize * numClasses * min(numInputBoundingBoxes, MaxOutputBoxesPerClass)。否则,最大输出框数为 batchSize * numClasses * numInputBoundingBoxes。最大输出框数用于确定此输出张量分配内存的上限。
  • NumOutputBoxes 是 SelectedIndices 中的输出框数。它是 kINT32 类型的标量(0D 张量)。
警告
存在一个硬件相关的限制 K,使得每个批次项中只有 K 个最高分数的框将被考虑用于选择。对于 SM 5.3 和 6.2 设备,K 的值为 2000,否则为 5000。
不要从此类继承,因为这样做会破坏 API 和 ABI 的向前兼容性。

构造函数 & 析构函数文档

◆ ~INMSLayer()

virtual nvinfer1::INMSLayer::~INMSLayer ( )
protectedvirtualdefaultnoexcept

成员函数文档

◆ getBoundingBoxFormat()

BoundingBoxFormat nvinfer1::INMSLayer::getBoundingBoxFormat ( ) const
inlinenoexcept

获取图层的边界框格式参数。

另请参阅
BoundingBoxFormat
setBoundingBoxFormat()

◆ getTopKBoxLimit()

int32_t nvinfer1::INMSLayer::getTopKBoxLimit ( ) const
inlinenoexcept

获取图层的 TopK 框限制参数。

另请参阅
setTopKBoxLimit()

◆ setBoundingBoxFormat()

void nvinfer1::INMSLayer::setBoundingBoxFormat ( BoundingBoxFormat  fmt)
inlinenoexcept

设置图层的边界框格式参数。

边界框格式参数的默认值为 kCORNER_PAIRS。

另请参阅
BoundingBoxFormat
getBoundingBoxFormat()

◆ setInput()

void nvinfer1::ILayer::setInput ( int32_t  index,
ITensor tensor 
)
inlinenoexcept

使用特定的张量追加或替换此图层的输入。

参数
indexindex
tensor新的输入张量

索引如下:

  • 0:必需的 Boxes 张量。
  • 1:必需的 Scores 张量。
  • 2:必需的 MaxOutputBoxesPerClass 张量。
  • 3:可选的 IoUThreshold 张量。
  • 4:可选的 ScoreThreshold 张量。

如果为此函数调用的索引大于或等于 getNbInputs(),则之后 getNbInputs() 返回 index + 1,并且任何缺失的中间输入都设置为 null。请注意,只有可选输入可以缺失。

◆ setTopKBoxLimit()

void nvinfer1::INMSLayer::setTopKBoxLimit ( int32_t  limit)
inlinenoexcept

设置图层的 TopK 框限制参数。

TopK 框限制是每个批次项考虑用于选择的已过滤框的最大数量。对于 SM 5.3 和 6.2 设备,TopK 框限制参数的默认值为 2000,否则为 5000。TopK 框限制必须小于或等于 {对于 SM 5.3 和 6.2 设备为 2000,否则为 5000}。

另请参阅
getTopKBoxLimit()

成员数据文档

◆ mImpl

apiv::VNMSLayer* nvinfer1::INMSLayer::mImpl
protected

此类文档从以下文件生成:

  Copyright © 2024 NVIDIA Corporation
  隐私政策 | 管理我的隐私 | 请勿出售或分享我的数据 | 服务条款 | 无障碍访问 | 公司政策 | 产品安全 | 联系我们