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

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

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

概述

tf.image.nonMaxSuppressionWithScore()函数是TensorFlow.js中的一个图像处理函数,用于在给定一组候选框和它们的分数时,根据一定的阈值筛选出最大的框。这个功能非常适用于目标检测等视觉任务,可以帮助程序员实现非极大值抑制(Non-Maximum Suppression,NMS)算法。

语法
tf.image.nonMaxSuppressionWithScore(boxes, scores, maxOutputSize, iouThreshold=0.5, scoreThreshold=Number.NEGATIVE_INFINITY)
参数
  • boxes:一个2D张量,形状为[候选框数量, 4],表示候选框的坐标,格式为[y1, x1, y2, x2],其中(x1, y1)是左上角坐标,(x2, y2)是右下角坐标。
  • scores:一个1D张量,形状为[候选框数量],表示每个候选框的分数。
  • maxOutputSize:一个正整数值,表示输出的最大框数量。
  • iouThreshold:一个非负浮点数,表示IoU(Intersection over Union)的阈值。候选框之间的IoU值大于该阈值的将被过滤掉。
  • scoreThreshold:一个浮点数,表示分数的阈值。低于该阈值的候选框将被过滤掉。
返回值

一个带有两个字段的对象:

  • selectedIndices:一个1D张量,形状为[输出的框数量],表示被选中的框的索引。
  • selectedScores:一个1D张量,形状为[输出的框数量],表示被选中的框的分数。
示例
const boxes = tf.tensor2d([[10, 10, 20, 20], [15, 15, 25, 25], [30, 30, 40, 40]]);
const scores = tf.tensor1d([0.9, 0.75, 0.6]);

const maxOutputSize = 2;
const iouThreshold = 0.5;
const scoreThreshold = 0.5;

const { selectedIndices, selectedScores } = tf.image.nonMaxSuppressionWithScore(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold);

console.log("Selected Indices:", selectedIndices.dataSync());
console.log("Selected Scores:", selectedScores.dataSync());
结论

tf.image.nonMaxSuppressionWithScore()函数是TensorFlow.js中一个非常实用的图像处理函数,它可以根据特定的阈值和策略,从一组候选框中选择出最重要的框。程序员可以结合这个函数来实现目标检测等任务,一定程度上提高算法的准确性和效率。