TensorFlow Object Detection API 可实现基于给定模型检测图像中的特定目标,是典型的深度学习在计算机视觉中的应用。本文以此为例,开始应用TensorFlow解决实际问题。
首先,需要下载TensorFlow的model文件,可在GitHub的Tensorflow/models上找到,下载models文件。 @H_301_3@ @H_301_3@ 可通过git clone下载,或者在页面上直接点击绿色的Clone or Download按钮,下载master分支。在此分支中,存在research文件夹。research文件夹下,可以找到object_detection文件夹,Object Detection API 就在其中。 @H_301_3@
在应用Object Detection API 之前,需要进行一下依赖环境的安装,可参考官方的安装说明。如果仅跑目标检测实例,也不用都安装,以后用到了随时安装即可。
首先要安装tensorflow,我安装的是gpu版本,可以参考我的博客tensorflow(2):Ubuntu 16.04安装(GPU版本)。我的系统是Ubuntu 16.04,需要安装如下环境:
sudo apt-get install protobuf-compiler python-pil python-lxml python-tk
sudo pip install Cython
sudo pip install jupyter
sudo pip install matplotlib
然后是对Protobuf libraries进行编译,刚才安装了protobuf-compiler编译环境,命令如下。
protoc object_detection/protos/*.proto --python_out=.
这里注意object_detection的路径不要写错。编译之后,protos文件夹下的.proto文件会生成同名的.py文件,后期再应用程序中,需要调用这些python包。
本文通过PyCharm编写Object Detection API的应用程序,可参考@L_502_3@进行基本配置。新建一个python project,将编译过Protobuf libraries的object_detection文件夹拷贝到project目录下,在工程根目录下,新建python file,“TestTFImg.py”,用于调用Object Detection API 。 @H_301_3@ @H_301_3@ 然后,即可参考官方简明使用文档编写程序了。 @H_301_3@ 这里说明几点需要个性化修改的地方:
model并不在下载的models文件夹中,需要单独从model zoo中下载,我下载的是ssd_mobilenet_v2_coco,下载之后解压文件,放到object_detection文件夹下,要将MODEL _ NAME写成下载的model的目录名。
还要修改CKPT和LABELS的路径,使其指向真正存在的路径,这里我设置了一个系统路径变量,通过os.getcwd()获得当前路径,然后拼接得到两个路径。 @H_301_3@
由于PyCharm不支持IPython的%matplotlib inline命令,因此在plt.imshow之后,要通过plt.show将图片显示出来。 @H_301_3@