一、主要内容:
计算重叠,这里有一个阈值就是thresh,按照下面几条原则:
1、删除交并比大于阈值的框
2、如果ab相交的交并比大于阈值0.1,请问删除哪个框
删除置信度最小的框,第五列是置信度
二、注意:
这里如何理解阈值为啥要设置成0.1,其实版面识别的阈值我一般设置为0,但是0不太合适,我一般是设置为特别小的值,比如说0.0001,为啥呢?
因为版面识别我不需要有重叠的框,所以要这样设置
def nms(dets, thresh):# 打印输入的检测框 detsprint(dets)'''[[ 90 1036 528 1292 0.98149 0][ 542 1033 988 1167 0.97097 0][ 88 177 978 446 0.97066 3][ 544 1210 989 1292 0.95167 0][ 240 480 862 991 0.92897 4][ 549 1182 758 1200 0.88909 1][ 88 126 976 175 0.88162 0][ 87 96 151 111 0.86345 6][ 813 92 974 104 0.85024 6][ 192 998 881 1026 0.81056 0][ 526 1306 545 1323 0.78073 7]]'''"Pure Python NMS baseline"# dets[:, 0] 是所有检测框的左上角 x 坐标x1 = dets[:, 0] # [ 90 542 88 544 240 549 88 87 813 192 526]print("x1: ",x1) # dets[:, 1] 是所有检测框的左上角 y 坐标y1 = dets[:,