我的目标是运行tensorflow对象检测API,并按照安装步骤进行操作。
我安装了tensorflow对象检测API和protobuf。我还添加了protobuf的路径。但是出现了以下错误:
ImportError: cannot import name 'string_int_label_map_pb2'
安装的protobuf:
%%bash
cd models/research
protoc object_detection/protos/*.proto --python_out=.
包含error import语句的代码块:
from object_detection.utils import ops as utils_ops
from object_detection.utils import label_map_util
from object_detection.utils import visualization_utils as vis_util
4条答案
按热度按时间q5iwbnjs1#
从https://github.com/google/protobuf/releases安装方案-3.11.4
并按照installation instructions中所述运行
protoc object_detection/protos/*.proto --python_out=.
。并将this文件放入对象检测/protos中q1qsirdb2#
你可以按同样的顺序试试这个建议
参见型号/问题/1962#或
yeotifhr3#
这是这个包中的一个简单路径问题,因此,我们需要在utils/label_map_util. py中添加protos/string_int_label_map_pb2.py的路径
而不是从objective_detection. protos导入字符串_int_标签_Map_pb2
应该是
导入系统
系统路径从协议中添加("..")导入字符串_整数_标签_Map_pb2
另外,如果你已经完成了object_detection的pip安装,那么从site-packages/objective_detection/utils打开这些文件。否则,你可以在git文件的model-master/research/objective_detection/utils下替换它。
ubbxdtey4#
对我有效的解决方案如下:
如果您正在创建虚拟环境:
创建环境后运行命令,将Google文件
.protp
更改为.py
:protoc object_detection/protos/*.proto --python_out=.
但是,如果你仍然面临错误,你可以简单地在谷歌colab笔记本上运行代码:
%%cd /content/drive/MyDrive/TFOD1.x/models/research
!protoc object_detection/protos/*.proto --python_out=.
获取protoc文件夹中的文件,然后将其复制到〉models〉research〉protoc和(导入步骤):将文件夹复制到您的环境路径:
例如:
C:\用户\x04xx18\Python3\环境\tfod1.x\libs\protos
这应该可以为您修复错误!