查了很多资料,tf-faster-rcnn和caffe-faster-rcnn里都是用test__net.py
来评估训练结果。但是我用的是Faster-RCNN-TensorFlow-Python3-master,里面没有test_net.py。那要怎么获得AP和mAP的结果呢?
Faster-RCNN-TensorFlow-Python3-master训练后,如何得到AP,mAP的结果
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 不知道你这个问题是否已经解决, 如果还没有解决的话:- 给你找了一篇非常好的博客,你可以看看是否有帮助,链接:tensorflow版本faster rcnn的demo.py代码详解
- 除此之外, 这篇博客: 对Faster-RCNN-TensorFlow-Python3.5-master训练模型的评价mAP中的 一、新建test_net.py文件 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
放Faster-RCNN-TensorFlow-Python3.5-master 根文件夹。
#!/usr/bin/env python # -------------------------------------------------------- # Tensorflow Faster R-CNN # Licensed under The MIT License [see LICENSE for details] # Written by Xinlei Chen, based on code from Ross Girshick # -------------------------------------------------------- """ Demo script showing detections in sample images. See README.md for installation instructions before running. """ from __future__ import absolute_import from __future__ import division from __future__ import print_function import argparse import os import tensorflow as tf from lib.nets.vgg16 import vgg16 from lib.datasets.factory import get_imdb from lib.utils.test import test_net # NETS = {'vgg16': ('vgg16_faster_rcnn_iter_70000.ckpt',), 'res101': ('res101_faster_rcnn_iter_110000.ckpt',)} NETS = {'vgg16': ('vgg16_faster_rcnn_iter_40000.ckpt',)} #训练输出模型 DATASETS = {'pascal_voc': ('voc_2007_trainval',), 'pascal_voc_0712': ('voc_2007_trainval+voc_2012_trainval',)} def parse_args(): """Parse input arguments.""" parser = argparse.ArgumentParser(description='Tensorflow Faster R-CNN test') parser.add_argument('--net', dest='demo_net', help='Network to use [vgg16 res101]', choices=NETS.keys(), default='vgg16') parser.add_argument('--dataset', dest='dataset', help='Trained dataset [pascal_voc pascal_voc_0712]', choices=DATASETS.keys(), default='pascal_voc') args = parser.parse_args() return args if __name__ == '__main__': args = parse_args() # model path demonet = args.demo_net dataset = args.dataset tfmodel = os.path.join('output', demonet, DATASETS[dataset][0], 'default', NETS[demonet][0]) #模型路径 # 获得模型文件名称 filename = (os.path.splitext(tfmodel)[0]).split('\\')[-1] filename = 'default' + '/' + filename imdb = get_imdb("voc_2007_test") # 得到 imdb.competition_mode('competition mode') if not os.path.isfile(tfmodel + '.meta'): print(tfmodel) raise IOError(('{:s} not found.\nDid you download the proper networks from ' 'our server and place them properly?').format(tfmodel + '.meta')) # set config tfconfig = tf.ConfigProto(allow_soft_placement=True) tfconfig.gpu_options.allow_growth = True # init session sess = tf.Session(config=tfconfig) # load network if demonet == 'vgg16': net = vgg16(batch_size=1) # elif demonet == 'res101': # net = resnetv1(batch_size=1, num_layers=101) else: raise NotImplementedError net.create_architecture(sess, "TEST", 9, # 记得修改第3个参数为:类别数量+1 tag='default', anchor_scales=[8, 16, 32]) saver = tf.train.Saver() saver.restore(sess, tfmodel) print('Loaded network {:s}'.format(tfmodel)) test_net(sess, net, imdb, filename, max_per_image=100) sess.close()
需要自行修改的地方:
1.改为自己训练输出对ckpt文件名
NETS = {'vgg16': ('vgg16_faster_rcnn_iter_40000.ckpt',)} #训练输出模型
2.修改第3个参数为:类别数量+1
net.create_architecture(sess, "TEST", 9, # 记得修改第3个参数为:类别数量+1 tag='default', anchor_scales=[8, 16, 32])
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报
悬赏问题
- ¥20 腾讯企业邮箱邮件可以恢复么
- ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
- ¥15 错误 LNK2001 无法解析的外部符号
- ¥50 安装pyaudiokits失败
- ¥15 计组这些题应该咋做呀
- ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
- ¥15 让node服务器有自动加载文件的功能
- ¥15 jmeter脚本回放有的是对的有的是错的
- ¥15 r语言蛋白组学相关问题
- ¥15 Python时间序列如何拟合疏系数模型