Tensorflow object detection API 搭建运行测试样例

需要做物体识别检测的作业,查到Tensorflow object detection API 早已经封装好了神经网络,而且多个可供你选择,所以就开始弄这个,感谢很多细心的博主总结自己的踩坑之旅,所以在反复几次之后顺利的解决了很多问题,当然也遇到了一些自己的小问题,在此记录下

参考:https://blog.csdn.net/Leon_yy/article/details/81053282(感谢,这次没遇到的坑,早晚还是会遇到。。。。)

软件:Win10

           Anaconda3-5.2.0(里面已经装好了许多要用的包)

1.下载好TensorFlow模型源码

    下载地址:https://github.com/tensorflow/models

    下载后解压即可

2. 下载配置Protobuf

     下载地址:https://github.com/google/protobuf/releases

     选择 protoc-3.4.0-win32.zip 版本进行下载

     友情提示:下载了protoc3.6之后出错了,所以不要下最新的,不过也可以试试

     下载后解压,将bin目录下的 protoc.exe,放到C:\Windows下

    打开cmd命令行,将路径转到你的model-master中的research目录下,运行以下命令

protoc object_detection/protos/*.proto --python_out=.

  运行完后会将protos下面的.proto文件都对应的生成一个.py文件,如果没有后续测试样例会不能运行

  如果报错:object_detection/protos/*.proto: No such file or directory 是因为目前的protoc3.6有Bug,换成3.4就好了:https://github.com/google/protobuf/releases/tag/v3.4.0

3.测试API

  打开Anaconda Prompt在models/research/文件夹下面运行命令行:

python object_detection/builders/model_builder_test.py 

 没有报错就可以了,庆幸我弄的时候这里比较顺利

4.运行样例

  接着上一步,运行jupyter notebook,打开找到object_detection_tutorial.ipynb 点击Run All运行

遇到的问题: 

1)报错:

FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
  from ._conv import register_converters as _register_converters

    解决:

   包内出错,是h5py包

  对h5py进行更新升级,对了需要用的的包以及tensorflow我都是在Anaconda里装的,所以在里面直接升级

  解决后运行结果如下图

2)上面这个是在我本地跑的没有GPU,所以又在实验室服务器上装了一遍,又遇到一个问题,在【3.测试API】时报错:

No module named 'object_detection'

  解决方法:在research目录下运行命令行:

python setup.py install

  再试一次,有报错:

ModuleNotFoundError: No module named 'nets'

解决方法:    将reserch/slim目录下的BUILD删除,然后在该文件夹下运行里面的setup.py:

python setup.py install

猜你喜欢

转载自blog.csdn.net/weixin_42731241/article/details/83019230