解决 No module named 'object_detection.utils'; 'object_detection' is not a package
跟着这篇博客Tensorflow object detection API 搭建属于自己的物体识别模型(1)——环境搭建与测试,
训练自己的模型时出错。
我的错误比较奇怪,因为在models/research/ 文件夹下运行命令行:
python object_detection/builders/model_builder_test.py
测试时,我的是正确的然后我要把自己的CSV转record时,运行
python generate_tfrecord.py --csv_input=data/train_box.csv --output_path=train_box.record
就报错了
File "F:\MyProject\models-master\research\object_detection\object_detection.py", line 63, in <module>
from object_detection.utils import label_map_util
ModuleNotFoundError: No module named 'object_detection.utils'; 'object_detection' is not a package
Traceback (most recent call last):
File "generate_tfrecord.py", line 25, in <module>
from object_detection.utils import dataset_util
File "F:\MyProject\models-master\research\object_detection\object_detection.py", line 63, in <module>
from object_detection.utils import label_map_util
ModuleNotFoundError: No module named 'object_detection.utils'; 'object_detection' is not a package
PS F:\MyProject\models-master\research\object_detection>
可以尝试
from utilsimportlabel_map_util
from utilsimportvisualization_utilsasvis_util
改为:
from research.utilsimportlabel_map_util
from research.utilsimportvisualization_utilsasvis_util
还报错就重新配置一下,然后我重新去github下载,想重新配置一遍。解压后我的是这个样子
里面的protochttps://github.com/google/protobuf/releases下载3.4的,有人说高版本不行,我也不知道。
然后,在models/research下运行Windows PowerShell(注意,这里必须是PowerShell,运行cmd会报错),输入如下命令:
Get-ChildItem object_detection/protos/*.proto | Resolve-Path -Relative | %{ protoc $_ --python_out=. }
运行models/research下的setup.py
python setup.py build
python setup.py install
在models/research下运行如下命令:
python object_detection/builders/model_builder_test.py
出现如下信息,说明已安装成功:
......................
----------------------------------------------------------------------
Ran 22 tests in 0.115s
OK