tensorflow-MTCNN
tensorflow-MTCNN copied to clipboard
关于人脸框输出的问题
含有人脸的图像输出,最后头像上有好几个框,不止一个框,只是为什么
NMS算法价格处理重复框的参数,然后在detect_onet中设置filter_overlap=True,问题解决。 if filter_overlap: # 处理重复脸的问题 如果实际面积s<=inter,则说明被包含在大框中 inds = np.where(np.logical_and(ovr <= thresh, areas[order[1:]] > 2 * inter))[0] else: inds = np.where(ovr <= thresh)[0] # [1-d array] idx
NMS算法价格处理重复框的参数,然后在detect_onet中设置filter_overlap=True,问题解决。 if filter_overlap: # 处理重复脸的问题 如果实际面积s<=inter,则说明被包含在大框中 inds = np.where(np.logical_and(ovr <= thresh, areas[order[1:]] > 2 * inter))[0] else: inds = np.where(ovr <= thresh)[0] # [1-d array] idx
请问是加在py_nms()这个函数里嘛?
是的。不过这个要看你用的场景,如果只是关注大人脸,不考虑包含的情况可以这样改NMS。要是通用的目标检测就不一定适用,因为大的box包含小的box的情况还是比较常见的。另一种可能就是mtcnn的精度不够,够的话就不会把人脸的一小部分判断成人脸,换一个精度更高的模型吧,SSH/DSFD之类的,不用改原始NMS也基本不会有这个问题。我自己改完跑的MTCNN精度感觉都不够用。
NMS算法价格处理重复框的参数,然后在detect_onet中设置filter_overlap=True,问题解决。 if filter_overlap: # 处理重复脸的问题 如果实际面积s<=inter,则说明被包含在大框中 inds = np.where(np.logical_and(ovr <= thresh, areas[order[1:]] > 2 * inter))[0] else: inds = np.where(ovr <= thresh)[0] # [1-d array] idx
我还是没懂怎么修改, filter_overlap是什么