问题标签 [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 投票
4 回答
17470 浏览

python - Windows 上的 Tensorflow 对象检测 API - 错误“ModuleNotFoundError: No module named 'utils'”

我正在尝试获取 TensorFlow 对象检测 API

https://github.com/tensorflow/models/tree/master/research/object_detection

按照安装说明在 Windows 上工作

https://github.com/tensorflow/models/tree/master/research/object_detection

这似乎适用于 Linux/Mac。如果我将脚本放在我将上述 repo 克隆到的目录中,我只能让它工作。如果我将脚本放在任何其他目录中,我会收到此错误:

我怀疑原因是没有正确执行上面安装说明中列出的此命令的 Windows 等效项:

如果这很重要,我正在使用 Windows 10、Python 3.6 和 TensorFlow 1.4.0。当然,我在谷歌上搜索过这个问题并找到了各种链接,例如,这个:

https://github.com/tensorflow/models/issues/1747

但这并没有解决这个担忧。关于如何解决这个问题的任何建议?

以下是我到目前为止具体完成的步骤:


编辑:这些步骤在更新以合并 RecencyEffect 的答案后现在可以工作

1)通过pip3安装TensorFlow及相关工具

2) 在管理命令提示符下,运行以下命令:

3)在我的情况下,将 TensorFlow“模型”存储库克隆到 Documents 文件夹

4) 下载 Google Protobuf https://github.com/google/protobuf Windows v3.4.0 版本“protoc-3.4.0-win32.zip”(我尝试了最新的 3.5.1 并在后续步骤中出错,所以我根据这个 vid 尝试了 3.4.0 https://www.youtube.com/watch?v=COlbP62-BU&list=PLQVvvaa0QuDcNK5GeCQnxYnSSaar2tpku&index=1并且 protobuf 编译工作)

5) 将 Protobuf 下载解压到 Program Files,具体来说

6) CD 进入 models\research 目录,具体来说

7)执行protobuf编译,具体

导航:

并验证 .py 文件是否作为编译的结果成功创建(只有 .proto 文件开始)

8) cd 到 object_detection 目录,例如:

然后在命令提示符下输入以下内容以启动 object_detection_tutorial.ipynb Jupyter Notebook

9) 在 Jupyter Notebook 中,选择“object_detection_tutorial.ipynb” -> Cell -> Run all,示例应该在笔记本内运行

10)在Jupyter Notebook中,选择“文件”->“下载为”->“Python”,将.py版本的notebook保存到同一目录下,即

您现在可以在您选择的 Python 编辑器(例如 PyCharm)中打开脚本并运行它。


根据下面 RecencyEffect 的回答进行编辑,如果您遵循这些附加步骤,您将能够从任何目录运行 object_detection_tutorial.py 脚本

11)将脚本移动到任何其他目录,然后尝试运行它,你会发现你会得到错误:

因为我们还没有通知 Python 如何找到这些行使用的 utils 目录:

要解决这个问题。. .

12) 转到系统 -> 高级系统设置 -> 环境变量。. . -> 新建,并添加一个名为 PYTHONPATH 的变量和这些值:

在此处输入图像描述

13) 同样在环境变量下,编辑 PATH 并添加 %PYTHONPATH%,如下所示:

在此处输入图像描述

14) 重新启动以确保这些路径更改生效

15)打开命令提示符并运行命令“set”,验证 PYTHONPATH 是否存在,并且 PYTHONPATH 和 PATH 包含前面步骤中的值。

16)现在您可以将“object_detection_tutorial.py”复制到任何其他目录,它将运行

0 投票
1 回答
4656 浏览

tensorflow - 使用 TensorFlow Object Detection API 检测图像中的小物体

我想使用 Tensorflow对象检测 API来识别一系列网络摄像头图像中的对象。在 COCO 数据集上预训练的Faster RCNN 模型似乎很合适,因为它们包含我需要的所有对象类别。

但是,我想提高模型在识别每个图像中相当小的对象时的性能。如果我理解正确,我需要编辑配置文件scales中的锚参数以使模型使用更小的边界框。

我的问题是:

  • 调整这个参数后,是否需要在整个 COCO 数据集上重新训练模型?或者有没有办法仅仅为了推理而改变模型并避免任何重新训练?
  • 除了将图像裁剪成多个部分并分别对每个部分进行推理之外,还有其他成功识别小对象的提示/技巧吗?

背景资料

我目前正在为模型提供 1280x720 的图像。在大约 200x150 像素时,我发现很难检测到物体。

0 投票
1 回答
1861 浏览

tensorflow - tensorflow 对象检测 API(计算汽车速度。)

我使用 tensoflow 对象检测 API 来计算检测到的汽车数量。但现在我想计算所有检测到的汽车的速度。我的问题是有没有办法使用 tensorflow 对象检测 API 来做到这一点。

0 投票
1 回答
633 浏览

python - tensorflow object_detection train.py 错误

我目前正在尝试重新训练 Google 的Tensorflow 对象检测

我按照sentdex's 教程中的步骤进行操作(可能和你们中的许多人一样)。

在我生成tf_records并将它们移动到目录中models/research/object_detection之后,应该为培训设置一切。

为了初始化我使用的训练过程:python train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/ssd_mobilenet_v1_pets.config

结果应该是命令行打印当前步骤和达到的精度,但我得到了:

我正在使用Amazon's g2.2xlarge随附的 Ubuntu 16.04tensorflownvidia cuda准备好驱动程序(我想)。

有什么想法为什么会出错?非常感谢!

0 投票
1 回答
424 浏览

python - 无法在 windows 上运行 tensorflow 对象检测 api

我在我的 Windows 10 电脑上安装了tensorflow-gpu1.4。我尝试 使用检查点训练浣熊探测器ssd_mobilenet。虽然我在 Google Cloud 上成功了,但它无法在本地运行并显示以下输出(显然它无法加载预训练模型):

0 投票
3 回答
2854 浏览

python - TensorFlow Object Detection API 从对象返回文本

我正在使用带有 Open CV 的 TF 对象检测 API。

如何提取视频检测到的对象类型并将其复制到 .txt 文件中?

例如,一旦对象检测 API 中的视频检测到“手机”,我如何将“手机”写入单独的文本文件?

这是供参考的代码:

在此先感谢您的帮助!

0 投票
1 回答
1241 浏览

tensorflow - Tensorflows 的对象检测 API 中特征提取器与 ssd 元架构的不同使用

是否可以在 Tensorflow 的对象检测 API 中使用具有 SSD 元架构的不同特征提取器?我知道提供了用于 mobilenets 和 inception 的 .config 文件,但是否可以使用不同的架构,如 AlexNet 或 VGG?

0 投票
2 回答
432 浏览

python - Tensorflow 对象检测 API 中的相对导入

我正在尝试将tensorflow对象检测 API 用于我的个人项目之一。在这里,您可以找到指向 repo 的链接,该链接在使用之前需要克隆。在这个 repo 中,有多个目录并以这种方式排列:

现在object_detection是对我有用的一个。因此,我在父目录research中为我自己的模型创建了一个新目录,并尝试使用object_detection目录中提供的功能。该object_detction目录中有一个子目录,utils其中包含一些.py用于某些实用程序的文件。是该目录中此类文件的示例链接。现在,当我尝试在我的代码中使用此文件时,它会显示no module found: object_detection. 这是一个相对导入错误,但我不知道如何解决它。我只是想确保我可以在不修改导入的情况下使用每个功能,这是可行的,因为__init__每个子目录中都有一个文件,但不知何故这不起作用。请帮忙!!

0 投票
1 回答
806 浏览

tensorflow - 使用 tensorflow 进行自定义对象检测

我已经使用ssd_mobilenet_v1_coco_2017_11_17模型训练了对象检测 API 来检测自定义对象。但是在训练之后,API 只检测到自定义对象,而不是 API 已经训练过的对象。ssd_mobilenet_v1_coco_2017_11_17模型检测 90 个物体。

有没有办法向现有模型添加更多类,以便它可以检测新对象以及已训练的对象?

0 投票
1 回答
1557 浏览

tensorflow - 使用 inception-resnet 和 NASnet(尤其是)作为主干训练 TensorFlow 对象检测 API 时出现 OOM 错误

请帮助我找到解决问题的方法。首先要说明的是,我已经成功地创建了自己的自定义数据集,并且我已经在自己的计算机(16GB RAM 和 4GB NVIDIA 980)上使用 resnet101 成功地训练了该数据集,这对我来说很重要。

当我尝试使用 inception-resnet 和 nasnet 切换主干网时出现问题。我收到以下错误

而且我认为我的计算机上没有足够的资源,所以我在 AWS EC2 上创建了具有 60GB RAM 和 12GB NVIDIA Tesla K80 的实例(我的工作场所只提供这项服务)并在那里训练了网络。

inception-resnet 的训练效果很好,但 nasnet 的情况并非如此。即使有 100GB 内存,我仍然会收到 OOM 错误

我在问题 #1817的 github tensorflow 模型网页上找到了一种解决方案 ,我按照说明将以下代码行添加到 nasnet 配置文件中

并且代码运行了一段时间(以下是“顶部”屏幕截图)。但是,我在运行大约 6000 步后仍然出现 OOM 错误

我还能做些什么来顺利运行它而不会出现任何 OOM 错误?谢谢你的帮助


编辑#1:错误现在更频繁地出现,它将在 1000-1500 步后显示。

编辑 #2:基于问题 #2668问题 #3014,我们还可以通过second_stage_batch_size: 25在配置文件的模型部分添加(默认为 50)来运行代码而不会出现 OOM 错误。因此,该文件应如下所示

希望这能有所帮助。