从object_detection.protos中导入string_int_label_map_pb2时出现模块未找到错误。

3

我正在使用来自GitHub的Python TensorFlow官方代码,但是我无法通过以下错误:

import tensorflow as tf

import cv2
cap = cv2.VideoCapture(1)

# This is needed since the notebook is stored in the object_detection folder.
sys.path.append("..")



# ## Object detection imports
# Here are the imports from the object detection module.

# In[3]:
from object_detection.utils import label_map_util
 File "C:/Users/azach/Desktop/python/tensorflow/models- 
master/research/object_detection/utils/label_map_util.py", line 22, in 
<module>
from object_detection.protos import string_int_label_map_pb2

ModuleNotFoundError: No module named 'object_detection'

作为一个人建议在这里: Tensorflow:没有属性'load_labelmap' 我做出了改变。
 from object_detection.protos import string_int_label_map_pb2

转换为:

 from protos import string_int_label_map_pb2

我正在使用Python 3.6.5和TensorFlow 1.8在Windows 10上。*.proto文件是使用protoc 3.4编译的。
编辑:来自cmd的错误:
label_map = label_map_util.load_labelmap(PATH_TO_LABELS)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'label_map_util' is not defined
>>> categories = label_map_util.convert_label_map_to_categories(label_map, 
max_num_classes=NUM_CLASSES, use_display_name=True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'label_map_util' is not defined
>>> category_index = label_map_util.create_category_index(categories)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'label_map_util' is not defined
1个回答

1
如果您正在使用Windows操作系统,请从命令提示符更改目录到research(object_detection的父文件夹),然后运行以下命令。根据您所在的操作系统更改命令。
1)protoc object_detection/protos/*.proto --python_out=.
2)SET PYTHONPATH=%cd%;%cd%\slim
然后从同一命令行启动笔记本并尝试运行。
我不确定以下行的目的,请尝试在没有该行的情况下运行 sys.path.append("..")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接