保存张量流对象检测增强图像

2024-03-22

有没有办法在所有预处理/增强之后查看tensorflow对象检测api训练的图像。

我想验证一下事情看起来是否正确。我能够通过查看推论中调整大小的图表来验证调整大小,但显然我无法对增强选项执行此操作。

过去使用 Keras 我已经能够做到这一点,而且我发现我太激进了。


API 提供了增强选项的测试代码。在输入测试.py https://github.com/tensorflow/models/blob/master/research/object_detection/inputs_test.py文件,函数test_apply_image_and_box_augmentation是为了那个。您可以通过将自己的图像传递给tensor_dict然后保存augmented_tensor_dict_out进行验证,或者您可以直接将其可视化。

编辑: 由于这个答案很早以前就已得到回答但仍未被接受,因此我决定通过示例提供更具体的答案。我写了一个名为的小测试脚本augmentation_test.py.

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import functools
import os
from absl.testing import parameterized

import numpy as np
import tensorflow as tf
from scipy.misc import imsave, imread

from object_detection import inputs
from object_detection.core import preprocessor
from object_detection.core import standard_fields as fields
from object_detection.utils import config_util
from object_detection.utils import test_case

FLAGS = tf.flags.FLAGS

class DataAugmentationFnTest(test_case.TestCase):

  def test_apply_image_and_box_augmentation(self):
    data_augmentation_options = [
        (preprocessor.random_horizontal_flip, {
        })
    ]
    data_augmentation_fn = functools.partial(
        inputs.augment_input_data,
        data_augmentation_options=data_augmentation_options)
    tensor_dict = {
        fields.InputDataFields.image:
            tf.constant(imread('lena.jpeg').astype(np.float32)),
        fields.InputDataFields.groundtruth_boxes:
            tf.constant(np.array([[.5, .5, 1., 1.]], np.float32))
    }
    augmented_tensor_dict = 
        data_augmentation_fn(tensor_dict=tensor_dict)
    with self.test_session() as sess:
      augmented_tensor_dict_out = sess.run(augmented_tensor_dict)
    imsave('lena_out.jpeg',augmented_tensor_dict_out[fields.InputDataFields.image])


if __name__ == '__main__':
  tf.test.main()

你可以把这个脚本放在models/research/object_detection/并简单地运行它python augmentation_test.py。要成功运行它,您应该提供任何图像名称“lena.jpeg”,并且增强后的输出图像将保存为“lena_out.jpeg”。

I ran it with the 'lena' image and here is the result before augmentation and after augmentation. lena

lena_out.

请注意,我使用了preprocessor.random_horizontal_flip在脚本中。结果准确地显示了输入图像之后的样子random_horizontal_flip。要使用其他增强选项对其进行测试,您可以替换random_horizontal_flip与其他方法(全部定义在预处理器.py https://github.com/tensorflow/models/blob/master/research/object_detection/core/preprocessor.py以及配置原型文件中),您可以将其他选项附加到data_augmentation_options列表,例如:

data_augmentation_options = [(preprocessor.resize_image, {
        'new_height': 20,
        'new_width': 20,
        'method': tf.image.ResizeMethod.NEAREST_NEIGHBOR
    }),(preprocessor.random_horizontal_flip, {
    })]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

保存张量流对象检测增强图像 的相关文章

随机推荐

  • 是否有 GitHub 支持的 git 预告片的完整参考列表记录在某处?

    GitHub 支持一些 git 提交 预告片 尽管它没有这样称呼它们 因为instance https docs github com en pull requests committing changes to your project
  • 如何生成要展开的任务

    有人可以解释一下这两种说法之间的区别吗 Task
  • Jenkins 按标签锁定

    我想要实现的目标 I have jobA一台机器上需要 1 个执行器 I have jobB需要同一台机器上的 2 个执行器和 X 台机器上的 1 个执行器 我希望他们能够使用相同的机器 尽管不是同时 gt 他们目前使用不同的机器 他们的所
  • EF Code First 中自引用实体的映射

    在我的数据库中 我有一个表 Category 其中包含 Id CategoryName ParentCategoryId 列 其中 ParentCategoryId 对 Category Id 有约束 我首先使用实体 框架代码 其中实体如下
  • PHP mySQL - 将新记录插入到主键自动增量的表中

    想知道是否有一个速记版本可以将新记录插入到启用了主键的表中 即不必在查询中包含键列 假设键列称为 ID 其他列是 Fname Lname 和 Website query INSERT INTO myTable VALUES Fname Ln
  • Informix for .NET 的连接字符串

    我们正在使用 Informix 数据库 并使用 ODBC 从 NET 成功连接到它 我们使用的连接字符串是 DRIVER IBM INFORMIX ODBC RIVER UID username PWD password DATABASE
  • 如何为apache http客户端中的所有请求设置默认标头?

    例如 默认用户代理可以设置为 client getParams setParameter CoreProtocolPNames USER AGENT someName 但是如何设置 Accept 标头呢 HttpClient 4 3 现在允
  • Seaborn Lineplot 模块对象没有属性“Lineplot”

    使用seaborn的文档代码生成线图会返回AttributeError module 对象没有属性 lineplot 我已经更新了seaborn并重新导入了模块并再次尝试 没有运气 lineplot 退役了吗 还是有其他事情发生 impor
  • c# socket接收字节数组长度

    我正在尝试学习在 C 中使用套接字 但我有疑问 我正在使用如下代码 byte data new byte 64 int length 0 length sock Receive data more code So the byte data
  • 指定的密钥太长;最大密钥长度为 767 字节 - ASPNet Identity MySQL

    我使用 Identity 和 MySQL 创建了一个 MVC 应用程序 我已经创建了实体 但是当我创建用户表时 它失败并出现标题中指定的错误 我四处搜寻 人们都说UserName Name and Email属性太长 我已经厌倦了在这些列上
  • EOT 必须位于队列的开头吗?

    if if echo lt lt
  • Nodejs 和 Express 中的 Multer 图像上传

    几天来我一直在尝试使用 Multer 上传图像 这就是我已经走了多远 我尝试了多种方法 但似乎无法使其发挥作用 我不知道如何使用 Multer 在 createUser 函数中按如下所示的格式上传图像 我的 server js 文件 var
  • R 中的神经网络 - 为所有输入值获取相同的输出

    我正在尝试准备一个神经网络来根据两个参数 否 和 年龄 来预测产品的索赔数量 以下数据集是神经网络的输入 structure list no c 25305 4104099149 49282 7650363303 71596 1615884
  • 是否可以在 mysql 中散列整个结果集?

    是否可以将哈希函数应用于 mysql 中的整个结果集 我知道如何对结果集的每一行中的值进行哈希处理 e g SELECT md5 something 不过 假设我有一个查询 例如 SELECT FROM some table 结果集包含很多
  • 使 JTable 单元格编辑器值可选择,但不可编辑?

    我已经尽力保持我的JTable紧密且安全 仅可编辑列可通过isCellEditable 然而 我的客户坚持要求他们双击某个单元格 以便复制其内容 即使它是只读的 我可以让单元格可编辑 并且不对他们可以在setValueAt 因此当编辑器退出
  • 值等于数组中的任何值吗?

    只是想知道是否有任何方法可以检查值 A 是否等于数组中的任何值 不使用大循环函数 有点像 Where 函数 e g if DataRow column1value
  • 使用 jetpack EncryptedFile 安全性进行图像加密

    谷歌介绍安全加密jetpack库 https developer android com topic security data 我想使用这个库来加密图像文件 在库的文档中没有用于加密图像文件的示例 我将图像转换为位图 位图转换为字节数组
  • 点击叠加时显示标注

    我有一个带有多个叠加层的 MKMapView 一切都很好 而且它的工作原理是如此简单 令人难以置信 然而 有一件事我无法去上班 这个想法很简单 当用户在覆盖层覆盖的区域内点击时 必须出现包含有关该覆盖层的一些信息的标注 叠加都是MKPoly
  • 高效访问任意深度的字典

    假设我有一个像这样的多级字典 mydict first second third fourth the end 我想像这样访问它 test get entry mydict first second third fourth 到目前为止我所
  • 保存张量流对象检测增强图像

    有没有办法在所有预处理 增强之后查看tensorflow对象检测api训练的图像 我想验证一下事情看起来是否正确 我能够通过查看推论中调整大小的图表来验证调整大小 但显然我无法对增强选项执行此操作 过去使用 Keras 我已经能够做到这一点