使用tensorflow object detection api 进行实时目标识别

1.安装

             tensorflow 源码在 github 主要有两个仓库,一个是tensorflow ,另一个是models,我们需要的api 在models中。

项目地址: 

            https://github.com/tensorflow/models

官方安装说明文档:

           https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/installation.md

依赖的库:

  • Numpy
  • Pillow 1.0
  • Jupyter notebook
  • Matplotlib
  • Tensorflow

                 以上均可使用pip 安装,操作系统本人使用ubuntu 16.04

安装:

            安装到任何位置均可,使用git clone  https://github.com/tensorflow/models  命令 或者 在网页下载 zip 解压均可

            添加slim 路径,打开终端,进入到如下路径,并输入命令:

# From tensorflow/models/research/
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

            注意:这个命令是每次打开终端都需要输入的,如果你想每次自动运行,请在每个用户的~/.bashrc的最后一行加上,上面的命令,pwd要更改成research文件夹的绝对路径。

编译模型:

            research文件夹下输入命令:

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

2.测试

测试安装成功:

python object_detection/builders/model_builder_test.py

            如果出现:ran 14 tests in 0.004s 字样 说明安装成功

测试程序:

            以root身份运行jupyter:

sudo jupyter-notebook --allow-root

            打开research/object_detection目录下的object_detection_tutorial.ipynb,,点击cell 的 run all ,右上角python3 后面的圆点变成实心说明程序正在运行,等待几分钟,圆点变成空心,说明程序运行结束,可以看到一张狗的图片和一张海滩的测试图片,上面的被识别的物体被bounding-box 包围着。

3.运行程序

            这里有一个利用tensorflow object detection api 和 opencv 写的实时目标检测程序,调用计算机上的摄像头,实时目标检测。

项目源码:

https://github.com/datitran/object_detector_app

               这个项目是使用anaconda 环境,但是我没有使用anaconda,直接运行python object_detection_app.py 就可以。

               运行成功可以看到出现一个小窗口,从摄像头图像实时目标检测。

               通过阅读源码发现,使用的是ssd_mobilenet模型,检测速度非常快,训练的数据集是coco,关于详细源码分析,在近期的博客会写。


            





猜你喜欢

转载自blog.csdn.net/lhs960124/article/details/79840048