faster rcnn 计算mAP

本文记录了Faster R-CNN模型计算mAP的详细步骤和常见错误处理,包括修改配置文件、理解计算流程及代码解析,涉及关键步骤如test_net.py的执行、结果评估函数evaluate_detections等。
摘要由CSDN通过智能技术生成

训练完faster rcnn想要计算一下mAP,结果整了半天才成功,在这里记录一下,省的下次忘了。

前面直接说计算方法和可能遇到的错误,后面再详细对代码进行解析。

 

计算流程

首先说一下faster rcnn中mAP的计算流程。主要流程为:

1、运行/tools下的test_net.py文件。

2、test_net.py文件调用/lib/fast_rcnn/test.py文件中的test_net函数进行检测。

3、test_net函数在检测完成后调用/lib/datasets/pascal_voc.py中的evaluate_detections函数计算mAP。

测试命令如下

./tools/test_net.py --gpu 0  \     
                    --def PATH/TO/test.prototxt \
                    --net PATH/TO/vgg16_faster_rcnn_iter_40000.caffemodel  \   #训练好的模型
                    --imdb voc_2007_test   #数据集名称

错误一

 'Selective search data not found at: {}'.format(filename)
AssertionError: Selective search data not found at: /home/xuwh/Detect-model/py-faster-rcnn/data/xiaoding-data/selective_search_data/voc_2007_test.mat

这时需要打开config文件,把__C.TEST.HAS_RPN = False改为True。

 

错误二

File "/home/xuwh/Detect-model/py-faster-rcnn/tools/../lib/datasets/pascal_voc.py", line 250, in _write_voc_results_file
    with open(filename, 'wt') as f:
IOError: [Errno 2] No such file or directory: '/home/xuwh/Detect-model/py-faster-rcnn/data/xiaoding-data/results/VOC2007/Main/comp4_d721c71f-dcb0-46ad-a93d-d7e6738d6cbf_det_test_type_none.txt'

根提示,打开pascal_voc.py 修改下面的函数中的filename,修改结果如下,修改原因会在后面解释

    def _get_voc_results_file_template(self):
        # VOCdevkit/results/VOC2007/Main/<comp_id>_det_test_aeroplane.txt
        # filename = self._get_comp_id() + '_det_' + self._image_set + '_{:s}.txt'
        filename = self._image_set + '_{:s}'
        path = os.path.join(
            self._devkit_path,
            'results',
            'VOC' + self._year,
            'Main',
            filename)
        return path

然后根据没有文件夹提示的路径手动新建文件夹。

最后在运行就可以了,我的结果如下

 

 

代码解析

首先运行的是/tools下的test_net.py文件,部分代码如下,这部分都是一些初始化的过程。

if __name__ == '__main__':
    args = parse_args()     #获取命令行参数,参数具体含义见该文件的parse_args函数

    print('Called with args:')
    print(args)

    if args.cfg_file is not None:
        cfg_from_file(args.cfg_file)
    if ar
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值