首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从tensorflow对象检测api的pts标签文件中导出TFRecords?

从tensorflow对象检测API的PTS标签文件中导出TFRecords的步骤如下:

  1. 首先,确保你已经安装了TensorFlow和对象检测API,并且已经准备好了PTS标签文件和对应的图像数据。
  2. 创建一个Python脚本,并导入必要的库和模块,包括tensorflow、numpy和PIL等。
  3. 使用tensorflow的tf.python_io.TFRecordWriter类创建一个TFRecords文件,用于存储导出的数据。
  4. 使用PTS标签文件解析工具,如parse_pascal_voc_xml函数,解析PTS标签文件,获取每个图像的标签信息。
  5. 遍历每个图像的标签信息,将其转换为TensorFlow对象检测API所需的格式。通常,这涉及将类别名称映射为整数编码,并将边界框的坐标转换为相对于图像尺寸的归一化值。
  6. 加载对应的图像数据,并将其转换为TensorFlow所支持的图像格式,如JPEG或PNG。
  7. 将图像数据和标签信息序列化为一个Example对象,并使用tf.train.Example.FromString方法将其转换为字符串。
  8. 将序列化的Example对象写入TFRecords文件中,使用tf.python_io.TFRecordWriterwrite方法。
  9. 重复步骤5至8,直到所有图像的标签信息都被处理并写入TFRecords文件中。
  10. 最后,关闭TFRecords文件。

以下是一个示例代码,展示了如何从PTS标签文件中导出TFRecords:

代码语言:txt
复制
import tensorflow as tf
import numpy as np
from PIL import Image

def create_tf_example(image_path, labels):
    with tf.gfile.GFile(image_path, 'rb') as fid:
        encoded_image = fid.read()
    
    image = Image.open(image_path)
    width, height = image.size
    
    xmins = []
    xmaxs = []
    ymins = []
    ymaxs = []
    classes_text = []
    classes = []
    
    for label in labels:
        xmins.append(label['xmin'] / width)
        xmaxs.append(label['xmax'] / width)
        ymins.append(label['ymin'] / height)
        ymaxs.append(label['ymax'] / height)
        classes_text.append(label['class'].encode('utf8'))
        classes.append(label['class_id'])
    
    tf_example = tf.train.Example(features=tf.train.Features(feature={
        'image/encoded': tf.train.Feature(bytes_list=tf.train.BytesList(value=[encoded_image])),
        'image/format': tf.train.Feature(bytes_list=tf.train.BytesList(value=['jpeg'.encode('utf8')])),
        'image/object/bbox/xmin': tf.train.Feature(float_list=tf.train.FloatList(value=xmins)),
        'image/object/bbox/xmax': tf.train.Feature(float_list=tf.train.FloatList(value=xmaxs)),
        'image/object/bbox/ymin': tf.train.Feature(float_list=tf.train.FloatList(value=ymins)),
        'image/object/bbox/ymax': tf.train.Feature(float_list=tf.train.FloatList(value=ymaxs)),
        'image/object/class/text': tf.train.Feature(bytes_list=tf.train.BytesList(value=classes_text)),
        'image/object/class/label': tf.train.Feature(int64_list=tf.train.Int64List(value=classes)),
    }))
    
    return tf_example

def main():
    output_path = 'output.tfrecord'
    image_dir = 'images/'
    label_file = 'labels.xml'
    
    writer = tf.python_io.TFRecordWriter(output_path)
    
    # 解析PTS标签文件,获取标签信息
    labels = parse_pascal_voc_xml(label_file)
    
    for label in labels:
        image_path = image_dir + label['filename']
        tf_example = create_tf_example(image_path, label['objects'])
        writer.write(tf_example.SerializeToString())
    
    writer.close()
    print('TFRecords导出完成!')

if __name__ == '__main__':
    main()

请注意,以上代码仅为示例,你需要根据自己的具体情况进行适当的修改和调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在自己数据集上训练TensorFlow更快R-CNN对象检测模型

在本示例,将逐步使用TensorFlow对象检测API训练对象检测模型。尽管本教程介绍了如何在医学影像数据上训练模型,但只需进行很少调整即可轻松将其适应于任何数据集。...https://blog.roboflow.ai/getting-started-with-roboflow/ 创建TFRecords标签图 将使用Faster R-CNNTensorFlow实现(...稍后对此进行更多说明),这意味着需要为TensorFlow生成TFRecords才能读取我们图像及其标签。...更快R-CNN是TensorFlow对象检测API默认提供许多模型架构之一,其中包括预先训练权重。这意味着将能够启动在COCO(上下文中公共对象)上训练模型并将其适应用例。...无需BCCD下载图像,而是可以自己数据集中下载图像,并相应地重新上传它们。 下一步是什么 已经将对象检测模型训练为自定义数据集。 现在,在生产中使用此模型将引起确定生产环境将是一个问题。

3.6K20

【干货】手把手教你用苹果Core ML和Swift开发人脸目标识别APP

TensorFlow对象目标检测API demo可以让您识别图像目标的位置,这可以应用到一些很酷应用程序。 有时我们可能会拍摄更多人物照片而不是景物照片,所以可以用同样技术来识别人脸。...:TensorFlow对象检测API是基于TensorFlow构建框架,用于在图像识别对象。...训练一个对象识别模型需要大量时间和大量数据。对象检测中最牛部分是它支持五种预训练迁移学习模型。转移学习迁移学习是如何工作?...),博文中介绍了如何用TF对象检测训练一个浣熊探测器。...由于对象检测API(Object Detection API)会输出对象在图像位置,因此不能将图像和标签作为训练数据传递给对象

14.8K60
  • 利用NVIDIA迁徙学习工具包加速智能视频分析

    9个图像分类和检测模型预先打包在迁徙学习工具包,其中包括在公共可用数据集上经过训练网络。对象检测模型采用NVIDIA开发检测技术。...· ResNet50 · VGG16 · GoogLeNet 让我们看一个如何使用迁移学习工具包特性参考应用程序,例如为resnet50 4类对象检测器重新培训.../path/to/save/model 下载时间取决于网络速度 步骤2:训练模型 用于对象检测预训练模型使用kitti文件格式数据集。...TLT提供了一个kitti到TFRecords数据集转换器。TFRecords帮助更快地遍历数据。...模型输出是一个水平边界,带有相关标签,如汽车、自行车、人员和路标。这些都对应于3×960×544图像大小和检测可信度。 从头开始培训模型涉及多次迭代和试验。

    95920

    浣熊检测器实例, 如何TensorFlowObject Detector API来训练你物体检测

    这篇文章是“用Tensorflow和OpenCV构建实时对象识别应用”后续文章。具体来说,我在自己收集和标记数据集上训练了我浣熊检测器。完整数据集可以在我Github repo上看到。...如果你没有其中之一,那么你需要编写自己脚本来生成TFRecords。 为了准备API输入文件,你需要考虑两件事。...实际上,我可以把它们放在pngs格式API也是应该支持这一点。 最后,在对图像进行标记之后,我编写了一个脚本,该脚本将XML文件转换为csv,然后创建TFRecords。...这里可以找到一个完整选项列表(参阅PREPROCESSING_FUNCTION_MAP)。 数据集(TFRecord文件)及其相应标签映射。如何创建标签映射例子可以在这里找到。...输出模型 在完成训练之后,我将训练过模型导出到单个文件(Tensorflow graph proto),这样我就可以使用它进行推理。

    1.7K70

    TensorFlow 2.0 新增功能:第一、二部分

    对于配置对象生成模型逆用例,… 加载和保存权重 在 Python API tensorflow.keras使用 NumPy 数组作为权重交换单元。...请注意,在 TF 2.0 ,tf.Examples已在诸如 TFX 所有 TensorFlow 高级 API 中使用。。 现在,让我们看看如何将数据存储在TFRecords。...类型,可以将tf.Example消息序列化,写入和读取到tfrecords文件: 以下代码块函数可用于将值转换为… tf.data数据集对象创建 如我们前面提到,tf.data API 集提供了原始数据构建复杂而有效输入数据管道工具...创建数据集对象 可以使用两种主要方法创建数据集对象源创建: 来自内存numpy / tensorflow对象 使用TFRecords来自磁盘 将转换应用于现有数据集: 从一个或多个数据集构造一个数据集...它描述了如何集成输入数据管道,创建基于tf.keras模型,以分布式方式进行训练以及运行验证以微调模型超参数。 它还涉及有关如何导出和保存 TensorFlow 模型以进行部署和推理各种概念。

    3.6K10

    实例介绍TensorFlow输入流水线

    这里我们通过mnist实例来讲解如何使用tf.data建立简洁而高效输入流水线,在介绍之前,我们先介绍如何制作TFRecords文件,这是TensorFlow支持一种标准文件格式 1 制作TFRecords...文件 TFRecords文件TensorFlow标准数据格式,它是基于protobuf二进制文件,每个TFRecord文件基本元素是tf.train.Example,其对应是数据集中一个样本数据...2 读取TFRecords文件 上面我们创建了TFRecords文件,但是怎么去读取它们呢,当然TF提供了读取TFRecords文件接口函数,这里首先介绍如何利用TF操作TFRecordpython...样本队列出列一定量样本数据即可以用于一个训练过程。TF提供了配套API来完成这个过程,注意是这个输入流水线是直接嵌入训练Graph,即是整个图模型一部分。...利用这两个抽象,Dataset使用简化为三个步骤: 创建Dataset实例对象; 创建遍历DatasetIterator实例对象Iterator不断地产生样本,并送入模型中进行训练。

    1.5K60

    一个应用于物体识别的迁移学习工具链

    我们主要致力于给大家展现一个可以应用于其他类似场景迁移学习工具链,如何构建一个自定义数据集开始,最终得到一个微调完成模型。...迁移学习 2.1 将COCO标签数据转换为TFRecords数据格式 TensorFlow对象检测API要求数据需为TFRecord格式,这是一种不易理解数据格式。...你可以在我们GitHub仓库中找到这个脚本小改版本。 创建TFRecords数据 用命令行cd到与GitHub仓库对应脚本文件夹 运行下面的代码 ?...here下载faster_rcnn_resnet50_coco 解压缩下载tar包 将三个.ckpt后缀文件复制到模型文件 复制faster_rcnn_resnet50_coco配置文件到模型文件...在 /data/inference文件查看运行脚本结果 . 关于TensorFlow API更多说明请参考this TensorFlow tutorial。

    62120

    【教程】利用Tensorflow目标检测API确定图像目标的位置

    它由以下步骤组成: 通过创建一组标记训练图像来准备数据集,其中标签代表图像Wallyxy位置; 读取和配置模型以使用Tensorflow目标检测API; 在我们数据集上训练模型; 使用导出图形对评估图像模型进行测试...最简单机器学习问题目标值通常是标量(比如数字检测器)或分类字符串。Tensorflow目标检测API训练数据使用两者结合。它包括一组图像,并附有特定目标的标签和它们在图像中出现位置。.../tf-slim/2016/12/21/tfrecords-guide/ 准备模型 Tensorflow目标检测API提供了一组经过多次公开数据集训练具有不同性能(通常为速度 – 精度折衷)预训练模型...训练 Tensorflow目标检测API提供了一个简单易用Python脚本来重新训练我们模型。...我写了一些简单Python脚本(基于Tensorflow 目标检测API),你可以在模型上使用它们执行目标检测,并在检测目标周围绘制框或将其暴露。

    2.5K60

    跨出前端智能化第一步-tensorflow应用

    就行了,没有太多必要使用tensorflow1;安装和使用过程应该会遇到一些pip包缺失问题,这个需要自己看提示解决,其实跟npm类似。...二、创建数据集 tensorflow对象识别需要使用tfrecord格式数据集 推荐标注平台:app.labelbox.com/ 推荐制作导出平台:app.roboflow.com/ 创建数据集方式有很多种...,可以通过python语言创建自定义tfrecords数据集,也可以通过各类数据集标注平台; 注: tfrecordstensorflow定义一种数据格式,直接用于数据训练; 通过收集大量训练图片进行人工标注...5、完成所有标注,导出JSON文件 ? roboflow 部分 创建数据集 ? 2.按提示上传刚刚导出json文件,根据提示继续操作 3.在导入数据集基础上,进行自定义图片处理 ?...主要有以下几个参数需要调整: num_classes 代表数据集分类数量; fine_tune_checkpoint 指向下载预训练模型checkpoint(根据这个文件model_checkpoint_path

    1K20

    【SSD目标检测】3:训练自己数据集「建议收藏」

    前言: 上两章已经详细介绍了SSD目标检测(1):图片+视频版物体定位(附源码),SSD目标检测(2):如何制作自己数据集(详细说明附源码)。...tfrecords_、train_model、VOC2007文件夹,再将之前在SSD目标检测(2):如何制作自己数据集(详细说明附源码)制作三个文件夹Annotations、ImageSets、JPEGImages...文件代码微调说明 第三步:修改标签项——打开datasets文件pascalvoc_common.py文件,将自己标签项填入。...我之前做图片标签.xml文件,就只有一个标签项“watch”,所以要根据你自己数据集实际情况进行修改; 第四步:修改读取个数、读取方式——打开datasets文件pascalvoc_to_tfrecords.py...修正完box和中心后,函数会计算每个像素每个box分类预测数据得分,当这个分数高于一个阈值(这里是0.5)则认为这个box成功 框到了一个对象,然后将这个box坐标数据,所属分类和分类得分导出

    2.4K20

    TensorFlow】理解 Estimators 和 Datasets

    本篇博文就是试图将这两个高层 API 结合起来,使用 TensorFlow 数据格式 TFRecords 来实现一个在 CIFAR-10 数据集上 CNN 模型。...reinitializable:这是种比较复杂方式,简单来说也就是使你可以多个不同 Dataset 对象获取数据,详细可见 Creating an iterator。...在 Estimator ,我们输入必须是一个函数,这个函数必须返回特征和标签(或者只有特征),所以我们需要把上面的内容写到一个函数。...TFRecords 格式每行表示一个样本(record),关于如何将数据集写成 TFRecords 格式,可以参考 save-and-read-cifar10-tfrecords.ipynb。...map 函数参数 parser 也是一个函数,用于将图片和标签 TFRecords 解析出来。

    3.5K101

    实例介绍TensorFlow输入流水线

    这里我们通过mnist实例来讲解如何使用tf.data建立简洁而高效输入流水线,在介绍之前,我们先介绍如何制作TFRecords文件,这是TensorFlow支持一种标准文件格式 1 制作TFRecords...文件 TFRecords文件TensorFlow标准数据格式,它是基于protobuf二进制文件,每个TFRecord文件基本元素是tf.train.Example,其对应是数据集中一个样本数据...2 读取TFRecords文件 上面我们创建了TFRecords文件,但是怎么去读取它们呢,当然TF提供了读取TFRecords文件接口函数,这里首先介绍如何利用TF操作TFRecordpython...样本队列出列一定量样本数据即可以用于一个训练过程。TF提供了配套API来完成这个过程,注意是这个输入流水线是直接嵌入训练Graph,即是整个图模型一部分。...利用这两个抽象,Dataset使用简化为三个步骤: 创建Dataset实例对象; 创建遍历DatasetIterator实例对象Iterator不断地产生样本,并送入模型中进行训练

    56850

    TensorFlow TFRecord数据集生成与显示

    TensorFlow提供了TFRecord格式来统一存储数据,TFRecord格式是一种将图像数据和标签放在一起二进制文件,能更好利用内存,在tensorflow快速复制,移动,读取,存储 等等...TFRecords文件读取数据, 可以使用tf.TFRecordReadertf.parse_single_example解析器。...将单个TFRecord类型数据集显示为图片 上面提到了,TFRecord类型是一个包含了图片数据和标签合集,那么当我们生成了一个TFRecord文件如何查看图片数据和标签是否匹配?...可以将其转化为图片形式再显示出来,并打印其在TFRecord对应标签,下面是一个例子,接上面生成单个TFRecord文件代码,在F:\testdata\show路径下显示解码后图片,名称包含标签...(.read)时,该函数会先判断当前是否已有打开文件可读,如果没有或者打开文件已经读完,这个函数会输入队列中出队一个文件并从这个文件读取数据。

    6.7K145

    如何TensorFlow和Swift写个App识别霉霉?

    在我详细介绍每个步骤前,有必要解释一些后面会提到技术名词。 TensorFlow Object Detection API:一款基于 TensorFlow 框架,用于识别图像物体。...我虽然没时间找几千张标记了 Taylor Swift 名字照片,然后训练一个模型,但是我可以利用 TensorFlow Object Detection API 预训练模型里提取出特征,这些模型都是用几百万张图像训练而成...在我 train/bucket ,我可以看到训练过程几个点中保存出了检查点文件: ? 检查点文件第一行会告诉我们最新检查点路径——我会本地在检查点中下载这3个文件。...如果想运行如下脚本,你需要定义到达你MobileNet 配置文件本地路径,训练阶段中下载模型检查点数量,以及你想将导出图表写入目录名字: # Run this script from tensorflow...我只选用置信值分数高出 70% 检测。 detection_classes 会告诉我们检测结果相关标签 ID。在我们这里例子中会一直只有一个 ID,因为只有一个标签

    12.1K10

    使用Tensorflow对象检测在安卓手机上“寻找”皮卡丘

    TensorFlow许多功能和工具,隐藏着一个名为TensorFlow对象探测APITensorFlow Object Detection API组件。...TensorFlow对象检测API:https://github.com/tensorflow/models/tree/master/research/object_detection ?...在应用检测屏幕截图 Tensorflow对象检测API 这个程序包是TensorFlow对象检测问题响应——也就是说,在一个框架检测实际对象(皮卡丘)过程。...,在第二行,写上你对象标签(在我例子,我标签为“Pikachu”)。...查找变量TF_OD_API_MODEL_FILE和TF_OD_API_LABELS_FILE,并且在第一个文件,将其值更改为位于“assets”文件frozen模型路径,然后在第二个文件写入带有标签文件路径

    2.1K50

    TensorFlow Eager 教程

    在本教程,我们将使用 TensorFlow 命令模式构建一个简单前馈神经网络。 希望你会发现它很有用! 如果你对如何改进代码有任何建议,请告诉我。...(filename).numpy() # 文件解析它标签 label = int(filename.split('_')[-1].split('.')[0])...六、如何使用 TensorFlow Eager TFRecords 批量读取数据 大家好,本教程再次关注输入流水线。...本教程主要目的不是教你如何构建一个简单 RNN,而是如何构建一个 RNN,为你提供模型开发更大灵活性(例如,使用目前在 Keras 不可用新 RNN 单元,更容易访问 RNN 展开输出,磁盘批量读取数据...我希望能够让你看看,在你可能感兴趣任何领域中,如何继续建立你自己模型,不管它们有多复杂。 教程步骤 下载原始数据并将其转换为 TFRecordsTensorFlow 默认文件格式)。

    88920

    编写基于TensorFlow应用之构建数据pipeline

    详见:www.sigai.cn 知识库 本文主要以MNIST数据集为例介绍TFRecords文件如何制作以及加载使用。...图2 TensorFlowETL过程 相较于TFRecords文件,文本文件,numpy数组,csv文件文件格式更为常见。...接下来,本文将以常用MNIST数据集为例简要介绍TFRecord文件如何生成以及如何TFrecord构建数据pipeline。...图3 TFRecord文件存储内容结构 TFRecords存储层级如图3所示,图中可以看到: 一个TFRecord文件包含了多个tf.train.Example, 每个tf.train.Example...由于MNIST涉及到特征仅有数组和标签两类内容,对于读者在使用TensorFlow过程可能会遇到其他数据格式,建议参考https://github.com/tensorflow/models/blob

    1.1K20

    ApacheCN 深度学习译文集 2020.9

    TensorFlow 基础知识 2. TensorFlow 线性回归 3. TensorFlow 聚类 4. TensorFlow 单层神经网络 5....二、在 Eager 模式中使用指标 三、如何保存和恢复训练模型 四、文本序列到 TFRecords 五、如何将原始图片数据转换为 TFRecords 六、如何使用 TensorFlow Eager ...九、DeepDream 十、自动图像字幕生成器 十一、图像着色 面向计算机视觉深度学习 零、前言 一、入门 二、图像分类 三、图像检索 四、对象检测 五、语义分割 六、相似性学习 七、图像字幕 八...二、Keras:TensorFlow 2 高级 API 三、TensorFlow 2 和 ANN 技术 第 2 部分:TensorFlow 2.00 Alpha 监督和无监督学习 四、TensorFlow...零、前言 一、TensorFlow 设置和介绍 二、深度学习和卷积神经网络 三、TensorFlow 图像分类 四、目标检测与分割 五、VGG,Inception,ResNet 和 MobileNets

    1.3K50

    Python 数据科学入门教程:TensorFlow 目标检测

    在本教程,我们将介绍如何调整 API github 仓库示例代码,来将对象检测应用到来自摄像头视频流。 首先,我们将首先修改笔记本,将其转换为.py文件。...三、跟踪自定义对象 欢迎阅读 TensorFlow 目标检测 API 系列教程第 3 部分。 在这部分以及随后几部分,我们将介绍如何使用此 API 跟踪和检测自己自定义对象。...四、创建 TFRecord 欢迎阅读 TensorFlow 目标检测 API 系列教程第 4 部分。在本教程这一部分,我们将介绍如何创建 TFRecord 文件,我们需要它来训练对象检测模型。...五、训练自定义对象检测器 欢迎阅读 TensorFlow 对象检测 API 系列教程第 5 部分。在本教程这一部分,我们将训练我们对象检测模型,来检测我们自定义对象。...为了使用模型来检测事物,我们需要导出图形,所以在下一个教程,我们将导出图形,然后测试模型。 六、测试自定义对象检测器 欢迎阅读 TensorFlow 对象检测 API 教程系列第 6 部分。

    1.4K30

    深度学习_1_Tensorflow_2_数据_文件读取

    tensorflow 数据读取 队列和线程 文件读取, 图片处理 问题:大文件读取,读取速度, 在tensorflow真正多线程 子线程读取数据 向队列放数据(如每次100个),主线程学习...:包含张量列表 batch_size:队列汇总读取批处理大小 num_threads:进入队列线程数 capacity:整数,队列最大数量 案例 import tensorflow...API: 图像读取器:tf.WholeFileReader ​ 将文件全部内容作为值输出读取器 ​ 返回读取实例 ​ read(file_queuse) 输出时一个文件名和该文件值...案例分析:https://www.cs.toronto.edu/~kriz/cifar.html CIFAR-10数据集:6000张32*32彩色图片 分为训练集文件,测试集文件 文件每一行为(标签...更好利用内存,速度快,更好赋值和移动 ​ 为了将二进制数据和标签 存储在同一个文件文件格式*.tfrecords ​ 写入文件内容:Example协议块 ----->类字典格式 ​ 每个

    77020
    领券