kitti数据集转为bag

KITTI数据集发布与ROS可视化
部署运行你感兴趣的模型镜像

下载原始的数据集后,通过终端来运行:

unzip 2011_10_03_calib.zip

unzip 2011_10_03_drive_0047_sync.zip

这样这个文件夹才算准备好:
在这里插入图片描述
然后去下载kitti2bag工具:

pip install kitti2bag

然后去2011_10_03文件夹下执行:

kitti2bag -t 2011_10_03 -r 0047 raw_synced .

在这里插入图片描述
转换完毕.
方法二,直接通过python来发布数据:
解析数据:input_ros_kitti.py

import rospy
from sensor_msgs.msg import Image,PointCloud2
from cv_bridge import CvBridge
import numpy as np
import os
import cv2
from pub_publish import *
# 保存解压后数据的地方
 
DATA_PATH='/home/t/t/Row_Data/2011_09_26/2011_09_26_drive_0005_sync/'
if __name__=='__main__':
    rospy.init_node('kitti_node',anonymous=True)
    cam_pub=rospy.Publisher('kitti_cam',Image,queue_size=10)
    pcl_pub=rospy.Publisher('kitti_pcl',PointCloud2,queue_size=10)
    bridge=CvBridge()
    rate=rospy.Rate(10)
    frame=0
    # 循环播放,通过frame控制帧数
    while not rospy.is_shutdown():
        img=cv2.imread(os.path.join(DATA_PATH,'image_02/data/%010d.png'%frame))
        pcl=np.fromfile(os.path.join(DATA_PATH,'velodyne_points/data/%010d.bin'%frame),dtype=np.float32).reshape(-1,4)
        publish_camera(cam_pub,bridge,img)
        publish_pcl(pcl_pub,pcl)
        rospy.loginfo('published')
        rate.sleep()
        frame+=1
        frame%=154

发布数据的函数pub_publish.py

from std_msgs.msg import Header
import rospy
import sensor_msgs.point_cloud2 as pcl2
FRAME_ID='map'
def publish_camera(cam_pub,bridge,image):
    cam_pub.publish(bridge.cv2_to_imgmsg(image,'bgr8'))
 
def publish_pcl(pcl_pub,point_cloud):
    header=Header()
    header.stamp=rospy.Time.now()
    header.frame_id=FRAME_ID
    pcl_pub.publish(pcl2.create_cloud_xyz32(header,point_cloud[:,:3]))
 

文件依然和方法一同样解压,放在同样的位置下。
最后来看一下如何将bag文件进行包围框的可视化。
参考
还是有点意思的。

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

KITTY数据集是一个广泛用于计算机视觉任务的数据集合,特别是在目标检测、语义分割和场景理解等领域。该数据集由卡尔斯鲁厄理工学院(KIT)和丰田工业大学芝加哥分校(TTIC)联合创建[^1]。 ### 准备工作 在开始使用KITTY数据集之前,需要完成以下准备工作: 1. **下载数据集**:可以通过访问官方网址 http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=2d 获取最新版本的数据集。对于国内用户来说,可以考虑通过提供的国内镜像地址 http://dataset.f3322.net:666/share/kitti/ 下载以提高速度[^1]。 2. **安装必要的软件库**:为了处理图像和点云数据,通常需要安装如OpenCV、PCL(PCL)等库。此外,推荐使用Python进行开发,因此还需要安装NumPy、Pandas等相关包。 ### 数据集结构 了解KITTY数据集的目录结构有助于更好地管理和访问数据。一般情况下,数据集包含以下几个主要文件夹: - `image_2`:存放RGB图像。 - `label_2`:对应每张图片的目标标签信息。 - `calib`:校准参数文件,用于将点云转换到相机坐标系。 - `velodyne`:激光雷达点云数据,以.bin格式存储。 每个子目录下的文件按照编号排列,例如000000.png或000000.txt等,这些编号与测试/训练划分有关。 ### 加载和预处理数据 加载数据是任何机器学习项目的第一步。这里提供了一个简单的Python脚本示例来读取一张图像及其对应的标签: ```python import os from PIL import Image # 设置路径 data_dir = 'path/to/kitti' image_path = os.path.join(data_dir, 'image_2', '000000.png') label_path = os.path.join(data_dir, 'label_2', '000000.txt') # 读取图像 img = Image.open(image_path) print(f"Image size: {img.size}") # 读取标签 with open(label_path, 'r') as f: labels = f.readlines() print("Labels:") for label in labels: print(label.strip()) ``` 此代码片段展示了如何打开指定路径下的图像文件并打印其尺寸,同时从相应的标签文件中读取内容并显示出来。这只是一个基础示例;实际应用中可能还需要对数据进行归一化、裁剪或其他形式的预处理操作。 ### 应用实例 #### 目标检测 目标检测是最常见的应用场景之一。利用深度学习框架如TensorFlow或PyTorch,可以构建高效的物体识别模型。首先,需要准备标注好的训练样本,然后定义网络架构,并设置合适的损失函数和优化器来进行训练过程。 #### 语义分割 语义分割旨在为每个像素分配一个类别标签。这项技术对于自动驾驶汽车理解周围环境至关重要。实现方法包括但不限于U-Net架构的应用,它能够很好地保留空间细节同时捕捉上下文信息。 #### 场景理解 除了单独的对象识别外,KITTY数据集还支持更复杂的场景解析任务,比如预测道路布局、行人位置以及其他动态障碍物的状态。这类问题往往涉及到多模态数据融合以及高级别的推理能力。 综上所述,通过对KITTY数据集的有效利用,研究人员能够在多种计算机视觉挑战性问题上取得突破性的进展。无论是学术研究还是工业界的实际部署,掌握这一工具都是极其有价值的。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白云千载尽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值