我正在尝试获取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的目录中,我只能让它工作。如果我把脚本放在任何其他目录中,我会收到此错误:
ModuleNotFoundError: No module named 'utils'
我怀疑原因是没有正确执行上述安装说明中列出的Windows命令的等效命令:
# From tensorflow/models/research/
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
如果重要的话,我正在使用Windows 10,Python 3.6和TensorFlow 1.4.0。当然,我已经用Google搜索了这个问题并发现了各种链接,例如:
https://github.com/tensorflow/models/issues/1747
但这并没有解决这个问题。有关如何解决此问题的任何建议吗?
以下是我迄今为止所做的步骤:
1)通过pip3
安装TensorFlow和相关工具2)从管理命令提示符处,运行以下命令:
pip3 install pillow
pip3 install lxml
pip3 install jupyter
pip3 install matplotlib
3)将TensorFlow“models”存储库克隆到Documents文件夹,在我的情况下
C:\Users\cdahms\Documents\models
4)下载了Google Protobuf https://github.com/google/protobuf Windows v3.4.0版本“protoc-3.4.0-win32.zip”(我尝试了最新的3.5.1并在后续步骤中出错,所以我尝试了3.4 .0每个vid https://www.youtube.com/watch?v=COlbP62-B-U&list=PLQVvvaa0QuDcNK5GeCQnxYnSSaar2tpku&index=1和protobuf编译工作)
5)将Protobuf下载提取到Program Files,特别是
"C:\Program Files\protoc-3.4.0-win32"
6)CD进入models \ research目录,具体为
cd C:\Users\cdahms\Documents\models\research
7)执行protobuf编译,特别是
“C:\Program Files\protoc-3.4.0-win32\bin\protoc.exe” object_detection/protos/*.proto --python_out=.
导航至:
C:\Users\cdahms\Documents\models\research\object_detection\protos
并验证.py文件是否因编译而成功创建(仅开始使用.proto文件)
8)cd到object_detection目录,例如:
cd C:\Users\cdahms\Documents\models\research\object_detection
然后在命令提示符处输入以下内容以启动object_detection_tutorial.ipynb Jupyter Notebook
jupyter notebook
9)在Jupyter笔记本中,选择“object_detection_tutorial.ipynb” - >细胞 - >运行全部,示例应该在笔记本中运行
10)在Jupyter笔记本中,选择“文件” - > “下载为” - > “Python”,并将笔记本的.py版本保存到同一目录,即
C:\Users\cdahms\Documents\models\research\object_detection\object_detection_tutorial.py
您现在可以在所选的Python编辑器(例如PyCharm)中打开脚本并运行它。
11)将脚本移动到任何其他目录,然后尝试运行它,你会发现你会收到错误:
ModuleNotFoundError: No module named 'utils'
因为我们还没有通知Python如何找到这些行使用的utils目录:
from utils import label_map_util
from utils import visualization_utils as vis_util
要解决此问题。 。
12)转到系统 - >高级系统设置 - >环境变量 。 。 。 - >新建,并添加名为PYTHONPATH的变量和这些值:
13)同样在Environment Variables下,编辑PATH并添加%PYTHONPATH%,如下所示:
14)重新启动以确保这些路径更改生效
15)拉出命令提示符并运行命令“set”,验证PYTHONPATH是否存在,PYTHONPATH和PATH包含前面步骤中的值。
16)现在你可以将“object_detection_tutorial.py”复制到任何其他目录并运行
答案 0 :(得分:3)
正如评论中所述,utils
是一个子模块,因此您实际上需要将object_detection
添加到PYTHONPATH
,而不是object_detection/utils
。
我很高兴它对你有用。
答案 1 :(得分:0)
cd Research / Object_Detection
cd ..
研究
研究
研究
3.export PYTHONPATH = $ PYTHONPATH:pwd
:pwd
/ slim
4.protoc object_detection / protos / string_int_label_map.proto --python_out =。
CD OBJECT_DETECTION
6.jupyter notebook
答案 2 :(得分:0)
以下命令在Windows上不起作用:
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
相反,我遵循了这个tutorial的指示,它建议手动设置三个不同目录的路径变量。我只是为utils目录添加了一个路径。到目前为止它一直没有错误。
答案 3 :(得分:0)
确保您的research / object_detection / protos文件夹中有一个__init__.py
文件! __init__.py
文件为空,但需要存在该文件才能正确创建protos模块。