TensorFlow - 对象检测模块,尝试使用protoc时出现错误

use*_*270 4 python object-detection deep-learning protoc tensorflow

有问题protoc,该行在Windows中不起作用.

我明白了errors:

用这条线

protoc --proto_path=./object_detection/protos --python_out=c:\testmomo ./object_detection/protos/anchor_generator.proto
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

object_detection/protos/grid_anchor_generator.proto: File not found.
object_detection/protos/ssd_anchor_generator.proto: File not found.
anchor_generator.proto: Import "object_detection/protos/grid_anchor_generator.proto" was not found or had errors.
anchor_generator.proto: Import "object_detection/protos/ssd_anchor_generator.proto" was not found or had errors.
anchor_generator.proto:12:5: "GridAnchorGenerator" is not defined.
anchor_generator.proto:13:5: "SsdAnchorGenerator" is not defined.
Run Code Online (Sandbox Code Playgroud)

问题是什么??

Júl*_*rko 8

我正在尝试不同的事情,并找出问题所在.

确保你这样做:

# From models/
protoc object_detection/protos/*.proto --python_out=.
Run Code Online (Sandbox Code Playgroud)

而我试图这样做:

# from object_detection/
protoc protos/*.proto --python_out=.
Run Code Online (Sandbox Code Playgroud)

这给了我你的错误.

检查您是否在正确的位置(目录).

  • 谢谢。这奏效了。但是,我认为它来自更新后的 repo 中的 tensorflow/models/research/。 (2认同)

小智 5

首先请注意,protoc 缓冲区非常愚蠢,无法正确捕获所有文件,您有两种选择来手动编译所有 29 个文件或按照以下步骤操作。

  1. 将 protoc exe 文件复制到所有 proto 文件所在的文件夹,即“models-master\models-master\research\object_detection\protos”将 protoc.exe 和 *.protoc 文件放在同一文件夹中

  2. 接下来使用记事本++打开文件夹“models-master\research\object_detection\protos”中的所有文件。

  3. 按 ctrl+f 并删除所有文件中的“object_detection/protos/”(如果您手动执行操作,还请记住协议按字母顺序开始,因此从文件“anchor_generator.proto”开始)。

例如替换:-

import "object_detection/protos/grid_anchor_generator.proto";
import "object_detection/protos/ssd_anchor_generator.proto";
import "object_detection/protos/multiscale_anchor_generator.proto";
Run Code Online (Sandbox Code Playgroud)

有了这个:-

import "grid_anchor_generator.proto";
import "ssd_anchor_generator.proto";
import "multiscale_anchor_generator.proto";
Run Code Online (Sandbox Code Playgroud)

4.现在在同一目录中打开Cmd,即“\models master\research\object_detection\protos”类型:- protoc *.proto --python_out=。请注意,您将在文件夹中获得新的 .py 文件,并且执行上述文件时不会出现错误。

5.输出:-在此输入图像描述

注意:- 确保打开所有文件并尝试使用步骤 4 的输出来查找丢失的文件。


J. *_*Doe 0

似乎没有文件:object_detection/protos/grid_anchor_generator.proto 和 ssd_ancho_generator.proto

您刚刚克隆了模型存储库还是修改了某些内容?