我正在尝试获取 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。当然,我在谷歌上搜索过这个问题并找到了各种链接,例如,这个:
https://github.com/tensorflow/models/issues/1747
但这并没有解决这个担忧。关于如何解决这个问题的任何建议?
以下是我到目前为止具体完成的步骤:
编辑:这些步骤在更新以合并 RecencyEffect 的答案后现在可以工作
1)通过pip3安装TensorFlow及相关工具
2) 在管理命令提示符下,运行以下命令:
pip3 install pillow
pip3 install lxml
pip3 install jupyter
pip3 install matplotlib
3)在我的情况下,将 TensorFlow“模型”存储库克隆到 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 并在后续步骤中出错,所以我根据这个 vid 尝试了 3.4.0 https://www.youtube.com/watch?v=COlbP62-BU&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 Notebook 中,选择“object_detection_tutorial.ipynb” -> Cell -> Run all,示例应该在笔记本内运行
10)在Jupyter Notebook中,选择“文件”->“下载为”->“Python”,将.py版本的notebook保存到同一目录下,即
C:\Users\cdahms\Documents\models\research\object_detection\object_detection_tutorial.py
您现在可以在您选择的 Python 编辑器(例如 PyCharm)中打开脚本并运行它。
根据下面 RecencyEffect 的回答进行编辑,如果您遵循这些附加步骤,您将能够从任何目录运行 object_detection_tutorial.py 脚本
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) 同样在环境变量下,编辑 PATH 并添加 %PYTHONPATH%,如下所示:
14) 重新启动以确保这些路径更改生效
15)打开命令提示符并运行命令“set”,验证 PYTHONPATH 是否存在,并且 PYTHONPATH 和 PATH 包含前面步骤中的值。
16)现在您可以将“object_detection_tutorial.py”复制到任何其他目录,它将运行