目标检测模型mAP计算

环境列表如下:Win10系统,tensorflow版本为1.13,python版本3.6,模型框架SSD。

1,模型训练

首先对于目标检测模型进行训练,生成ckpt文件,相关训练过程可以参考如下博客:

https://www.cnblogs.com/kxqblog/p/16129549.html

2,修改BUG

在 ssd-tensorflow文件夹下的tf_extended/metrics.py文件中 Line 51下,将

return variables.Variable
改为
return variables.VariableV1

3,修改eval_ssd_network.py

对于eval_ssd_network.py 文件,其路径在ssd-tensorflow-master文件夹下,在其 def main 前面插入一个函数,如下:

# paste by dbt

def flatten(x):
    result = []
    for el in x:
        if isinstance(el, tuple):
            result.extend(flatten(el))
        else:
            result.append(el)
    return result

然后,全文查找eval_op,修改原文中的2处代码。

num_evals=num_batches,
# eval_op=list(names_to_updates.values()),
eval_op=flatten(list(names_to_updates.values())),

4,单次ckpt计算mAP的命令

制作test数据,类似于之前生成train数据的tfrecord,在tensorflow环境下ssd-tensorflow-master下执行以下命令即可:

python tf_convert_data.py --dataset_name=pascalvoc --dataset_dir=D:\TensorflowModels\ImageData\Pascal_VOC\ --output_name=voc_2007_test --output_dir=D:\TensorflowModels\mobilnetv3_ssd\SSD-Tensorflow-Test\test_cat_tfrecord_1\

再执行以下命令计算mAP,命令如下:

python eval_ssd_network.py --eval_dir=D:\TensorflowModels\mobilnetv3_ssd\SSD-Tensorflow-Test\eva_test\ --dataset_dir=D:\TensorflowModels\mobilnetv3_ssd\SSD-Tensorflow-Test\test_cat_tfrecord_1\ --dataset_name=pascalvoc_2007 --dataset_split_name=test --model_name=ssd_300_vgg --checkpoint_path=D:\TensorflowModels\mobilnetv3_ssd\SSD-Tensorflow-Test\cat_models\model.ckpt-22105 --batch_size=1

各个参数意义为:

eval_dir为执行测试命令后日志等文件保存的目录,可以任意位置新建一个,最好是在ssd-tensorflow-master下

dataset_dir为之前保存测试tfrecord文件的位置

dataset_name为数据名的前缀,一般不用更改

dataset_split_name需要与之前生成tfrecord文件的文件名中第三个单词保持一致,本例中为test,区别于之前的train

model_name为加载的模型的名字,这里为ssd_300_vgg,与之前执行训练时的模型名字是一致的。

checkpoint_path为之前保存的训练模型的路径

batch_size为表示批量处理的数量

由于我之前的模型训练时间较短(约20min),因此平均准确率不高,训练结果如下所示:

至此,测试完毕。

参考博客:

https://blog.csdn.net/u014710355/article/details/100283899

https://blog.csdn.net/weixin_41817383/article/details/100747468

https://blog.csdn.net/yzy__zju/article/details/84679481

posted @ 2022-04-19 08:54  Deceiver_Ker  阅读(236)  评论(0编辑  收藏  举报