efficientdet-pytorch
efficientdet-pytorch copied to clipboard
为什么MAP的结果总是0
你好,我在用Efficient-Det训练Text-COCO做文字检测,bounding box框的位置是正确的,之后我按照说明运行get_map.py 文件来求map和precision,recall。 但是得到的结果总是0. 绝大部分结果被认定为false positive, 请问这是数据的问题还是get_map代码的问题?
我不太懂你的意思,直接预测是对的吗,如果是这样就是获得的用于计算map的txt有错了。
计算map的txt有错
感谢回复。我的class number是1。 我计算map的步骤是, 1 先运行了get_dr_txt.py 2 我有ground truth的bounding box文件,没有运行get_gt_txt.py 3 最后运行get_map.py
出现的问题, 1.当运行get_dr_txt.py,如果设置confidence 和iou threshold大于0.2时,3500张图片里大约只有600张能被识别出文字。 2 无论我将confidence 和iou threshold设为0.05或者0.5,通过get_dr_txt.py得到多少txt文件,当我运行get_map.py时绝大部分的图片都会被归为false positive。从而导致precision,recall and mAP均为0. 不过当我拿训练后的weight来预测bounding box,它在不同的图片上能正确的框出文字部分。所以即使mAP不高,我猜它也不太可能是0啊。
所以现在不太懂问题出在哪里,是需要修改nms那里,还是get_map这个文件,抑或是什么别的地方? 谢谢啦~
还是按默认参数来进行map计算,把模型修改成自己的就可以了 然后你检查一下对应的txt,就是input文件夹里面的txt,你看看结果的格式是否正确
因为只是这样我看不出来,我得从对应的txt的结果来判断
还是按默认参数来进行map计算,把模型修改成自己的就可以了 然后你检查一下对应的txt,就是input文件夹里面的txt,你看看结果的格式是否正确
好的谢谢,我先试一下。
重要的是查看一下txt的正误
一般说来是类别标签的问题,我的就是改了EfficientNet.py下面的"classes_path" : 'model_data/coco_classes.txt' 以及get_map.py下面的classes_path = 'model_data/voc_classes.txt'为自己数据集的实际类别名之后就好了。
嗯是