首页
学习
活动
专区
工具
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-CNN的TensorFlow实现(...稍后对此进行更多说明),这意味着需要为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.9K60
  • 利用NVIDIA迁徙学习工具包加速智能视频分析

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

    96720

    浣熊检测器实例, 如何用TensorFlow的Object 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.7K10

    实例介绍TensorFlow的输入流水线

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

    1.6K60

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

    我们主要致力于给大家展现一个可以应用于其他类似场景的迁移学习工具链,从如何构建一个自定义的数据集开始,最终得到一个微调完成的模型。...迁移学习 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。

    62420

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

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

    1K20

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

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

    2.6K60

    【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.6K20

    【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.6K101

    实例介绍TensorFlow的输入流水线

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

    57650

    TensorFlow TFRecord数据集的生成与显示

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

    6.8K145

    如何用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 Eager 教程

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

    95120

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

    详见:www.sigai.cn 知识库 本文主要以MNIST数据集为例介绍TFRecords文件如何制作以及加载使用。...图2 TensorFlow中的ETL过程 相较于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

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

    在TensorFlow的许多功能和工具中,隐藏着一个名为TensorFlow对象探测API(TensorFlow 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

    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

    【实践操作】 在iOS11中使用Core ML 和TensorFlow对手势进行智能识别

    为机器学习算法生成数据 项目的自述文件解释了如何修改手势类的集合,包括复选标记、x标记、“涂鸦”(在上下移动时快速的侧向运动)、圆形、U形、心形、加号、问号、大写A、大写B、笑脸和悲伤的表情。...教程地址:https://www.tensorflow.org/get_started/mnist/pros 我用来训练和导出模型的一组脚本在一个叫做“gesturelearner”的文件夹中。...训练神经网络 如果你在训练中退出了train.py,你可以稍后重新启动,它将加载checkpoint文件以获取它所处的位置,它还可以选择从哪里加载模型以及保存它的位置。...每当我们更改TensorFlow图时,我们就必须同步转换代码以确保我们的模型正确地导出。 希望将来苹果能开发出一种更好的输出TensorFlow模型的方法。...而在Android上,你可以使用官方的Tensorflow API。 此外,谷歌还将发布一款名为TensorFlow Lite的移动优化版本的TensorFlow。

    2.7K60
    领券