问题环境
Windows 10、 Anaconda 、TensorFlow
发现问题
安装Tensorflow object_detection API时按照教程https://blog.csdn.net/csdn_6105/article/details/82933628 走到最后测试遇到cannot import name ‘anchor_generator_pb2’、from nets import inception_resnet_v2 ModuleNotFoundError: No module named 'nets’等问题。
找到原因_1
protobuf编译执行下列语句后,*.proto文件没有产生在 …\models\research\object_detection\protos 文件夹下,而是产生在 …\Anaconda\envs\tensorflow\Lib\site-packages\object_detection-0.1-py3.6.egg\object_detection\protos 中
protoc --python_out=. .\object_detection\protos\anchor_generator.proto .\object_detection\protos\argmax_matcher.proto .\object_detection\protos\bipartite_matcher.proto .\object_detection\protos\box_coder.proto .\object_detection\protos\box_predictor.proto .\object_detection\protos\eval.proto .\object_detection\protos\faster_rcnn.proto .\object_detection\protos\faster_rcnn_box_coder.proto .\object_detection\protos\grid_anchor_generator.proto .\object_detection\protos\hyperparams.proto .\object_detection\protos\image_resizer.proto .\object_detection\protos\input_reader.proto .\object_detection\protos\losses.proto .\object_detection\protos\matcher.proto .\object_detection\protos\mean_stddev_box_coder.proto .\object_detection\protos\model.proto .\object_detection\protos\optimizer.proto .\object_detection\protos\pipeline.proto .\object_detection\protos\post_processing.proto .\object_detection\protos\preprocessor.proto .\object_detection\protos\region_similarity_calculator.proto .\object_detection\protos\square_box_coder.proto .\object_detection\protos\ssd.proto .\object_detection\protos\ssd_anchor_generator.proto .\object_detection\protos\string_int_label_map.proto .\object_detection\protos\train.proto .\object_detection\protos\keypoint_box_coder.proto .\object_detection\protos\multiscale_anchor_generator.proto .\object_detection\protos\graph_rewriter.proto
解决方法_1
将*.proto文件全部从 …\Anaconda\envs\tensorflow\Lib\site-packages\object_detection-0.1-py3.6.egg\object_detection\protos 拷贝到 …\models\research\object_detection\protos 中即可
找到原因_2
解决上面的问题后有在测试又遇到 from nets import inception_resnet_v2 ModuleNotFoundError: No module named ‘nets’ 的问题,这个是slim库没装好的问题
解决问题_2
确认环境变量PYTHONPATH已经设置好(建议设为系统环境变量),再到 …\models\research 文件夹下命令行运行 python setup.py build 和 python setup.py install即可