Tensorflow Objection_Detection API 使用心得

最近这个星期根据网上的一些TF教程,开始学着自己做hand_detection玩一下,但是捣鼓来捣鼓去。总是在TF安装包、Anaconda安装等问题上一直来回浪费时间。这篇文章主要是说一下博主玩这个API遇到的一些坑,以及如何一步步去解决,方便后人更快地入手,体验Objection_DetectionAPI。

Tensorflow安装

首先博主安装Tensorflow1.4-gpu的版本,因为以前的教程基本多数都是1.0版本,2.0版本暂时教程没那么齐全,然后玩API没有那么方便,遇到坑也难以找到解决方法。
在确定了自己是安装TF的版本后,就是要下载Anaconda

Anaconda的安装

首先Anaconda的好处在于可以使用虚拟环境env,意味着你可以在其上面下载多个Python的版本,3.53.63.7等。然后进入不同的环境里面安装跟Python版本对应的Tensorflow版本。 这也就意味着你的电脑可以同时有TF1.0TF2.0等版本。这就是强烈推荐用Anaconda的原因,且安装各种Python库和包都极其方便。
下面说一下博主遇到的坑

  1. 博主的电脑是Win10,由于Anaconda Navigator总是出问题,不能正常打开,所以安装过好多个版本的Anaconda,最新的2020版本也试过。但是会问题依旧存在。但是安装以前的旧版本就不会出现这个问题。可能是我的电脑兼容性问题,也可能是Anaconda往后没有做好系统兼容。后来就选用了Anaconda3 5.0.1的老版本,可以正常打开Anaconda里面的Spyder、Navigator,且这个版本默认安装的Python环境是3.6,刚好可以对应我需要安装Tensorflow1.4-gpu所需的Python环境,对我来说不需要另外开辟虚拟环境。但是,你要根据你自己的TF版本对应好Python环境去下载。 强烈建议安装Anaconda用国内镜像,如清华,阿里云等下载,速度快得多。
  2. 安装TF-GPU版本网上有很多博主已经写了,而且教程详细,跟着安装即可,但是在pip install时强烈推荐国内镜像源,否则容易出现安装失败的情况。

玩API碰到大坑

  1. 首先在安装好TF-GPU版本后,就是开始去尝试API,跟着网上博客去做目标检测,只要网上搜索Tensorflow目标检测API就有很多博客教程。但是他们已经是1-2年前写的博客,在下载Tensorflow object detection API上,没有给到提醒。博主就是因为这样浪费了一个下午的时间,各种配置环境,调试。后来发现了最重要的点API需要对应TF版本下载 API需要对应TF版本下载 API需要对应TF版本下载。重要的事情说三遍。
    当时博主直接在github下载最新的models,它是对应最新版本的TF设计的。而以前就的版本在其官方github的branch上可以找到。玩这个API的时候,必须下载跟自己TF版本对应的models,否则会遇到很多问题。
    当时最让我崩溃的还是官方的删库行为,我发现自己TF版本对应的tensorflow1.4.0models居然被官方删库,删掉了一部分。幸好在github上搜索tensorflow1.4.0 models发现有人之前fork了,得以让博主可以安心地进行玩耍。
  2. 在下载好跟tf对应的models后面跟着网上的教程走都很流畅,如果遇到没有absl的报错,直接下载pip install absl-py的库即可完成。

Objection Detection API 总结

首先,label_map对应的 .pbtxt 文件里面的 id 可以是多个,相当于到后面检测的物体是有多个的。这是给检测物体定义标签。
其次在训练模型时需要配置的 .config文件中的num_class是类的数量,也就是检测物体种类的数量。
然后训练模型主要使用tf.record文件和神经网络框架,也就是.config配置文件对应的网络框架,官方github有很多神经网络框架,使用迁移学习可以加快训练速度,数据集主要是为了生成tf.record文件用于训练,所以图片可以放在别的地方,最重要的是.record文件。
其次,在配置文件路径时path需要双斜杠不能单斜杠,例如:F:\\deep_learning\\models\\research\\object_detection\\hand_detection\\test_images
最后,在测试自己训练过模型的效果时,推荐用spyder编辑器去跑训练模型的测试效果,因为可以一目了然地查看状态变量和直接保存测试后的效果图片。pycharm需要搭配ipythonconsole环境,博主懒得搭配,且jupyter notebook也可以运行测试,但是不直观和不方便。

  1. 神经网络一般都是迁移学习来加快训练过程,除非学术研究,通常用别人已经做好的神经网络,然后我们利用数据集转化成的tf.record文件进行训练模型。
  2. 模型训练结束后,训练模型就是frozen_inference_graph.pb文件,利用它来检测识别物体。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值