如何用tensorflow中的object detection API来训练自己的数据集上的目标检测器

本文主要是介绍如何用tensorflow中的object detection API来训练自己的数据集上的目标检测器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这仍然是一个学习记录博~欢迎讨论

安装tensorflow object detection API

首先当然是要先安装tensorflow object detection API啦,网上有很多教程可以参考,比如:Ubuntu 16.04下安装TensorFlow Object Detection API(对象检测API)

P.S. 安装时需要注意的就是tensorflow-gpu的版本问题,你的tensorflow和tensorflow-gpu以及tensorflow API的版本都要一致,如果tensorflow-gpu版本是1.x的,那就不能安装2.x的API啦,有很多版本问题,使用的时候会报错的,比如:

ModuleNotFoundError: No module named 'tensorflow.contrib'; 'tensorflow' is not a package

我的tensorflow-gpu是1.13.1,我的tensorflow也是1.13.1,而我安装的API的版本是1.13.0~

基于浣熊的object detection

这个部分可以参考:用TensorFlow训练一个物体检测器(手把手教学版),写的真的蛮详细的。

不过文章里还是有点小问题的,所以在这里补充说明一下:

  • train.txt和test.txt文件的生成代码,博客里没有给全代码,下面给大家一段直接可以运行的代码来参考(路径自己改一下,运行一次就好了,不要重复运行,会一直追加写入的)
import os
import randomtrain_txt = open("xx/xx/dataset/train.txt", 'a+')
test_txt = open("xx/xx/dataset/test.txt", 'a+')pt = "xx/xx/xx/raccoon_dataset/images"
image_name = os.listdir(pt)count = 0
for temp in image_name:if temp.endswith(".jpg"):print(temp.replace('.jpg', ''))if count < 160:train_txt.write(temp.replace('.jpg', '')+'\n')else:test_txt.write(temp.replace('.jpg', '') + '\n')count += 1
  • 训练之前不要忘记添加环境变量
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

这里的pwd就是当前路径,一般我们都是切换到models/research/object_detection目录下来运行的,所以这个pwd就是object_detection所在的路径。

  • 训练所用的文件train.py,eval.py不在object_detection目录下,而在object_detection/legacy目录下,可能是版本变了,所以把train.py什么的挪了位置。

使用model_train.py代替train.py

如果不想使用老版本的train.py的话,可以用object_detection下的model_train.py进行训练,它把老版本的train.py和eval.py集合到了一起,model_train.py的源码解释可以参考一下:Tensorflow Object Detection API 源码分析之 model_main.py。

在终端输入:

python model_main.py \--pipeline_config_path=config文件所在路径 \--model_dir=模型数据输出的保存路径 \--num_train_steps=60000 \--num_eval_steps=20 \--alsologtostderr

不出意外的话就可以正常训练了,训练之后可以在model_dir文件夹中看到保存下来的模型。

:接下来冻结模型的导出以及模型的测试都还是和用TensorFlow训练一个物体检测器(手把手教学版)中介绍的一样。

这篇关于如何用tensorflow中的object detection API来训练自己的数据集上的目标检测器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/539612

相关文章

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

一分钟带你上手Python调用DeepSeek的API

《一分钟带你上手Python调用DeepSeek的API》最近DeepSeek非常火,作为一枚对前言技术非常关注的程序员来说,自然都想对接DeepSeek的API来体验一把,下面小编就来为大家介绍一下... 目录前言免费体验API-Key申请首次调用API基本概念最小单元推理模型智能体自定义界面总结前言最

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt