这段时间在做三维重建,为了达到更好的重建效果,想在三维重建的工作开始前增加物体识别这一功能,以便针对特定的物体进行相应的优化,国内也不乏有众多公司在做通用图片识别,诸如:旷世,商汤,百度,图普等,这里我们主要以目前比较热门的Google框架作为我们的介绍内容,本文主要借鉴自:对于谷歌开源的TensorFlow Object Detection API视频物体识别系统实现教程

,同时,对原文中一些不正确或者可以优化的部分进行了优化,调整,以供后面的读者学习借鉴,好了,我们接下来就开始介绍具体的步骤了。

Step1:检查系统环境!本文使用的系统环境为Windows 7 with SP1 x64

             注:tensorflow要求环境必须为64位!Python要求必须是带有Sp1更新包的Win 7系统!为了避免后面运行出错,请各位在开始之前先检查你的系统是否符合要求:

Step2:安装Python 3.5.2 官方下载地址  CSDN下载地址

            注:为了避免一些不必要的麻烦,请您安装与博主相同版本的Python!Tensorflow仅支持3.5.X版本的Python,但是在实际运行过程中,笔者使用3.5.4版本的Python在pip安装组件的过程中也发现了一些麻烦。如果你已经安装过更高版本的Python,请提卸载后再安装。

安装成功python后,在CMD下运行:

where python

应该有这样的效果,如果未出现如下图所示内容,请检查python安装是否正确(安装过程中是否勾选Add path):

Step3:安装tensorflow(tensorflow分为gpu版本和cpu版本,这里仅介绍CPU版本)

方法1(常规,不推荐):在CMD下运行即可完成安装,但是因为网络等方面原因,此种方法不但速度慢还容易出现失败的情况,我们推荐使用第二种方法来安装tensorflow

pip install --upgrade tensorflow

方法2(镜像安装,快速,推荐):同样是在CMD下运行:

pip install --index-url https://pypi.douban.com/simple tensorflow

在下载并安装一段时间后,CMD下会提示成功安装tensorflow等信息,这时我们需要验证python是否安装成功!打开IDLE(方法1)或者在cmd中进入python环境(方法2),这里为了说清楚IDLE我具体介绍一下方法1,首先找到IDLE,IDLE在python的安装目录下,这里为了方便各位找到,博主把自己的IDLE路径贴出来:

C:\Users\jinjing\AppData\Local\Programs\Python\Python35\Lib\idlelib

DILE就是这样一个批处理文件,我们双击打开就进入IDLE了,在IDLE下,我们逐行敲入:

import tensorflow as tf
hello=tf.constant("hello,bear")
sess=tf.Session()
print(sess.run(hello))

当输出打印语句且不报错时,说明我们的tensorflow已经安好!

当然也可以按方法2所示,先进入python环境再测试,效果如图,本张图片参考自:图片原文

附:GPU版本可以使用如下语句安装

pip install tensorflow_gpu -i http://pypi.mirrors.ustc.edu.cn/simple --trusted-host pypi.mirrors.ustc.edu.cn

注:如果已经成功安装tensorflow,但是在import过程中出现错误提示如下:

说明你的电脑缺少运行环境,缺少运行库,这里,我们安装VS 2015运行库即可解决问题:VS 2015运行库下载地址

Step4:安装protoc,github下载地址,博主所用版本为3.6.1(3.6.1版本CSDN下载

          注:这里推荐大家用更新版本的protoc,因为博主比较懒,没有更换。这里使用新版本的意义在于方便后面对API的编译,博主所用的版本需要逐条编译,更新版本的可以一次编译,用新版本可以省去很多无用的重复劳动!

下载好文件后,我们解压,把Bin文件夹中的protoc.exe文件放入系统盘下的windows/system 32下即可,无需其他操作:

放置路径:

C:\Windows\System32

 

Step5:安装Git.Git下载地址Git CSDN下载地址

这里我们一路点确认就好,傻瓜式安装,安装步骤如下:

Step6:安装其他组件:

方法1(常规,不推荐):在CMD下运行即可完成安装,但是因为网络等方面原因,此种方法不但速度慢还容易出现失败的情况,我们推荐使用第二种方法:

pip install pillow
pip install lxml
pip install jupyter
pip install matplotlib

方法2(镜像安装,快速,推荐):同样是在CMD下运行:

pip install pillow -i https://pypi.douban.com/simple
pip install lxml -i https://pypi.douban.com/simple
pip install jupyter -i https://pypi.douban.com/simple
pip install matplotlib -i https://pypi.douban.com/simple

 Step7:下载代码,在CMD下运行,这一步需要的时间比较长,文件总大小500M+,大家可以稍安勿躁,冲杯茶水等待:

git clone https://github.com/tensorflow/models.git

Step8: 编译编译Object Detection API的代码

      注1:编译前需要进入models下的research中,直接编译会提示找不到文件路径,博主在Step 7中下载的models文件路径为:

C:\Users\jinjing\models

以博主的路径为例,我们需要在编译前进行操作:

 

然后,我们再输入编译命令即可:

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

         注2:如果你在输入如上的编译语句后里遇到如下图所示的问题,是因为我们protoc的问题,导致无法一次编译,我们这时,逐条编译即可:

//错误提示!
object_detection/protos/*.proto:No such file or directory

解决方法:逐条编译

每一条编译后都会出现一个Python文件,如图所示:

Step9: 确认电脑的默认浏览器

       这个框架对于部分版本的IE支持并不是很好,所以我们推荐使用chrome浏览器!请各位在下一步操作前确认你的电脑已经安装chrome并未默认浏览器,默认浏览器设置步骤:

Step10:运行物体识别

CMD在Object_detection目录下运行:

jupyter notebook

      注:注意目录!具体操作如下图所示:

运行后,会自动弹出chrome浏览器,这时,我们点击:

 

这时我们耐心等待结果即可, 因为需要下载模型,同时和你所处的计算机硬件也有关系,所以通常所需的时间比较长,耐心等待一段时间后我们就能在页面看到识别的结果啦!至此教程全部结束:

        注:如果你需要用自己的图片,有两种方法:

方法1:将图片放入默认文件夹,命名需和示例图片一致:

方法2:修改代码,使用绝对路径: