从零开始到改写并运行object_detection_tutorial.ipynb

        如果一个人要入门计算机视觉的目标检测,那他一开始一定要体验一下自己跑代码把图片的目标检测出来的效果,感受过那份激动后更能激发我们学习计算机视觉的兴趣。而作为初学者,相关基础又比较欠缺,所以需要跑的代码要比较简单,而且最好有教程,tensorflow models里的object_detection_tutorial.ipynb就是一个很好的入门教程,不过新人在自己操作时很容易遇到坑或者弯路。本文将图文并茂地带你从头开始搭建环境,修改并成功运行object_detection_tutorial.ipynb,让你少走弯路,并从中学到一些干货!

  1.  安装好anaconda:https://www.anaconda.com/download/,有些勾记得勾上。
  2. 下载tensorflow models:https://github.com/tensorflow/models。这里我下载的是tf2.0.0
  3. 在anaconda prompt里输入conda create -n env_tf200创建虚拟环境,然后输入 activate env_tf200进入虚拟环境
  4. 在这个虚拟环境里安装下面的包:
conda install anaconda 
conda install protobuf
pip install tensorflow==2.0.0
pip install pycocotools(官方源码是有这条代码,但我没装照样能正常运行)
pip install opencv-python(这个这里用不到,但做CV的话这个肯定会用到)

       在这一歩完成之后请确认tensorflow是否真的有安装,反正我记得前面有安装的,后来跑代码时发现tensorflow没装成功,又回到这个环境里重新装了tensorflow。

从零开始到改写并运行object_detection_tutorial.ipynb

        5. 把这些路径\models, \models\research, \models\research\slim ,\models\research\object_detection添加到系统环境变量里。ps:我的环境名称是tensorflow2.x,下载的models文件夹命名为models-tf2.0.0.

从零开始到改写并运行object_detection_tutorial.ipynb

      6. 进入到models-tf2.0.0/research,分别在cmd里执行

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

      结果如下图所示:

从零开始到改写并运行object_detection_tutorial.ipynb

从零开始到改写并运行object_detection_tutorial.ipynb

         7. 通过cd进入到object_detection文件夹下面,因为我们要运行的object_detection_tutorial.ipynb就在这里。再输入jupyter notebook,过一会儿浏览器就会自动打开jupyter notebook啦!

从零开始到改写并运行object_detection_tutorial.ipynb

         8. 点击进入 object_detection_tutorial.ipynb

从零开始到改写并运行object_detection_tutorial.ipynb

       9. 在object_detection_tutorial.ipynb里,我们要对源代码进行一些改动才能正常运行,否则会kernel died。改动如下:

       9.1 开头部分改成如下所示,因为我们已经确认安装好tf2.0了,不需要pycocotools,已经进入object detection工作目录了,所以一些代码可以删除掉,但有一句代码不能删,就是import pathlib,所以我把它移到下面的cell了。

从零开始到改写并运行object_detection_tutorial.ipynb

         9.2 因为我们已经在object detection目录下面了,所以要把下图两个红圈部分的路径改成下图所示的样子,否则kernel会die。我们要检测的图片放在object_detection/test_images文件夹里面。正常运行后,第三个红圈的位置会显示检测到待会儿要识别的图片image1和image2。从零开始到改写并运行object_detection_tutorial.ipynb 

        9.3我们可以在这里的model_name替换其他模型,因为默认的ssd_mobilenet_v1识别准确度不是很高,我试过ssd_resnet50_v1_fpn_shared_box_predictor_640x640_coco14_sync_2018_07_03.tar.gz,准确度就不错。注意,最后代码上要删除名称的后缀“.tar.gz”,因为源代码会自己加这个后缀。

从零开始到改写并运行object_detection_tutorial.ipynb

        要替换的模型可以从detection model zoo找。源代码的逻辑是从http://download.tensorflow.org/models/object_detection/ssd_resnet50_v1_fpn_shared_box_predictor_640x640_coco14_sync_2018_07_03.tar.gz下载模型。下载好的模型保存在这里:

从零开始到改写并运行object_detection_tutorial.ipynb

   其实我们下载过一次模型后,以后目标检测不需要再重复下载模型了,所以我们把 Loader 的代码改成了下面的样子:

从零开始到改写并运行object_detection_tutorial.ipynb

base_url换成电脑本地磁盘路径,注意斜杠的方向还有在最后再加一个斜杠;model_file去掉“+tar.gz”;因为我们直接进入解压好的文件夹,所以untar=False。

       9.4 源代码最后面的Instance Segmentation我不需要,所以我把它们都 edit - delete cells 了。

      10. 运行 Cell -> Run All,就能看到激动人心的识别结果啦!

从零开始到改写并运行object_detection_tutorial.ipynb

                               工作繁忙创作不易,如果本文帮助到了您,欢迎打赏~

从零开始到改写并运行object_detection_tutorial.ipynb

从零开始到改写并运行object_detection_tutorial.ipynb从零开始到改写并运行object_detection_tutorial.ipynb 进无止境elite 发布了15 篇原创文章 · 获赞 1 · 访问量 641 私信 关注
上一篇:Pandas笔记地址


下一篇:POI2006 OKR-Periods of Words