📌  相关文章
📜  Tensorflow.js tf.image.nonMaxSuppressionPaddedAsync()函数(1)

📅  最后修改于: 2023-12-03 15:05:32.822000             🧑  作者: Mango

TensorFlow.js tf.image.nonMaxSuppressionPaddedAsync()函数介绍

简介

tf.image.nonMaxSuppressionPaddedAsync()函数是TensorFlow.js中的一个异步函数,用于实现一种针对二维坐标系中多个边界框非极大值抑制的算法。

边界框非极大值抑制(Non-Maximum Suppression,简称NMS)是目标检测领域中常见的一种技术,它的主要作用是从一组框选框中选择出最有可能包含物体的部分,抑制掉低置信度的框,避免重复计算。

实际上,NMS算法的原理是通过对每个边界框进行置信度打分的方式,按照一定规则选出最优的结果,从而抑制其他非最优的结果。

在TensorFlow.js中,tf.image.nonMaxSuppressionPaddedAsync()函数通过使用异步方式实现了NMS算法,适用于处理大规模的图像数据,同时也提供了丰富的参数选项,方便开发者进行自定义配置。

语法

tf.image.nonMaxSuppressionPaddedAsync( boxes: tf.Tensor2D, scores: tf.Tensor1D, maxOutputSize: number, iouThreshold?: number, scoreThreshold?: number, padToMaxOutputSize?: boolean ): Promise<{ selectedIndices: tf.Tensor1D, selectedScores: tf.Tensor1D }>

参数

该函数共有6个参数,分别为:

  • boxes:一个形状为[m, 4]的浮点型二维张量,表示边界框的坐标信息。
  • scores:一个形状为[m]的浮点型一维张量,表示边界框的置信度得分。
  • maxOutputSize:一个整数,表示算法最多选取的框数。
  • iouThreshold:一个可选参数,表示重叠阈值。默认值为0.5。
  • scoreThreshold:一个可选参数,表示置信度得分的阈值。默认值为0。
  • padToMaxOutputSize:一个可选参数,表示是否将输出张量的长度设置为最大输出数。默认值为false。
返回值

该函数的返回值为一个Promise对象,包含了两个字段:

  • selectedIndices:一个长度为n的一维张量,表示选取的框的索引。
  • selectedScores:一个长度为n的一维张量,表示选取的框的得分。
示例

下面给出一个简单的示例代码,演示了如何使用tf.image.nonMaxSuppressionPaddedAsync()函数实现边界框非极大值抑制:

const boxes = tf.tensor2d([[10, 20, 50, 80], [20, 30, 60, 90], [15, 25, 55, 85], [30, 40, 70, 100]]);
const scores = tf.tensor1d([0.8, 0.7, 0.9, 0.6]);
const maxOutputSize = 2;
const iouThreshold = 0.3;
const scoreThreshold = 0.5;

const { selectedIndices, selectedScores } = await tf.image.nonMaxSuppressionPaddedAsync(
  boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, true);
console.log(selectedIndices.arraySync(), selectedScores.arraySync());

在这个代码示例中,我们首先定义了一组边界框的坐标信息和置信度得分,并给定了最大输出数量、重叠阈值和得分阈值等参数。随后,我们调用tf.image.nonMaxSuppressionPaddedAsync()函数并以异步方式获取返回结果,最后将选取的框的索引和得分打印出来。

参数说明
  • boxes:边界框坐标信息,形状为[m, 4]的浮点张量。
  • scores:边界框的置信度得分,形状为[m]的浮点张量。
  • maxOutputSize:最多选取的框数。
  • iouThreshold:重叠阈值,默认值为0.5。
  • scoreThreshold:置信度得分的阈值,默认值为0。
  • padToMaxOutputSize:是否将输出张量的长度设置为最大输出数,默认值为false。