方法描述

rosbag格式的数据不能直接使用,需要读取出jpg图像和csv文件,网上的大多教程都是安装rosbag软件或者docker软件,然后在linux终端下执行一系列的命令进行提取,这太复杂!

找到一篇使用python解析rosbag数据的代码放在这里供大家参考:

Udacity CH2 数据集下载及python 解析

'''
Generate images and steering angles from hmb3.bag
Modified from
https://github.com/udacity/self-driving-car/blob/master/steering-models/evaluation/generator.py
'''
import argparse
import rosbag
from io import StringIO, BytesIOfrom keras_preprocessing import image
from rosbag import bag
from scipy import misc
import numpy as np
import csv
import os
KEY_NAME = {'/vehicle/steering_report': 'steering','/center_camera/image_color/c': 'image',
}def update(msg, d):key = KEY_NAME.get(msg[0])if key is None: returnd[key] = msgdef gen(bagpath):print("Getting bag")bag = rosbag.Bag(bagpath)print('Got bag')image = {}total = bag.get_message_count()count = 0for e in bag.read_messages():count += 1if count % 10000 == 0:print ( count / total)if e[0] in ['/center_camera/image_color/compressed']:#print(e)if len({'steering'} - set(image.keys())):continueif image['steering'][1].speed < 5.: continues = BytesIO(e[1].data)img = misc.imread(s)yield img, np.copy(img), image['steering'][1].speed,\image['steering'][1].steering_wheel_angle, e[2].to_nsec()last_ts = e[2].to_nsec()else:update(e, image)if __name__ == '__main__':img_paths = image.list_pictures('hmb/testing/', ext='jpg') #解析出来的图片的保存路径data_iter = gen('./testing/HMB_3.bag')  # rosbag文件所在路径next(data_iter)with open('hmb/testing/hmb3_steering.csv', 'w') as hmb1csv: #保存解析出来的csv文件writer = csv.writer(hmb1csv, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)writer.writerow([str.encode('timestamp'),str.encode('steering angle')])for image_pred, image_disp, speed, steering, ts in data_iter:misc.imsave('hmb/testing/'+ str(ts) + '.jpg', image_disp) #保存解析的图片#print(ts)csvcontent = []csvcontent.append(ts)csvcontent.append(steering)writer.writerow(csvcontent)

遇到问题

会遇到的问题就是如何安装rosbag?

import rosbag

经过试验好几个解决方法,最好就是结合以下步骤,按顺序安装:

pip install bagpy
pip install roslib -i https://rospypi.github.io/simple/
pip install genpy -i https://rospypi.github.io/simple/
pip install genmsg -i https://rospypi.github.io/simple/
pip install roslz4 -i https://rospypi.github.io/simple/
pip install pycrypto如果遇到报错:VC14 则更改为pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pycryptodome
pip install rosbag -i https://rospypi.github.io/simple/最后再安装rosbag

这里给出几个安装源:

清华大学 :https://pypi.tuna.tsinghua.edu.cn/simple/阿里云:http://mirrors.aliyun.com/pypi/simple/中国科学技术大学 :http://pypi.mirrors.ustc.edu.cn/simple/华中科技大学:http://pypi.hustunique.com/豆瓣源:http://pypi.douban.com/simple/腾讯源:http://mirrors.cloud.tencent.com/pypi/simple华为镜像源:https://repo.huaweicloud.com/repository/pypi/simple/格式:pip install [包名] -i [pip源URL]

参考的解决方案:

conda虚拟环境使用rosbag等包

rosbag库的安装

.python 报错汇总-- pip install pycrypto2

2.23 使用python解析.bag数据集(无需虚拟机和ROS)相关推荐

  1. python 手动读取cifar10_如何用python解析cifar10数据集图片

    概述 通用图像分类公开的标准数据集常用的有CIFAR.ImageNet.COCO等,常用的细粒度图像分类数据集包括CUB-200-2011.Stanford Dog.Oxford-flowers等.其 ...

  2. 使用Python解析MNIST数据集

    五月两场 | NVIDIA DLI 深度学习入门课程 5月19日/5月26日一天密集式学习  快速带你入门阅读全文> 正文共948个字(不含代码),2张图,预计阅读时间15分钟. 前言 最近在学 ...

  3. python idx是什么_使用Python解析MNIST数据集(IDX文件格式)

    前言 最近在学习Keras,要使用到LeCun大神的MNIST手写数字数据集,直接从官网上下载了4个压缩包: MNIST数据集 解压后发现里面每个压缩包里有一个idx-ubyte文件,没有图片文件在里 ...

  4. python中idx是什么意思_使用Python解析MNIST数据集(IDX文件格式)

    前言 最近在学习Keras,要使用到LeCun大神的MNIST手写数字数据集,直接从官网上下载了4个压缩包: MNIST数据集 解压后发现里面每个压缩包里有一个idx-ubyte文件,没有图片文件在里 ...

  5. 使用Python解析MNIST数据集(IDX格式文件)

    代码参考链接 mnist数据集idx格式文件: t10k-images-idx3-ubyte.gz:测试集数据 t10k-labels-idx1-ubyte.gz:测试集标签 train-images ...

  6. python解析MNIST数据集(IDX格式)

    下载 地址:http://yann.lecun.com/exdb/mnist/ 解压 如图 上传 使用的是Jupyter Notebook,所以有这一步,其他编辑器自己考虑路径 代码 import o ...

  7. python 读取 MNIST 数据集,并解析为图片文件

    python 读取 MNIST 数据集,并解析为图片文件 MNIST 是 Yann LeCun 收集创建的手写数字识别数据集,训练集有 60,000 张图片,测试集有 10,000 张图片.数据集链接 ...

  8. 【OCR炼丹】解析CASIA数据集OLHWDB部分Python版完整代码

    上一篇记录了HIT-OR3C联机数据的解析代码,由于OLHWDB不同于HIT-OR3C,其在采集联机手写体数据时就没有按照固定size去采集(HIT-OR3C保存的坐标是转换后相对128*128大小画 ...

  9. python内存管理 变量无需事先声明_关于python本身的内存管理

    一.在python中,变量和内存管理的特点 1.变量无需事先声明 2.变量无需指定类型 3.程序员不用关心内存的管理问题 4.变量名会被回收 5.del语句能够直接释放资源 二.内存分配问题 在为变量 ...

最新文章

  1. GNU make manual 翻译( 一百五十四)
  2. ArcGIS Server 9.3 beta 体验一 -- 安装
  3. memsql 落地mysql_MemSQL初体验 - (2)初始化测试环境
  4. linux密文解密工具,Linux之加密解密工具openssl的用法以及自建CA
  5. python 线程间通信之Condition, Queue
  6. 跟我一起学习C++虚函数--第一篇
  7. 生活中的数学 —— 几何
  8. 大B与小b的区别(Bps与bps)
  9. python好玩的代码-好玩的游戏
  10. isupper函数用法
  11. Java处理图片和视频文件——视频抽帧与图片压缩
  12. 天龙八部,数据可视化分析虚竹和童姥居然关系非同一般
  13. Vue入门学习总结一:Vue定义
  14. 共码未来 | 盘点 2022 Google 谷歌开发者大会多重亮点!
  15. 《SRE Google运维解密》散文
  16. 5G 当自强,根系不能忘
  17. 【干货】成功解决了无法进入系统的问题
  18. TIA博途SCL入门学习(二)常用基本控制语句用法和举例
  19. 微观:心流,宏观:ikigai
  20. 4.25分享(贪心算法基础)

热门文章

  1. 边缘计算设备与部署方案
  2. 严格递增最大连续子段(思维)
  3. Netty网络编程(三):Channel详解
  4. 2019年职称计算机考题,2019年职称计算机考试Excel备考试题(一)
  5. 微信小程序开发之——调查问卷-服务器数据交互(2.2.3)
  6. win10中有道词典以及部分软件中文显示乱码问题解决方案
  7. 介绍一个自制PLC的论坛
  8. 使用Fastdfs上传文件时出现中文乱码。工具类中的this.getClass().getResource(“/“).getPath()获取配置文件的路径时中文乱码。
  9. jdk-18.0.0.1安装包下载安装教程
  10. java+springboot+ssm学生实习报告作业评分管理系统