(boxes, scores, iou_threshold=0.3)
| 147 | |
| 148 | |
| 149 | def raw_nms(boxes, scores, iou_threshold=0.3): |
| 150 | if 0 == len(boxes): |
| 151 | return [] |
| 152 | rects = list(boxes) |
| 153 | for i in range(len(rects)): |
| 154 | rects[i] = list(rects[i]) |
| 155 | rects[i].append(scores[i]) |
| 156 | rects[i].append(i) |
| 157 | |
| 158 | rects.sort(key=lambda x: x[4], reverse=True) |
| 159 | |
| 160 | rect_valid = [True for i in range(len(rects))] |
| 161 | for i in range(len(rects)): |
| 162 | if rect_valid[i]: |
| 163 | j = i + 1 |
| 164 | while j < len(rect_valid): |
| 165 | if is_overlap_v1(rects[i], rects[j], iou_threshold): |
| 166 | rect_valid[j] = False |
| 167 | j = j + 1 |
| 168 | |
| 169 | return [x[5] for i, x in enumerate(rects) if rect_valid[i]] |
| 170 | |
| 171 | |
| 172 | def nms(boxes, scores, iou_threshold=0.3): |
nothing calls this directly
no test coverage detected