tensorflow object detection api关于csv转换tfrecord格式

在tensorflow object_detection api 迁移学习中需要将自己标注的图片xml格式先转为csv再转为tfrecord 格式,csv转TFR容易出错,这里就说一下csv转TFR的方法吧,亲测是可以成功的。


在test,train文件同路径下建一个generate_tfrecord.py文件 代码已给出,然后打开控制台命令行定位到当前目录 运行我圈出来的代码即可,记得按照你自己的路径修改下代码。

"""
Usage:# From tensorflow/models/# Create train data:python generate_tfrecord.py --csv_input=cat_or_dog_train.csv --image_dir=train --output_path=train.record# Create test data:python generate_tfrecord.py --csv_input=cat_or_dog_test.csv  --image_dir=test --output_path=test.record
"""
from __future__ import division
from __future__ import print_function
from __future__ import absolute_importimport os
import io
import pandas as pd
import tensorflow as tffrom PIL import Image
from object_detection.utils import dataset_util
from collections import namedtuple, OrderedDictflags = tf.app.flags
flags.DEFINE_string('csv_input', '', 'Path to the CSV input')
flags.DEFINE_string('image_dir', '', 'Path to the image directory')
flags.DEFINE_string('output_path', '', 'Path to output TFRecord')
FLAGS = flags.FLAGS# TO-DO replace this with label map
def class_text_to_int(row_label):if row_label == 'cat':return 1elif row_label == 'dog':return 2else:return Nonedef split(df, group):data = namedtuple('data', ['filename', 'object'])gb = df.groupby(group)return [data(filename, gb.get_group(x)) for filename, x in zip(gb.groups.keys(), gb.groups)]def create_tf_example(group, path):with tf.gfile.GFile(os.path.join(path, '{}'.format(group.filename)), 'rb') as fid:encoded_jpg = fid.read()encoded_jpg_io = io.BytesIO(encoded_jpg)image = Image.open(encoded_jpg_io)width, height = image.sizefilename = group.filename.encode('utf8')image_format = b'jpg'xmins = []xmaxs = []ymins = []ymaxs = []classes_text = []classes = []for index, row in group.object.iterrows():xmins.append(row['xmin'] / width)xmaxs.append(row['xmax'] / width)ymins.append(row['ymin'] / height)ymaxs.append(row['ymax'] / height)classes_text.append(row['class'].encode('utf8'))classes.append(class_text_to_int(row['class']))tf_example = tf.train.Example(features=tf.train.Features(feature={'image/height': dataset_util.int64_feature(height),'image/width': dataset_util.int64_feature(width),'image/filename': dataset_util.bytes_feature(filename),'image/source_id': dataset_util.bytes_feature(filename),'image/encoded': dataset_util.bytes_feature(encoded_jpg),'image/format': dataset_util.bytes_feature(image_format),'image/object/bbox/xmin': dataset_util.float_list_feature(xmins),'image/object/bbox/xmax': dataset_util.float_list_feature(xmaxs),'image/object/bbox/ymin': dataset_util.float_list_feature(ymins),'image/object/bbox/ymax': dataset_util.float_list_feature(ymaxs),'image/object/class/text': dataset_util.bytes_list_feature(classes_text),'image/object/class/label': dataset_util.int64_list_feature(classes),}))return tf_exampledef main(_):writer = tf.python_io.TFRecordWriter(FLAGS.output_path)path = os.path.join(os.getcwd(), FLAGS.image_dir)examples = pd.read_csv(FLAGS.csv_input)grouped = split(examples, 'filename')for group in grouped:tf_example = create_tf_example(group, path)writer.write(tf_example.SerializeToString())writer.close()output_path = os.path.join(os.getcwd(), FLAGS.output_path)print('Successfully created the TFRecords: {}'.format(output_path))if __name__ == '__main__':tf.app.run()

tensorflow object detection api关于csv转换tfrecord格式相关推荐

  1. Tensorflow Object Detection API生成自己的tfrecord训练数据集

    Object Detection API谷歌 该文章部分参考别的大佬的,由于忘了内容出处,所以没有加转载链接,请谅解,有原创作者看到可以联系我添加. ========转载请注明出处========== ...

  2. 【CV】如何使用Tensorflow提供的Object Detection API --2--数据转换为TFRecord格式

    本篇主要讲的是如何将现存的数据变成Tensorflow记录格式,然后我们就可以用这些数据来进行微调模型,以解决我们关心的问题了. 什么是TFRecord格式 一般使用TF读取数据有四种方式: 预先把所 ...

  3. 使用tensorflow object detection API 训练自己的目标检测模型 (三)

    在上一篇博客"使用tensorflow object detection API 训练自己的目标检测模型 (二)"中介绍了如何使用LabelImg标记数据集,生成.xml文件,经过 ...

  4. ssd目标检测训练自己的数据_目标检测Tensorflow object detection API之训练自己的数据集...

    构建自己的模型之前,推荐先跑一下Tensorflow object detection API的demo JustDoIT:目标检测Tensorflow object detection API​zh ...

  5. 建立自己的数据集 并用Tensorflow object detection API进行训练

    ps: 欢迎大家光临我的博客 建立数据集 标注工具: ubuntu 图像标注工具labelImg sudo apt-get install pyqt5-dev-tools sudo pip3 inst ...

  6. TensorFlow Object Detection API 超详细教程和踩坑过程

    安装Anacond:https://blog.csdn.net/ITLearnHall/article/details/81708148 安装Pycharm:https://blog.csdn.net ...

  7. TensorFlow Object Detection API入门例子 (小浣熊检测上)

    玩了一周的TensorFlow Object Detection API了,是时候记录一下,踩过的坑都快忘记了~ 首先,总结一下检测的流程,实验分以下几步完成: 收集并标注数据 数据格式转换 确定训练 ...

  8. Tensorflow object detection API 搭建属于自己的物体识别模型(转载修改)

    Tensorflow object detection API 搭建属于自己的物体识别模型 电脑配置信息 开始搭建环境 测试自带案例 准备训练图片 配置文件与模型 开始训练模型 生成最终的训练文件 测 ...

  9. 基于TensorFlow Object Detection API训练自己的目标识别模型

    基于TensorFlow Object Detection API训练自己的目标识别模型 环境 Windows10 CUDA_9 Cudnn_9.0 Anaconda3-5.2.0 Tensorflo ...

  10. Tensorflow object detection API 搭建自己的目标检测模型并迁移到Android上

    参考链接:https://blog.csdn.net/dy_guox/article/details/79111949 之前参考上述一系列博客在Windows10下面成功运行了TensorFlow A ...

最新文章

  1. php读取cookie文件,PHP读取CURL模拟登录时生成Cookie文件的方法,_PHP教程
  2. SAP MM ME29N 试图取消审批报错 - Document has already been outputed(function not possible) -
  3. 科大讯飞智慧医疗再出重磅,“智医助理”机器人顺利通过临床执业医师综合笔试...
  4. 异步Socket通信总结[转]
  5. LRU LeetCode
  6. 前端学习(2197):__WEBPACK_IMPORTED_MODULE_1_vuex__.a.store is not a constructor
  7. 2021计算机技术调剂,2021年华南师范大学计算机技术考研调剂信息
  8. **Java有哪些悲观锁的实现_Redis 分布式锁的正确实现方式(Java 版)
  9. Kylin V10 SP2 定制openssh 9.0 rpm包
  10. chinapub matlab,MATLAB 5手册
  11. 蓝桥杯真题-单词分析
  12. PCB Layout 设计流程
  13. 舱机器人尾巴毛茸茸_第一千五百二十四章 毛茸茸【二合一】
  14. 《财务报表分析从入门到精通》——读书笔记
  15. The word 'xx' is not correctly spelled
  16. html根据ip和mac地址,关于怎么通过IE浏览器获取客户端的IP地址和Mac地址
  17. Android 自带工具生成图标
  18. android 安全加固总结报告,Android应用本地代码的安全加固及安全性评估
  19. 准独角兽已出现,火爆的隐私计算赛道谁是头部玩家?
  20. VS Code下载,安装,汉化

热门文章

  1. 明星热图|童瑶、周迅、易烊千玺、张新成签约新品牌;李宇春、陈飞宇参加品牌活动...
  2. 程序员如何跳出死循环,不作所谓的“程序猿”
  3. 蓝牙音箱延迟测试软件,“Latency Test”详细操作流程,一款测试TWS耳机延迟的软件...
  4. dialog层级关系
  5. LXDE桌面系统设置快捷键
  6. canvas画带圆角矩形
  7. 从冲突到和谐:智能新文化环境中人机关系的伦理重构
  8. 揪出手机耗电元凶——高德地图缓存数据
  9. Windows 7 新功能 - AppLocker
  10. 多目标优化系列(六)SPEA