今天我们来做一个有趣的事情,识别“社会人”,我们现在就准备用tensorflow object detect api来检测它
代码仓库:https://github.com/sanfooh/tensorflow_object_detection_api_demo
标注工具:https://github.com/sanfooh/quick_yolo2_label_tool
视频教程:https://edu.csdn.net/course/detail/8274

1,标注

首先我们使用工具(https://github.com/sanfooh/tensorflow_label_tool)抓取下图片:
此工具是C#写的,只能用在windows环境下,抓取成功以后,按“导入到标注文件”
好了,我们可以标注它了
把社会人全部标注完。其产生的的“label_map.pbtxt”和“image”就是我们需要的:

2.安装tensorflow object detec api(ubuntu)
基于我们已经安装好了tensorflow:
#在根目录下创建一个output目录
mkdir /output
cd /output/#下载tensorflow object detec api 代码
git clone https://github.com/tensorflow/models.git#安装依赖项
pip install Cython
pip install pillow
pip install lxml
pip install jupyter
pip install matplotlib
pip install opencv-python
pip install pycocotoolscd /output/models/research/
#编译
protoc object_detection/protos/*.proto --python_out=.
#安装
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
#验证
python object_detection/builders/model_builder_test.py
最后打印出“OK”即说明安装API成功
(代码来自https://github.com/sanfooh/tensorflow_object_detection_api_demo)

3.准备好项目

#下载图片及标注文件
cd /output
git clone https://github.com/sanfooh/tensorflow_object_detection_api_demo.git
下载这个项目之后,将项目中的“label_map.pbtxt”和“image”文件夹删掉,然后把第一步产生的“label_map.pbtxt”和“image”放进去。

我们还在下载一个预训练文件

#下载预训练文件
cd /output/tensorflow_object_detection_api_demo
wget  http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_coco_2017_11_17.tar.gz
tar -xzvf ssd_mobilenet_v1_coco_2017_11_17.tar.gz
rm -r ssd_mobilenet_v1_coco_2017_11_17.tar.gz

生成tfrecord

#生成tfrecord数据集
python create_tf_record.py 

生成之后,我们可以在winscp中看到如下的文件:

4.训练

mkdir mytrain
python /output/models/research/object_detection/train.py --train_dir=mytrain/ --pipeline_config_path=net.config --logtostderr
查看训练情况
cd /output/tensorflow_object_detection_api_demo
tensorboard --logdir=mytrain
打开浏览器http:/xxxx:6006就可查看训练情况
在训练的过程中(训练不要停),使用eval.py来评估验证集
首先,为了避免评估争抢gpu的资源,让eval只在cpu运行就好了,找到/output/models/research/object_detection/eval.py文件在开始的地方添加 os.environ['CUDA_VISIBLE_DEVICES'] = '-1':
运行如下代码开始评估
cd /output/tensorflow_object_detection_api_demo
mkdir evalpython /output/models/research/object_detection/eval.py \ --logtostderr \  --pipeline_config_path=net.config \ --checkpoint_dir=mytrain/ \  --eval_dir=eval/
运行后它不会退出,当有新的检查点文件产生时,它会重新评估,也就是说它是在训练的同时运行,需要注意pipeline文件中eval部分是这样设置的:
评估时,会在eval目录下生成形如events.out.tfevents.XXX的文件
这时我们需要再使用tensorboard来查看图片情况:
cd /output/tensorflow_object_detection_api_demo
tensorboard --logdir=eval

5.发布

当训练完以后,我们可以发布模型了(注意修改35187):
cd /output/tensorflow_object_detection_api_demo
python /output/models/research/object_detection/export_inference_graph.py \
--input_type image_tensor \
--pipeline_config_path /output/tensorflow_object_detection_api_demo/net.config \
--trained_checkpoint_prefix /output/tensorflow_object_detection_api_demo/mytrain/model.ckpt-35187 \
--output_directory /output/tensorflow_object_detection_api_demo/mymodel

在mymodel下生成如下文件,其中frozen_inference_graph.pb就是我们要的文件

有了pb文件以后,我们就可以发布模型了:
#利用Flask来发布模型
pip install flask
pip install flask_wtf
#启动服务
python /output/tensorflow_object_detection_api_demo/web/app.py

最后用浏览器打开8000端口可以看到如下效果:

本文相关:
代码仓库:https://github.com/sanfooh/tensorflow_object_detection_api_demo
标注工具:https://github.com/sanfooh/quick_yolo2_label_tool
视频教程:https://edu.csdn.net/course/detail/8274

深度学习tensorflow object detect 之识别社会人小猪佩奇相关推荐

  1. 使用深度学习TensorFlow框架进行图片识别

    Apsara Clouder大数据专项技能认证:使用深度学习TensorFlow框架进行图片识别 本认证系统的介绍了深度学习的一些基础知识,以及Tensorflow的工作原理.通过阿里云机器学习PAI ...

  2. 深度学习--TensorFlow(项目)识别自己的手写数字(基于CNN卷积神经网络)

    目录 基础理论 一.训练CNN卷积神经网络 1.载入数据 2.改变数据维度 3.归一化 4.独热编码 5.搭建CNN卷积神经网络 5-1.第一层:第一个卷积层 5-2.第二层:第二个卷积层 5-3.扁 ...

  3. 深度学习TensorFlow的55个经典案例

             人工智能大数据与深度学习  公众号: weic2c 本文是TensorFlow实现流行机器学习算法的教程汇集,目标是让读者可以轻松通过清晰简明的案例深入了解 TensorFlow.这 ...

  4. 【深度学习】手写数字识别Tensorflow2实验报告

    实验一:手写数字识别 一.实验目的 利用深度学习实现手写数字识别,当输入一张手写图片后,能够准确的识别出该图片中数字是几.输出内容是0.1.2.3.4.5.6.7.8.9的其中一个. 二.实验原理 ( ...

  5. 毕设 深度学习卷积神经网络的花卉识别

    文章目录 0 前言 1 项目背景 2 花卉识别的基本原理 3 算法实现 3.1 预处理 3.2 特征提取和选择 3.3 分类器设计和决策 3.4 卷积神经网络基本原理 4 算法实现 4.1 花卉图像数 ...

  6. 【论文笔记】《基于深度学习的中文命名实体识别研究》阅读笔记

    作者及其单位:北京邮电大学,张俊遥,2019年6月,硕士论文 摘要 实验数据:来源于网络公开的新闻文本数据:用随机欠采样和过采样的方法解决分类不均衡问题:使用BIO格式的标签识别5类命名实体,标注11 ...

  7. Python实现深度学习MNIST手写数字识别(单文件,非框架,无需GPU,适合初学者)

    注: 本文根据阿卡蒂奥的Python深度学习博客文章代码进行调整,修复了少量问题,原文地址:https://blog.csdn.net/akadiao/article/details/78175737 ...

  8. 毕业设计 - 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉

    文章目录 0 前言 1 项目背景 2 花卉识别的基本原理 3 算法实现 3.1 预处理 3.2 特征提取和选择 3.3 分类器设计和决策 3.4 卷积神经网络基本原理 4 算法实现 4.1 花卉图像数 ...

  9. 基于InceptionV3深度学习实现岩石图像智能识别与分类

    基于InceptionV3深度学习实现岩石图像智能识别与分类 文章目录 基于InceptionV3深度学习实现岩石图像智能识别与分类 总体流程 数据预处理 构建InceptionV3模型 训练.保存模 ...

最新文章

  1. 工程师进阶之路(四)
  2. JVM调优:Tomcat Context reloadabled与OutOfMemory(PermSpace)
  3. ASP.NET MVC SSO单点登录设计与实现
  4. 最常问的MySQL面试题集合
  5. linux arm current_thread_info定义,linux 内核 current全局变量
  6. uva 10985 Rings'n'Ropes
  7. duplicate database的时候,rman连接 auxiliary database的后状态不正确
  8. php源码无法安装mysql_linux中源码编译安装mysql常见错误
  9. 【OpenCV学习】cvConvert的使用
  10. linux系统根目录执行了chmod,根目录执行chmod -R 777 / 的补救方法
  11. mysql_query的返回值
  12. vbs整人代码蓝屏_vbs恶作剧(整人代码)-英文报数 蓝屏 重启电脑等
  13. android 设置启动画面,修改Android开机画面
  14. 小白深度学习起步中——读取人像图像
  15. 【CF869E】The Untended Antiquity(哈希+二维树状数组)
  16. 打包微服务前后端分离项目并部署到服务器 --- 分布式 Spring Cloud + 页面渲染 Nuxt.js
  17. gta5 android ps4,gta5导演模式怎么玩好玩_gta5怎么进入导演模式怎么玩ps4导演模式怎么打开_攻略...
  18. 用PE安装win11系统
  19. idea 启动项目突然间 java.lang.OutOfMemoryError: Java heap space
  20. 使用picgo配置图床使用

热门文章

  1. 13.mysql-修改表名
  2. html网络流量监控,Mrtg 网络流量监控
  3. Linux系统之Uboot、Kernel、Busybox思考之四
  4. html中怎么置顶文本框,如何同时选中多个文本框
  5. Python抓取百度贴吧网页信息以及代码下载
  6. 给大家介绍几个数据分析,数据可视化的网站合集
  7. 如何才能提高自己的沟通能力
  8. 4 年前端狗,2 年 CTO
  9. BZOJ4521: [Cqoi2016]手机号码
  10. ZBrush 2021来了