问题标签 [object-detection-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1908 浏览

tensorflow - Tensorflow 对象检测 API 无效参数:元组组件 16 中的形状不匹配。预期 [1,?,?,3],得到 [1,182,322,4]

这是这个 Github issue的后续问题。长话短说,我尝试将 Tensorflow 对象检测 API 与我自己的数据集一起使用。一切正常,直到突然崩溃并显示以下错误消息:

起初我以为我的数据集中可能有一些不一致的图像,即有一些 png 保存为 jpg,反之亦然,所以我去扫描数据集中的所有图像并修复它们。我对这样的任务使用了以下方法:

然后我用于EmguCV检索图像深度/通道数,以避免从错误的深度引起任何进一步的问题!然后注释图像 abdTFRecord再次创建一个新的,然后开始一个新的培训课程。

这是我再次得到的:

我使用了我的图像的一个随机子集(10K 图像而不是 300K)并再次得到相同的错误:

问题是,我的数据集中根本没有错误消息中报告的形状的任何图像。

以下是一些补充信息:

  • 操作系统平台和分发:Windows 10 x64 1703, Build 15063.540
  • TensorFlow 安装自(源代码或二进制文件):binary (used pip install )
  • TensorFlow 版本(使用下面的命令):1.3.0
  • 蟒蛇版本:3.5.3
  • CUDA/cuDNN 版本:Cuda 8.0 /cudnn v6.0
  • GPU型号和内存:GTX-1080 - 8G
0 投票
1 回答
1949 浏览

tensorflow - Tensorflow 对象检测 API,仅在 CPU 上运行,出现错误忽略设备规范 /device:GPU:0 for node 'prefetch_queue_Dequeue'

当我开始训练时,这个过程只发生在 CPU 上。这是我在启动时收到的消息:

忽略节点 'prefetch_queue_Dequeue' 的设备规范 /device:GPU:0 因为来自 'prefetch_queue' 的输入边是参考连接并且已经将设备字段设置为 /device:CPU:0

并且当 GPU 内存被填满时,只有 GPU 负载的突然峰值,并且大部分是 0%。不用说,性能非常缓慢。
在此处输入图像描述

似乎所有内容都加载到 CPU 而不是 GPU,因为 CPU 利用率接近 100%:

在此处输入图像描述

我还注意到在 ubuntu 中存在同样的问题,但它至少比 windows 分支快 4 倍(每个步骤需要 400 毫秒,而在 windows 中需要 1300 毫秒)
我在 Ubuntu(14.04)和Windows 和它们都使用pip install --upgrade tensorflow-gpu command
以下是整个日志安装:

出了什么问题以及如何解决这个问题?
顺便说一下,这里有一些补充信息:

  • 操作系统平台和分发:Windows 10 x64 1703, Build 15063.540
  • TensorFlow 安装自(源代码或二进制文件):binary (used pip install )
  • TensorFlow 版本(使用下面的命令):1.3.0
  • 蟒蛇版本:3.5.3
  • CUDA/cuDNN 版本:Cuda 8.0 /cudnn v6.0
  • GPU型号和内存:GTX-1080 - 8G

更新:
评论部分建议片段的输出如下:

输出:

0 投票
1 回答
177 浏览

tensorflow - Tensorflow Object Detection API 图像预处理中的概率参数

我正在使用 Tensorflow 对象检测 API 训练 ssd_inception 神经网络。在管道配置文件中,有预处理器选项可在训练期间增强图像。有没有办法引入应用给定预处理的概率?例如 20% 的图像会改变对比度等。如果没有,是否有计划这样做?

0 投票
2 回答
1603 浏览

tensorflow - 为什么 Tensorflow Object Detection API 只检测第一类而忽略其余的?

ODA我对自己的数据集进行了快速测试。我注意到它只检测到一个类,好像只有一个类!

这是一个检测到正确类的示例:

例子

这是一个不做任何事情的例子!:

例子

并且打印在每个图像下方的这些数字是classes我打印的变量的内容(下面给出的代码),以查看是否有任何其他类被识别。

这是一个错误地检测到一个类的例子(你可以再次看到它只检测到类 1):

例子

所以基本上它只在类 1 周围画一个矩形!并完全忽略第 2 类。我正在使用 Jupyter notebook 示例中提供的代码,如下所示:

我什至尝试设置min_score_thresh=0.1但没有任何改变!然后我尝试max_boxes_to_draw了如你所见,再次无济于事。代码方面的任何其他内容都与相同,除了它从 Internet 下载模型的部分,我将其注释掉并阅读了我自己的预训练模型。

我是对象检测的新手,不知道是什么原因造成的。

更新

我的标签图看起来像这样:

我的数据集由如下 XML 文件组成,这些文件使用我在下面给出的代码片段转换为 CSV。注释示例:

这是我用来将 XML 转换为 CSV 的片段:

最后这就是我创建 TFRecords 的方式:

0 投票
0 回答
1200 浏览

python - TensorFlow 对象检测 API 内存不足

我是 tensorflow 的新手,正在尝试训练自己的对象检测模型。

硬件:尝试了很多东西,但最大的是 32gb cpu。还尝试了 8gb cpu 和 2gb gpu。

所有正在运行的窗口,python 3.6.2 和 tensorflow 1.3

我一直在关注这里的指南https://pythonprogramming.net/introduction-use-tensorflow-object-detection-api-tutorial/

错误是:(对不起,VM 已关闭,这就是我所拥有的) 错误消息 OOM

批量:3

我开始认为我的问题是初始图像大小(4mb,4288x3216),所以我一直在尝试其他资源(纸张空间)并且仍然在 8gb gpu 上耗尽内存。

我有 571 张图像来训练模型,还有 250 多张图像用于测试,大小都一样。

关于传递模型少量数据以便我可以保持运行的任何建议?

作为建议的评论之一,我可以调整大小,但这将如何影响我的 XML 文件?

0 投票
0 回答
1267 浏览

python - 用于自定义数据集的 Tensorflow 对象检测 API - 在训练期间被杀死

在自定义数据集(店面图像)上进行对象检测训练,针对单个类(总共 285 个图像),在 CPU 上本地运行,几个步骤后8GB RAM 被杀死。

我正在关注这个博客作为参考。

这是控制台日志

我的想法和问题

1)图像尺寸有问题吗?- 我的图像分布如下:<= 400x300 (5%)、400x300 和 640x480 之间 (22%)、640x480 和 800x600 (63%) 和 > 800x600 (22%)。尽管尺寸约为 400x300 的图像足以识别购物板,但在我的数据集中存在更高分辨率的倾向,因为下一步是在这些板上进行文本识别。

  • 这种想法对吗?
  • 我是否应该将图像调整为更小的尺寸(如果是 - 什么尺寸合适)并在重新开始整个过程​​之前重新进行注释?

我可以训练 Oxford-IIIT Pet 数据(约 7.9k 图像 - 耗时约 13 小时)2000 步(配置文件的 train_config 部分中的 num_steps = 2000),而不会崩溃或被杀死。所以,我认为只有 285 个图像应该能够在 CPU 本身上运行。

2)交换内存有问题吗?- 我还检查了其他类似的帖子(增加交换空间建议没有后续另一个增加交换内存建议),但因为我可以在我当前的系统设置上训练 Oxford-IIIT 宠物数据集,训练为少至 285 张图像不应终止该过程。

  • 我的想法正确吗?
  • 如果不是,这确实是一个解决方案,那么我需要指针和明确的步骤来做到这一点。

我想知道出了什么问题并让它在本地运行。我希望我已经提供了足够的信息来获得帮助。如果没有,请告诉我需要什么。

系统信息

  1. 您正在使用的模型的顶级目录是什么: tensorflow/models(尚未更新到新的文件夹结构)
  2. 我是否编写了自定义代码(而不是使用 TensorFlow 中提供的股票示例脚本):是 - 最小的更改(按照我自己的数据集的 Dat Trans 模板 - Github
  3. 操作系统平台和发行版(例如,Linux Ubuntu 16.04): Ubuntu 16.04.3 LTS
  4. TensorFlow 安装自(源代码或二进制文件):二进制文件(进入虚拟环境)
  5. TensorFlow 版本(使用下面的命令): 1.3.0
  6. Bazel 版本(如果从源代码编译): NA
  7. CUDA/cuDNN 版本:不适用
  8. GPU 型号和内存: NA
  9. 重现的确切命令: python object_detection/train.py --logtostderr --pipeline_config_path=/home/rajaram/tensorflow/models/object_detection/models/sf_od_model/ssd_mobilenet_v1_sf_train.config --train_dir=/home/rajaram/tensorflow/models/object_detection /models/sf_od_model/train
0 投票
2 回答
3354 浏览

tensorflow-gpu - 在 TensorFlow 对象检测 API 中定义 GPU 选项

我可以在具有 4x 1080Ti 的本地机器上进行训练,并且正如其他人所指出的那样,TF 会抓取我机器上的所有可用内存。在四处寻找大多数搜索后,我找到了基本 TF 而不是对象检测 API 的解决方案,例如:

如何防止 tensorflow 分配整个 GPU 内存?

如何在对象检测 API 中访问这些类型的选项?如何在 OD API 中对训练进行类似的 TF 风格控制?OD API / slim API中是否有适当的方法?

我尝试在该 training.proto 中添加一条 GPUOptions 消息,但这似乎没有什么不同。

0 投票
2 回答
3993 浏览

c++ - Tensorflow 对象检测 API 是否有 C++ 包装器?

我们已经训练了我们的模型并使用提供的 Python 脚本成功地测试了它们。但是,我们现在想在我们的网站上部署它并为第二轮测试运行一个 Web 服务。

是否有一个 C++ 包装器,以便我们可以像使用 Python 脚本一样运行/执行我们的模型?

0 投票
0 回答
394 浏览

tensorflow - tensorflow 对象检测 api GridAnchorGenerator 不包含更快的 rcnn 论文

在grid_anchor_generator.py中,这段代码生成的anchor与Faster RCNN论文实现不一样。在 Google Object Detection API 中,在特征图位置中计算的锚点[0, 0]为:

而在更快的 rcnn 论文的作者实现中,锚点是:

Faster rcnn 论文中的 scale 和 aspect_ratio 为:

Google Object Detection API 中的 scale 和 aspect_ratio 为:

0 投票
3 回答
1547 浏览

python - TensorFlow对象检测其他形状分类

在 TensorFlow 对象检测 API 中,是否有可能获得除矩形以外的其他形状的识别对象?

例如,当我教我的计算机识别森林时,获得某种多边形而不是矩形应该更有用。

其他东西是例如河流,但多边形似乎比线容易得多。