标准化 Tensorflow 对象检测 API 的输入

2024-01-03

Tensorflow 对象检测 API 默认情况下是否会进行类似于输入标准化的预处理?

我在任何地方都找不到任何有关它的文档。数据增强中有一个名为“NormalizeImage”的选项。在动物园模型的所有配置文件中,我从未看到它被使用过。下雨了ssd_mobilenet_v3_small_coco_2020_01_14将学习转移到我的自定义课程而不使用它并且一切正常。 我知道有类似的问题here https://stackoverflow.com/q/51509083/4267439但几年后没有答案,网络也不同了。

使用以下代码(OpenCV 4.3.0 DNN 模块)进行测试会产生正确的结果:

import cv2 as cv


net = cv.dnn_DetectionModel('model/graph/frozen_inference_graph.pb', 'cvgraph.pbtxt')
net.setInputSize(300, 300)
#net.setInputScale(1.0 / 127.5)
#net.setInputMean((127.5, 127.5, 127.5))
net.setInputSwapRB(True)

frame = cv.imread('test/2_329_985_165605-561561.jpg')

classes, confidences, boxes = net.detect(frame, confThreshold=0.7)

for classId, confidence, box in zip(classes.flatten(), confidences.flatten(), boxes):
    print(classId, confidence)
    cv.rectangle(frame, box, color=(0, 255, 0))

cv.imshow('out', frame)
cv.waitKey()

While here https://github.com/opencv/opencv/pull/16760使用归一化。在我的例子中使用标准化会产生错误的结果,边界框比应有的大得多。我猜输入标准化是由张量流在幕后执行的?


即使我可能来不及帮助你,我也想回答这个问题,因为我在理解标准化是如何定义时遇到了一个非常类似的问题。也许它对其他人有帮助。

我什至发布了我自己的问题(here https://stackoverflow.com/questions/73019544/normalization-in-the-object-detection-api)但一个小时后找到了答案。因为我找不到你使用的型号(tf1动物园模型 https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf1_detection_zoo.md导致死链接ssd_mobilenet_v3_small_coco https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf1_detection_zoo.md)我认为那里的管道看起来与我使用的类似。

在管道配置中定义了特征提取器。

feature_extractor {
  type: "ssd_mobilenet_v2_keras"
  depth_multiplier: 1.0
  ...
  }

这使用了这个特征提取器。在此提取器中定义了以下预处理函数:

def preprocess(self, resized_inputs):
  """SSD preprocessing.
  Maps pixel values to the range [-1, 1].
  Args:
    resized_inputs: a [batch, height, width, channels] float tensor
      representing a batch of images.
  Returns:
    preprocessed_inputs: a [batch, height, width, channels] float tensor
    representing a batch of images.
  """
  return (2.0 / 255.0) * resized_inputs - 1.0

如果你计算一下,你会发现这与

image = (image-127.5)/127.5

只是以不同的方式格式化。我希望这可以帮助别人!

编辑: 然而我刚刚意识到这并不能解释为什么 OP 模型在没有预处理的情况下效果更好。我猜 OP 预处理必须已经在 cvgraph 中定义,正如它在opencv 文档 https://docs.opencv.org/4.x/d3/df1/classcv_1_1dnn_1_1DetectionModel.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

标准化 Tensorflow 对象检测 API 的输入 的相关文章

  • Flask+Nginx+uWSGI:导入错误:没有名为站点的模块

    我安装为http www reinbach com uwsgi nginx flask virtualenv mac os x html http www reinbach com uwsgi nginx flask virtualenv
  • JavaScript 相当于 Python 的参数化 string.format() 函数

    这是 Python 示例 gt gt gt Coordinates latitude longitude format latitude 37 24N longitude 115 81W Coordinates 37 24N 115 81W
  • Kivy - 文本换行工作错误

    我正在尝试在 Kivy 1 8 0 应用程序中换行文本 当没有太多文字时 一切正常 但如果文本很长并且窗口不是很大 它只是剪切文本 这是示例代码 vbox BoxLayout orientation vertical size hint y
  • for 循环如何评估其参数

    我的问题很简单 Does a for循环评估它每次使用的参数 Such as for i in range 300 python 是否会为此循环的每次迭代创建一个包含 300 个项目的列表 如果是的话 这是避免这种情况的方法吗 lst ra
  • 了解 Python 中的酸洗

    我最近接到一项作业 需要以腌制形式放置一本字典 其中每个键引用一个列表 唯一的问题是我不知道腌制形式是什么 谁能给我指出一些好的资源的正确方向来帮助我学习这个概念 pickle 模块实现了一个基本但强大的算法 用于序列化和反序列化 Pyth
  • 可以用 Django 制作移动应用程序吗?

    我想知道我是否可以在我的网站上使用 Django 代码 并以某种方式在移动应用程序 Flutter 等框架中使用它 那么是否可以使用我现在拥有的 Django 后端并在移动应用程序中使用它 所以就像models views etc 是的 有
  • WindowsError:[错误 126] 使用 ctypes 加载操作系统时

    python代码无法在Windows 7平台上运行 def libSO lib ctypes cdll LoadLibrary ConsoleApplication2 so lib cfoo2 1 3 当我尝试运行它时 得到来自python
  • Python Fabric - 未找到主机。请指定用于连接的(单个)主机字符串:

    如何获取 找不到主机 请指定用于连接的 单个 主机字符串 面料如何解决 def bootstrap host ec2 54 xxx xxx xxx compute 1 amazonaws com env hosts host env use
  • Apache Spark 中的高效字符串匹配

    我使用 OCR 工具从屏幕截图中提取文本 每个大约 1 5 句话 然而 当手动验证提取的文本时 我注意到时不时会出现一些错误 鉴于文本 你好 我真的很喜欢 Spark 我注意到 1 像 I 和 l 这样的字母被 替换 2 表情符号未被正确提
  • PySide6.1 与 matplotlib 3.4 不兼容

    当我只安装PySide6时 GUI程序运行良好 但是一旦我安装了matplotlib及其依赖包 包括pyqt5 则GUI程序将无法运行并输出以下错误消息 This application failed to start because no
  • 在Python中计算内存碎片

    我有一个长时间运行的进程 不断分配和释放对象 尽管正在释放对象 但 RSS 内存使用量会随着时间的推移而增加 如何计算发生了多少碎片 一种可能性是计算 RSS sum of allocations 并将其作为指标 即便如此 我该如何计算分母
  • 具有屏蔽无效值的 pcolormesh

    我试图将一维数组绘制为 pcolormesh 因此颜色沿 x 轴变化 但每个 x 的 y 轴保持不变 但我的数据有一些错误值 因此我使用屏蔽数组和自定义颜色图 其中屏蔽值设置为蓝色 import numpy as np import mat
  • 使用 numpy 在 python 中执行最大方差旋转

    我正在研究矩阵的主成分分析 我已经找到了如下所示的组件矩阵 A np array 0 73465832 0 24819766 0 32045055 0 3728976 0 58628043 0 63433607 0 72617152 0 5
  • Python 类型安全吗?

    根据维基百科 https en wikipedia org wiki Type system Type safety and memory safety 如果一种语言不允许违反类型系统规则的操作或转换 计算机科学家就认为该语言是 类型安全的
  • Python 声音(“铃声”)

    我想让一个 python 程序在完成任务时通过发出嘟嘟声来提醒我 目前 我使用import os然后使用命令行语音程序说 进程完成 我更愿意它是一个简单的 铃 我知道有一个函数可以用于Cocoa apps NSBeep 但我认为这与此没有太
  • Python]将两个文本文件合并为一个(逐行)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我是蟒蛇新手 我想做的是将文件 a 和文件 b 逐行合并到一个文件中 例如 text file a a n b n c text fi
  • 检测 IDLE 的存在/如何判断 __file__ 是否未设置

    我有一个脚本需要使用 file 所以我了解到 IDLE 没有设置这个 有没有办法从我的脚本中检测到 IDLE 的存在 if file not in globals file is not set 如果你想做一些特别的事情 file 未设置
  • 对数据帧的每 2 小时数据进行 Groupby

    我有一个数据框 Time T201FN1ST2010 T201FN1VT2010 1791 2017 12 26 00 00 00 854 69 0 87 1792 2017 12 26 00 20 00 855 76 0 87 1793
  • Django 模型:如何使用 mixin 类来覆盖 django 模型以实现 save 等功能

    我想在每次保存模型之前验证值 所以 我必须重写保存函数 代码几乎是一样的 我想把它写在 mixin 类中 但失败了 我不知道如何写 super func 我英语不好 抱歉 class SyncableMixin object def sav
  • 如何获取所有mysql元组结果并转换为json

    我能够从表中获取单个数据 但是当我试图获取表上的所有数据时 我只得到一行 cnn execute sql rows cnn fetchall column t 0 for t in cnn description for row in ro

随机推荐

  • 如何确定给定字体的字符串的大小

    我有一个小表单 显示一些进度信息 我很少需要显示相当长的消息 并且我希望能够在需要时调整此表单的大小 以便此消息适合表单 那么我如何知道字符串有多宽S将以字体呈现F 这取决于所使用的渲染引擎 您基本上可以在 GDI 和 GDI 之间切换 可
  • module.config 内的 AngularJS 依赖注入值

    尝试为模块设置一些辅助值 尝试过服务和价值 但没有帮助 var finance angular module finance finance services value helpers templatePath function name
  • 如何更改 Android EditText 键盘颜色?

    In iOS TextField有一个属性叫做Appeareance可以有一个Dark价值 它将改变KEYBOARD颜色 不是文本字段本身 但在 Android 中我找不到合适的颜色EditText https developer andr
  • 如果其中一个返回 true,是否有办法阻止 boost::signal 调用其插槽?

    我正在使用 boost 库 我的问题是关于 boost signals 的 我有一个信号可能会调用许多不同的插槽 但只有一个插槽与调用匹配 因此我希望该特定插槽返回 true 并且调用将停止 是否可以 有效率吗 如果效率不高 你们能建议我一
  • assetlinks.json 中的应用程序链接意图过滤器在 Android 上不起作用

    我的应用程序定义了意图过滤器来处理来自我的网站的 URL 由以下定义
  • 一个列表,简单的左浮动,不同的单元格大小

    我有一个很好的挑战给你 这里有下一个代码 实例 http inturnets com test test html http inturnets com test test html
  • 如何在 javax.ws.rs.core.Response 中设置响应主体

    有一个需要实现的 REST API 端点用于获取一些信息并将后端请求发送到另一台服务器 并且来自后端服务器的响应必须设置为最终响应 我的问题是如何在 javax ws rs core Response 中设置响应主体 Path analyt
  • Angular rxjs Observable.interval() 无法在 Chrome 的后台选项卡上正确触发

    我正在编写带有通过 RxJs observables 实现的间隔计时器的 Angular2 应用程序 并且刚刚注意到当选项卡处于后台时 Chrome 浏览器中 Observable interval 和 Observable timer 的
  • 减少多维数组的维度

    我无法迭代这一系列产品信息 并获得每个项目的回显谷歌电子商务跟踪代码的所需结果 如何将维度减少一 简而言之 怎么转这个 Array array gt Array 0 gt Array product id gt 7 prod count g
  • 多GPU基本使用

    例如 我如何使用两个设备来改进 以下代码的性能 向量之和 是否可以 同时 使用更多设备 如果是 我如何管理向量在不同设备的全局内存上的分配 include
  • 如何使用 github api 获取原始分叉存储库?

    我想知道如何从我的分叉存储库中获取原始存储库 我在用https api github com users user repos type forks获取分叉存储库的列表 它返回叉子上的各种链接 但我找不到如何获取原始存储库 任何想法 注意
  • 我可以在 kotlin 中使用非短路逻辑运算符吗?

    val myBoolean false true 在 Kotlin 中给出编译错误 意外标记 使用 分隔同一行上的表达式 您正在寻找的 运算符 是中缀andKotlin 中的函数 参考页面 https kotlinlang org api
  • 将 ORM 合并到(半)SOA 架构中

    我正在探索 ORM 的产品 专注于 NHibernate 考虑所有选项 并且确信使用它可能会给我们的一些项目带来很大的好处 但是我很难想象它会如何发挥作用在我们的系统中 我的理解是 ORM 非常适合用于将数据库和业务逻辑粘合在一起 这假设业
  • Elasticsearch 中任意查询的“实际命中”(不仅仅是匹配文档)计数

    这真的让我很沮丧 我尝试寻找解决方案很长一段时间 但无论我在哪里尝试从提出相同问题的人那里找到问题 他们要么想要一些不同的东西 比如here https stackoverflow com questions 37734693 elasti
  • 如何使用选项卡更新滑动视图中的片段

    以下 我正在使用使用选项卡滑动视图 http developer android com training implementing navigation lateral html 到目前为止工作相当顺利 问题是 我有两个片段 选项卡 每个
  • 在node.js中获取上传的文件名/路径

    如何获取上传的文件名 路径的名称以在 Node js 中对其进行操作 我想将文件从临时文件夹移动到客户文件夹 Node JS 不会自动将上传的文件保存到磁盘 相反 您必须阅读并解析multipart form data通过以下方式满足自己r
  • 将 NASM 和 64 位 C 代码编译并链接到引导加载程序中 [重复]

    这个问题在这里已经有答案了 我制作了一个非常简单的一级引导加载程序 它执行两个主要操作 从 16 位实模式切换到 64 位长模式 并从硬盘读取接下来的几个用于启动基本内核的扇区 对于基本内核 我尝试用 C 而不是汇编编写代码 对此我有一些疑
  • Windows Metro 应用程序中没有 P2P?

    在 BUILD 的 NET 开发人员对 Windows 8 应用程序开发的看法 会议中 讲师提到 Metro 配置文件中仅公开了客户端 WCF 功能 我们无法创建服务器 http channel9 msdn com Events BUILD
  • 添加缓存到 Zend\Form\Annotation\AnnotationBuilder

    因为我终于找到了一个二进制文件memcache对于 Windows 上的 PHP 5 4 4 我正在加快我当前正在开发的应用程序的速度 我已经成功将 memcache 设置为 Doctrine ORM 映射缓存驱动程序 但我需要修复另一个泄
  • 标准化 Tensorflow 对象检测 API 的输入

    Tensorflow 对象检测 API 默认情况下是否会进行类似于输入标准化的预处理 我在任何地方都找不到任何有关它的文档 数据增强中有一个名为 NormalizeImage 的选项 在动物园模型的所有配置文件中 我从未看到它被使用过 下雨