谷歌Object Detection API(实物检测模型库)安装过程踩过的坑
在一个状态极佳的夜晚,终于将惦记了好几个月的object detection API装好了,主要安装步骤参考了这个博客 ,手动比心❤ 但是在安装过程中还是遇到了不少该博客中没有提到的问题,希望记录下来,给自己日后参考,也希望能为有需要的人提供绵薄之力。
1. 开发环境
操作系统:windows 10 64位
内存:8G
GPU:Nvidia GTX 1070
Tensorflow: 1.4
2. 简要介绍安装步骤,具体可以参考上文提到的博客
(1)下载 https://github.com/tensorflow/models 到本地,这一步一般不会报错
(2) 获取protobuf,下载地址: https://github.com/google/protobuf/releases(选择最新版本的Windows版本,不然可能会有错误,见错误二),在models\research\目录下打开命令行窗口,输入:
protoc object_detection/protos/*.proto --python_out=.
如果此时不显示任何信息,则表明运行成功。在models\research\object_detection\protos下,每一个proto文件都应该会有一个对应的.py文件。
关于protobuf的两个错误:
错误一:我在此处命令行会报错
解决办法:
把上面命令行语句中 /*.proto 这部分改成文件夹下具体的文件名,一个一个试,每运行一个,文件夹下应该出现对应的.py结尾的文件。例如:models\research\object_detection\protos 下有一个文件名为:anchor_generator.proto,则在命令行窗口输入
protoc object_detection/protos/anchor_generator.proto
该文件夹下一共有几十个文件,每一个都对应执行一次这个命令行即可。(方法有点笨,但有效)
错误二:
object_detection/protos/ssd.proto:87:3: Expected "required", "optional", or "repeated". object_detection/protos/ssd.proto:87:12: Expected field name.
解决办法:
升级protobuf,我最早下载的是v2.6.1,报错之后下载了一个最新版本就好了。参考来源:点击打开链接
3. 其他错误
错误三:
在检测API是否正常时,进入目录models\research, 运行命令行:
python object_detection/builders/model_builder_test.py
此处错误为:ImportError: No module named 'object_detection'
解决方法:
在目录models\research下运行:
python setup.py build
python setup.py install
在目录model\research\slim下运行:
pip install -e .
参考来源:点击打开链接
错误四:
在启动jupyter notebook时,终端出现以下字眼,这个错误可能不容易被察觉,因为启动之后很快页面就会被切换到notebook浏览器了,我也是有一次无意瞄到了这行很奇怪的语句,如果这个问题不被解决,后期在运行程序时会出现no module named tensorflow之类很奇奇怪怪的错误。。
ValueError: Please install nodejs 5+ and npm before continuing installation. nodejs may be installed using conda or directly from the nodejs website.
解决方法:
升级jupyterlab。 在命令行输入以下语句:
conda upgrade -c conda-forge jupyterlab
或:conda update jupyterlab
我两行都执行了,最后成功解决了。
参考来源:点击打开链接
错误五:
还是在启动jupyter notebook时,终端出现的奇怪字眼:
could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
看上去应该是在安装GPU时,cudnn有问题,(CUDA和cudnn的版本真是要把我逼死。。)再三确认后,我觉得cudnn应该没问题,这个链接里有提到几种解决办法,但是对我来说没有用,错误依旧。
解决方法:
走投无路时常用的一种解决方法:关掉所有窗口,重启() ,竟然就可以正常运行了。所以我猜是因为之前打开了两个jupyter notebook,电脑显存不足??这个问题之后遇到了合理的解释再来补充吧。
以上五个问题就是我在安装object detection API遇到的所有难题,现在电脑上可以顺利运行models\research\object_detection目录下的 object_detection_tutorial.ipynb文件了。 成功出现两张demo检测图片,开心。
下一步的工作计划是用这个API训练自己的数据集。good luck to me❤❤
上一篇: php怎么将变量转换成float