I've checked related issues but did not find a solution for this issue. I followed the instructions in
https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/installation.md and the steps seemed to complete OK, but when I tried to run python object_detection/builders/model_builder_test.py I get: python: can't open file 'object_detection/builders/model_builder_test.py': [Errno 2] No such file or directory.
I thought that I may get this error because maybe the tensorflow/models/research/ and slim directories were not correctly added to the PYTHONPATH.
I tried:
set PYTHONPATH=C:\Users\User\Documents\GitHub\models;C:\Users\User\Documents\GitHub\models\slim
Then ran:
python -c "import sys; print(sys.path)"
Got:
['', 'C:\Users\User\Documents\GitHub\models', 'C:\Users\User\Documents\GitHub\models\slim', 'C:\Users\User\New\Anaconda3\envs\tensorflow\python35.zip', 'C:\Users\User\New\Anaconda3\envs\tensorflow\DLLs', 'C:\Users\User\New\Anaconda3\envs\tensorflow\lib', 'C:\Users\User\New\Anaconda3\envs\tensorflow', 'C:\Users\User\New\Anaconda3\envs\tensorflow\lib\site-packages', 'C:\Users\User\New\Anaconda3\envs\tensorflow\lib\site-packages\cycler-0.10.0-py3.5.egg', 'C:\Users\User\New\Anaconda3\envs\tensorflow\lib\site-packages\object_detection-0.1-py3.5.egg']
It looks to me like the tensorflow/models/research/ and slim directories have been added to the PYTHONPATH. Could somebody please confirm this?
What am I missing?
System Information
Hi first run this code
# From tensorflow/models/research/
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
it should work now!
Hi Vikramank! Isn't export PYTHONPATH=$PYTHONPATH:pwd:pwd/slim for Unix? I have a Windows machine.
This question is better asked on StackOverflow since it is not a bug or feature request. There is also a larger community that reads questions there. Thanks!
I got it to work. What I did was:
I ran:
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\keypoint_box_coder.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\protosstring_int_label_map.proto .\object_detection\protos\train.proto
What was missing was: .\object_detection\protos\keypoint_box_coder.proto
Then ran:
python setup.py build
python setup.py install
Then changed:
nets to research.slim.net in faster_rcnn_inception_resnet_v2_feature_extractor.py and faster_rcnn_resnet_v1_feature_extractor.py (in the models folder)
Ran:
python object_detection/builders/model_builder_test.py
Got:
Ran 11 tests in 0.195s
OK
@KimmoOjala Great! I have difficulty in Protobuf Compilation because I cannot protoc
those .proto files in object_detection\protos. And I got it work by your method.
i am getting error in this file=DESCRIPTOR,please let me what is that file ??
C:\ProgramData\Anaconda3) C:\Object-identity\models\research>python object_det
tion/builders/model_builder_test.py
raceback (most recent call last):
File "object_detection/builders/model_builder_test.py", line 21, in
from object_detection.builders import model_builder
File "c:\object-identity\models\research\object_detection\builders\model_buil
r.py", line 17, in
from object_detection.builders import anchor_generator_builder
File "c:\object-identity\models\research\object_detection\builders\anchor_gen
ator_builder.py", line 20, in
from object_detection.protos import anchor_generator_pb2
File "c:\object-identity\models\research\object_detection\protos\anchor_gener
or_pb2.py", line 16, in
from object_detection.protos import grid_anchor_generator_pb2 as object__de
ction_dot_protos_dot_grid__anchor__generator__pb2
File "c:\object-identity\models\research\object_detection\protos\grid_anchor_
nerator_pb2.py", line 41, in
options=None, file=DESCRIPTOR),
ypeError: __init__() got an unexpected keyword argument 'file'
Looks like the newer versions of protobuf adds file=DESCRIPTOR to _descriptor.FieldDescriptor method calls. I grabbed protoc-3.3.0-osx-x86_64 from https://github.com/google/protobuf/releases and it generates compatible stuff.
@KimmoOjala hello,i have finished most steps following what you said. But the screen appeared a frame noted that python stopped to work when i ran:python object_detection/builders/model_builder_test.py. I have no idea about it, could you give me some solutions? My python version is 3.5
Most helpful comment
I got it to work. What I did was:
I ran:
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\keypoint_box_coder.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\protosstring_int_label_map.proto .\object_detection\protos\train.proto
What was missing was: .\object_detection\protos\keypoint_box_coder.proto
Then ran:
python setup.py build
python setup.py install
Then changed:
nets to research.slim.net in faster_rcnn_inception_resnet_v2_feature_extractor.py and faster_rcnn_resnet_v1_feature_extractor.py (in the models folder)
Ran:
python object_detection/builders/model_builder_test.py
Got:
Ran 11 tests in 0.195s
OK