问题标签 [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 回答
293 浏览

tensorflow - 使用 faster_rcnn 和 rfcn 模型进行训练所需的内存量

我一直在尝试使用一些基于 faster_rcnn 和 rfcn 的模型,使用 Google 的对象检测 API 进行一些培训,但是经过一些培训步骤后,我得到了一些关于我认为是内存问题的错误。在开始使用上述模型进行训练之前,什么被认为是大量的可用 RAM?

以下是一些日志错误:

InvalidArgumentError(参见上面的回溯):断言失败:[最大框坐标值大于 1.010000:] [1.0111111] [[节点:Loss/ToAbsoluteCoordinates/Assert/AssertGuard/Assert = Assert[T=[DT_STRING, DT_FLOAT],总结=3, _device="/job:localhost/replica:0/task:0/cpu:0"](Loss/ToAbsoluteCoordinates/Assert/AssertGuard/Assert/Switch/_1307, Loss/ToAbsoluteCoordinates/Assert/AssertGuard/Assert/data_0 , Loss/ToAbsoluteCoordinates/Assert/AssertGuard/Assert/Switch_1/_1309)]]

0 投票
0 回答
52 浏览

image - Google Cloud Vision 和 Clarifai 不支持标记 360 度图像和视频

我正在研究图像处理。到目前为止,Google Cloud Vision 和 Clarifai 是从图像和视频中检测对象的最佳 API,但是这两个 API 都不支持从 360 度图像和视频中检测对象。这个问题有什么解决办法吗?

0 投票
1 回答
5522 浏览

tensorflow - TensorFlow 对象检测 API:评估 mAP 行为怪异?

我正在使用 Tensorflow 对象检测 API 为我自己的数据训练对象检测器。我正在关注 Dat Tran https://towardsdatascience.com/how-to-train-your-own-object-detector-with-tensorflows-object-detector-api-bec72ecfe1d9的(很棒的)教程。我使用提供的 ssd_mobilenet_v1_coco-model 预训练模型检查点作为训练的起点。我只有一个对象类。

我导出了经过训练的模型,在评估数据上运行它并查看生成的边界框。训练好的模型运行良好;我想说,如果有 20 个对象,通常有 13 个对象在预测的边界框上有斑点(“真阳性”);7 未检测到对象的情况(“假阴性”);出现问题的 2 种情况是两个或更多对象彼此靠近:在其中一些情况下,在对象之间绘制了边界框(“误报”<-当然,称这些“误报”等是不准确的,但这只是为了让我在这里理解精度的概念)。几乎没有其他“误报”。这似乎比我希望得到的结果要好得多,

但是,当我运行评估 ( eval.py) (在两个不同的评估集上)时,我得到以下 mAP 图(平滑 0.7): 训练期间的 mAP

这将表明 mAP 的巨大变化,以及在训练结束时大约 0.3 的水平,这比我根据我output_inference_graph.pb在评估集上使用导出的边界框的绘制程度所假设的要差得多。

这是训练的总损失图:训练 期间的总损失

我的训练数据包含 200 张图像,每张图像大约有 20 个标记对象(我使用 labelImg 应用程序标记它们);图像是从视频中提取的,物体很小而且有点模糊。原始图像大小为 1200x900,因此我将其缩小为 600x450 用于训练数据。评估数据(我将其用作评估数据集eval.py并直观地检查预测结果)是相似的,由 50 张图像组成,每张图像有 20 个对象,但仍然是原始大小(训练数据是从前 30 分钟的视频和最近 30 分钟的评估数据)。

问题 1:为什么当模型看起来运行良好时,mAP 的评估却如此之低?mAP图波动这么大正常吗?我没有触及 tensorboard 用于绘制图形的图像的默认值(我读了这个问题:Tensorflow object detection api validation data size并且有一些模糊的想法,即有一些可以更改的默认值?)

问题2:这可能与训练数据和评估数据的大小不同(1200x700 vs 600x450)有关吗?如果是这样,我是否也应该调整评估数据的大小?(我不想这样做,因为我的应用程序使用原始图像大小,并且我想评估模型在该数据上的表现如何)。

问题 3:从每张图像有多个标记对象的图像中形成训练和评估数据是否有问题(即,评估例程肯定会将一张图像中的所有预测边界框与一张图像中的所有标记边界框进行比较,以及不是一张图像中的所有预测框都指向一个标记框,这会导致许多“误报”?)

(问题 4:在我看来,如果 mAP 趋于平稳,模型训练可能在大约 10000 个时间步后停止,现在是否过度训练?很难说它什么时候波动这么大。)

我是对象检测的新手,所以我非常感谢任何人可以提供的任何见解!:)

0 投票
1 回答
1283 浏览

tensorflow - TensorFlow 对象检测 API 评估卡住

我正在使用更快的_rcnn_resnet101 模型对我自己的数据使用Tensorflow 对象检测API。我正在从头开始训练。训练部分进展顺利,但评估部分从一开始就卡住了,从未显示出结果。看起来像:

评估卡住

我尝试在同一个数据集上使用几个月前下载的旧版本的 api。一切正常。当前版本的 api 是否有问题,尤其是在评估部分?感谢您的关注。

我的配置文件如下所示:

0 投票
1 回答
934 浏览

tensorflow - 对象检测训练在时间上变得更慢。随着训练的进行,使用比 GPU 更多的 CPU

系统信息

  • 您正在使用的模型的顶级目录是什么:research/object_detection
  • 我是否编写了自定义代码(而不是使用 TensorFlow 中提供的股票示例脚本):是的(仅用于 Faster RCNN 的 VGG-16 实现)
  • 操作系统平台和发行版(例如,Linux Ubuntu 16.04):Ubuntu 16.04
  • TensorFlow 版本(使用下面的命令):1.4.0
  • CUDA/cuDNN 版本:8 和 6
  • GPU型号和内存:NVIDIA-1060 6GB

我正在尝试使用 API 在我的自定义数据集上使用VGG-16 作为特征提取器(论文)来训练 Faster-RCNN。

训练参数与论文中描述的相同,除了,我只运行 15k 步并将图像大小调整为 1200x1200,批量大小 = 1。训练运行良好,但随着时间的推移,训练变得更慢。它在 CPU 和 GPU 之间切换。

截图 8

在 GPU 上运行大约 1 秒的时间和在 CPU 中运行大约 20 秒的其他高数字的步骤我使用“top”和“nvidia-smi”交叉验证了它们。为什么它在中间的 CPU 和 GPU 之间切换?当模型和日志被保存时,我可以理解这种转变,但这我不明白为什么。

PS:我只运行火车脚本。我没有运行 eval 脚本

更新:随着时间的推移,情况会变得更糟。秒/步骤正在增加,从而影响检查点和日志的存储速度

截图 9

它的运行速度应该小于 1 秒/步,因为这是我开始训练前 2k 步时的速度。而且我的数据集非常小(300 张图像用于训练)。

0 投票
1 回答
306 浏览

linux - 谷歌云上的 TensorFlow 对象检测训练作业失败

我通过以下方式拥有我的 Google 存储桶:

而且我的本地机器以相同的方式在 /tensorflow/models/research/object_detection 中具有数据,另外

我正在运行以下命令在谷歌云 ML 引擎上开始工作

谷歌云日志向我显示以下错误。

副本工人 0,1,2,3 - 同样的错误

副本 ps 0,1 - 相同的错误

0 投票
1 回答
738 浏览

tensorflow - 物体检测和物体计数

我想弄清楚如何计算图像中的对象。我需要计算鸟巢和鸟屋里的鸡蛋数量。

我想在 tensorflow 中使用对象检测 api,然后重新训练最后一层来识别鸡蛋。问题是我已经有很多标记的图像,但只有关于鸡蛋总数的信息,而不是鸡蛋所在的位置。

是否有可能仅通过为图像提供相应的鸡蛋数量来以某种方式重新训练网络?还是我需要手动标记单个鸡蛋的位置?

我正在考虑将其作为一个分类问题来解决,其中不同的鸡蛋数量将是不同的类别(0、1、2,...... - 总共不超过 8 个鸡蛋)。你怎么看?

0 投票
4 回答
2620 浏览

tensorflow - TensorFlow 对象检测 API 使用 TensorFlow 服务时推理时间很慢

我无法匹配 Google 报告的模型动物园中发布的模型的推理时间。具体来说,我正在尝试他们的faster_rcnn_resnet101_coco模型,其中报告的推理时间106ms在 Titan X GPU 上。

我的服务系统使用的是 TF 1.4,它运行在一个由 Google 发布的Dockerfile构建的容器中。我的客户端仿照谷歌发布的初始客户端

我在带有 1 个 Titan X 的 Ubuntu 14.04、TF 1.4 上运行。我的总推理时间比 Google 报告的约 330 毫秒差 3 倍。制作张量原型大约需要 150 毫秒,而预测需要大约 180 毫秒。我saved_model.pb的是直接从模型动物园下载的tar文件。有什么我想念的吗?我可以采取哪些步骤来减少推理时间?

0 投票
1 回答
1843 浏览

tensorflow - TensorFlow 对象检测 API。训练模型后如何获得精度和召回率

我已经在本地使用我自己的数据集训练了 Faster_rcnn_Inception 模型和其他模型。但我只能得到带有边界框的图像。我想获得精度和召回来比较模型。我在 metrics.py 中看到“compute_precision_recall”,但我不知道如何使用它。我的数据集只有一个类。

0 投票
0 回答
275 浏览

tensorflow - 如何使用自己的模型实现 tensorflow 对象检测 api

我使用 tensorflow 对象检测 api,我想使用我自己的模型,其中创建了 30 个类似于 mnist 网络的类。我不知道该怎么做,因为在每个教程中都推荐使用预训练模型。我什至创建了我的 pb 文件和所有 .meta 文件,并将它用于对象检测 api。当我在自己的图像上运行脚本时,会出现类似的错误

我现在在我的图中我没有这个张量,但我不知道如何修改我的模型,我可以使用我自己的模型使用 tensorflow 对象检测 api 没有标记图像?