问题标签 [kitti]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
23062 浏览

computer-vision - 如何理解 KITTI 相机校准文件?

我正在研究 KITTI 数据集。
我已经下载了对象集的对象数据集(左和右)和相机校准矩阵。

我想使用立体声信息。
但是我不知道如何获得两个相机的Intrinsic Matrix和R|T Matrix。而且我不明白校准文件的含义。

校准文件的内容:

0 投票
2 回答
1347 浏览

python - 调整可变大小的图像以进行对象检测

我正在使用 KITTI 的对象检测数据集来训练带有 ResNet 101 的 Faster R-CNN,并在 MS COCO 上进行了预训练。KITTI 图像“大部分”尺寸为 375x1242

当我有的时候batch_size: 1,一切都很完美。我keep_aspect_ratio_resizer的就像下面一样,因为它是由 TensorFlow 本身提出的。

但现在我想使用 batch_size: 5,但我不断收到尺寸不匹配错误。因为有些图像的尺寸略小,如 370x1224 等。

我找不到通用keep_aspect_ratio_resizer值。我根据我在错误消息中看到的值尝试了以下值,但我不能使所有图像的大小都相同

0 投票
0 回答
200 浏览

python-3.x - 如何为kitti数据集生成实例ground truth

我正在使用 Kitti 数据集上的 Tensorflow 对象检测 API 进行实例分割。

在 Kitti 数据集中,我只有第一组图像(xxxxxx_10.png)的地面实况实例,而不是第二组图像(xxxxxx_11.png)。我也想为这些图像生成基本事实。

我如何使用我已经拥有的数据来做到这一点,例如一对图像、ground truth flow(仅适用于第一组图像)、ground truth 实例(仅适用于第一组图像)。

这方面的任何线索都会非常有帮助。

0 投票
1 回答
90 浏览

dataset - 在 KITTI 数据集中,哪个序列的初始速度为 0?

我也想在 ROS 的 Google Cartographer 中使用KITTI 数据集做 SLAM(同时定位和映射)。

我需要一组 KITTI 序列(来自RawOdometry数据集),其中车辆在该序列中的初始速度为 0。我可以使用哪个序列?

0 投票
2 回答
3744 浏览

image - 使用 RGB 图像和点云,如何从点云生成深度图?(Python)

我正在融合激光雷达和相机图像,以便使用 CNN 执行分类对象算法。

我想使用提供同步激光雷达和 rgb 图像数据的 KITTI 数据集。激光雷达是 3D 扫描仪,因此输出是 3D 点云。

我想使用来自点云的深度信息作为 CNN 的通道。但我从未使用过点云,所以我寻求帮助。将点云投影到相机图像平面(使用 Kitti 提供的投影矩阵)会给我想要的深度图吗?Python libray pcl 有用还是我应该转向 c++ 库?

如果您有任何建议,请提前感谢您

0 投票
1 回答
2736 浏览

coordinates - 在第 i 个相机图像(KITTI 数据集)中投影 3D 激光雷达点

我正在研究对象分类问题,我正在使用来自 Kitti 数据集的激光雷达和相机数据。在这篇文章中:http ://ww.cvlibs.net/publications/Geiger2013IJRR.pdf ,它们提供了投影 3d 的公式PointCloud 进入第 i 个相机图像平面,但我不明白一些事情:

以下等式((3):

如果 3D 点 X 在 velodyne 相机图像中,Y 在第 i 个相机图像中,为什么 X 有四个坐标而 Y 有三个?应该是3和2吧?

公式

我需要将 3D 点云投影到相机图像平面中,然后创建激光雷达图像以将它们用作 CNN 的通道。任何有想法的人吗?

提前谢谢你

0 投票
1 回答
1552 浏览

c++ - 如何评估 KITTI 里程计数据集中的结果

我正在尝试使用 KITTI 开放数据集来做一些关于视觉里程计或视觉 INS 里程计的测试。但我无法理解 KITTI 里程计提供的代码。

我已经在 KITTI 网站上下载了里程计数据集的开发工具包(我认为它包含一些 C++ 代码)。(访问http://www.cvlibs.net/datasets/kitti/eval_odometry.php

它提供了基准来评估与它提供的基本事实姿势相比的其他结果。我曾尝试cmake在 Ubuntu 16.04 LTS 上构建代码,但它似乎不起作用。

开发包文件夹中有四个文件,分别是matrix.hmatrix.cpp、。我担心文件中可能缺少一些班级成员。如下图所示:evaluate_odometry.cppmail.hevaluate_odometry.cpp

mail->finalize()在工具包提供的任何文件中都找不到类成员。但是,我在网上搜索了这个问题,但它通常与JAVA有关。我认为这不是 JAVA 的问题。

也许我在工具包中遗漏了一些东西,我会检查一下。有人可以帮助我吗?接下来我能做什么?

更新:我再次从 KITTI 网站下载了 KITTI Odometry 开发套件,以确保它是完整的。但是,上面的问题仍然存在。

0 投票
1 回答
425 浏览

python - 使用 Kitti 图像从 ResNet101 主干中获取 Nan 结果

我正在使用以下内容:

我已经获取了这个 repo 并将其转换为使用 Kitti 数据。为此,我在数据集中添加了一个新的 Kitti 类并完成了必要的转换。测试和评估都使用 PASCAL VOC 中的以下类集:

我已将课程设置更改为:

在看似随机的图像中(将这些“问题”图像从训练集中取出似乎会改变程序在哪个图像上失败),训练代码似乎会从 region-proposal-network 产生 NaN。我有点不知道为什么。

  • 尝试将归一化更改为 Kitti 特定的归一化值
  • 尝试将图像大小调整为 224x224
  • 尝试将归一化数字除以平均标准偏差

    -----------------

    网络定义

    -----------------

    self.conv1 = conv3x3(inplanes, planes, stride) self.bn1 = norm_layer(planes) self.relu = nn.ReLU(inplace=True) self.conv2 = conv3x3(planes, planes) self.bn2 = norm_layer(planes) self.downsample = 下采样 self.stride = stride

    self._layers['head'] = nn.Sequential(self.resnet.conv1, self.resnet.bn1, self.resnet.relu,self.resnet.maxpool, self.resnet.layer1, self.resnet.layer2,self .resnet.layer3)

    self.rpn_net = nn.Conv2d(self._net_conv_channels, cfg.RPN_CHANNELS, [3, 3], padding=1)

    -----------------

    准备图像

    -----------------

    self._image = torch.from_numpy(image.transpose([0, 3, 1, 2])).to(self._device) self.net.train_step(blob, self.optimizer)

    -----------------

    计算图

    -----------------

    (1) self.forward(blob['data'], blobs['im_info'], blobs['gt_boxes']) (2) rois, cls_prob, bbox_pred = self._predict() (3) net_conv = self._image_to_head () (4) net_conv = self._layers'head' (5) rpn = F.relu(self.rpn_net(net_conv))

    ------------------

    解决问题的有用函数

    ------------------

    def conv3x3(in_planes, out_planes, stride=1, groups=1, dilation=1): """3x3 卷积与填充""" return nn.Conv2d(in_planes, out_planes, kernel_size=3, stride=stride,padding=dilation ,组=组,偏差=假,膨胀=膨胀)

    def conv1x1(in_planes, out_planes, stride=1): """1x1 卷积""" return nn.Conv2d(in_planes, out_planes, kernel_size=1, stride=stride, bias=False)

我不知道为什么会发生这种情况,但显然我希望 ResNet101 骨干网中有实数。可能不得不切换到vgg16。

(3) 的输出

有谁知道这里发生了什么?

0 投票
1 回答
1350 浏览

python - 如何通过投影矩阵从 KITTI 获得鸟瞰图?

目标是从 KITTI 图像(数据集)中获得鸟瞰图,并且我有投影矩阵(3x4)。

有很多方法可以生成变换矩阵。对于鸟瞰图,我已经阅读了一些数学表达式,例如:

H12 = H2*H1-1=A R A-1=P*A-1 in OpenCV - 投影、单应矩阵和鸟瞰图

和 x = Pi * Tr * X 在kitti 数据集相机投影矩阵中

但这些选项都不适用于我的目的。

蟒蛇代码

将 numpy 导入为 np 导入 cv2

image = cv2.imread('数据/RGB/000007.png')

最大高度,最大宽度 = image.shape[:2]

M 有 3x4 尺寸

M = np.array(([721.5377, 0.0, 609.5593, 44.85728], [0.0, 721.5377, 72.854, 0.2163791], [0.0, 0.0, 1.0, .002745884]))

这里需要一个 3x3 维度的 M 矩阵

warped = cv2.warpPerspective(图像, M, (maxWidth, maxHeight))

显示原始图像和变形图像

cv2.imshow("原始", 图片)

cv2.imshow("扭曲", 扭曲)

cv2.waitKey(0)

我需要知道如何管理投影矩阵以获得鸟瞰图。

到目前为止,我尝试过的所有事情都会向我抛出扭曲的图像,甚至没有接近我需要的信息。

这是来自 KITTI 数据库的图像示例。

这是来自 KITTI 数据库的另一个图像示例。

左侧显示了检测汽车的 3D(上)和 2D(下)图像。右边是我想要获得的鸟瞰图。因此,我需要获取变换矩阵来变换分隔汽车的框的坐标。

0 投票
2 回答
521 浏览

computer-vision - 视觉里程计,相机参数

我正在研究视觉里程计,并观看了 Cyrill Stachniss 教授的视频录制,这些视频可作为 YouTube 2015/16 Playlist about Photogrammetry I & II 获得。

首先,如果我想创建自己的数据集(如 VO 的 KITTI 数据集或牛津校园数据集),我用相机拍摄的图像的属性应该是什么。它们只是图像吗?或者,它们是否有一些特殊的属性?也就是说,如何使用单目或立体相机创建自己的数据集。

谢谢你。