热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

目标检测模型mAP计算

环境列表如下:Win10系统,tensorflow版本为1.13,python版本3.6,模型框架SSD。1,模型训练首先对于目标检测模型进行训练,生成ckpt文件,相关训练过程可

环境列表如下: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



推荐阅读
  • python模块之正则
    re模块可以读懂你写的正则表达式根据你写的表达式去执行任务用re去操作正则正则表达式使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容。在 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • 机器学习算法:SVM(支持向量机)
    SVM算法(SupportVectorMachine,支持向量机)的核心思想有2点:1、如果数据线性可分,那么基于最大间隔的方式来确定超平面,以确保全局最优, ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Exce ... [详细]
  • 使用 Jupyter Notebook 实现 Markdown 编写与代码运行
    Jupyter Notebook 是一个开源的基于网页的应用程序,允许用户在同一文档中编写 Markdown 文本和运行多种编程语言的代码,并实时查看运行结果。 ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • 使用HTML和JavaScript实现视频截图功能
    本文介绍了如何利用HTML和JavaScript实现从远程MP4、本地摄像头及本地上传的MP4文件中截取视频帧,并展示了具体的实现步骤和示例代码。 ... [详细]
  • 如何在 Python 列表中添加元素 [Python 基础]
    本文介绍了 Python 中常用的三种方法来向列表中添加元素:`append()`、`extend()` 和 `insert()`。这些方法分别适用于不同的场景,帮助开发者灵活地管理列表数据。 ... [详细]
  • 本文介绍了如何使用Python爬取妙笔阁小说网仙侠系列中所有小说的信息,并将其保存为TXT和CSV格式。主要内容包括如何构造请求头以避免被网站封禁,以及如何利用XPath解析HTML并提取所需信息。 ... [详细]
  • 本文详细探讨了使用Python3编写爬虫时如何应对网站的反爬虫机制,通过实例讲解了如何模拟浏览器访问,帮助读者更好地理解和应用相关技术。 ... [详细]
  • 本文详细介绍了如何使用JavaScript实现面部交换功能,包括基本原理和具体实现步骤。 ... [详细]
  • 本文介绍了如何使用 Google Colab 的免费 GPU 资源进行深度学习应用开发。Google Colab 是一个无需配置即可使用的云端 Jupyter 笔记本环境,支持多种深度学习框架,并且提供免费的 GPU 计算资源。 ... [详细]
  • Spring Data JdbcTemplate 入门指南
    本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
author-avatar
醉酒戏紅顔X
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有