欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

谷歌Object Detection API(实物检测模型库)安装过程踩过的坑

程序员文章站 2022-04-05 07:49:47
...

    在一个状态极佳的夜晚,终于将惦记了好几个月的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 API(实物检测模型库)安装过程踩过的坑

错误二

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应该没问题,这个链接里有提到几种解决办法,但是对我来说没有用,错误依旧。

解决方法: 

    走投无路时常用的一种解决方法:关掉所有窗口,重启(谷歌Object Detection API(实物检测模型库)安装过程踩过的坑)  ,竟然就可以正常运行了。所以我猜是因为之前打开了两个jupyter notebook,电脑显存不足??这个问题之后遇到了合理的解释再来补充吧。


    以上五个问题就是我在安装object detection API遇到的所有难题,现在电脑上可以顺利运行models\research\object_detection目录下的 object_detection_tutorial.ipynb文件了。  成功出现两张demo检测图片,开心。

    下一步的工作计划是用这个API训练自己的数据集。good luck to me❤❤

谷歌Object Detection API(实物检测模型库)安装过程踩过的坑谷歌Object Detection API(实物检测模型库)安装过程踩过的坑


相关标签: object detection