问题标签 [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.
computer-vision - 如何理解 KITTI 相机校准文件?
我正在研究 KITTI 数据集。
我已经下载了对象集的对象数据集(左和右)和相机校准矩阵。
我想使用立体声信息。
但是我不知道如何获得两个相机的Intrinsic Matrix和R|T Matrix。而且我不明白校准文件的含义。
校准文件的内容:
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
值。我根据我在错误消息中看到的值尝试了以下值,但我不能使所有图像的大小都相同
python-3.x - 如何为kitti数据集生成实例ground truth
我正在使用 Kitti 数据集上的 Tensorflow 对象检测 API 进行实例分割。
在 Kitti 数据集中,我只有第一组图像(xxxxxx_10.png)的地面实况实例,而不是第二组图像(xxxxxx_11.png)。我也想为这些图像生成基本事实。
我如何使用我已经拥有的数据来做到这一点,例如一对图像、ground truth flow(仅适用于第一组图像)、ground truth 实例(仅适用于第一组图像)。
这方面的任何线索都会非常有帮助。
dataset - 在 KITTI 数据集中,哪个序列的初始速度为 0?
我也想在 ROS 的 Google Cartographer 中使用KITTI 数据集做 SLAM(同时定位和映射)。
我需要一组 KITTI 序列(来自Raw或Odometry数据集),其中车辆在该序列中的初始速度为 0。我可以使用哪个序列?
image - 使用 RGB 图像和点云,如何从点云生成深度图?(Python)
我正在融合激光雷达和相机图像,以便使用 CNN 执行分类对象算法。
我想使用提供同步激光雷达和 rgb 图像数据的 KITTI 数据集。激光雷达是 3D 扫描仪,因此输出是 3D 点云。
我想使用来自点云的深度信息作为 CNN 的通道。但我从未使用过点云,所以我寻求帮助。将点云投影到相机图像平面(使用 Kitti 提供的投影矩阵)会给我想要的深度图吗?Python libray pcl 有用还是我应该转向 c++ 库?
如果您有任何建议,请提前感谢您
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 的通道。任何有想法的人吗?
提前谢谢你
c++ - 如何评估 KITTI 里程计数据集中的结果
我正在尝试使用 KITTI 开放数据集来做一些关于视觉里程计或视觉 INS 里程计的测试。但我无法理解 KITTI 里程计提供的代码。
我已经在 KITTI 网站上下载了里程计数据集的开发工具包(我认为它包含一些 C++ 代码)。(访问http://www.cvlibs.net/datasets/kitti/eval_odometry.php)
它提供了基准来评估与它提供的基本事实姿势相比的其他结果。我曾尝试cmake
在 Ubuntu 16.04 LTS 上构建代码,但它似乎不起作用。
开发包文件夹中有四个文件,分别是matrix.h
、matrix.cpp
、。我担心文件中可能缺少一些班级成员。如下图所示:evaluate_odometry.cpp
mail.h
evaluate_odometry.cpp
mail->finalize()
在工具包提供的任何文件中都找不到类成员。但是,我在网上搜索了这个问题,但它通常与JAVA有关。我认为这不是 JAVA 的问题。
也许我在工具包中遗漏了一些东西,我会检查一下。有人可以帮助我吗?接下来我能做什么?
更新:我再次从 KITTI 网站下载了 KITTI Odometry 开发套件,以确保它是完整的。但是,上面的问题仍然存在。
python - 使用 Kitti 图像从 ResNet101 主干中获取 Nan 结果
我正在使用以下内容:
- CUDA 10.0
- PyTorch 1.2
- https://github.com/ruotianluo/pytorch-faster-rcnn
- 测试权重集与训练权重集不同。
- 训练权重集来自 caffe 预训练的 ResNet101 主干
我已经获取了这个 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) 的输出
有谁知道这里发生了什么?
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)
我需要知道如何管理投影矩阵以获得鸟瞰图。
到目前为止,我尝试过的所有事情都会向我抛出扭曲的图像,甚至没有接近我需要的信息。
左侧显示了检测汽车的 3D(上)和 2D(下)图像。右边是我想要获得的鸟瞰图。因此,我需要获取变换矩阵来变换分隔汽车的框的坐标。
computer-vision - 视觉里程计,相机参数
我正在研究视觉里程计,并观看了 Cyrill Stachniss 教授的视频录制,这些视频可作为 YouTube 2015/16 Playlist about Photogrammetry I & II 获得。
首先,如果我想创建自己的数据集(如 VO 的 KITTI 数据集或牛津校园数据集),我用相机拍摄的图像的属性应该是什么。它们只是图像吗?或者,它们是否有一些特殊的属性?也就是说,如何使用单目或立体相机创建自己的数据集。
谢谢你。