当前位置: 首页 > news >正文

path manipulation怎么解决_TensorFlow Object Detection API遇到的问题及解决

94eaf7fd1939030b0def92d89b54d45d.png

TensorFlow Object Detection API遇到的问题及解决

教程网址:

Training Custom Object Detector​tensorflow-object-detection-api-tutorial.readthedocs.io
115502b08c409d7556ed548826800de8.png

我按照教程加载的是自己的一个数据集,进行目标检测

9323936b3877b77b4855a967283e3b0e.png

下载完成后如下:

502bef19e2ae2aab3c69eec83c8626af.png

Xml文件生成:可以自己写一个简单的脚本实现txt到xml的转换

按照教程进行到了Train这一步,遇到了如下问题:

7210ab0660b2d28b36267e4d31a5177f.png

参考网址:https://stackoverflow.com/questions/54301555/import-error-cannot-import-name-input-reader-pb2

解决方法:

# From tensorflow/models/research/

1.

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

1.(or)

wget -O protobuf.zip https://github.com/google/protobuf/releases/download/v3.0.0/protoc-3.0.0-linux-x86_64.zip

unzip protobuf.zip

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

2.

export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

3.

python object_detection/builders/model_builder_test.py

完成以上步骤就可以进行正常训练了

训练:(train)

python train.py --logtostderr --train_dir=training/ --pipeline_config_path=training/ssd_inception_v2_coco.config.py

(在1整个训练完成后,如要重新训练,train文件夹可能要改动—重建一个文件夹,)

评价:(eval)

方法一:

python eval.py --logtosderr --checkpoint_dir=training/ --eval_dir=eval/ --pipeline_config_path=training/ssd_inception_v2_coco.config.py

(eval文件夹是一个空的文件夹,用来保存输出文件)

可以运行成功,但是该eval貌似只能评估10个images(我第一次测试样本为10个(每类2张),感觉没问题,后来换成100个,出现错误,只读前10个图片,类别为bird,其余检测结果显示为nan)--具体config我没找到怎么改

错误显示如下:

54fc585a0824b1a8783b5f79ca5a5d3c.png

方法二:利用model_main.py(训练加测试一起)

python model_main.py --pipeline_config_path=training/ssd_inception_v2_coco.config.py --model_dir=training/ --num_train_steps=60000 --num_eval_steps=20 --alsologtostderr

(参数根据自己实际更改)—该评价指标采用COCO数据集评价指标。

681b733e6ddc3d16f72c08a6a552afb5.png

实际输出结果如下:

e85c8de16b68f76c313872d2101d98b3.png

测试 (test)

首先要导出模型

python export_inference_graph.py --input_type image_tensor --pipeline_config_path training/ssd_inception_v2_coco.config.py --trained_checkpoint_prefix training/model.ckpt-12000 --output_directory trained-inference-graphs/

之后我用的是test.py,选取了测试集中的一张图片来进行可视化,如下所示:

test.py代码:zigangzhao-ai/TensorFlow-Object-Detection-API

1f4c1a0c09225e18e9a6b23bbab43116.png

TensorBoard—连接

1.输入 tensorboard --logdir=training

会出现

90a39ccbb5770174194b1275e6111e86.png

复制该网址(http://omnisky:6006/)到浏览器即可查看

2.利用windows连接查看

14d2be57eef8baa49bca697438d64674.png

ssh -L 6006:127.0.0.1:6006 -p 1083 zigangzhao@222.20.79.224

在浏览器中输入:127.0.0.1:6006就可以显示了。

代码解读:

参考:

Tensorflow 物体检测(object detection) 之如何构建模型​www.manongjc.com TensorFlow Object Detection API 源码(4) 数据集​www.zhihu.com
f762724ebfadd417478bf7f421da246e.png
Tensorflow object detection API源码分析之如何处理数据​blog.csdn.net
854b898718bf132b0944af92dfbb058a.png
(原创)tensorflow目标检测框架(object detection api)源码细粒度剖析​www.cnblogs.com
3885da4fa338e99394042955599a152b.png

训练mask-rcnn可参考:

TensorFlow 训练 Mask R-CNN 模型​www.jianshu.com
3e592fc6537c2fe43333112a0129006e.png

相关文章:

  • python安装后怎样配解释器_pycharm 安装后如何设置与更换解释器
  • cloud压缩怎么彻底删除_怎么彻底删除mysql服务?
  • 西门子et200 分布式i/o_你真的了解西门子Profinet吗?从RT切换到IRT出问题
  • python简述题_python考核试题及答案
  • python 项目示例_Python project.Project方法代码示例
  • python12_python12_异常处理
  • python从date目录导入数据集_python – 将数据集转换为HDF5数据集
  • python join_Python中的join()函数的用法
  • python文字识别算法_使用Python检测文章抄袭及去重算法原理解析
  • python代码图片头像_Python图片裁剪实例代码(如头像裁剪)
  • python视频转换字符动画_视频转字符动画
  • python的requests模块功能_Python中requests模块的核心使用(上)
  • python分块处理功能_在python3下对数据分块(8x8大小)使用OpenCV的离散余弦变换DCT
  • mlp神经网络_PyTorch可视化理解卷积神经网络
  • python word处理_用python处理MS Word的实例
  • JavaScript-如何实现克隆(clone)函数
  • 时间复杂度分析经典问题——最大子序列和
  • emacs初体验
  • EventListener原理
  • JAVA 学习IO流
  • JavaScript函数式编程(一)
  • Java超时控制的实现
  • mongo索引构建
  • Vue--数据传输
  • Web标准制定过程
  • 从零搭建Koa2 Server
  • 近期前端发展计划
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 力扣(LeetCode)357
  • 盘点那些不知名却常用的 Git 操作
  • 前端攻城师
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 微信小程序--------语音识别(前端自己也能玩)
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • #AngularJS#$sce.trustAsResourceUrl
  • #NOIP 2014# day.2 T2 寻找道路
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (a /b)*c的值
  • (HAL库版)freeRTOS移植STMF103
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (四)汇编语言——简单程序
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转)EOS中账户、钱包和密钥的关系
  • (转)Scala的“=”符号简介
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • .NET 中让 Task 支持带超时的异步等待
  • .net和jar包windows服务部署
  • .pyc文件是什么?