📅  最后修改于: 2023-12-03 14:47:55.084000             🧑  作者: Mango
tf.image.nonMaxSuppressionAsync()
函数是TensorFlow.js中用于执行非最大值抑制操作的异步函数。其功能是从一组框框中选择最佳框框,并且会剔除低于阈值的框框。
tf.image.nonMaxSuppressionAsync(
boxes: tf.Tensor2D,
scores: tf.Tensor1D,
maxOutputSize: number,
iouThreshold: number,
scoreThreshold: number,
padToMaxOutputSize?: boolean
): Promise<{selectedIndices: tf.Tensor1D, selectedScores: tf.Tensor1D}>
参数说明:
boxes: tf.Tensor2D
:包含一组框框的坐标,shape为[numBoxes, 4]。scores: tf.Tensor1D
:每个框框的得分值,shape为[numBoxes]。maxOutputSize: number
:选择的最大框框数量。iouThreshold: number
:重叠比例的阈值。scoreThreshold: number
:最低得分的阈值。padToMaxOutputSize: boolean
:设置为true,表示对输出进行填充以达到最大输出大小。默认值为false。返回值:一个Promise对象,其中包含两个Tensor对象,selectedIndices
和selectedScores
,分别表示选择的框框的索引和得分。
// 定义一组框框
const boxes = tf.tensor2d([[0, 0.5, 0.1, 0.6], [0.2, 0.3, 0.3, 0.9], [0.6, 0.1, 0.9, 0.5], [0.7, 0.5, 0.9, 0.9]]);
// 定义每个框框的得分
const scores = tf.tensor1d([0.8, 0.6, 0.7, 0.9]);
// 调用nonMaxSuppressionAsync函数
tf.image.nonMaxSuppressionAsync(boxes, scores, 2, 0.3, 0.5).then((result) => {
console.log(result.selectedIndices.toString()); // 输出选择的框框的索引
console.log(result.selectedScores.toString()); // 输出选择的框框的得分
});
flatten()
或reshape()
进行处理。