nonMaxSuppression.js 1.0 KB

123456789101112131415161718192021222324252627
  1. import { iou } from './iou';
  2. export function nonMaxSuppression(boxes, scores, iouThreshold, isIOU) {
  3. if (isIOU === void 0) { isIOU = true; }
  4. var indicesSortedByScore = scores
  5. .map(function (score, boxIndex) { return ({ score: score, boxIndex: boxIndex }); })
  6. .sort(function (c1, c2) { return c1.score - c2.score; })
  7. .map(function (c) { return c.boxIndex; });
  8. var pick = [];
  9. var _loop_1 = function () {
  10. var curr = indicesSortedByScore.pop();
  11. pick.push(curr);
  12. var indices = indicesSortedByScore;
  13. var outputs = [];
  14. for (var i = 0; i < indices.length; i++) {
  15. var idx = indices[i];
  16. var currBox = boxes[curr];
  17. var idxBox = boxes[idx];
  18. outputs.push(iou(currBox, idxBox, isIOU));
  19. }
  20. indicesSortedByScore = indicesSortedByScore.filter(function (_, j) { return outputs[j] <= iouThreshold; });
  21. };
  22. while (indicesSortedByScore.length > 0) {
  23. _loop_1();
  24. }
  25. return pick;
  26. }
  27. //# sourceMappingURL=nonMaxSuppression.js.map