利用tensorflow object detection训练ssd_mobilenets

本文介绍了如何利用TensorFlow Object Detection API对SSD_Mobilenet模型进行训练,包括文件夹构造、数据准备、下载预训练模型、修改配置文件、模型训练及使用Tensorboard进行可视化的过程。
摘要由CSDN通过智能技术生成

已经安装好了object detection这个api,先利用该api对ssd_mobilenets进行训练

1.文件夹构造

为不影响tensorflow的源码,我在我的主文件夹下新建了名为ssd_mobilenets的文件夹,里面放置了名为QRCodeData的文件夹,QRCodeData中有image和xml两个文件夹,其中image包含这图片数据,xml包含着xml数据。在根目录新建models文件夹,用于存放config和预训练模型。继续再根目录新建data文件夹,用于存放.record数据。

2.数据准备

tensorflow有自己的格式要求,pascal的voc格式不能直接使用,但是之前说过了voc格式的数据即使各个框架不适用,但是也会给转化的脚本。为了进行转化,除了图像数据和xml文件,还需要准备一下几个文件

(1)准备.pbtxt文件

.pbtxt用于表示label和id的映射关系,我的.pbtxt文件命名pascal_label_map.pbtxt,其中内容如下:

item {
  id: 1
  name: 'QR_code'
}

如有多类则在后面不断增加id

item {
  id: 2
  name: XXX
}

(2)准备.txt文件

.txt文件用于表示图像文件名中目标与id之间的映射关系。用脚本提取出所有数据集的名称,每个图像文件名占一行:

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
Created on Wed Jul 12 17:50:26 2017

@author: seven
"""

import os
from os import listdir, getcwd
from os.path import join
if __name__ == '__main__':
    source_folder='/home/seven/darknet/infrared/plate/image/'#地址是所有图片的保存地点
    dest='/home/seven/darknet/infrared/train.txt' #保存train.txt的地址
    file_list=os.listdir(source_folder)       #赋值图片所在文件夹的文件列表
    train_file=open(dest,'a')                 #打开文件
    for file_obj in file_list:                #访问文件列表中的每一个文件
        file_path=os.path.join(source_folder,file_obj) 
        file_name,file_extend=os.path.splitext(file_obj)
        #file_name 保存文件的名字,file_extend保存文件扩展名
        file_num=int(file_name) 
        train_file.write(file_name+'\n') 
    train_file.close()#关闭文件

将source_folder改为自己图像所在路径,dest为输出txt的路径。得到的.txt每一行保存着image中每一个图像的名称,由于我只检测一类,所以直接在每一行加个1。我的.txt文件内容如下:

QR_code_2017711_122 1
QR_code_2017711_422 1
QR_code_2017711_506 1
QR_code_2017711_538 1
QR_code_2017711_474 1
QR_code_2017711_310 1
QR_code_2017711_499 1
QR_code_2017711_081 1
QR_code_2017711_269 1
QR_code_2017711_472 1
QR_code_2017711_211 1
QR_code_2017711_060 1
QR_code_2017711_071 1
QR_code_2017711_204 1
QR_code_2017711_276 1
QR_code_2017711_206 1
QR_code_2017711_214 1
QR_code_2017711_124 1
QR_code_2017711_331 1
QR_code_2017711_180 1

(3)生成.record文件

官方提供了脚本,我将脚本进行了修改,不需要再加其他参数,直接在代码中修改路径后,在ssd_mobilenets根目录保存为a.py,终端进入ssd_mobilenets ,输入

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TensorFlow Object Detection API 是一个开源项目,它提供了一系列基于 TensorFlow 的工具和库,用于实现目标检测任务。对于 macOS 系统,我们可以通过以下步骤来使用 TensorFlow Object Detection API: 1. 安装 TensorFlow:在 macOS 上安装 TensorFlow 是使用 TensorFlow Object Detection API 的前提。你可以通过 pip 命令进行安装,例如在终端中执行 `pip install tensorflow`。 2. 下载 TensorFlow Object Detection API:打开终端并导航到适合你的工作目录中,然后使用 git 命令来克隆 TensorFlow Object Detection API 的 GitHub 仓库,例如执行 `git clone https://github.com/tensorflow/models.git`。 3. 安装依赖项:进入克隆的模型目录中,找到 research 文件夹并进入。然后运行 `pip install -r object_detection/requirements.txt` 命令来安装所需的依赖项。 4. 下载预训练模型:在 TensorFlow Object Detection API 中,我们可以使用预训练的模型来进行目标检测。你可以从 TensorFlow Model Zoo 中下载适合你任务的模型,并将其解压到你的工作目录中。 5. 运行实例代码:在 research/object_detection 目录中,你可以找到一些示例代码,用于训练、评估和使用目标检测模型。可以通过阅读这些示例代码并根据自己的需求进行修改。例如,你可以使用 `python object_detection/builders/model_builder_tf2_test.py` 命令来运行一个模型的测试。 以上是在 macOS 上使用 TensorFlow Object Detection API 的基本步骤,你可以根据你的具体需求进行更多的深入研究和调整。希望这些信息能帮助到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值