我正在尝试使用我的网络摄像头作为输入在 Tensorflow 中运行 object_detection API。
错误提示:“从 utils 导入 label_map_util ModuleNotFoundError:没有名为‘utils’的模块”
与以下几行相关:
from utils import label_map_util from utils import visualization_utils as vis_util
我尝试过“pip install util”,它似乎有效,但不能解决问题。我还重新安装了多个版本的 protobuf,因为网上的其他问题似乎都用这个作为解决方案。安装 protoc 时我没有收到任何错误,所以我不认为这是问题所在。
我在 Windows 10 上带有 tensorflow-gpu 使用 python 3.6。
该错误ModuleNotFoundError: No module named 'utils'表明 Python 找不到utils您尝试导入的模块。在 TensorFlow 的对象检测 API 上下文中,该utils模块不是您通过 安装的单独包pip。相反,它是 Python 文件的集合,是对象检测 API 本身的一部分。
ModuleNotFoundError: No module named 'utils'
utils
pip
解决此问题的方法如下:
首先,确保您已克隆 TensorFlow 模型存储库。此存储库包含utils您要导入的模块。
打开终端或命令提示符并运行:
git clone https://github.com/tensorflow/models.git cd models
安装必要的依赖项。你可以使用以下命令安装它们pip:
pip install -r requirements.txt
在该models目录中,运行以下命令来安装对象检测 API:
models
# From the 'models' directory pip install .
该utils模块是 TensorFlow 模型存储库的一部分,具体位于research目录中。按照上述步骤操作后,运行代码时应该可以访问它。
research
您可以尝试在 Python 中运行以下命令来测试该模块是否可用:
from object_detection.utils import label_map_util from object_detection.utils import visualization_utils as vis_util
如果您没有看到任何导入错误,则表示模块已成功安装。
PYTHONPATH
如果问题仍然存在,您可能需要将models/research目录添加到您的PYTHONPATH。您可以通过在终端中运行以下命令来临时执行此操作:
models/research
set PYTHONPATH=%cd%\models\research;%cd%\models\research\slim
或者,您可以将其添加到您的环境变量中或直接添加到您的 Python 脚本中,使用以下命令:
import sys sys.path.append('path_to_your_models/research')
object_detection
pip install utils