📅  最后修改于: 2023-12-03 15:05:32.826000             🧑  作者: Mango
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中一个非常实用的图像处理函数,它可以根据特定的阈值和策略,从一组候选框中选择出最重要的框。程序员可以结合这个函数来实现目标检测等任务,一定程度上提高算法的准确性和效率。